Fix: Amlioration de la gestion du code client et code fournisseur:
- Ajout aide sur le champ de saisi. - Uniformisation du code. - Ajout d'un module Lion pour controler que les codes sont numriques (sera utilis pour gnrer code compta)
This commit is contained in:
parent
141fd1e285
commit
b773ab0a9d
@ -320,7 +320,7 @@ class Conf
|
||||
|
||||
// societe
|
||||
if (! $this->global->SOCIETE_CODECLIENT_ADDON) $this->global->SOCIETE_CODECLIENT_ADDON="mod_codeclient_leopard";
|
||||
if (! $this->global->SOCIETE_CODEFOURNISSEUR_ADDON) $this->global->SOCIETE_CODEFOURNISSEUR_ADDON="mod_codeclient_leopard";
|
||||
if (! $this->global->SOCIETE_CODEFOURNISSEUR_ADDON) $this->global->SOCIETE_CODEFOURNISSEUR_ADDON=$this->global->SOCIETE_CODECLIENT_ADDON;
|
||||
if (! $this->global->SOCIETE_CODECOMPTA_ADDON) $this->global->SOCIETE_CODECOMPTA_ADDON="mod_codecompta_panicum";
|
||||
// Pour compatibilite ascendante:
|
||||
if ($this->global->CODECLIENT_ADDON) $this->global->SOCIETE_CODECLIENT_ADDON=$this->global->CODECLIENT_ADDON;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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
|
||||
@ -30,7 +30,6 @@
|
||||
|
||||
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
|
||||
|
||||
|
||||
/**
|
||||
\class mod_codeclient_leopard
|
||||
\brief Classe permettant la gestion leopard des codes tiers
|
||||
@ -38,39 +37,56 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
|
||||
|
||||
class mod_codeclient_leopard extends ModeleThirdPartyCode
|
||||
{
|
||||
/*
|
||||
* Attention ce module est utilisé par défaut si aucun module n'a
|
||||
* été définit dans la configuration
|
||||
*
|
||||
* Le fonctionnement de celui-ci doit dont rester le plus ouvert
|
||||
* possible
|
||||
*/
|
||||
|
||||
/*
|
||||
* Attention ce module est utilisé par défaut si aucun module n'a
|
||||
* été définit dans la configuration
|
||||
*
|
||||
* Le fonctionnement de celui-ci doit dont rester le plus ouvert
|
||||
* possible
|
||||
*/
|
||||
var $nom; // Nom du modele
|
||||
var $code_modifiable; // Code modifiable
|
||||
var $code_modifiable_invalide; // Code modifiable si il est invalide
|
||||
var $code_modifiable_null; // Code modifiables si il est null
|
||||
var $code_null; // Code facultatif
|
||||
|
||||
function mod_codeclient_leopard()
|
||||
{
|
||||
$this->nom = "Léopard";
|
||||
$this->code_modifiable = 1;
|
||||
|
||||
/** \brief Constructeur classe
|
||||
*/
|
||||
function mod_codeclient_leopard()
|
||||
{
|
||||
$this->nom = "Léopard";
|
||||
$this->code_modifiable = 1;
|
||||
$this->code_modifiable_invalide = 1;
|
||||
$this->code_modifiable_null = 1;
|
||||
$this->code_null = 1;
|
||||
}
|
||||
|
||||
$this->code_modifiable_invalide = 1; // code modifiable si il est invalide
|
||||
|
||||
/**
|
||||
* \brief Renvoie la description du module
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info($langs)
|
||||
{
|
||||
return "Renvoie toujours ok, pour ceux qui ne veulent pas faire de test.";
|
||||
}
|
||||
|
||||
$this->code_modifiable_null = 1; // code modifiable si il est null
|
||||
|
||||
/**
|
||||
* \brief Vérifie la validité du code
|
||||
* \param $db Handler acces base
|
||||
* \param $code Code a vérifier
|
||||
* \param $soc Objet societe
|
||||
*/
|
||||
function verif($db, $code, $soc)
|
||||
{
|
||||
$code = strtoupper(trim($code));
|
||||
|
||||
$this->code_null = 1;
|
||||
|
||||
|
||||
}
|
||||
|
||||
function info($langs)
|
||||
{
|
||||
return "Renvoie toujours ok, pour ceux qui ne veulent pas faire de test.";
|
||||
}
|
||||
|
||||
function verif($db, $code)
|
||||
{
|
||||
// Renvoie toujours ok
|
||||
return 0;
|
||||
}
|
||||
// Renvoie toujours ok
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
221
htdocs/includes/modules/societe/mod_codeclient_lion.php
Normal file
221
htdocs/includes/modules/societe/mod_codeclient_lion.php
Normal file
@ -0,0 +1,221 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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/societe/mod_codeclient_lion.class.php
|
||||
\ingroup societe
|
||||
\brief Fichier de la classe des gestion lion des codes clients
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
|
||||
|
||||
|
||||
/**
|
||||
\class mod_codeclient_lion
|
||||
\brief Classe permettant la gestion lion des codes tiers
|
||||
*/
|
||||
|
||||
class mod_codeclient_lion extends ModeleThirdPartyCode
|
||||
{
|
||||
var $nom; // Nom du modele
|
||||
var $code_modifiable; // Code modifiable
|
||||
var $code_modifiable_invalide; // Code modifiable si il est invalide
|
||||
var $code_modifiable_null; // Code modifiables si il est null
|
||||
var $code_null; // Code facultatif
|
||||
|
||||
|
||||
/** \brief Constructeur classe
|
||||
*/
|
||||
function mod_codeclient_lion()
|
||||
{
|
||||
$this->nom = "Lion";
|
||||
$this->code_modifiable = 0;
|
||||
$this->code_modifiable_invalide = 0;
|
||||
$this->code_modifiable_null = 1;
|
||||
$this->code_null = 0;
|
||||
}
|
||||
|
||||
|
||||
/** \brief Renvoi la description du module
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info($langs)
|
||||
{
|
||||
return "Vérifie si le code client est de la forme numérique 999 et sur au moins 3 chiffres.";
|
||||
}
|
||||
|
||||
|
||||
/** \brief Renvoi la description du module
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function getExample($langs)
|
||||
{
|
||||
return "001";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Vérifie la validité du code
|
||||
* \param $db Handler acces base
|
||||
* \param $code Code a vérifier/corriger
|
||||
* \param $soc Objet societe
|
||||
* \return int <0 si ko
|
||||
*/
|
||||
function verif($db, &$code, $soc)
|
||||
{
|
||||
$code = strtoupper(trim($code));
|
||||
|
||||
if ($this->verif_syntax($code) == 0)
|
||||
{
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
if ($is_dispo <> 0)
|
||||
{
|
||||
return -3;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (strlen($code) == 0)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Renvoi une valeur correcte
|
||||
* \param $db Handler acces base
|
||||
* \param $code Code reference eventuel
|
||||
* \return string Code correct
|
||||
*/
|
||||
function get_correct($db,$code)
|
||||
{
|
||||
$return='001';
|
||||
|
||||
$sql = "SELECT MAX(code_client) as maxval FROM ".MAIN_DB_PREFIX."societe";
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$obj=$db->fetch_object($resql);
|
||||
if ($obj)
|
||||
{
|
||||
$newval=$obj->maxval+1;
|
||||
$return=sprintf('%03d',$newval);
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Renvoi si un code est pris ou non
|
||||
* \param $db Handler acces base
|
||||
* \param $code Code a verifier
|
||||
* \return int 0 si dispo, <0 si erreur
|
||||
*/
|
||||
function verif_dispo($db, $code)
|
||||
{
|
||||
$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
|
||||
$sql .= " WHERE code_client = '".$code."'";
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($db->num_rows() == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Renvoi si un code respecte la syntaxe
|
||||
* \return int 0 si dispo, <0 si erreur
|
||||
*/
|
||||
function verif_syntax($code)
|
||||
{
|
||||
$res = 0;
|
||||
|
||||
if (strlen($code) < 3)
|
||||
{
|
||||
$res = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (eregi('[0-9][0-9][0-9]+',$code))
|
||||
{
|
||||
$res = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = -2;
|
||||
}
|
||||
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renvoi 0 si numerique, sinon renvoi nb de car non numerique
|
||||
*/
|
||||
function is_num($str)
|
||||
{
|
||||
$ok = 0;
|
||||
|
||||
$alpha = '0123456789';
|
||||
|
||||
for ($i = 0 ; $i < length($str) ; $i++)
|
||||
{
|
||||
if (strpos($alpha, substr($str,$i, 1)) === false)
|
||||
{
|
||||
$ok++;
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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
|
||||
@ -35,193 +35,223 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
|
||||
\class mod_codeclient_zebre
|
||||
\brief Classe permettant la gestion zebre des codes tiers
|
||||
*/
|
||||
|
||||
class mod_codeclient_zebre extends ModeleThirdPartyCode
|
||||
{
|
||||
var $nom; // Nom du modele
|
||||
var $code_modifiable; // Code modifiable
|
||||
var $code_modifiable_invalide; // Code modifiable si il est invalide
|
||||
var $code_modifiable_null; // Code modifiables si il est null
|
||||
var $code_null; // Code facultatif
|
||||
|
||||
function mod_codeclient_zebre()
|
||||
{
|
||||
$this->nom = "Zèbre";
|
||||
|
||||
$this->code_modifiable = 0; // code modifiable
|
||||
|
||||
$this->code_modifiable_invalide = 0; // code modifiable si il est invalide
|
||||
|
||||
$this->code_modifiable_null = 1; // code modifiable si il est null
|
||||
|
||||
$this->code_null = 0; // Saisi vide interdite
|
||||
|
||||
}
|
||||
/*! \brief Renvoi la description du module
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info($langs)
|
||||
{
|
||||
return "Vérifie si le code client est de la forme ABCD5600. Les quatres premières lettres étant une représentation mnémotechnique, suivi du code postal en 2 chiffres et un numéro d'ordre pour la prise en compte des doublons.";
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie la validité du code
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
function verif($db, &$code, $socid=0)
|
||||
{
|
||||
$code = strtoupper(trim($code));
|
||||
|
||||
if ($this->verif_syntax($code) == 0)
|
||||
{
|
||||
$i = 1;
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code, $socid);
|
||||
|
||||
while ( $is_dispo <> 0 && $i < 99)
|
||||
{
|
||||
$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
||||
$code = substr($code,0,6) . substr("00".$i, -2);
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($is_dispo <> 0)
|
||||
{
|
||||
return -3;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (strlen(trim($code)) == 0)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function get_correct($db, &$code)
|
||||
{
|
||||
$code = strtoupper(trim($code));
|
||||
|
||||
if ($this->verif_syntax($code) == 0)
|
||||
{
|
||||
$i = 1;
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
|
||||
while ( $is_dispo <> 0 && $i < 99)
|
||||
{
|
||||
$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
||||
$code = substr($code,0,6) . substr("00".$i, -2);
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
return $is_dispo;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function verif_dispo($db, $code)
|
||||
{
|
||||
$code = strtoupper(trim($code));
|
||||
|
||||
$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
|
||||
$sql .= " WHERE code_client = '".$code."'";
|
||||
|
||||
if ($db->query($sql))
|
||||
{
|
||||
if ($db->num_rows() == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function verif_syntax(&$code)
|
||||
{
|
||||
$res = 0;
|
||||
|
||||
$code = strtoupper(trim($code));
|
||||
|
||||
if (strlen($code) <> 8)
|
||||
{
|
||||
$res = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->is_alpha(substr($code,0,4)) == 0 && $this->is_num(substr($code,4,4)) == 0 )
|
||||
{
|
||||
$res = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = -2;
|
||||
}
|
||||
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
function is_alpha($str)
|
||||
{
|
||||
$ok = 0;
|
||||
// Je n'ai pas trouvé de fonction pour tester une chaine alpha sans les caractère accentués
|
||||
// dommage
|
||||
$alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
|
||||
for ($i = 0 ; $i < 4 ; $i++)
|
||||
{
|
||||
if (strpos($alpha, substr($str,$i, 1)) === false)
|
||||
/** \brief Constructeur classe
|
||||
*/
|
||||
function mod_codeclient_zebre()
|
||||
{
|
||||
$ok++;
|
||||
$this->nom = "Zèbre";
|
||||
$this->code_modifiable = 0;
|
||||
$this->code_modifiable_invalide = 0;
|
||||
$this->code_modifiable_null = 1;
|
||||
$this->code_null = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
function is_num($str)
|
||||
{
|
||||
$ok = 0;
|
||||
|
||||
$alpha = '0123456789';
|
||||
|
||||
for ($i = 0 ; $i < 4 ; $i++)
|
||||
{
|
||||
if (strpos($alpha, substr($str,$i, 1)) === false)
|
||||
|
||||
/**
|
||||
* \brief Renvoie la description du module
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info($langs)
|
||||
{
|
||||
$ok++;
|
||||
return "Vérifie si le code client est de la forme CCCC9999. Les quatres premières lettres étant une représentation mnémotechnique, suivi du code postal en 2 chiffres et un numéro d'ordre pour la prise en compte des doublons.";
|
||||
}
|
||||
|
||||
|
||||
/** \brief Renvoi la description du module
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function getExample($langs)
|
||||
{
|
||||
return "ABCD7501";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Vérifie la validité du code
|
||||
* \param $db Handler acces base
|
||||
* \param $code Code a vérifier/corriger
|
||||
* \param $soc Objet societe
|
||||
*/
|
||||
function verif($db, &$code, $soc)
|
||||
{
|
||||
$code = strtoupper(trim($code));
|
||||
|
||||
if ($this->verif_syntax($code) == 0)
|
||||
{
|
||||
$i = 1;
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
|
||||
while ($is_dispo <> 0 && $i < 99)
|
||||
{
|
||||
$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
||||
$code = substr($code,0,6) . substr("00".$i, -2);
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($is_dispo <> 0)
|
||||
{
|
||||
return -3;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (strlen(trim($code)) == 0)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Renvoi une valeur correcte
|
||||
* \param $db Handler acces base
|
||||
* \param $code Code reference eventuel
|
||||
* \return string Code correcte
|
||||
*/
|
||||
function get_correct($db, $code)
|
||||
{
|
||||
if ($this->verif_syntax($code) == 0)
|
||||
{
|
||||
$i = 1;
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
|
||||
while ( $is_dispo <> 0 && $i < 99)
|
||||
{
|
||||
$arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
||||
$code = substr($code,0,6) . substr("00".$i, -2);
|
||||
|
||||
$is_dispo = $this->verif_dispo($db, $code);
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
return $is_dispo;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Renvoi si un code est pris ou non
|
||||
* \param $db Handler acces base
|
||||
* \param $code Code a verifier
|
||||
* \return int 0 si dispo, <0 si erreur
|
||||
*/
|
||||
function verif_dispo($db, $code)
|
||||
{
|
||||
$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
|
||||
$sql .= " WHERE code_client = '".$code."'";
|
||||
|
||||
if ($db->query($sql))
|
||||
{
|
||||
if ($db->num_rows() == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (strlen($code) == 0)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function verif_syntax(&$code)
|
||||
{
|
||||
$res = 0;
|
||||
|
||||
if (strlen($code) <> 8)
|
||||
{
|
||||
$res = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->is_alpha(substr($code,0,4)) == 0 && $this->is_num(substr($code,4,4)) == 0 )
|
||||
{
|
||||
$res = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = -2;
|
||||
}
|
||||
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
function is_alpha($str)
|
||||
{
|
||||
$ok = 0;
|
||||
// Je n'ai pas trouvé de fonction pour tester une chaine alpha sans les caractère accentués
|
||||
// dommage
|
||||
$alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
|
||||
for ($i = 0 ; $i < 4 ; $i++)
|
||||
{
|
||||
if (strpos($alpha, substr($str,$i, 1)) === false)
|
||||
{
|
||||
$ok++;
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
|
||||
function is_num($str)
|
||||
{
|
||||
$ok = 0;
|
||||
|
||||
$alpha = '0123456789';
|
||||
|
||||
for ($i = 0 ; $i < 4 ; $i++)
|
||||
{
|
||||
if (strpos($alpha, substr($str,$i, 1)) === false)
|
||||
{
|
||||
$ok++;
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -49,6 +49,15 @@ class ModeleThirdPartyCode
|
||||
return $langs->trans("NoDescription");
|
||||
}
|
||||
|
||||
/** \brief Renvoi nom module
|
||||
* \return string Nom du module
|
||||
*/
|
||||
function getNom($langs)
|
||||
{
|
||||
return $this->nom;
|
||||
}
|
||||
|
||||
|
||||
/** \brief Renvoi un exemple de numérotation
|
||||
* \return string Example
|
||||
*/
|
||||
|
||||
@ -114,6 +114,11 @@ CustomerCode=Customer code
|
||||
SupplierCode=Supplier code
|
||||
CustomerAccount=Customer account
|
||||
SupplierAccount=Supplier account
|
||||
CustomerCodeDesc=Customer code, unique for all customers
|
||||
SupplierCodeDesc=Supplier code, unique for all suppliers
|
||||
RequiredIfCustomer=Required if third party is a customer or prospect
|
||||
RequiredIfSupplier=Required if third party is a supplier
|
||||
ValidityControledByModule=Validity controled by module
|
||||
LastProspect=Last
|
||||
ProspectToContact=Prospect to contact
|
||||
CompanyDeleted=Company "%s" deleted from database.
|
||||
|
||||
@ -114,6 +114,11 @@ CustomerCode=Code client
|
||||
SupplierCode=Code fournisseur
|
||||
CustomerAccount=Compte client
|
||||
SupplierAccount=Compte fournisseur
|
||||
CustomerCodeDesc=Code client unique pour chaque client
|
||||
SupplierCodeDesc=Code fournisseur unique pour chaque fournisseur
|
||||
RequiredIfCustomer=Requis si tiers est un client ou prospect
|
||||
RequiredIfSupplier=Requis si tiers est un fournisseur
|
||||
ValidityControledByModule=Validité controlée par le module
|
||||
LastProspect=Dernier prospect
|
||||
ProspectToContact=Prospect à contacter
|
||||
CompanyDeleted=La société "%s" a été supprimée de la base.
|
||||
|
||||
@ -93,3 +93,11 @@ BlankSubscriptionForm=Formulaire inscription
|
||||
MemberPublicLinks=Liens/pages publiques
|
||||
ExportDataset_member_1=Adhérentes et attributs
|
||||
LastMembers=Les %s derniers adhérents
|
||||
AttributeName=Nom de l'attribut
|
||||
FieldEdition=Édition du champ %s
|
||||
AlphaNumOnlyCharsAndNoSpace=uniquement caratères alphanumeriques sans espace
|
||||
String=Chaîne
|
||||
Text=Texte long
|
||||
Int=Numérique
|
||||
Date=Date
|
||||
DateAndTime=Date et heure
|
||||
|
||||
299
htdocs/soc.php
299
htdocs/soc.php
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2003 Brian Fraval <brian@fraval.org>
|
||||
* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
|
||||
* Copyright (C) 2005-2006 Regis Houssin <regis.houssin@cap-networks.com>
|
||||
*
|
||||
@ -74,6 +74,7 @@ if (!$user->rights->commercial->client->voir && $socid && !$user->societe_id > 0
|
||||
// Initialisation de l'objet Societe
|
||||
$soc = new Societe($db);
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
@ -93,91 +94,94 @@ if ($_POST["getsuppliercode"])
|
||||
if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
|
||||
&& ($_POST["action"] == 'add' || $_POST["action"] == 'update') && $user->rights->societe->creer)
|
||||
{
|
||||
$soc->nom = $_POST["nom"];
|
||||
$soc->adresse = $_POST["adresse"];
|
||||
$soc->cp = $_POST["cp"];
|
||||
$soc->ville = $_POST["ville"];
|
||||
$soc->pays_id = $_POST["pays_id"];
|
||||
$soc->departement_id = $_POST["departement_id"];
|
||||
$soc->tel = $_POST["tel"];
|
||||
$soc->fax = $_POST["fax"];
|
||||
$soc->email = $_POST["email"];
|
||||
$soc->url = $_POST["url"];
|
||||
$soc->siren = $_POST["siren"];
|
||||
$soc->siret = $_POST["siret"];
|
||||
$soc->ape = $_POST["ape"];
|
||||
$soc->prefix_comm = $_POST["prefix_comm"];
|
||||
$soc->code_client = $_POST["code_client"];
|
||||
$soc->code_fournisseur = $_POST["code_fournisseur"];
|
||||
$soc->codeclient_modifiable = $_POST["codeclient_modifiable"];
|
||||
$soc->codefournisseur_modifiable = $_POST["codefournisseur_modifiable"];
|
||||
$soc->capital = $_POST["capital"];
|
||||
|
||||
$soc->tva_assuj = $_POST["assujtva_value"];
|
||||
$soc->tva_intra_code = $_POST["tva_intra_code"];
|
||||
$soc->tva_intra_num = $_POST["tva_intra_num"];
|
||||
$soc->tva_intra = $_POST["tva_intra_code"] . $_POST["tva_intra_num"];
|
||||
|
||||
$soc->forme_juridique_code = $_POST["forme_juridique_code"];
|
||||
$soc->effectif_id = $_POST["effectif_id"];
|
||||
$soc->typent_id = $_POST["typent_id"];
|
||||
$soc->client = $_POST["client"];
|
||||
$soc->fournisseur = $_POST["fournisseur"];
|
||||
$soc->fournisseur_categorie = $_POST["fournisseur_categorie"];
|
||||
|
||||
if ($_POST["action"] == 'add')
|
||||
{
|
||||
$result = $soc->create($user);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
if ( $soc->client == 1 )
|
||||
{
|
||||
Header("Location: comm/fiche.php?socid=".$soc->id);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( $soc->fournisseur == 1 )
|
||||
{
|
||||
Header("Location: fourn/fiche.php?socid=".$soc->id);
|
||||
}
|
||||
else
|
||||
{
|
||||
Header("Location: soc.php?socid=".$soc->id);
|
||||
}
|
||||
}
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg=$soc->error;
|
||||
$_GET["action"]='create';
|
||||
}
|
||||
}
|
||||
|
||||
if ($_POST["action"] == 'update')
|
||||
{
|
||||
if ($_POST["cancel"])
|
||||
{
|
||||
Header("Location: soc.php?socid=".$socid);
|
||||
exit;
|
||||
}
|
||||
|
||||
$result = $soc->update($socid,$user);
|
||||
if ($result >= 0)
|
||||
{
|
||||
Header("Location: soc.php?socid=".$socid);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
$soc->nom = $_POST["nom"];
|
||||
$soc->adresse = $_POST["adresse"];
|
||||
$soc->cp = $_POST["cp"];
|
||||
$soc->ville = $_POST["ville"];
|
||||
$soc->pays_id = $_POST["pays_id"];
|
||||
$soc->departement_id = $_POST["departement_id"];
|
||||
$soc->tel = $_POST["tel"];
|
||||
$soc->fax = $_POST["fax"];
|
||||
$soc->email = $_POST["email"];
|
||||
$soc->url = $_POST["url"];
|
||||
$soc->siren = $_POST["siren"];
|
||||
$soc->siret = $_POST["siret"];
|
||||
$soc->ape = $_POST["ape"];
|
||||
$soc->prefix_comm = $_POST["prefix_comm"];
|
||||
$soc->code_client = $_POST["code_client"];
|
||||
$soc->code_fournisseur = $_POST["code_fournisseur"];
|
||||
$soc->codeclient_modifiable = $_POST["codeclient_modifiable"];
|
||||
$soc->codefournisseur_modifiable = $_POST["codefournisseur_modifiable"];
|
||||
$soc->capital = $_POST["capital"];
|
||||
|
||||
$soc->tva_assuj = $_POST["assujtva_value"];
|
||||
$soc->tva_intra_code = $_POST["tva_intra_code"];
|
||||
$soc->tva_intra_num = $_POST["tva_intra_num"];
|
||||
$soc->tva_intra = $_POST["tva_intra_code"] . $_POST["tva_intra_num"];
|
||||
|
||||
$soc->forme_juridique_code = $_POST["forme_juridique_code"];
|
||||
$soc->effectif_id = $_POST["effectif_id"];
|
||||
$soc->typent_id = $_POST["typent_id"];
|
||||
$soc->client = $_POST["client"];
|
||||
$soc->fournisseur = $_POST["fournisseur"];
|
||||
$soc->fournisseur_categorie = $_POST["fournisseur_categorie"];
|
||||
|
||||
if ($_POST["action"] == 'add')
|
||||
{
|
||||
$soc->id = $socid;
|
||||
$reload = 0;
|
||||
$mesg = $soc->error;
|
||||
$_GET["action"]= "edit";
|
||||
}
|
||||
}
|
||||
|
||||
$result = $soc->create($user);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
if ( $soc->client == 1 )
|
||||
{
|
||||
Header("Location: comm/fiche.php?socid=".$soc->id);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( $soc->fournisseur == 1 )
|
||||
{
|
||||
Header("Location: fourn/fiche.php?socid=".$soc->id);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
Header("Location: soc.php?socid=".$soc->id);
|
||||
return;
|
||||
}
|
||||
}
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg=$soc->error;
|
||||
$_GET["action"]='create';
|
||||
}
|
||||
}
|
||||
|
||||
if ($_POST["action"] == 'update')
|
||||
{
|
||||
if ($_POST["cancel"])
|
||||
{
|
||||
Header("Location: soc.php?socid=".$socid);
|
||||
exit;
|
||||
}
|
||||
|
||||
$result = $soc->update($socid,$user);
|
||||
if ($result >= 0)
|
||||
{
|
||||
Header("Location: soc.php?socid=".$socid);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$soc->id = $socid;
|
||||
$reload = 0;
|
||||
$mesg = $soc->error;
|
||||
$_GET["action"]= "edit";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes' && $user->rights->societe->supprimer)
|
||||
@ -214,13 +218,32 @@ $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("Se
|
||||
if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
||||
$_GET["action"] == 'create' || $_POST["action"] == 'create')
|
||||
{
|
||||
/*
|
||||
* Fiche en mode creation
|
||||
*/
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
/*
|
||||
// Charge objet modCodeTiers
|
||||
$module=$conf->global->SOCIETE_CODECLIENT_ADDON;
|
||||
if (! $module) dolibarr_error('',$langs->trans("ErrorModuleThirdPartyCodeInCompanyModuleNotDefined"));
|
||||
if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php')
|
||||
{
|
||||
$module = substr($module, 0, strlen($module)-4);
|
||||
}
|
||||
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php");
|
||||
$modCodeClient = new $module;
|
||||
$module=$conf->global->SOCIETE_CODEFOURNISSEUR_ADDON;
|
||||
if (! $module) $module=$conf->global->SOCIETE_CODECLIENT_ADDON;
|
||||
if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php')
|
||||
{
|
||||
$module = substr($module, 0, strlen($module)-4);
|
||||
}
|
||||
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php");
|
||||
$modCodeFournisseur = new $module;
|
||||
|
||||
/*
|
||||
* Fiche societe en mode création
|
||||
*/
|
||||
$soc->fournisseur=0;
|
||||
$soc->fournisseur_categorie = 0;
|
||||
if ($_GET["type"]=='f') { $soc->fournisseur=1; }
|
||||
if ($_GET["type"]=='c') { $soc->client=1; }
|
||||
if ($_GET["type"]=='p') { $soc->client=2; }
|
||||
@ -247,7 +270,7 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
||||
$soc->typent_id=$_POST["typent_id"];
|
||||
$soc->effectif_id=$_POST["effectif_id"];
|
||||
|
||||
$soc->tva_assuj = $_POST["assujtva_value"];
|
||||
$soc->tva_assuj = $_POST["assujtva_value"];
|
||||
$soc->tva_intra_code=$_POST["tva_intra_code"];
|
||||
$soc->tva_intra_num=$_POST["tva_intra_num"];
|
||||
}
|
||||
@ -297,11 +320,18 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
||||
print '<option value="1"'.($soc->client==1?' selected="true"':'').'>'.$langs->trans('Customer').'</option>';
|
||||
print '<option value="0"'.($soc->client==0?' selected="true"':'').'>Ni client, ni prospect</option>';
|
||||
print '</select></td>';
|
||||
|
||||
print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
|
||||
print '<table class="noborder"><tr><td>';
|
||||
print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15"></td><td>';
|
||||
//print '<input type="image" name="getcustomercode" value="1" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/refresh.png" class="noborder">';
|
||||
print '<table class="nobordernopadding"><tr><td>';
|
||||
print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15">';
|
||||
print '</td><td>';
|
||||
$s=$langs->trans("CustomerCodeDesc").'<br>';
|
||||
$s.=$langs->trans("ValidityControledByModule").': <b>'.$modCodeClient->getNom($langs).'</b><br>';
|
||||
$s.=$langs->trans("RequiredIfCustomer").': <b>'.yn(!$modCodeClient->code_null).'</b><br>';
|
||||
$s.=$langs->trans("Example").': <b>'.$modCodeClient->getExample($langs).'</b>';
|
||||
print $form->textwithhelp('',$s,1);
|
||||
print '</td></tr></table>';
|
||||
|
||||
print '</td></tr>';
|
||||
|
||||
// Fournisseur
|
||||
@ -310,27 +340,33 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
||||
$form->selectyesnonum("fournisseur",$soc->fournisseur);
|
||||
print '</td>';
|
||||
print '<td>'.$langs->trans('SupplierCode').'</td><td>';
|
||||
//print '<table class="noborder"><tr><td>';
|
||||
|
||||
print '<table class="nobordernopadding"><tr><td>';
|
||||
print '<input type="text" name="code_fournisseur" size="16" value="'.$soc->code_fournisseur.'" maxlength="15">';
|
||||
//print '</td><td>';
|
||||
//print '<input type="image" name="getsuppliercode" value="1" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/refresh.png" class="noborder">';
|
||||
//print '</td></tr></table>';
|
||||
print '</td><td>';
|
||||
$s=$langs->trans("SupplierCodeDesc").'<br>';
|
||||
$s.=$langs->trans("ValidityControledByModule").': <b>'.$modCodeFournisseur->getNom($langs).'</b><br>';
|
||||
$s.=$langs->trans("RequiredIfSupplier").': <b>'.yn(!$modCodeFournisseur->code_null).'</b><br>';
|
||||
$s.=$langs->trans("Example").': <b>'.$modCodeFournisseur->getExample($langs).'</b>';
|
||||
print $form->textwithhelp('',$s,1);
|
||||
print '</td></tr></table>';
|
||||
|
||||
print '</td></tr>';
|
||||
|
||||
if ($soc->fournisseur)
|
||||
{
|
||||
$load = $soc->LoadSupplierCateg();
|
||||
if ( $load == 0)
|
||||
{
|
||||
if (sizeof($soc->SupplierCategories) > 0)
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('SupplierCategory').'</td><td colspan="3">';
|
||||
$form->select_array("fournisseur_categorie",$soc->SupplierCategories);
|
||||
print '</td></tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($soc->fournisseur)
|
||||
{
|
||||
$load = $soc->LoadSupplierCateg();
|
||||
if ( $load == 0)
|
||||
{
|
||||
if (sizeof($soc->SupplierCategories) > 0)
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('SupplierCategory').'</td><td colspan="3">';
|
||||
$form->select_array("fournisseur_categorie",$soc->SupplierCategories);
|
||||
print '</td></tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print '<tr><td>'.$langs->trans('Address').'</td><td colspan="3"><textarea name="adresse" cols="40" rows="3" wrap="soft">';
|
||||
print $soc->adresse;
|
||||
@ -474,12 +510,29 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
|
||||
/*
|
||||
* Fiche societe en mode edition
|
||||
*/
|
||||
|
||||
print_titre($langs->trans("EditCompany"));
|
||||
|
||||
if ($socid)
|
||||
{
|
||||
if ($reload || ! $_POST["nom"])
|
||||
// Charge objet modCodeTiers
|
||||
$module=$conf->global->SOCIETE_CODECLIENT_ADDON;
|
||||
if (! $module) dolibarr_error('',$langs->trans("ErrorModuleThirdPartyCodeInCompanyModuleNotDefined"));
|
||||
if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php')
|
||||
{
|
||||
$module = substr($module, 0, strlen($module)-4);
|
||||
}
|
||||
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php");
|
||||
$modCodeClient = new $module;
|
||||
$module=$conf->global->SOCIETE_CODEFOURNISSEUR_ADDON;
|
||||
if (! $module) $module=$conf->global->SOCIETE_CODECLIENT_ADDON;
|
||||
if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php')
|
||||
{
|
||||
$module = substr($module, 0, strlen($module)-4);
|
||||
}
|
||||
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php");
|
||||
$modCodeFournisseur = new $module;
|
||||
|
||||
if ($reload || ! $_POST["nom"])
|
||||
{
|
||||
$soc = new Societe($db);
|
||||
$soc->id = $socid;
|
||||
@ -560,6 +613,8 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
|
||||
print '<option value="0"'.($soc->client==0?' selected="true"':'').'>Ni client, ni prospect</option>';
|
||||
print '</select></td>';
|
||||
print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
|
||||
|
||||
print '<table class="nobordernopadding"><tr><td>';
|
||||
if ($soc->codeclient_modifiable == 1)
|
||||
{
|
||||
print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15">';
|
||||
@ -567,7 +622,16 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
|
||||
else
|
||||
{
|
||||
print $soc->code_client;
|
||||
print '<input type="hidden" name="code_client" value="'.$soc->code_client.'">';
|
||||
}
|
||||
print '</td><td>';
|
||||
$s=$langs->trans("CustomerCodeDesc").'<br>';
|
||||
$s.=$langs->trans("ValidityControledByModule").': <b>'.$modCodeClient->getNom($langs).'</b><br>';
|
||||
$s.=$langs->trans("RequiredIfCustomer").': <b>'.yn(!$modCodeClient->code_null).'</b><br>';
|
||||
$s.=$langs->trans("Example").': <b>'.$modCodeClient->getExample($langs).'</b>';
|
||||
print $form->textwithhelp('',$s,1);
|
||||
print '</td></tr></table>';
|
||||
|
||||
print '</td></tr>';
|
||||
|
||||
// Fournisseur
|
||||
@ -576,6 +640,8 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
|
||||
$form->selectyesnonum("fournisseur",$soc->fournisseur);
|
||||
print '</td>';
|
||||
print '<td>'.$langs->trans('SupplierCode').'</td><td>';
|
||||
|
||||
print '<table class="nobordernopadding"><tr><td>';
|
||||
if ($soc->codefournisseur_modifiable == 1)
|
||||
{
|
||||
print '<input type="text" name="code_fournisseur" size="16" value="'.$soc->code_fournisseur.'" maxlength="15">';
|
||||
@ -583,7 +649,16 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
|
||||
else
|
||||
{
|
||||
print $soc->code_fournisseur;
|
||||
print '<input type="hidden" name="code_fournisseur" value="'.$soc->code_fournisseur.'">';
|
||||
}
|
||||
print '</td><td>';
|
||||
$s=$langs->trans("SupplierCodeDesc").'<br>';
|
||||
$s.=$langs->trans("ValidityControledByModule").': <b>'.$modCodeFournisseur->getNom($langs).'</b><br>';
|
||||
$s.=$langs->trans("RequiredIfSupplier").': <b>'.yn(!$modCodeFournisseur->code_null).'</b><br>';
|
||||
$s.=$langs->trans("Example").': <b>'.$modCodeFournisseur->getExample($langs).'</b>';
|
||||
print $form->textwithhelp('',$s,1);
|
||||
print '</td></tr></table>';
|
||||
|
||||
print '</td></tr>';
|
||||
|
||||
if ($soc->fournisseur)
|
||||
|
||||
@ -118,15 +118,8 @@ class Societe
|
||||
|
||||
// definit module code fournisseur
|
||||
$varfournisseur = $conf->global->SOCIETE_CODEFOURNISSEUR_ADDON;
|
||||
if ($varfournisseur == $varclient) // Optimisation
|
||||
{
|
||||
$this->mod_codefournisseur = $this->mod_codeclient;
|
||||
}
|
||||
else
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/includes/modules/societe/'.$varfournisseur.'.php';
|
||||
$this->mod_codefournisseur = new $varfournisseur;
|
||||
}
|
||||
require_once DOL_DOCUMENT_ROOT.'/includes/modules/societe/'.$varfournisseur.'.php';
|
||||
$this->mod_codefournisseur = new $varfournisseur;
|
||||
$this->codefournisseur_modifiable = $this->mod_codefournisseur->code_modifiable;
|
||||
|
||||
return 1;
|
||||
@ -145,7 +138,7 @@ class Societe
|
||||
// Nettoyage paramètres
|
||||
$this->nom=trim($this->nom);
|
||||
|
||||
dolibarr_syslog("societe.class.php::create ".$this->nom);
|
||||
dolibarr_syslog("Societe::create ".$this->nom);
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
@ -171,8 +164,8 @@ class Societe
|
||||
$this->add_commercial($user, $user->id);
|
||||
}
|
||||
|
||||
// si le fournisseur est classe on l'ajoute
|
||||
$this->AddFournisseurInCategory($this->fournisseur_categorie);
|
||||
// si le fournisseur est classe on l'ajoute
|
||||
$this->AddFournisseurInCategory($this->fournisseur_categorie);
|
||||
|
||||
if ($ret >= 0)
|
||||
{
|
||||
@ -236,7 +229,7 @@ class Societe
|
||||
{
|
||||
// On ne vérifie le code client que si la société est un client / prospect et que le code est modifiable
|
||||
// Si il n'est pas modifiable il n'est pas mis à jour lors de l'update
|
||||
$rescode = $this->verif_codeclient();
|
||||
$rescode = $this->check_codeclient();
|
||||
if ($rescode <> 0)
|
||||
{
|
||||
if ($rescode == -1)
|
||||
@ -254,6 +247,28 @@ class Societe
|
||||
$result = -3;
|
||||
}
|
||||
}
|
||||
if ($this->fournisseur && $this->codefournisseur_modifiable == 1)
|
||||
{
|
||||
// On ne vérifie le code fournisseur que si la société est un fournisseur et que le code est modifiable
|
||||
// Si il n'est pas modifiable il n'est pas mis à jour lors de l'update
|
||||
$rescode = $this->check_codefournisseur();
|
||||
if ($rescode <> 0)
|
||||
{
|
||||
if ($rescode == -1)
|
||||
{
|
||||
$this->error .= "La syntaxe du code fournisseur est incorrecte.\n";
|
||||
}
|
||||
if ($rescode == -2)
|
||||
{
|
||||
$this->error .= "Vous devez saisir un code fournisseur.\n";
|
||||
}
|
||||
if ($rescode == -3)
|
||||
{
|
||||
$this->error .= "Ce code fournisseur est déjà utilisé.\n";
|
||||
}
|
||||
$result = -3;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
@ -379,7 +394,7 @@ class Societe
|
||||
$sql .= " WHERE idp = '" . $id ."'";
|
||||
|
||||
|
||||
dolibarr_syslog("Societe.class::update sql=".$sql);
|
||||
dolibarr_syslog("Societe::update sql=".$sql);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -1409,7 +1424,7 @@ class Societe
|
||||
* \brief Verifie code client
|
||||
* \return Renvoie 0 si ok, peut modifier le code client suivant le module utilis
|
||||
*/
|
||||
function verif_codeclient()
|
||||
function check_codeclient()
|
||||
{
|
||||
global $conf;
|
||||
if ($conf->global->SOCIETE_CODECLIENT_ADDON)
|
||||
@ -1420,26 +1435,8 @@ class Societe
|
||||
|
||||
$mod = new $var;
|
||||
|
||||
return $mod->verif($this->db, $this->code_client, $this->id);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function check_codeclient()
|
||||
{
|
||||
if ($conf->global->SOCIETE_CODECLIENT_ADDON)
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/includes/modules/societe/'.$conf->global->SOCIETE_CODECLIENT_ADDON.'.php';
|
||||
|
||||
$var = $conf->global->SOCIETE_CODECLIENT_ADDON;
|
||||
|
||||
$mod = new $var;
|
||||
|
||||
return $mod->verif($this->db, $this->code_client);
|
||||
dolibarr_syslog("Societe::check_codeclient code_client=".$this->code_client." module=".$var);
|
||||
return $mod->verif($this->db, $this->code_client, $this);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1447,17 +1444,23 @@ class Societe
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Verifie code fournisseur
|
||||
* \return Renvoie 0 si ok, peut modifier le code client suivant le module utilis
|
||||
*/
|
||||
function check_codefournisseur()
|
||||
{
|
||||
if ($conf->global->CODEFOURNISSEUR_ADDON)
|
||||
global $conf;
|
||||
if ($conf->global->SOCIETE_CODEFOURNISSEUR_ADDON)
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/includes/modules/societe/'.$conf->global->CODEFOURNISSEUR_ADDON.'.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/includes/modules/societe/'.$conf->global->SOCIETE_CODEFOURNISSEUR_ADDON.'.php';
|
||||
|
||||
$var = $conf->global->CODEFOURNISSEUR_ADDON;
|
||||
$var = $conf->global->SOCIETE_CODEFOURNISSEUR_ADDON;
|
||||
|
||||
$mod = new $var;
|
||||
|
||||
return $mod->verif($this->db, $this->code_fournisseur);
|
||||
|
||||
dolibarr_syslog("Societe::check_codefournisseur code_fournisseur=".$this->code_fournisseur." module=".$var);
|
||||
return $mod->verif($this->db, $this->code_fournisseur, $this);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user