renamecfd-01
Y sigo con las reformas del SAT para faturación electrónica, ya que ahora seguramente tendremos muchos archivos xml, pero cada quien llama sus archivos como mejor conviene a su control interno, para para uno el nombre muchas veces no dice gran cosa y peor aún si necesito buscar un factura en particular, tengo que revisar todos o cuando menos gran parte de los archivos hasta dar con el que necesito, una tarea que sólo de pensarla ya me está dando hambre.

Una idea que inicialmente fué propuesta por @pixelead0 y he ido programando a través de varios post siendo la última propuesta Administrar recepción de CFD/CFDI (update v1.1), sin embargo finalmente he decidido crear un programa con funcionalidad completa que realiza lo siguiente:

RENAMECFD - Renombra archivos de CFD
------------------------------------
### Descripción
Este script lee un CFD con nombre archivo.xml para después renombrarlo de la siguiente manera:
   Fecha_RFCemisor_serie_folio_subtotal_iva_total.xml

Donde:
 * 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.

El nombre del xml se proporciona desde la línea de comandos, de tal forma que se puede usar en algún otro script para automatizar el proceso.

Se permite indicar archivos con algún path distinto a donde se encuentra el script

Se aceptan comodines para procesar grupos de archivos (ej *.xml)

Puede leer tanto archivos xml correspondientes a CFD y CFDi

Pero además lo he liberado como software libre y también he creado un repositorio en Github para quien quiera meterle mano!

Para clonarlo usando git hacer lo siguiente

$ git clone https://github.com/rctorr/FacturaElectronica.git
Cloning into 'FacturaElectronica'...
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 18 (delta 3), reused 16 (delta 1)
Unpacking objects: 100% (18/18), done.
$

Para ejecutarlo desde linux podría ser así

$ cd FacturaElectronica
$ ./renamecfd.py
Usage: renamecfd.py [opciones] archivocfd.xml|*.xml

Options:
  -h, --help     muestra este mensaje de ayuda y termina
  -v, --verbose  Va mostrando la lista de los archivos modificados

$

Ahora si prefieres descargarlo en zip puedes dar click aquí (zip).

Espero que le sea útil a cuando menos uno de ustedes!

¿Cómo ejecutar el programa en windows?


Antes que nada agradecer el tiempo que algunos visitantes se toman para escribir algunas buenas observaciones y una de ellas es el título de esta sección.

¿Qué esperas que suceda al dar doble click?

Los usuario de windows comentan que sería bueno tener un exe para sólo hacer doble click, sin embargo un exe del programa tal como está posiblemente no sea de mucha utilidad, lo siento!. La razón es que el programa/script renombracfd.py está pensado para ser usado desde una ventana de comandos o algún otro programa que haga uso de el para automatizar algunas tareas.

Entonces en la medida de lo posible me podrían ayudar a dar una respuesta a esta pregunta comentando que es lo que sería de utilidad para los usuarios de windows o incluso para cualquier sistema operativo al dar doble click.

Si puedes responder por acá https://github.com/rctorr/FacturaElectronica/issues/1 me ayudarías mucho, si no, puedes usar los comentaros de más abajo.

Gracias!

Mientras eso sucede voy con…

Ejecutando el script en windows

Esta es la opción rápida (según yo!) para que los usuarios de windows puedan aprovechar el programa siguiendo los siguientes pasos para la primera ves que lo ejecutes:

  1. Descarga el intérprete de python que es necesario para que el programa funcione. Puedes dar click aquí.
  2. Dar doble click sobre el archivo python-2.7.6.msi que has descargado, sigue las instrucciones hasta concluir con la instalación. Esto crea la carpeta C:\Python27, si tu unidad principal es la C:
  3. Luego crea una carpeta llamada cfdi en el escritorio
  4. Coloca una copia del programa renamecfd.py dentro de la carpeta cfdi
  5. Coloca también una copia de todos los archivos xml que necesites renombrar en esta misma carpeta
  6. Para usuarios de WinXP
    1. Da click en el menú inicio => ejecutar => escribe: cmd y presionar enter. Esto abre una ventana de comandos.
    2. Hay que cambiarse a la carpeta cfdi escribiendo: cd Escritorio\cfdi y presionando enter.

    La imagen muestra la carpeta cfdi con el programa renamecfdi.py y los archivos xml a renombrar, también se muestra la ventana de comandos ya listo para ejecutar el programa
    La imagen muestra la carpeta cfdi con el programa renamecfdi.py y los archivos xml a renombrar, también se muestra la ventana de comandos ya listo para ejecutar el programa
  7. Para usuarios de WinVista, Win7 y posiblemente Win8
    1. Da click en menú inicio => En “Buscar programas y archivos” escribe: cmd y presiona enter.
    2. Hay que cambiarse a la carpeta cfdi escribiendo: cd Desktop\cfdi y presionando enter.
  8. Para ejecutarlo escribir: C;\Python27\python renamecfd.py *.xml y presionar enter

La imagen muestra la carpeta cfdi con los archivos xml ya renombrados y la ventana de comandos muestra como se ejecutó el programa.
La imagen muestra la carpeta cfdi con los archivos xml ya renombrados y la ventana de comandos muestra como se ejecutó el programa.

Listo, todos tus archivos xml en la carpeta cfdi renombrados

OJO: Para futuros usos sólo tienes que realizar lo siguiente:

  1. Abre la carpeta cfdi del escritorio y borra todos los archivos xml que no necesiten ser renombrados.
  2. Coloca una copia de todos los archivos xml que necesites renombrar en esta misma carpeta
  3. Para usuarios de WinXP
    1. Da click en el menú inicio => ejecutar => escribe: cmd y presionar enter. Esto abre una ventana de comandos.
    2. Hay que cambiarse a la carpeta cfdi escribiendo: cd Escritorio\cfdi y presionando enter.
  4. Para usuarios de WinVista, Win7 y posiblemente Win8
    1. Da click en menú inicio => En “Buscar programas y archivos” escribe: cmd y presiona enter.
    2. Hay que cambiarse a la carpeta cfdi escribiendo: cd Desktop\cfdi y presionando enter.
  5. Para ejecutarlo escribir: C:\Python27\python renamecfd.py *.xml y presionar enter

Listo, tus nuevos archivos xml en la carpeta cfdi renombrados.

Como obtener la lista de todos los archivos renombrados

Obtener la lista de los archivos renombrados podría ser necesaria por varias razones (cada quien que se invente las suyas hehe!) y el programa permite mostrar la lista de los archivos que va renombrando, así que lo que faltaría sería guardar esa lista en algún archivo txt para usarlo posteriormente.

Voy a partir que ya has realizado cuando menos el grupo de pasos que van del 1 al 7, si ya ejecutaste el 8, entonces borrar los archivos xml y vuelve a copiar los archivos que necesitas renombrar.

Entonces ahora realizas el paso 8 escribiendo el siguiente comando y presionando enter para ejecutarlo.

C:\Python27\python renamecfd.py -v *.xml > lista-de-archivos.txt
Guardando la lista de archivos renombrados
Se muestra el archivo lista-de-archivos.txt generado

Ahora puedes abrir el archivo lista-de-archivos.txt por ejemplo en calc o excel o notpad o write o word o algún otro programa para ver la lista de los archivos renombrados.

Finalmente…

¿Cómo ejecutar este script/programa en mac o linux?

Aquí hay varias alternativas, pero voy a describir la más simple para aquellos que son iniciados, para los tipo hackers clonen el repo de git y luego ya saben que hacer.

  1. Descarga un zip del programa desde aquí
  2. Descomprímelo en el escritorio, así que ahora tendrás una carpeta llamada FacturaElectronica-master
  3. Copia en esta carpeta todos los archivos xml que requieras renombrar
  4. De alguna forma busca la manera de iniciar un terminal de comandos, un bash, una consola o algo que se le parezca.
  5. En la consola, hay que cambiar a la carpeta donde está el programa y los archivos xml
    cd Desktop/FacturaElectronica-master <enter>
    
    o
    
    cd Escritorio/FacturaElectronica-master <enter>
    

    usa una u otra línea, según se llame tu carpeta de Escritorio, dependerá del idioma y sistema operativo.

  6. Ejecutar el programa de la siguiente forma:
    python renamecfd.py *.xml
    

    lo anterior renombrar todos los archivos xml contenido en la misma carpeta donde está el programa.

Cambiando a la carpeta y ejecutando en una terminal en Linux
Cambiando a la carpeta y ejecutando en una terminal en Linux

Listo, a seguir siendo felices!