Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Generar código factura

Estas en el tema de Generar código factura en el foro de Mysql en Foros del Web. Buenas, En realidad no sé si este es el mejor foro para este tema, pero ahí lo dejo. Quiero generar facturas en PDF pero no ...
  #1 (permalink)  
Antiguo 20/05/2014, 10:24
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 18 años, 9 meses
Puntos: 36
Generar código factura

Buenas,

En realidad no sé si este es el mejor foro para este tema, pero ahí lo dejo.

Quiero generar facturas en PDF pero no sé muy bien como generar el número de factura. Tenía pensando en utilizar el siguiente formato:

RR-2014-00001

RR se mantiene siempre, 2014 es el año en el que nos encontramos, y 00001 es un contador que se reinicia con la entrada de un nuevo año.

¿Alguna idea ya sea usando mysql o php?

Gracias.
  #2 (permalink)  
Antiguo 20/05/2014, 11:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Generar código factura

Las numeraciones de facturas están reguladas por la ley en cada país. Dependerá de lo que corresponda en España, en tu caso.
Revisa el tema y partamos desde allí.
de todos modos, lo que conviene hacer es almacenar cada parte del dato de la numeración en una columna independiente de la tabla, y luego al generar el dato para salida, entonces te procupas por su representación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/05/2014, 11:40
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 18 años, 9 meses
Puntos: 36
Respuesta: Generar código factura

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Las numeraciones de facturas están reguladas por la ley en cada país. Dependerá de lo que corresponda en España, en tu caso.
Revisa el tema y partamos desde allí.
de todos modos, lo que conviene hacer es almacenar cada parte del dato de la numeración en una columna independiente de la tabla, y luego al generar el dato para salida, entonces te procupas por su representación.
Sí, la numeración que sigo es la explicada en mi mensaje de inicio: RR-2014-00000 donde RR es constante, 2014 es el año y 00000 un número que va creciendo una tras otro cada vez que se emite una factura. Este último numero se reinicia (vuelve a 00000) a cada inicio del año.

Otra alternativa más fácil (y la legislación española lo permite) es hacer una numeración muy sencilla tal que así: 000000000, 0000000001, 0000000002
Esta es fácil de hacer, sólo es ir sumando una unidad. Ni siquiera tiene que reiniciarse. Pero queda más "cool" de la otra forma.

Saludos!
  #4 (permalink)  
Antiguo 20/05/2014, 12:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Generar código factura

No me queda claro si la numeración que "sigues" es la forma en que está regulada legalmente en españa (me resulta algo singular, pero puede ser simplemente poque en mi país se hace de otro modo).
Entendamos que no existe una numeración "00000001", eso es representación, no es lo que se almacena en la base. Eso luego, al momento de mostrar los datos, se genera programáticamente, o por medio de la consulta. Pero lo que se almacenan son numeros.
En MySQL puedes guardar un número con ZEROFILL, pero no tiene efectos luego cuando realizas consultas a la base, ni tampoco en los lenguajes de programación (no nos olvidemos que los ceros a la izquierda no existen).
El tema centralo no es que algo esté "permitido", sino lo que está establecido.
En Argentina, por ejemplo, sólo pueden ponerse como "0000-00000000", siendo los primeros dedicados al número de punto de venta habilitado para la facturación, y una letra (A, B, C, E), que determina la condición impositiva de la operación, y su tipo.

En definitiva, si quieres conservar ese esquema por "bonito", te recomiendo usar tres campos, uno VARCHAR(2), uno MEDIUMINT UNSIGNED y el tercero INT UNSIGNED.
Luego en la aplicación cosntruyes la representación como la quieres.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/05/2014, 12:22
 
Fecha de Ingreso: julio-2005
Mensajes: 310
Antigüedad: 18 años, 9 meses
Puntos: 36
Respuesta: Generar código factura

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No me queda claro si la numeración que "sigues" es la forma en que está regulada legalmente en españa (me resulta algo singular, pero puede ser simplemente poque en mi país se hace de otro modo).
Entendamos que no existe una numeración "00000001", eso es representación, no es lo que se almacena en la base. Eso luego, al momento de mostrar los datos, se genera programáticamente, o por medio de la consulta. Pero lo que se almacenan son numeros.
En MySQL puedes guardar un número con ZEROFILL, pero no tiene efectos luego cuando realizas consultas a la base, ni tampoco en los lenguajes de programación (no nos olvidemos que los ceros a la izquierda no existen).
El tema centralo no es que algo esté "permitido", sino lo que está establecido.
En Argentina, por ejemplo, sólo pueden ponerse como "0000-00000000", siendo los primeros dedicados al número de punto de venta habilitado para la facturación, y una letra (A, B, C, E), que determina la condición impositiva de la operación, y su tipo.

En definitiva, si quieres conservar ese esquema por "bonito", te recomiendo usar tres campos, uno VARCHAR(2), uno MEDIUMINT UNSIGNED y el tercero INT UNSIGNED.
Hola,

Gracias por tu respuesta. Miraré a ver cómo lo hago. Respecto a la legislación española dice que las facturas deben constar de dos partes: la serie y la numeración.
La serie puede ser cualquier cosa: RR, BBBB, A11, lo que quieras, pero siempre debes usar la misma para la misma actividad y/o establecimiento. El número es la parte exclusivamente numérica y debe ser siempre secuencial sin saltos de número y su orden debe coincidir con el orden de las fechas de factura. Se permite reiniciar la numeración al cambio de un ejercicio fiscal (es decir, a 1 de enero).

La serie no es obligatoria si no tienes necesidad de distinguir varias actividades (por ejemplo, el caso de una empresa con un único establecimiento de ventas y una única actividad), por eso digo que podría simplemente asignar como número de factura algo así: 00000001 que podría ser perfectamente el id de cada registro en la base de datos (que es un primary key y por lo tanto único y correlativo) rellenado de ceros a su izquierda. Esto sé hacerlo.

Saludos!

Etiquetas: factura, php, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:42.