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 /
*/
2008-06-20 23:10:24 +02:00
/**
\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 $Id $
*/
2005-04-04 21:43:40 +02:00
include_once ( " modules_commande.php " );
/**
2008-06-20 23:10:24 +02:00
\class mod_commande_opale
\brief Classe du mod<EFBFBD> le de num<EFBFBD> rotation de r<EFBFBD> f<EFBFBD> rence de commande Opale
*/
2005-04-04 21:43:40 +02:00
class mod_commande_opale extends ModeleNumRefCommandes
{
2008-06-20 23:10:24 +02:00
var $version = 'dolibarr' ; // 'development', 'experimental', 'dolibarr'
var $error = '' ;
var $nom = 'Opale' ;
/** \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) " ;
}
/** \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
2008-07-05 16:20:03 +02:00
/** \brief Return next value
* \param objsoc Objet third party
* \param commande Object order
* \return string Value if OK , 0 if KO
*/
function getNextValue ( $objsoc , $commande )
{
2008-06-20 23:10:24 +02:00
global $db ;
2005-04-04 21:43:40 +02:00
2008-06-20 23:10:24 +02:00
// 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 " ;
$sql .= " WHERE ref like 'COM%' " ;
$resql = $db -> query ( $sql );
if ( $resql )
{
$row = $db -> fetch_row ( $resql );
if ( $row )
{
//on extrait la valeur max et on la passe en d<> cimale
$max = hexdec (( substr ( $row [ 0 ], 4 , 3 )) . ( substr ( $row [ 0 ], 8 , 3 )));
}
}
else
{
$max = 0 ;
}
2008-07-05 16:20:03 +02:00
//$date=time();
$date = $commande -> date ;
$yy = strftime ( " %y " , $date );
2008-06-20 23:10:24 +02:00
$hex = strtoupper ( dechex ( $max + 1 ));
$ref = substr ( " 000000 " . ( $hex ), - 6 );
2005-04-04 21:43:40 +02:00
2008-06-20 23:10:24 +02:00
return 'COM-' . substr ( $ref , 0 , 3 ) . " - " . substr ( $ref , 3 , 3 );
}
2006-05-03 15:08:40 +02:00
2008-07-05 16:20:03 +02:00
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
* \return string Next free value
*/
function commande_get_num ( $objsoc , $objforref )
{
return $this -> getNextValue ( $objsoc , $objforref );
}
2005-04-04 21:43:40 +02:00
}
?>