-- mejora en impresion complementos de pago 4.0

This commit is contained in:
2022-06-04 16:07:29 -07:00
parent ec89129675
commit a40150b31a

View File

@@ -4843,8 +4843,7 @@ Public Class ClsPaginas
PaginaDict.Add("/Contabilidad2/RepCambiosSituacionFinanciera.aspx".ToUpper(), 585)
PaginaDict.Add("/Contabilidad2/RepSituacionFinanciera.aspx".ToUpper(), 586)
PaginaDict.Add("/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx".ToUpper(), 587)
' PaginaDict.Add("/Contabilidad2/RegPoliza.aspx".ToUpper(), 588)
'PaginaDict.Add("/Contabilidad2/PymeRegPoliza.aspx".ToUpper(), 588)
PaginaDict.Add("/Contabilidad2/RepAlmacenConta.aspx".ToUpper(), 539)
PaginaDict.Add("/Contabilidad2/RepAnexoCatalogoMensual.aspx".ToUpper(), 589)
@@ -5586,29 +5585,8 @@ Public Class ClsPaginas
PaginaDict.Add("/ZDG/MensajeManual.aspx".ToUpper(), -1)
PaginaDict.Add("/ZDG/MensajeAutomatico.aspx".ToUpper(), -1)
'PymeCharlie
PaginaDict.Add("/PyME/Contabilidad/CatCuentas.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/TiposPoliza.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/PlantillasPolizas.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/PlantillasPolizasDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/RegPoliza.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/RegPrePoliza.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/ContabilizacionVentas.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/ContabilizacionCompras.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/ContabilidadElectronica.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/CierreEjercicio.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/RepBalanceGeneral.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/RepAnexoCatalogo.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/RepMovimientosAuxiliaresCatalogo.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/RepBalanzaComprobacion.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Contabilidad/RepEstadoResultados.aspx".ToUpper(), -1)
PaginaDict.Add("/Planeacion/Presupuestos.aspx".ToUpper(), -1)
'Pyme 2017
PaginaDict.Add("/PyME/Sistemas/RegistroEmpresa.aspx".ToUpper(), -1)
PaginaDict.Add("/PyME/Sistemas/WizardRegistro.aspx".ToUpper(), -1)
PaginaDict.Add("/Contabilidad/OCDetalleAlmacen.aspx".ToUpper(), -1)
@@ -6240,45 +6218,6 @@ Public Class ClsPaginas
Return Bytes
End Function
Public Function ImprimirPDFPyME(RutaReporte As String, DataSource As DataSet, Parametros As List(Of CrystalParametro), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As StiReport = Nothing) As Byte()
If IsNothing(MR) Then MR = New Stimulsoft.Report.StiReport()
Dim Bytes As Byte() = Nothing
Try
MR.Load(RutaReporte)
MR.Dictionary.DataSources.Clear()
MR.RegData(DataSource)
Dim Lista = MR.Dictionary.Variables.ToList()
For Each item As CrystalParametro In Parametros
If Lista.Exists(Function(a) a.Name = item.Nombre) Then
MR.Dictionary.Variables(item.Nombre).Value = item.Valor.ToString
End If
Next
MR.Dictionary.Synchronize()
MR.IsRendered = False
MR.Render(False)
Dim pdfSettings As New Stimulsoft.Report.Export.StiPdfExportSettings()
Dim MemoryStream As New MemoryStream
Select Case Formato
Case "PDF"
MR.ExportDocument(Stimulsoft.Report.StiExportFormat.Pdf, MemoryStream, pdfSettings)
Case "EXCEL"
MR.ExportDocument(Stimulsoft.Report.StiExportFormat.Excel2007, MemoryStream, pdfSettings)
End Select
Bytes = MemoryStream.ToArray
MR.RenderedPages.Clear()
MR.Dispose()
MemoryStream.Dispose()
Catch ex As Exception
GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}")
'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017
'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}")
End Try
Return Bytes
End Function
Public Function StreamPDFTest(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) As Byte()
'limpio ReportViwer
@@ -6407,533 +6346,6 @@ Public Class ClsPaginas
#End Region
#Region "IMPRIMIR FACTURA"
Public Sub PdfFacturaPyME(ByRef Vta As Modelos.Factura, DT As DataTable, Optional Guardar As Boolean = True)
Dim retorno As Byte() = Nothing
'DATOS GENERALES
Dim Ruta As String = UsuarioActual.Empresa.Ruta
Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml"
Dim NombreArchivo As String = ""
Dim NombreArchivoDescarga As String = ""
Dim TipoDocumento As String = ""
Dim TipoDocumentoRef As String = ""
Dim AplicaPagare As String = "1"
Dim RFCReceptor As String = ""
If String.IsNullOrEmpty(Vta.RFCReceptor) Then
RFCReceptor = Vta.Cliente.RFC
If Vta.FacturarSucursal Then
If Vta.ClienteSucursal IsNot Nothing Then
RFCReceptor = Vta.ClienteSucursal.RFC
End If
End If
Else
RFCReceptor = Vta.RFCReceptor
End If
Dim RutaCBB As String = String.Format("{0}CBB\{1}.jpg", Ruta, Vta.SerieFolio)
Dim ImagenCBB As New System.IO.FileInfo(RutaCBB)
Dim ImgCBB As String '= String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio)
Dim ImagenPath = String.Format("{0}Formatos\Suc{1}\logo.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal)
Dim Logo As New System.IO.FileInfo(ImagenPath)
Dim ImgLogo = New Uri(String.Format("{0}Empresas/{1}/Formatos/Suc{2}.png", UrlSitio, UsuarioActual.CveEmpresa, Vta.CveSucursal)).AbsoluteUri
Dim SBDomicilioSucursal As New StringBuilder()
Dim CiudadSucursal As String = String.Format("{0},{1}", Vta.SubProyecto.Municipio, Vta.SubProyecto.Estado)
Dim DomicilioSucursal As String = ""
SBDomicilioSucursal.AppendFormat("{0}", Vta.SubProyecto.Calle)
If Vta.SubProyecto.NoExt.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(" No.Ext: {0}", Vta.SubProyecto.NoExt)
If Vta.SubProyecto.NoInt.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", No.Int: {0}", Vta.SubProyecto.NoInt)
If Vta.SubProyecto.Colonia.Length > 0 Then SBDomicilioSucursal.AppendFormat(", Col: {0}", Vta.SubProyecto.Colonia)
If Vta.SubProyecto.CP.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", CP: {0}", Vta.SubProyecto.CP)
If CiudadSucursal.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", CiudadSucursal)
If Vta.SubProyecto.Pais.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", Vta.SubProyecto.Pais)
DomicilioSucursal = SBDomicilioSucursal.ToString
Dim Fecha As String = Vta.Fecha.ToShortDateString
Dim SBDireccion As New StringBuilder()
Dim SBLugar As New StringBuilder()
Dim ClienteDireccion As String
Dim ClienteLugar As String
'SI ESTA TIMBRADA - CON XML
If File.Exists(PathXML) AndAlso Vta.Serie <> "VistaPrevia" Then 'Cuando es vista previe y coincide la serie y folio se ponen los datos fiscales
Dim XmlDoc As New System.Xml.XmlDocument
XmlDoc.Load(PathXML)
Dim TC As Decimal = 1
Try
TC = XmlDoc.DocumentElement.Attributes("TipoCambio").InnerText.ToDecimal
Catch ex As Exception
TC = 1
End Try
Vta.FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate
Vta.NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText
Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento")
If Not IsNothing(validaElemento) Then
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then
Vta.FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText
Vta.NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText
Vta.FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate
Vta.SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText
Vta.SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText
End If
Next
Else
Vta.FolioFiscal = "Sin Timbrar"
Vta.NoSerieCertificado = "Sin Timbrar"
Vta.SelloCFDi = "Sin Timbrar"
Vta.SelloSAT = "Sin Timbrar"
End If
'SIN TIMBRAR - SIN XML
Else
Vta.FolioFiscal = "Sin Timbrar"
Vta.NoSerieCertificado = "Sin Timbrar"
Vta.SelloCFDi = "Sin Timbrar"
Vta.SelloSAT = "Sin Timbrar"
End If
'DIRECCION CLIENTE
If Vta.CveClienteSucursal.ToEntero > 0 Then
'Si cliente tiene Noint, NoExt, CP
SBDireccion.AppendFormat("{0}", Vta.ClienteSucursal.Direccion)
If Vta.ClienteSucursal.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt)
If Vta.ClienteSucursal.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt)
If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.ClienteSucursal.Colonia)
If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then
If Vta.ClienteSucursal.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.ClienteSucursal.CP.Trim)
End If
'Si cliente tiene Local, CD, Edo, Pais
If Vta.ClienteSucursal.Localidad IsNot Nothing AndAlso Vta.ClienteSucursal.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.ClienteSucursal.Localidad)
If Vta.ClienteSucursal.Municipio IsNot Nothing AndAlso Vta.ClienteSucursal.Municipio.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.ClienteSucursal.Municipio)
If Vta.ClienteSucursal.Estado IsNot Nothing AndAlso Vta.ClienteSucursal.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.ClienteSucursal.Estado)
If Vta.ClienteSucursal.Pais IsNot Nothing AndAlso Vta.ClienteSucursal.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.ClienteSucursal.Pais)
Else
SBDireccion.AppendFormat("{0}", Vta.Cliente.Direccion)
If Vta.Cliente.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt)
If Vta.Cliente.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt)
If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.Cliente.Colonia)
If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then
If Vta.Cliente.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.Cliente.CP.Trim)
End If
'Si cliente tiene Local, CD, Edo, Pais
If Vta.Cliente.Localidad IsNot Nothing AndAlso Vta.Cliente.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.Cliente.Localidad)
If Vta.Cliente.Ciudad IsNot Nothing AndAlso Vta.Cliente.Ciudad.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.Cliente.Ciudad)
If Vta.Cliente.Estado IsNot Nothing AndAlso Vta.Cliente.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.Cliente.Estado)
If Vta.Cliente.Pais IsNot Nothing AndAlso Vta.Cliente.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.Cliente.Pais)
End If
ClienteDireccion = SBDireccion.ToString
ClienteLugar = SBLugar.ToString
SBDireccion.Clear()
SBLugar.Clear()
'LOGO
Dim LogoRuta As String = ""
'POR SUCURSAL
LogoRuta = String.Format("{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal)
If File.Exists(LogoRuta) Then
LogoRuta = String.Format("file://{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal)
'POR EMPRESA
Else
LogoRuta = String.Format("{0}Formatos\Logo.png", UsuarioActual.Empresa.Ruta)
If File.Exists(LogoRuta) Then
'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
LogoRuta = String.Format("{0}", LogoRuta)
End If
End If
'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
LogoRuta = String.Format("{0}", LogoRuta)
'Si no tiene CBB, SE GENERA
If Not ImagenCBB.Exists Then
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total.ToString.ToDecimal, Vta.FolioFiscal, RutaCBB)
End If
ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio)
Dim CadenaOriginals As String = "||1.0|" + Vta.FolioFiscal + "|" + Vta.FechaCertificacion.ToString("yyyy-MM-dd") + "T" + Vta.FechaCertificacion.ToString("HH:mm:ss") + "|" + Vta.SelloCFDi + "|" + Vta.NoSerieCertificado + "||"
If Not ImagenCBB.Exists Then ImgCBB = ""
Dim RutaFormato As String = ""
'AQUI EMPIEZA LOS PARAMETROS
Try
Dim params = New List(Of CrystalParametro)
'CLIENTE
params.Add(New CrystalParametro("ClienteCodigo", Vta.Cliente.Codigo))
params.Add(New CrystalParametro("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso RFCReceptor = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre))))
params.Add(New CrystalParametro("ClienteDireccion", ClienteDireccion))
params.Add(New CrystalParametro("ClienteLugar", ClienteLugar))
'TOTALES
params.Add(New CrystalParametro("SubTotal", Vta.SubTotal.ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("Descuento", Vta.Descuento.ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("Amortizacion", Vta.Amortizacion.ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("SubTotal2", (Vta.SubTotal - Vta.Descuento - Vta.Amortizacion).ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("IVA", Vta.IVA.ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("RetIVA", Vta.RetIVA.ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("RetISR", Vta.RetISR.ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("Total", Vta.Total.ToString.FormatoNumero(2)))
params.Add(New CrystalParametro("ImporteLetra", Vta.Total.ToString.ToDouble.Texto2Letras(Vta.CveMoneda)))
'DATOS GENERALES
params.Add(New CrystalParametro("Observaciones", Vta.Observaciones))
params.Add(New CrystalParametro("CveVendedor", Vta.CveVendedor.ToString))
'params.Add(New CrystalParametro("Status", Vta.EstatusFactura))
params.Add(New CrystalParametro("FechaSolicitud", Vta.Fecha.ToString("dd/MMMM/yyyy"))) ' se puede omitir
params.Add(New CrystalParametro("Serie", Vta.Serie))
params.Add(New CrystalParametro("Folio", Vta.Folio.ToString))
params.Add(New CrystalParametro("DomicilioSucursal", DomicilioSucursal))
params.Add(New CrystalParametro("Vencimiento", Vta.FechaVencimiento.ToString("dd/MM/yyyy")))
params.Add(New CrystalParametro("FolioFiscal", Vta.FolioFiscal))
params.Add(New CrystalParametro("FechaCertificacion", String.Format("{0}T{1}", Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss"))))
params.Add(New CrystalParametro("SelloCFDI", Vta.SelloCFDi))
params.Add(New CrystalParametro("CadenaSAT", CadenaOriginals))
params.Add(New CrystalParametro("SelloSAT", Vta.SelloSAT))
params.Add(New CrystalParametro("QR", ImgCBB))
params.Add(New CrystalParametro("ClienteRFC", RFCReceptor))
params.Add(New CrystalParametro("FormaPago", Vta.FormaPagoText))
params.Add(New CrystalParametro("Moneda", Vta.Moneda))
params.Add(New CrystalParametro("TipoCambio", Vta.TipoCambio.ToString))
params.Add(New CrystalParametro("CondicionPago", Vta.CondicionesPagoText))
params.Add(New CrystalParametro("CadenaOriginal", CadenaOriginals))
params.Add(New CrystalParametro("SerieCertificadoSAT", Vta.NoSerieCertificado))
params.Add(New CrystalParametro("CertificadoContribuyente", Vta.NoSerieCertificadoContribuyente))
params.Add(New CrystalParametro("NumCta", Vta.NumeroCuenta))
params.Add(New CrystalParametro("LogoPath", LogoRuta))
'VENDEDOR
Dim RowVendedor As DataRow = GlobalDTVendedores(-1).FiltroPrimero(String.Format("CveVendedor = {0}", Vta.CveVendedor.ToString))
If Not IsNothing(RowVendedor) Then
params.Add(New CrystalParametro("VendedorNombre", RowVendedor("Vendedor").ToString))
params.Add(New CrystalParametro("VendedorMail", RowVendedor("Correo").ToString))
params.Add(New CrystalParametro("VendedorTelefono", RowVendedor("Telefono").ToString))
params.Add(New CrystalParametro("VendedorCelular", RowVendedor("Celular").ToString))
End If
params.Add(New CrystalParametro("CiudadSucursal", CiudadSucursal))
params.Add(New CrystalParametro("OC", Vta.Det_OrdenCompra.ToString))
If UsuarioActual.Empresa.Funcionalidad(508) = "1" Then
params.Add(New CrystalParametro("IEPS", Vta.IEPS.ToString.FormatoNumero(2)))
End If
If Vta.CveClienteSucursal > 0 Then
params.Add(New CrystalParametro("ClienteContactoMail", Vta.ClienteSucursal.CorreoSucursal))
params.Add(New CrystalParametro("ClienteTelefono", Vta.ClienteSucursal.TelefonoSucursal))
Else
params.Add(New CrystalParametro("ClienteContactoMail", Vta.Cliente.MailCotizacion))
params.Add(New CrystalParametro("ClienteTelefono", If(Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso Vta.Cliente.Telefono.Length > 6, Vta.Cliente.Telefono, Vta.TelefonoGenerico)))
End If
If UsuarioActual.CveEmpresa.Contiene(17) Then
params.Add(New CrystalParametro("MetodoPago", Vta.ClaveMetodoPagoSAT.ToString))
Else
params.Add(New CrystalParametro("MetodoPago", Vta.MetodoPago.ToString))
End If
Select Case Vta.TipoDocto
Case "Ing"
NombreArchivo = "Factura"
NombreArchivoDescarga = "Factura"
TipoDocumento = "INGRESO"
'GENERAL
params.Add(New CrystalParametro("TipoDocumento", NombreArchivoDescarga))
params.Add(New CrystalParametro("Tipo", TipoDocumento))
params.Add(New CrystalParametro("Ref", TipoDocumentoRef))
params.Add(New CrystalParametro("AplicaPagare", AplicaPagare))
'VSH
If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122, 145) Then
'DATOS CLIENTES
Dim ClienteRow = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCliente = {0}", Vta.CveCliente.ToString))
Dim DatosCliente = ""
If ClienteRow IsNot Nothing Then
DatosCliente = String.Format("{0} | {1} | {2}", Vta.SubProyecto.Municipio, ClienteRow("CuentaContable"), ClienteRow("Codigo"))
End If
params.Add(New CrystalParametro("DatosClientes", DatosCliente))
params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto))
End If
'COMPU, DN DIFUSA
If UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then
params.Add(New CrystalParametro("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, "")))
params.Add(New CrystalParametro("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, "")))
params.Add(New CrystalParametro("PedidoContrato", Vta.PedidoContrato))
params.Add(New CrystalParametro("DescripcionContrato", Vta.NumeroDescripcionContrato))
params.Add(New CrystalParametro("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, "")))
params.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New CrystalParametro("FechaImpresion", Now.ToDateTime.ToString))
params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto))
'INE COMPLEMENTOS
If UsuarioActual.CveEmpresa.Contiene(72) Then
Dim INETipoProceso As String = ""
Dim INETipoComite As String = ""
Dim INEIdContabilidad As Integer = 0
If Vta.ComplementoINE IsNot Nothing Then
INETipoProceso = Vta.ComplementoINE.INETipoProceso
INETipoComite = Vta.ComplementoINE.INETipoComite
INEIdContabilidad = Vta.ComplementoINE.INEIdContabilidad
End If
params.Add(New CrystalParametro("INETipoProceso", INETipoProceso))
params.Add(New CrystalParametro("INETipoComite", INETipoComite))
params.Add(New CrystalParametro("INEIdContabilidad", INEIdContabilidad))
params.Add(New CrystalParametro("Referencia", Vta.Cliente.ReferenciaFiscal))
params.Add(New CrystalParametro("ClienteContacto", Vta.AtencionA))
End If
'DIRECCION ENVIO
If Vta.EnviarA.CveDireccionEnvio > 0 Then
Dim StrEnvioDi As New StringBuilder
StrEnvioDi.AppendFormat("{0}", Vta.EnviarA.EnvioDireccion)
If Vta.EnviarA.EnvioNoExt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.EnviarA.EnvioNoExt)
If Vta.EnviarA.EnvioNoInt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.EnviarA.EnvioNoInt)
params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString))
params.Add(New CrystalParametro("EnvioNoExt", Vta.EnviarA.EnvioNoExt))
params.Add(New CrystalParametro("EnvioNoInt", Vta.EnviarA.EnvioNoInt))
params.Add(New CrystalParametro("EnvioColonia", Vta.EnviarA.EnvioColonia))
params.Add(New CrystalParametro("EnvioCiudad", Vta.EnviarA.EnvioCiudad))
params.Add(New CrystalParametro("EnvioEstado", Vta.EnviarA.EnvioEstado))
params.Add(New CrystalParametro("EnvioContacto", Vta.EnviarA.EnvioContacto))
params.Add(New CrystalParametro("EnvioDepartamento", Vta.EnviarA.EnvioDepartamento))
params.Add(New CrystalParametro("EnvioCP", Vta.EnviarA.EnvioCP))
Else
If Vta.CveClienteSucursal.ToEntero > 0 Then
Dim StrEnvioDi As New StringBuilder
StrEnvioDi.AppendFormat("{0}", Vta.ClienteSucursal.Direccion)
If Vta.ClienteSucursal.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt)
If Vta.ClienteSucursal.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt)
params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString))
params.Add(New CrystalParametro("EnvioColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, "")))
params.Add(New CrystalParametro("EnvioCiudad", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, "")))
params.Add(New CrystalParametro("EnvioEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, "")))
params.Add(New CrystalParametro("EnvioCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, "")))
Else
Dim StrEnvioDi As New StringBuilder
StrEnvioDi.AppendFormat("{0}", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, ""))
If Vta.Cliente.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt)
If Vta.Cliente.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt)
params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString))
params.Add(New CrystalParametro("EnvioColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, "")))
params.Add(New CrystalParametro("EnvioCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, "")))
params.Add(New CrystalParametro("EnvioEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, "")))
params.Add(New CrystalParametro("EnvioCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, "")))
End If
End If
'CLIENTE SUCURSAL
If Vta.CveClienteSucursal.ToEntero > 0 Then
params.Add(New CrystalParametro("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, "")))
params.Add(New CrystalParametro("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, "")))
params.Add(New CrystalParametro("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, "")))
params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, "")))
params.Add(New CrystalParametro("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, "")))
params.Add(New CrystalParametro("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, "")))
params.Add(New CrystalParametro("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, "")))
params.Add(New CrystalParametro("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, "")))
params.Add(New CrystalParametro("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, "")))
Else
params.Add(New CrystalParametro("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, "")))
params.Add(New CrystalParametro("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, "")))
params.Add(New CrystalParametro("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, "")))
params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, "")))
params.Add(New CrystalParametro("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, "")))
params.Add(New CrystalParametro("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, "")))
params.Add(New CrystalParametro("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, "")))
params.Add(New CrystalParametro("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, "")))
params.Add(New CrystalParametro("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, "")))
End If
End If
RutaFormato = String.Format("{0}Formatos\{1}.mrt", UsuarioActual.Empresa.Ruta, NombreArchivo)
Case "Egs"
If UsuarioActual.CveEmpresa.Contiene(72, 80) Then
NombreArchivo = "NotaCredito"
Else
NombreArchivo = "Factura"
End If
NombreArchivoDescarga = "Nota de Crédito"
TipoDocumento = "EGRESO"
TipoDocumentoRef = String.Format(": Ref.:{0}", Vta.RefDocto)
AplicaPagare = "0"
'GENERAL
params.Add(New CrystalParametro("TipoDocumento", NombreArchivoDescarga))
params.Add(New CrystalParametro("Tipo", TipoDocumento))
params.Add(New CrystalParametro("Ref", TipoDocumentoRef))
params.Add(New CrystalParametro("AplicaPagare", AplicaPagare))
params.Add(New CrystalParametro("Fecha", String.Format("{0}T{1}", Vta.Fecha.ToString("yyyy-MM-dd"), Vta.Fecha.ToString("HH:mm:ss"))))
'ALAN YEPIZ
If UsuarioActual.CveEmpresa.Contiene(123) Then
params.Add(New CrystalParametro("DiaExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Day)))
params.Add(New CrystalParametro("MesExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Month)))
params.Add(New CrystalParametro("AñoExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Year)))
End If
'COMPU, DN DIFUSA
If UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then
params.Add(New CrystalParametro("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, "")))
params.Add(New CrystalParametro("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, "")))
params.Add(New CrystalParametro("PedidoContrato", Vta.PedidoContrato))
params.Add(New CrystalParametro("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, "")))
params.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New CrystalParametro("FechaImpresion", Now.ToDateTime.ToString))
params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto))
'CLIENTE SUCURSAL
If Vta.CveClienteSucursal.ToEntero > 0 Then
params.Add(New CrystalParametro("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, "")))
params.Add(New CrystalParametro("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, "")))
params.Add(New CrystalParametro("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, "")))
params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, "")))
params.Add(New CrystalParametro("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, "")))
params.Add(New CrystalParametro("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, "")))
params.Add(New CrystalParametro("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, "")))
params.Add(New CrystalParametro("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, "")))
params.Add(New CrystalParametro("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, "")))
Else
params.Add(New CrystalParametro("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, "")))
params.Add(New CrystalParametro("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, "")))
params.Add(New CrystalParametro("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, "")))
params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, "")))
params.Add(New CrystalParametro("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, "")))
params.Add(New CrystalParametro("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, "")))
params.Add(New CrystalParametro("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, "")))
params.Add(New CrystalParametro("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, "")))
params.Add(New CrystalParametro("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, "")))
End If
End If
RutaFormato = String.Format("{0}Formatos\{1}.mrt", UsuarioActual.Empresa.Ruta, "Factura")
Case Else
NombreArchivo = ""
TipoDocumento = ""
End Select
If NombreArchivo = "" Then
GuardaLog("No se especifico el tipo de Impresion de venta (Venta, Remision, Cotización, Nota de Crédito).")
Exit Sub
End If
'TERMINA REGION PARAMETROS
Dim lrds As New List(Of ReportDataSource)
'Si es ECLIPSE CREAR COLUMAS PARA FIRMAS EN DtDetalle.
If UsuarioActual.CveEmpresa.Contiene(1, 15, 17, 71, 76, 125) Then
Dim DtDetalleFirmas As New DataTable
DtDetalleFirmas.TableName = "DetalleFirma"
DtDetalleFirmas = Vta.DtDetalle.Copy()
'SI NO TIENE LAS COLUMNAS DE FIRMAS LAS CREA.
If Not DtDetalleFirmas.Columns.Contains("Titulo") Then
DtDetalleFirmas.Columns.Add("Titulo", GetType(String))
DtDetalleFirmas.Columns.Add("Nombre", GetType(String))
DtDetalleFirmas.Columns.Add("Puesto", GetType(String))
DtDetalleFirmas.Columns.Add("Lado", GetType(Integer))
End If
'Se llenan los Rows de las columnas con los datos del DtFirmas
For i As Integer = 0 To Vta.DtFirmas.Rows.Count - 1
'Si DtDetalle es menor al DtFirmas, crea un nuevo Row en DtDetalle y le asigna valor, Si no solo asigna valor
If DtDetalleFirmas.Rows.Count < i + 1 Then
Dim Dr = DtDetalleFirmas.NewRow
Dr("Titulo") = Vta.DtFirmas(i)("Titulo").ToString
Dr("Nombre") = Vta.DtFirmas(i)("Nombre").ToString
Dr("Puesto") = Vta.DtFirmas(i)("Puesto").ToString
Dr("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero
DtDetalleFirmas.Rows.Add(Dr)
Else
DtDetalleFirmas(i)("Titulo") = Vta.DtFirmas(i)("Titulo").ToString
DtDetalleFirmas(i)("Nombre") = Vta.DtFirmas(i)("Nombre").ToString
DtDetalleFirmas(i)("Puesto") = Vta.DtFirmas(i)("Puesto").ToString
DtDetalleFirmas(i)("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero
End If
Next i
Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = DtDetalleFirmas}
lrds.Add(rds)
Else
Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = Vta.DtDetalle}
lrds.Add(rds)
End If
Dim rds1 As New ReportDataSource With {.Name = "DataSet1", .Value = If(Vta.DtDeduccion IsNot Nothing, Vta.DtDeduccion, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte
lrds.Add(rds1)
'DETALLE FIRMAS
Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = If(Vta.DtFirmas IsNot Nothing, Vta.DtFirmas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte
lrds.Add(rds2)
Dim Archivo As New System.IO.FileInfo(RutaFormato)
Dim DataSet As New DataSet
Vta.DtDetalle.TableName = "Datos"
Vta.DtDeduccion.TableName = "Deduccion"
DataSet.Tables.Add(Vta.DtDetalle.Copy)
DataSet.Tables.Add(Vta.DtDeduccion.Copy)
If Archivo.Exists Then
ImprimirbytesPDF(ImprimirPDFPyME(RutaFormato, DataSet, params, NombreArchivo, "PDF", MR:=Nothing), "Factura")
If Guardar Then
Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio))
If Not ArchivoPDF.Exists Then
Try
DirectoryExistsCreate(String.Format("{0}PDF", UsuarioActual.Empresa.Ruta))
DirectoryExistsCreate(String.Format("{0}PDF\{1}", UsuarioActual.Empresa.Ruta, Vta.TipoDocto))
File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno)
Catch ex As Exception
Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia)
End Try
Else
Try
ArchivoPDF.Delete()
File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno)
Catch ex As Exception
Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia)
End Try
End If
End If
Else
params.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa))
params.Add(New CrystalParametro("RFC", UsuarioActual.Empresa.RFC))
ImprimirbytesPDF(ImprimirPDFPyME(RutaFormato, DataSet, params, NombreArchivo, "PDF", MR:=Nothing), "Factura")
End If
Catch ex As Exception
GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
End Try
End Sub
Public Function PdfFactura(ByRef Vta As Modelos.Factura, Optional AplicaPagare As String = "0", Optional Guardar As Boolean = True) As Byte()
Dim retorno As Byte() = Nothing
@@ -7136,7 +6548,7 @@ Public Class ClsPaginas
End If
'Si no tiene CBB, SE GENERA
If Not ImagenCBB.Exists AndAlso Vta.CveCliente.ToEntero > 0 Then
If Not ImagenCBB.Exists AndAlso Vta.FolioFiscal <> "" Then
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total, Vta.FolioFiscal, RutaCBB)
End If
@@ -8922,10 +8334,6 @@ Public Class ClsPaginas
Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento")
Dim validaElementoPago = XmlDoc.DocumentElement("cfdi:Conceptos")
namespaces.AddNamespace(Prefijo, cfdVer)
namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital")
namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal")
If Version = "3.3" Then
cfdVer = "http://www.sat.gob.mx/cfd/3"
namespaces.AddNamespace("pago10", "http://www.sat.gob.mx/Pagos10")
@@ -8935,17 +8343,21 @@ Public Class ClsPaginas
namespaces.AddNamespace("pago20", "http://www.sat.gob.mx/Pagos20")
End If
namespaces.AddNamespace(Prefijo, cfdVer)
namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital")
namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal")
namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal")
'Datos Fiscales
If Not IsNothing(validaElemento) Then
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then
FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText
NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText
FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText
SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText
SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText
End If
Next
Dim nodetfd As XmlNode = XmlDoc.SelectSingleNode(String.Format("{0}:Comprobante/{0}:Complemento/tfd:TimbreFiscalDigital", Prefijo), namespaces)
If nodetfd Is Nothing Then
FolioFiscal = nodetfd.Attributes("UUID").InnerText
NoSerieCertificado = nodetfd.Attributes("NoCertificadoSAT").InnerText
FechaCertificacion = nodetfd.Attributes("FechaTimbrado").InnerText
SelloCFDi = nodetfd.Attributes("SelloCFD").InnerText
SelloSAT = nodetfd.Attributes("SelloSAT").InnerText
End If
End If
'Pago10
@@ -8996,16 +8408,14 @@ Public Class ClsPaginas
End If
'Pago20
If Version = "4.0" AndAlso Not IsNothing(validaElemento) Then
If Version = "4.0" Then
Dim nodePagos As XmlNodeList
nodePagos = XmlDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Complemento/pago20:Pagos/pago20:Pago", Prefijo), namespaces)
For Each Pagos As XmlNode In nodePagos
If Version = "4.0" AndAlso Pagos.Name = "pago20:Totales" Then
Dim a As String = "a"
Else
Dim Dr As DataRow = DTConceptosPago.NewRow
If Not Pagos.Attributes("CtaOrdenante") Is Nothing Then Dr("CtaOrdenante") = Pagos.Attributes("CtaOrdenante").Value Else Dr("CtaOrdenante") = ""
@@ -9053,16 +8463,18 @@ Public Class ClsPaginas
End If
If Not IsNothing(validaElementoPago) Then
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes.Count - 1
If XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes(i).Name = "cfdi:Concepto" Then
Importe = XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes(i).Attributes("Importe").InnerText
PU = XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes(i).Attributes("ValorUnitario").InnerText
Descripcion = XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes(i).Attributes("Descripcion").InnerText
CveUnidad = XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes(i).Attributes("ClaveUnidad").InnerText
Cantidad = XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes(i).Attributes("Cantidad").InnerText
CvePS = XmlDoc.DocumentElement("cfdi:Conceptos").ChildNodes(i).Attributes("ClaveProdServ").InnerText
End If
Next
Dim nodeconceptos As XmlNode = XmlDoc.SelectSingleNode(String.Format("//{0}:Comprobante/{0}:Conceptos", Prefijo), namespaces)
If nodeconceptos.HasChildNodes Then
Dim nodeconcepto As XmlNode = nodeconceptos.ChildNodes(0)
Importe = nodeconcepto.Attributes("Importe").InnerText
PU = nodeconcepto.Attributes("ValorUnitario").InnerText
Descripcion = nodeconcepto.Attributes("Descripcion").InnerText
CveUnidad = nodeconcepto.Attributes("ClaveUnidad").InnerText
Cantidad = nodeconcepto.Attributes("Cantidad").InnerText
CvePS = nodeconcepto.Attributes("ClaveProdServ").InnerText
End If
End If
Dim CadenaOriginal As String = $"||1.0| {FolioFiscal} | {FechaCertificacion.ToDate.ToShortDateString} T {FechaCertificacion.ToDateTime.ToShortTimeString} | {SelloCFDi} | {NoSerieCertificado} ||"
@@ -9100,32 +8512,21 @@ Public Class ClsPaginas
'LOGO
Dim LogoRuta As String = ""
'LogoRuta = String.Format("{0}Logo.png", UsuarioActual.Empresa.Ruta)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
If Imagen.Exists Then
'If File.Exists(LogoRuta) Then
' LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
'End If
''POR EMPRESA
If Imagen.Exists Then ''POR EMPRESA
params.Add(New ReportParameter("LogoPath", $"file://{Imagen.FullName}"))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
If File.Exists($"{UsuarioActual.Empresa.Ruta}Formatos\ReciboDePago.rdlc") Then
rutaArchivo = $"{UsuarioActual.Empresa.Ruta}Formatos\ReciboDePago.rdlc"
Else
rutaArchivo = " \Empresas\Grales\Formatos\ReciboDePago.rdlc"
End If
If Not Directory.Exists($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\") Then
Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\")
End If
If Not Directory.Exists($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\") Then Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\")
Dim ArchivoPDF As New System.IO.FileInfo($"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf")
If ArchivoPDF.Exists Then