diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ec1c98082..eccfb731a 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5935,7 +5935,7 @@ Public Class ClsPaginas Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory) 'TOMAR LA RUTA BASE PARA EL DIRECTORIO DE LA EMPRESA - If Not String.IsNullOrEmpty(RutaEmpresa) AndAlso Not RutaReporte.Contains("Grales") Then + If Not String.IsNullOrEmpty(RutaEmpresa) AndAlso Not RutaReporte.Contains("Grales") AndAlso Not RutaReporte.Contains("Contabilidad/Reportes/") Then bdir = RutaEmpresa.Replace($"{CveEmpresa}/", "") End If diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 191c38d6e..733d36cba 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -2078,7 +2078,7 @@ Public Class Timbrado #Region "Impuestos" 'SI NO ES FACTURA EN 0 AGREGA LOS IMPUESTOS - If Ventas.Total <> 0 OrElse (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.TotalImpuestosTrasladados > 0) Then + If Ventas.Total <> 0 And (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.TotalImpuestosTrasladados > 0) Then cfdi.Impuestos(ObjCFDITimbre.TotalImpuestosRetenidos, ObjCFDITimbre.TotalImpuestosTrasladados) End If #End Region @@ -2092,55 +2092,59 @@ Public Class Timbrado Next End If - ''se acumulan los importes - For Each Tras In ObjCFDITimbre.Traslados - cfdi.Traslado(Tras.Impuesto, Tras.TipoFactor, Tras.TasaOCuota, Tras.Importe) - Next + + If ObjCFDITimbre.Traslados.Sum(Function(x) x.Importe) > 0 Then + ''se acumulan los importes + For Each Tras In ObjCFDITimbre.Traslados + cfdi.Traslado(Tras.Impuesto, Tras.TipoFactor, Tras.TasaOCuota, Tras.Importe) + Next + End If + #End Region #Region "Impuestos Locales" If ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe) > 0 OrElse ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe) > 0 Then - cfdi.ImpuestosLocales(ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe), ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe)) + cfdi.ImpuestosLocales(ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe), ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe)) - For Each ret As CFDIRetencionesLocales In ObjCFDITimbre.RetencionesLocales - If ret.Importe > 0 Then - cfdi.RetencionLocal(ret.ImpuestoLocalRetenido, ret.TasaRetencion, ret.Importe) - End If - Next + For Each ret As CFDIRetencionesLocales In ObjCFDITimbre.RetencionesLocales + If ret.Importe > 0 Then + cfdi.RetencionLocal(ret.ImpuestoLocalRetenido, ret.TasaRetencion, ret.Importe) + End If + Next - For Each ret As CFDITrasladosLocales In ObjCFDITimbre.TrasladosLocales - If ret.Importe > 0 Then - cfdi.TrasladoLocal(ret.ImpuestoLocalTraslado, ret.TasaTraslado, ret.Importe) - End If - Next - End If + For Each ret As CFDITrasladosLocales In ObjCFDITimbre.TrasladosLocales + If ret.Importe > 0 Then + cfdi.TrasladoLocal(ret.ImpuestoLocalTraslado, ret.TasaTraslado, ret.Importe) + End If + Next + End If - If Ventas.CveComplementoTimbrado > 0 Then + If Ventas.CveComplementoTimbrado > 0 Then - Select Case Ventas.CveComplementoTimbrado - Case 5 'INE Proceso Ordinario Directivo Estatal" - cfdi.Ine11("Ordinario", "Directivo Estatal", "0") + Select Case Ventas.CveComplementoTimbrado + Case 5 'INE Proceso Ordinario Directivo Estatal" + cfdi.Ine11("Ordinario", "Directivo Estatal", "0") - cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "") - cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) - Case 6 'INE Proceso Ordinario Ejecutivo Estatal" - cfdi.Ine11("Ordinario", "Ejecutivo Estatal", "0") + cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "") + cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) + Case 6 'INE Proceso Ordinario Ejecutivo Estatal" + cfdi.Ine11("Ordinario", "Ejecutivo Estatal", "0") - cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "") - cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) - Case 7 'INE Proceso Ordinario Ejecutivo Nacional" + cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "") + cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) + Case 7 'INE Proceso Ordinario Ejecutivo Nacional" - cfdi.Ine11("Ordinario", "Ejecutivo Nacional", Ventas.ComplementoINE.INEIdContabilidad.ToString) - Case 8 'INE PreCampaña - cfdi.Ine11(Ventas.ComplementoINE.INETipoProceso, "", "0") + cfdi.Ine11("Ordinario", "Ejecutivo Nacional", Ventas.ComplementoINE.INEIdContabilidad.ToString) + Case 8 'INE PreCampaña + cfdi.Ine11(Ventas.ComplementoINE.INETipoProceso, "", "0") - cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite) - cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) - End Select + cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite) + cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) + End Select - End If + End If @@ -2149,11 +2153,11 @@ Public Class Timbrado #Region "Comercio Exterior" - If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then - If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then + If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then + If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then - 'DATOS GENERALES - cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado, + 'DATOS GENERALES + cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado, ObjCFDITimbre.Complementos.ComercioExterior11.TipoOperacion, ObjCFDITimbre.Complementos.ComercioExterior11.ClavedePedimento, ObjCFDITimbre.Complementos.ComercioExterior11.CertificadoOrigen, @@ -2164,9 +2168,9 @@ Public Class Timbrado ObjCFDITimbre.Complementos.ComercioExterior11.Observaciones, ObjCFDITimbre.Complementos.ComercioExterior11.TipoCambioUSD, ObjCFDITimbre.Complementos.ComercioExterior11.TotalUSD) - 'EMISOR - cfdi.ComercioExterior11Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CURP)) - cfdi.ComercioExterior11Domicilio(ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Calle, + 'EMISOR + cfdi.ComercioExterior11Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CURP)) + cfdi.ComercioExterior11Domicilio(ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Calle, ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroExterior, ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroInterior, ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Colonia, @@ -2176,9 +2180,9 @@ Public Class Timbrado ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Estado, ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Pais, ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CP) - 'RECEPTOR - cfdi.ComercioExterior11Receptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumRegIdTrib) - cfdi.ComercioExterior11DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Calle, + 'RECEPTOR + cfdi.ComercioExterior11Receptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumRegIdTrib) + cfdi.ComercioExterior11DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Calle, ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroExterior, ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroInterior, ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Colonia, @@ -2188,7 +2192,7 @@ Public Class Timbrado ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Estado, ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Pais, ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.CP) - cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib, + cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Nombre, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Calle, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroExterior, @@ -2200,35 +2204,35 @@ Public Class Timbrado ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Estado, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Pais, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.CP) - 'MERCANCIAS - If ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias.Count > 0 Then - For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias - cfdi.ComercioExterior11Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares) - If concep.DescripcionesEspecificas.Marca <> "" Then - cfdi.ComercioExterior11MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca, + 'MERCANCIAS + If ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias.Count > 0 Then + For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias + cfdi.ComercioExterior11Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares) + If concep.DescripcionesEspecificas.Marca <> "" Then + cfdi.ComercioExterior11MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca, concep.DescripcionesEspecificas.Modelo, concep.DescripcionesEspecificas.SubModelo, concep.DescripcionesEspecificas.NumeroSerie) - End If - Next + End If + Next + + End If + End If - - End If - End If #End Region - End If + End If #Region "C O M P L E M E N T O C A R T A P O R T E" - If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then + If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index ea531cdb6..291b351fa 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1118,7 +1118,7 @@ Partial Class Compras_Compras CargaDatosAgregarPS() TieneAnticiposXML = False Modalidad = "" - Version = "3.3" + Version = "4.0" CveMetodoPago = -1 RFCProv = "" CargaDdlTipoGasto() @@ -1638,7 +1638,7 @@ Partial Class Compras_Compras End Sub Private Sub ValidaIVA() - If Version <> "3.3" And CveCompra <= 0 Then + If (Version <> "3.3" And Version <> "4.0") And CveCompra <= 0 Then Dim ImporteIVAXML As Double = (TxtSubTotal.Text.Trim.ToDouble - TxtDescuento.Text.Trim.ToDouble - TxtIEPS.Text.Trim.ToDouble) * 0.16 If Math.Abs(TxtIVA.Text.Trim.ToDouble - ImporteIVAXML) >= 1 Then Alert("El IVA del CFDi no tiene un comportamiento normal, por favor verifique que sea correcto.

NOTA: Esta advertencia no aplica en casos de conceptos(alimentos, combustibles o servicios de comunicación) exentos de IVA o causantes de IEPS.", TipoMensaje.MsgAdvertencia) @@ -1743,15 +1743,29 @@ Partial Class Compras_Compras CargaComprobanteXML(XMLDoc) - If NuevaValidacionXML = 1 Or Version = "3.3" Then + If NuevaValidacionXML = 1 Or (Version = "3.3" Or Version = "4.0") Then Dim Xml As New StringBuilder Dim nodo As XmlNode = XMLDoc.DocumentElement Dim Version = ValorXML(nodo, "version") + + 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 = "" Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) - If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2" + + If Version = "3.2" Then + Prefijo = "cfd" + cfdVer = "http://www.sat.gob.mx/cfd/2" + ElseIf 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("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital") namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal") @@ -1759,7 +1773,8 @@ Partial Class Compras_Compras Dim nodeconceptos As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Conceptos", Prefijo), namespaces) - Xml.Append(Replace(Replace(Replace(nodeconceptos.OuterXml, " "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2" + Dim nodo As XmlNode = XMLDoc.DocumentElement + Dim VersionCFDI As String = ValorXML(nodo, "version") + + Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) + Dim cfdVer As String = "" + + If VersionCFDI = "3.2" Then + Prefijo = "cfd" + cfdVer = "http://www.sat.gob.mx/cfd/2" + ElseIf VersionCFDI = "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("implocal", "http://www.sat.gob.mx/implocal") @@ -3714,7 +3743,7 @@ Partial Class Compras_Compras 'Alert(ValorXML(node, "ClaveProdServ").Trim) - If Version = "3.3" Then + If Version = "3.3" Or Version = "4.0" Then If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then 'OBTENER TRASLADOS POR DETALLES Dim ContadorTraslado = 0 @@ -5171,7 +5200,7 @@ Partial Class Compras_Compras End If 'ACTUALIZAR PRODUCTO/SERVICIO SAT - If Version = "3.3" Then + If Version = "3.3" Or Version = "4.0" Then If Row("CveSATPSActualizado").ToString().ToEntero() = 1 Then If Not ObjProductosServicios.UpdateProductosServiciosSAT(Row("CvePS").ToString().ToEntero(), Row("CveSATPS").ToString().ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then ErrorSATPS = True @@ -10833,7 +10862,7 @@ Partial Class Compras_Compras - If Version = "3.3" Then + If Version = "3.3" Or Version = "4.0" Then Dim drm As DataRow = GlobalDTVtaMetodoPago.FiltroPrimero(String.Format("ClaveMetodoPagoSAT = '{0}'", ValorXML(nodo, "MetodoPago"))) If drm IsNot Nothing Then CveMetodoPago = drm("CveMetodoPago").ToString.ToEntero @@ -10842,11 +10871,28 @@ Partial Class Compras_Compras End If - Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) - Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3" Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) - If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2" + + + + + Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix) + Dim cfdVer As String = "" + + If Version = "3.2" Then + Prefijo = "cfd" + cfdVer = "http://www.sat.gob.mx/cfd/2" + ElseIf 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("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital") namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal") @@ -10889,7 +10935,7 @@ Partial Class Compras_Compras TotalRetenciones = ValorXML(node, "totalImpuestosRetenidos", "0").ToDecimal - If Version = "3.3" Then + If Version = "3.3" Or Version = "4.0" Then For Each retencion As XmlNode In nodeRetenciones If retencion.Attributes("Impuesto").Value = "002" Then @@ -10920,7 +10966,7 @@ Partial Class Compras_Compras 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 Version = "3.3" Then + If Version = "3.3" Or Version = "4.0" Then For Each traslado As XmlNode In nodeTraslados If traslado.Attributes("Impuesto").Value = "002" Then @@ -15639,7 +15685,7 @@ Partial Class Compras_Compras e.Row.FCLabel("LbEstatusInv").Text = "NA" End If - If Version = "3.3" Then + If Version = "3.3" Or Version = "4.0" Then CargaPSSAT(e.Row.FCDropDownLost("DdlSATPS")) If e.Row.DBCampo("CveSATPS").ToEntero > 0 Then e.Row.FCDropDownLost("DdlSATPS").SelectedValue = e.Row.DBCampo("CveSATPS") @@ -18305,7 +18351,7 @@ Partial Class Compras_Compras Row("Consec") = TmpDT.Rows.Count + 1 End If - If Version = "3.3" And CveSATPS > 0 Then + If (Version = "3.3" Or Version = "4.0") And CveSATPS > 0 Then Dim DrPSSAT As DataRow = Nothing If CargaXml Then DrPSSAT = GlobalDTPSATPS("-1", CveSATPS.ToString).FiltroPrimero("") @@ -18362,7 +18408,7 @@ Partial Class Compras_Compras Row("NoDeducible") = NoDeducible Row("PU") = Math.Round(PU, DecimalesPermitidos) - If CargaXml And Version = "3.3" Then + If CargaXml And (Version = "3.3" Or Version = "4.0") Then Row("IVA") = Math.Round(IVA, DecimalesPermitidos) Row("IVAPorcentaje") = PorcentajeIVA Row("RetIVA") = Math.Round(RetIVA, DecimalesPermitidos) diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index a1d01875f..bb3a00671 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -2845,6 +2845,8 @@ Partial Class Compras_eFacturas Dim XMLDoc As New XmlDocument Dim Archivo As String = String.Format("{0}Compras\{1}\{2}", UsuarioActual.Empresa.Ruta, gvRow.DataKey("RFCDe"), gvRow.DataKey("XML")) + + Dim Prefijo As String = "" If IO.File.Exists(Archivo) Then @@ -2855,12 +2857,27 @@ Partial Class Compras_eFacturas XMLDoc.LoadXml(SXML) Dim Xml As New StringBuilder + + Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) - namespaces.AddNamespace(XMLDoc.DocumentElement.Prefix, "http://www.sat.gob.mx/cfd/3") + Dim RootDocumento As XmlElement = XMLDoc.DocumentElement + Dim VersionCFDI As String = ValorXML(RootDocumento, "version") + + If VersionCFDI = "3.3" Then + Prefijo = "pago10" + namespaces.AddNamespace("pago10", "http://www.sat.gob.mx/Pagos") + namespaces.AddNamespace(XMLDoc.DocumentElement.Prefix, "http://www.sat.gob.mx/cfd/3") + ElseIf VersionCFDI = "4.0" Then + Prefijo = "pago20" + namespaces.AddNamespace("pago20", "http://www.sat.gob.mx/Pagos20") + namespaces.AddNamespace(XMLDoc.DocumentElement.Prefix, "http://www.sat.gob.mx/cfd/4") + End If + + namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital") - ' namespaces.AddNamespace("pago10", "http://www.sat.gob.mx/Pagos") + nodeComp = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", XMLDoc.DocumentElement.Prefix), namespaces) @@ -2868,20 +2885,20 @@ Partial Class Compras_eFacturas nodeTFD = nodeComp.SelectSingleNode(String.Format("//{0}:TimbreFiscalDigital", "tfd"), namespaces) - Dim PrefijoPagos As String = "" + 'Dim PrefijoPagos As String = "" - For Each nodoPrefijo As XmlNode In nodeComp.ChildNodes - If nodoPrefijo.Prefix <> "tfd" And nodoPrefijo.Prefix.ToUpper.Contains("PAGO") Then - PrefijoPagos = nodoPrefijo.Prefix - End If - Next + 'For Each nodoPrefijo As XmlNode In nodeComp.ChildNodes + ' If nodoPrefijo.Prefix <> "tfd" And nodoPrefijo.Prefix.ToUpper.Contains("PAGO") Then + ' PrefijoPagos = nodoPrefijo.Prefix + ' End If + 'Next - namespaces.AddNamespace(PrefijoPagos, "http://www.sat.gob.mx/Pagos") + 'namespaces.AddNamespace(PrefijoPagos, "http://www.sat.gob.mx/Pagos") nodeComp = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", XMLDoc.DocumentElement.Prefix), namespaces) - nodePagos = nodeComp.SelectSingleNode(String.Format("//{0}:Pagos/{0}:Pago", PrefijoPagos), namespaces) - nodePagos2 = nodeComp.SelectSingleNode(String.Format("//{0}:Pagos", PrefijoPagos), namespaces) + nodePagos = nodeComp.SelectSingleNode(String.Format("//{0}:Pagos/{0}:Pago", Prefijo), namespaces) + nodePagos2 = nodeComp.SelectSingleNode(String.Format("//{0}:Pagos", Prefijo), namespaces) @@ -2923,7 +2940,7 @@ Partial Class Compras_eFacturas Dim nodePagosN As XmlNodeList - nodePagosN = nodeComp.SelectNodes(String.Format("//{0}:Pagos", PrefijoPagos), namespaces) + nodePagosN = nodeComp.SelectNodes(String.Format("//{0}:Pagos", Prefijo), namespaces) For Each NodosPagos As XmlNode In nodePagosN @@ -2964,7 +2981,7 @@ Partial Class Compras_eFacturas MontoPago = Monto Dim ObjCompraFolios As New ClsCompras - If ObjCompraFolios.GetCompararComplementoPago(gvRow.DataKey("CveProveedor").ToEntero, Monto, nodePagos2.InnerXml.Replace($"{PrefijoPagos}:", ""), UsuarioActual.CveEmpresa, OP:=If(CveComplementoPagoCompra > 0, 2, 1), CveFactura:=CveFacturaComplemento) Then + If ObjCompraFolios.GetCompararComplementoPago(gvRow.DataKey("CveProveedor").ToEntero, Monto, nodePagos2.InnerXml.Replace($"{Prefijo}:", ""), UsuarioActual.CveEmpresa, OP:=If(CveComplementoPagoCompra > 0, 2, 1), CveFactura:=CveFacturaComplemento) Then ' '.GetCompararComplementoPago(gvRow.DataKey("CveProveedor").ToEntero, Monto, nodePagos2.InnerXml.Replace("pago10:", ""), UsuarioActual.CveEmpresa) Then If ObjCompraFolios.DtResultados.Rows.Count > 0 Then diff --git a/Contabilidad/RepBalanceGeneral.aspx.vb b/Contabilidad/RepBalanceGeneral.aspx.vb index 063f02588..4ca08cb36 100644 --- a/Contabilidad/RepBalanceGeneral.aspx.vb +++ b/Contabilidad/RepBalanceGeneral.aspx.vb @@ -1091,7 +1091,12 @@ Partial Class Contabilidad_RepBalanceGeneral 'parametros a enviar al reporte Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("pImg", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri)) + + 'LogoRuta = String.Format("file://{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) + + Dim RutaLogo As String = String.Format("file://{0}Logo.png", UsuarioActual.Empresa.Ruta) + params.Add(New ReportParameter("pImg", RutaLogo)) + params.Add(New ReportParameter("pFirma1", "")) params.Add(New ReportParameter("pFirma2", "")) params.Add(New ReportParameter("pFechaFin", FechaF)) @@ -1125,7 +1130,10 @@ Partial Class Contabilidad_RepBalanceGeneral 'parametros a enviar al reporte Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("pImg", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri)) + + Dim RutaLogo As String = String.Format("file://{0}Logo.png", UsuarioActual.Empresa.Ruta) + params.Add(New ReportParameter("pImg", RutaLogo)) + 'params.Add(New ReportParameter("pImg", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri)) params.Add(New ReportParameter("pFechaFin", FechaF)) params.Add(New ReportParameter("pSubtotal", DdlSubtotales.SelectedValue.ToString)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario)) @@ -1148,7 +1156,9 @@ Partial Class Contabilidad_RepBalanceGeneral 'parametros a enviar al reporte Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("pImg", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri)) + Dim RutaLogo As String = String.Format("file://{0}Logo.png", UsuarioActual.Empresa.Ruta) + params.Add(New ReportParameter("pImg", RutaLogo)) + 'params.Add(New ReportParameter("pImg", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri)) params.Add(New ReportParameter("pFechaI", DdlEjercicio.SelectedValue)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario)) params.Add(New ReportParameter("FechaImpresion", Now.ToShortDateString))