Fix Bug PHP 5.2

This commit is contained in:
Rodolphe Quiedeville 2007-01-03 17:19:07 +00:00
parent 5dc9fc084d
commit 130c7fde6d

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
* *
@ -23,126 +23,125 @@
*/ */
/** /**
\file htdocs/includes/modules/societe/mod_codecompta_aquarium.class.php \file htdocs/includes/modules/societe/mod_codecompta_aquarium.class.php
\ingroup societe \ingroup societe
\brief Fichier de la classe des gestion aquarium des codes compta des societes clientes \brief Fichier de la classe des gestion aquarium des codes compta des societes clientes
\version $Revision$ \version $Revision$
*/ */
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_codecompta_aquarium \class mod_codecompta_aquarium
\brief Classe permettant la gestion aquarium des codes compta des societes clients \brief Classe permettant la gestion aquarium des codes compta des societes clients
*/ */
class mod_codecompta_aquarium extends ModeleAccountancyCode class mod_codecompta_aquarium extends ModeleAccountancyCode
{ {
var $nom; var $nom;
function mod_codecompta_aquarium() function mod_codecompta_aquarium()
{
$this->nom = "Aquarium";
}
function info($langs)
{
return $langs->trans("ModuleCompanyCode".$this->nom);
}
/**
\brief Renvoi code compta d'une societe
\param DB Handler d'accès base
\param societe Objet societe
\param type Type de tiers ('customer' ou 'supplier')
\return int >=0 ok, <0 ko
*/
function get_code($DB, $societe, $type)
{
$prefixcodecomptacustomer='411';
$prefixcodecomptasupplier='401';
$i = 0;
$this->db = $DB;
dolibarr_syslog("mod_codecompta_aquarium::get_code search code for type=".$type." company=".$societe);
// Regle gestion compte compta
$codetouse='';
if ($type == 'customer') $codetouse = $prefixcodecomptacustomer;
if ($type == 'supplier') $codetouse = $prefixcodecomptasupplier;
if ($type == 'customer') $codetouse.=$societe->code_client;
if ($type == 'supplier') $codetouse.=$societe->code_fournisseur;
$codetouse=eregi_replace('[^0-9]','',$codetouse);
$is_dispo = $this->verif($DB, $codetouse, $societe, $type);
if (! $is_dispo)
{
/*
// On tente ajout suffix
while ($is_dispo == 0 && $i < 37)
{ {
$this->nom = "Aquarium"; $arr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
} $altcodetouse = $codetouse . substr($arr, $i, 1);
function info($langs) $is_dispo = $this->verif($DB, $altcodetouse, $societe, $type);
{
return $langs->trans("ModuleCompanyCode".$this->nom); $i++;
} }
*/
// Pour retour
// $this->code=$altcodetouse;
$this->code=$codetouse;
}
else
{
// Pour retour
$this->code=$codetouse;
}
dolibarr_syslog("mod_codecompta_aquarium::get_code found code=".$this->code);
return $is_dispo;
}
/** /**
* \brief Renvoi code compta d'une societe \brief Renvoi si un code compta est dispo
* \param DB Handler d'accès base \return int 0 non dispo, >0 dispo, <0 erreur
* \param societe Objet societe */
* \param type Type de tiers ('customer' ou 'supplier') function verif($db, $code, $societe, $type)
* \return int >=0 ok, <0 ko {
*/ $sql = "SELECT ";
function get_code($DB, $societe, $type) if ($type == 'customer') $sql.= "code_compta";
{ if ($type == 'supplier') $sql.= "code_compta_fournisseur";
$prefixcodecomptacustomer='411'; $sql.= " FROM ".MAIN_DB_PREFIX."societe";
$prefixcodecomptasupplier='401'; $sql.= " WHERE ";
if ($type == 'customer') $sql.= "code_compta";
if ($type == 'supplier') $sql.= "code_compta_fournisseur";
$sql.= " = '".$code."'";
$sql.= " AND idp != ".$societe->id;
$i = 0; $resql=$db->query($sql);
$this->db = $DB; if ($resql)
{
dolibarr_syslog("mod_codecompta_aquarium::get_code search code for type=".$type." company=".$societe); if ($db->num_rows($resql) == 0)
{
// Regle gestion compte compta dolibarr_syslog("mod_codecompta_aquarium::verif code '".$code."' available");
$codetouse=''; return 1; // Dispo
if ($type == 'customer') $codetouse = $prefixcodecomptacustomer; }
if ($type == 'supplier') $codetouse = $prefixcodecomptasupplier; else
if ($type == 'customer') $codetouse.=$societe->code_client; {
if ($type == 'supplier') $codetouse.=$societe->code_fournisseur; dolibarr_syslog("mod_codecompta_aquarium::verif code '".$code."' not available");
$codetouse=eregi_replace('[^0-9]','',$codetouse); return 0; // Non dispo
}
$is_dispo = $this->verif($DB, $codetouse, $societe, $type); }
if (! $is_dispo) else
{ {
/* $this->error=$db->error()." sql=".$sql;
// On tente ajout suffix dolibarr_syslog("mod_codecompta_aquarium::verif error".$this->error);
while ($is_dispo == 0 && $i < 37) return -1; // Erreur
{ }
$arr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; }
$altcodetouse = $codetouse . substr($arr, $i, 1);
$is_dispo = $this->verif($DB, $altcodetouse, $societe, $type);
$i++;
}
*/
// Pour retour
// $this->code=$altcodetouse;
$this->code=$codetouse;
}
else
{
// Pour retour
$this->code=$codetouse;
}
dolibarr_syslog("mod_codecompta_aquarium::get_code found code=".$this->code);
return $is_dispo;
}
/**
* \brief Renvoi si un code compta est dispo
* \return int 0 non dispo, >0 dispo, <0 erreur
*/
function verif($db, $code, $societe, $type)
{
$sql = "SELECT ";
if ($type == 'customer') $sql.= "code_compta";
if ($type == 'supplier') $sql.= "code_compta_fournisseur";
$sql.= " FROM ".MAIN_DB_PREFIX."societe";
$sql.= " WHERE ";
if ($type == 'customer') $sql.= "code_compta";
if ($type == 'supplier') $sql.= "code_compta_fournisseur";
$sql.= " = '".$code."'";
$sql.= " AND idp != ".$societe->id;
$resql=$db->query($sql);
if ($resql)
{
if ($db->num_rows($resql) == 0)
{
dolibarr_syslog("mod_codecompta_aquarium::verif code '$code' available");
return 1; // Dispo
}
else
{
dolibarr_syslog("mod_codecompta_aquarium::verif code '$code' not available");
return 0; // Non dispo
}
}
else
{
$this->error=$db->error()." sql=".$sql;
dolibarr_syslog("mod_codecompta_aquarium::verif error".$this->error);
return -1; // Erreur
}
}
} }