Fix: Usage of reset of cursor in numbering modules for a particular month (@ option) was broken.
This commit is contained in:
parent
754e0111f3
commit
1cb7fc6ede
@ -12,6 +12,8 @@ For users:
|
|||||||
future bank transaction already wrote.
|
future bank transaction already wrote.
|
||||||
- Fixed: Bad ref in supplier list.
|
- Fixed: Bad ref in supplier list.
|
||||||
- Fixed: Bad link in product statistics for supplier referers.
|
- Fixed: Bad link in product statistics for supplier referers.
|
||||||
|
- Fix: Usage of reset of cursor in personalized numbering modules for a particular
|
||||||
|
month (@ option) was broken.
|
||||||
|
|
||||||
For translators:
|
For translators:
|
||||||
- Added ca_ES language files
|
- Added ca_ES language files
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
/**
|
/**
|
||||||
\file htdocs/includes/modules/commande/mod_commande_saphir.php
|
\file htdocs/includes/modules/commande/mod_commande_saphir.php
|
||||||
\ingroup commande
|
\ingroup commande
|
||||||
\brief Fichier contenant la classe du modèle de numérotation de référence de commande Saphir
|
\brief Fichier contenant la classe du mod<EFBFBD>le de num<EFBFBD>rotation de r<EFBFBD>f<EFBFBD>rence de commande Saphir
|
||||||
\version $Id$
|
\version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ require_once(DOL_DOCUMENT_ROOT ."/includes/modules/commande/modules_commande.php
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\class mod_commande_saphir
|
\class mod_commande_saphir
|
||||||
\brief Classe du modèle de numérotation de référence de commande Saphir
|
\brief Classe du mod<EFBFBD>le de num<EFBFBD>rotation de r<EFBFBD>f<EFBFBD>rence de commande Saphir
|
||||||
*/
|
*/
|
||||||
class mod_commande_saphir extends ModeleNumRefCommandes
|
class mod_commande_saphir extends ModeleNumRefCommandes
|
||||||
{
|
{
|
||||||
@ -41,7 +41,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
|
|||||||
var $nom = 'Saphir';
|
var $nom = 'Saphir';
|
||||||
|
|
||||||
|
|
||||||
/** \brief Renvoi la description du modele de numérotation
|
/** \brief Renvoi la description du modele de num<EFBFBD>rotation
|
||||||
* \return string Texte descripif
|
* \return string Texte descripif
|
||||||
*/
|
*/
|
||||||
function info()
|
function info()
|
||||||
@ -72,7 +72,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
|
|||||||
return $texte;
|
return $texte;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Renvoi un exemple de numérotation
|
/** \brief Renvoi un exemple de num<EFBFBD>rotation
|
||||||
* \return string Example
|
* \return string Example
|
||||||
*/
|
*/
|
||||||
function getExample()
|
function getExample()
|
||||||
@ -102,7 +102,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
|
|||||||
|
|
||||||
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
|
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
|
||||||
|
|
||||||
// On défini critere recherche compteur
|
// We get cursor rule
|
||||||
$mask=$conf->global->COMMANDE_SAPHIR_MASK;
|
$mask=$conf->global->COMMANDE_SAPHIR_MASK;
|
||||||
|
|
||||||
if (! $mask)
|
if (! $mask)
|
||||||
|
|||||||
@ -75,7 +75,8 @@ function array2table($data,$tableMarkup=1,$tableoptions='',$troptions='',$tdopti
|
|||||||
function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date='')
|
function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date='')
|
||||||
{
|
{
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if ($date == '') $date=time();
|
if ($date == '') $date=mktime(); // We use local year and month of PHP server to search numbers
|
||||||
|
// but we should use local year and month of user
|
||||||
|
|
||||||
// Extract value for mask counter, mask raz and mask offset
|
// Extract value for mask counter, mask raz and mask offset
|
||||||
if (! eregi('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$mask,$reg)) return 'ErrorBadMask';
|
if (! eregi('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$mask,$reg)) return 'ErrorBadMask';
|
||||||
@ -117,6 +118,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
|
|||||||
if (! empty($reg[3]) && eregi('^\+',$reg[3])) $maskoffset=eregi_replace('^\+','',$reg[3]);
|
if (! empty($reg[3]) && eregi('^\+',$reg[3])) $maskoffset=eregi_replace('^\+','',$reg[3]);
|
||||||
|
|
||||||
// Define $sqlwhere
|
// Define $sqlwhere
|
||||||
|
|
||||||
// If a restore to zero after a month is asked we check if there is already a value for this year.
|
// If a restore to zero after a month is asked we check if there is already a value for this year.
|
||||||
if (! empty($reg[2]) && eregi('^@',$reg[2])) $maskraz=eregi_replace('^@','',$reg[2]);
|
if (! empty($reg[2]) && eregi('^@',$reg[2])) $maskraz=eregi_replace('^@','',$reg[2]);
|
||||||
if (! empty($reg[3]) && eregi('^@',$reg[3])) $maskraz=eregi_replace('^@','',$reg[3]);
|
if (! empty($reg[3]) && eregi('^@',$reg[3])) $maskraz=eregi_replace('^@','',$reg[3]);
|
||||||
@ -139,10 +141,15 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
|
|||||||
if (strlen($reg[2]) == 1) $yearcomp=substr(date("y",$date),2,1)+$yearoffset;
|
if (strlen($reg[2]) == 1) $yearcomp=substr(date("y",$date),2,1)+$yearoffset;
|
||||||
|
|
||||||
$sqlwhere='';
|
$sqlwhere='';
|
||||||
$sqlwhere.='SUBSTRING('.$field.', '.(strlen($reg[1])+1).', '.strlen($reg[2]).') >= '.$yearcomp;
|
$sqlwhere.='( (SUBSTRING('.$field.', '.(strlen($reg[1])+1).', '.strlen($reg[2]).') >= '.$yearcomp;
|
||||||
if ($monthcomp > 1) // Test useless if monthcomp = 1 (or 0 is same as 1)
|
if ($monthcomp > 1) // Test useless if monthcomp = 1 (or 0 is same as 1)
|
||||||
{
|
{
|
||||||
$sqlwhere.=' AND SUBSTRING('.$field.', '.(strlen($reg[1])+strlen($reg[2])+1).', '.strlen($reg[3]).') >= '.$monthcomp;
|
$sqlwhere.=' AND SUBSTRING('.$field.', '.(strlen($reg[1])+strlen($reg[2])+1).', '.strlen($reg[3]).') >= '.$monthcomp.')';
|
||||||
|
$sqlwhere.=' OR SUBSTRING('.$field.', '.(strlen($reg[1])+1).', '.strlen($reg[2]).') >= '.sprintf("%02d",($yearcomp+1)).' )';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sqlwhere.=') )';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//print "masktri=".$masktri." maskcounter=".$maskcounter." maskraz=".$maskraz." maskoffset=".$maskoffset."<br>\n";
|
//print "masktri=".$masktri." maskcounter=".$maskcounter." maskraz=".$maskraz." maskoffset=".$maskoffset."<br>\n";
|
||||||
@ -174,6 +181,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
|
|||||||
if ($where) $sql.=$where;
|
if ($where) $sql.=$where;
|
||||||
if ($sqlwhere) $sql.=' AND '.$sqlwhere;
|
if ($sqlwhere) $sql.=' AND '.$sqlwhere;
|
||||||
|
|
||||||
|
//print $sql;
|
||||||
dolibarr_syslog("functions2::get_next_value sql=".$sql, LOG_DEBUG);
|
dolibarr_syslog("functions2::get_next_value sql=".$sql, LOG_DEBUG);
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user