2005-04-04 21:43:40 +02:00
< ? php
/* Copyright ( C ) 2005 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
* or see http :// www . gnu . org /
*
* $Id $
* $Source $
*
*/
/**
\file htdocs / includes / modules / commande / mod_commande_opale . php
\ingroup commande
\brief Fichier contenant la classe du mod<EFBFBD> le de num<EFBFBD> rotation de r<EFBFBD> f<EFBFBD> rence de commande Opale
\version $Revision $
*/
include_once ( " modules_commande.php " );
/**
\class mod_commande_opale
\brief Classe du mod<EFBFBD> le de num<EFBFBD> rotation de r<EFBFBD> f<EFBFBD> rence de commande Opale
*/
class mod_commande_opale extends ModeleNumRefCommandes
{
/** \brief Constructeur
*/
function mod_commande_opale ()
{
$this -> nom = " Opale " ;
}
/** \brief Renvoi la description du modele de num<EFBFBD> rotation
* \return string Texte descripif
*/
function info ()
{
return " Renvoie le num<75> ro sous la forme num<75> rique COMhexa, o<> hexa repr<70> sente un incr<63> ment global cod<6F> en h<> xad<61> cimal. (COM-000-001 <20> COM-FFF-FFF) " ;
}
2006-05-03 13:05:22 +02:00
/** \brief Renvoi un exemple de num<EFBFBD> rotation
* \return string Example
*/
function getExample ()
{
return " COM-000-001 " ;
}
2005-04-04 21:43:40 +02:00
2006-05-03 15:08:40 +02:00
/** \brief Renvoi prochaine valeur attribu<EFBFBD> e
* \return string Valeur
*/
function getNextValue ()
{
global $db ;
// D'abord on r<> cup<75> re la valeur max (r<> ponse imm<6D> diate car champ ind<6E> x<EFBFBD> )
$com = '' ;
$sql = " SELECT MAX(ref) " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " commande " ;
2006-05-03 15:15:58 +02:00
$sql .= " WHERE ref like 'COM%' " ;
2006-05-03 15:08:40 +02:00
$resql = $db -> query ( $sql );
if ( $resql )
{
$row = $db -> fetch_row ( $resql );
if ( $row )
{
2006-05-03 15:26:34 +02:00
//on extrait la valeur max et on la passe en d<> cimale
2006-05-03 15:21:19 +02:00
$max = hexdec (( substr ( $row [ 0 ], 4 , 3 )) . ( substr ( $row [ 0 ], 8 , 3 )));
2006-05-03 15:08:40 +02:00
}
}
else
{
$max = 0 ;
}
$yy = strftime ( " %y " , time ());
$hex = strtoupper ( dechex ( $max + 1 ));
$ref = substr ( " 000000 " . ( $hex ), - 6 );
return 'COM-' . substr ( $ref , 0 , 3 ) . " - " . substr ( $ref , 3 , 3 );
}
/** \brief Renvoie la r<EFBFBD> f<EFBFBD> rence de commande suivante non utilis<EFBFBD> e
* \param objsoc Objet soci<EFBFBD> t<EFBFBD>
* \return string Texte descripif
*/
function commande_get_num ( $objsoc = 0 )
{
return $this -> getNextValue ();
}
2005-04-04 21:43:40 +02:00
}
?>