
DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
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
.
Tengo un ERP en PHP, falta generar XML
-
- Mensajes: 9
- Registrado: Jue Abr 05, 2012 8:29 am
Re: Tengo un ERP en PHP, falta generar XML
hola. realemente depende del volumende facturacion que manejes para saber q tipo de programa necesitas, yo por ejemplo tengo desarrollo que genera el archivo xml y el reporte en pdf en .65 segundos, el archicivo xml es alimentado atravez de un archivo plano (.txt que obtienes de tu ERP)el archivo xml junto con su pfd en enviado a tu cliente via mail, ftp,as2 o webservi (dependiendo la comunicacion de tu cliente) todo esto es completamente automatico y no requiere supervision de ningun tipo y el sistema no interfiere con los procesos administrativos de la empresa. este desarrollo que yo manejo tiene las siguientes addendas:
NOMBRE CADENA / CLIENTE
OPERADORA FUTURAMA (ALSUPER)
ARTELI
BIMBO
CALIMAX
CHEDRAUI
COLGATE
COMERCIAL MEXICANA
PINTURAS COMEX
COPPEL
GRUPO CORVI
DICONSA
DUNOSUSA (PROVEEDORA DEL PANADERO)
ELEKTRA
FARMACIAS GUADALAJARA
FEMSA
GENERICOS INTERCAMBIABLES
HEB
HEMSA
HOME DEPOT
IMSS (TIENDASS, HOSPITALES, CLINICAS, ETC.)
LECHE LALA
MABE
OXXO
PEMEX
TIENDAS SANTA FE
SORIANA
TIENDAS SUPER NETO
TIENDAS 3B
TIENDAS GARCES
VOLKSWAGEN
WALMART /SUPERAMAS, BODEGAURRERA,SAMS, ETC.)
WALT DISNEY MEXICO
WOLWORTH (GRUPO SOL)
LIVERPOOL
CEMEX
APASCO
todos los procesos son completamente automaticos inclusive las actulizaciones son en linea, el software por si solo se actualiza, manejo losg de todo el proceso, perfecta integracion para el comercio electronico en EDI y xml.
.65 segundos con addenda y pdf, sin adddenda eh manejado 17,000 fcturas en 14 min jajajaja orgullosamente mexicano el desarrollo....
NOMBRE CADENA / CLIENTE
OPERADORA FUTURAMA (ALSUPER)
ARTELI
BIMBO
CALIMAX
CHEDRAUI
COLGATE
COMERCIAL MEXICANA
PINTURAS COMEX
COPPEL
GRUPO CORVI
DICONSA
DUNOSUSA (PROVEEDORA DEL PANADERO)
ELEKTRA
FARMACIAS GUADALAJARA
FEMSA
GENERICOS INTERCAMBIABLES
HEB
HEMSA
HOME DEPOT
IMSS (TIENDASS, HOSPITALES, CLINICAS, ETC.)
LECHE LALA
MABE
OXXO
PEMEX
TIENDAS SANTA FE
SORIANA
TIENDAS SUPER NETO
TIENDAS 3B
TIENDAS GARCES
VOLKSWAGEN
WALMART /SUPERAMAS, BODEGAURRERA,SAMS, ETC.)
WALT DISNEY MEXICO
WOLWORTH (GRUPO SOL)
LIVERPOOL
CEMEX
APASCO
todos los procesos son completamente automaticos inclusive las actulizaciones son en linea, el software por si solo se actualiza, manejo losg de todo el proceso, perfecta integracion para el comercio electronico en EDI y xml.
.65 segundos con addenda y pdf, sin adddenda eh manejado 17,000 fcturas en 14 min jajajaja orgullosamente mexicano el desarrollo....
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Tengo un ERP en PHP, falta generar XML
.65 segundos por factura, wow ! eso es super rapido.octopus9210 escribió:.65 segundos con addenda y pdf, sin adddenda eh manejado 17,000 fcturas en 14 min jajajaja orgullosamente mexicano el desarrollo....
Veamos
.65 segundos x 17,000 facturas = 11,050 segundos = 184.16666 minutos = 3 horas (no que 14 minutos??)
Veamos desde otro angulo
17,000 facturas en 14 minutos = 17,000 facturas en 840 segundos = 0.05 segundos por factura (no que .65 segundos??)
.......y con addenda y pdf!!
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 9
- Registrado: Jue Abr 05, 2012 8:29 am
Re: Tengo un ERP en PHP, falta generar XML
.65 segundos con addenda
estas de acuerdon conmigo que solo el anexo 20 es super facil y rapido no le pesa a a la generacion ya que la inoformacion es poca, ademas de que las addendas requieren validaciones y homolagacion de catalogos con los clientes...
estas de acuerdon conmigo que solo el anexo 20 es super facil y rapido no le pesa a a la generacion ya que la inoformacion es poca, ademas de que las addendas requieren validaciones y homolagacion de catalogos con los clientes...
-
- Mensajes: 9
- Registrado: Jue Abr 05, 2012 8:29 am
Re: Tengo un ERP en PHP, falta generar XML
otro punto importante es el servidor que manejes, no vas a meter una generacion masiva en una pc.... jajajajaja o dime si son imposibles los tiempos??? te puedo regalar una demo DADO.
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Tengo un ERP en PHP, falta generar XML
No, no son imposibles los tiemposoctopus9210 escribió:otro punto importante es el servidor que manejes, no vas a meter una generacion masiva en una pc.... jajajajaja o dime si son imposibles los tiempos??? te puedo regalar una demo DADO.
De hecho los PAC usan equipos que segun los datos tecnicos pueden crear y firmar 2000 xml por segundo y dicen que algunos PAC tienen dos o mas de esos equipos valuados en 10,000 dolares
(Busca "Luna" aqui en el foro, se ha discutido mucho al respecto)
Asi que los 17,000 en un equipo Luna se procesarian en 8.5 segundos, ESO SI ES WOOOOW SUPER RAPIDO.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 9
- Registrado: Jue Abr 05, 2012 8:29 am
Re: Tengo un ERP en PHP, falta generar XML
servidores luna para timbrado los conosco a la perfeccion, de echo nos acaban de ofrecer uno q no es el luna, por 450 mil pesos... como lo comentas esos servidores estan diseñados para manejo de XML, son poderosos...
-
- Mensajes: 91
- Registrado: Lun Feb 28, 2011 7:37 pm
- Contactar:
Re: Tengo un ERP en PHP, falta generar XML
bier escribió:Mi ERP genera las facturas, pero no hemos incursionado en electrónicas.
Si alguien tiene una propuesta para cumplir con ello lo voy a agradecer.
Tengo un cliente que desea que sus facturas sean electrónicas, actualmente son CBB
Gracias
Como vas con la implementación de CFDI en php ???
Que avance tienes?
Ya generas el xml ???
Saludos!!!

-
- Mensajes: 9
- Registrado: Dom Ene 22, 2012 6:30 pm
Re: Tengo un ERP en PHP, falta generar XML
Hola Mauricio,mauricio escribió:Yo te recomiendo generar tu propia clase, es extremadamente sencillo maxime si ya tienes toda tu estructura, tengo una clase completa para CFD v2, te la hago llegar y solo tienes que adaptarlo para CFDI...
Saludos
¿Podrías enviarme la clase y poder revisarla? Deseo adaptarla a mi sistema PHP/MySQL
Gracias
-
- Mensajes: 25
- Registrado: Dom Dic 16, 2012 6:24 pm
- Ubicación: edgar.vargas@gmail.com
Re: Tengo un ERP en PHP, falta generar XML
Yo en php hago esto :
Leo la base de datos los datos de la factura y me pongo armar el xml, por ejemplo :
$xml = new DOMdocument("1.0","UTF-8"); // Creamos un documento DOM XML
//-------------------------------------------------- Iniciamos la seccion de Comprobante --------------------------------------
$domElement_comprobante = $xml->createElement("cfdi:Comprobante" , ""); // Creamos un Elemento
$domAttribute = $xml->createAttribute('xmlns:cfdi'); // Creamos un atributo
$domAttribute->value = "http://www.sat.gob.mx/cfd/3"; // Agregamos un valor al atributo
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
$domAttribute = $xml->createAttribute('xmlns:xsi'); // Creamos un atributo
$domAttribute->value ="http://www.w3.org/2001/XMLSchema-instance" ; // Agregamos un valor al atributo
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
$domAttribute = $xml->createAttribute('sello'); // Creamos un atributo
$domAttribute->value ="*RSA signing failed*" ; // Agregamos un valor al atributo
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
$domAttribute = $xml->createAttribute('certificado'); // Creamos un atributo
$domAttribute->value ="" ; // Agregamos un valor al atributo ejemplo de validacfd
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
etc etc.
Luego lo paso a texto con
function genera_cadena_original() {
global $xml, $cadena_original;
$paso = new DOMDocument;
$paso->loadXML($xml->saveXML());
$xsl = new DOMDocument;
$maquina = trim(`uname -n`);
libxml_use_internal_errors( true );
$file= "cadenaoriginal_3_2.xslt"; // Ruta al archivo
$xsl->load($file);
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
$cadena_original = $proc->transformToXML($paso);
}
Le quitamos los CR , LF , espacios etc...
$cadena_original = str_replace( " " , " " ,$cadena_original); // remplaza dos espacios por uno solo, es decir donde haya #20#20 lo remplaza con un solo #20"
$cadena_original = str_replace( chr(9) , "" ,$cadena_original); // "remplaza los tabuladores por cadena vacia"
$cadena_original = str_replace( " |" , "|" ,$cadena_original); // "remplaza espacio+pipe y lo sustituye por un solo pipe
$cadena_original = str_replace( "| " , "|" ,$cadena_original); // "remplaza pipe+espacio y los sutituye por un solo pipe
$cadena_original = str_replace( chr(13) , "" ,$cadena_original); // "remplaza el caracter #13 (CR) y lo sustituye por vacio, es decir, lo quita"
$cadena_original = str_replace( chr(10) , "" ,$cadena_original); // "remplaza el caracter #10 (LF) y lo sustituye por vacio, es decir, lo quita"
codigo a utf8
$cadena_utf8 = utf8_encode ( $cadena_original ); // codificamos en utf8
Y meto la cadena denro del archivo texto
$fp=fopen('cadenaoriginal.txt','w+');
fwrite($fp,$cadena_utf8);
fclose($fp);
Obtengo el sello
$sello = exec( " openssl dgst -sha1 -sign LLAVEPRIVADA.pem.txt cadenaoriginal.txt | openssl enc -base64 -A " ) ;
Y luego valido el esquema
$xml->formatOutput=true;
$paso = new DOMDocument;
$texto = $xml->saveXML();
$paso->loadXML($texto);
libxml_use_internal_errors(false);
$file=$ruta."cfdv32.xsd";
if( $paso->schemaValidate($file) == false )
{ echo "No lo genere por que tienes varios errores " ; }
else
{// Avisamos y generamos el archivo xml ///////////////////////////////////////////////
echo $xml->saveXML();
$archivo_xml = "todoelRFC-" . $ALMACEN . "-" . $FOLIO_FACTURA . ".xml" ;
$xml->formatOutput = true;
$final = $xml->save($archivo_xml);
}
Espero que ayude en algo este codigo.
Dado tal vez se podria poner una seccion para codigo PHP.
Leo la base de datos los datos de la factura y me pongo armar el xml, por ejemplo :
$xml = new DOMdocument("1.0","UTF-8"); // Creamos un documento DOM XML
//-------------------------------------------------- Iniciamos la seccion de Comprobante --------------------------------------
$domElement_comprobante = $xml->createElement("cfdi:Comprobante" , ""); // Creamos un Elemento
$domAttribute = $xml->createAttribute('xmlns:cfdi'); // Creamos un atributo
$domAttribute->value = "http://www.sat.gob.mx/cfd/3"; // Agregamos un valor al atributo
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
$domAttribute = $xml->createAttribute('xmlns:xsi'); // Creamos un atributo
$domAttribute->value ="http://www.w3.org/2001/XMLSchema-instance" ; // Agregamos un valor al atributo
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
$domAttribute = $xml->createAttribute('sello'); // Creamos un atributo
$domAttribute->value ="*RSA signing failed*" ; // Agregamos un valor al atributo
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
$domAttribute = $xml->createAttribute('certificado'); // Creamos un atributo
$domAttribute->value ="" ; // Agregamos un valor al atributo ejemplo de validacfd
$domElement_comprobante->appendChild($domAttribute); // Agregamos el atributo al elemento
etc etc.
Luego lo paso a texto con
function genera_cadena_original() {
global $xml, $cadena_original;
$paso = new DOMDocument;
$paso->loadXML($xml->saveXML());
$xsl = new DOMDocument;
$maquina = trim(`uname -n`);
libxml_use_internal_errors( true );
$file= "cadenaoriginal_3_2.xslt"; // Ruta al archivo
$xsl->load($file);
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
$cadena_original = $proc->transformToXML($paso);
}
Le quitamos los CR , LF , espacios etc...
$cadena_original = str_replace( " " , " " ,$cadena_original); // remplaza dos espacios por uno solo, es decir donde haya #20#20 lo remplaza con un solo #20"
$cadena_original = str_replace( chr(9) , "" ,$cadena_original); // "remplaza los tabuladores por cadena vacia"
$cadena_original = str_replace( " |" , "|" ,$cadena_original); // "remplaza espacio+pipe y lo sustituye por un solo pipe
$cadena_original = str_replace( "| " , "|" ,$cadena_original); // "remplaza pipe+espacio y los sutituye por un solo pipe
$cadena_original = str_replace( chr(13) , "" ,$cadena_original); // "remplaza el caracter #13 (CR) y lo sustituye por vacio, es decir, lo quita"
$cadena_original = str_replace( chr(10) , "" ,$cadena_original); // "remplaza el caracter #10 (LF) y lo sustituye por vacio, es decir, lo quita"
codigo a utf8
$cadena_utf8 = utf8_encode ( $cadena_original ); // codificamos en utf8
Y meto la cadena denro del archivo texto
$fp=fopen('cadenaoriginal.txt','w+');
fwrite($fp,$cadena_utf8);
fclose($fp);
Obtengo el sello
$sello = exec( " openssl dgst -sha1 -sign LLAVEPRIVADA.pem.txt cadenaoriginal.txt | openssl enc -base64 -A " ) ;
Y luego valido el esquema
$xml->formatOutput=true;
$paso = new DOMDocument;
$texto = $xml->saveXML();
$paso->loadXML($texto);
libxml_use_internal_errors(false);
$file=$ruta."cfdv32.xsd";
if( $paso->schemaValidate($file) == false )
{ echo "No lo genere por que tienes varios errores " ; }
else
{// Avisamos y generamos el archivo xml ///////////////////////////////////////////////
echo $xml->saveXML();
$archivo_xml = "todoelRFC-" . $ALMACEN . "-" . $FOLIO_FACTURA . ".xml" ;
$xml->formatOutput = true;
$final = $xml->save($archivo_xml);
}
Espero que ayude en algo este codigo.
Dado tal vez se podria poner una seccion para codigo PHP.
DIOS nos Bendice !!!
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Tengo un ERP en PHP, falta generar XML
Dentro de la libreria DLL que ofrezco viene incluido una aplicacion para widnows (ouch!) que puede ser llamada con exec() y te genera el XML, lo sella digitalmente y hasta puede enviarlo a timbrarjevb escribió:Yo en php hago esto :
Leo la base de datos los datos de la factura y me pongo armar el xml, por ejemplo ...........
No lo haz checado aver si te sirve? Se llama CFDBatch.exe
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!