Announcement

Collapse
No announcement yet.

Generacion de numero de ticket y reinicio

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Hola Alvagar, yo tengo un problema similar, quiero generar un número de matricula, sin embargo la matricula se compone por diferentes digitos:
    [ultimos dos digitos del año][codigo del estado][codigo de plantel][numero incrementable]
    lo estoy tratando de hacer con metodo php por lo que el codigo es el siguiente:
    {Matricula}=$var=date("y").("17").{Plantel}; //*lo que me falta en esta linea es el número consecutivo el cual se debe reiniciar al cambiar el año

    los datos que me arrojan son los siguientes:
    1517C0004G... pero me hace falta 0001, 0002, 0003 y asi sucesivamente, podrías apoyarme, te lo agraedecere mucho!

    Comment


    • #17
      Por favor, crea un nuevo hilo con tu duda, intentar no have necroposting.

      Aprovecha para añadir esta información que te pido en ese nuevo hilo. Ese consecutivo depende solo del año? O de algo mas? Qué te impide tener una tabla de contador por años y consultarla retornándote el valor necesario?

      Saludos.
      /Giuseppe

      Professional Scriptcase Services
      Some Customers opinions

      Comment


      • #18
        Hola Luis yo creo que es algo parecido a lo que ya se dijo en este thread, aqui debes comparar en el campo ULTIMAFECHA con la fecha actual del sistema y si el año ha cambiado se debe generar el siguiente consecutivo = 1. de lo contrario se genera el actual +1.

        Comment


        • #19
          Tienes toda la razón Giu, soy nuevo en los foros, perdón, sin embargo puedo comentar que lo hice aquí por que es muy similar la duda que tengo, solo quería modificar algunos datos, no ocurrirá la siguiente ocasión, por lo pronto quiero dar a conocer que ya pude realizar la función adaptada, la dejo por aquí por si a alguien le funciona, agradezco la aportación que realizó alvargar, no solo en esta ultima respuesta si no en todo el código que proporciono ya que me ayudo bastante, gracias, sin embargo me gustaría por ultimo saber como puedo generar mi numero como 0001 ya que solo me pone 1, 2, 3... podrás apoyarme? saludos!


          /*Función MySql*/
          create table consecutivo (codigo int not null, NUMEROACTUAL int not null,

          ULTIMAFECHA date not null, primary key (codigo)) engine = InnoDB;


          /* insertas un registro inicial, solo aclarando que yo lo hice de forma manual*/
          insert into consecutivo values (1, 0, sysdate());


          /* Luego creas esta función*/
          DELIMITER $$
          DROP FUNCTION IF EXISTS `f_get_consecutivo` $$
          CREATE FUNCTION `f_get_consecutivo` () returns int
          BEGIN

          DECLARE v_CONSECUTIVO INT(8);
          DECLARE V_FECHA DATE;

          SELECT NUMEROACTUAL, ULTIMAFECHA
          INTO v_CONSECUTIVO, V_FECHA
          FROM consecutivo;

          set v_CONSECUTIVO = v_CONSECUTIVO + 1;

          IF (YEAR(V_FECHA) <> YEAR(NOW())) THEN
          set V_FECHA = now();
          set v_CONSECUTIVO = 1;
          END IF;

          update consecutivo set NUMEROACTUAL = v_CONSECUTIVO, ULTIMAFECHA = V_FECHA where codigo = 1;

          return v_CONSECUTIVO;
          END $$
          DELIMITER ;



          /*Codigo Scriptcase Before Insert*/

          sc_lookup(dataset, "select f_get_consecutivo()" );


          $consecutivo = {dataset[0][0]};

          {Matricula}= $var=date("y").("17").{Plantel}.$consecutivo;

          Comment


          • #20
            Yo creo que puede usar la funcion LPAD para que le pongas la mascara con los ceros deseados, Mira el sitio: http://dev.mysql.com/doc/refman/5.7/...#function_lpad

            Comment


            • #21
              Ejemplo:SELECT LPAD('25',4,'0'); devuelve 0025

              Comment


              • #22
                Muchas gracias funciona correctamente, saludos!

                Comment

                Working...
                X