facturista.com - Foros de Factura Electrónica (Comprobante Fiscal Digital por Internet)
http://facturista.com/foros/

cfdiapdf - Convertidor de CFDI a PDF
http://facturista.com/foros/viewtopic.php?f=3&t=706
Página 1 de 1

Autor:  ariel_medina [ Mié Feb 19, 2014 11:09 am ]
Asunto:  cfdiapdf - Convertidor de CFDI a PDF

Linea de comandos para convetir a pdf:

cfdiapdf.exe miArchivo.xml cfdi_facturista.rep miArchivo.pdf 1 1

cfdi_facturista.rep es la plantilla que se puede editar con reportman: http://reportman.sourceforge.net/ .

Si pone un punto en el tercer parámetro (nombre del archivo pdf), el nombre del PDF será el nombre del xml más .pdf , Ej.: miArchivo.xml.pdf .

El par de numeros al final, indican el formato que tendrán los complementos de comprobante y de concepto respectivamente, en caso de que existan.

1: Formato xml
2: Formato ini
3: Formato conf

Ejemplos de estos formatos en http://facturista.com/cfd2pdf.php


cfdiapdf toma tu archivo xml y lee atributos como cfdi:Comprobante/total, cfdi:Comprobante/serie, etc., los cuales sustituye en los campos del informe correpondientes.

Los informes predeterminados ya traen la mayoria de estos campos, para agregar uno sólo debe crear un campo (NO etiqueta) en el informe y ponerle el nombre de la primera columna de abajo entre comillas simples, por ejemplo:

'emisor_calle'

Esto será sustituido en ejecución por la calle del emisor.


Aqui las equivalencias (la cadena de la izquierda es lo que debe ir en los campos de informe entre comillas simples):


nodo cfdi:Comprobante

'nscsd' -> noCertificado
'forma_pago' -> formaDePago
'metodo_pago' -> metodoDePago
'condiciones_pago' -> condicionesDePago
'subtotal' -> subTotal
'total' -> total
'folio' -> folio
'serie' -> serie
'descuento' -> descuento
'motivo_descuento' -> motivoDescuento
'cuenta_pago' -> NumCtaPago
'hora_emision_lugar' -> fecha + LugarExpedicion

'total_letras' -> total con letras en minusculas (cinco Pesos 00/100)
'total_letras_mn' -> lo anterior + 'MN' (cinco Pesos 00/100 MN)

'total_letras1' -> total con letras en mayusculas (CINCO PESOS 00/100)
'total_letras_mn1' -> lo anterior + 'MN' (CINCO PESOS 00/100 MN)


nodo cfdi:Comprobante/cfdi:Emisor

'emisor_rfc' -> rfc
'emisor_nombre' -> nombre

'emisor_calle' -> calle
'emisor_numero' -> noExterior
'emisor_numeroint' -> noInterior
'emisor_colonia' -> colonia
'emisor_municipio' -> municipio
'emisor_estado' -> estado
'emisor_pais' -> pais
'emisor_cp' -> codigoPostal
'emisor_referencia' -> referencia
'emisor_localidad' -> localidad

'emisor_dirx1', calle + noExterior + noInterior + colonia + codigoPostal (20 Num. 30 Int. A, Col. Escandinava, CP 24056)
'emisor_dirx2', municipio + estado + pais (Guadalajara, Jalisco, Mexico)

'emisor_regimen' -> Regimen


nodo cfdi:Comprobante/cfdi:Receptor

'receptor_rfc' -> rfc
'receptor_nombre' -> nombre

'receptor_calle' -> calle
'receptor_numero' -> noExterior
'receptor_numeroint' -> noInterior
'receptor_colonia' -> colonia
'receptor_municipio' -> municipio
'receptor_estado' -> estado
'receptor_pais' -> pais
'receptor_cp' -> codigoPostal
'receptor_referencia' -> referencia
'receptor_localidad' -> localidad

'receptor_dirx1', calle + noExterior + noInterior + colonia + codigoPostal (20 Num. 30 Int. A, Col. Escandinava, CP 24056)
'receptor_dirx2', municipio + estado + pais (Guadalajara, Jalisco, Mexico)


nodo cfdi:Comprobante/cfdi:Impuestos

'retenciones' -> totalImpuestosRetenidos
'traslados' -> totalImpuestosTrasladados


nodo cfdi:Comprobante/cfdi:Complemento/tfd:TimbreFiscalDigital

'idsat' -> UUID
'sellocfdi' -> selloCFD
'sellosat' -> selloSAT
'nssat' -> noCertificadoSAT
'horasat' -> FechaTimbrado
'cosat', Cadena Original del SAT

Autor:  ariel_medina [ Dom Feb 23, 2014 4:41 am ]
Asunto:  Re: cfdiapdf - Convertidor de CFDI a PDF

Código:
Cuando llama a cfdiapdf.exe se crean unos archivos intermedios XML con extension .cds , los cuales contienen los conjuntos de datos para llenar el detalle del informe.

Para una factura simple, el conjunto se toma de un archivo *factura.cds, cuyo alias en el informe es qcfdid .

Ese conjunto contiene tanto los conceptos de la factura como los impuestos. Para diferenciarlos usamos el atributo ctipo:

ctipo == 1 : Se trata de un concepto o producto
ctipo == 2 : Se trata de una retención
ctipo == 3 : Se trata de una traslado

En el archivo XML se mira de esta forma:

<ROWDATA>
<ROW ctipo="1" clave="1" producto="Refresco de 2 litros" cantidad="10" unidad="NA" pventa="123.45" importe="1234.50" extra="IAo=" />
<ROW ctipo="2" clave="" producto="IVA" cantidad="" unidad="" pventa="" importe="10.00" extra="IAo=" />
<ROW ctipo="2" clave="" producto="ISR" cantidad="" unidad="" pventa="" importe="20.00" extra="IAo=" />
<ROW ctipo="3" clave="" producto="IVA" cantidad="" unidad="" pventa="16.00" importe="57.60" extra="IAo=" />
<ROW ctipo="3" clave="" producto="IVA" cantidad="" unidad="" pventa="0.00" importe="0.00" extra="IAo=" />
<ROW ctipo="3" clave="" producto="IEPS" cantidad="" unidad="" pventa="20.00" importe="60.00" extra="IAo=" />
</ROWDATA>

El atributo 'extra' contiene el complemento del nodo Concepto en base64, si es que existe.


Para el recibo de nómina se proporcionan estos archivos

cfdiapdf_nomina.dat

   Contiene la ruta de los nodos que se convertirán en conjuntos de datos para el informe. Ej.:   

   cfdi:Comprobante/cfdi:Complemento/nomina:Nomina/nomina:Percepciones,
   cfdi:Comprobante/cfdi:Complemento/nomina:Nomina/nomina:Deducciones,
   cfdi:Comprobante/cfdi:Complemento/nomina:Nomina/nomina:Incapacidades,
   cfdi:Comprobante/cfdi:Complemento/nomina:Nomina/nomina:HorasExtras

   Lo cual hará que se creen los conjuntos de datos correspondientes para llenar el informe.

Percepciones.cds, Deducciones.cds, Incapacidades.cds y HorasExtras.cds

   Se proporcionan estos archivos para que cuando no exista el conjunto en el XML,
   se lea de esos archivos, que solo tienen la estructura pero no datos.

cfdiapdf_nomina.map

   Este archivo contiene un mapeo de atributos de nodos a nombres que se usaran en el informe para referirse a ellos, ej.:
   
   cfdi:Comprobante/cfdi:Complemento/nomina:Nomina/Banco=Nomina.Banco,
   cfdi:Comprobante/descuento=Comprobante.descuento
   
   De modo que al poner en el informe un campo con la cadena 'Nomina.Banco' o 'Comprobante.descuento'
   sea sustituido por el valor correspondiente en el XML.


Por lo visto, para agregar un atributo del XML al informe,
bastaría con poner una entrada más en cfdiapdf_nomina.map .


El informe puede recibir cadenas como parámetros, de la forma "-Dparam=Por este pagare mercantil me comprometo..."
lo cual en la llamada al convertidor, quedaría así:

cfdiapdf.exe cfdi_nomina.xml cfdi_facturista_nomina.rep recibo_nomina.pdf -1 -1 @cfdiapdf_nomina.map @cfdiapdf_nomina.dat "-Dparam=Por este pagare mercantil me comprometo..."

Esos parámetros se configuran en el informe para que pueda recibirlos.

Autor:  ariel_medina [ Jue Mar 13, 2014 1:05 pm ]
Asunto:  Re: cfdiapdf - Convertidor de CFDI a PDF

Los archivo .cds están basados en el formato de Borland Midas o MyBase .


Kylix Developer’s Guide
http://edc.tversu.ru/elib/inf/0181.pdf
Pag. 722

http://stackoverflow.com/questions/10825916/php-append-to-clientdataset-cds-file
http://edn.embarcadero.com/article/10405

Autor:  atorres1984 [ Lun Jun 16, 2014 9:48 am ]
Asunto:  Re: cfdiapdf - Convertidor de CFDI a PDF

Donde se puede descargar la aplicacion, si tienen algun demo, y donde se verian las formas de pago

Autor:  ariel_medina [ Lun Jun 16, 2014 3:52 pm ]
Asunto:  Re: cfdiapdf - Convertidor de CFDI a PDF

Que tal amigo,

Le envié la información por correo.

saludos

Página 1 de 1 Todos los horarios son UTC - 6 horas
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/