bigdata-mx / factura-electronica

Librería de componentes Java para el desarrollo de aplicaciones de Factura Electrónica (CFDI)
Apache License 2.0
94 stars 107 forks source link

Como incluir addendas #32

Closed elmer-garduno closed 11 years ago

elmer-garduno commented 11 years ago

Original author: cristima...@gmail.com (February 02, 2011 16:47:10)

Hola, lo que no puedo hacer es incluir una addenda, estoy tratando de hacerlo de la siguiente forma:

ObjectFactory of = new ObjectFactory(); Comprobante comp = of.createComprobante(); ... String addenda = "<Disney><Transaction PurchaseOrder=4600364283/></Disney>"; //esta info la tomo de la BD, solo la muestro como ejemplo Addenda adde = of.createComprobanteAddenda(); adde.getAny().add(addenda); comp.setAddenda(adde);

pero me manda el siguiente error: [com.sun.istack.SAXException2: unable to marshal type "java.lang.String" as an element because it is missing an @XmlRootElement annotation]

obviamente algo estoy haciendo mal, si me pudieran asesorar se los agradeceria mucho

Original issue: http://code.google.com/p/factura-electronica/issues/detail?id=32

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 03, 2011 22:01:08 Porfavor ayuda!!!

elmer-garduno commented 11 years ago

From bigdata.mx on February 04, 2011 03:10:04 Hola disculpa la demora en contestar, estaba fuera. Dejame revisar el sistema y mañana tienes una respuesta.

Saludos

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 04, 2011 22:41:09 Ok, espero tu respuesta y te comento que tambien la parte del schemaLocation me lo genera con http://www.sat.gob.mx/cfd y creo que deberia ser http://www.sat.gob.mx/cfd/2 , habria algunoa forma de cambiarlo? mil gracias!

elmer-garduno commented 11 years ago

From bigdata.mx on February 04, 2011 23:28:33 Hola ya están listos los cambios, puedes bajar la nueva versión http://code.google.com/p/factura-electronica/downloads/detail?name=cfdi-base-0.1.6-SNAPSHOT-bin.zip y ver el ejemplo en la clase mx.bigdata.sat.cfdi.examples.Main y mx.bigdata.sat.cfdi.examples.ExampleCFDFactory

En resumen, para poder agregar las Addendas es necesario crear unas Clases, puedes incluso ser inner classes que describan la addenda que quieres agregar, en tu caso sería

private static Addenda createAddenda(ObjectFactory of) { Addenda addenda = of.createComprobanteAddenda(); Disney c = new Disney(); c.transaction = new Transaction(); c.transaction.purchaseOrder = "4600364283"; addenda.getAny().add(c); return addenda; }

@XmlRootElement(name="Disney") private final static class Disney { @XmlElement(name="Transaction") Transaction transaction; }

@XmlRootElement private final static class Transaction { @XmlAttribute(name="PurchaseOrder") String purchaseOrder; }

Es muy importante que agregues el nombre del package donde creaste estas clases en la línea donde creas el CFDv3,

CFDv3 cfd = new CFDv3(ExampleCFDFactory.createComprobante(), 
                      "mx.bigdata.sat.cfdi.examples");

Y finalmente que tu programa pueda encontrar un archivo llamado jaxb.index en donde están las clases de ese package y que el archivo contenga el nombre de tus clases que quieres agregar a las Addendas una por renglón.

ExampleCFDFactory$Company

La verdad está un poco enredado pero así es como funciona JAXB, sigo aquí para cualquier duda que tengas.

elmer-garduno commented 11 years ago

From bigdata.mx on February 04, 2011 23:30:34 Lo del schemaLocation también está corregido en esta versión.

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 04, 2011 23:48:48 Uff excelente, mil gracias de verdad, ya baje la nueva version! una pregunta mas ;) para el CFDv2 tambien estaria funcionando?, porque estoy ocupando las dos versiones gracias gracias de verdad! :)

elmer-garduno commented 11 years ago

From bigdata.mx on February 05, 2011 02:19:22 Mañana te subo los cambios para CFDv2

Saludos

elmer-garduno commented 11 years ago

From bigdata.mx on February 08, 2011 04:21:00 Listo los cambios para CFDv2.

Saludos

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 08, 2011 16:19:19 MUCHAS GRACIAS!!!

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 10, 2011 03:43:35 Hola de nuevo, estuve tratando de generar la addenda y no he podido, para el cfdv3, mira si pongo en mi clase tu sig codigo, todo sale OK: CFDv3 cfda = new CFDv3(ExampleCFDFactory.createComprobante(), "mx.bigdata.sat.cfdi.examples"); mx.bigdata.sat.cfdi.schema.Comprobante selladoa = cfda.sellarComprobante(key, cert); System.err.println(selladoa.getSello()); cfda.validar(); cfda.verificar(); cfda.guardar(System.out);

pero si pongo mi codigo asi: CFDv3 cfde = new CFDv3(comprobanteFEI.createComprobante(), "facturae"); mx.bigdata.sat.cfdi.schema.Comprobante selladoe = cfde.sellarComprobante(key, cert); System.err.println(selladoe.getSello()); cfde.validar(); cfde.verificar(); cfde.guardar(System.out);

y dentro de facturae.comprobanteFEI tengo la addenda como tu ejemplo asi:

public final class comprobanteFEI {

public static Comprobante createComprobante() throws Exception { ObjectFactory of = new ObjectFactory(); Comprobante comp = of.createComprobante(); comp.setVersion("3.0"); ... ... comp.setAddenda(createAddenda(of)); return comp;
}

private static Addenda createAddenda(ObjectFactory of) { Addenda addenda = of.createComprobanteAddenda(); Company c = new Company(); c.transaction = new Transaction(); c.transaction.purchaseOrder = "4600364283"; addenda.getAny().add(c); return addenda; }

@XmlRootElement(name="Company") private final static class Company { @XmlElement(name="Transaction") Transaction transaction; }

@XmlRootElement private final static class Transaction { @XmlAttribute(name="PurchaseOrder") String purchaseOrder; }

}

compila todo ok, pero al generar el cfdi me marca el sig error:

javax.xml.bind.MarshalException

Ya no se por donde verle, por eso te pido tu tan amable ayuda, ya estoy un poquito desesperada :( , no se si las librerias que estoy ocupando estan mal o si estoy compilando como no debe ser (utilizo JBuilder), en fin podrias asesorarme de nuevo porfavor?

gracias, Cristina

elmer-garduno commented 11 years ago

From bigdata.mx on February 12, 2011 19:26:33 Ok creo que el problema es que no tienes el archivo jaxb.index en el mismo package que tu clase comprobanteFEI es decir en el directorio facturae.

El contenido del archivo debe ser el siguiente: comprobanteFEI$Company

Asegurate de que el archivo también esté en el directorio donde están compiladas las clases con extensión .class

Cualquier duda avisame.

Saludos

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 12, 2011 21:28:13 Gracias, si tengo el archivo jaxb.index en el lugar que me dices, de hecho si se lo quito me marca un error diferente, que otra cosa crees que pueda ser?

elmer-garduno commented 11 years ago

From bigdata.mx on February 12, 2011 21:38:13 Prueba cambiar el nombre de la clase en el archivo jaxb.index por algo que no exista como:

comprobanteFEI$Campany

Y me avisas que sale porfa.

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 13, 2011 00:02:00 ok, mira me sale esto: javax.xml.bind.JAXBException: error loading class "comprobanteFEI$Companya" listed in facturae/jaxb.index, make sure that entries are accessable on CLASSPATH and of the form "ClassName" or "OuterClass.InnerClass", not "ClassName.class" or "fully.qualified.ClassName"

elmer-garduno commented 11 years ago

From bigdata.mx on February 13, 2011 14:59:36 Ok, entonces regrésalo a como estaba y si puedes mándame la clase completa como attachment y te ayudo a compilarla.

Saludos

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 13, 2011 15:34:04 Hola, te mando la clase, es realmente la misma que tu ocupas de ejemplo pero me imagino que la compilas de otra forma, y bueno si ya te funciona a ti, a ver si me puedes explicar como deberia compilarla, porque actualmente lo hago desde el jbuilder

la llamada a esta clase la hago desde un servlet utilizando igual lo mismo que tu ejemplo:

 CFDv3 cfde = new CFDv3(comprobanteFEI.createComprobante(), "facturae");
 mx.bigdata.sat.cfdi.schema.Comprobante selladoe =

cfde.sellarComprobante(key, cert); System.err.println(selladoe.getSello()); cfde.validar(); cfde.verificar(); cfde.guardar(System.out);

muchas gracias de nuevo :) , Cristina

elmer-garduno commented 11 years ago

From bigdata.mx on February 13, 2011 16:21:41 No me llegó el attachment, lo puedes poner desde la página del issue.

http://code.google.com/p/factura-electronica/issues/detail?id=32

Abajo de donde escribes el mensaje dice Attach a file

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 13, 2011 18:07:20 ok, listo va

elmer-garduno commented 11 years ago

From bigdata.mx on February 14, 2011 02:55:17 Hola, ya revise las clases y no parece haber ningún problema. Te mando las clases y unas instrucciones de como probarlo desde la linea de comandos para que revises la estructura que debe de tener en tu jbuilder.

Abre una linea de comandos de MS-DOS y cambiate al directorio donde está el directorio cfdi-base-0.1.6-SNAPSHOT y copia ahí mismo el archivo comprobanteFEI.java.

Luego exporta las librerias al classpath usando:

set CLASSPATH=cfdi-base-0.1.6-SNAPSHOT\cfdi-base-0.1.6-SNAPSHOT.jar;cfdi-base-0.1.6-SNAPSHOT\lib\guava-r06.jar;cfdi-base-0.1.6-SNAPSHOT\lib\jaxb-api-2.1.jar;cfdi-base-0.1.6-SNAPSHOT\lib\jaxb-impl-2.1.12.jar;.

En el mismo directorio compila con javac -d . comprobanteFEI.java

Luego copia el archivo jaxb.index a el directorio facturae y ejecuta el comando java facturae.comprobanteEFI

Esto me funcionó con las clases que te mando.

Avisame cualquier cosa.

Saludos

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 14, 2011 05:47:21 Hola, pues si me ayudaste mucho porque finalmente el error era el compilador que esta usando el jbuilder :( , gracias de verdad, ahora el unico detallito que veo es que me sale el cfdi con un namespace cfdi: en el xml y para el cfd me pone ns2: esto estara bien? porque si valido los xml en el validador del sat salen como correctos pero queria preguntar tu opinion de cualquier forma sobre esto y si de casualidad sabras como puedo generar el xsd de mi clase de Disney para poder validar la addenda :) abusando de tu experiencia

muchas gracias de nuevo, Cristina

El 13 de febrero de 2011 20:56, factura-electronica@googlecode.comescribi�

elmer-garduno commented 11 years ago

From cristima...@gmail.com on February 14, 2011 20:14:27 Te mande un mesaje mas y ahora que crees, que tambien necesito poner unos datos complemento, funcionaria igual que la addenda el campo ? gracias Gracias gracias :)

elmer-garduno commented 11 years ago

From bigdata.mx on February 21, 2011 20:20:42 Hola, no creo que tengas problema con el namespace en la versión 2, de cualquier forma voy a trabajar en la solución para quitarlo.

Respecto a los comprobantes, estoy casi seguro que funciona igual. Te funcionó?

Saludos

elmer-garduno commented 11 years ago

From bigdata.mx on February 26, 2011 20:52:42 Hola Cristina, para avisarte que ya modifiqué las librerías para que puedas cambiar el prefijo del namespace que te asigna por default. El procedimiento es el siguiente:

  1. Crea una clase package-info.java en el mismo package que tus clases de la Addenda y agrega el siguiente contenido:

@XmlSchema( namespace="http://www.bigdata.mx/cfdi/example", elementFormDefault = XmlNsForm.QUALIFIED) package mx.bigdata.sat.cfdi.examples;

import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema;

Con el namespace que quieras utilizar en tu caso.

  1. En el código donde creas el CFDv3 agrega la siguiente linea: CFDv3 cfd = new CFDv3(ExampleCFDFactory.createComprobante(), "mx.bigdata.sat.cfdi.examples"); cfd.addNamespace("http://www.bigdata.mx/cfdi/example", "example");

Esto mapea tu nuevo namespace al prefijo "example" y te generará una Addenda como la siguiente:

<cfdi:Addenda>
    <example:Company>
        <example:Transaction PurchaseOrder="4600364283"/>
    </example:Company>
</cfdi:Addenda>

Si quieres que el namespace de la Addenda esté vacío utiliza addNamespace de la siguiente forma: cfd.addNamespace("http://www.bigdata.mx/cfdi/example", "");

Cualquier duda puedes revisar el ejemplo en http://code.google.com/p/factura-electronica/source/browse#svn%2Ftrunk%2Fcfdi-base%2Fsrc%2Fmain%2Fjava%2Fmx%2Fbigdata%2Fsat%2Fcfdi%2Fexamples

Saludos

elmer-garduno commented 11 years ago

From arabearb...@gmail.com on September 20, 2011 20:38:22 Hola, Yo voy utilizar varias adendas diferentes para varios clientes por lo que esta forma me parece muy impractica ya que requiere de mucha programación y especializacion para cada adenda. Se me ocurre la siguiente idea y quería consultarla con ustedes que tienen más experiencia en el tema. Por lo que entiendo el error viene en la validación así que esto es lo que se me ocurre: 1) Enviar la adenda como xml tal y como lo hace cristina al iniciar este thread. 2) Generar las clases e index en un paquete (proyecto independiente) compilarlo y agregarlo en vivo (a manera de plugin).

de esta manera no tendria que estar recompilando todo el proyecto ni agregando el código para cada adenda que necesito generar.

Agradesco de antemano su ayuda.

elmer-garduno commented 11 years ago

From elmer.garduno@gmail.com on September 23, 2011 18:04:26 De acuerdo con tus comentarios.

Si quieres lo discutimos.

elmer-garduno commented 11 years ago

From adura...@gmail.com on April 12, 2012 18:22:30 Hola, ¿alguien ha implementado varias addendas? ya que tengo varias addendas de acuerdo a cada cliente si tienen alguna idea de como hacer se lo agradezco de antemano.

Saludos

Beto

elmer-garduno commented 11 years ago

From adura...@gmail.com on April 16, 2012 23:34:57 BigData, espero estés bien me puedes ayudar tengo un problemita similar a la compañera me esta arrojando este mensaje al ejecutar:

javax.xml.bind.MarshalException

te envio como adjuntos los archivos, para ver si eres tan amable en ayudarme, desde ya muchas gracias.

elmer-garduno commented 11 years ago

From bigdata.mx on April 17, 2012 03:30:46 Puedes revisar el Issue 23 e Issue 50 ?

Quizá esa información te sirva si no avísanos.

Saludos

elmer-garduno commented 11 years ago

From adura...@gmail.com on April 17, 2012 18:05:14 BigData, gracias por tu pronta respuesta, revisando los issues 23 y 50 hacen mención a complementos, pero a mi me lo esta dando en la addenda que viene en el CFDv2.XSD, crees que lo tenga que volver a descargar del SAT?

Utilizo STS 2.8.1 RELEASE y ya probe con Eclipse Helios y me marca lo mismo, ojala y me puedas ayudar.. gracias

elmer-garduno commented 11 years ago

From ady.z...@gmail.com on June 20, 2012 18:53:22 Hola, estoy configurando la CFDv3 y ya baje cfdi-base-0.1.6, pero me sigue marcando el mismo error que a varias personas. Mi error es: Exception in thread "main" javax.xml.bind.MarshalException

elmer-garduno commented 11 years ago

From jorgea.a...@gmail.com on September 19, 2012 00:23:04 hola no he podido ageregar una adenda a mi xml

Exception in thread "main" javax.xml.bind.JAXBException: "project1" doesnt contain ObjectFactory.class or jaxb.index

ese es el error q me marca y checando los demas comentarios agregue esl archivo.indes a mi mismo directorio y ni asi puede

elmer-garduno commented 11 years ago

From jorgea.a...@gmail.com on September 19, 2012 00:23:25 espero y me puedan ayudar gracias

alejandromontesmoreno commented 10 years ago

Hola, Necesito implementar el complemento detallista que se utiliza para empresas de tipo Retail, y son etiquetas del tipo -cfdi:Complemento - -detallista:requestForPaymentIdentification detallista:entityTypeINVOICE/detallista:entityType /detallista:requestForPaymentIdentification - detallista:textDOSCIENTOS OCHENTA Y UN MIL NOVECIENTOS OCHENTA Y UN PESOS 34/100 MXN/detallista:text /detallista:specialInstruction -detallista:orderIdentification 12345678/detallista:referenceIdentification detallista:ReferenceDate2012-07-01/detallista:ReferenceDate /detallista:orderIdentification -detallista:AdditionalInformation 1/detallista:referenceIdentification /detallista:AdditionalInformation -detallista:DeliveryNote detallista:referenceIdentification9988776655/detallista:referenceIdentification detallista:ReferenceDate2012-07-01/detallista:ReferenceDate /detallista:DeliveryNote -detallista:buyer detallista:gln7504000107903/detallista:gln -detallista:contactInformation -detallista:personOrDepartmentName detallista:textINFORMATICA/detallista:text /detallista:personOrDepartmentName /detallista:contactInformation /detallista:buyer -detallista:seller detallista:gln0000000999999/detallista:gln 999999/detallista:alternatePartyIdentification /detallista:seller - detallista:specialServicesTypeAJ/detallista:specialServicesType -detallista:monetaryAmountOrPercentage - detallista:percentage0.00/detallista:percentage /detallista:rate /detallista:monetaryAmountOrPercentage /detallista:allowanceCharge - -detallista:tradeItemIdentification detallista:gtin1/detallista:gtin /detallista:tradeItemIdentification 1/detallista:alternateTradeItemIdentification - detallista:longTextDESCRIPCIÓN DEL SERVICIO 1/detallista:longText /detallista:tradeItemDescriptionInformation 1/detallista:invoicedQuantity -detallista:grossPrice detallista:Amount419.84/detallista:Amount /detallista:grossPrice -detallista:netPrice detallista:Amount419.84/detallista:Amount /detallista:netPrice -detallista:totalLineAmount -detallista:grossAmount detallista:Amount30228.48/detallista:Amount /detallista:grossAmount -detallista:netAmount detallista:Amount30228.48/detallista:Amount /detallista:netAmount /detallista:totalLineAmount /detallista:lineItem - -detallista:tradeItemIdentification detallista:gtin2/detallista:gtin /detallista:tradeItemIdentification 2/detallista:alternateTradeItemIdentification - detallista:longTextDESCRIPCIÓN DEL SERVICIO 2/detallista:longText /detallista:tradeItemDescriptionInformation 1/detallista:invoicedQuantity -detallista:grossPrice detallista:Amount419.84/detallista:Amount /detallista:grossPrice -detallista:netPrice detallista:Amount419.84/detallista:Amount /detallista:netPrice -detallista:totalLineAmount -detallista:grossAmount detallista:Amount40304.64/detallista:Amount /detallista:grossAmount -detallista:netAmount detallista:Amount40304.64/detallista:Amount /detallista:netAmount /detallista:totalLineAmount /detallista:lineItem - -detallista:tradeItemIdentification detallista:gtin3/detallista:gtin /detallista:tradeItemIdentification 3/detallista:alternateTradeItemIdentification - detallista:longTextDESCRIPCIÓN DEL SERVICIO 3/detallista:longText /detallista:tradeItemDescriptionInformation 1/detallista:invoicedQuantity -detallista:grossPrice detallista:Amount419.84/detallista:Amount /detallista:grossPrice -detallista:netPrice detallista:Amount419.84/detallista:Amount /detallista:netPrice -detallista:totalLineAmount -detallista:grossAmount detallista:Amount78510.08/detallista:Amount /detallista:grossAmount -detallista:netAmount detallista:Amount78510.08/detallista:Amount /detallista:netAmount /detallista:totalLineAmount /detallista:lineItem - -detallista:tradeItemIdentification detallista:gtin4/detallista:gtin /detallista:tradeItemIdentification 4/detallista:alternateTradeItemIdentification - detallista:longTextDESCRIPCIÓN DEL SERVICIO 4/detallista:longText /detallista:tradeItemDescriptionInformation 1/detallista:invoicedQuantity -detallista:grossPrice detallista:Amount419.84/detallista:Amount /detallista:grossPrice -detallista:netPrice detallista:Amount419.84/detallista:Amount /detallista:netPrice -detallista:totalLineAmount -detallista:grossAmount detallista:Amount94044.16/detallista:Amount /detallista:grossAmount -detallista:netAmount detallista:Amount94044.16/detallista:Amount /detallista:netAmount /detallista:totalLineAmount /detallista:lineItem -detallista:totalAmount detallista:Amount281981.34/detallista:Amount /detallista:totalAmount - detallista:specialServicesTypeAA/detallista:specialServicesType detallista:Amount0.00/detallista:Amount /detallista:TotalAllowanceCharge /detallista:detallista /cfdi:Complemento

He visto que el API tiene las clases correspondientes pero no logro ubicar la forma de implementar, agradezco cualquier apoyo al respecto

cristimayo commented 10 years ago

hola , alguien logro implementar algún complemento?

alejandromontesmoreno commented 10 years ago

Hola, yo intenté el complemento detallista que solicita liverpool y mi único problema es que no me agrega el xsi:schemaLocation para el XSD detallista.xsd y la etiqueta specialIntruction text (importe con letra), lo demás ya está.....

2013/11/21 cristimayo notifications@github.com

hola , alguien logro implementar algún complemento?

— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/32#issuecomment-29022786 .

cristimayo commented 10 years ago

gracias Alejandro y podrias pasarme algún ejemplo? A mi me marca un error de que no encuentra la clase de impuestos locales :(

alejandromontesmoreno commented 10 years ago

Fíjate que no encuentro encuentro la referencia a Impuestos Locales que mencionas yo implemento el CFDI3.2, estaremos utilizando lo mismo?, de ser así claro que te paso el ejemplo, sólo quiero ubicarme.

El 21 de noviembre de 2013 21:49, cristimayo notifications@github.comescribió:

gracias Alejandro y podrias pasarme algún ejemplo? A mi me marca un error de que no encuentra la clase de impuestos locales :(

— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/32#issuecomment-29047059 .

cristimayo commented 10 years ago

Es esta mx.bigdata.sat.common.implocal.schema.ImpuestosLocales y si estoy ocupando CFDI3.2

cristimayo commented 10 years ago

ya lo solucione, el problema era que ponía la referencia a la clase ImpuestoLocal y no al schema, debe quedar así:

CFDv32 cfd = new CFDv32(comprobanteGiga.createComprobante(), "mx.bigdata.sat.common.implocal.schema", "javaapplication1");

por si a alguien le sirve

franflan commented 10 years ago

Hola buen día, tengo problemas para timbrar un CFDv32. El error es el siguiente: El CFDi no cumple con el estandar XML. Error 1845: Element 'ImpuestosLocales': No matching global declaration available for the validation root.

Esta es la parte del xml que genero

<cfdi:Complemento>
    <ImpuestosLocales TotaldeTraslados="0" TotaldeRetenciones="60.00" version="1.0">
        <RetencionesLocales Importe="60.00" TasadeRetencion="2.00" ImpLocRetenido="IMCD"/>
    </ImpuestosLocales>
</cfdi:Complemento>

Espero que me puedan ayudar Saludos

alejandromontesmoreno commented 10 years ago

ya lo solucione, el problema era que ponía la referencia a la clase ImpuestoLocal y no al schema, debe quedar así:

CFDv32 cfd = new CFDv32(comprobanteGiga.createComprobante(), "mx.bigdata.sat.common.implocal.schema", "javaapplication1");

por si a alguien le sirve

cristimayo

2013/12/7 franflan notifications@github.com

Hola buen día, tengo problemas para timbrar un CFDv32. El error es el siguiente: El CFDi no cumple con el estandar XML. Error 1845: Element 'ImpuestosLocales': No matching global declaration available for the validation root.

Esta es la parte del xml que genero

cfdi:Complemento

/cfdi:Complemento

Espero que me puedan ayudar Saludos

— Reply to this email directly or view it on GitHubhttps://github.com/bigdata-mx/factura-electronica/issues/32#issuecomment-30050296 .

franflan commented 10 years ago

Ya agregue la referencia que me dices, si me funciona. Pero aun tengo el error anterior

franflan commented 10 years ago

Ya lo corregi, te debe de generar el complemento de la siguiente manera

<cfdi:Complemento>
    <implocal:ImpuestosLocales xmlns:implocal="http://www.sat.gob.mx/implocal" TotaldeRetenciones="60.00" TotaldeTraslados="0" version="1.0">
        <implocal:RetencionesLocales ImpLocRetenido="IMCD" Importe="60.00" TasadeRetencion="2.00"/>
    </implocal:ImpuestosLocales>
</cfdi:Complemento>

Saludos