Foros del Web » Programando para Internet » PHP »

¿Cómo crear un generador de consecutivos para oficios?

Estas en el tema de ¿Cómo crear un generador de consecutivos para oficios? en el foro de PHP en Foros del Web. Saludos, amigos expertos. No tengo casi conocimientos de programación en PHP y en MySQL. Sin embargo para mi trabajo he implementado una CMS con WAMP ...
  #1 (permalink)  
Antiguo 09/10/2015, 13:43
 
Fecha de Ingreso: octubre-2015
Mensajes: 1
Antigüedad: 8 años, 6 meses
Puntos: 0
Pregunta ¿Cómo crear un generador de consecutivos para oficios?

Saludos, amigos expertos.

No tengo casi conocimientos de programación en PHP y en MySQL. Sin embargo para mi trabajo he implementado una CMS con WAMP y Joomla 3.0.

En mi empresa tenemos unos 40 empleados que elaboran documentos para dar respuesta a nuestros usuarios, cada documento que se elabora debe llevar un consecutivo unico, el cual actualmente se lleva en una tabla de excel, donde se registra:

- El número de consecutivo
- Quien pidio ese consecutivo
- Fecha y la hora.

Es un proceso bastante tedioso, pues cada que algún empleado quiere saber que número de consecutivo le corresponde, para colocar en su documento, debe desplazarce desde su oficina al piso donde se encuetra la secretaria general para que le den el numero consecutivo correspondiente.

Mi jefe me encargó la labor de investigar si en el portal que les he montado, se puede crear una pequeña aplicacion que remplace esa labor manual.

La idea sería: que cada emplado pueda entrar en el portal, dar clic en el un boton o link y le genere el cosecutivo que le corresponde, pero que al mismo tiempo de forma automática el sistema guarde en MySQL el numero de consecutivo entregado, con la fecha, hora y el nombre del equipo desde donde se solicitó el consecutivo para poder tener control.

De antemano agradezco su ayuda al respecto, pues llevo varias semanas tratando de buscar alguna solucion y no la he podido hallar.

Feliz Tarde.

JUAN C VALENCIA

Última edición por valengos; 09/10/2015 a las 13:47 Razón: error en redaccion
  #2 (permalink)  
Antiguo 09/10/2015, 14:50
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: ¿Cómo crear un generador de consecutivos para oficios?

esto es algo por encima, hay muchas formas de hacerlo

Código PHP:
Ver original
  1. //tomamos la ultima id
  2. $consu = $db->query("SELECT * FROM tabla ORDER BY id DESC");
  3. $total = mysqli_num_rows($consu);
  4. $rowid = $consu->fetch_assoc();
  5.  
  6.  
  7. $codigo = sprintf("%06d", $rowid['id']);//le asignamos ceros antes a nuestra id para formatearla ejemplo 000015
  8.  
  9. $prefijo = "ABC";
  10.  
  11. $cod_final = $prefijo."-".$codigo;//quedaria algo asi ABC-000015
  12.  
  13. //guardamos el codigo en la base de datos
  14. $guarda = $db->query("INSERT INTO tabla (codigo) VALUE ('$cod_final')");
  15.  
  16. //mostramos el Codigo
  17. echo $cod_final;
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 09/10/2015, 14:53
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: ¿Cómo crear un generador de consecutivos para oficios?

olvide colocarte en esta linea que debes sumarle 1 al ultimo id para generar el nuevo codigo:

Código PHP:
Ver original
  1. $codigo = sprintf("%06d", $rowid['id']+1);
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 09/10/2015, 15:55
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: ¿Cómo crear un generador de consecutivos para oficios?

si quieres que el prefijo sea automatico es decir, que se incremente una letra al igual que el codigo, seria algo asi:

Código PHP:
Ver original
  1. $consu = $db->query("SELECT * FROM tabla ORDER BY id DESC");
  2. $total = mysqli_num_rows($consu);
  3. $rowid = $consu->fetch_assoc();
  4.  
  5. $codigo = sprintf("%06d", $rowid['id']);//le asignamos ceros antes a nuestra id para formatearla ejemplo 000015
  6.  
  7. $a = $rowid['prefijo'];//cadena extraida de la base de datos
  8.  
  9. $ultima = substr($a, -1, 1);//leemos el ultimo caracter de la cadena
  10. $antes = substr($a, 0, -1);//leemos los primero caracteres omitiendo el ultimo
  11.  
  12. //verificamos el caracter leido y la cambiamos la la sigiente letra en el alfabeto
  13. switch ($ultima) {
  14.   case 'A': $sig = 'B'; break; case 'B': $sig = 'C'; break; case 'C': $sig = 'D'; break; case 'D': $sig = 'E'; break; case 'E': $sig = 'F'; break; case 'F': $sig = 'G'; break; case 'G': $sig = 'H'; break; case 'H': $sig = 'I'; break; case 'I': $sig = 'J'; break; case 'J': $sig = 'K';  break; case 'K': $sig = 'L'; break; case 'L': $sig = 'M'; break; case 'M': $sig = 'N'; break;
  15.  case 'N': $sig = 'O'; break; case 'O': $sig = 'P'; break; case 'P': $sig = 'Q'; break; case 'Q': $sig = 'R'; break; case 'R': $sig = 'S'; break; case 'S': $sig = 'T'; break; case 'T': $sig = 'U'; break; case 'U': $sig = 'V'; break; case 'V': $sig = 'W'; break; case 'W': $sig = 'X'; break; case 'X': $sig = 'Y'; break; case 'Y': $sig = 'Z'; break;
  16. }
  17.  
  18. //creamos el limite del bucle for uninendo los primero caracteres con el nuevo caracter
  19. $b = $antes.$sig;
  20.  
  21. //generamos el siguiente codigo de texto
  22. for($i=$b; $i<=$b; $i++)
  23.  
  24. //mostramos el codigo generado
  25.  
  26. $cod_final = $i."-".$codigo;//quedaria algo asi ABC-000015
  27.  
  28. //guardamos el codigo en la base de datos
  29. $guarda = $db->query("INSERT INTO tabla (codigo) VALUE ('$cod_final')");
  30.  
  31. //mostramos el Codigo
  32. echo $cod_final;
__________________
[email protected]
HITCEL

Etiquetas: consecutivos, fecha, mysql, tabla, usuarios
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 00:40.