diff --git a/OC/OC.aspx b/OC/OC.aspx index 2cd3d524d..9076a5274 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -486,12 +486,18 @@ - Descuento Pronto Pago: - - - - - + Descuento Pronto Pago: + + + + + + + Edición Masiva: + + + + @@ -963,6 +969,7 @@ + <%-- 1 --%> @@ -1005,6 +1012,7 @@ + @@ -1060,6 +1068,7 @@ + @@ -1075,6 +1084,7 @@ + diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 0b8fc655a..eeb335eb4 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -968,6 +968,7 @@ Partial Class OC_OC If UsuarioActual.CveRol = 1 Then TrDescuentoEscalonado.Visible = True TrDescuentoProntoPago.Visible = True + TrEdicionMasiva.Visible = True End If End If @@ -9330,6 +9331,7 @@ Partial Class OC_OC Dim TotalTemp As Decimal = (PU * Cantidad) Dim Descuento As Decimal = 0 + If descuentoParts.Length = 0 Then Descuento = 0 Else @@ -9348,14 +9350,24 @@ Partial Class OC_OC Dim Total As Decimal = If(PU > 0, (PU * Cantidad) - Descuento, 0) dRow("Descuento") = Descuento - dRow("Total") = Total - dRow("IEPSPS") = Math.Round(IEPSPSPorcentaje * Total, 2) - dRow("IEPSPSIVA") = Math.Round(IEPSPSIVAPorcentaje * Total, 2) - dRow("IVA") = Math.Round(IVAPorcentaje * Total, 2) + If dRow("Total").ToString.ToDecimal <> Total Then + dRow("Total") = Total + + dRow("IEPSPS") = Math.Round(IEPSPSPorcentaje * Total, 2) + dRow("IEPSPSIVA") = Math.Round(IEPSPSIVAPorcentaje * Total, 2) + + dRow("IVA") = Math.Round(IVAPorcentaje * Total, 2) + + dRow("RetIVA") = (RetIVAPorcentaje * Total).RoundSQL(2) + dRow("RetISR") = (RetISRPorcentaje * Total).RoundSQL(2) + dRow("TipoDato") = 1 + + End If + + + - dRow("RetIVA") = (RetIVAPorcentaje * Total).RoundSQL(2) - dRow("RetISR") = (RetISRPorcentaje * Total).RoundSQL(2) Next @@ -9372,5 +9384,239 @@ Partial Class OC_OC End Sub + + Protected Sub BtnEdicionMasiva_Click(sender As Object, e As EventArgs) + + If BtnEdicionMasiva.Text = "Editar" Then + BtnEdicionMasiva.Text = "Aplicar" + + For Each GvRow As GridViewRow In GvD.Rows + + GvRow.FCTextBox("TxtEMObsPS").Visible = True + GvRow.FCTextBox("TxtEMCantEdit").Visible = True + GvRow.FCTextBox("TxtEMDescuentoEdit").Visible = True + GvRow.FCTextBox("TxtEMImporteEdit").Visible = True + + GvRow.FCLabel("LtlCantidad").Visible = False + GvRow.FCLiteral("LtlObsPS").Visible = False + GvRow.FCLiteral("LtlDescuento").Visible = False + GvRow.FCLabel("LtlImporte").Visible = False + + + 'observación, PU, descuento, cantidad + Next + + Else + + GvD_RecalculaEdicionMasiva() + + BtnEdicionMasiva.Text = "Editar" + For Each GvRow As GridViewRow In GvD.Rows + GvRow.FCTextBox("TxtEMObsPS").Visible = False + GvRow.FCTextBox("TxtEMCantEdit").Visible = False + GvRow.FCTextBox("TxtEMDescuentoEdit").Visible = False + GvRow.FCTextBox("TxtEMImporteEdit").Visible = False + + GvRow.FCLabel("LtlCantidad").Visible = True + GvRow.FCLiteral("LtlObsPS").Visible = True + GvRow.FCLiteral("LtlDescuento").Visible = True + GvRow.FCLabel("LtlImporte").Visible = True + Next + + + + End If + + + UPPDetalle.Update() + uppEstatus.Update() + + End Sub + + + Private Sub GvD_RecalculaEdicionMasiva() + + For Each gvr As GridViewRow In GvD.Rows + + Dim Cantidad, Importe, Descuento As Decimal + Dim CveUnidad, CveClasificacion, CvePS, CveSubProyecto, CveProyecto, CveCultivoCuadroDetalle As Integer + Dim Obs, UM, Clasificacion, PS, SubProyecto, Proyecto, Cuadro As String + + + Cantidad = gvr.FCTextBox("TxtEMCantEdit").Text.Trim.ToDecimal + Importe = gvr.FCTextBox("TxtEMImporteEdit").Text.Trim.ToDecimal + Descuento = gvr.FCTextBox("TxtEMDescuentoEdit").Text.Trim.ToDecimal + Obs = gvr.FCTextBox("TxtEMObsPS").Text.Trim + + 'SubProyecto, Cantidad, Importe, Descuento, CveOrdenCompra, CveUnidadMedida, CvePresupuestoEgreso, PS,CveClasificacion, CvePS, CveSubProyecto, CveActivoFijo, CodigoAF, TipoDato, Observacion, + 'CveOrdenCompraDetalle,CveCompra,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,IEPSPSIVAPorcentaje,CantidadNoEditable,CveCultivoCuadroDetalle + + CveUnidad = gvr.DataKey("CveUnidadMedida").ToEntero + UM = gvr.FCLiteral("LA").Text + CveClasificacion = gvr.DataKey("CveClasificacion").ToEntero + Clasificacion = gvr.FCLabel("LblClasificacion").Text + + 'SE TOMAN VALORES EN CASO DE QUE LA CvePS SEA DIFERENTE DE LA ANTERIOR + Dim CvePSAnterior As Integer = gvr.DataKey("CvePS").ToEntero + PS = gvr.DataKey("PS").ToString + Dim RetISR As Decimal = gvr.DataKey("RetISRPorcentaje").ToDecimal + Dim RetIVA As Decimal = gvr.DataKey("RetIVAPorcentaje").ToDecimal + 'Dim IvaPS = gvr.DataKey("IVAPorcentaje").ToDecimal + Dim IEPSPS As Decimal = gvr.DataKey("IEPSPSPorcentaje").ToDecimal + Dim IEPSPSIVA As Decimal = gvr.DataKey("IEPSPSIVAPorcentaje").ToDecimal + Dim Total As Decimal = Importe * Cantidad - Descuento + + + 'VALORES DEL PS + 'CvePS = gvr.FCDropDownList("DdlPS").SelectedValue.ToEntero + + 'PS = gvr.FCDropDownList("DdlPS").SelectedItem.Text + 'Dim DrPS As DataRow = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("") + 'If DrPS Is Nothing Then + ' Alert("Ocurrió un error al cargar la información del producto para actualizar. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If + 'Dim IvaPS As Decimal = DrPS("IVA").ToString.ToDecimal + 'IEPSPS = DrPS("IEPSPorcentaje").ToString.ToDecimal + 'IEPSPSIVA = If(DrPS("IEPSGrabaIVA").ToString = "True", DrPS("IEPSPorcentaje").ToString.ToDecimal, 0) + + 'If DdlProveedores.SelectedValue.ToEntero > 0 Then + ' 'Si es Proveedor Extranjero el IVA es 0% + ' Dim drProv As DataRow = GlobalDTCompProveedores(CveEmpresaActual, CveProveedor:=DdlProveedores.SelectedValue.ToEntero).FiltroPrimero("") + ' If drProv IsNot Nothing Then + ' If drProv("CodigoRegimenFiscal").ToString = "626" Then 'simplificado lleva retencion de 1.25 de isr + ' RetISR = 0.0125D + ' End If + ' End If + 'End If + + 'If CvePS <> CvePSAnterior Or Not CveOrdenCompra > 0 Then + ' RetISR = DrPS("RetISR").ToString.ToDecimal + ' RetIVA = DrPS("RetIVA").ToString.ToDecimal + ' If Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2) = 0.08 Then + ' RetIVA = RetIVA / 2 + ' End If + ' If IvaPS <> 0 Then IvaPS = -1 + 'End If + + 'CveSubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedValue.ToEntero + 'SubProyecto = gvr.FCDropDownList("DdlSubProyectoEdit").SelectedItem.Text + + 'CveCultivoCuadroDetalle = gvr.FCDropDownList("DdlCultivosCuadroEdit").SelectedValue.ToEntero + 'Cuadro = "" + 'If CveCultivoCuadroDetalle > 0 Then + ' Cuadro = gvr.FCDropDownList("DdlCultivosCuadroEdit").SelectedItem.Text + 'End If + + 'If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Or UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then + ' CveProyecto = -1 + ' Proyecto = "Seleccione" + 'Else + ' CveProyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedValue.ToEntero + ' Proyecto = gvr.FCDropDownList("DdlProyectoEdit").SelectedItem.Text + 'End If + + 'If UsuarioActual.Empresa.Funcionalidad(532).Contiene("1", "2") Then + ' Dim ObjCon As New ClsContratos + ' Dim CvePresupuesto As Integer = 0 + ' Dim Autorizado As Decimal = 0 + ' Dim Ejercido As Decimal = 0 + ' If ObjCon.GetPresupuestos(-1, "-1", CveSubProyecto, 2, -1, UsuarioActual.CveEmpresa) Then + ' If ObjCon.DtResultados.Rows.Count > 0 Then + ' CvePresupuesto = ObjCon.DtResultados.Rows(0)("CvePresupuesto").ToString.ToEntero + ' If CvePresupuesto > 0 Then + ' If ObjCon.GetPresupuestosDetalle(CvePresupuesto, -1, UsuarioActual.CveEmpresa) Then + ' If ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} And Importe > 0").Rows.Count > 0 Then + ' Autorizado = ObjCon.DtResultados.FiltraParametros($"CveClasificacion = {CveClasificacion} And Importe > 0").Rows(0)("Importe").ToString.ToDecimal + ' End If + ' End If + ' If ObjCon.GetPresupuestosRep(CvePresupuesto, -1, 1, $"01/09/{NowADS().Year - 1}".ToDate, NowADS(), UsuarioActual.CveEmpresa, CveProyecto, + ' CveSubProyecto, UsuarioActual.CveUsuario, CveClasificacion) Then + ' If ObjCon.DtResultados.Rows.Count > 0 Then + ' Ejercido = ObjCon.DtResultados.Rows(0)("Ejercido").ToString.ToDecimal + ' End If + ' End If + ' End If + ' End If + ' End If + ' ObjCon.Dispose() + + ' If CvePresupuesto > 0 And Autorizado > 0 Then + ' Dim Diferencia As Decimal = (Ejercido + Total) - Autorizado + ' If Diferencia > 0 Then + ' Alert($"No hay presupuesto disponible:
- Subproyecto {SubProyecto}
- Clasificación {Clasificacion}
se excede por {Diferencia.FormatoNumero}", TipoMensaje.MsgAdvertencia) + ' Exit Sub + ' End If + ' End If + 'End If + + 'Agarra el nuevo AF si se modifico o deja el pasado + 'CveActivoFijo = If(gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero > 0, gvr.FCHiddenField("HdnCveActivoFijo").Value.ToEntero, HdnEditCveActivoFijo.Value.ToEntero) + 'Codigo = If(gvr.FCHiddenField("HdnCodigoAF").Value <> "-1", gvr.FCHiddenField("HdnCodigoAF").Value, HdnEditCodigo.Value) + + 'HdnEditCveActivoFijo.Value = "" + 'HdnEditCodigo.Value = "" + + Dim dr As DataRow() = DtDetalle.Select("CveOrdenCompraDetalle = " & gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero) + + dr(0)("Cantidad") = Cantidad + 'dr(0)("CveUnidadMedida") = CveUnidad + 'dr(0)("UM") = UM + 'dr(0)("CveClasificacion") = CveClasificacion + 'dr(0)("Clasificacion") = Clasificacion + + 'If isWithFamily() Then + ' dr(0)("CveSubFamilia") = CveClasificacion + ' dr(0)("SubFamilia") = Clasificacion + 'End If + + 'dr(0)("CvePS") = CvePS + 'dr(0)("PS") = PS + dr(0)("Observacion") = Obs + + 'dr(0)("CveSubProyecto") = CveSubProyecto + 'dr(0)("SubProyecto") = SubProyecto + 'dr(0)("CveProyecto") = CveProyecto + 'dr(0)("Proyecto") = Proyecto + dr(0)("Importe") = Importe + dr(0)("Descuento") = Descuento + dr(0)("Total") = Total + dr(0)("IEPSPS") = IEPSPS * Total + dr(0)("IEPSPSPorcentaje") = IEPSPS + dr(0)("IEPSPSIVA") = IEPSPSIVA * Total + dr(0)("IEPSPSIVAPorcentaje") = IEPSPSIVA + + 'If DdlIVA.SelectedValue.ToDecimal = 1 Then dr(0)("IVA") = 0 Else dr(0)("IVA") = IvaPS * Total + 'dr(0)("IVAPorcentaje") = If(IvaPS = -1, Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), 0) + Dim TotalGravado As Decimal = Total + If IEPSPSIVA > 0 Then TotalGravado = Total * (1 + IEPSPSIVA) 'grava para iva, el importe del IEPS + dr(0)("IVA") = Math.Round(dr(0)("IVAPorcentaje").ToString.ToDecimal * TotalGravado, 2) + + dr(0)("RetIVA") = (RetIVA * Total).RoundSQL(6) + dr(0)("RetIVAPorcentaje") = RetIVA + dr(0)("RetISR") = (RetISR * Total).RoundSQL(6) + dr(0)("RetISRPorcentaje") = RetISR + + + 'dr(0)("CveActivoFijo") = CveActivoFijo + 'dr(0)("CodigoAF") = Codigo + + 'dr(0)("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle + 'dr(0)("Cuadro") = Cuadro + + 'si el tipodato viene de la BD, entonces sufrió una actualización + If dr(0)("TipoDato").ToString.ToEntero = 2 Then dr(0)("TipoDato") = 1 + DtDetalle.AcceptChanges() + + + Next + + + CargaDatosDetalles() + + + End Sub + End Class +