<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Consecutivos
 *
 * @author CCSM
 */
class Consecutivos {

    static $nombreTabla = "ControlConsecutivos";

    public static function todos() {
        $sqlQuery = "SELECT * FROM " . self::$nombreTabla;
        return Conexion::selectVariasFilas($sqlQuery);
    }
    

    public static function actual($consecutivoCODIGO) {
        $Consutivo = self::actualPorCodigo($consecutivoCODIGO);
        return $Consutivo->ACTUAL;
    }
    
    public static function actualPorCodigo($consecutivoCODIGO) {
        $sqlQuery = " SELECT *, LPAD(consecutivoACTUAL,consecutivoRELLENO,'0') AS ACTUAL  FROM " . self::$nombreTabla . "  "
                . "WHERE " . self::$nombreTabla . ".consecutivoCODIGO = ?  ";
        return SicamDB::selectUnaFila($sqlQuery, array($consecutivoCODIGO));
    }
    
    

    public static function usar($consecutivoCODIGO, $prefijo =  false) {
        SicamDB::iniciarTransaccion();
        $sqlQuery = "UPDATE ControlConsecutivos "
                . "SET consecutivoACTUAL = ( consecutivoACTUAL + 1 ) "
                . "WHERE consecutivoCODIGO = ?  ";
        if (SicamDB::actualizarFila($sqlQuery, array($consecutivoCODIGO)) > 0) {
            SicamDB::grabarTransaccion();
            if($prefijo){
                $consecutivo = self::actualPorCodigo($consecutivoCODIGO);
                return $consecutivo->consecutivoPREFIJO.$consecutivo->ACTUAL;
            }else{
                return self::actual($consecutivoCODIGO);
            }
        }
        SicamDB::cancelarTransaccion();
        return NULL;
    }




    // public static function actualConsecutivoPrefijo($prefijoConsecutivoCodigo) {
    //     $sqlQuery = " SELECT *, LPAD(consecutivoACTUAL,consecutivoRELLENO,'0') AS consecutivoACTUAL  FROM " . self::$nombreTabla . "  "
    //             . "WHERE " . self::$nombreTabla . ".consecutivoPREFIJO = '$prefijoConsecutivoCodigo'  ";
    //     return Conexion::selectUnaFila($sqlQuery);
    // }
    
    
    

    // public static function usarConsecutivo($idConsecutivo) {
    //     $sqlQuery = "UPDATE ControlConsecutivos "
    //             . "SET consecutivoACTUAL = ( consecutivoACTUAL + 1 ) "
    //             . "WHERE consecutivoID = $idConsecutivo  ";
    //     if (Conexion::actualizarFila($sqlQuery) > 0) {
    //         return self::actualConsecutivo($idConsecutivo);
    //     }
    //     return NULL;
    // }

    // public static function usarConsecutivoPrefijo($prefijoConsecutivoCodigo) {
    //     $sqlQuery = "UPDATE ControlConsecutivos "
    //             . "SET consecutivoACTUAL = ( consecutivoACTUAL + 1 ) "
    //             . "WHERE consecutivoPREFIJO = '$prefijoConsecutivoCodigo'  ";
    //     if (Conexion::actualizarFila($sqlQuery) > 0) {
    //         return self::actualConsecutivoPrefijo($prefijoConsecutivoCodigo);
    //     }
    //     return NULL;
    // }

    // public static function reiniciarConsecutivoPrefijo($prefijoConsecutivoCodigo) {
    //     $sqlQuery = "UPDATE ControlConsecutivos "
    //             . "SET consecutivoACTUAL = 0 "
    //             . "WHERE consecutivoPREFIJO = '$prefijoConsecutivoCodigo'  ";
    //     if (Conexion::actualizarFila($sqlQuery) > 0) {
    //         return self::actualConsecutivoPrefijo($prefijoConsecutivoCodigo);
    //     }
    //     return NULL;
    // }

}

