diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index d76a89776..bdba59ae3 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -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