El archivo cadenaoriginal_2_2.xslt que esta publicado en el SAT esta incorrecto http://www.sat.gob.mx/cfd/2/cadenaorigi ... l_2_2.xslt
El problema que encontre es el nodo domicilio del receptor, este es opcional, y si se incluye lo unico obligatorio es el pais. El problema es cuando emitimos un CFD sin domicilio.
El XSD es correcto y no marca ningun error, pero al generar la cadena original genera doble pipe (||) en el lugar correspondiente al pais ....
La maravilla de validador del SAT dice que
Y podran ver el doble pipe entre los el nombre del receptor y los Conceptos "...CON||1|Caja..."...
El sello del comprobante es Válido
...
Cadena Original: ||2.2|FCXA|033250|2012-07-03T12:09:08|707377|2012|ingreso|EL PAGO DE ESTA FACTURA (CONTRAPRESTACION) SE EFECTUARA EN UNA SOLA EXHIBICION, SI POR ALGUNA RAZON NO FUERA ASI, EMITIREMOS LOS COMPROBANTES DE LAS PARCIALIDADES RESPECTIVAS|198.39|0|230.13|NO IDENTIFICADO|PARQUE INDUSTRIAL XALOSTOC 55348 XALOSTOC MEX.|FJC780315E91|FABRICA DE JABON LA CORONA, S.A. DE C.V.|REGIMEN GENERAL DE LEY DE PERSONAS MORALES|AIAE6209163NA|EDIHT LIBERTAD AVILA ALARCON||1|Caja|PURO SOL 20P 500G S/F|198.39|198.39|IVA|16.00|31.74|31.74||
....
El error es en esta parte, dice
Código: Seleccionar todo
<!--
Llamadas para procesar al los sub nodos del Receptor
-->
<xsl:call-template name="Domicilio">
<xsl:with-param name="Nodo" select="./cfd:Domicilio"/>
</xsl:call-template>
Código: Seleccionar todo
<!--
Llamadas para procesar al los sub nodos del Receptor
-->
<xsl:if test="./cfd:Domicilio">
<xsl:call-template name="Domicilio">
<xsl:with-param name="Nodo" select="./cfd:Domicilio"/>
</xsl:call-template>
</xsl:if>
Problema:
Si yo arreglo mi copia del cadenaoriginal_2_2.xslt para que lo genere bien, ¿cuando algun cliente valide mis CFD en el pagina del SAT le va a decir sello invalido porque la cadena que generen ellos no coincide con la mia?