28require_once DOL_DOCUMENT_ROOT.
'/core/modules/societe/modules_societe.class.php';
 
   39  public $name = 
'Aquarium';
 
   50  public $version = 
'dolibarr'; 
 
   52  public $prefixcustomeraccountancycode;
 
   54  public $prefixsupplieraccountancycode;
 
   56  public $position = 20;
 
   65    if (!isset(
$conf->global->COMPANY_AQUARIUM_MASK_CUSTOMER) || trim(
$conf->global->COMPANY_AQUARIUM_MASK_CUSTOMER) == 
'') {
 
   66      $conf->global->COMPANY_AQUARIUM_MASK_CUSTOMER = 
'411';
 
   68    if (!isset(
$conf->global->COMPANY_AQUARIUM_MASK_SUPPLIER) || trim(
$conf->global->COMPANY_AQUARIUM_MASK_SUPPLIER) == 
'') {
 
   69      $conf->global->COMPANY_AQUARIUM_MASK_SUPPLIER = 
'401';
 
   73      $this->prefixcustomeraccountancycode = 
'';
 
   74      $this->prefixsupplieraccountancycode = 
'';
 
   76      $this->prefixcustomeraccountancycode = 
getDolGlobalString(
'COMPANY_AQUARIUM_MASK_CUSTOMER');
 
   77      $this->prefixsupplieraccountancycode = 
getDolGlobalString(
'COMPANY_AQUARIUM_MASK_SUPPLIER');
 
 
   88  public function info($langs)
 
   92    $langs->load(
"companies");
 
   95    $texte = 
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
 
   96    $texte .= 
'<input type="hidden" name="token" value="'.newToken().
'">';
 
   97    $texte .= 
'<input type="hidden" name="page_y" value="">';
 
   98    $texte .= 
'<input type="hidden" name="action" value="setModuleOptions">';
 
   99    $texte .= 
'<input type="hidden" name="param1" value="COMPANY_AQUARIUM_MASK_SUPPLIER">';
 
  100    $texte .= 
'<input type="hidden" name="param2" value="COMPANY_AQUARIUM_MASK_CUSTOMER">';
 
  101    $texte .= 
'<table class="nobordernopadding" width="100%">';
 
  102    $s1 = $form->textwithpicto(
'<input type="text" class="flat" size="4" name="value1" value="' . 
getDolGlobalString(
'COMPANY_AQUARIUM_MASK_SUPPLIER').
'">', $tooltip, 1, 
'help', 
'valignmiddle', 0, 3, $this->
name);
 
  103    $s2 = $form->textwithpicto(
'<input type="text" class="flat" size="4" name="value2" value="' . 
getDolGlobalString(
'COMPANY_AQUARIUM_MASK_CUSTOMER').
'">', $tooltip, 1, 
'help', 
'valignmiddle', 0, 3, $this->
name);
 
  104    $texte .= 
'<tr><td>';
 
  106    $texte .= $langs->trans(
"ModuleCompanyCodeCustomer".$this->
name, 
'{s2}').
"<br>\n";
 
  107    $texte .= $langs->trans(
"ModuleCompanyCodeSupplier".$this->
name, 
'{s1}').
"<br>\n";
 
  108    $texte = str_replace(array(
'{s1}', 
'{s2}'), array($s1, $s2), $texte);
 
  111      $texte .= $langs->trans(
'RemoveSpecialChars').
' = '.
yn(1).
"<br>\n";
 
  115      $texte .= $langs->trans(
'COMPANY_AQUARIUM_CLEAN_REGEX').
' = ' . 
getDolGlobalString(
'COMPANY_AQUARIUM_CLEAN_REGEX').
"<br>\n";
 
  119      $texte .= $langs->trans(
'COMPANY_AQUARIUM_NO_PREFIX').
' = ' . 
getDolGlobalString(
'COMPANY_AQUARIUM_NO_PREFIX').
"<br>\n";
 
  122    $texte .= 
'<td class="right"><input type="submit" class="button button-edit reposition smallpaddingimp" name="modify" value="'.$langs->trans(
"Modify").
'"></td>';
 
  123    $texte .= 
'</tr></table>';
 
 
  137  public function getExample($langs = 
null, $objsoc = 
'', $type = -1)
 
  140    $s .= $this->prefixcustomeraccountancycode.
'CUSTCODE';
 
  142    $s .= $this->prefixsupplieraccountancycode.
'SUPPCODE';
 
 
  156  public function get_code($db, $societe, $type = 
'')
 
  164    dol_syslog(
"mod_codecompta_aquarium::get_code search code for type=".$type.
" company=".(!empty($societe->name) ? $societe->name : 
''));
 
  167    if ($type == 
'customer') {
 
  168      $codetouse = (!empty($societe->code_client) ? $societe->code_client : 
'CUSTCODE');
 
  169      $prefix = $this->prefixcustomeraccountancycode;
 
  170    } elseif ($type == 
'supplier') {
 
  171      $codetouse = (!empty($societe->code_fournisseur) ? $societe->code_fournisseur : 
'SUPPCODE');
 
  172      $prefix = $this->prefixsupplieraccountancycode;
 
  174      $this->error = 
'Bad value for parameter type';
 
  181    if (!isset(
$conf->global->COMPANY_AQUARIUM_REMOVE_SPECIAL) || 
getDolGlobalString(
'COMPANY_AQUARIUM_REMOVE_SPECIAL')) {
 
  182      $codetouse = preg_replace(
'/([^a-z0-9])/i', 
'', $codetouse);
 
  186      $codetouse = preg_replace(
'/([a-z])/i', 
'', $codetouse);
 
  190      $codetouse = preg_replace(
'/' . 
getDolGlobalString(
'COMPANY_AQUARIUM_CLEAN_REGEX').
'/', 
'\1\2\3', $codetouse);
 
  193    $codetouse = $prefix.strtoupper($codetouse);
 
  195    $is_dispo = $this->
verif($db, $codetouse, $societe, $type);
 
  196    $this->code = $codetouse;
 
  197    dol_syslog(
"mod_codecompta_aquarium::get_code found code=".$this->code);
 
 
  211  public function verif($db, $code, $societe, $type)
 
  214    if ($type == 
'customer') {
 
  215      $sql .= 
"code_compta";
 
  216    } elseif ($type == 
'supplier') {
 
  217      $sql .= 
"code_compta_fournisseur";
 
  219    $sql .= 
" FROM ".MAIN_DB_PREFIX.
"societe";
 
  221    if ($type == 
'customer') {
 
  222      $sql .= 
"code_compta";
 
  223    } elseif ($type == 
'supplier') {
 
  224      $sql .= 
"code_compta_fournisseur";
 
  226    $sql .= 
" = '".$db->escape($code).
"'";
 
  227    if (!empty($societe->id)) {
 
  228      $sql .= 
" AND rowid <> ".$societe->id;
 
  231    $resql = $db->query($sql);
 
  233      if ($db->num_rows($resql) == 0) {
 
  234        dol_syslog(
"mod_codecompta_aquarium::verif code '".$code.
"' available");
 
  237        dol_syslog(
"mod_codecompta_aquarium::verif code '".$code.
"' not available");
 
  241      $this->error = $db->error().
" sql=".$sql;
 
 
 
Parent class for third parties accountancy code generators.
Class to manage accountancy code of thirdparties with Aquarium rules.
getExample($langs=null, $objsoc='', $type=-1)
Return an example of result returned by getNextValue.
info($langs)
Return description of module.
verif($db, $code, $societe, $type)
Return if a code is available.
get_code($db, $societe, $type='')
Set accountancy account code for a third party into this->code.
__construct()
Constructor.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
$conf db name
Only used if Module[ID]Name translation string is not found.