Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03

Codigo Fuente en Delphi para Timbrar

Foro dedicado para discutir la parte tecnica de como es el timbrado
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
spaniaguag
Mensajes: 137
Registrado: Vie Oct 08, 2010 3:12 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor spaniaguag » Jue Mar 31, 2011 2:13 pm

DADO escribió:
Pues si no tiene serie, que es totalmente valido en los dos esqueas (v2 y v3) quita el atributo por completo

Quiero suponer que *no* estas usando mis rutinas o librería ya que estas tienen un "candado" para evitar que se generen atributos vacios.

Mi recomendacion es que en tu codigo programes, igual que yo, algo así como :

if value<>'' then setattribute(...)

Es decir, "si el valor que se va a asignar al atributo es distinto de vacio entonces lo asigna, de otra forma no"


Si estoy usando tus librerías, y así lo hago. Pero esta haciendo un raro, voy rastreando como se se va formando el xml y todo funciona perfectamente, el valor del xml esta correcto exactamente antes de llamar la rutina

BuzonEEngine.Solicita(ModoEnvio,CFD,

Inmediatamente en la entrada de esta rutina se modifica el xml sin haber ninguna instrucción de por medio y lo mas curioso es que la serie aparece después del sello y no antes del folio como te muestro a continuación:

sello="IFeWkvinjpA5oFYYP1k2+qdG/ftyq0SrSCIcE44JPUSX3A6SHdRvZrbDMRU+U2QvM70DqXCG3bm4XJ6cb8da2iMTm4c68oKxmDr3jAsPJJPYuZvUnwJUCSDON7RiEm40SkfIM79Tc9Vt39RDn+kNxViVr1+5L55ML5k/0VLDgvY=" serie=""><cfdi:Emisor

Revisando la unit CfdCore, al crear la cadena original tienes la instrucción:

valor := CFDCopy.Attributes['serie'];
if valor = '' then CFDCopy.Attributes['serie'] := ' '; //Hack para cuando serie=""

habrá relación?

spaniaguag
Mensajes: 137
Registrado: Vie Oct 08, 2010 3:12 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor spaniaguag » Jue Mar 31, 2011 3:33 pm

Hola

Ya resolví el problema, aunque no tiene nada de lógica. Tenia lo siguiente:

x := CFD.Datos.Xml; // Para verificar el valor del xml y esta correcto
Dato := CFD.Datos.Serie+' '+CFD.Datos.Folio+' '+CFD.Datos.Fecha+' '+cfd.Datos.TipoDeComprobante; //Armo este dato informativo para enviarlo a buzone
x := CFD.Datos.Xml; // Para verificar el valor del xml y ya presenta el error
BuzonEEngine.Solicita.................

y quedo finalmente así:

x := CFD.Datos.Xml; // Para verificar el valor del xml y esta correcto
Dato := MiSerie+MiFolio+MiFecha+MiTpoDeComprobante; //Armo este dato informativo para enviarlo a buzone
x := CFD.Datos.Xml; // Para verificar el valor del xml y YA FUNCIONA
BuzonEEngine.Solicita.................

Lo importante es que ya quedo.

Avatar de Usuario
Dado
Mensajes: 15842
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor Dado » Jue Mar 31, 2011 3:35 pm

spaniaguag escribió:Hola

Ya resolví el problema, aunque no tiene nada de lógica. Tenia lo siguiente:

x := CFD.Datos.Xml; // Para verificar el valor del xml y esta correcto
Dato := CFD.Datos.Serie+' '+CFD.Datos.Folio+' '+CFD.Datos.Fecha+' '+cfd.Datos.TipoDeComprobante; //Armo este dato informativo para enviarlo a buzone
x := CFD.Datos.Xml; // Para verificar el valor del xml y ya presenta el error
BuzonEEngine.Solicita.................

y quedo finalmente así:

x := CFD.Datos.Xml; // Para verificar el valor del xml y esta correcto
Dato := MiSerie+MiFolio+MiFecha+MiTpoDeComprobante; //Armo este dato informativo para enviarlo a buzone
x := CFD.Datos.Xml; // Para verificar el valor del xml y YA FUNCIONA
BuzonEEngine.Solicita.................

Lo importante es que ya quedo.


Ups! me ganaste en contestar, precisamente te iba a decir que buscaras todos los lugares donde leas la serie ya que con solo leerla se crea "de la nada".
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

ganimidesmx
Mensajes: 62
Registrado: Sab Dic 18, 2010 2:49 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor ganimidesmx » Lun Abr 04, 2011 8:48 am

Dado: Compre las rutinas para timbrar con EDICOM, al timbrar manda este mensaje:

No es valido en el nivel superior del documento
Line: 1
Timbrado!

lo curioso es que al mandarlo timbrar con Timbrefiscal lo timbra bien.

Que estara pasando ? :roll:

Saludos.

DanielK

Avatar de Usuario
Dado
Mensajes: 15842
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor Dado » Lun Abr 04, 2011 9:06 am

ganimidesmx escribió:Dado: Compre las rutinas para timbrar con EDICOM, al timbrar manda este mensaje:

No es valido en el nivel superior del documento
Line: 1
Timbrado!

lo curioso es que al mandarlo timbrar con Timbrefiscal lo timbra bien.

Que estara pasando ? :roll:

Saludos.

DanielK


Enviame el XML que estas tratando de timbrar, tambien te recomiendo depurar y ver en que linea se atora.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

ganimidesmx
Mensajes: 62
Registrado: Sab Dic 18, 2010 2:49 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor ganimidesmx » Lun Abr 04, 2011 9:50 am

Dado: necesitare cambiar algo en esta rutina ?



function EdicomEngine(TipoDeSolicitud : TTipoDeSolicitudEdicom; CFD : TCFD; Usuario, Clave : string; var RespuestaDelPAC : string) : boolean;
var SendXMLFile, SendZipFile, RecvZipFile, RecvXMLFile : string;
FileData, Respuesta : TByteDynArray;
begin
{$IFDEF USAR_MI_USER_Y_CLAVE_PERSONAL}
{$i '../Factura Electronica Docs/PAC - Edicom/DatosPrivados.inc'}
{$ENDIF}

SendXMLFile := ExtractFilePath(Application.exeName) + 'EnvioEdicom.xml';
SendZipFile := ExtractFilePath(Application.exeName) + 'EnvioEdicom.zip';
RecvZipFile := ExtractFilePath(Application.exeName) + 'ResultadoEdicom.zip';
RecvXMLFile := ExtractFilePath(Application.exeName) + 'ResultadoEdicom.xml'

Avatar de Usuario
Dado
Mensajes: 15842
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor Dado » Lun Abr 04, 2011 9:57 am

ganimidesmx escribió:Dado: necesitare cambiar algo en esta rutina ?



function EdicomEngine(TipoDeSolicitud : TTipoDeSolicitudEdicom; CFD : TCFD; Usuario, Clave : string; var RespuestaDelPAC : string) : boolean;
var SendXMLFile, SendZipFile, RecvZipFile, RecvXMLFile : string;
FileData, Respuesta : TByteDynArray;
begin
{$IFDEF USAR_MI_USER_Y_CLAVE_PERSONAL}
{$i '../Factura Electronica Docs/PAC - Edicom/DatosPrivados.inc'}
{$ENDIF}

SendXMLFile := ExtractFilePath(Application.exeName) + 'EnvioEdicom.xml';
SendZipFile := ExtractFilePath(Application.exeName) + 'EnvioEdicom.zip';
RecvZipFile := ExtractFilePath(Application.exeName) + 'ResultadoEdicom.zip';
RecvXMLFile := ExtractFilePath(Application.exeName) + 'ResultadoEdicom.xml'


Revise el XML y si pude timbrarlo sin problema.

Ahora la pregunta es, te lo hace *siempre* y con todos los XML que generas? o solo fue con este XML en especial.

Por otro lado, para saber exactamente que pasa es necesario que ejecutes linea por linea del timbrado (no son muchas lineas) y analices *exactamente* en que linea esta marcando el error, insisto en comentarte que pude timbrar sin problema tu XML asi que debe ser alguna linea que hayas modificado o algo en tu XML que "no le guste" a la rutina de envio.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

ganimidesmx
Mensajes: 62
Registrado: Sab Dic 18, 2010 2:49 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor ganimidesmx » Lun Abr 04, 2011 10:06 am

Dado: Lo hace en todos los XML, no cambie ninguna linea solo las claves en el llamado, no se si deba cambiar algo en esta lineas:

{$IFDEF USAR_MI_USER_Y_CLAVE_PERSONAL}
{$i '../Factura Electronica Docs/PAC - Edicom/DatosPrivados.inc'}
{$ENDIF}

Avatar de Usuario
Dado
Mensajes: 15842
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor Dado » Lun Abr 04, 2011 10:12 am

ganimidesmx escribió:Dado: Lo hace en todos los XML, no cambie ninguna linea solo las claves en el llamado, no se si deba cambiar algo en esta lineas:

{$IFDEF USAR_MI_USER_Y_CLAVE_PERSONAL}
{$i '../Factura Electronica Docs/PAC - Edicom/DatosPrivados.inc'}
{$ENDIF}


A esas lineas no les hagas caso (tal como dice muy explicitamente son "DatosPrivados"), ejecuta linea por linea como te pedia
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

ganimidesmx
Mensajes: 62
Registrado: Sab Dic 18, 2010 2:49 pm

Re: Codigo Fuente en Delphi para Timbrar

Mensajepor ganimidesmx » Lun Abr 04, 2011 10:38 am

Dado: El error lo da en esta linea:

//Le enviamos el texto al Objeto Timbre
Timbre.SetTimbre(RespuestaDelPAC);


Volver a “Envio para Timbrado”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados