// Date fin if ($mode == "" || $mode < 5) { print '<td align="center">' . ($obj->date_fin_validite ? dol_print_date($db->jdate($obj->date_fin_validite)) : ' '); } else { print '<td align="center">' . dol_print_date($db->jdate($obj->date_cloture)); } // Icone warning if ($obj->date_fin_validite && $db->jdate($obj->date_fin_validite) < $now - $conf->contrat->services->expires->warning_delay && $obj->statut < 5) { print img_warning($langs->trans("Late")); } else { print ' '; } print '</td>'; print '<td align="right" class="nowrap">'; if ($obj->cstatut == 0) { print $contractstatic->LibStatut(0, 5, $obj->date_fin_validite && $db->jdate($obj->date_fin_validite) < $now); } else { print $staticcontratligne->LibStatut($obj->statut, 5, $obj->date_fin_validite && $db->jdate($obj->date_fin_validite) < $now ? 1 : 0); } print '</td>'; print '<td></td>'; print "</tr>\n"; $i++; } $db->free($resql); print '</table></form>'; } else { dol_print_error($db); } llxFooter(); $db->close();
/** * Renvoi label of a given contrat status * @param statut Status id * @param mode 0=Long label, 1=Short label, 2=Picto + Libelle court, 3=Picto, 4=Picto + Long label of all services, 5=Libelle court + Picto, 6=Picto of all services * @return string Label */ function LibStatut($statut,$mode) { global $langs; $langs->load("contracts"); if ($mode == 0) { if ($statut == 0) { return $langs->trans("ContractStatusDraft").$text; } if ($statut == 1) { return $langs->trans("ContractStatusValidated").$text; } if ($statut == 2) { return $langs->trans("ContractStatusClosed").$text; } } if ($mode == 1) { if ($statut == 0) { return $langs->trans("ContractStatusDraft"); } if ($statut == 1) { return $langs->trans("ContractStatusValidated"); } if ($statut == 2) { return $langs->trans("ContractStatusClosed"); } } if ($mode == 2) { if ($statut == 0) { return img_picto($langs->trans('ContractStatusDraft'),'statut0').' '.$langs->trans("ContractStatusDraft"); } if ($statut == 1) { return img_picto($langs->trans('ContractStatusValidated'),'statut4').' '.$langs->trans("ContractStatusValidated"); } if ($statut == 2) { return img_picto($langs->trans('ContractStatusClosed'),'statut6').' '.$langs->trans("ContractStatusClosed"); } } if ($mode == 3) { if ($statut == 0) { return img_picto($langs->trans('ContractStatusDraft'),'statut0'); } if ($statut == 1) { return img_picto($langs->trans('ContractStatusValidated'),'statut4'); } if ($statut == 2) { return img_picto($langs->trans('ContractStatusClosed'),'statut6'); } } if ($mode == 4 || $mode == 6) { $line=new ContratLigne($this->db); $text=''; if ($mode == 4) { $text=($this->nbofserviceswait+$this->nbofservicesopened+$this->nbofservicesexpired+$this->nbofservicesclosed); $text.=' '.$langs->trans("Services"); $text.=': '; } $text.=$this->nbofserviceswait.' '.$line->LibStatut(0,3).' '; $text.=$this->nbofservicesopened.' '.$line->LibStatut(4,3,0).' '; $text.=$this->nbofservicesexpired.' '.$line->LibStatut(4,3,1).' '; $text.=$this->nbofservicesclosed.' '.$line->LibStatut(5,3); return $text; } if ($mode == 5) { if ($statut == 0) { return $langs->trans("ContractStatusDraft").' '.img_picto($langs->trans('ContractStatusDraft'),'statut0'); } if ($statut == 1) { return $langs->trans("ContractStatusValidated").' '.img_picto($langs->trans('ContractStatusValidated'),'statut4'); } if ($statut == 2) { return $langs->trans("ContractStatusClosed").' '.img_picto($langs->trans('ContractStatusClosed'),'statut6'); } } }
if ($result) { $num = $db->num_rows($result); print_barre_liste($langs->trans("Contrats"),$page,$_SERVER["PHP_SELF"],"&id=$product->id",$sortfield,$sortorder,'',$num,0,''); $i = 0; print "<table class=\"noborder\" width=\"100%\">"; print '<tr class="liste_titre">'; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","","&id=".$_GET["id"],'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&id=".$_GET["id"],'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&id=".$_GET["id"],'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"c.date_contrat","","&id=".$_GET["id"],'align="center"',$sortfield,$sortorder); //print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&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"; $contratstatic=new Contrat($db); if ($num > 0) { $var=True; while ($i < $num && $i < $conf->liste_limit) { $objp = $db->fetch_object($result); $var=!$var; print "<tr $bc[$var]>";
$param = '&search_contract=' . $search_contract; $param .= '&search_name=' . $search_name; $param .= '&search_ref_supplier=' . $search_ref_supplier; $param .= '&search_sale=' . $search_sale; if ($optioncss != '') { $param .= '&optioncss=' . $optioncss; } print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid", "", "{$param}", '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("RefCustomer"), $_SERVER["PHP_SELF"], "c.ref_customer", "", "{$param}", '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("RefSupplier"), $_SERVER["PHP_SELF"], "c.ref_supplier", "", "{$param}", '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("ThirdParty"), $_SERVER["PHP_SELF"], "s.nom", "", "{$param}", '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("SalesRepresentative"), $_SERVER["PHP_SELF"], "", "", "{$param}", '', $sortfield, $sortorder); //print_liste_field_titre($langs->trans("DateCreation"), $_SERVER["PHP_SELF"], "c.datec","","$param",'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateContract"), $_SERVER["PHP_SELF"], "c.date_contrat", "", "{$param}", 'align="center"', $sortfield, $sortorder); //print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "c.statut","","$param",'align="center"',$sortfield,$sortorder); print_liste_field_titre($staticcontratligne->LibStatut(0, 3), '', '', '', '', 'width="16"'); print_liste_field_titre($staticcontratligne->LibStatut(4, 3, 0), '', '', '', '', 'width="16"'); print_liste_field_titre($staticcontratligne->LibStatut(4, 3, 1), '', '', '', '', 'width="16"'); print_liste_field_titre($staticcontratligne->LibStatut(5, 3), '', '', '', '', 'width="16"'); print_liste_field_titre('', $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'maxwidthsearch '); print "</tr>\n"; print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">'; print '<tr class="liste_titre">'; print '<td class="liste_titre">'; print '<input type="text" class="flat" size="3" name="search_contract" value="' . dol_escape_htmltag($search_contract) . '">'; print '</td>'; print '<td class="liste_titre">'; print '<input type="text" class="flat" size="6" name="search_ref_customer value="' . dol_escape_htmltag($search_ref_supplier) . '">'; print '</td>'; print '<td class="liste_titre">'; print '<input type="text" class="flat" size="6" name="search_ref_supplier value="' . dol_escape_htmltag($search_ref_supplier) . '">';
} $total += $row[0]; } $i++; } $db->free($resql); } else { dol_print_error($db); } print '<table class="noborder" width="100%">'; print '<tr class="liste_titre"><td colspan="2">' . $langs->trans("Statistics") . ' - ' . $langs->trans("Services") . '</td></tr>' . "\n"; $var = true; $listofstatus = array(0, 4, 4, 5); $bool = false; foreach ($listofstatus as $status) { $dataseries[] = array('label' => $staticcontratligne->LibStatut($status, 1, $bool ? 1 : 0), 'data' => isset($nb[$status . $bool]) ? (int) $nb[$status . $bool] : 0); if (empty($conf->use_javascript_ajax)) { $var = !$var; print '<tr ' . $bc[$var] . '>'; print '<td>' . $staticcontratligne->LibStatut($status, 0, $bool ? 1 : 0) . '</td>'; print '<td align="right"><a href="services.php?mode=' . $status . ($bool ? '&filter=expired' : '') . '">' . ($nb[$status . $bool] ? $nb[$status . $bool] : 0) . ' ' . $staticcontratligne->LibStatut($status, 3, $bool ? 1 : 0) . '</a></td>'; print "</tr>\n"; } if ($status == 4 && $bool == false) { $bool = true; } else { $bool = false; } } if (!empty($conf->use_javascript_ajax)) { print '<tr><td align="center" colspan="2">';
/** * \brief Charge les donnees en memoire pour affichage ulterieur * \param $max Nombre maximum d'enregistrements a charger */ function loadBox($max=5) { global $user, $langs, $db, $conf; $this->max=$max; include_once(DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php"); $contratlignestatic=new ContratLigne($db); $this->info_box_head = array('text' => $langs->trans("BoxLastProductsInContract",$max)); if ($user->rights->service->lire && $user->rights->contrat->lire) { $sql = "SELECT s.nom, s.rowid as socid,"; $sql.= " c.rowid,"; $sql.= " cd.rowid as cdid, cd.tms as datem, cd.statut,"; $sql.= " p.rowid as pid, p.label, p.fk_product_type"; $sql.= " FROM (".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."contrat as c"; $sql.= ", ".MAIN_DB_PREFIX."contratdet as cd"; $sql.= ", ".MAIN_DB_PREFIX."product as p"; if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= ")"; $sql.= " WHERE s.rowid = c.fk_soc"; $sql.= " AND s.entity = ".$conf->entity; $sql.= " AND c.rowid = cd.fk_contrat"; $sql.= " AND cd.fk_product = p.rowid"; if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = "******" AND s.rowid = ".$user->societe_id; $sql.= $db->order("c.tms","DESC"); $sql.= $db->plimit($max, 0); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $now=gmmktime(); $i = 0; while ($i < $num) { $objp = $db->fetch_object($result); $datem=$db->jdate($objp->datem); // Multilangs if ($conf->global->MAIN_MULTILANGS) // si l'option est active { $sqld = "SELECT label"; $sqld.= " FROM ".MAIN_DB_PREFIX."product_lang"; $sqld.= " WHERE fk_product=".$objp->pid; $sqld.= " AND lang='". $langs->getDefaultLang() ."'"; $sqld.= " LIMIT 1"; $resultd = $db->query($sqld); if ($resultd) { $objtp = $db->fetch_object($resultd); if ($objtp->label != '') $objp->label = $objtp->label; } } $this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"', 'logo' => ($objp->fk_product_type==1?'object_service':'object_product'), 'url' => DOL_URL_ROOT."/contrat/fiche.php?id=".$objp->rowid); $this->info_box_contents[$i][1] = array('td' => 'align="left"', 'text' => $objp->label, 'maxlength' => 16, 'url' => DOL_URL_ROOT."/contrat/fiche.php?id=".$objp->rowid); $this->info_box_contents[$i][2] = array('td' => 'align="left" width="16"', 'logo' => 'company', 'url' => DOL_URL_ROOT."/comm/fiche.php?socid=".$objp->socid); $this->info_box_contents[$i][3] = array('td' => 'align="left"', 'text' => $objp->nom, 'maxlength' => 28, 'url' => DOL_URL_ROOT."/comm/fiche.php?socid=".$objp->socid); $this->info_box_contents[$i][4] = array('td' => 'align="right"', 'text' => dol_print_date($datem,'day')); $this->info_box_contents[$i][5] = array('td' => 'align="right" width="18"', 'text' => $contratlignestatic->LibStatut($objp->statut,3) ); $i++; } if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'align="center"','text'=>$langs->trans("NoContractedProducts")); } else { $this->info_box_contents[0][0] = array( 'td' => 'align="left"', 'maxlength'=>500, 'text' => ($db->error().' sql='.$sql)); } } else { $this->info_box_contents[0][0] = array('td' => 'align="left"', 'text' => $langs->trans("ReadPermissionNotAllowed")); } }
$sql .= " GROUP BY c.rowid, c.date_contrat, c.statut, s.nom, s.rowid, s.code_client"; $sql .= $db->order($sortfield, $sortorder); $sql .= $db->plimit($conf->liste_limit + 1, $offset); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); print_barre_liste($langs->trans("Contrats"), $page, $_SERVER["PHP_SELF"], "&id={$product->id}", $sortfield, $sortorder, '', $num, 0, ''); $i = 0; print '<table class="tagtable liste listwithfilterbefore" width="100%">'; print '<tr class="liste_titre">'; print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid", "", "&id=" . $product->id, '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", "&id=" . $product->id, '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("CustomerCode"), $_SERVER["PHP_SELF"], "s.code_client", "", "&id=" . $product->id, '', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "c.date_contrat", "", "&id=" . $product->id, 'align="center"', $sortfield, $sortorder); //print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&id=".$product->id,'align="right"',$sortfield,$sortorder); print_liste_field_titre($staticcontratligne->LibStatut(0, 3), $_SERVER["PHP_SELF"], "", '', '', 'width="16"', $sortfield, $sortorder, 'maxwidthsearch '); print_liste_field_titre($staticcontratligne->LibStatut(4, 3), $_SERVER["PHP_SELF"], "", '', '', 'width="16"', $sortfield, $sortorder, 'maxwidthsearch '); print_liste_field_titre($staticcontratligne->LibStatut(5, 3), $_SERVER["PHP_SELF"], "", '', '', 'width="16"', $sortfield, $sortorder, 'maxwidthsearch '); print "</tr>\n"; $contratstatic = new Contrat($db); if ($num > 0) { $var = True; while ($i < $num && $i < $conf->liste_limit) { $objp = $db->fetch_object($result); $var = !$var; print "<tr " . $bc[$var] . ">"; print '<td><a href="' . DOL_URL_ROOT . '/contrat/card.php?id=' . $objp->rowid . '">' . img_object($langs->trans("ShowContract"), "contract") . ' '; print $objp->rowid; print "</a></td>\n"; print '<td><a href="' . DOL_URL_ROOT . '/comm/card.php?socid=' . $objp->socid . '">' . img_object($langs->trans("ShowCompany"), "company") . ' ' . dol_trunc($objp->name, 44) . '</a></td>'; print "<td>" . $objp->code_client . "</td>\n";