Link for supplier third parties

This commit is contained in:
Laurent Destailleur 2008-10-19 20:34:46 +00:00
parent 3a7af7189f
commit 03bb9786c3

View File

@ -18,11 +18,11 @@
*/ */
/** /**
\file htdocs/fourn/fournisseur.class.php \file htdocs/fourn/fournisseur.class.php
\ingroup fournisseur,societe \ingroup fournisseur,societe
\brief Fichier de la classe des fournisseurs \brief Fichier de la classe des fournisseurs
\version $Id$ \version $Id$
*/ */
require_once(DOL_DOCUMENT_ROOT."/societe.class.php"); require_once(DOL_DOCUMENT_ROOT."/societe.class.php");
require_once(DOL_DOCUMENT_ROOT."/fourn/fournisseur.commande.class.php"); require_once(DOL_DOCUMENT_ROOT."/fourn/fournisseur.commande.class.php");
@ -30,115 +30,115 @@ require_once(DOL_DOCUMENT_ROOT."/fourn/fournisseur.product.class.php");
/** /**
\class Fournisseur \class Fournisseur
\brief Classe permettant la gestion des fournisseur \brief Classe permettant la gestion des fournisseur
*/ */
class Fournisseur extends Societe class Fournisseur extends Societe
{ {
var $db; var $db;
/** /**
* \brief Constructeur de la classe * \brief Constructeur de la classe
* \param DB handler accès base de données * \param DB handler accès base de données
* \param id id societe (0 par defaut) * \param id id societe (0 par defaut)
*/ */
function Fournisseur($DB, $id=0, $user=0) function Fournisseur($DB, $id=0, $user=0)
{ {
global $config; global $config;
$this->db = $DB; $this->db = $DB;
$this->id = $id; $this->id = $id;
$this->user = $user; $this->user = $user;
$this->client = 0; $this->client = 0;
$this->fournisseur = 0; $this->fournisseur = 0;
$this->effectif_id = 0; $this->effectif_id = 0;
$this->forme_juridique_code = 0; $this->forme_juridique_code = 0;
return 0; return 0;
} }
function nb_open_commande() function nb_open_commande()
{ {
$sql = "SELECT rowid"; $sql = "SELECT rowid";
$sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as cf"; $sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as cf";
$sql .= " WHERE cf.fk_soc = ".$this->id; $sql .= " WHERE cf.fk_soc = ".$this->id;
$result = $this->db->query($sql) ; $result = $this->db->query($sql) ;
if ( $result ) if ( $result )
{ {
$num = $this->db->num_rows(); $num = $this->db->num_rows();
if ($num == 1) if ($num == 1)
{ {
$row = $this->db->fetch_row(); $row = $this->db->fetch_row();
$this->single_open_commande = $row[0]; $this->single_open_commande = $row[0];
} }
} }
return $num; return $num;
} }
function NbProduct() function NbProduct()
{ {
$sql = "SELECT count(*)"; $sql = "SELECT count(*)";
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur"; $sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur";
$sql .= " WHERE fk_soc = ".$this->id; $sql .= " WHERE fk_soc = ".$this->id;
$resql = $this->db->query($sql) ; $resql = $this->db->query($sql) ;
if ( $resql ) if ( $resql )
{ {
$row = $this->db->fetch_row($resql); $row = $this->db->fetch_row($resql);
return $row[0]; return $row[0];
} }
else else
{ {
return -1; return -1;
} }
} }
/** /**
* \brief Créé la commande au statut brouillon * \brief Créé la commande au statut brouillon
* \param user Utilisateur qui crée * \param user Utilisateur qui crée
* \return int <0 si ko, id de la commande créée si ok * \return int <0 si ko, id de la commande créée si ok
*/ */
function updateFromCommandeClient($user, $idc, $comclientid) function updateFromCommandeClient($user, $idc, $comclientid)
{ {
$comm = new CommandeFournisseur($this->db); $comm = new CommandeFournisseur($this->db);
$comm->socid = $this->id; $comm->socid = $this->id;
$comm->updateFromCommandeClient($user, $idc, $comclientid); $comm->updateFromCommandeClient($user, $idc, $comclientid);
} }
/** /**
* \brief Créé la commande au statut brouillon * \brief Créé la commande au statut brouillon
* \param user Utilisateur qui crée * \param user Utilisateur qui crée
* \return int <0 si ko, id de la commande créée si ok * \return int <0 si ko, id de la commande créée si ok
*/ */
function create_commande($user) function create_commande($user)
{ {
dolibarr_syslog("Fournisseur::Create_Commande"); dolibarr_syslog("Fournisseur::Create_Commande");
$comm = new CommandeFournisseur($this->db); $comm = new CommandeFournisseur($this->db);
$comm->socid = $this->id; $comm->socid = $this->id;
if ($comm->create($user) > 0) if ($comm->create($user) > 0)
{ {
dolibarr_syslog("Fournisseur::Create_Commande : Success"); dolibarr_syslog("Fournisseur::Create_Commande : Success");
$this->single_open_commande = $comm->id; $this->single_open_commande = $comm->id;
return $comm->id; return $comm->id;
} }
else else
{ {
dolibarr_syslog("Fournisseur::Create_Commande : Failed"); dolibarr_syslog("Fournisseur::Create_Commande : Failed");
return -1; return -1;
} }
} }
function ProductCommande($user, $fk_product) function ProductCommande($user, $fk_product)
@ -176,50 +176,50 @@ class Fournisseur extends Societe
} }
} }
/** /**
* \brief Charge indicateurs this->nb de tableau de bord * \brief Charge indicateurs this->nb de tableau de bord
* \return int <0 si ko, >0 si ok * \return int <0 si ko, >0 si ok
*/ */
function load_state_board() function load_state_board()
{ {
global $conf, $user; global $conf, $user;
$this->nb=array(); $this->nb=array();
$clause = "WHERE"; $clause = "WHERE";
$sql = "SELECT count(s.rowid) as nb"; $sql = "SELECT count(s.rowid) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
if (!$user->rights->societe->client->voir && !$user->societe_id) if (!$user->rights->societe->client->voir && !$user->societe_id)
{ {
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc";
$sql.= " WHERE sc.fk_user = " .$user->id; $sql.= " WHERE sc.fk_user = " .$user->id;
$clause = "AND"; $clause = "AND";
} }
$sql.= " ".$clause." s.fournisseur = 1"; $sql.= " ".$clause." s.fournisseur = 1";
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
while ($obj=$this->db->fetch_object($resql)) while ($obj=$this->db->fetch_object($resql))
{ {
$this->nb["suppliers"]=$obj->nb; $this->nb["suppliers"]=$obj->nb;
} }
return 1; return 1;
} }
else else
{ {
dolibarr_print_error($this->db); dolibarr_print_error($this->db);
$this->error=$this->db->error(); $this->error=$this->db->error();
return -1; return -1;
} }
} }
/** /**
* \brief Créé une categorie fournisseur * \brief Créé une categorie fournisseur
* \param user Utilisateur qui crée * \param user Utilisateur qui crée
* \param name Nom categorie * \param name Nom categorie
* \return int <0 si ko, 0 si ok * \return int <0 si ko, 0 si ok
*/ */
function CreateCategory($user, $name) function CreateCategory($user, $name)
{ {
dolibarr_syslog("Fournisseur::CreateCategory"); dolibarr_syslog("Fournisseur::CreateCategory");
@ -242,41 +242,52 @@ class Fournisseur extends Societe
} }
} }
/** /**
* Retourne la liste des fournisseurs * Retourne la liste des fournisseurs
* *
* *
*/ */
function ListArray() function ListArray()
{ {
$arr = array(); $arr = array();
$sql = "SELECT s.rowid, s.nom"; $sql = "SELECT s.rowid, s.nom";
if (!$this->user->rights->societe->client->voir && !$this->user->societe_id) $sql .= ", sc.fk_soc, sc.fk_user"; if (!$this->user->rights->societe->client->voir && !$this->user->societe_id) $sql .= ", sc.fk_soc, sc.fk_user";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
if (!$this->user->rights->societe->client->voir && !$this->user->societe_id) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; if (!$this->user->rights->societe->client->voir && !$this->user->societe_id) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE s.fournisseur = 1"; $sql.= " WHERE s.fournisseur = 1";
if (!$this->user->rights->societe->client->voir && !$this->user->societe_id) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$this->user->id; if (!$this->user->rights->societe->client->voir && !$this->user->societe_id) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$this->user->id;
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
while ($obj=$this->db->fetch_object($resql)) while ($obj=$this->db->fetch_object($resql))
{ {
$arr[$obj->rowid] = stripslashes($obj->nom); $arr[$obj->rowid] = stripslashes($obj->nom);
} }
} }
else else
{ {
dolibarr_print_error($this->db); dolibarr_print_error($this->db);
$this->error=$this->db->error(); $this->error=$this->db->error();
} }
return $arr; return $arr;
} }
/**
* \brief Renvoie nom clicable (avec eventuellement le picto)
* \param withpicto Inclut le picto dans le lien
* \param option Sur quoi pointe le lien
* \param maxlen Longueur max libelle
* \return string Chaine avec URL
*/
function getNomUrl($withpicto=0,$option='supplier',$maxlen=0)
{
return parent::getNomUrl($withpicto,$option,$maxlen);
}
} }
?> ?>