This commit is contained in:
rakcsle
2022-06-02 10:59:07 -07:00
10 changed files with 165 additions and 98 deletions

View File

@@ -3749,7 +3749,7 @@ Public Class ClsGenerales
End Function End Function
Public Function UpdateTimbreTimbrado(CveTimbre As Integer, FolioFiscal As String, Fecha As DateTime, CveUsuario As Integer, CveEmpresa As Integer, Public Function UpdateTimbreTimbrado(CveTimbre As Integer, FolioFiscal As String, Fecha As DateTime, CveUsuario As Integer, CveEmpresa As Integer,
CvePAC As Integer) As Boolean CvePAC As Integer, CFDIVersion As String) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Gral_TimbreTimbrado") DataAdapter("PA_Gral_TimbreTimbrado")
@@ -3759,6 +3759,7 @@ Public Class ClsGenerales
.Add("@FolioFiscal", SqlDbType.VarChar).Value = FolioFiscal .Add("@FolioFiscal", SqlDbType.VarChar).Value = FolioFiscal
.Add("@Fecha", SqlDbType.DateTime).Value = Fecha .Add("@Fecha", SqlDbType.DateTime).Value = Fecha
.Add("@CvePAC", SqlDbType.Int).Value = CvePAC .Add("@CvePAC", SqlDbType.Int).Value = CvePAC
.Add("@CDFIVersion", SqlDbType.VarChar).Value = CFDIVersion
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With End With

View File

@@ -8802,9 +8802,17 @@ Public Class ClsPaginas
#End Region #End Region
#Region "PDF PAGOS" #Region "PDF PAGOS"
Private Function ValorXML(n As XmlNode, Campo As String, Optional Retorno As String = "") As String
Dim o As XmlNode = n.Attributes.Cast(Of XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0)
If o Is Nothing Then
Return Retorno
Else
Return o.Value
End If
End Function
Public Sub PDFReciboDePagos(CveVenta As Integer, CveIE As Integer, CveComplementoPago As Integer, Optional imprimir As Boolean = True) Public Sub PDFReciboDePagos(CveVenta As Integer, CveIE As Integer, CveComplementoPago As Integer, Optional imprimir As Boolean = True)
Dim ObjBancos As New ClsBancos Dim ObjBancos As New ClsBancos
Dim ObjClientes As New ClsClientes Dim ObjClientes As New ClsClientes
Dim params As New List(Of ReportParameter) Dim params As New List(Of ReportParameter)
@@ -8855,6 +8863,7 @@ Public Class ClsPaginas
DTConceptosPagoRelacionado.Columns.Add("MetodoDePagoDR", GetType(String)) DTConceptosPagoRelacionado.Columns.Add("MetodoDePagoDR", GetType(String))
DTConceptosPagoRelacionado.Columns.Add("MonedaDR", GetType(String)) DTConceptosPagoRelacionado.Columns.Add("MonedaDR", GetType(String))
DTConceptosPagoRelacionado.Columns.Add("TipoCambioDR", GetType(String)) DTConceptosPagoRelacionado.Columns.Add("TipoCambioDR", GetType(String))
DTConceptosPagoRelacionado.Columns.Add("ObjetoImpDR", GetType(String))
If ObjBancos.GetComplementoPagos(CveComplementoPago, CveIE, CveVenta, UsuarioActual.CveEmpresa) Then If ObjBancos.GetComplementoPagos(CveComplementoPago, CveIE, CveVenta, UsuarioActual.CveEmpresa) Then
@@ -8901,13 +8910,29 @@ Public Class ClsPaginas
Dim ImagenCBB As String = $"file://{Ruta}CBB\{Serie}-{Folio}.jpg" Dim ImagenCBB As String = $"file://{Ruta}CBB\{Serie}-{Folio}.jpg"
If File.Exists(PathXML) Then If File.Exists(PathXML) Then
Dim XmlDoc As New System.Xml.XmlDocument Dim XmlDoc As New System.Xml.XmlDocument
XmlDoc.Load(PathXML) XmlDoc.Load(PathXML)
Dim Version = ValorXML(XmlDoc.DocumentElement, "version")
Dim namespaces As New XmlNamespaceManager(XmlDoc.NameTable)
Dim Prefijo As String = If(XmlDoc.DocumentElement.Prefix = "", "cfd", XmlDoc.DocumentElement.Prefix)
Dim cfdVer As String = ""
Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento")
Dim validaElementoPago = XmlDoc.DocumentElement("cfdi:Conceptos") Dim validaElementoPago = XmlDoc.DocumentElement("cfdi:Conceptos")
If Version = "3.3" 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"
End If
namespaces.AddNamespace(Prefijo, cfdVer)
namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital")
namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal")
namespaces.AddNamespace("pago20", "http://www.sat.gob.mx/Pagos20")
'Datos Fiscales 'Datos Fiscales
If Not IsNothing(validaElemento) Then If Not IsNothing(validaElemento) Then
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
@@ -8924,46 +8949,60 @@ Public Class ClsPaginas
'Pago 'Pago
If Not IsNothing(validaElemento) Then If Not IsNothing(validaElemento) Then
Dim PagosChild = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Cast(Of XmlNode).Where(Function(a) a.LocalName.Equals("Pagos", StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault() Dim PagosChild = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Cast(Of XmlNode).Where(Function(a) a.LocalName.Equals("Pagos", StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault()
Dim nodePagos As XmlNodeList
If Version = "3.3" Then
nodePagos = XmlDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Complemento/pago10:Pago", Prefijo), namespaces)
Else
nodePagos = XmlDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Complemento/pago20:Pagos/pago20:Pago", Prefijo), namespaces)
End If
For Each Pagos As XmlNode In PagosChild.ChildNodes For Each Pagos As XmlNode In nodePagos
Dim Dr As DataRow = DTConceptosPago.NewRow If Version = "4.0" AndAlso Pagos.Name = "pago20:Totales" Then
Dim a As String = "a"
If Not Pagos.Attributes("CtaOrdenante") Is Nothing Then Dr("CtaOrdenante") = Pagos.Attributes("CtaOrdenante").Value Else Dr("CtaOrdenante") = ""
If Not Pagos.Attributes("TipoCambioP") Is Nothing Then Dr("TipoCambioP") = Pagos.Attributes("TipoCambioP").Value Else Dr("TipoCambioP") = ""
If Not Pagos.Attributes("RfcEmisorCtaOrd") Is Nothing Then
Dr("RfcEmisorCtaOrd") = Pagos.Attributes("RfcEmisorCtaOrd").Value
RFCOrdenante = Pagos.Attributes("RfcEmisorCtaOrd").Value
Else Else
Dr("RfcEmisorCtaOrd") = ""
Dim Dr As DataRow = DTConceptosPago.NewRow
If Not Pagos.Attributes("CtaOrdenante") Is Nothing Then Dr("CtaOrdenante") = Pagos.Attributes("CtaOrdenante").Value Else Dr("CtaOrdenante") = ""
If Not Pagos.Attributes("TipoCambioP") Is Nothing Then Dr("TipoCambioP") = Pagos.Attributes("TipoCambioP").Value Else Dr("TipoCambioP") = ""
If Not Pagos.Attributes("RfcEmisorCtaOrd") Is Nothing Then
Dr("RfcEmisorCtaOrd") = Pagos.Attributes("RfcEmisorCtaOrd").Value
RFCOrdenante = Pagos.Attributes("RfcEmisorCtaOrd").Value
Else
Dr("RfcEmisorCtaOrd") = ""
End If
Dr("Monto") = Pagos.Attributes("Monto").Value
Dr("MonedaP") = Pagos.Attributes("MonedaP").Value
Dr("FormaDePagoP") = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPagoSAT", $"ClaveFormaPagoSAT= '{Pagos.Attributes("FormaDePagoP").Value}'")
Dr("FechaPago") = Pagos.Attributes("FechaPago").Value
FechaRecibo = Pagos.Attributes("FechaPago").Value
TotalLetra = Pagos.Attributes("Monto").Value.ToString.ToDouble.Texto2Letras(CveMoneda)
DTConceptosPago.Rows.Add(Dr)
For Each Relacionado As XmlNode In Pagos.SelectNodes("//pago20:DoctoRelacionado", namespaces)
Dim DrRelacionado As DataRow = DTConceptosPagoRelacionado.NewRow
If Not Relacionado.Attributes("Folio") Is Nothing Then DrRelacionado("Folio") = Relacionado.Attributes("Folio").Value Else DrRelacionado("Folio") = ""
If Not Relacionado.Attributes("Serie") Is Nothing Then DrRelacionado("Serie") = Relacionado.Attributes("Serie").Value Else DrRelacionado("Serie") = ""
If Not Relacionado.Attributes("TipoCambioDR") Is Nothing Then DrRelacionado("TipoCambioDR") = Relacionado.Attributes("TipoCambioDR").Value Else DrRelacionado("TipoCambioDR") = ""
DrRelacionado("IdDocumento") = Relacionado.Attributes("IdDocumento").Value
DrRelacionado("ImpPagado") = Relacionado.Attributes("ImpPagado").Value
DrRelacionado("ImpSaldoAnt") = Relacionado.Attributes("ImpSaldoAnt").Value
DrRelacionado("NumParcialidad") = Relacionado.Attributes("NumParcialidad").Value
If Version = "3.3" Then DrRelacionado("MetodoDePagoDR") = Relacionado.Attributes("MetodoDePagoDR").Value
If Version = "4.0" Then DrRelacionado("ObjetoImpDR") = Relacionado.Attributes("ObjetoImpDR").Value
DrRelacionado("MonedaDR") = Relacionado.Attributes("MonedaDR").Value
DTConceptosPagoRelacionado.Rows.Add(DrRelacionado)
Next
End If End If
Dr("Monto") = Pagos.Attributes("Monto").Value
Dr("MonedaP") = Pagos.Attributes("MonedaP").Value
Dr("FormaDePagoP") = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPagoSAT", $"ClaveFormaPagoSAT= '{Pagos.Attributes("FormaDePagoP").Value}'")
Dr("FechaPago") = Pagos.Attributes("FechaPago").Value
FechaRecibo = Pagos.Attributes("FechaPago").Value
TotalLetra = Pagos.Attributes("Monto").Value.ToString.ToDouble.Texto2Letras(CveMoneda)
DTConceptosPago.Rows.Add(Dr)
For Each Relacionado As XmlNode In Pagos.ChildNodes
Dim DrRelacionado As DataRow = DTConceptosPagoRelacionado.NewRow
If Not Relacionado.Attributes("Folio") Is Nothing Then DrRelacionado("Folio") = Relacionado.Attributes("Folio").Value Else DrRelacionado("Folio") = ""
If Not Relacionado.Attributes("Serie") Is Nothing Then DrRelacionado("Serie") = Relacionado.Attributes("Serie").Value Else DrRelacionado("Serie") = ""
If Not Relacionado.Attributes("TipoCambioDR") Is Nothing Then DrRelacionado("TipoCambioDR") = Relacionado.Attributes("TipoCambioDR").Value Else DrRelacionado("TipoCambioDR") = ""
DrRelacionado("IdDocumento") = Relacionado.Attributes("IdDocumento").Value
DrRelacionado("ImpPagado") = Relacionado.Attributes("ImpPagado").Value
DrRelacionado("ImpSaldoAnt") = Relacionado.Attributes("ImpSaldoAnt").Value
DrRelacionado("NumParcialidad") = Relacionado.Attributes("NumParcialidad").Value
DrRelacionado("MetodoDePagoDR") = Relacionado.Attributes("MetodoDePagoDR").Value
DrRelacionado("MonedaDR") = Relacionado.Attributes("MonedaDR").Value
DTConceptosPagoRelacionado.Rows.Add(DrRelacionado)
Next
Next Next
End If End If

View File

@@ -4854,14 +4854,14 @@ Public Class ClsVentas
End Try End Try
Return retorno Return retorno
End Function End Function
Public Function AddMetasVendedores(CveVendedor As Integer, MesAño As Date, CveMarca As Integer, MetaCantidad As Integer, MetaImporte As Decimal, CveClasificacion As Integer, CveClasificacionSup As Integer, CveEmpresa As Integer) As Boolean Public Function AddMetasVendedores(CveVendedor As Integer, MesAño As Date, CveMarca As Integer, MetaCantidad As Decimal, MetaImporte As Decimal, CveClasificacion As Integer, CveClasificacionSup As Integer, CveEmpresa As Integer) As Boolean
Dim retorno As Boolean = False Dim retorno As Boolean = False
DataAdapter("PA_Vta_MetasVendedoresAdd", CommandType.StoredProcedure) DataAdapter("PA_Vta_MetasVendedoresAdd", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
.Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor
.Add("@MesAño", SqlDbType.DateTime).Value = MesAño .Add("@MesAño", SqlDbType.DateTime).Value = MesAño
.Add("@CveMarca", SqlDbType.Int).Value = CveMarca .Add("@CveMarca", SqlDbType.Int).Value = CveMarca
.Add("@MetaCantidad", SqlDbType.Int).Value = MetaCantidad .Add("@MetaCantidad", SqlDbType.SmallMoney).Value = MetaCantidad
.Add("@MetaImporte", SqlDbType.Decimal).Value = MetaImporte .Add("@MetaImporte", SqlDbType.Decimal).Value = MetaImporte
.Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion
.Add("@CveClasificacionSup", SqlDbType.Int).Value = CveClasificacionSup .Add("@CveClasificacionSup", SqlDbType.Int).Value = CveClasificacionSup

View File

@@ -3891,7 +3891,7 @@ Namespace Modelos
Dim PU As Decimal = RowGarantia("Importe").ToString().ToDecimal() ' / RowGarantia("Cantidad").ToString().ToDouble() Dim PU As Decimal = RowGarantia("Importe").ToString().ToDecimal() ' / RowGarantia("Cantidad").ToString().ToDouble()
Dim Serie As String = RowGarantia("Comprobante").ToString Dim Serie As String = RowGarantia("Comprobante").ToString
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoGarantia, RowGarantia("Cantidad").ToString().ToDouble(), CveUM, CvePS, PU, Serie:=Serie, CveVentaDetalle:=RowGarantia("CveVentaDetalle").ToString.ToEntero) Then If Not ObjInventario.AddMovimientoDetalle(CveMovimientoGarantia, RowGarantia("Cantidad").ToString().ToDouble(), CveUM, CvePS, PU, Serie:=Serie, CveVentaDetalle:=IIf(RowGarantia("MismoCvePS").ToString = "1", RowGarantia("CveVentaDetalle"), -1).ToString.ToEntero) Then
OcurrioError = True OcurrioError = True
Exit For Exit For
End If End If

View File

@@ -2832,7 +2832,7 @@ Public Class Timbrado
Case "T" Case "T"
Dim objGrales As New ClsGenerales Dim objGrales As New ClsGenerales
If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC) Then If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "3.3") Then
Retorno = "" Retorno = ""
Else Else
Retorno = "Error" Retorno = "Error"
@@ -5658,7 +5658,7 @@ Public Class Timbrado
Case "T" Case "T"
Dim objGrales As New ClsGenerales Dim objGrales As New ClsGenerales
If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC) Then If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "4.0") Then
Retorno = "" Retorno = ""
Else Else
Retorno = "Error" Retorno = "Error"

View File

@@ -41,8 +41,10 @@ Public Class Timbres
Private Sub CreaObjetosTraslados(TipoDocto As String, CveTimbre As Integer) Private Sub CreaObjetosTraslados(TipoDocto As String, CveTimbre As Integer)
ObjFactura = New Modelos.Factura ObjFactura = New Modelos.Factura
ObjFactura.Version = "3.3" ObjFactura.Version = "3.3"
If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then ObjFactura.Version = "4.0"
ObjFactura.CveUsuario = UsuarioActual.CveUsuario ObjFactura.CveUsuario = UsuarioActual.CveUsuario
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa
ObjFactura.UsuarioActual = UsuarioActual ObjFactura.UsuarioActual = UsuarioActual
@@ -84,8 +86,10 @@ Public Class Timbres
Timbre.Comprobante.SubTotal = Obj.SubTotal Timbre.Comprobante.SubTotal = Obj.SubTotal
Timbre.Comprobante.Descuentos = Obj.Descuento Timbre.Comprobante.Descuentos = Obj.Descuento
Timbre.Comprobante.Moneda = "XXX" Timbre.Comprobante.Moneda = "XXX"
Timbre.Comprobante.TipoCambio = "" ' CONDICIÓN SI LA MONEDA ES 'XXX' Timbre.Comprobante.TipoCambio = "" ' CONDICIÓN SI LA MONEDA ES 'XXX'
Timbre.Receptor.UsoCFDI = "P01"
Timbre.Receptor.UsoCFDI = "S01"
If ObjFactura.Version = "3.3" Then Timbre.Receptor.UsoCFDI = "P01"
Dim totSubTotal As Decimal = Obj.SubTotal Dim totSubTotal As Decimal = Obj.SubTotal
Dim totIVA As Decimal = Obj.IVA Dim totIVA As Decimal = Obj.IVA
@@ -124,7 +128,7 @@ Public Class Timbres
Timbre.Receptor.RFC = drT("EmpresaRFC").ToString Timbre.Receptor.RFC = drT("EmpresaRFC").ToString
Timbre.Receptor.Nombre = drT("EmpresaNombre").ToString Timbre.Receptor.Nombre = drT("EmpresaNombre").ToString
Timbre.Receptor.DomicilioFiscalReceptor = drT("DirDesCP").ToString Timbre.Receptor.DomicilioFiscalReceptor = drT("DomicilioFiscalReceptor").ToString
Timbre.Receptor.RegimenFiscalReceptor = drT("CodigoRegimenFiscalReceptor").ToString Timbre.Receptor.RegimenFiscalReceptor = drT("CodigoRegimenFiscalReceptor").ToString
CveMovimiento = drT("CveMovimientoAlmacen").ToString.ToEntero CveMovimiento = drT("CveMovimientoAlmacen").ToString.ToEntero
@@ -216,8 +220,8 @@ Public Class Timbres
End If End If
Dim Ubica As New CFDICartaPorteUbicacion Dim Ubica As New CFDICartaPorteUbicacion
Ubica.TipoEstacion = "" Ubica.TipoEstacion = ""
Ubica = New CFDICartaPorteUbicacion With {.TipoUbicacion = "Origen", .IDUbicacion = "OR000001", .RFCRemitenteDestinatario = drT("RemitenteRFC").ToString, Ubica = New CFDICartaPorteUbicacion With {.TipoUbicacion = "Origen", .IDUbicacion = "OR000001", .RFCRemitenteDestinatario = drT("RemitenteRFC").ToString,
.FechaHoraSalidaLlegada = FechaSalida.ToString("yyyy-MM-ddTHH:mm:ss"),' "2021-08-23T11:13:01", .FechaHoraSalidaLlegada = FechaSalida.ToString("yyyy-MM-ddTHH:mm:ss"),' "2021-08-23T11:13:01",
.NombreRemitenteDestinatario = drT("RemitenteNombre").ToString, .NombreRemitenteDestinatario = drT("RemitenteNombre").ToString,
.Domicilio = DomOrigen} .Domicilio = DomOrigen}
@@ -230,9 +234,9 @@ Public Class Timbres
.NumRegIdTrib = NumRegIdTrib} .NumRegIdTrib = NumRegIdTrib}
CartaPorte.Ubicaciones.Add(Ubica) CartaPorte.Ubicaciones.Add(Ubica)
CartaPorte.FiguraTransporte.ClaveTransporte = "01" CartaPorte.FiguraTransporte.ClaveTransporte = "01"
Dim DomicilioOperador As New CFDICartaPorteDomicilio With {.Calle = drT("FiguraDomicilio").ToString, Dim DomicilioOperador As New CFDICartaPorteDomicilio With {.Calle = drT("FiguraDomicilio").ToString,
.NumeroExterior = drT("FiguraNumeroExterior").ToString, .NumeroExterior = drT("FiguraNumeroExterior").ToString,
.NumeroInterior = drT("FiguraNumeroInterior").ToString, .NumeroInterior = drT("FiguraNumeroInterior").ToString,
.Colonia = drT("FiguraClaveSATColonia").ToString, .Colonia = drT("FiguraClaveSATColonia").ToString,
@@ -242,7 +246,7 @@ Public Class Timbres
CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With { CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With {
.RFCFigura = drT("FiguraRFC").ToString, .RFCFigura = drT("FiguraRFC").ToString,
.NombreFigura = drT("FiguraChofer").ToString, .NombreFigura = drT("FiguraChofer").ToString,
.NumLicencia = drT("FiguraLicencia").ToString, .NumLicencia = drT("FiguraLicencia").ToString,
@@ -251,8 +255,8 @@ Public Class Timbres
.Domicilio = DomicilioOperador}) .Domicilio = DomicilioOperador})
'concepto único 'concepto único
Dim concepto As New CFDIConceptos With {.Cantidad = 1, Dim concepto As New CFDIConceptos With {.Cantidad = 1,
.Descripcion = "Traslado", .Descripcion = "Traslado",
.ValorUnitario = 0, .ValorUnitario = 0,
.Importe = 0, .Importe = 0,
@@ -261,22 +265,23 @@ Public Class Timbres
.ClaveUnidad = "E48", .ClaveUnidad = "E48",
.ClaveProdServ = "78101802", .ClaveProdServ = "78101802",
.Noidentificacion = "", .Noidentificacion = "",
.CuentaPredial = ""} .CuentaPredial = "",
.ObjetoImpuesto = "01"}
Timbre.Conceptos.Add(concepto) Timbre.Conceptos.Add(concepto)
For Each drr As DataRow In Obj.DtDetalle.Rows For Each drr As DataRow In Obj.DtDetalle.Rows
If drr("PS").ToString.Length = 1 Then If drr("PS").ToString.Length = 1 Then
tPS = drr("Obs").ToString tPS = drr("Obs").ToString
Else
If drr("PS").ToString.Length = 0 Then
tPS = ""
Else Else
If drr("PS").ToString.Length = 0 Then tPS = String.Format("{0} {1}", drr("PS"), drr("Obs"))
tPS = ""
Else
tPS = String.Format("{0} {1}", drr("PS"), drr("Obs"))
End If
End If End If
Dim conceptoCarta As New CFDICartaPorteMercancia With { End If
Dim conceptoCarta As New CFDICartaPorteMercancia With {
.BienesTransp = drr("SATClaveProdServ").ToString, .BienesTransp = drr("SATClaveProdServ").ToString,
.ClaveSTCC = "", 'para metodo ferroviario .ClaveSTCC = "", 'para metodo ferroviario
.Cantidad = drr("Cantidad").ToString.ToDecimal, .Cantidad = drr("Cantidad").ToString.ToDecimal,
@@ -290,29 +295,29 @@ Public Class Timbres
.Embalaje = drr("ClaveEmbalaje").ToString, .Embalaje = drr("ClaveEmbalaje").ToString,
.DescripEmbalaje = drr("Embalaje").ToString, .DescripEmbalaje = drr("Embalaje").ToString,
.ValorMercancia = drr("PU").ToString.ToDecimal, .ValorMercancia = drr("PU").ToString.ToDecimal,
.Moneda = "MXN", 'temporal .Moneda = IIf(drr("PU").ToString.ToDecimal > 0, "MXN", ""), 'temporal
.FraccionArrancelaria = "", .FraccionArrancelaria = "",
.UUIDComercioExt = "" .UUIDComercioExt = ""
} }
Dim DetalleMercancia As New CFDICartaPorteMercanciaDetalleMercancia With {.PesoNeto = drr("PesoKg").ToString.ToDecimal * drr("Cantidad").ToString.ToDecimal, .NumPiezas = drr("Cantidad").ToString.ToDecimal} Dim DetalleMercancia As New CFDICartaPorteMercanciaDetalleMercancia With {.PesoNeto = drr("PesoKg").ToString.ToDecimal * drr("Cantidad").ToString.ToDecimal, .NumPiezas = drr("Cantidad").ToString.ToDecimal}
conceptoCarta.DetalleMercancia = DetalleMercancia conceptoCarta.DetalleMercancia = DetalleMercancia
Dim MercanciaTransporta As New CFDICartaPorteMercanciaTransporta With {.Cantidad = drr("Cantidad").ToString.ToDecimal, .IDOrigen = "OR000001", .IDDestino = "DE000001"} Dim MercanciaTransporta As New CFDICartaPorteMercanciaTransporta With {.Cantidad = drr("Cantidad").ToString.ToDecimal, .IDOrigen = "OR000001", .IDDestino = "DE000001"}
conceptoCarta.MercanciasCantidadTransporta.Add(MercanciaTransporta) conceptoCarta.MercanciasCantidadTransporta.Add(MercanciaTransporta)
totSubTotal = totSubTotal - concepto.Importe totSubTotal = totSubTotal - concepto.Importe
CartaPorte.Mercancias.Mercancias.Add(conceptoCarta) CartaPorte.Mercancias.Mercancias.Add(conceptoCarta)
i += 1 i += 1
Next Next
Timbre.Complementos.CartaPorte = CartaPorte Timbre.Complementos.CartaPorte = CartaPorte
Else Else
'' T R A S L A D O S '' T R A S L A D O S
'DETALLES 'DETALLES
If Obj.DtDetalle IsNot Nothing Then If Obj.DtDetalle IsNot Nothing Then
For Each drr As DataRow In Obj.DtDetalle.Rows For Each drr As DataRow In Obj.DtDetalle.Rows
If drr("PS").ToString.Length = 1 Then If drr("PS").ToString.Length = 1 Then
@@ -337,7 +342,8 @@ Public Class Timbres
.ClaveUnidad = drr("SATClaveUM").ToString, .ClaveUnidad = drr("SATClaveUM").ToString,
.ClaveProdServ = drr("SATClaveProdServ").ToString, .ClaveProdServ = drr("SATClaveProdServ").ToString,
.Noidentificacion = drr("Noidentificacion").ToString, .Noidentificacion = drr("Noidentificacion").ToString,
.CuentaPredial = ""} .CuentaPredial = "",
.ObjetoImpuesto = "01"}
'VERIFICA SUMA SUBTOTALES 'VERIFICA SUMA SUBTOTALES
If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'PROCESO DE AJUSTA DE DECIMALES If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'PROCESO DE AJUSTA DE DECIMALES
concepto.Importe = totSubTotal concepto.Importe = totSubTotal

View File

@@ -1370,7 +1370,7 @@ Partial Class Bancos_ProveedoresAbonar
IdCtaContable = IdCuenta IdCtaContable = IdCuenta
End If End If
Dim Importe42 As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal Dim Importe42 As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal + gvr.FCTextBox("TxtComision").Text.ToDecimal
ImporteMovimiento = Importe42 ImporteMovimiento = Importe42
importeMX = If(CveMoneda = 2, If(DivTC.Visible, Importe42 / TxtTC.Text.ToDecimal * TipoCambioPago, Importe42 * TipoCambioPago), Importe42) importeMX = If(CveMoneda = 2, If(DivTC.Visible, Importe42 / TxtTC.Text.ToDecimal * TipoCambioPago, Importe42 * TipoCambioPago), Importe42)
TipoCambioGeneral = TipoCambioPago TipoCambioGeneral = TipoCambioPago

Binary file not shown.

View File

@@ -1692,12 +1692,17 @@ Partial Class PopUpVerFactura
Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) Dim ImagenCBB As New System.IO.FileInfo(RutaCBB)
Dim nodo As XmlNode = XMLDoc.DocumentElement Dim nodo As XmlNode = XMLDoc.DocumentElement
Dim Version = ValorXML(nodo, "version")
Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix)
Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3" Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3"
Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable)
If Version = "3.3" 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"
End If
If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2"
namespaces.AddNamespace(Prefijo, cfdVer) namespaces.AddNamespace(Prefijo, cfdVer)
namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital") namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital")
namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal") namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal")
@@ -1737,7 +1742,6 @@ Partial Class PopUpVerFactura
Next Next
End If End If
Dim nodeComp As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", Prefijo), namespaces) Dim nodeComp As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", Prefijo), namespaces)
Dim nodeCartaPorte As XmlNode = nodeComp.SelectSingleNode(String.Format("//{0}:CartaPorte", "cartaporte20"), namespaces) Dim nodeCartaPorte As XmlNode = nodeComp.SelectSingleNode(String.Format("//{0}:CartaPorte", "cartaporte20"), namespaces)

View File

@@ -1268,8 +1268,6 @@ Partial Class Clientes
CargaCombosComercioExterior() CargaCombosComercioExterior()
End Sub End Sub
Private Sub CargaSubProyectoss() Private Sub CargaSubProyectoss()
@@ -2480,18 +2478,37 @@ Partial Class Clientes
End If End If
'CargaSucursal() If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1", "2") Then
'If UsuarioActual.TienePermisoProceso(170) AndAlso TxtCodigo.Text.Trim = "" Then
' Alert("Es necesario ingresar un Código", TipoMensaje.MsgAdvertencia)
' Exit Sub
'End If
'Dim rowcodigo As DataTable = GlobalDTCliente.FiltraParametros(String.Format("Codigo='{0}' AND CveEmpresa={1} ", TxtCodigo.Text.Trim, UsuarioActual.CveEmpresa)) If TxtRFC.Text.ToUpper.Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscal.SelectedValue <> "11" Then
'If (Not IsNothing(rowcodigo)) AndAlso (rowcodigo.Rows.Count > 0) AndAlso (rowcodigo.Rows(0)("CveCliente").ToString().Toentero() <> CveCliente) Then
' Alert(String.Format("ya existe un Cliente Con este Codigo '{0}'", TxtCodigo.Text.Trim), TipoMensaje.MsgAdvertencia) Alert("El Regimen fiscal del cliente debe ser <b>'616 - Sin obligaciones fiscales'</b> cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
' Exit Sub Exit Sub
'End If
Dim ObjClientes As New ClsClientes() End If
If TxtRFC.Text.ToUpper.Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDI.SelectedValue <> "23" Then
Alert("El Regimen fiscal del cliente debe ser <b>'S01 - Sin efectos fiscales'</b> cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
'CargaSucursal()
'If UsuarioActual.TienePermisoProceso(170) AndAlso TxtCodigo.Text.Trim = "" Then
' Alert("Es necesario ingresar un Código", TipoMensaje.MsgAdvertencia)
' Exit Sub
'End If
'Dim rowcodigo As DataTable = GlobalDTCliente.FiltraParametros(String.Format("Codigo='{0}' AND CveEmpresa={1} ", TxtCodigo.Text.Trim, UsuarioActual.CveEmpresa))
'If (Not IsNothing(rowcodigo)) AndAlso (rowcodigo.Rows.Count > 0) AndAlso (rowcodigo.Rows(0)("CveCliente").ToString().Toentero() <> CveCliente) Then
' Alert(String.Format("ya existe un Cliente Con este Codigo '{0}'", TxtCodigo.Text.Trim), TipoMensaje.MsgAdvertencia)
' Exit Sub
'End If
Dim ObjClientes As New ClsClientes()
Dim objDoc As New ClsEdocumentacion(ObjClientes.IniciaTransacSQL()) Dim objDoc As New ClsEdocumentacion(ObjClientes.IniciaTransacSQL())
Dim MsgCuentaContable As String = "" Dim MsgCuentaContable As String = ""
Dim ErrorProceso As Boolean = False Dim ErrorProceso As Boolean = False