Open eaavendanop opened 10 years ago
Hola, sería muy bueno si lo pudieras implementar, debe ser relativamente sencillo hacerlo, solo habría que copiar el XSD y el XSLT al directorio correspondiente. Y generarlo como un complemento, si le quieres echar un ojo y tienes más dudas con todo gusto te ayudo.
Cuando quede todo listo y probado hacemos el release correspondiente.
Gracias
Muchas gracias, lo revisaré y cualquier otra cosa te aviso.
Un detalle más, al bajar y compilar el código fuente se me actualiza a la versión 2.5, pero le quitan algunas funcionalidades como las de obtener el Keystore, ¿esto es normal?
Supongo que sí, en que parte del código es eso para darle una revisada?
Que tal amigo, ami también me interesa, si tienes algo en que pueda ayudarte hazmelo saber, puedo inicialmente ayudarte en el testeo, y si es necesario en el desarrollo.
Oye, ya realicé los cambios necesarios, fue muy simple, en estos momentos lo estoy testeando, pero lo que si no sé, es como subir los cambios para el repositorio público. Saludos.
Perfecto, yo aún no he tenido tiempo de revisarlo, ¿serías muy amable de ayudarme a implementarlo?
Saludos!!!
Realicé los cambios solo a la version 3.2 del CFDI, no vi ya necesario realizar los cambios en las versiones anteriores, esto solo para el sellado, para la verificación, aún esta igual, mi PAC me dice que me dará una interface para pruebas ya con timbre, esto espero y sea antes del 2 de Dic. y ya con mas seguridad les comento los cambios. Saludos.
Muchas gracias, si ya realizaste los cambios en un fork, le puedes dar push y luego un pull request? Ya con eso los integramos.
Saludos!
hola, ya integre el complemento de nomina, genere un jar pero no se como mandártelo, avisame si te sirve saludos
Gracias, si bajaste el codigo de git, solo necesitas darle add a los archivos commit y push, con eso debe ser suficiente.
La otra opcion es que nos mandes los archivos a bigdata.mx en gmail. Y ya nosotros lo subimos.
De nuevo muchas gracias,
On Wed, Dec 4, 2013 at 10:58 PM, cristimayo notifications@github.comwrote:
hola, ya integre el complemento de nomina, genere un jar pero no se como mandártelo, avisame si te sirve saludos
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-29869792 .
Hola! Estoy interesado en ayudar a realizar el complemento de la nomina, soy nuevo en maven, ya realize un fork para poder subirlo despues, pero tengo unas dudas respecto al codigo, te podre mandar un correo para comentartelas o seria por aca por los comentarios?
Saludos.
Los que ya hicieron el cambio, me podrían enviar la librería a este correo: eaavendanop@gmail.com muchas gracias por su ayuda.
Saludos!!!
te lo he enviado a ese correo, pero me lo bota, no tienes otro, y con gusto te lo mando. incluso si quieres te comento donde fueron las modificaciones, para que intentes subirlo, yo lo he intentado pero no lo he logrado. tal vez es problema de mi netbeans.
Me parece perfecto, este es mi otro correo eduardoaap@hotmail.es
De antemano gracias!!!
Hola el-many, me podras comentar donde fueron las modificaciones y ver si las puedo subir yo con git?
Dentro de la carpeta src/main/resources
1.- agregue el paquete "xsd.common.nomina" y dentro de este paquete el archivo "nomina11.xsd" 2.- agregue el paquete "xslt.cfd.nomina" y dentro de este paquete el archivo "nomina11.xslt"
y ya en las clases agregar esas lineas:
clase: CFDv32.java en la linea 87: "/xsd/common/nomina/nomina11.xsd"
en: cadenaoriginal_3_2.xslt en la linea 27:
Solo lo aplique al CFDi pues ya para el CFD no tiene caso, yo ya he estado haciendo pruebas de sello, pero el PAC todavia no tiene una interface pruebas, si alguien tiene o sabe de los catalogos de percepciones, deducciones y todo eso, pues que lo publiquen porfas. Saludos, espero les sirva. P.D. los xsd y xslt los encuentras en el SAT.
xsl:include href="/xslt/cfd/nomina/nomina11.xslt"/ este es la linea 27, solo que inicias con menor que, y terminas con mayor que.
@cristimayo ¿podrías enviarme la librería que generaste? al correo eaavendanop@gmail.com y también me gustaría saber si me puedes explicar los cambios que realizaste, pues estoy teniendo un problema, ya que lo agrega pero así:
Hola, no estoy en mi computadora, en un rato que llegue a casa te lo mando Saludos
Pues después de la ayuda de los compañeros, logré generar el XML con el complemento de nómina, pero ahora me surge otra duda, ¿habrá manera de poner el namespace dentro del complemento? ya lo está poniendo en el encabezado del CFDI.
la realidad es que lo correcto es en el encabezado del comprobante no del complemento.
Hola, ya pude integrar todos los cambios, voy a empezar la fase de pruebas, antes ocupaba el .jar descargado directamente de aqui, ahorita le pase a mi aplicacion el jar que saque con los cambios, pero me manda el siguiente error
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
Alguno sabra por que me sale esto?
Saludos.
Puede ser que al cambiar las librerías hayas cambiado algún método a estático o privado. Si tienes los cambios del código en algún branch yo te puedo ayudar.
Saludos
2013/12/15 Ivan Aranda notifications@github.com
Hola, ya pude integrar todos los cambios, voy a empezar la fase de pruebas, antes ocupaba el .jar descargado directamente de aqui, ahorita le pase a mi aplicacion el jar que saque con los cambios, pero me manda el siguiente error
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
Alguno sabra por que me sale esto?
Saludos.
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30627983 .
Hola, Cambiaron en la pagina del SAT el complemento, ahora algunos campos son opcionales y la parte de incapacidades y horas extras se pusieron en nodos, en fin, mejor esten pendientes Saludos
Muchas gracias, ya lo encontre habia dejado un .jar anterior en otro lado del mi proyecto y se instanciaba hacia el en una clase.
Tengo otra duda para realizar el llenado del la clase del timbrado por ejemplo se crea el objeto nuevo
TimbreFiscalDigital timbreFiscalDigital = of.createTimbreFiscalDigital();
Para el complemento de la nomina tendria que hacer algo similar a eso como
Nomina nomina = of.createNomina();
Pero en el ObjectFactory no me esta creando el metodo de "createNomina()", la clase Nomina si me la crea con el XSD.
Alguna idea de por que no me aparece?
Seg?n como lo hayan implementado, puede ser parte de CFDv32, que obtienes con ObjectFactory, y luego de ah? debes poder crear el objeto n?mina.
Si le puedes dar push a tu c?digo igual lo puedo revisar.
2013/12/16 Ivan Aranda notifications@github.com
Muchas gracias, ya lo encontre habia dejado un .jar anterior en otro lado del mi proyecto y se instanciaba hacia el en una clase.
Tengo otra duda para realizar el llenado del la clase del timbrado por ejemplo se crea el objeto nuevo
TimbreFiscalDigital timbreFiscalDigital = of.createTimbreFiscalDigital();
Para el complemento de la nomina tendria que hacer algo similar a eso como
Nomina nomina = of.createNomina();
Pero en el ObjectFactory no me esta creando el metodo de "createNomina()", la clase Nomina si me la crea con el XSD.
Alguna idea de por que no me aparece?
? Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30672972 .
me marca esto...
Permission to bigdata-mx/factura-electronica.git denied to camarillo.
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/bigdata-mx/factura-electronica.git/info/refs?service=git-receive-pack
Primero dale fork en el botón que está en github arriba a la derecha.
Luego sigue las instrucciones en esta página para cambiar el remote de bigdata al tuyo
https://help.github.com/articles/changing-a-remote-s-url
Ya luego le puedes dar push.
On Mon, Dec 16, 2013 at 10:23 AM, Ivan Aranda notifications@github.comwrote:
me marca esto...
Permission to bigdata-mx/factura-electronica.git denied to camarillo.
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/bigdata-mx/factura-electronica.git/info/refs?service=git-receive-pack
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30674354 .
Listo ya lo subi!
~/mavenRepository/factura-electronica $ git push origin master Username for 'https://github.com': camarillo Password for 'https://camarillo@github.com': Everything up-to-date
Que raro, no veo el commit, le puedes dar
git status
para ver que te dice?
On Mon, Dec 16, 2013 at 11:12 AM, Ivan Aranda notifications@github.comwrote:
Listo ya lo subi!
~/mavenRepository/factura-electronica $ git push origin master Username for 'https://github.com': camarillo Password for 'https://camarillo@github.com': Everything up-to-date
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30679265 .
Manda esto: ~/mavenRepository/factura-electronica $ git status
On branch master
Changes not staged for commit:
(use "git add
modified: pom.xml
modified: src/main/java/mx/bigdata/sat/cfdi/CFDv32.java
modified: src/main/java/mx/bigdata/sat/cfdi/examples/ExampleCFDv32Factory.java
modified: src/main/java/mx/bigdata/sat/security/PrivateKeyLoader.java
modified: src/main/java/mx/bigdata/sat/security/PublicKeyLoader.java
modified: src/main/resources/xslt/cadenaoriginal_3_2.xslt
Untracked files:
(use "git add
.classpath
.project
.settings/
src/main/resources/xsd/common/nomina/
src/main/resources/xslt/cfd/nomina/
Escribe los siguientes comandos para agregar las cosas al git:
git add src/main/resources/xsd/common/nomina/ src/main/resources/xslt/cfd/nomina/
git commit -a -m 'Se agregaron elementos para la adenda de Nomina'
ya luego le das push de nuevo para que suba a github
On Mon, Dec 16, 2013 at 11:22 AM, Ivan Aranda notifications@github.comwrote:
~/mavenRepository/factura-electronica $ git status On branch master Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory)
# modified: pom.xml modified: src/main/java/mx/bigdata/sat/cfdi/CFDv32.java modified: src/main/java/mx/bigdata/sat/cfdi/examples/ExampleCFDv32Factory.java modified: src/main/java/mx/bigdata/sat/security/PrivateKeyLoader.java modified: src/main/java/mx/bigdata/sat/security/PublicKeyLoader.java modified: src/main/resources/xslt/cadenaoriginal_3_2.xslt
# Untracked files: (use "git add ..." to include in what will be committed)
# .classpath .project .settings/ src/main/resources/xsd/common/nomina/ src/main/resources/xslt/cfd/nomina/
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30680189 .
Listo! ya lo volvi a realizar.
Username for 'https://github.com': camarillo Password for 'https://camarillo@github.com': Counting objects: 46, done. Delta compression using up to 8 threads. Compressing objects: 100% (21/21), done. Writing objects: 100% (26/26), 5.83 KiB, done. Total 26 (delta 16), reused 0 (delta 0) To https://github.com/camarillo/factura-electronica.git 64b386c..89216b6 master -> master
Del commit que diste hay un problema con los getters en las clases de KeyLoader, esto se debe a que en eclipse, no reconoce bien la librería lombok que se utilizar para generar los getters.
Es necesario quitarle esas lineas para que funcione bien. Si lo compilas desde maven funciona sin problemas y pasa las pruebas.
mvn test
En cuando a lo de createNomina() utiliza el siguiente ObjectFactory:
mx.bigdata.sat.common.nomina.schema.ObjectFactory
Ya que tengas eso corregido dale commit y push de nuevo, lo revisamos y le hacemos merge al branch principal.
Gracias!
On Mon, Dec 16, 2013 at 11:30 AM, Ivan Aranda notifications@github.comwrote:
Listo! ya lo volvi a realizar.
Username for 'https://github.com': camarillo Password for 'https://camarillo@github.com': Counting objects: 46, done. Delta compression using up to 8 threads. Compressing objects: 100% (21/21), done. Writing objects: 100% (26/26), 5.83 KiB, done. Total 26 (delta 16), reused 0 (delta 0) To https://github.com/camarillo/factura-electronica.git 64b386c https://github.com/bigdata-mx/factura-electronica/commit/64b386c ..89216b6https://github.com/bigdata-mx/factura-electronica/commit/89216b6master -> master
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30680970 .
Ya ubique para crear el "createNomina". Y si se realiza bien, incluso con el jar anterior
No ubico que lineas que me dices que tengo que quitar, ya lo compile desde consola pero tambien, me marca error y no me hace los jars.
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297) at java.lang.Thread.run(Thread.java:679) Caused by: java.lang.NullPointerException at mx.bigdata.sat.cfdi.CFDv3.sellar(CFDv3.java:114) at mx.bigdata.sat.cfdi.CFDv3.sellarComprobante(CFDv3.java:127) at mx.bigdata.sat.cfdi.examples.Main.main(Main.java:46)
En eclipse me marca lo mismo.
De las lineas que le agrege a las clases PrivateKeyLoader y al PublicKeyLoader son estas por que marcaba un error en eclipse.
@Override
public <T> T getKey() {
// TODO Auto-generated method stub
return null;
}
Ya se las quite pero me sigue marcando el error.
Si, hay que quitar esas lineas y compilar con mvn compile:jar:jar, por que si no las líneas regresan null en el getKey().
Avísame si funciona.
On Mon, Dec 16, 2013 at 1:35 PM, Ivan Aranda notifications@github.comwrote:
Ya ubique para crear el "createNomina". Y si se realiza bien, incluso con el jar anterior
No ubico que lineas que me dices que tengo que quitar, ya lo compile desde consola pero tambien, me marca error y no me hace los jars.
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297) at java.lang.Thread.run(Thread.java:679) Caused by: java.lang.NullPointerException at mx.bigdata.sat.cfdi.CFDv3.sellar(CFDv3.java:114) at mx.bigdata.sat.cfdi.CFDv3.sellarComprobante(CFDv3.java:127) at mx.bigdata.sat.cfdi.examples.Main.main(Main.java:46)
En eclipse me marca lo mismo.
De las lineas que le agrege a las clases PrivateKeyLoader y al PublicKeyLoader son estas por que marcaba un error en eclipse.
@Override public
T getKey() { // TODO Auto-generated method stub return null; } Ya se las quite pero me sigue marcando el error.
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30692287 .
Como me dices que lo compile no funciona, me parece que falta plugin, en eclipse ya compilo, y con el mvn test tambien ya funciono.
Ya subi los cambios.
Con esta libreria solo he creado CFDI en formato "normal" no le he puesto addendas ni algun otro complemento, Como lo tengo es como esta en el ExampleCFDv32Factory solo con los datos de otra tabla. Para agregar este complemento de nomina tendria que hacer algo como esto? O tendria que realizar otra cosa?
public static Comprobante createComprobante() throws Exception { ObjectFactory of = new ObjectFactory(); Comprobante comp = of.createComprobante(); comp.setVersion("3.2"); ... comp.setTipoDeComprobante("egreso"); comp.setEmisor(createEmisor(of)); comp.setReceptor(createReceptor(of)); comp.setConceptos(createConceptos(of)); comp.setImpuestos(createImpuestos(of)); comp.setComplemento(createComplemento(of)); return comp; }
private static Complemento createComplemento(ObjectFactory of){
Complemento complemento = new Complemento();
mx.bigdata.sat.common.nomina.schema.ObjectFactory ofn = new mx.bigdata.sat.common.nomina.schema.ObjectFactory();
Nomina nomina = ofn.createNomina();
nomina.setCURP("AACCDD");
// TODOS LOS CAMPOS DE NOMINA
complemento.getAny().add(nomina);
return complemento;
}
Si, con algo así es suficiente.
Le puedes dar pull request, con el botón que está en github, con eso ya los demás lo podrán probar y vemos si a todos les sirve.
Gracias!
On Mon, Dec 16, 2013 at 3:02 PM, Ivan Aranda notifications@github.comwrote:
Como me dices que lo compile no funciona, me parece que falta plugin, en eclipse ya compilo, y con el mvn test tambien ya funciono.
Ya subi los cambios.
Con esta libreria solo he creado CFDI en formato "normal" no le he puesto addendas ni algun otro complemento, Como lo tengo es como esta en el ExampleCFDv32Factory solo con los datos de otra tabla. Para agregar este complemento de nomina tendria que hacer algo como esto? O tendria que realizar otra cosa?
public static Comprobante createComprobante() throws Exception { ObjectFactory of = new ObjectFactory(); Comprobante comp = of.createComprobante(); comp.setVersion("3.2"); ... comp.setTipoDeComprobante("egreso"); comp.setEmisor(createEmisor(of)); comp.setReceptor(createReceptor(of)); comp.setConceptos(createConceptos(of)); comp.setImpuestos(createImpuestos(of)); comp.setComplemento(createComplemento(of)); return comp; }
private static Complemento createComplemento(ObjectFactory of){ Complemento complemento = new Complemento(); mx.bigdata.sat.common.nomina.schema.ObjectFactory ofn = new mx.bigdata.sat.common.nomina.schema.ObjectFactory(); Nomina nomina = ofn.createNomina(); nomina.setCURP("AACCDD"); // TODOS LOS CAMPOS DE NOMINA complemento.getAny().add(nomina);
return complemento; }
— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/89#issuecomment-30700165 .
Ya realize el pull request, espero haberlo echo de la manera correcta.
Voy a empezar a realizar la integracion y posteriormente pruebas con el PAC. Les comento cualquier cosa que detecte. Muchas gracias por la ayuda!
Listo, ya está el código de nómina en master
por si alguien más lo quiere probar y dar sus comentarios.
Gracias!
Muchas gracias por su ayuda, estaremos al pendiente de cualquier detalle.
Saludos!!!
Hola: En el XSD de la nomina esta este atributo para el parametro del banco.
<xs:attribute name="Banco">
<xs:annotation>
<xs:documentation>Atributo opcional para la expresión del Banco conforme al catálogo, donde se realiza un depósito de nómina</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:pattern value="[0-9]{3}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
Ya intente de varias maneras para mandar el Integer en el complemento de la nomina por ejemplo: nomina.setBanco(new Integer("002")); nomina.setBanco(new Integer("002").intValue());
Pero no he podido pasar la validacion, me sale el siguiente error:
Caused by: org.xml.sax.SAXParseException; lineNumber: 0; columnNumber: 0; cvc-pattern-valid: Value '2' is not facet-valid with respect to pattern '[0-9]{3}' for type '#AnonType_BancoNomina'.
Saben como asignar este valor para cumplir con el patron?.
Lo que yo hice fue modificar el XSD y ponerlo como String
Por si alguien andaba perdido (como yo :P) con los catálogos que son mencionados en el xsd para el complemento de nómina, les dejo esta liga:
ftp://ftp2.sat.gob.mx/asistencia_servicio_ftp/publicaciones/cfdi/catalogoscomplementonomina.pdf
Hola:
@eaavendanop muchas gracias, tambien modifique el XSD y ya paso la validacion.
Ya realize pruebas tambien con el PAC y me regresa el CFDI con el complemento de nomina ya timbrado.
Una duda, el PAC me mando un XML de ejemplo, el cual en el complemento de nomina lo tiene de la siguiente manera
<nomina:Nomina xmlns:nomina="http://www.sat.gob.mx/nomina" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/nomina http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina11.xsd" Version="1.1" RegistroPatronal="SFE20POSICIONES" NumEmpleado="1" CURP="DIRA840412HNTZRN04" TipoRegimen="1">
<nomina:HorasExtras>
<nomina:HorasExtra Dias="1" TipoHoras="Dobles" HorasExtra="4" ImportePagado="231.12"/>
</nomina:HorasExtras>
</nomina:Nomina>
y el que sale de la libreria es el siguiente:
<ns3:Nomina xmlns:ns3="http://www.sat.gob.mx/nomina" Antiguedad="500" Banco="002" CLABE="000000000000000000" CURP="DIRA840412HNTZRN04" Departamento="Desarrollo" FechaFinalPago="2013-12-17Z"TipoRegimen="1">
<ns3:HorasExtras>
<ns3:HorasExtra Dias="1" HorasExtra="4" ImportePagado="231.12" TipoHoras="Dobles" />
</ns3:HorasExtras>
</ns3:Nomina>
Una duda, si lo quisiera dejar igual que el que me manda el PAC, donde tendria que modificarle para que en lugar de que se genere con "ns3" se genere con "nomina", asi como agregare estos dos atributos: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/nomina http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina11.xsd"
Antes de guardar el CFDI haz lo siguiente:
cfdi.addNamespace("http://www.sat.gob.mx/nomina", "nomina");
Y con eso queda resuelto el problema.
@camarillo me podrías explicar como hacer para crear la nomina desde el objectFactory, lo que pasa es que necesito meterle una addenda personalizada.
Saludos!!!
@eaavendanop Ya quedo con lo que me comentaste! Gracias.
Para estos dos crees que tenga que hacer los mismo para que aparezcan en el xml?
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/nomina http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina11.xsd"
Ocupe el ObjetcFactory que se genera pero para la nomina que esta en: mx.bigdata.sat.common.nomina.schema.ObjectFactory
mx.bigdata.sat.common.nomina.schema.ObjectFactory ofn = new mx.bigdata.sat.common.nomina.schema.ObjectFactory();
Y ahi viene el metodo de createNomina().
Compañeros, me podrían indicar con que PAC están timbrando con complemento de nómina, resulta que Ekomercio, no quiero decer marcas, pero ps estos señores no se ponen las pilas mañana me voy de vacaciones y todavía no pueden terminar con su desarrollo, con que PAC´s están timbrando nómina??? para ver si me ajusto a uno de ellos. Saludos.
@camarillo esos no son obligatorios que yo sepa, ¿pero ya lo pudiste agregar?
@el-many Yo estoy con SolucionFactible, te dejo el enlace para que puedas hacer pruebas https://solucionfactible.com/sfic/capitulos/timbrado/timbrado-test.jsp
Me gustaría saber si ustedes tienen pensado implementar este complemento, o de lo contrarío ¿me podrían orientar para implementarlo en su librería?.
Este nuevo complemento se deberá utilizar a partir del 2014.
URL con la información correspondiente: http://www.sat.gob.mx/sitio_internet/asistencia_contribuyente/principiantes/comprobantes_fiscales/66_22071.html