diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 6b0e594dc..13cfbd3eb 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1679,6 +1679,14 @@ Partial Class Compras_Compras InicializaDTProrrateoGasolina() End If + + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + If Request("SaldarRNC") IsNot Nothing AndAlso Request("SaldarRNC").ToString.ToEntero = 1 Then + SaldaConRNC() + End If + + End If + End If 'SE OCUPAN AFUERA DEL POSTBACK ?? @@ -1711,6 +1719,79 @@ Partial Class Compras_Compras End Sub + + Private Sub SaldaConRNC() + + If CompraSaldo > 0 Then + ImporteRNC = CompraSaldo.ToDecimal + Dim ErrorSaldoRNC As Boolean = False + Dim ObjCompras As New ClsCompras + Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL) + ObjCompras.IniciaTransacSQL() + ObjCompras.IniciaTransacSQL() + + If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 Or ImporteRNCProntoPago > 0) Then + + + Dim PorcentajeIVA As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal + + Dim CompraSaldar As New Compra + CompraSaldar.CveCompra = CveCompra + CompraSaldar.CveTipoConceptoProveedor = CveTipoConcepto + CompraSaldar.CveProveedor = CveProveedor + CompraSaldar.CveMoneda = DdlMoneda.SelectedValue.ToEntero + CompraSaldar.Fecha = TxtFecha.Text.ToDate + CompraSaldar.SerieFolio = TxtSerie.Text.Trim & "-" & TxtFolio.Text.Trim + CompraSaldar.ProveedorNombre = HplProveedor.Text + CompraSaldar.TC = TipoCambio + CompraSaldar.Total = TxtTotal.Text.ToDecimal + CompraSaldar.IVA = TxtIVA.Text.ToDecimal + CompraSaldar.IVADeducible = TxtIVA.Text.ToDecimal + CompraSaldar.IEPS = TxtIEPS.Text.ToDecimal + CompraSaldar.RetIVA = TxtRetIVA.Text.ToDecimal + CompraSaldar.RetISR = TxtRetISR.Text.ToDecimal + CompraSaldar.CveConceptoRetISR = DdlRetISRConcepto.SelectedValue.ToEntero + CompraSaldar.CveConceptoRetIVA = DdlRetIVAConcepto.SelectedValue.ToEntero + CompraSaldar.PorcentajeIVA = PorcentajeIVA + CompraSaldar.UsuarioActual = UsuarioActual + CompraSaldar.CveSubProyecto = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero + CompraSaldar.EsImportacion = chkImportacion.Checked + + Dim FolioFijo As Integer = 0 + 'cheque + If DdlTipoTransaccion.SelectedValue = "1" AndAlso UsuarioActual.CveEmpresa <> 119 Then FolioFijo = TxtFolio.Text.ToEntero + Dim ConceptoPoliza As String = String.Format("{0} - {1}{2} - {3}", NombreProveedor, TxtSerie.Text, TxtFolio.Text, TxtDescripcion.Text.Trim) + + Dim CvePrePolizaSaldar = ObjConta.AddPrePolizas("Compras/SaldarRNC", 53, ImporteRNC.RoundSQL(2), ImporteRNC.RoundSQL(2), DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) + + If CvePrePolizaSaldar > 0 Then + ImporteRNC = ImporteRNC.RoundSQL(2) + If PorcentajeIVA > 0 Then + ImporteRNC = ((ImporteRNC) / (1 + PorcentajeIVA)) + End If + + If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraSaldar, ObjConta, CvePrePolizaSaldar, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, + TxtSerie.Text, TxtFolio.Text, RedondearSaldado:=True) Then + ErrorSaldoRNC = True + End If + End If + + + End If + + If ErrorSaldoRNC Then + ObjCompras.RollBack() + Else + ObjCompras.Commit() + End If + + ObjCompras.Dispose() + ObjConta.Dispose() + End If + + + End Sub + Private Sub ConfiguraseleccionRemisionNotaCredito() Dim AutoSelRNC As Boolean = False @@ -21944,7 +22025,8 @@ 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, Optional EsDRMN As Boolean = False, Optional TmpListadoPS As DataTable = Nothing) As Boolean + CveProveedor As Integer, NombreProveedor As String, Fecha As Date, Descripcion As String, CveMoneda As Integer, TipoCambio As Decimal, Serie As String, Folio As String, + Optional EsDRMN As Boolean = False, Optional TmpListadoPS As DataTable = Nothing, Optional RedondearSaldado As Boolean = False) As Boolean CveCompraDRMC = -1 Dim respuesta As Boolean = True Dim PorcentajeIVA As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal @@ -21969,19 +22051,20 @@ Partial Class Compras_Compras If PSRow IsNot Nothing Then Dim CompraRNC 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 = $"D-{Serie}", - .Folio = Folio, - .CveCompraAmortizacion = CveCompraRegistrada - } + .TipoDocto = "RNC", + .CveProveedor = CveProveedor, + .CveTipoProveedor = CveTipoProveedor, + .CveTipoConceptoProveedor = CveTipoConcepto, + .Descripcion = Descripcion, + .NombreProveedor = NombreProveedor, + .Fecha = Fecha, + .CveMoneda = CveMoneda, + .TipoCambio = If(CveMoneda = 1, 1, TipoCambio), + .Serie = $"D-{Serie}", + .Folio = Folio, + .CveCompraAmortizacion = CveCompraRegistrada, + .CveCompraRelacionada = CveCompraRegistrada + } 'Dim CveTipoPS As Integer = PSRow("CveTipoPS").ToString.ToEntero 'If PSRow("CvePSCargo").ToString <> "" Then @@ -21993,11 +22076,13 @@ Partial Class Compras_Compras Dim PS As String = PSRow("PSCodigo").ToString Dim CveUM As Integer = PSRow("CveUnidadMedida").ToString.ToEntero Dim UM As String = PSRow("UnidadMedida").ToString - Dim IVARNC As Decimal = (ImporteRNC * PorcentajeIVA).RoundSQL(2) - CompraRNC.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNC, IVARNC, (ImporteRNC + IVARNC), PorcentajeIVA) + Dim IVARNC As Decimal = (ImporteRNC * PorcentajeIVA).RoundSQL(2) + Dim TotalRNC As Decimal = If(RedondearSaldado, (ImporteRNC + IVARNC).RoundSQL(2), (ImporteRNC + IVARNC)) + + CompraRNC.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNC, IVARNC, TotalRNC, PorcentajeIVA) If CompraRNC.AddCompra(sqltransaccion) Then - Dim tImporteRNC = ImporteRNC + IVARNC ' le agrego el importe del iva + Dim tImporteRNC = TotalRNC ' le agrego el importe del iva Dim Pago As New CompraPago Pago.ImportePago = tImporteRNC Pago.CveMonedaPago = CompraActual.CveMoneda @@ -22016,19 +22101,20 @@ Partial Class Compras_Compras 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 - } + .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) @@ -22050,6 +22136,11 @@ Partial Class Compras_Compras End If End If + If RedondearSaldado And respuesta Then + Alert("Saldado correctamente") + End If + + Return respuesta End Function @@ -22865,6 +22956,8 @@ Public Class ClsCompraManagerCompras Public Property CveIE As Integer = -1 Public Property CveCompraAmortizacion As Integer = -1 + Public Property CveCompraRelacionada As Integer = -1 + Public Sub New(UsuarioActual As Usuario) Errores = New StringBuilder @@ -24503,7 +24596,8 @@ Public Class ClsCompraManagerCompras AplicoPromocion:=Me.AplicoPromocion, PorcentajeIVA:=Me.PorcentajeIVA, CveMetodoPago:=Me.CveMetodoPago, CveRetIVAConcepto:=Me.CveRetIVAConcepto, CveConceptoContableAlmacen:=Me.CveConceptoContableAlmacen, CveRetISRConcepto:=Me.CveRetISRConcepto, NoDeducible:=Me.NoDeducible, CveTipoCompra:=Me.CveTipoCompra, TotalOriginal:=Me.TotalOriginal, CveTipoConcepto:=Me.CveTipoConcepto, - EsImportacion:=Me.EsImportacion, CveFactura:=Me.CveFactura, CveSubProyecto:=Me.CveSubProyectoPrincipal, DoctosRelacionados:=Me.DocumentosRelacionadosUUIDSString, CveFolioGarantia:=Me.CveFolioGarantia) Then + EsImportacion:=Me.EsImportacion, CveFactura:=Me.CveFactura, CveSubProyecto:=Me.CveSubProyectoPrincipal, DoctosRelacionados:=Me.DocumentosRelacionadosUUIDSString, CveFolioGarantia:=Me.CveFolioGarantia, + CveCompraRelacionada:=CveCompraRelacionada) Then Me.CveCompra = ObjCompras.CveCompra Else respuesta = False diff --git a/Ventas/PVCobranza.aspx b/Ventas/PVCobranza.aspx index b68299bfd..925eb9c62 100644 --- a/Ventas/PVCobranza.aspx +++ b/Ventas/PVCobranza.aspx @@ -1349,9 +1349,9 @@