- cambios en RNC

This commit is contained in:
2024-04-18 07:46:14 -07:00
parent b0265a72ad
commit bd9cf87ea3
4 changed files with 154 additions and 255 deletions

View File

@@ -8863,7 +8863,7 @@ Public Class ClsPaginas
Dim ConPreP As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(1, CompraActual.CveMoneda, True, CompraActual.CveTipoConceptoProveedor)
'cuando el Pago viene por NC, se utiliza un concepto
If Pago.TipoPago.Contiene("NC", "DEV") Then If CompraActual.CveMoneda = 2 Then ConPreP.CveConcepto = 304 Else ConPreP.CveConcepto = 272 'pago nota de crédito ME
If Pago.TipoPago.Contiene("NC", "DEV", "RNC") Then If CompraActual.CveMoneda = 2 Then ConPreP.CveConcepto = 304 Else ConPreP.CveConcepto = 272 'pago nota de crédito ME
'cuando el Pago viene por Venta, se utiliza un concepto
'If Pago.TipoPago.Contiene("Venta") Then If CompraActual.CveMoneda = 2 Then ConPreP.CveConcepto = 275 Else ConPreP.CveConcepto = 275 'Pago Compra con Venta
@@ -9163,24 +9163,6 @@ Public Class ClsPaginas
Ret.CveConceptoAcreditable = 333
Ret.CveConceptoxAcreditar = 334
End If
'If UsuarioActual.Empresa.TipoContabilidad = 2 Then
' Dim ObjConta As New ClsContabilidad
' If UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero > 0 Then
' Ret.IdCtaContablexAcreditar = UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero
' Else
' If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then
' If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero
' End If
' End If
' If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then
' Ret.IdCtaContableAcreditable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero
' Else
' If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then
' If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero
' End If
' End If
' ObjConta.Dispose()
'End If
Return Ret
End Get
End Property

View File

@@ -1689,12 +1689,6 @@ Partial Class Compras_Compras
DdlTipoComprobante.Items.Add(New ListItem("Devolución", "DEV"))
DdlTipoComprobante.SelectedValueExist("DEV")
End If
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 Then
DdlTipoCompra.Items.Add(New ListItem("Remision Nota De Crédito", "15"))
End If
End If
'SE OCUPAN AFUERA DEL POSTBACK ??
@@ -7013,56 +7007,31 @@ Partial Class Compras_Compras
End If
End If
Next
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then
If DdlRemisionNotaCredito.SelectedValue.ToEntero > 0 AndAlso ImporteRNCSaldar > 0 Then
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 AndAlso DdlRemisionNotaCredito.SelectedValue.ToEntero > 0 AndAlso ImporteRNCSaldar > 0 Then
If Not ErrorPrepoliza Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteRNCSaldar, ImporteRNCSaldar, 373, Referencia, Concepto, CveCompra:=DdlRemisionNotaCredito.SelectedValue.ToEntero, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
ErrorPrepoliza = True
End If
'Dim importeMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
If Not ErrorPrepoliza Then
Dim ConPrePNC As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(15, CompraActual.CveMoneda, True, CompraActual.CveTipoConceptoProveedor)
Dim Pago As New CompraPago
Pago.ImportePago = ImporteRNCSaldar
Pago.CveMonedaPago = CompraActual.CveMoneda
Pago.CveCompraAmortizacion = CompraActual.CveCompra
Pago.Referencia = CompraActual.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
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteRNCSaldar, ImporteRNCSaldar, ConPrePNC.CveConcepto, Referencia, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
ErrorPrepoliza = True
End If
End If
End If
End If
Dim CompraPago As New Compra
''datos de la compra tipodocto:Fac, para sobreescribirlos
CompraPago.CveCompra = DdlRemisionNotaCredito.SelectedValue.ToEntero
CompraPago.CveProveedor = DdlProveedor.SelectedValue.ToEntero
CompraPago.SerieFolio = SerieFolioProntoPago
CompraPago.TC = TipoCambioProntoPago
CompraPago.Fecha = FechaProntoPago
CompraPago.CveMoneda = CveMonedaProntoPago
CompraPago.Total = ImporteRNCSaldar
CompraPago.CveTipoConceptoProveedor = CveTipoConcepto
CompraPago.CveSubProyecto = CompraActual.CveSubProyecto
ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta)
'If Not ErrorPrepoliza Then
' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteRNCSaldar, ImporteRNCSaldar, 371, Referencia, Concepto, CveCompra:=DdlRemisionNotaCredito.SelectedValue.ToEntero, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
' CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
' ErrorPrepoliza = True
' End If
' If Not ErrorPrepoliza Then
' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteRNCSaldar, ImporteRNCSaldar, 372, Referencia, Concepto, CveCompra:=DdlRemisionNotaCredito.SelectedValue.ToEntero, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
' CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
' ErrorPrepoliza = True
' End If
' End If
'End If
End If
If ErrorPrepoliza Then
ErrorMovtosCxP = True
Exit Select
If ErrorPrepoliza Then
ErrorMovtosCxP = True
Exit Select
End If
End If
importeMovimiento = 0
@@ -7627,8 +7596,8 @@ Partial Class Compras_Compras
End If
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 AndAlso (ImporteRNC > 0 Or ImporteRNCProntoPago > 0) Then
If Not GeneraRemisionsNotadeCredito(ObjCompras.IniciaTransacSQL, CveCompra) Then
If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 Or ImporteRNCProntoPago > 0) Then
If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza) Then
TieneError = True
End If
End If
@@ -14738,10 +14707,6 @@ Partial Class Compras_Compras
IndexTmpOriginal += 1
Next
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 AndAlso (AjusteProntoPagoConIVA > 0 Or AjusteProntoPagoSinIVA > 0) Then
Dim CvePS_RNC As Integer = UsuarioActual.Empresa.Funcionalidad(580).ToEntero
@@ -15680,6 +15645,13 @@ Partial Class Compras_Compras
If DdlTipoComprobante.SelectedValue = "NC" Then
DivReembolso.Visible = False
RBLPago.Items(2).Enabled = False
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then
If DdlTipoCompra.Items.FindByValue("15") Is Nothing Then
DdlTipoCompra.Items.Add(New ListItem("Remision Nota De Crédito", "15"))
UpEstatus.Update()
End If
End If
Else
DivReembolso.Visible = True
RBLPago.Items(2).Enabled = True
@@ -19540,20 +19512,18 @@ Partial Class Compras_Compras
If DdlTipoComprobante.SelectedValue = "NC" Then
CargaDdlRemisionNotaCredito()
'bloquear la vinculación a la compra
HLAplicaNCFact.Visible = False
Else
Alert("Para elegir Remisión de Nota de Crédito el tipo de documento debe de ser Nota de Crédito.", TipoMensaje.MsgAdvertencia)
DdlRemisionNotaCredito.SelectedValueExist(-1)
DdlTipoCompra.SelectedValueExist(-1)
End If
End If
End Sub
#End Region
#Region "GARANTÍAS"
@@ -20867,7 +20837,7 @@ Partial Class Compras_Compras
#Region "PRONTO PAGO"
Public Function GeneraRemisionsNotadeCredito(ByRef trasaccion As SqlTransaction, CveCompraRegistrada As Integer) As Boolean
Public Function GeneraRNC(ByRef sqltransaccion As SqlTransaction, CveCompraRegistrada As Integer, ByRef CompraActual As Compra, ByRef ObjConta As ClsContabilidad, CvePrePoliza As Integer) As Boolean
Dim respuesta As Boolean = True
Dim PorcentajeIVA As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal
@@ -20890,20 +20860,20 @@ Partial Class Compras_Compras
If PSRow IsNot Nothing Then
Dim CompraRNC As New ClsCompraManagerCompras("", ClsCompraManagerCompras.EnumCargaCompra.SinXML, GlobalDTTiposGastos(UsuarioActual.CveEmpresa), UsuarioActual)
CompraRNC.CveFactura = -1
CompraRNC.CveProveedor = DdlProveedor.SelectedValue.ToEntero
CompraRNC.CveTipoProveedor = CveTipoProveedor
CompraRNC.CveTipoConceptoProveedor = CveTipoConcepto
CompraRNC.TipoCompra = ClsCompraManagerCompras.EnumTipoCompra.Sin_definir
CompraRNC.IEPSGasto = False
CompraRNC.Descripcion = $"Remisión Nota de Crédito {TxtDescripcion.Text}"
CompraRNC.NombreProveedor = DdlProveedor.SelectedItem.Text
CompraRNC.Fecha = TxtFecha.Text.ToDate
CompraRNC.CveMoneda = DdlMoneda.SelectedValue.ToEntero
CompraRNC.Serie = TxtSerie.Text
CompraRNC.Folio = TxtFolio.Text
CompraRNC.CveCompraAmortizacion = CveCompraRegistrada
Dim CompraRNC As New ClsCompraManagerCompras(UsuarioActual) With {
.CveFactura = -1,
.TipoDocto = "RNC",
.CveProveedor = DdlProveedor.SelectedValue.ToEntero,
.CveTipoProveedor = CveTipoProveedor,
.CveTipoConceptoProveedor = CveTipoConcepto,
.Descripcion = $"Remisión Nota de Crédito {TxtDescripcion.Text}",
.NombreProveedor = DdlProveedor.SelectedItem.Text,
.Fecha = TxtFecha.Text.ToDate,
.CveMoneda = DdlMoneda.SelectedValue.ToEntero,
.Serie = TxtSerie.Text,
.Folio = TxtFolio.Text,
.CveCompraAmortizacion = CveCompraRegistrada
}
Dim CveTipoPS As Integer = PSRow("CveTipoPS").ToString.ToEntero
If PSRow("CvePSCargo").ToString <> "" Then
@@ -20917,42 +20887,62 @@ Partial Class Compras_Compras
Dim UM As String = PSRow("UnidadMedida").ToString
Dim IVARNC As Decimal = (ImporteRNC * PorcentajeIVA).RoundSQL(2)
CompraRNC.ConfiguraRegistroRapidoRNC(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNC, (ImporteRNC + IVARNC), IVARNC)
If Not CompraRNC.AddCompraRNC(trasaccion) Then
CompraRNC.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNC, IVARNC, (ImporteRNC + IVARNC), PorcentajeIVA)
If CompraRNC.AddCompra(sqltransaccion) Then
Dim tImporteRNC = ImporteRNC + IVARNC ' le agrego el importe del iva
Dim Pago As New CompraPago
Pago.ImportePago = tImporteRNC
Pago.CveMonedaPago = CompraActual.CveMoneda
Pago.CveCompraAmortizacion = CompraRNC.CveCompra
Pago.Referencia = CompraRNC.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
If respuesta Then
If respuesta AndAlso ImporteRNCProntoPago > 0 Then
Dim CompraRNCProntoPAgo As New ClsCompraManagerCompras("", ClsCompraManagerCompras.EnumCargaCompra.SinXML, GlobalDTTiposGastos(UsuarioActual.CveEmpresa), UsuarioActual)
CompraRNCProntoPAgo.CveFactura = -1
CompraRNCProntoPAgo.CveProveedor = DdlProveedor.SelectedValue.ToEntero
CompraRNCProntoPAgo.CveTipoProveedor = CveTipoProveedor
CompraRNCProntoPAgo.CveTipoConceptoProveedor = CveTipoConcepto
CompraRNCProntoPAgo.TipoCompra = ClsCompraManagerCompras.EnumTipoCompra.Sin_definir
CompraRNCProntoPAgo.IEPSGasto = False
CompraRNCProntoPAgo.Descripcion = $"Remisión Nota de Crédito {TxtDescripcion.Text}"
CompraRNCProntoPAgo.NombreProveedor = DdlProveedor.SelectedItem.Text
CompraRNCProntoPAgo.Fecha = TxtFecha.Text.ToDate
CompraRNCProntoPAgo.CveMoneda = DdlMoneda.SelectedValue.ToEntero
CompraRNCProntoPAgo.Serie = $"PP-{TxtSerie.Text}"
CompraRNCProntoPAgo.Folio = $"{TxtFolio.Text}"
CompraRNCProntoPAgo.CveCompraAmortizacion = CveCompraRegistrada
Dim IVARNCProntoPago As Decimal = (ImporteRNC * PorcentajeIVA).RoundSQL(2)
Dim CompraRNCProntoPago As New ClsCompraManagerCompras(UsuarioActual) With {
.TipoDocto = "RNC",
.CveProveedor = DdlProveedor.SelectedValue.ToEntero,
.CveTipoProveedor = CveTipoProveedor,
.CveTipoConceptoProveedor = CveTipoConcepto,
.Descripcion = $"Remisión Nota de Crédito {TxtDescripcion.Text}",
.NombreProveedor = DdlProveedor.SelectedItem.Text,
.Fecha = TxtFecha.Text.ToDate,
.CveMoneda = DdlMoneda.SelectedValue.ToEntero,
.Serie = $"PP-{TxtSerie.Text}",
.Folio = $"{TxtFolio.Text}",
.CveCompraAmortizacion = CveCompraRegistrada
}
Dim IVARNCProntoPago As Decimal = (ImporteRNCProntoPago * PorcentajeIVA).RoundSQL(2)
CompraRNCProntoPAgo.ConfiguraRegistroRapidoRNC(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNCProntoPago, (ImporteRNCProntoPago + IVARNCProntoPago), IVARNCProntoPago)
If Not CompraRNCProntoPAgo.AddCompraRNC(trasaccion) Then
CompraRNCProntoPago.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNCProntoPago, (ImporteRNCProntoPago + IVARNCProntoPago), IVARNCProntoPago, PorcentajeIVA)
If CompraRNCProntoPago.AddCompra(sqltransaccion) Then
Dim tImporteRNCProntoPago = ImporteRNCProntoPago + IVARNC ' 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
Return respuesta
End Function
Public Property VincularOcProntoPago As Boolean
Get
If ViewState("VincularOcProntoPago") Is Nothing Then
@@ -20970,12 +20960,11 @@ Partial Class Compras_Compras
If VincularOcProntoPago Then
Return True
Else
Dim StrMsg As String = $"Existe una diferencia de ${(ImporteRNC + ImporteRNCProntoPago).ToString("###,###,###.00")} entre la compra y la Orden de Compra. <br/> Se generaran Remisiones de Nota de Crédito. <br/> - Descuento de ${ImporteRNC.ToString("###,###,###.00")}.<br/>"
If ImporteRNCProntoPago > 0 Then
LblModalConfirmaVinculacionProntoPago.Text = $"Existe una diferencia de ${(ImporteRNC + ImporteRNCProntoPago).ToString("###,###,###.00")} entre la compra y la Orden de Compra. <br/> Se generaran las siguientes Remisiones de Nota de Crédito. <br/> - Descuento de ${ImporteRNC.ToString("###,###,###.00")}.<br/> - Pronto pago de ${ImporteRNCProntoPago.ToString("###,###,###.00")}"
Else
LblModalConfirmaVinculacionProntoPago.Text = $"Existe una diferencia de ${(ImporteRNC).ToString("###,###,###.00")} entre la compra y la Orden de Compra, se generara una Remision de Nota de Crédito por descuento de ${ImporteRNC.ToString("###,###,###.00")}"
StrMsg = StrMsg & $"- Pronto pago de ${ImporteRNCProntoPago.ToString("###,###,###.00")}"
End If
LblModalConfirmaVinculacionProntoPago.Text = StrMsg
RegistraScript("$('#DVModalConfirmaVinculacionProntoPago').modal('show');")
UpModalConfirmaVinculacionProntoPago.Update()
@@ -21002,15 +20991,12 @@ Partial Class Compras_Compras
If ObjCompras.GetNotasCreditoRep(DdlProveedor.SelectedValue.ToEntero, 0, "-1", "-1", UsuarioActual.CveEmpresa, 2) Then
DdlRemisionNotaCredito.DataSource = ObjCompras.DtResultados
DTRemisionesNotaDeCredito = ObjCompras.DtResultados
Else
Alert("Ocurrió un error al obtener el catálogo de Notas de Crédito", Extensiones.TipoMensaje.MsgError)
End If
ObjCompras.Dispose()
DdlRemisionNotaCredito.DataBind()
DdlRemisionNotaCredito.Items.Insert(0, New ListItem("-", "-1"))
UpEstatus.Update()
End Sub
@@ -21069,11 +21055,11 @@ Public Class ClsCompraManagerCompras
End Enum
Public Enum EnumCFDIVersion
v32
V33
V40
v33
v40
End Enum
Public Enum EnumTipoCompra
Sin_definir = -1
SinDefinir = -1
Gasto_con_almacen = 10
Activo_Fijo = 1
'Costo_Indirecto = 2
@@ -21112,7 +21098,7 @@ Public Class ClsCompraManagerCompras
Public Property Folio As String = ""
Public Property FolioSecundario As String = ""
Public Property Descripcion As String = ""
Public Property CFDIVersion As EnumCFDIVersion = EnumCFDIVersion.V40
Public Property CFDIVersion As EnumCFDIVersion = EnumCFDIVersion.v40
Public Property ProveedorNombre As String = ""
Public Property EsImportacion As Boolean = False
Public Property TC As Decimal = 1
@@ -21122,6 +21108,7 @@ Public Class ClsCompraManagerCompras
Public Property Total As Decimal = 0D
Public Property Moneda As String = ""
Public Property TipoComprobante As String
Public Property TipoDocto As String = "Fac"
Public Property TipoCambio As Decimal = 1
Public Property CompraNoDeducible As Integer = 0
Public Property IVA As Decimal = 0D
@@ -21269,7 +21256,7 @@ Public Class ClsCompraManagerCompras
Public Property Proyecto As String = ""
Public Property CveProyecto As Integer = -1
Public Property SubProyecto As String = ""
Public Property TipoCompra As EnumTipoCompra = EnumTipoCompra.Sin_definir
Public Property TipoCompra As EnumTipoCompra = EnumTipoCompra.SinDefinir
Private Property DTTiposGastos() As DataTable
Public Property CveTipoProveedor As Integer = -1
Public Property IEPSGasto As Boolean = False
@@ -21282,14 +21269,19 @@ Public Class ClsCompraManagerCompras
Public Property CveIE As Integer = -1
Public Property CveCompraAmortizacion As Integer = -1
Public Sub New(XmlFuente As String, OpcionCarga As EnumCargaCompra, DTTiposGastos As DataTable, UsuarioActual As Usuario)
Public Sub New(UsuarioActual As Usuario)
Errores = New StringBuilder
Me.DTTiposGastos = DTTiposGastos
Me.UsuarioActual = UsuarioActual
End Sub
Public Sub New(XmlFuente As String, OpcionCarga As EnumCargaCompra, DTTiposGastos As DataTable, UsuarioActual As Usuario)
Errores = New StringBuilder
Me.DTTiposGastos = DTTiposGastos
Me.UsuarioActual = UsuarioActual
If OpcionCarga = EnumCargaCompra.SinXML Then
@@ -21300,11 +21292,10 @@ Public Class ClsCompraManagerCompras
CargaDesdeString(XmlFuente)
End If
End If
End Sub
#Region "C A R G A S D E F U E N T E S "
Private Sub CargaDesdeArchivo(XmlFuenteRuta As String)
Dim XMLDoc As New XmlDocument
@@ -21350,7 +21341,6 @@ Public Class ClsCompraManagerCompras
End If
End Sub
Private Sub CargaComprobanteXML(XMLDoc As XmlDocument)
Dim nodo As XmlNode = XMLDoc.DocumentElement
@@ -21361,9 +21351,9 @@ Public Class ClsCompraManagerCompras
If StrCFDIVerion = "3.2" Then
CFDIVersion = EnumCFDIVersion.v32
ElseIf StrCFDIVerion = "3.3" Then
CFDIVersion = EnumCFDIVersion.V33
CFDIVersion = EnumCFDIVersion.v33
ElseIf StrCFDIVerion = "4.0" Then
CFDIVersion = EnumCFDIVersion.V40
CFDIVersion = EnumCFDIVersion.v40
Else
GuardaLog($"CFDI Versión {StrCFDIVerion} no soportada")
Errores.AppendLine($"CFDI Versión {StrCFDIVerion} no soportada")
@@ -21389,7 +21379,7 @@ Public Class ClsCompraManagerCompras
TipoComprobante = ValorXML(nodo, "tipoDeComprobante")
TipoCambio = ValorXML(nodo, "TipoCambio", "1").ToDecimal
If CFDIVersion = EnumCFDIVersion.V33 Or CFDIVersion = EnumCFDIVersion.V40 Then
If CFDIVersion = EnumCFDIVersion.v33 Or CFDIVersion = EnumCFDIVersion.v40 Then
Dim drm As DataRow = GlobalDTVtaMetodoPago.FiltroPrimero(String.Format("ClaveMetodoPagoSAT = '{0}'", ValorXML(nodo, "MetodoPago")))
If drm IsNot Nothing Then
CveMetodoPago = drm("CveMetodoPago").ToString.ToEntero
@@ -21404,7 +21394,7 @@ Public Class ClsCompraManagerCompras
If CFDIVersion = EnumCFDIVersion.v32 Then
Prefijo = "cfd"
cfdVer = "http://www.sat.gob.mx/cfd/2"
ElseIf CFDIVersion = EnumCFDIVersion.V33 Then
ElseIf CFDIVersion = EnumCFDIVersion.v33 Then
cfdVer = "http://www.sat.gob.mx/cfd/3"
Else ' se considera que es la version 4.0
cfdVer = "http://www.sat.gob.mx/cfd/4"
@@ -21415,7 +21405,7 @@ Public Class ClsCompraManagerCompras
namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal")
namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal")
If TipoComprobante.ToUpper = "E" AndAlso (CFDIVersion = EnumCFDIVersion.V33 OrElse CFDIVersion = EnumCFDIVersion.V40) Then
If TipoComprobante.ToUpper = "E" AndAlso (CFDIVersion = EnumCFDIVersion.v33 OrElse CFDIVersion = EnumCFDIVersion.v40) Then
Dim UUIDS As String = ""
Dim UUIDSLista As New List(Of String)
@@ -21465,7 +21455,7 @@ Public Class ClsCompraManagerCompras
TotalRetenciones = ValorXML(node, "totalImpuestosRetenidos", "0").ToDecimal
If CFDIVersion = EnumCFDIVersion.V33 OrElse CFDIVersion = EnumCFDIVersion.V40 Then
If CFDIVersion = EnumCFDIVersion.v33 OrElse CFDIVersion = EnumCFDIVersion.v40 Then
For Each retencion As XmlNode In nodeRetenciones
If retencion.Attributes("Impuesto").Value = "002" Then RetencionIVA += retencion.Attributes("Importe").Value.ToDecimal
@@ -21485,7 +21475,7 @@ Public Class ClsCompraManagerCompras
TotalTraslados = ValorXML(node, "totalImpuestosTrasladados", "0").ToDecimal
Dim nodeTraslados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Impuestos/{0}:Traslados/{0}:Traslado", Prefijo), namespaces)
If CFDIVersion = EnumCFDIVersion.V33 OrElse CFDIVersion = EnumCFDIVersion.V40 Then
If CFDIVersion = EnumCFDIVersion.v33 OrElse CFDIVersion = EnumCFDIVersion.v40 Then
For Each traslado As XmlNode In nodeTraslados
@@ -21586,7 +21576,7 @@ Public Class ClsCompraManagerCompras
ObjeFacturas.Dispose()
If CFDIVersion = EnumCFDIVersion.V33 OrElse CFDIVersion = EnumCFDIVersion.V40 Then
If CFDIVersion = EnumCFDIVersion.v33 OrElse CFDIVersion = EnumCFDIVersion.v40 Then
If Not TmpDT.Columns.Contains("Amortizacion") Then
TmpDT.Columns.Add("Amortizacion", GetType(Decimal))
End If
@@ -21599,6 +21589,8 @@ Public Class ClsCompraManagerCompras
#End Region
End Sub
#End Region
Public Function ConfiguraRegistroRapidoReembolso(CvePS As Integer, CveSubProyecto As Integer, CveCajaChica As Integer, CvePersonal As Integer, CveRetIVAConcepto As Integer, CveRetISRConcepto As Integer, NumeroReembolso As String) As Boolean
Dim respuesta As Boolean = True
@@ -21645,8 +21637,8 @@ Public Class ClsCompraManagerCompras
Return respuesta
End Function
Public Function ConfiguraRegistroRapidoRNC(CvePS As Integer, CveUM As Integer, UM As String, CveClasificacion As Integer, Clasificacion As String, PS As String, CveSubProyecto As Integer, SubProyecto As String,
SubTotal As Decimal, Total As Decimal, IVA As Decimal) As Boolean
Public Function ConfiguraRegistroRapido(CvePS As Integer, CveUM As Integer, UM As String, CveClasificacion As Integer, Clasificacion As String, PS As String, CveSubProyecto As Integer, SubProyecto As String,
SubTotal As Decimal, IVA As Decimal, Total As Decimal, PorcentajeIVA As Decimal) As Boolean
Dim respuesta As Boolean = True
Me.CveSubProyecto = CveSubProyecto
@@ -21660,7 +21652,7 @@ Public Class ClsCompraManagerCompras
Me.SubTotal = SubTotal
Me.IVA = IVA
Me.Total = Total
Me.PorcentajeIVA = PorcentajeIVA
Dim dRowSubProyecto As DataRow = GlobalDTSubProyectos(-1, CveSubProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("")
@@ -21673,9 +21665,8 @@ Public Class ClsCompraManagerCompras
Return False
End If
CreaDTCompras()
AddPS(1, CveUM, UM, CveClasificacion, Clasificacion, CvePS, PS, 1, CveSubProyecto.ToString, SubProyecto, "", "-1", "", SubTotal, SubTotal, 0, 0, 0, 0, 0, 0)
AddPS(1, CveUM, UM, CveClasificacion, Clasificacion, CvePS, PS, 1, CveSubProyecto.ToString, SubProyecto, "", "-1", "", SubTotal, Total, 0, 0, 0, 0, 0, 0, PorcentajeIVA:=PorcentajeIVA)
'If respuesta AndAlso IEPS > 0 Then
' If Not AgregaIEPSReembolso(CvePS:=CvePS) Then
@@ -22543,16 +22534,16 @@ Public Class ClsCompraManagerCompras
Row("IVA") = 0
Row("IVAPorcentaje") = 0
Else
Row("IVA") = (IVA * Total).RoundSQL
Row("IVAPorcentaje") = IVA
Row("IVA") = (PorcentajeIVA * Total).RoundSQL
Row("IVAPorcentaje") = PorcentajeIVA
End If
Row("RetIVA") = (RetIVA * Total).RoundSQL
Row("RetIVAPorcentaje") = RetIVA
Row("RetISR") = (RetISR * Total).RoundSQL
Row("RetISRPorcentaje") = RetISR
Row("IEPSPS") = (IEPSPS * Total).RoundSQL
Row("IEPSPSPorcentaje") = IEPSPS
Row("RetIVA") = (PorcentajeRetIVA * Total).RoundSQL
Row("RetIVAPorcentaje") = PorcentajeRetIVA
Row("RetISR") = (PorcentajeRetISR * Total).RoundSQL
Row("RetISRPorcentaje") = PorcentajeRetISR
Row("IEPSPS") = (PorcentajeIEPS * Total).RoundSQL
Row("IEPSPSPorcentaje") = PorcentajeIEPS
End If
Row("ImporteConImpuestos") = (Row("Cantidad").ToString.ToDecimal * Row("PU").ToString.ToDecimal) + Row("IVA").ToString.ToDecimal + Row("IEPSPS").ToString.ToDecimal - (Row("RetIVA").ToString.ToDecimal + Row("RetISR").ToString.ToDecimal)
@@ -22877,19 +22868,25 @@ Public Class ClsCompraManagerCompras
End If
End Function
Public Function AddCompra() As Boolean
Public Function AddCompra(Optional ByRef transacccion As SqlTransaction = Nothing) As Boolean
If Not AjustesValidacion() Then Return False
Dim respuesta As Boolean = True
Dim ObjCompras As New ClsCompras
Dim ObjCompras As ClsCompras
If transacccion IsNot Nothing Then
ObjCompras = New ClsCompras(transacccion)
Else
ObjCompras = New ClsCompras
End If
Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL())
If Not AddPrepolizaCabecera(ObjConta) Then
respuesta = False
End If
If respuesta AndAlso ObjCompras.AddCompra(If(Me.TipoComprobante = "I", "Fac", "NC"), Me.Descripcion, Me.Serie, Me.Folio, Me.FolioSecundario, Me.CveProveedor, Me.SubTotal, Me.Descuento,
If respuesta AndAlso ObjCompras.AddCompra(Me.TipoDocto, Me.Descripcion, Me.Serie, Me.Folio, Me.FolioSecundario, Me.CveProveedor, Me.SubTotal, Me.Descuento,
Me.Amortizacion, Me.IVA, Me.RetIVA, Me.RetISR, Me.IEPS, Me.OtrosImpuestos,
Me.Redondeo, Me.Total, Me.Fecha, Me.CveMoneda, Me.TipoCambio, If(Me.FechaPago = Nothing, Me.Fecha, Me.FechaPago), Me.AplicaNotaCredito, Me.Observaciones, Me.CveEstatusFactura,
Me.CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Me.IdPoliza, CveCajaChica:=Me.CveCajaChica, CvePersonal:=Me.CvePersonal, NumeroReembolso:=Me.NumeroReembolso, CveProveedorSucursal:=Me.CveProveedorSucursal,
@@ -22940,111 +22937,31 @@ Public Class ClsCompraManagerCompras
End If
End If
If respuesta Then
If respuesta AndAlso Me.CveFactura > 0 Then
If Not ObjCompras.UpdateCompraFactura(Me.CveCompra, Me.CveFactura, Me.Serie, Me.Folio) Then respuesta = False
End If
If respuesta Then
ObjCompras.Commit()
Else
ObjCompras.RollBack()
End If
ObjCompras.Dispose()
ObjConta.Dispose()
Return respuesta
End Function
Public Function AddCompraRNC(ByRef transacccion As SqlTransaction) As Boolean
If Not AjustesValidacion() Then Return False
Dim respuesta As Boolean = True
Dim ObjCompras As New ClsCompras(transacccion)
Dim ObjConta As New ClsContabilidad(transacccion)
If Not AddPrepolizaCabecera(ObjConta) Then
respuesta = False
End If
If respuesta AndAlso ObjCompras.AddCompra("RNC", Me.Descripcion, Me.Serie, Me.Folio, Me.FolioSecundario, Me.CveProveedor, Me.SubTotal, Me.Descuento,
Me.Amortizacion, Me.IVA, Me.RetIVA, Me.RetISR, Me.IEPS, Me.OtrosImpuestos,
Me.Redondeo, Me.Total, Me.Fecha, Me.CveMoneda, Me.TipoCambio, If(Me.FechaPago = Nothing, Me.Fecha, Me.FechaPago), Me.AplicaNotaCredito, Me.Observaciones, Me.CveEstatusFactura,
Me.CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Me.IdPoliza, CveCajaChica:=Me.CveCajaChica, CvePersonal:=Me.CvePersonal, NumeroReembolso:=Me.NumeroReembolso, CveProveedorSucursal:=Me.CveProveedorSucursal,
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
Me.CveCompra = ObjCompras.CveCompra
Else
respuesta = False
End If
If respuesta AndAlso Me.CveCompra > 0 Then
For Each Row As DataRow In Me.TmpDT.Rows
Dim TipoRecepcion As Integer = -1
Dim Referencia As String = ""
Dim EsNoDeducible As Boolean = False
Dim CveAF As Integer = If(Row("CveActivoFijo").ToString.ToEntero > 0 AndAlso Row("TipoAF").ToString.ToEntero = 1, Row("CveActivoFijo").ToString.ToEntero, -1)
Dim CveAFC As Integer = If(Row("CveActivoFijo").ToString.ToEntero > 0 AndAlso Row("TipoAF").ToString.ToEntero = 2, Row("CveActivoFijo").ToString.ToEntero, -1)
If Not ObjCompras.AddCompraDetalle(Me.CveCompra, Row("CveUM").ToString.ToEntero, Row("CvePS").ToString.ToEntero, Row("CveSubProyecto").ToString.ToEntero, -1, CveAF,
Row("Cantidad").ToString.ToDecimal, Row("PU").ToString.ToDecimal, Row("IVA").ToString.ToDecimal, Row("Total").ToString.ToDecimal, Row("Descuento").ToString.ToDecimal,
Row("Obs").ToString, Row("CveOrdenCompraDetalle").ToString.ToEntero, TipoRecepcion, Row("CveContrato").ToString.ToEntero, Row("CvePresupuestoEgreso").ToString.ToEntero,
AplicaCostoIndirecto:=Row("AplicaCostoIndirecto").ToString.ToEntero, EstatusAlmacen:=Row("EntregaDirecta").ToString.ToEntero, CvePersonal:=CvePersonal,
CveTipoGasto:=Row("CveTipoGasto").ToString.ToEntero, AF_Medida:=Row("AFMedida").ToString.ToEntero, AF_TipoMantenimiento:=Row("AFTipoMantenimiento").ToString.ToEntero, Referencia:=Referencia, OtrosGastos:=Row("OtrosGastos").ToString.ToDecimal,
RetIVA:=Row("RetIVA").ToString.ToDecimal, RetISR:=Row("RetISR").ToString.ToDecimal, IEPSPS:=Row("IEPSPS").ToString.ToDecimal.RoundSQL, IEPSPSIVA:=Row("IEPSPSIVA").ToString.ToDecimal,
IVAPorcentaje:=Row("IVAPorcentaje").ToString.ToDecimal, RetIVAPorcentaje:=Row("RetIVAPorcentaje").ToString.ToDecimal, RetISRPorcentaje:=Row("RetISRPorcentaje").ToString.ToDecimal,
IEPSPSPorcentaje:=Row("IEPSPSPorcentaje").ToString.ToDecimal, IEPSPSIVAPorcentaje:=Row("IEPSPSIVAPorcentaje").ToString.ToDecimal, NoDeducible:=If((Row("NoDeducible").ToString().ToUpper().Contiene("TRUE", "1")) AndAlso EsNoDeducible, True, False),
CveContratoDetalle:=Row("CveContratoDetalle").ToString.ToEntero, CveCultivoCuadroDetalle:=Row("CveCultivoCuadroDetalle").ToString.ToEntero, CveActivoFijoCompra:=CveAFC) Then
respuesta = False
Exit For
End If
Next
End If
If respuesta Then
If Not AddPrePolizaDetalles(ObjConta, True) Then respuesta = False
End If
If respuesta AndAlso ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, 4) Then
If ObjConta.ValorPolizaDescuadre > 0 Then
Errores.AppendLine($"Compras/RNC | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}.")
GuardaLogAD($"Compras/RNC | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
respuesta = False
If transacccion Is Nothing Then 'SINO VIENE DE UNA TRANSACCIÓN
If respuesta Then
ObjCompras.Commit()
Else
ObjCompras.RollBack()
End If
ObjCompras.Dispose()
ObjConta.Dispose()
End If
'If respuesta Then
' If Not ObjCompras.UpdateCompraFactura(Me.CveCompra, Me.CveFactura, Me.Serie, Me.Folio) Then respuesta = False
'End If
'If respuesta Then
' ObjCompras.Commit()
'Else
' ObjCompras.RollBack()
'End If
'ObjCompras.Dispose()
'ObjConta.Dispose()
Return respuesta
End Function
Private Function AddPrepolizaCabecera(ByRef ObjConta As ClsContabilidad, Optional ES_RNC As Boolean = False) As Boolean
Private Function AddPrePolizaCabecera(ByRef ObjConta As ClsContabilidad) As Boolean
Dim respuesta As Boolean = False
Dim ConceptoPoliza As String = String.Format("{0} - {1} - {2}", NombreProveedor, SerieFolio, "")
Dim Modulo As String = "eFacturas/Registrar"
If ES_RNC Then
If Me.TipoDocto = "RNC" Then
ConceptoPoliza = String.Format("{0} - {1} - {2}", NombreProveedor, SerieFolio, "")
Modulo = "Compras/RNC"
End If
@@ -23060,7 +22977,7 @@ Public Class ClsCompraManagerCompras
Dim Concepto As String = $"{Me.NombreProveedor} {Me.SerieFolio}"
Dim Referencia As String = Me.SerieFolio
If ES_RNC Then
If TipoDocto = "RNC" Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Me.Total, Me.Total, 370, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=Me.CveCompraAmortizacion, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, Me.Total), TipoCambio:=TipoCambio,
CveClasificacion:=-1, CveSubProyecto:=Me.CveSubProyecto, Contabilizable:=True) Then
@@ -23108,7 +23025,7 @@ Public Class ClsCompraManagerCompras
If respuesta AndAlso Me.IEPS > 0 Then
importeMovimiento = Me.IEPS
importeMN = (importeMovimiento * Me.TipoCambio).RoundSQL
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, importeMN, 25, Referencia, Concepto, CveCompra:=CveCompra, CveSubProyecto:=Me.CveSubProyectoPrincipal, CveProveedor:=Me.CveProveedor, CveIE:=Me.CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(Me.TipoCambio = 1, 0, importeMovimiento), TipoCambio:=Me.TipoCambio, PorcentajeImpuesto:=0, Contabilizable:=True) Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, importeMN, 25, Referencia, Concepto, CveCompra:=CveCompra, CveSubProyecto:=Me.CveSubProyectoPrincipal, CveProveedor:=Me.CveProveedor, CveIE:=Me.CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(Me.TipoCambio = 1, 0, importeMovimiento), TipoCambio:=Me.TipoCambio, PorcentajeImpuesto:=0, Contabilizable:=True) Then
respuesta = False
End If
End If

View File

@@ -58,7 +58,7 @@ Partial Class Compras_RepNotasCredito
If Tab.ActiveTabIndex = 0 Then
CargaDatos()
Else
CargaDatosRemisiones()
CargaDatosRNC()
End If
End Sub
@@ -142,7 +142,7 @@ Partial Class Compras_RepNotasCredito
#Region "REMISIONES"
Private Sub CargaDatosRemisiones()
Private Sub CargaDatosRNC()
DtDatosRemisiones = New DataTable
GvRemisiones.DataSource = Nothing
Dim ObjCompras As New ClsCompras

View File

@@ -554,7 +554,7 @@ Partial Class ContabilidadC_RegPrePolizaS
Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero
If CveConceptoContable.Contiene(1, 2, 12, 91, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta"))
If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 323, 324, 341, 342, 343, 344, 304, 272, 259, 287, 288, 370, 371, 372) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra"))
If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 323, 324, 341, 342, 343, 344, 304, 272, 259, 287, 288, 370, 371, 372, 373) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra"))
If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen"))
If CveConceptoContable.Contiene(30, 204, 66, 92, 202, 10, 21, 48, 56, 338, 339, 340, 345, 346, 347) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE"))