From fd6e6bafa9461cff8b44bde0654eca303bad1761 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Thu, 26 Dec 2019 18:24:13 -0700 Subject: [PATCH 1/2] COMPRAS RET IVA 6% SERVICIOS --- App_Code/ClsCompras.vb | 4 +- Compras/Compras.aspx | 5 + Compras/Compras.aspx.vb | 203 +++++++++++++++++++++++++++++++++++----- 3 files changed, 188 insertions(+), 24 deletions(-) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 68ed6f984..9dcdf3eb5 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -191,7 +191,7 @@ Public Class ClsCompras AplicaNotaCredito As Boolean, Observaciones As String, CveEstatusCompra As Integer, CvePrePoliza As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional IdPoliza As Integer = -1, Optional CveOC As Integer = -1, Optional CveCajaChica As Integer = -1, Optional CvePersonal As Integer = -1, Optional NumeroReembolso As String = "-1", Optional CveProveedorSucursal As Integer = -1, Optional AplicoPromocion As Boolean = False, Optional PorcentajeIVA As Double = 0, Optional CveMetodoPago As Integer = -1, Optional CveRetIVAConcepto As Integer = -1, Optional CveConceptoContableAlmacen As Integer = -1, - Optional CveRetISRConcepto As Integer = -1, Optional NoDeducible As Boolean = False, Optional CveTipoCompra As Integer = -1) As Boolean + Optional CveRetISRConcepto As Integer = -1, Optional NoDeducible As Boolean = False, Optional CveTipoCompra As Integer = -1, Optional TotalOriginal As Double = 0) As Boolean Dim Retorno As Boolean = False @@ -239,6 +239,8 @@ Public Class ClsCompras .Add("@CveRetISRConcepto", SqlDbType.Int).Value = CveRetISRConcepto .Add("@NoDeducible", SqlDbType.Bit).Value = NoDeducible .Add("@CveTipoCompra", SqlDbType.Int).Value = CveTipoCompra + .Add("@TotalOriginal", SqlDbType.Money).Value = TotalOriginal + End With Try diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index f5b737fcd..40e4e3811 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -907,6 +907,10 @@ + + + + <%-- 8% @@ -914,6 +918,7 @@ 0% --%> + Ret. IVA: diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index d03d0f075..2b2904ada 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -868,7 +868,10 @@ Partial Class Compras_Compras Private Property Folio As String Private Property Fecha As String Private Property SubTotal As Decimal - Private Property Total As Decimal = 0 + Private Property Total As Decimal = 0 + + + Private Property Descuentos As Decimal = 0 Private Property EmisorRFC As String Private Property ReceptorRFC As String @@ -1046,15 +1049,21 @@ Partial Class Compras_Compras Set(value As Double) ViewState("RetISROriginal") = value End Set - End Property + End Property + Private Property TotalOriginal As Double Get - Return ViewState("TotalOriginal").ToString.ToDouble + If ViewState("TotalOriginal") Is Nothing Then + Return 0 + Else + Return ViewState("TotalOriginal").ToString.ToDouble + End If End Get Set(value As Double) ViewState("TotalOriginal") = value End Set End Property + Private Property ActualizaTotales As Boolean Get Return CBool(ViewState("ActualizaTotales")) @@ -2051,20 +2060,38 @@ Partial Class Compras_Compras Return RFC End Function - Private Sub CargaRetIVAConcepto(Optional Cambio As Boolean = False) + Private Sub CargaRetIVAConcepto(Optional Cambio As Boolean = False) + + + + + If TrRetIVA.Visible Then - TdRetIVAConcepto.Visible = True + TdRetIVAConcepto.Visible = True + + + + + + End If + If Cambio Then DdlRetIVAConcepto.Items.Clear() + If RFCProv.Length = 13 Then DdlRetIVAConcepto.Items.Insert(0, New ListItem("Honorarios/Serv. Prof.", "1")) DdlRetIVAConcepto.Items.Insert(1, New ListItem("Fletes P.F.", "2")) ElseIf RFCProv.Length = 12 Then DdlRetIVAConcepto.Items.Insert(0, New ListItem("Fletes P.M.", "3")) End If - DdlRetIVAConcepto.Items.Add(New ListItem("Arrendamiento", "4")) - End If + + DdlRetIVAConcepto.Items.Add(New ListItem("Arrendamiento", "4")) + DdlRetIVAConcepto.Items.Add(New ListItem("Ret IVA Servicios", "5")) + + End If + + UpPS.Update() End Sub @@ -2135,10 +2162,10 @@ Partial Class Compras_Compras TotalTemp = Total RetIVATemp = RetencionIVA RetISRTemp = RetencionISR - IEPSTemp = TrasladoIEPS + IEPSTemp = TrasladoIEPS End If - If TrasladoIEPS > 0 Or OtrosImpuestos > 0 Then + If TrasladoIEPS > 0 Or OtrosImpuestos > 0 Then RegistraScript("$('#ModalIEPS').modal('show');") If TrasladoIEPS > 0 Then @@ -2155,10 +2182,14 @@ Partial Class Compras_Compras CargaProductos(DdlConceptoOI, If(UsuarioActual.Empresa.Funcionalidad(305).ToString.ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(305).ToString.ToEntero, -1)) LbImporte2.Text = "$" + OtrosImpuestos.ToString End If - End If - - - + End If + + Dim MostrarRetIva6 As Boolean = False + + + + + TxtSubTotal.Text = SubtotalTemp.FormatoNumero TxtDescuento.Text = DescuentosTemp.FormatoNumero TxtSubTotal2.Text = Subtotal2Temp.FormatoNumero @@ -2166,8 +2197,8 @@ Partial Class Compras_Compras TxtTotal.Text = TotalTemp.FormatoNumero TxtRetIVA.Text = RetIVATemp.FormatoNumero TxtRetISR.Text = RetISRTemp.FormatoNumero - TxtIEPS.Text = IEPSTemp.FormatoNumero - + TxtIEPS.Text = IEPSTemp.FormatoNumero + TrDescuento.Visible = DescuentosTemp > 0 TrIEPS.Visible = IEPSTemp > 0 TrRetIVA.Visible = RetIVATemp > 0 @@ -2202,8 +2233,27 @@ Partial Class Compras_Compras LblRetISR.Text = (If(Subtotal2Temp > 0, (RetISRTemp / Subtotal2Temp), 0) * 100).FormatoNumero(3) 'ASIGNA VALORES ORIGINALES PARA GUARDAR - AsignaValoresOriginales(SubtotalTemp, Subtotal2Temp, IVATemp, RetIVATemp, RetISRTemp, Total) - + AsignaValoresOriginales(SubtotalTemp, Subtotal2Temp, IVATemp, RetIVATemp, RetISRTemp, Total) + + + + If RetencionIVA = 0 And IVAOriginal > 0 Then + + For Each dRow As DataRow In TmpDT.Rows + + If dRow("CveTipoPS").ToString.ToEntero = 1 Then + tdIVA6.Visible = True + Exit For + End If + + + Next + + End If + + + + End Sub ''' @@ -4347,7 +4397,7 @@ Partial Class Compras_Compras TxtRedondeo.Text.ToDouble, TxtTotal.Text.ToDouble, TxtFecha.Text.Trim.ToDate, DdlMoneda.SelectedValue.ToEntero, TipoCambio, TxtFechaPago.Text.Trim.ToDate, ChkAplicaNotaCredito.Checked, TxtObsFact.Text.Trim, CveEstatusFactura, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, IdPoliza, CveCajaChica:=CveCajaChica, CvePersonal:=CvePersonal, NumeroReembolso:=NumeroReembolso, CveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, AplicoPromocion:=ChkOCPromocion.Checked, PorcentajeIVA:=PorcentajeIVA, CveMetodoPago:=CveMetodoPago, CveRetIVAConcepto:=If(DdlRetIVAConcepto.Items.Count > 0, DdlRetIVAConcepto.SelectedValue.ToEntero, -1), CveConceptoContableAlmacen:=CveConceptoContableAlmacen, - CveRetISRConcepto:=If(DdlRetISRConcepto.Items.Count > 0, DdlRetISRConcepto.SelectedValue.ToEntero, -1), NoDeducible:=EsNoDeducible, CveTipoCompra:=DdlTipoCompra.SelectedValue.ToEntero) Then + CveRetISRConcepto:=If(DdlRetISRConcepto.Items.Count > 0, DdlRetISRConcepto.SelectedValue.ToEntero, -1), NoDeducible:=EsNoDeducible, CveTipoCompra:=DdlTipoCompra.SelectedValue.ToEntero, TotalOriginal:=TotalOriginal) Then ViewState("CveCompra") = ObjCompras.CveCompra If ObjCompras.DtResultados.Rows.Count > 0 Then ViewState("CompraFolio") = ObjCompras.DtResultados.Rows(0)("vFolio").ToString @@ -6086,7 +6136,8 @@ Partial Class Compras_Compras importeMovimiento = 0 End If - Case 65 'Perdida + Case 65 'Perdida + If TCPago <> 1 AndAlso TxtFechaPago.Text <> TxtFecha.Text Then IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria @@ -6099,8 +6150,37 @@ Partial Class Compras_Compras End If Else importeMovimiento = 0 - End If - + End If + Case 285 'Perdida + + + If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero + CveCuenta = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacionSIG").ToString.ToEntero + End If + End If + + + + + If DdlRetIVAConcepto.SelectedValue.ToEntero = 5 Then + + If CveMoneda = 2 Then + importeMN = TmpDT.SUMD("RetIVA") * TxtTC.Text.ToDecimal + Else + importeMN = TmpDT.SUMD("RetIVA") + importeMovimiento = TmpDT.SUMD("RetIVA") + + End If + + Else + importeMovimiento = 0 + End If + + + + Case 6 'Compra Dim AgregaMercanciaInventario As Boolean = UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119) AndAlso UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" @@ -16286,8 +16366,12 @@ Partial Class Compras_Compras RVDocumentoImporteCaja.MaximumValue = RVDocumentoImporte.MaximumValue CargaRetIVAConcepto() - CargaRetISRConcepto() - + CargaRetISRConcepto() + + + + + End Sub Private Sub OriginalesVisible(Accion As Boolean) tdT0.Visible = Accion @@ -19132,4 +19216,77 @@ Partial Class Compras_Compras End Sub #End Region + Protected Sub LnkActivaIva6_Click(sender As Object, e As EventArgs) + + TrRetIVA.Visible = True + TdRetIVAConcepto.Visible = True + + TotalOriginal = TxtTotal.Text.ToDecimal + + 'For Each dRow As DataRow In TmpDT.Rows + ' If dRow("CveTipoPS").ToString.ToEntero = 1 Then + ' tdIVA6.Visible = True + ' Exit For + ' End If + 'Next + + + For Each dRow As DataRow In TmpDT.Rows + If dRow("CvePS").ToString.ToEntero <= 0 Then + Alert("Debe de asignar producto a todas las partidas", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Next + + If RetencionIVA = 0 And IVAOriginal > 0 Then + + For Each dRow As DataRow In TmpDT.Rows + + If dRow("CveTipoPS").ToString.ToEntero = 1 Then + + + 'Dim InternalIVA As Decimal = 0D + Dim InternalRETIVA As Decimal = 0D + + 'InternalIVA = dRow("Cantidad").ToString.ToDecimal * dRow("PU").ToString.ToDecimal * 0.1D + InternalRETIVA = dRow("Cantidad").ToString.ToDecimal * dRow("PU").ToString.ToDecimal * 0.06D + + 'dRow("IVA") = InternalIVA + 'dRow("IVAPorcentaje") = 0.1D + dRow("RetIVA") = InternalRETIVA + ' dRow("IVAPorcentaje") = 0.1D + + End If + + Next + End If + + TmpDT.AcceptChanges() + + GvPS.DataSource = TmpDT + GvPS.DataBind() + + DdlRetIVAConcepto.SelectedValueExist("5") + + LblRetIVA.Text = "0.06%" + + RetencionIVA = TmpDT.SUMD("RetIVA") + TxtRetIVA.Text = RetencionIVA.ToString("###,###,###.00") + + 'TrasladoIVA = TmpDT.SUMD("IVA") + 'TxtIVA.Text = TrasladoIVA.ToString("###,###,###.00") + + + 'Total = Total - RetencionIVA + + TxtTotal.Text = (TxtTotal.Text.ToDecimal - RetencionIVA).ToString("###,###,###.00") + + UpPS.Update() + + + 'ValidacionesTotalesXml() + ValidaTotalesGuardar() + + End Sub + End Class \ No newline at end of file From c818ab392367f4cd7915530b5b3f3bb0f00ac0ae Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Thu, 26 Dec 2019 18:25:55 -0700 Subject: [PATCH 2/2] COMPRAS RET IVA 6% SERVICIOS --- Compras/Compras.aspx.vb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index e2d13433c..1137e4f71 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -18977,11 +18977,11 @@ Partial Class Compras_Compras End If Else Retorno = False - Exit For - End If - Else - '2018.11.24 se cambia concepto 177, de cargo a abono negativo., petición MALL - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, If(ConceptoSalida = 0, 177, 177), ConceptoPartida, Fecha, If(ConceptoSalida = 0, IdCtaContableAlmacen, IdCtaContableRecepcionOCER), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveCuenta:=CveCuentaAlmacen, CveOCDetalle:=CveOCDetalle) Then + Exit For + End If + Else + '2018.11.24 se cambia concepto 177, de cargo a abono negativo., petición MALL + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, SerieFolio, If(ConceptoSalida = 0, 177, 177), ConceptoPartida, Fecha, If(ConceptoSalida = 0, IdCtaContableAlmacen, IdCtaContableRecepcionOCER), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=-DiferenciaInvOC, CveCuenta:=CveCuentaAlmacen, CveOCDetalle:=CveOCDetalle) Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaInvOC, SerieFolio, 176, ConceptoPartida, Fecha, IdCtaContableRecepcionOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=DiferenciaInvOC, CveOCDetalle:=CveOCDetalle) Then Retorno = False Exit For