; Archivo INI jerarquico ; Un archivo INI jerarquico o multinivel nos permite expresar de manera sencilla ; con nombres de seccion y pares de valores, una estructura jerarquica o ; en forma de arbol, tal como un archivo XML. ; Dicha estructura puede ser tan grande o tan compleja como queramos, ; el analizador de la DLL libfacturista se encargara de construirla a partir de la ; informacion que pongamos en nuestro archivo INI. ; facturista.com - Ariel Medina ; El presente archivo INI jerarquico sirve para representar un CFDI o factura electronica, ; este archivo sera convertido automaticamente por libfacturista a XML para que se pueda sellar y timbrar. ; La notacion jerarquica nos dara la posibilidad de crear o agregar estructuras complejas ; como el caso de los CFDIs con Complementos o Addendas. ; Un ; al principio de una linea indica que es un comentario ; Cada seccion describe la ruta de los nodos en la jerarquia ; (que corresponde a la estructura de un archivo XML o similar) ; los componentes de una ruta (o nombres de nodos) van separados por / (diagonal) ; Para no poner rutas completas, podra hacer uso de Alias ; Puede usar la ruta completa o puede usar los comodines: ./ , ../ y . ; estos ultimos solo pueden ir al principio de una ruta, no enmedio ; pueden ser contiguos, pero deben ir al principio ; ./ sirve para describir un nodo hijo del ultimo nodo, Ej.: ;[cfdi:Comprobante] ;[./cfdi:Emisor] ; ../ se usa para describir al nodo padre de un nodo, Ej.: ;[./NombreNodoHermano1] ;[../NombreNodoHermano2] ;[../../NombreNodoTio] ; . sirve para describir un nodo con la misma ruta del ultimo nodo, Ej.: ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto] ;cantidad=25.36 ;[.] ;cantidad=36.25 ; Los atributos de los nodos se escriben como pares nombre=valor , Ej.: ;precio=12.45 ;unidad=PZA ; Para facilitar la generación del archivo, podemos usar alias ; de manera que en vez de poner toda la ruta del nodo, solo ponga el alias ; puede crear cualquier número de alias, el valor de la izquierda solo ; debe estar compuesto de letras, numeros o _ ; los alias no deben anidarse, es decir no debe poner un alias ; como componente de la ruta en el valor de otro alias [Alias] Comprobante=cfdi:Comprobante Emisor=cfdi:Comprobante/cfdi:Emisor EmisorRegimen=cfdi:Comprobante/cfdi:Emisor/cfdi:RegimenFiscal Receptor=cfdi:Comprobante/cfdi:Receptor ReceptorDomicilio=cfdi:Comprobante/cfdi:Receptor/cfdi:Domicilio Conceptos=cfdi:Comprobante/cfdi:Conceptos Concepto=cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto ConceptoInformacionAduanera=cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:InformacionAduanera ConceptoCuentaPredial=cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:CuentaPredial ConceptoParte=cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:Parte ConceptoComplemento=cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:ComplementoConcepto Impuestos=cfdi:Comprobante/cfdi:Impuestos ImpuestosRetenciones=cfdi:Comprobante/cfdi:Impuestos/cfdi:Retenciones ImpuestosRetencion=cfdi:Comprobante/cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion ImpuestosTraslados=cfdi:Comprobante/cfdi:Impuestos/cfdi:Traslados ImpuestosTraslado=cfdi:Comprobante/cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado ; Empezamos a definir nuestro CFDI ; Antes de cada definición de sección o nodo, verá la ruta completa del nodo ; y la ruta relativa comentadas ; Usamos la notación con Alias por ser más fácil de entender y aplicar ; los comentarios de aquí no son necesarios en los archivos INI que usted genere ;[cfdi:Comprobante] [Comprobante] xmlns:cfdi=http://www.sat.gob.mx/cfd/3 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd version=3.2 serie=A folio=1234 fecha=2013-01-12T18:43:11 formaDePago=Pago en una sola exhibición subTotal=6172.50 TipoCambio=12.34 Moneda=USD total=7124.75 metodoDePago=Efectivo tipoDeComprobante=ingreso LugarExpedicion=Campeche, Campeche NumCtaPago=3849 condicionesDePago=Venta a credito descuento=10.55 motivoDescuento=Por pronto pago FolioFiscalOrig=3463 SerieFolioFiscalOrig=ABC FechaFolioFiscalOrig=2012-01-11T11:11:11 MontoFolioFiscalOrig=24493.38 ;[cfdi:Comprobante/cfdi:Emisor] ;[./cfdi:Emisor] [Emisor] rfc=AAA010101AAA nombre=facturista.com INI ;[cfdi:Comprobante/cfdi:Emisor/cfdi:RegimenFiscal] ;[./cfdi:RegimenFiscal] [EmisorRegimen] Regimen=Regimen General de Ley ;[cfdi:Comprobante/cfdi:Emisor/cfdi:RegimenFiscal] ;[.] [EmisorRegimen] Regimen=Otro regimen (opcional) ;[cfdi:Comprobante/cfdi:Receptor] ;[../../cfdi:Receptor] [Receptor] rfc=X&XX010101AAA nombre=José Ángel & 'Niño' & "Niña" ;[cfdi:Comprobante/cfdi:Receptor/cfdi:Domicilio] ;[./cfdi:Domicilio] [ReceptorDomicilio] calle=Paseo de Montejo noExterior=1234 noInterior=456 colonia=Col. €uropea localidad=Ciudad de los Niños municipio=Municipio de Mérida estado=Yucatán pais=México codigoPostal=38294 referencia=Por la cascada ;[cfdi:Comprobante/cfdi:Conceptos] ;[../../cfdi:Conceptos] [Conceptos] ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto] ;[./cfdi:Concepto] [Concepto] cantidad=10 unidad=PZA noIdentificacion=1 descripcion=Memoria USB valorUnitario=123.45 importe=1234.50 ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:InformacionAduanera] ;[./cfdi:InformacionAduanera] [ConceptoInformacionAduanera] numero=12345 fecha=2011-01-01 aduana=Aduana nogales ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto] ;[../../cfdi:Concepto] [Concepto] cantidad=10 unidad=PZA noIdentificacion=2 descripcion=Memoria USB valorUnitario=123.45 importe=1234.50 ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:CuentaPredial] ;[./cfdi:CuentaPredial] [ConceptoCuentaPredial] numero=3836463729385495 ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto] ;[../../cfdi:Concepto] [Concepto] cantidad=10 unidad=PZA noIdentificacion=3 descripcion=Memoria USB valorUnitario=123.45 importe=1234.50 ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:Parte] ;[./cfdi:Parte] [ConceptoParte] cantidad=10 unidad=PZA noIdentificacion=3 descripcion=Parte 1 valorUnitario=123.45 importe=1234.50 ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:Parte] ;[.] [ConceptoParte] cantidad=10 unidad=PZA noIdentificacion=3 descripcion=Parte 2 valorUnitario=123.45 importe=1234.50 ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto] ;[../../cfdi:Concepto] [Concepto] cantidad=10 unidad=PZA noIdentificacion=4 descripcion=Memoria USB valorUnitario=123.45 importe=1234.50 ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:ComplementoConcepto] ;[./cfdi:ComplementoConcepto] [ConceptoComplemento] ;[cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto] ;[../../cfdi:Concepto] [Concepto] cantidad=10 unidad=PZA noIdentificacion=5 descripcion=Memoria USB valorUnitario=123.45 importe=1234.50 ;[cfdi:Comprobante/cfdi:Impuestos] ;[../../cfdi:Impuestos] [Impuestos] totalImpuestosRetenidos=35.35 totalImpuestosTrasladados=987.60 ;[cfdi:Comprobante/cfdi:Impuestos/cfdi:Retenciones] ;[./cfdi:Retenciones] [ImpuestosRetenciones] ;[cfdi:Comprobante/cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion] ;[./cfdi:Retencion] [ImpuestosRetencion] impuesto=ISR importe=12.12 ;[cfdi:Comprobante/cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion] ;[.] [ImpuestosRetencion] impuesto=IVA importe=23.23 ;[cfdi:Comprobante/cfdi:Impuestos/cfdi:Traslados] ;[../../cfdi:Traslados] [ImpuestosTraslados] ;[cfdi:Comprobante/cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado] ;[./cfdi:Traslado] [ImpuestosTraslado] impuesto=IVA importe=987.60 tasa=16.00 ;[cfdi:Comprobante/cfdi:Impuestos/cfdi:Traslados/cfdi:Traslado] ;[.] [ImpuestosTraslado] impuesto=IEPS importe=0.00 tasa=0.00