Fix: Status of contract is now status of servics

This commit is contained in:
Laurent Destailleur 2008-10-27 19:19:51 +00:00
parent 1343b35576
commit 6ca3d3335f
2 changed files with 45 additions and 31 deletions

View File

@ -18,11 +18,11 @@
*/ */
/** /**
\file htdocs/contrat/liste.php * \file htdocs/contrat/liste.php
\ingroup contrat * \ingroup contrat
\brief Page liste des contrats * \brief Page liste des contrats
\version $Id$ * \version $Id$
*/ */
require("./pre.inc.php"); require("./pre.inc.php");
require_once (DOL_DOCUMENT_ROOT."/contrat/contrat.class.php"); require_once (DOL_DOCUMENT_ROOT."/contrat/contrat.class.php");
@ -57,7 +57,7 @@ $staticcontratligne=new ContratLigne($db);
/* /*
* Affichage page * View
*/ */
llxHeader(); llxHeader();
@ -67,7 +67,8 @@ $sql.= ' sum('.$db->ifsql("cd.statut=0",1,0).') as nb_initial,';
$sql.= ' sum('.$db->ifsql("cd.statut=4 AND cd.date_fin_validite > ".$db->idate(mktime()),1,0).') as nb_running,'; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND cd.date_fin_validite > ".$db->idate(mktime()),1,0).') as nb_running,';
$sql.= ' sum('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd.date_fin_validite <= ".$db->idate(mktime()).")",1,0).') as nb_late,'; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd.date_fin_validite <= ".$db->idate(mktime()).")",1,0).') as nb_late,';
$sql.= ' sum('.$db->ifsql("cd.statut=5",1,0).') as nb_closed,'; $sql.= ' sum('.$db->ifsql("cd.statut=5",1,0).') as nb_closed,';
$sql.= " c.rowid as cid, c.ref, c.datec, c.date_contrat, c.statut, s.nom, s.rowid as socid"; $sql.= " c.rowid as cid, c.ref, c.datec, c.date_contrat, c.statut,";
$sql.= " s.nom, s.rowid as socid";
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,";
if (!$user->rights->societe->client->voir && !$socid) $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,"; if (!$user->rights->societe->client->voir && !$socid) $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,";
@ -81,7 +82,7 @@ if ($sall) $sql.= " AND (s.nom like '%".addslashes($sall)."%' OR cd.l
if ($socid > 0) $sql.= " AND s.rowid = ".$socid; if ($socid > 0) $sql.= " AND s.rowid = ".$socid;
$sql.= " GROUP BY c.rowid, c.datec, c.statut, s.nom, s.rowid"; $sql.= " GROUP BY c.rowid, c.datec, c.statut, s.nom, s.rowid";
$sql.= " ORDER BY $sortfield $sortorder"; $sql.= " ORDER BY $sortfield $sortorder";
$sql.= $db->plimit($limit + 1 ,$offset); $sql.= $db->plimit($conf->liste_limit + 1 ,$offset);
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)

View File

@ -19,11 +19,11 @@
*/ */
/** /**
\file htdocs/product/stats/contrat.php * \file htdocs/product/stats/contrat.php
\ingroup product, service, contrat * \ingroup product, service, contrat
\brief Page des stats des contrats pour un produit * \brief Page des stats des contrats pour un produit
\version $Id$ * \version $Id$
*/ */
require("./pre.inc.php"); require("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT."/lib/product.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/product.lib.php");
@ -60,9 +60,12 @@ else
/* /*
* Affiche fiche * View
*
*/ */
$staticcontrat=new Contrat($db);
$staticcontratligne=new ContratLigne($db);
$html = new Form($db); $html = new Form($db);
if ($_GET["id"] || $_GET["ref"]) if ($_GET["id"] || $_GET["ref"])
@ -123,19 +126,23 @@ if ($_GET["id"] || $_GET["ref"])
print '</div>'; print '</div>';
$sql = "SELECT distinct(s.nom), s.rowid as socid, s.code_client, c.rowid, "; $sql = "SELECT";
$sql.= " ".$db->pdate("c.datec")." as date, c.statut as statut, c.rowid as contratid"; $sql.= ' sum('.$db->ifsql("cd.statut=0",1,0).') as nb_initial,';
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user "; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND cd.date_fin_validite > ".$db->idate(mktime()),1,0).') as nb_running,';
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."contratdet as d"; $sql.= ' sum('.$db->ifsql("cd.statut=4 AND (cd.date_fin_validite IS NULL OR cd.date_fin_validite <= ".$db->idate(mktime()).")",1,0).') as nb_late,';
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ' sum('.$db->ifsql("cd.statut=5",1,0).') as nb_closed,';
$sql.= " WHERE c.fk_soc = s.rowid"; $sql.= " ".$db->pdate("c.datec")." as date, c.statut as statut, c.rowid as rowid,";
$sql.= " AND d.fk_contrat = c.rowid AND d.fk_product =".$product->id; $sql.= " s.nom, s.rowid as socid, s.code_client";
if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user";
if ($socid) $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,";
{ if (!$user->rights->societe->client->voir && !$socid) $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,";
$sql .= " AND c.fk_soc = $socid"; $sql.= " ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."contratdet as cd";
} $sql.= " WHERE c.rowid = cd.fk_contrat AND c.fk_soc = s.rowid";
$sql.= " ORDER BY $sortfield $sortorder "; if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
$sql.= " AND cd.fk_product =".$product->id;
if ($socid > 0) $sql.= " AND s.rowid = ".$socid;
$sql.= " GROUP BY c.rowid, c.datec, c.statut, s.nom, s.rowid";
$sql.= " ORDER BY $sortfield $sortorder";
$sql.= $db->plimit($conf->liste_limit +1, $offset); $sql.= $db->plimit($conf->liste_limit +1, $offset);
$result = $db->query($sql); $result = $db->query($sql);
@ -154,7 +161,9 @@ if ($_GET["id"] || $_GET["ref"])
print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$_GET["id"],'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$_GET["id"],'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"c.datec","","&amp;id=".$_GET["id"],'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"c.datec","","&amp;id=".$_GET["id"],'align="center"',$sortfield,$sortorder);
//print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder); //print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"c.fk_statut","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder); print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(0,3).'</td>';
print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(4,3).'</td>';
print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(5,3).'</td>';
print "</tr>\n"; print "</tr>\n";
$contratstatic=new Contrat($db); $contratstatic=new Contrat($db);
@ -168,7 +177,7 @@ if ($_GET["id"] || $_GET["ref"])
$var=!$var; $var=!$var;
print "<tr $bc[$var]>"; print "<tr $bc[$var]>";
print '<td><a href="'.DOL_URL_ROOT.'/contrat/fiche.php?id='.$objp->contratid.'">'.img_object($langs->trans("ShowContract"),"contract").' '; print '<td><a href="'.DOL_URL_ROOT.'/contrat/fiche.php?id='.$objp->rowid.'">'.img_object($langs->trans("ShowContract"),"contract").' ';
print $objp->rowid; print $objp->rowid;
print "</a></td>\n"; print "</a></td>\n";
print '<td><a href="'.DOL_URL_ROOT.'/compta/fiche.php?socid='.$objp->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dolibarr_trunc($objp->nom,44).'</a></td>'; print '<td><a href="'.DOL_URL_ROOT.'/compta/fiche.php?socid='.$objp->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dolibarr_trunc($objp->nom,44).'</a></td>';
@ -176,7 +185,11 @@ if ($_GET["id"] || $_GET["ref"])
print "<td align=\"center\">"; print "<td align=\"center\">";
print dolibarr_print_date($objp->date)."</td>"; print dolibarr_print_date($objp->date)."</td>";
//print "<td align=\"right\">".price($objp->total_ht)."</td>\n"; //print "<td align=\"right\">".price($objp->total_ht)."</td>\n";
print '<td align="right">'.$contratstatic->LibStatut($objp->statut,5).'</td>'; //print '<td align="right">';
print '<td align="center">'.($objp->nb_initial>0?$objp->nb_initial:'').'</td>';
print '<td align="center">'.($objp->nb_running+$objp->nb_late>0?$objp->nb_running+$objp->nb_late:'').'</td>';
print '<td align="center">'.($objp->nb_closed>0?$objp->nb_closed:'').'</td>';
//$contratstatic->LibStatut($objp->statut,5).'</td>';
print "</tr>\n"; print "</tr>\n";
$i++; $i++;
} }