Fix: Amélioration 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 numériques (sera utilisé pour générer code compta)
This commit is contained in:
parent
141fd1e285
commit
b773ab0a9d
@ -320,7 +320,7 @@ class Conf
|
|||||||
|
|
||||||
// societe
|
// societe
|
||||||
if (! $this->global->SOCIETE_CODECLIENT_ADDON) $this->global->SOCIETE_CODECLIENT_ADDON="mod_codeclient_leopard";
|
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";
|
if (! $this->global->SOCIETE_CODECOMPTA_ADDON) $this->global->SOCIETE_CODECOMPTA_ADDON="mod_codecompta_panicum";
|
||||||
// Pour compatibilite ascendante:
|
// Pour compatibilite ascendante:
|
||||||
if ($this->global->CODECLIENT_ADDON) $this->global->SOCIETE_CODECLIENT_ADDON=$this->global->CODECLIENT_ADDON;
|
if ($this->global->CODECLIENT_ADDON) $this->global->SOCIETE_CODECLIENT_ADDON=$this->global->CODECLIENT_ADDON;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* 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");
|
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class mod_codeclient_leopard
|
\class mod_codeclient_leopard
|
||||||
\brief Classe permettant la gestion leopard des codes tiers
|
\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
|
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
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
var $nom; // Nom du modele
|
||||||
* Attention ce module est utilisé par défaut si aucun module n'a
|
var $code_modifiable; // Code modifiable
|
||||||
* été définit dans la configuration
|
var $code_modifiable_invalide; // Code modifiable si il est invalide
|
||||||
*
|
var $code_modifiable_null; // Code modifiables si il est null
|
||||||
* Le fonctionnement de celui-ci doit dont rester le plus ouvert
|
var $code_null; // Code facultatif
|
||||||
* possible
|
|
||||||
*/
|
|
||||||
|
|
||||||
function mod_codeclient_leopard()
|
|
||||||
{
|
|
||||||
$this->nom = "Léopard";
|
|
||||||
$this->code_modifiable = 1;
|
|
||||||
|
|
||||||
$this->code_modifiable_invalide = 1; // code modifiable si il est invalide
|
|
||||||
|
|
||||||
$this->code_modifiable_null = 1; // code modifiable si il est null
|
|
||||||
|
|
||||||
$this->code_null = 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;
|
||||||
|
}
|
||||||
|
|
||||||
function info($langs)
|
|
||||||
{
|
|
||||||
return "Renvoie toujours ok, pour ceux qui ne veulent pas faire de test.";
|
|
||||||
}
|
|
||||||
|
|
||||||
function verif($db, $code)
|
/**
|
||||||
{
|
* \brief Renvoie la description du module
|
||||||
// Renvoie toujours ok
|
* \return string Texte descripif
|
||||||
return 0;
|
*/
|
||||||
}
|
function info($langs)
|
||||||
|
{
|
||||||
|
return "Renvoie toujours ok, pour ceux qui ne veulent pas faire de test.";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \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));
|
||||||
|
|
||||||
|
// 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
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* 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
|
\class mod_codeclient_zebre
|
||||||
\brief Classe permettant la gestion zebre des codes tiers
|
\brief Classe permettant la gestion zebre des codes tiers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class mod_codeclient_zebre extends ModeleThirdPartyCode
|
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
|
/** \brief Constructeur classe
|
||||||
|
*/
|
||||||
$this->code_modifiable_invalide = 0; // code modifiable si il est invalide
|
function mod_codeclient_zebre()
|
||||||
|
|
||||||
$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;
|
$this->nom = "Zèbre";
|
||||||
|
$this->code_modifiable = 0;
|
||||||
$is_dispo = $this->verif_dispo($db, $code, $socid);
|
$this->code_modifiable_invalide = 0;
|
||||||
|
$this->code_modifiable_null = 1;
|
||||||
while ( $is_dispo <> 0 && $i < 99)
|
$this->code_null = 0;
|
||||||
{
|
|
||||||
$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)
|
/**
|
||||||
{
|
* \brief Renvoie la description du module
|
||||||
$code = strtoupper(trim($code));
|
* \return string Texte descripif
|
||||||
|
*/
|
||||||
$sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe";
|
function info($langs)
|
||||||
$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)
|
|
||||||
{
|
{
|
||||||
$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.";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
function is_num($str)
|
/** \brief Renvoi la description du module
|
||||||
{
|
* \return string Texte descripif
|
||||||
$ok = 0;
|
*/
|
||||||
|
function getExample($langs)
|
||||||
$alpha = '0123456789';
|
|
||||||
|
|
||||||
for ($i = 0 ; $i < 4 ; $i++)
|
|
||||||
{
|
|
||||||
if (strpos($alpha, substr($str,$i, 1)) === false)
|
|
||||||
{
|
{
|
||||||
$ok++;
|
return "ABCD7501";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $ok;
|
|
||||||
}
|
/**
|
||||||
|
* \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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,15 @@ class ModeleThirdPartyCode
|
|||||||
return $langs->trans("NoDescription");
|
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
|
/** \brief Renvoi un exemple de numérotation
|
||||||
* \return string Example
|
* \return string Example
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -114,6 +114,11 @@ CustomerCode=Customer code
|
|||||||
SupplierCode=Supplier code
|
SupplierCode=Supplier code
|
||||||
CustomerAccount=Customer account
|
CustomerAccount=Customer account
|
||||||
SupplierAccount=Supplier 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
|
LastProspect=Last
|
||||||
ProspectToContact=Prospect to contact
|
ProspectToContact=Prospect to contact
|
||||||
CompanyDeleted=Company "%s" deleted from database.
|
CompanyDeleted=Company "%s" deleted from database.
|
||||||
|
|||||||
@ -114,6 +114,11 @@ CustomerCode=Code client
|
|||||||
SupplierCode=Code fournisseur
|
SupplierCode=Code fournisseur
|
||||||
CustomerAccount=Compte client
|
CustomerAccount=Compte client
|
||||||
SupplierAccount=Compte fournisseur
|
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
|
LastProspect=Dernier prospect
|
||||||
ProspectToContact=Prospect à contacter
|
ProspectToContact=Prospect à contacter
|
||||||
CompanyDeleted=La société "%s" a été supprimée de la base.
|
CompanyDeleted=La société "%s" a été supprimée de la base.
|
||||||
|
|||||||
@ -93,3 +93,11 @@ BlankSubscriptionForm=Formulaire inscription
|
|||||||
MemberPublicLinks=Liens/pages publiques
|
MemberPublicLinks=Liens/pages publiques
|
||||||
ExportDataset_member_1=Adhérentes et attributs
|
ExportDataset_member_1=Adhérentes et attributs
|
||||||
LastMembers=Les %s derniers adhérents
|
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
|
||||||
|
|||||||
291
htdocs/soc.php
291
htdocs/soc.php
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2003 Brian Fraval <brian@fraval.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 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
* Copyright (C) 2005-2006 Regis Houssin <regis.houssin@cap-networks.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
|
// Initialisation de l'objet Societe
|
||||||
$soc = new Societe($db);
|
$soc = new Societe($db);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
@ -93,90 +94,93 @@ if ($_POST["getsuppliercode"])
|
|||||||
if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
|
if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
|
||||||
&& ($_POST["action"] == 'add' || $_POST["action"] == 'update') && $user->rights->societe->creer)
|
&& ($_POST["action"] == 'add' || $_POST["action"] == 'update') && $user->rights->societe->creer)
|
||||||
{
|
{
|
||||||
$soc->nom = $_POST["nom"];
|
$soc->nom = $_POST["nom"];
|
||||||
$soc->adresse = $_POST["adresse"];
|
$soc->adresse = $_POST["adresse"];
|
||||||
$soc->cp = $_POST["cp"];
|
$soc->cp = $_POST["cp"];
|
||||||
$soc->ville = $_POST["ville"];
|
$soc->ville = $_POST["ville"];
|
||||||
$soc->pays_id = $_POST["pays_id"];
|
$soc->pays_id = $_POST["pays_id"];
|
||||||
$soc->departement_id = $_POST["departement_id"];
|
$soc->departement_id = $_POST["departement_id"];
|
||||||
$soc->tel = $_POST["tel"];
|
$soc->tel = $_POST["tel"];
|
||||||
$soc->fax = $_POST["fax"];
|
$soc->fax = $_POST["fax"];
|
||||||
$soc->email = $_POST["email"];
|
$soc->email = $_POST["email"];
|
||||||
$soc->url = $_POST["url"];
|
$soc->url = $_POST["url"];
|
||||||
$soc->siren = $_POST["siren"];
|
$soc->siren = $_POST["siren"];
|
||||||
$soc->siret = $_POST["siret"];
|
$soc->siret = $_POST["siret"];
|
||||||
$soc->ape = $_POST["ape"];
|
$soc->ape = $_POST["ape"];
|
||||||
$soc->prefix_comm = $_POST["prefix_comm"];
|
$soc->prefix_comm = $_POST["prefix_comm"];
|
||||||
$soc->code_client = $_POST["code_client"];
|
$soc->code_client = $_POST["code_client"];
|
||||||
$soc->code_fournisseur = $_POST["code_fournisseur"];
|
$soc->code_fournisseur = $_POST["code_fournisseur"];
|
||||||
$soc->codeclient_modifiable = $_POST["codeclient_modifiable"];
|
$soc->codeclient_modifiable = $_POST["codeclient_modifiable"];
|
||||||
$soc->codefournisseur_modifiable = $_POST["codefournisseur_modifiable"];
|
$soc->codefournisseur_modifiable = $_POST["codefournisseur_modifiable"];
|
||||||
$soc->capital = $_POST["capital"];
|
$soc->capital = $_POST["capital"];
|
||||||
|
|
||||||
$soc->tva_assuj = $_POST["assujtva_value"];
|
$soc->tva_assuj = $_POST["assujtva_value"];
|
||||||
$soc->tva_intra_code = $_POST["tva_intra_code"];
|
$soc->tva_intra_code = $_POST["tva_intra_code"];
|
||||||
$soc->tva_intra_num = $_POST["tva_intra_num"];
|
$soc->tva_intra_num = $_POST["tva_intra_num"];
|
||||||
$soc->tva_intra = $_POST["tva_intra_code"] . $_POST["tva_intra_num"];
|
$soc->tva_intra = $_POST["tva_intra_code"] . $_POST["tva_intra_num"];
|
||||||
|
|
||||||
$soc->forme_juridique_code = $_POST["forme_juridique_code"];
|
$soc->forme_juridique_code = $_POST["forme_juridique_code"];
|
||||||
$soc->effectif_id = $_POST["effectif_id"];
|
$soc->effectif_id = $_POST["effectif_id"];
|
||||||
$soc->typent_id = $_POST["typent_id"];
|
$soc->typent_id = $_POST["typent_id"];
|
||||||
$soc->client = $_POST["client"];
|
$soc->client = $_POST["client"];
|
||||||
$soc->fournisseur = $_POST["fournisseur"];
|
$soc->fournisseur = $_POST["fournisseur"];
|
||||||
$soc->fournisseur_categorie = $_POST["fournisseur_categorie"];
|
$soc->fournisseur_categorie = $_POST["fournisseur_categorie"];
|
||||||
|
|
||||||
if ($_POST["action"] == 'add')
|
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->id = $socid;
|
$result = $soc->create($user);
|
||||||
$reload = 0;
|
|
||||||
$mesg = $soc->error;
|
if ($result >= 0)
|
||||||
$_GET["action"]= "edit";
|
{
|
||||||
}
|
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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,13 +218,32 @@ $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("Se
|
|||||||
if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
||||||
$_GET["action"] == 'create' || $_POST["action"] == 'create')
|
$_GET["action"] == 'create' || $_POST["action"] == 'create')
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* Fiche en mode creation
|
||||||
|
*/
|
||||||
if ($user->rights->societe->creer)
|
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
|
* Fiche societe en mode création
|
||||||
*/
|
*/
|
||||||
$soc->fournisseur=0;
|
|
||||||
$soc->fournisseur_categorie = 0;
|
|
||||||
if ($_GET["type"]=='f') { $soc->fournisseur=1; }
|
if ($_GET["type"]=='f') { $soc->fournisseur=1; }
|
||||||
if ($_GET["type"]=='c') { $soc->client=1; }
|
if ($_GET["type"]=='c') { $soc->client=1; }
|
||||||
if ($_GET["type"]=='p') { $soc->client=2; }
|
if ($_GET["type"]=='p') { $soc->client=2; }
|
||||||
@ -247,7 +270,7 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
|||||||
$soc->typent_id=$_POST["typent_id"];
|
$soc->typent_id=$_POST["typent_id"];
|
||||||
$soc->effectif_id=$_POST["effectif_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_code=$_POST["tva_intra_code"];
|
||||||
$soc->tva_intra_num=$_POST["tva_intra_num"];
|
$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="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 '<option value="0"'.($soc->client==0?' selected="true"':'').'>Ni client, ni prospect</option>';
|
||||||
print '</select></td>';
|
print '</select></td>';
|
||||||
|
|
||||||
print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
|
print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
|
||||||
print '<table class="noborder"><tr><td>';
|
print '<table class="nobordernopadding"><tr><td>';
|
||||||
print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15"></td><td>';
|
print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15">';
|
||||||
//print '<input type="image" name="getcustomercode" value="1" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/refresh.png" class="noborder">';
|
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></table>';
|
||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Fournisseur
|
// Fournisseur
|
||||||
@ -310,27 +340,33 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] ||
|
|||||||
$form->selectyesnonum("fournisseur",$soc->fournisseur);
|
$form->selectyesnonum("fournisseur",$soc->fournisseur);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td>'.$langs->trans('SupplierCode').'</td><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 '<input type="text" name="code_fournisseur" size="16" value="'.$soc->code_fournisseur.'" maxlength="15">';
|
||||||
//print '</td><td>';
|
print '</td><td>';
|
||||||
//print '<input type="image" name="getsuppliercode" value="1" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/refresh.png" class="noborder">';
|
$s=$langs->trans("SupplierCodeDesc").'<br>';
|
||||||
//print '</td></tr></table>';
|
$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>';
|
print '</td></tr>';
|
||||||
|
|
||||||
if ($soc->fournisseur)
|
if ($soc->fournisseur)
|
||||||
{
|
{
|
||||||
$load = $soc->LoadSupplierCateg();
|
$load = $soc->LoadSupplierCateg();
|
||||||
if ( $load == 0)
|
if ( $load == 0)
|
||||||
{
|
{
|
||||||
if (sizeof($soc->SupplierCategories) > 0)
|
if (sizeof($soc->SupplierCategories) > 0)
|
||||||
{
|
{
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans('SupplierCategory').'</td><td colspan="3">';
|
print '<td>'.$langs->trans('SupplierCategory').'</td><td colspan="3">';
|
||||||
$form->select_array("fournisseur_categorie",$soc->SupplierCategories);
|
$form->select_array("fournisseur_categorie",$soc->SupplierCategories);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans('Address').'</td><td colspan="3"><textarea name="adresse" cols="40" rows="3" wrap="soft">';
|
print '<tr><td>'.$langs->trans('Address').'</td><td colspan="3"><textarea name="adresse" cols="40" rows="3" wrap="soft">';
|
||||||
print $soc->adresse;
|
print $soc->adresse;
|
||||||
@ -474,12 +510,29 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
|
|||||||
/*
|
/*
|
||||||
* Fiche societe en mode edition
|
* Fiche societe en mode edition
|
||||||
*/
|
*/
|
||||||
|
|
||||||
print_titre($langs->trans("EditCompany"));
|
print_titre($langs->trans("EditCompany"));
|
||||||
|
|
||||||
if ($socid)
|
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 = new Societe($db);
|
||||||
$soc->id = $socid;
|
$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 '<option value="0"'.($soc->client==0?' selected="true"':'').'>Ni client, ni prospect</option>';
|
||||||
print '</select></td>';
|
print '</select></td>';
|
||||||
print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
|
print '<td width="25%">'.$langs->trans('CustomerCode').'</td><td width="25%">';
|
||||||
|
|
||||||
|
print '<table class="nobordernopadding"><tr><td>';
|
||||||
if ($soc->codeclient_modifiable == 1)
|
if ($soc->codeclient_modifiable == 1)
|
||||||
{
|
{
|
||||||
print '<input type="text" name="code_client" size="16" value="'.$soc->code_client.'" maxlength="15">';
|
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
|
else
|
||||||
{
|
{
|
||||||
print $soc->code_client;
|
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>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Fournisseur
|
// Fournisseur
|
||||||
@ -576,6 +640,8 @@ elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit')
|
|||||||
$form->selectyesnonum("fournisseur",$soc->fournisseur);
|
$form->selectyesnonum("fournisseur",$soc->fournisseur);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td>'.$langs->trans('SupplierCode').'</td><td>';
|
print '<td>'.$langs->trans('SupplierCode').'</td><td>';
|
||||||
|
|
||||||
|
print '<table class="nobordernopadding"><tr><td>';
|
||||||
if ($soc->codefournisseur_modifiable == 1)
|
if ($soc->codefournisseur_modifiable == 1)
|
||||||
{
|
{
|
||||||
print '<input type="text" name="code_fournisseur" size="16" value="'.$soc->code_fournisseur.'" maxlength="15">';
|
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
|
else
|
||||||
{
|
{
|
||||||
print $soc->code_fournisseur;
|
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>';
|
print '</td></tr>';
|
||||||
|
|
||||||
if ($soc->fournisseur)
|
if ($soc->fournisseur)
|
||||||
|
|||||||
@ -118,15 +118,8 @@ class Societe
|
|||||||
|
|
||||||
// definit module code fournisseur
|
// definit module code fournisseur
|
||||||
$varfournisseur = $conf->global->SOCIETE_CODEFOURNISSEUR_ADDON;
|
$varfournisseur = $conf->global->SOCIETE_CODEFOURNISSEUR_ADDON;
|
||||||
if ($varfournisseur == $varclient) // Optimisation
|
require_once DOL_DOCUMENT_ROOT.'/includes/modules/societe/'.$varfournisseur.'.php';
|
||||||
{
|
$this->mod_codefournisseur = new $varfournisseur;
|
||||||
$this->mod_codefournisseur = $this->mod_codeclient;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/includes/modules/societe/'.$varfournisseur.'.php';
|
|
||||||
$this->mod_codefournisseur = new $varfournisseur;
|
|
||||||
}
|
|
||||||
$this->codefournisseur_modifiable = $this->mod_codefournisseur->code_modifiable;
|
$this->codefournisseur_modifiable = $this->mod_codefournisseur->code_modifiable;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -145,7 +138,7 @@ class Societe
|
|||||||
// Nettoyage paramètres
|
// Nettoyage paramètres
|
||||||
$this->nom=trim($this->nom);
|
$this->nom=trim($this->nom);
|
||||||
|
|
||||||
dolibarr_syslog("societe.class.php::create ".$this->nom);
|
dolibarr_syslog("Societe::create ".$this->nom);
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
@ -171,8 +164,8 @@ class Societe
|
|||||||
$this->add_commercial($user, $user->id);
|
$this->add_commercial($user, $user->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// si le fournisseur est classe on l'ajoute
|
// si le fournisseur est classe on l'ajoute
|
||||||
$this->AddFournisseurInCategory($this->fournisseur_categorie);
|
$this->AddFournisseurInCategory($this->fournisseur_categorie);
|
||||||
|
|
||||||
if ($ret >= 0)
|
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
|
// 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
|
// 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 <> 0)
|
||||||
{
|
{
|
||||||
if ($rescode == -1)
|
if ($rescode == -1)
|
||||||
@ -254,6 +247,28 @@ class Societe
|
|||||||
$result = -3;
|
$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;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -379,7 +394,7 @@ class Societe
|
|||||||
$sql .= " WHERE idp = '" . $id ."'";
|
$sql .= " WHERE idp = '" . $id ."'";
|
||||||
|
|
||||||
|
|
||||||
dolibarr_syslog("Societe.class::update sql=".$sql);
|
dolibarr_syslog("Societe::update sql=".$sql);
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
@ -1409,7 +1424,7 @@ class Societe
|
|||||||
* \brief Verifie code client
|
* \brief Verifie code client
|
||||||
* \return Renvoie 0 si ok, peut modifier le code client suivant le module utilis
|
* \return Renvoie 0 si ok, peut modifier le code client suivant le module utilis
|
||||||
*/
|
*/
|
||||||
function verif_codeclient()
|
function check_codeclient()
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
if ($conf->global->SOCIETE_CODECLIENT_ADDON)
|
if ($conf->global->SOCIETE_CODECLIENT_ADDON)
|
||||||
@ -1420,26 +1435,8 @@ class Societe
|
|||||||
|
|
||||||
$mod = new $var;
|
$mod = new $var;
|
||||||
|
|
||||||
return $mod->verif($this->db, $this->code_client, $this->id);
|
dolibarr_syslog("Societe::check_codeclient code_client=".$this->code_client." module=".$var);
|
||||||
}
|
return $mod->verif($this->db, $this->code_client, $this);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
else
|
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()
|
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;
|
$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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user