Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
Hola ifarias, mi solucion es muy parecida a la tuya y me permito hacerte una recomendacion.

El Data Binding del cfdv2.xsl se genera muy bien pero aveces resulta que, por ejemplo, el cliente NO tiene "Numero Interior" o "Colonia" es por eso que en la unidad cfdv2.pas te recomiendo hacer una busqueda y remplazo de :

Buscar : SetAttribute(
Remplazar por : if Value <> '' then SetAttribute(

entonces, por ejemplo, la rutina que graba el "Numero Exterior" quedaria asi :

Código Delphi [-]
procedure TXMLT_UbicacionFiscal.Set_NoExterior(Value: WideString);
begin
  if Value <> '' then SetAttribute('noExterior', Value);
end;

Eso te garantiza que no se vayan a grabar datos nulos o vacios, algo que por cierto no le gusta al validador......

Hay dos valores tipo integer, noAprobacion y anoAprobacion (sic), esos tienes que usar

Código Delphi [-]
if value <> 0

Tambien me permito mostrar como yo solucione los namespace extra, algo que no me deja muy convencido de tu solucion es que creas otro nodo, rompiendo un poco con el pragma del encapsulado que te da el data binding.

Código Delphi [-]
 XMLDoc.XML.Text := ''" target="_blank">http://www.sat.gob.mx/cfd/2">';
 XMLDoc.Active := True; 
 CFD := GetComprobante(XMLDoc);
 with CFD do
 begin
  SetAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
  SetAttribute('xsi:schemaLocation','http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd');
  Version := '2.0';
  Serie := ...... etc.....
Responder Con Cita
  #2  
Antiguo 24-05-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
En el mensaje anterior estaba tratando de introducir el siguiente codigo :

XMLDoc.XML.Text := '<?xml version="1.0" encoding="UTF-8" ?><Comprobante xmlns="http://www.sat.gob.mx/cfd/2"></Comprobante>';
XMLDoc.Active := True;
CFD := GetComprobante(XMLDoc);

with CFD do
begin
SetAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
SetAttribute('xsi:schemaLocation','http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd');
Version := '2.0';
Serie := ...........etc..................


Pero parece que el parser no lo interpreto bien........Saludos
Responder Con Cita
  #3  
Antiguo 25-05-2010
ifarias ifarias is offline
Miembro
 
Registrado: sep 2004
Posts: 23
Poder: 0
ifarias Va por buen camino
dado

Gracias por los comentarios, los tomaré en cuenta.

En cuanto a generar un Nodo adicional, la realidad es que me estoy posicionando en el nodo <Comprobante> que es el raíz en ese momento, (para mi desarrollo), y agrego atributos adicionales. Esto da como resultado el siguiente código XML

Código:
<Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" serie= ....
Como puedes ver, el resultado es el mismo. Solo que obtenido de otra forma.

En cuanto al XML Data Binding, tienes toda la razón, es buena idea prevenir el que se generen datos nulos, y que fácil es que cometamos errores al codificar y tener problemas posteriores.
Responder Con Cita
  #4  
Antiguo 02-06-2010
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 115
Poder: 24
cancun Va por buen camino
Facturación eléctronica

Hola compañeros foristas

Al igual que ustedes tengo el mismo problema, ya que he desarrollado un sistema de punto de venta y algunos programas para facturación (para comercializadoras, agentes aduanales, etc.), el caso es que parece muy complicado el asunto.

Entre mis desarrollos he hecho un sistema de pedimentos (sirve para elaborar documentos para importar y exportar mercancias) desde hace varios años y antes de que se presente el pedimento ante la aduana, se debe validar, para lo cual genero un archivo y este hay que firmarlo electronicamente, para lo cual en las paginas de aduana se usa un programa llamado SIFEP o se puede optar por usar unas librerias para firmalos desde tu propio programa.

No sé si esto sea similar a las facturas eléctronicas, el proceso en el sistema de pedimentos es el siguiente:


Pedimentos
- se captura el pedimento
- se genera un archivo de texto con cos datos del pedimento, importador, mercancias, etc.
- Se firmar el archivo utilizando el achivo de certificado .cer y el archivo llave .key que se le ha proporcionado al agente aduanal por el SAT
- La cadena resultante (firma) se agrega al final del archivo de texto que se va a validar y se imprime en el pedimento

Facturación
- Se captura la factura
- Se genera un archivo XML con los datos del vendedor, cliente, mercancias, etc.
- Se firma el archivo
- Se imprime en la factura (se hace algo mas?)

Al final de todo esto no sé si sea lo mismo (se puedan firmar las facturas del mismo modo)
aunque sospecho que aunque se parezca no tiene nada que ver.

Por lo pronto voy a empezar por estudiar como generar el XML y todo el proceso.
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #5  
Antiguo 02-06-2010
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 23
nuk3zito Va por buen camino
Que tal cancun (jeje, que nicks tan originales ),
Segun lo que comentas, el proceso es casi casi lo mismo. Adicionalmente a lo que tienes solo te restaría generar el xml y obtener su cadena de digestión y lo demás es pan comido pars ti según lo que tienes.

¿Que librerías son esas de las que dispones? Son gratis o de paga?
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #6  
Antiguo 02-06-2010
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 115
Poder: 24
cancun Va por buen camino
Estan disponibles en la página:

http://www.aduanas.gob.mx/aduana_mex...144_10186.html


Viene documentado el uso de la .dll, pero falta ver si es lo mismo, aunque al ser un formato de archivo diferente puede que no funcione.

Si decides probarlo el código para usar la .dll es el siguiente:

Código:
// hay que declarar al principio de tu unidad
type
  PCURP = ^TCURP;
  TCURP = record
  curp: array[0..18] of char;
  archivoKey: array[0..255] of char;
  archivoCer: array[0..255] of char;
  password: array[0..18] of char
end;

// Declaras las funciones
{$R *.DFM}

		function BuscaCurpsG(const archivoOrig:pchar; const tipo:Integer;  struct_curps_g:PCURP):Integer; stdcall;
    external 'sgenc32.dll' name '_BuscaCurpsG_std@12';

		function GeneraFirmaDigitalG(const archivoOrig:pchar; const tipo:Integer;  struct_curps_g:PCURP):Integer; stdcall;
    external 'sgenc32.dll' name '_GeneraFirmaDigitalG_std@12';


// Este es el boton que ejecuta la firma

procedure TFrmConfig.btnFirmarClick(Sender: TObject);
var
    archivo: array [0..250] of Char;
    PReg: PCURP;
    Arch, Er:Integer;
begin
      StrPCopy(archivo,FieldByName('Ruta').AsString+'\'+'m'+Patente+StrZero(Arch,3)+'.'+StrZero(DayOfTheYear(Date),3));
      GetMem(PReg, SizeOf(TCURP) * 10);
      Er:=BuscaCurpsG(archivo, 0, PReg);
      StrPCopy(PReg.archivoKey,ArchivoKey);
      StrPCopy(PReg.archivoCer,ArchivoCer);
      StrPCopy(Preg.password,Clave);
      Er:=GeneraFirmaDigitalG(archivo, 0, PReg);
      if Er=0 then
        Mensaje('Se ha firmado correctamente el archivo: '+archivo,'Firma exitosa',mb_Ok)
      else
        MensajeError('Error al procesar la Firma: '+IntToStr(Er),'Error');
end;
Las variables usadas son:

archivo ruta y nombre del archivo a firmar
ArchivoKey Ruta y nombre del archivo con extensión .key
ArchivoCer Ruta y nombre del archivo con extensión .cer
Clave Password para la firma
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #7  
Antiguo 02-06-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 17
dado Va por buen camino
Pues el asunto de cancun si se parece mucho a lo de la factura electronica.

Ahora, (ya estoy como en los concursos de television) cual es la pregunta? es decir, parece que tienes todo resuelto, tienes la dll, la forma de usarla dentro de Delphi y no parece muy dificil y lo mejor de todo, ya tienes un sistema de pedimentos desarrollado desde hace unos años.....

En donde te atoraste?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mexico - Como crear sellos en FACTURA ELECTRONICA.. pcicom API de Windows 12 10-11-2012 18:46:55
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06
Factura electronica AUNA Aprendiz Varios 5 01-09-2005 10:44:15


La franja horaria es GMT +2. Ahora son las 17:39:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi