jueves, agosto 16, 2012

Administrar la recepción de CFD/CFDI - Script que lee XML de un Comprobante Fistal Digital

Hoy en día la preocupación de la mayoría de las empresas se concentra en la generación de Comprobantes Fiscales Digitales basados en las normas del SAT. En este nicho ya hay bastantes pesonas y empresas trabajando.
Sin embargo no he visto o desconozco una herramienta que ayude a administrar la RECEPCION DE CFD's.

Me ha pasado que despues de comprar en diferentes negocios, cada empresa genera un archivo xml con nombre generico, que es de utilidad para ellos. Al tener varias facturas la administración se vuelve complicada.
Una manera de administrar estos comprobantes digitales es renombrarlos utilizando algun layout, ya sea de manera manual o con un proceso automatico

Este script ayuda a leer un CFD para despues formatear el nombre del archivo de la siguiente manera:
Fecha_RFCemisor_serie_folio_subtotal_iva_total

Fecha: Fecha en que se generó el comprobante
RFCemisor: RFC de quien emite el cfd/cfdi
Serie y Folio: Numero de Serie y folio de la factura
Subtotal, iva, total: Importes de la factura.

Aquí el código:
Emisor);
  $rfc = trim ($arrejemplo["@attributes"]['rfc']  );
  $nombre = trim ($arrejemplo["@attributes"]['nombre'] );

 #Convierte objeto Impuestos en array
 $arrejemplo = get_object_vars ($objejemplo->Impuestos);
  $iva = trim ($arrejemplo["@attributes"]['totalImpuestosTrasladados']);
  // $nombre = $arrejemplo["@attributes"]['nombre'];

 #Formatea los valores numericos
 $tam_num  = 8;
 $relleno ='0';
 $subTotal = str_pad($subTotal ,$tam_num,$relleno,STR_PAD_LEFT);
 $iva  = str_pad($iva  ,$tam_num,$relleno,STR_PAD_LEFT);
 $total  = str_pad($total ,$tam_num,$relleno,STR_PAD_LEFT);

 echo $fecha."_".$rfc."_".$serie.$folio."_".$subTotal."_".$iva."_".$total;
?>
Una vez que se tienen estos archivos renombrados es mucho más fácil encontrar el comprobante de una compra.
En mi caso hago en la linea de comandos de windows:
dir /b /s *.xml > listaCFD.txt

El cual me genera el listado de mis comprobantes, esta lista la paso a un excel, y este excel es mucho más facil de comprender para mi contador.



ToDo List:

- Leer el directorio que contiene los archivos xml
- Renombrar el xml.
- Generar y/o actualizar automaticamente el listado de excel
- Validar en el SAT la autenticidad del CFD


1 comentario:

Anónimo dijo...

Gracias, busque muchas paginas y muchos ejemplos, el tuyo si funciona y es el mejor.

.