From d4c78e9fe731f9ca33493ffb1b9eb6472f8df22a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 27 Sep 2005 19:34:03 +0000 Subject: [PATCH] =?UTF-8?q?Int=E9gration=20du=20patch=20pour=20g=E9rer=20l?= =?UTF-8?q?a=20r=E9f=E9rence=20du=20contrat=20(sur=20mod=E8le=20des=20comm?= =?UTF-8?q?andes)=20plutot=20qu'une=20r=E9f=E9rence=20qui=20soit=20le=20ro?= =?UTF-8?q?wid.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/comm/fiche.php | 7 ++++--- htdocs/contrat/contrat.class.php | 27 ++++++++++++++------------- htdocs/contrat/fiche.php | 18 ++++++++++++------ htdocs/contrat/index.php | 17 ++++++++++------- htdocs/contrat/liste.php | 5 +++-- mysql/migration/1.1.0-2.0.0.sql | 2 ++ mysql/tables/llx_contrat.sql | 8 ++++---- 7 files changed, 49 insertions(+), 35 deletions(-) diff --git a/htdocs/comm/fiche.php b/htdocs/comm/fiche.php index 8dfaa05a97e..0de27a55dd5 100644 --- a/htdocs/comm/fiche.php +++ b/htdocs/comm/fiche.php @@ -418,7 +418,7 @@ if ($_socid > 0) print ''; - $sql = "SELECT s.nom, s.idp, c.rowid as id, c.rowid as ref, c.statut, ".$db->pdate("c.datec")." as dc"; + $sql = "SELECT s.nom, s.idp, c.rowid as id, c.ref as ref, c.statut, ".$db->pdate("c.datec")." as dc"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c"; $sql .= " WHERE c.fk_soc = s.idp "; $sql .= " AND s.idp = $objsoc->id"; @@ -442,9 +442,10 @@ if ($_socid > 0) $objp = $db->fetch_object($resql); $var=!$var; print ""; - print '\n"; + print '\n"; print '\n"; - print ''; + print ''; print '\n"; print ''; $i++; diff --git a/htdocs/contrat/contrat.class.php b/htdocs/contrat/contrat.class.php index 90eef95c322..db1250872a8 100644 --- a/htdocs/contrat/contrat.class.php +++ b/htdocs/contrat/contrat.class.php @@ -50,7 +50,6 @@ class Contrat var $date_creation; var $date_validation; var $date_cloture; - var $commercial_signature_id; var $commercial_suivi_id; @@ -225,7 +224,7 @@ class Contrat */ function fetch($id) { - $sql = "SELECT rowid, statut, fk_soc, ".$this->db->pdate("mise_en_service")." as datemise,"; + $sql = "SELECT rowid, statut, ref, fk_soc, ".$this->db->pdate("mise_en_service")." as datemise,"; $sql.= " fk_user_mise_en_service, ".$this->db->pdate("date_contrat")." as datecontrat,"; $sql.= " fk_user_author,"; $sql.= " fk_projet,"; @@ -241,7 +240,7 @@ class Contrat if ($result) { $this->id = $result["rowid"]; - $this->ref = $result["rowid"]; + $this->ref = (!isset($result["ref"])) ? $result["rowid"] : $result["ref"]; $this->statut = $result["statut"]; $this->factureid = $result["fk_facture"]; $this->facturedetid = $result["fk_facturedet"]; @@ -422,11 +421,12 @@ class Contrat // Insère contrat $sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat (datec, fk_soc, fk_user_author, date_contrat"; // $sql.= ", fk_commercial_signature, fk_commercial_suivi"; - $sql.= ")"; + $sql.= " , ref)"; $sql.= " VALUES (now(),".$this->soc_id.",".$user->id; $sql.= ",".$this->db->idate($this->date_contrat); // $sql.= ",".($this->commercial_signature_id>=0?$this->commercial_signature_id:"null"); // $sql.= ",".($this->commercial_suivi_id>=0?$this->commercial_suivi_id:"null"); + $sql .= ", " . (strlen($this->ref)<=0 ? "null" : "'".$this->ref."'"); $sql.= ")"; $resql=$this->db->query($sql); if ($resql) @@ -811,7 +811,7 @@ class Contrat */ function info($id) { - $sql = "SELECT c.rowid, ".$this->db->pdate("datec")." as datec, ".$this->db->pdate("date_cloture")." as date_cloture,"; + $sql = "SELECT c.rowid, c.ref, ".$this->db->pdate("datec")." as datec, ".$this->db->pdate("date_cloture")." as date_cloture,"; $sql.= $this->db->pdate("c.tms")." as date_modification,"; $sql.= " fk_user_author, fk_user_cloture"; $sql.= " FROM ".MAIN_DB_PREFIX."contrat as c"; @@ -837,7 +837,7 @@ class Contrat $cuser->fetch(); $this->user_cloture = $cuser; } - + $this->ref = $obj->ref; $this->date_creation = $obj->datec; $this->date_modification = $obj->date_modification; $this->date_cloture = $obj->date_cloture; @@ -870,11 +870,11 @@ class Contrat $resql=$this->db->query($sql); if ($resql) { - $num=$this->db->num_rows($result); + $num=$this->db->num_rows($resql); $i=0; while ($i < $num) { - $obj = $this->db->fetch_object($result); + $obj = $this->db->fetch_object($resql); $tab[$i]=$obj->rowid; $i++; } @@ -957,7 +957,8 @@ class Contrat $sql.="SELECT rowid from ".MAIN_DB_PREFIX."c_type_contact"; $sql.=" WHERE element='contrat' AND source='internal'"; $sql.=" AND code='".$type_contact."'"; - if ( $this->db->query($sql) ) + $resql = $this->db->query($sql); + if ( $resql ) { $obj = $this->db->fetch_object($resql); if ($obj) $type_contact=$obj->rowid; @@ -1003,7 +1004,7 @@ class Contrat /** * * \brief Misea jour du contact associé au contrat - * \param rowid La reference du lien contant contact. + * \param rowid La reference du lien contrat-contact * \param statut Le nouveau statut * \param nature Description du contact * \return int <0 si erreur, >0 si ok @@ -1123,7 +1124,7 @@ class Contrat $resql=$this->db->query($sql); if ($resql) { - $obj = $this->db->fetch_object($result); + $obj = $this->db->fetch_object($resql); return $obj; } else @@ -1156,11 +1157,11 @@ class Contrat $resql=$this->db->query($sql); if ($resql) { - $num=$this->db->num_rows($result); + $num=$this->db->num_rows($resql); $i=0; while ($i < $num) { - $obj = $this->db->fetch_object($result); + $obj = $this->db->fetch_object($resql); $transkey="TypeContact_".$element."_".$source."_".$obj->code; $libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle); diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php index aca6782ea53..4a3bbb81f48 100644 --- a/htdocs/contrat/fiche.php +++ b/htdocs/contrat/fiche.php @@ -97,9 +97,10 @@ if ($_POST["action"] == 'add') $contrat->commercial_suivi_id = $_POST["commercial_suivi_id"]; $contrat->commercial_signature_id = $_POST["commercial_signature_id"]; - $contrat->note = $_POST["note"]; - $contrat->projetid = $_POST["projetid"]; - $contrat->remise_percent = $_POST["remise_percent"]; + $contrat->note = trim($_POST["note"]); + $contrat->projetid = trim($_POST["projetid"]); + $contrat->remise_percent = trim($_POST["remise_percent"]); + $contrat->ref = trim($_POST["ref"]); $result = $contrat->create($user,$langs,$conf); if ($result > 0) @@ -278,10 +279,15 @@ if ($_GET["action"] == 'create') print '
'.img_object($langs->trans("ShowContract"),"contract").' '.$objp->ref."'.img_object($langs->trans("ShowContract"),"contract").' ' + .(!isset($objp->ref) ? $objp->id : $objp->ref) ."'.dolibarr_print_date($objp->dc)."  '.$contratstatic->LibStatut($objp->statut)."
'; + // Ref + print ''; + print ''; + + // Customer print ''; // Commercial suivi - print ''; // Commercial signature - print '
'.$langs->trans("Ref").':
'.$langs->trans("Customer").':'.$obj->nom.'
'.$langs->trans("SalesRepresentativeFollowUp").''; + print '
'.$langs->trans("TypeContact_contrat_internal_SALESREPFOLL").''; print '
'.$langs->trans("SalesRepresentativeSignature").''; + print '
'.$langs->trans("TypeContact_contrat_internal_SALESREPSIGN").''; print ''; - // Reference du contrat + // Ref du contrat print '"; diff --git a/htdocs/contrat/index.php b/htdocs/contrat/index.php index 50ed834d7d9..2313b3243b3 100644 --- a/htdocs/contrat/index.php +++ b/htdocs/contrat/index.php @@ -98,7 +98,7 @@ $sql.= ' sum('.$db->ifsql("cd.statut=0",1,0).') as nb_initial,'; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND cd.date_fin_validite > sysdate()",1,0).') as nb_running,'; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd.date_fin_validite <= sysdate())",1,0).') as nb_late,'; $sql.= ' sum('.$db->ifsql("cd.statut=5",1,0).') as nb_closed,'; -$sql.= " c.rowid as cid, c.datec, c.statut, s.nom, s.idp as sidp"; +$sql.= " c.rowid as cid, c.ref, c.datec, c.statut, s.nom, s.idp as sidp"; $sql.= " FROM ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."societe as s"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."contratdet as cd ON c.rowid = cd.fk_contrat"; $sql.= " WHERE c.fk_soc = s.idp "; @@ -133,7 +133,8 @@ if ($result) print ""; print "'; print ''; @@ -159,7 +160,7 @@ print '
'; // Not activated services -$sql = "SELECT cd.rowid as cid, cd.statut, cd.label, cd.description as note, cd.fk_contrat, c.fk_soc, s.nom"; +$sql = "SELECT cd.rowid as cid, c.ref, cd.statut, cd.label, cd.description as note, cd.fk_contrat, c.fk_soc, s.nom"; $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."societe as s"; $sql.= " WHERE c.statut=1 AND cd.statut = 0"; $sql.= " AND cd.fk_contrat = c.rowid AND c.fk_soc = s.idp"; @@ -183,7 +184,8 @@ if ( $db->query($sql) ) $var=!$var; print ""; - print ''; + print ''; print ''; else print ' '.dolibarr_trunc($obj->note,20).''; @@ -207,7 +209,7 @@ print '
'; // Last modified services $max=5; -$sql = "SELECT cd.rowid as cid, cd.statut, cd.label, cd.description as note, cd.fk_contrat, c.fk_soc, s.nom"; +$sql = "SELECT cd.rowid as cid, c.ref, cd.statut, cd.label, cd.description as note, cd.fk_contrat, c.fk_soc, s.nom"; $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."societe as s"; $sql.= " WHERE cd.fk_contrat = c.rowid AND c.fk_soc = s.idp"; if ($socidp > 0) $sql.= " AND s.idp = ".$socidp; @@ -229,8 +231,9 @@ if ( $db->query($sql) ) $obj = $db->fetch_object(); $var=!$var; print ""; - - print ''; print '"; print "'; print ''; diff --git a/mysql/migration/1.1.0-2.0.0.sql b/mysql/migration/1.1.0-2.0.0.sql index 62fb1c08b94..7d8297c829b 100644 --- a/mysql/migration/1.1.0-2.0.0.sql +++ b/mysql/migration/1.1.0-2.0.0.sql @@ -370,6 +370,8 @@ alter table llx_contrat add fk_projet integer after fk_soc; alter table llx_contrat add fk_commercial_signature integer NOT NULL after fk_projet; alter table llx_contrat add fk_commercial_suivi integer NOT NULL after fk_commercial_signature; alter table llx_contrat add facture smallint(6) default 0; +alter table llx_contrat add ref varchar(30) after rowid; + alter table llx_facturedet add date_start date; alter table llx_facturedet add date_end date; diff --git a/mysql/tables/llx_contrat.sql b/mysql/tables/llx_contrat.sql index 53915cdb7fa..dbdf351a646 100644 --- a/mysql/tables/llx_contrat.sql +++ b/mysql/tables/llx_contrat.sql @@ -1,6 +1,6 @@ -- ============================================================================ -- Copyright (C) 2002-2004 Rodolphe Quiedeville --- Copyright (C) 2004 Laurent Destailleur +-- Copyright (C) 2004-2005 Laurent Destailleur -- -- 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 @@ -24,18 +24,18 @@ create table llx_contrat ( rowid integer AUTO_INCREMENT PRIMARY KEY, + ref varchar(30), -- reference de contrat tms timestamp, datec datetime, -- date de creation de l'enregistrement date_contrat datetime, statut smallint DEFAULT 0, - mise_en_service datetime, fin_validite datetime, date_cloture datetime, fk_soc integer NOT NULL, fk_projet integer, - fk_commercial_signature integer NOT NULL, - fk_commercial_suivi integer NOT NULL, + fk_commercial_signature integer NOT NULL, -- obsolete + fk_commercial_suivi integer NOT NULL, -- obsolete fk_user_author integer NOT NULL default 0, fk_user_mise_en_service integer, fk_user_cloture integer
'.$langs->trans("Ref").''; print $contrat->ref; print "
cid\">"; - print img_object($langs->trans("ShowContract"),"contract").' '.$obj->cid.''; + print img_object($langs->trans("ShowContract"),"contract").' ' + . (isset($obj->ref) ? $obj->ref : $obj->cid).''; if ($obj->nb_late) print img_warning($langs->trans("Late")); print ''.img_object($langs->trans("ShowCompany"),"company").' '.$obj->nom.'
'.img_object($langs->trans("ShowContract"),"contract").' '.$obj->fk_contrat.''.img_object($langs->trans("ShowContract"),"contract").' ' + .(isset($obj->ref) ? $obj->ref : $obj->fk_contrat).''.img_object($langs->trans("ShowService"),"service"); if ($obj->label) print ' '.dolibarr_trunc($obj->label,20).'
'.img_object($langs->trans("ShowContract"),"contract").' '.$obj->fk_contrat.''; +// width="50" nowrap + print ''.img_object($langs->trans("ShowContract"),"contract").' ' + .(isset($obj->ref) ? $obj->ref : $obj->fk_contrat).''; if ($obj->nb_late) print img_warning($langs->trans("Late")); print ''.img_object($langs->trans("ShowService"),"service"); diff --git a/htdocs/contrat/liste.php b/htdocs/contrat/liste.php index f936d4f4b01..2eb7dc545f7 100644 --- a/htdocs/contrat/liste.php +++ b/htdocs/contrat/liste.php @@ -67,7 +67,7 @@ $sql.= ' sum('.$db->ifsql("cd.statut=0",1,0).') as nb_initial,'; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND cd.date_fin_validite > sysdate()",1,0).') as nb_running,'; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd.date_fin_validite <= sysdate())",1,0).') as nb_late,'; $sql.= ' sum('.$db->ifsql("cd.statut=5",1,0).') as nb_closed,'; -$sql.= " c.rowid as cid, c.datec, c.statut, s.nom, s.idp as sidp"; +$sql.= " c.rowid as cid, c.ref, c.datec, c.statut, s.nom, s.idp as sidp"; $sql.= " FROM ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."societe as s"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."contratdet as cd ON c.rowid = cd.fk_contrat"; $sql.= " WHERE c.fk_soc = s.idp "; @@ -125,7 +125,8 @@ if ($resql) $var=!$var; print "
cid\">"; - print img_object($langs->trans("ShowContract"),"contract").' '.$obj->cid.''; + print img_object($langs->trans("ShowContract"),"contract").' ' + . (isset($obj->ref) ? $obj->ref : $obj->cid) .''; if ($obj->nb_late) print img_warning($langs->trans("Late")); print ''.img_object($langs->trans("ShowCompany"),"company").' '.$obj->nom.'