Go to the documentation of this file.
26 require_once DOL_DOCUMENT_ROOT.
'/core/modules/member/modules_member.class.php';
38 public $version =
'dolibarr';
45 public $prefix =
'MEM';
55 public $name =
'Advanced';
60 public $code_auto = 1;
70 return $langs->trans(
"AdvancedNumRefModelDesc", $this->prefix);
81 return $this->prefix.
"2301-0001";
93 global $conf, $langs, $db;
98 $posindice = strlen($this->prefix) + 6;
99 $sql =
"SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.
") AS SIGNED)) as max";
100 $sql .=
" FROM ".MAIN_DB_PREFIX.
"adherent";
101 $sql .=
" WHERE ref LIKE '".$db->escape($this->prefix).
"____-%'";
102 $sql .=
" AND entity = ".$conf->entity;
103 $resql = $db->query(
$sql);
105 $row = $db->fetch_row($resql);
107 $coyymm = substr($row[0], 0, 6);
111 if (!$coyymm || preg_match(
'/'.$this->prefix.
'[0-9][0-9][0-9][0-9]/i', $coyymm)) {
114 $langs->load(
"errors");
115 $this->error = $langs->trans(
'ErrorNumRefModel', $max);
133 $posindice = strlen($this->prefix) + 6;
134 $sql =
"SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.
") AS SIGNED)) as max";
135 $sql .=
" FROM ".MAIN_DB_PREFIX.
"adherent";
136 $sql .=
" WHERE ref LIKE '".$db->escape($this->prefix).
"____-%'";
137 $sql .=
" AND entity = ".$conf->entity;
139 $resql = $db->query(
$sql);
141 $obj = $db->fetch_object($resql);
143 $max = intval($obj->max);
148 dol_syslog(
"mod_member_advanced::getNextValue", LOG_DEBUG);
152 $date = empty($object->datec) ?
dol_now() : $object->datec;
156 if ($max >= (pow(10, 4) - 1)) {
159 $num = sprintf(
"%04s", $max + 1);
162 dol_syslog(
"mod_member_advanced::getNextValue return ".$this->prefix.$yymm.
"-".$num, LOG_INFO);
163 return $this->prefix.$yymm.
"-".$num;
Class to manage the numbering module Advanced for member references.
Classe mere des modeles de numerotation des references de members.
canBeActivated()
Checks if the numbers already in the database do not cause conflicts that would prevent this numberin...
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
getExample()
Return an example of numbering module values.
if(isModEnabled('facture') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->hasRight("commande", "lire") &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $sql
Social contributions to pay.
dol_now($mode='auto')
Return date for now.
info()
Return description of numbering module.
getNextValue($objsoc, $object)
Return next value.