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 bd8123ac9..1137e4f71 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"
@@ -16288,8 +16368,12 @@ Partial Class Compras_Compras
RVDocumentoImporteCaja.MaximumValue = RVDocumentoImporte.MaximumValue
CargaRetIVAConcepto()
- CargaRetISRConcepto()
-
+ CargaRetISRConcepto()
+
+
+
+
+
End Sub
Private Sub OriginalesVisible(Accion As Boolean)
tdT0.Visible = Accion
@@ -18893,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
@@ -19135,4 +19219,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