From b396618f9d7a3865a174b956d94e15599f8a9fde Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 30 Jan 2025 09:29:01 -0700 Subject: [PATCH] -- mejoras para E189. en manejo de cantidades mayores a los generados en la OC --- Compras/Compras.aspx | 4 +-- Compras/Compras.aspx.vb | 74 +++++++++++------------------------------ 2 files changed, 21 insertions(+), 57 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index b8ece6061..6bedf75e9 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -1734,7 +1734,7 @@ @@ -1974,7 +1974,7 @@
- + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 389647b89..3d52235d8 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -710,7 +710,6 @@ Partial Class Compras_Compras End Set End Property - Private Property TipoCambioOriginal As Decimal Get Return ViewState("TipoCambioOriginal").ToString.ToDecimal @@ -2884,7 +2883,6 @@ Partial Class Compras_Compras HfTotalCompra.Value = TxtTotal.Text TipoCambio = dr("TipoCambio").ToString.ToDecimal - TipoCambioOriginal = dr("TipoCambioOriginal").ToString.ToDecimal If TipoCambio > 1 Then LblTC.Text = String.Format("TC: {0}", TipoCambio.ToString("N4")) If TipoCambio <> TipoCambioOriginal Then LblTCO.Text = String.Format("
TC Original: {0}", TipoCambioOriginal.ToString("N4")) @@ -7860,12 +7858,18 @@ Partial Class Compras_Compras End If End If + If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 OrElse ImporteRNCProntoPago > 0) Then - If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 Or ImporteRNCProntoPago > 0) Then - If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, + If ImporteRNC > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNC, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, TxtSerie.Text, TxtFolio.Text) Then TieneError = True End If + + If ImporteRNCProntoPago > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNCProntoPago, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, + TxtSerie.Text, TxtFolio.Text, PrefijoSerie:="PP") Then + TieneError = True + End If + End If If Not TieneError Then @@ -10246,6 +10250,7 @@ Partial Class Compras_Compras _Moneda = ValorXML(nodo, "Moneda") _TipoComprobante = ValorXML(nodo, "tipoDeComprobante") TipoCambio = ValorXML(nodo, "TipoCambio", "1").ToDecimal + TipoCambioOriginal = TipoCambio If Version = "3.3" Or Version = "4.0" Then Dim drm As DataRow = GlobalDTVtaMetodoPago.FiltroPrimero(String.Format("ClaveMetodoPagoSAT = '{0}'", ValorXML(nodo, "MetodoPago"))) @@ -15329,9 +15334,8 @@ Partial Class Compras_Compras e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", $"LimitaCantidadOC({e.Row.DBCampo("CantidadPendienteVincular")}, this);{JSCambiaScript}") If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso PermisoVinculacionImporteDiferente Then ' código temporal, excluir que valide cantidad GDIAZ - e.Row.FCTextBox("TxtCantidad").Attributes.Remove("onkeyup") + e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", $"{JSCambiaScript}") 'se quita el llamado a candado de la cantidad End If - e.Row.FCTextBox("TxtPU").Attributes.Add("onkeyup", JSCambiaScript) e.Row.FCTextBox("TxtCantidad").Attributes.Add("onblur", $"ValidaImporteCero('{e.Row.DBCampo("PS").Replace("'", "")}',{e.Row.FCTextBox("TxtCantidad").ClientID}, {e.Row.FCTextBox("TxtPU").ClientID});") @@ -15686,7 +15690,7 @@ Partial Class Compras_Compras dr = DTOCGV.Rows(gvr.RowIndex) Dim Cantidad As Decimal = gvr.FCTextBox("TxtCantidad").Text.ToDecimal 'dr("Cantidad").ToString.ToDouble - Dim CantidadF As Decimal = gvr.DataKey("CantidadF").ToString.ToDecimal 'dr("Cantidad").ToString.ToDouble + Dim CantidadF As Decimal = gvr.FCTextBox("TxtCantidad").Text.ToDecimal ' gvr.DataKey("CantidadF").ToString.ToDecimal 'dr("Cantidad").ToString.ToDouble Dim CveUM As Integer = dr("CveUM").ToString.ToEntero Dim UM As String = dr("UM").ToString Dim CveClasificacion As Integer = dr("CveClasificacion").ToString.ToEntero @@ -19191,7 +19195,7 @@ Partial Class Compras_Compras Protected Sub BtnDevolucion_Click(sender As Object, e As EventArgs) Dim ObjCompras As New ClsCompras Dim TieneError As Boolean = False - Dim ImporteCompra As Decimal = 0 + Dim ImporteDevCompra As Decimal = 0 Dim tCveSubProyeto As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero Dim ModalidadDevolucion As Integer = 1 ' 1 - devolución para que alamcen la confirme, 2 - devolución en automático generando RNC @@ -19207,7 +19211,7 @@ Partial Class Compras_Compras Dim PU As Decimal = gvr.DataKey("PU").ToDecimal If gvr.FCTextBox("TxtCant").Text.ToDecimal > 0 Then ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 0, UsuarioActual.CveUsuario, CantidadDevolucion:=gvr.FCTextBox("TxtCant").Text.ToDecimal) - ImporteCompra = ImporteCompra + ((PU * Cantidad)) + ImporteDevCompra = ImporteDevCompra + ((PU * Cantidad)) Else ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 1, UsuarioActual.CveUsuario, CantidadDevolucion:=0) End If @@ -19226,17 +19230,15 @@ Partial Class Compras_Compras Dim Cantidad As Decimal = gvr.FCTextBox("TxtCant").Text.ToDecimal Dim PU As Decimal = gvr.DataKey("PU").ToDecimal If gvr.FCTextBox("TxtCant").Text.ToDecimal > 0 Then - ImporteCompra = ImporteCompra + ((PU * Cantidad)) + ImporteDevCompra = ImporteDevCompra + ((PU * Cantidad)) End If Next - ImporteRNC = ImporteCompra.RoundSQL - If ChkEsDevolucionDevInv.Checked Then Dim objConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL) - CvePrePoliza = objConta.AddPrePolizas("Compras/RncDevInv", 53, ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, $"RNC Devolucion Inv {TxtSerie.Text}-{TxtFolio.Text}", + CvePrePoliza = objConta.AddPrePolizas("Compras/RncDevInv", 53, ImporteDevCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, $"RNC Devolucion Inv {TxtSerie.Text}-{TxtFolio.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=0, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=objConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) If CvePrePoliza > 0 Then @@ -19266,7 +19268,7 @@ Partial Class Compras_Compras CompraActual.EsImportacion = chkImportacion.Checked If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, objConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, - $"Remisión Nota de Crédito {TxtDescripcion.Text}", DdlMoneda.SelectedValue.ToEntero, TipoCambioOriginal, + $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteDevCompra, DdlMoneda.SelectedValue.ToEntero, TipoCambioOriginal, TxtSerie.Text, TxtFolio.Text, PrefijoSerie:="Dev", EsDRMN:=True) Then TieneError = True End If @@ -22029,7 +22031,7 @@ Partial Class Compras_Compras #Region "PRONTO PAGO" Public Function GeneraRNC(ByRef sqltransaccion As SqlTransaction, CveCompraRegistrada As Integer, ByRef CompraActual As Compra, ByRef ObjConta As ClsContabilidad, CvePrePoliza As Integer, - CveProveedor As Integer, NombreProveedor As String, Fecha As Date, Descripcion As String, CveMoneda As Integer, TipoCambio As Decimal, Serie As String, Folio As String, + CveProveedor As Integer, NombreProveedor As String, Fecha As Date, Descripcion As String, Importe As Decimal, CveMoneda As Integer, TipoCambio As Decimal, Serie As String, Folio As String, Optional PrefijoSerie As String = "D", Optional EsDRMN As Boolean = False, Optional TmpListadoPS As DataTable = Nothing, Optional RedondearSaldado As Boolean = False) As Boolean CveCompraDRMC = -1 Dim respuesta As Boolean = True @@ -22084,8 +22086,8 @@ Partial Class Compras_Compras Dim CveUM As Integer = PSRow("CveUnidadMedida").ToString.ToEntero Dim UM As String = PSRow("UnidadMedida").ToString - Dim IVARNC As Decimal = (ImporteRNC * PorcentajeIVA).RoundSQL(2) - Dim TotalRNC As Decimal = If(RedondearSaldado, (ImporteRNC + IVARNC).RoundSQL(2), (ImporteRNC + IVARNC)) + Dim IVARNC As Decimal = (Importe * PorcentajeIVA).RoundSQL(2) + Dim TotalRNC As Decimal = If(RedondearSaldado, (Importe + IVARNC).RoundSQL(2), (Importe + IVARNC)) CompraRNC.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNC, IVARNC, TotalRNC, PorcentajeIVA, TipoCambio:=TipoCambioOriginal) If CompraRNC.AddCompra(sqltransaccion) Then @@ -22104,50 +22106,12 @@ Partial Class Compras_Compras Else respuesta = False End If - - If respuesta AndAlso ImporteRNCProntoPago > 0 Then - - Dim CompraRNCProntoPago As New ClsCompraManagerCompras(UsuarioActual) With { - .TipoDocto = "RNC", - .CveProveedor = CveProveedor, - .CveTipoProveedor = CveTipoProveedor, - .CveTipoConceptoProveedor = CveTipoConcepto, - .Descripcion = Descripcion, - .NombreProveedor = NombreProveedor, - .Fecha = Fecha, - .CveMoneda = CveMoneda, - .TipoCambio = If(CveMoneda = 1, 1, TipoCambio), - .Serie = $"PP-{Serie}", - .Folio = $"{Folio}", - .CveCompraAmortizacion = CveCompraRegistrada, - .CveCompraRelacionada = CveCompraRegistrada - } - Dim IVARNCProntoPago As Decimal = (ImporteRNCProntoPago * PorcentajeIVA).RoundSQL(2) - - CompraRNCProntoPago.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNCProntoPago, (ImporteRNCProntoPago + IVARNCProntoPago), IVARNCProntoPago, PorcentajeIVA) - If CompraRNCProntoPago.AddCompra(sqltransaccion) Then - Dim tImporteRNCProntoPago = ImporteRNCProntoPago + IVARNCProntoPago ' le agrego el importe del iva - Dim Pago As New CompraPago - Pago.ImportePago = tImporteRNCProntoPago - Pago.CveMonedaPago = CompraActual.CveMoneda - Pago.CveCompraAmortizacion = CompraRNCProntoPago.CveCompra - Pago.Referencia = CompraRNCProntoPago.SerieFolio - Pago.TCPago = CompraActual.TC - Pago.AplicaAcreditable = False - Pago.TipoPago = "RNC" - Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC - respuesta = Not AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - Else - respuesta = False - End If - End If End If If RedondearSaldado And respuesta Then Alert("Saldado correctamente") End If - Return respuesta End Function