Look: Modif esthtiques mineures

This commit is contained in:
Laurent Destailleur 2005-08-11 18:54:59 +00:00
parent 9be2f3aed6
commit ffa8294885
21 changed files with 667 additions and 531 deletions

View File

@ -30,9 +30,7 @@
require("./pre.inc.php");
/*
* Sécurité accés client
*/
// Sécurité accés client
if ($user->societe_id > 0)
{
$action = '';
@ -44,35 +42,25 @@ $sortorder=$_GET["sortorder"];
$sortfield=$_GET["sortfield"];
if ($page == -1) { $page = 0 ; }
$offset = $conf->liste_limit * $_GET["page"] ;
$pageprev = $_GET["page"] - 1;
$pagenext = $_GET["page"] + 1;
$search_nom=isset($_GET["search_nom"])?$_GET["search_nom"]:$_POST["search_nom"];
$search_ville=isset($_GET["search_ville"])?$_GET["search_ville"]:$_POST["search_ville"];
$search_code=isset($_GET["search_code"])?$_GET["search_contract"]:$_POST["search_code"];
$sql = "SELECT s.idp, s.nom, s.ville, ".$db->pdate("s.datec")." as datec, ".$db->pdate("s.datea")." as datea, st.libelle as stcomm, s.prefix_comm, s.code_client ";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."c_stcomm as st ";
$sql .= " WHERE s.fk_stcomm = st.id AND s.client=1";
if ($socidp)
{
$sql .= " AND s.idp = $socidp";
}
if ($socidp) $sql .= " AND s.idp = $socidp";
if ($user->societe_id) $sql .= " AND s.idp = " .$user->societe_id;
if ($_GET["search_nom"])
{
$sql .= " AND s.nom like '%".strtolower($_GET["search_nom"])."%'";
}
if ($_GET["search_code"])
{
$sql .= " AND s.code_client like '%".strtolower($_GET["search_code"])."%'";
}
if ($user->societe_id)
{
$sql .= " AND s.idp = " .$user->societe_id;
}
if ($search_nom) $sql .= " AND s.nom like '%".strtolower($search_nom)."%'";
if ($search_ville) $sql .= " AND s.ville like '%".strtolower($search_ville)."%'";
if ($search_code) $sql .= " AND s.code_client like '%".strtolower($search_code)."%'";
if ($socname)
{
@ -98,7 +86,7 @@ if ($result)
$i = 0;
$addu = "&page=$page&begin=$begin&search_nom=".$_GET["search_nom"];
$addu = "&search_nom=".$search_nom."&search_code=".$search_code."&search_ville=".$search_ville;
print '<table class="liste">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Company"),"clients.php","s.nom",$addu,"","",$sortfield);
@ -111,15 +99,17 @@ if ($result)
print '<form method="get" action="clients.php">';
print '<tr class="liste_titre">';
print '<td class="liste_titre" valign="right">';
print '<input type="text" class="flat" name="search_nom" value="'.stripslashes($_GET["search_nom"]).'">';
print '</td><td class="liste_titre" valign="right">&nbsp;';
print '<input type="text" class="flat" name="search_nom" value="'.stripslashes($search_nom).'">';
print '</td><td class="liste_titre" valign="right">';
print '<input type="text" class="flat" name="search_code" value="'.$_GET["search_code"].'" size="8">';
print '<input type="text" class="flat" name="search_ville" value="'.$search_ville.'" size="10">';
print '</td><td class="liste_titre" valign="right">';
print '<input type="text" class="flat" name="search_code" value="'.$search_code.'" size="10">';
print '</td><td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre" align="center"><input class="liste_titre" type="image" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans("Search").'">';
print "</td>";
print "</tr>\n";
print '</form>';
$var=True;
while ($i < min($num,$conf->liste_limit))
@ -159,5 +149,5 @@ else
$db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");
llxFooter('$Date$ - $Revision$');
?>

View File

@ -32,6 +32,7 @@
require_once("./pre.inc.php");
require_once("../contact.class.php");
require_once("../actioncomm.class.php");
require_once("../commande/commande.class.php");
require_once("../contrat/contrat.class.php");
$langs->load("companies");
@ -245,8 +246,8 @@ if ($_socid > 0)
print '<tr><td>'.$langs->trans('Country').'</td><td colspan="3">'.$objsoc->pays.'</td>';
print '<tr><td>'.$langs->trans('Phone').'</td><td>'.dolibarr_print_phone($objsoc->tel).'</td>';
print '<td>'.$langs->trans('Fax').'</td><td>'.dolibarr_print_phone($objsoc->fax).'</td></tr>';
print '<tr><td>'.$langs->trans('Phone').'</td><td>'.dolibarr_print_phone($objsoc->tel,$objsoc->pays_code).'</td>';
print '<td>'.$langs->trans('Fax').'</td><td>'.dolibarr_print_phone($objsoc->fax,$objsoc->pays_code).'</td></tr>';
print '<tr><td>'.$langs->trans("Web")."</td><td colspan=\"3\"><a href=\"http://$objsoc->url\">".$objsoc->url."</a>&nbsp;</td></tr>";
@ -264,18 +265,35 @@ if ($_socid > 0)
print '<tr><td>'.$langs->trans("Type").'</td><td>'.$objsoc->typent.'</td><td>'.$langs->trans("Staff").'</td><td>'.$objsoc->effectif.'</td></tr>';
print '<tr><td nowrap>';
print $langs->trans("CustomerDiscount").'</td><td>'.$objsoc->remise_client."&nbsp;%</td>";
print '<td colspan="2"><a href="remise.php?id='.$objsoc->id.'">';
print img_edit($langs->trans("Modify"));
print "</a>";
print '</td>';
print '<table width="100%" class="nobordernopadding"><tr><td>';
print $langs->trans("CustomerRelativeDiscount");
print '<td><td align="right">';
print '<a href="remise.php?id='.$objsoc->id.'">'.img_edit($langs->trans("Modify")).'</a>';
print '</td></tr></table>';
print '</td><td colspan="3">'.$objsoc->remise_client."&nbsp;%</td>";
print '<tr><td colspan="2">Remise exceptionnelles';
print '<tr><td>';
print '<table width="100%" class="nobordernopadding"><tr><td>';
print $langs->trans("CustomerAbsoluteDiscount");
print '<td><td align="right">';
print '<a href="remx.php?id='.$objsoc->id.'">'.img_edit($langs->trans("Modify")).'</a>';
print '</td></tr></table>';
print '</td>';
print '<td colspan="2"><a href="remx.php?id='.$objsoc->id.'">';
print img_edit($langs->trans("Modify"));
print "</a>";
print '</td></tr>';
print '<td colspan="3">';
$sql = "SELECT rc.amount_ht,".$db->pdate("rc.datec")." as dc";
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc";
$sql .= " WHERE rc.fk_soc =". $objsoc->id;
$sql .= " AND rc.fk_user = ".$user->id." AND fk_facture IS NULL";
$resql=$db->query($sql);
if ($resql)
{
$obj = $db->fetch_object($resql);
if ($obj->amount_ht) print $obj->amount_ht.'&nbsp;'.$langs->trans("Currency".$conf->monnaie);
else print $langs->trans("None");
}
print '</td>';
print '</tr>';
print "</table>";
@ -306,7 +324,7 @@ if ($_socid > 0)
{
$var=true;
$num = $db->num_rows($resql);
if ($num >0 )
if ($num > 0)
{
print '<tr class="liste_titre">';
print '<td colspan="4"><table width="100%" class="noborder"><tr><td>'.$langs->trans("LastPropals",($num<=$MAXLIST?"":$MAXLIST)).'</td><td align="right"><a href="'.DOL_URL_ROOT.'/comm/propal.php?socidp='.$objsoc->id.'">'.$langs->trans("AllPropals").' ('.$num.')</td></tr></table></td>';
@ -323,9 +341,9 @@ if ($_socid > 0)
{
print " <b>&gt; 15 jours</b>";
}
print "</td><td align=\"right\">".dolibarr_print_date($objp->dp)."</td>\n";
print '<td align="right">'.price($objp->price).'</td>';
print '<td align="center">'.$objp->statut.'</td></tr>';
print '</td><td align="right" width="80">'.dolibarr_print_date($objp->dp)."</td>\n";
print '<td align="right" width="120">'.price($objp->price).'</td>';
print '<td align="center" width="100">'.$objp->statut.'</td></tr>';
$var=!$var;
$i++;
}
@ -342,13 +360,15 @@ if ($_socid > 0)
*/
if($conf->commande->enabled)
{
$commande_static=new Commande($db);
print '<table class="noborder" width="100%">';
$sql = "SELECT s.nom, s.idp, p.rowid as propalid, p.total_ht, p.ref, ".$db->pdate("p.date_commande")." as dp";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as p";
$sql .= " WHERE p.fk_soc = s.idp ";
$sql = "SELECT s.nom, s.idp, c.rowid as cid, c.total_ht, c.ref, c.fk_statut, ".$db->pdate("c.date_commande")." as dc";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as c";
$sql .= " WHERE c.fk_soc = s.idp ";
$sql .= " AND s.idp = $objsoc->id";
$sql .= " ORDER BY p.date_commande DESC";
$sql .= " ORDER BY c.date_commande DESC";
$resql=$db->query($sql);
if ($resql)
@ -367,14 +387,10 @@ if ($_socid > 0)
$objp = $db->fetch_object($resql);
$var=!$var;
print "<tr $bc[$var]>";
print '<td><a href="'.DOL_URL_ROOT.'/commande/fiche.php?id='.$objp->propalid.'">'.img_object($langs->trans("ShowOrder"),"order").' '.$objp->ref."</a>\n";
if ( ($now - $objp->dp) > $lim && $objp->statutid == 1 )
{
print " <b>&gt; 15 jours</b>";
}
print "</td><td align=\"right\">".dolibarr_print_date($objp->dp)."</td>\n";
print '<td><a href="'.DOL_URL_ROOT.'/commande/fiche.php?id='.$objp->cid.'">'.img_object($langs->trans("ShowOrder"),"order").' '.$objp->ref."</a>\n";
print '</td><td align="right" width="80">'.dolibarr_print_date($objp->dc)."</td>\n";
print '<td align="right" width="120">'.price($objp->total_ht).'</td>';
print '<td align="center" width="100">'.$objp->statut.'</td></tr>';
print '<td align="center" width="100">'.$commande_static->status_label_short[$objp->fk_statut].'</td></tr>';
$i++;
}
$db->free($resql);
@ -408,7 +424,7 @@ if ($_socid > 0)
if ($num >0 )
{
print '<tr class="liste_titre">';
print '<td colspan="3"><table width="100%" class="noborder"><tr><td>'.$langs->trans("LastContracts",($num<=$MAXLIST?"":$MAXLIST)).'</td>';
print '<td colspan="4"><table width="100%" class="noborder"><tr><td>'.$langs->trans("LastContracts",($num<=$MAXLIST?"":$MAXLIST)).'</td>';
print '<td align="right"><a href="'.DOL_URL_ROOT.'/contrat/liste.php?socid='.$objsoc->id.'">'.$langs->trans("AllContracts").' ('.$num.')</td></tr></table></td>';
print '</tr>';
}
@ -419,8 +435,9 @@ if ($_socid > 0)
$var=!$var;
print "<tr $bc[$var]>";
print '<td><a href="'.DOL_URL_ROOT.'/contrat/fiche.php?id='.$objp->id.'">'.img_object($langs->trans("ShowContract"),"contract").' '.$objp->ref."</a></td>\n";
print "<td align=\"right\">".dolibarr_print_date($objp->dc)."</td>\n";
print "<td align=\"right\">".$contratstatic->LibStatut($objp->statut)."</td>\n";
print '<td align="right" width="80">'.dolibarr_print_date($objp->dc)."</td>\n";
print '<td width="120">&nbsp;</td>';
print '<td align="center" width="100">'.$contratstatic->LibStatut($objp->statut)."</td>\n";
print '</tr>';
$i++;
}
@ -550,11 +567,6 @@ if ($_socid > 0)
print '<a class="butAction" href="../fichinter/fiche.php?socidp='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddIntervention").'</a>';
}
if ($conf->projet->enabled && $user->rights->projet->creer)
{
print '<a class="butAction" href="../projet/fiche.php?socidp='.$objsoc->id.'&action=create">'.$langs->trans("AddProject").'</a>';
}
print '<a class="butAction" href="action/fiche.php?action=create&socid='.$objsoc->id.'">'.$langs->trans("AddAction").'</a>';
print '<a class="butAction" href="'.DOL_URL_ROOT.'/contact/fiche.php?socid='.$objsoc->id.'&amp;action=create">'.$langs->trans("AddContact").'</a>';
@ -626,10 +638,7 @@ if ($_socid > 0)
print '<td>'.$obj->poste.'&nbsp;</td>';
print '<td>';
/*
* Lien click to dial
*/
// Lien click to dial
if (strlen($obj->phone) && $user->clicktodial_enabled == 1)
{
print '<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&actionid=1&contactid='.$obj->idp.'&amp;socid='.$objsoc->id.'&amp;call='.$obj->phone.'">';

View File

@ -41,6 +41,8 @@ $user->getrights('fichinter');
$user->getrights('commande');
$user->getrights('projet');
// Securité accès client
$socidp='';
if ($user->societe_id > 0)
{
$socidp = $user->societe_id;
@ -55,7 +57,7 @@ llxHeader();
* Actions
*/
if ($_GET["action"] == 'add_bookmark')
if (isset($_GET["action"]) && $_GET["action"] == 'add_bookmark')
{
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bookmark WHERE fk_soc = ".$_GET["socidp"]." AND fk_user=".$user->id;
if (! $db->query($sql) )
@ -69,7 +71,7 @@ if ($_GET["action"] == 'add_bookmark')
}
}
if ($_GET["action"] == 'del_bookmark')
if (isset($_GET["action"]) && $_GET["action"] == 'del_bookmark')
{
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bookmark WHERE rowid=".$_GET["bid"];
$result = $db->query($sql);
@ -80,11 +82,11 @@ if ($_GET["action"] == 'del_bookmark')
* Affichage page
*/
print_titre($langs->trans("CommercialArea"));
print_fiche_titre($langs->trans("CommercialArea"));
print '<table border="0" width="100%">';
print '<table border="0" width="100%" class="notopnoleftnoright">';
print '<tr><td valign="top" width="30%">';
print '<tr><td valign="top" width="30%" class="notopnoleft">';
/*
@ -118,35 +120,35 @@ if ($conf->contrat->enabled) {
*/
if ($conf->propal->enabled && $user->rights->propale->lire)
{
$sql = "SELECT p.rowid, p.ref, p.price, s.nom";
$sql = "SELECT p.rowid, p.ref, p.price, s.idp, s.nom";
$sql .= " FROM ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."societe as s";
$sql .= " WHERE p.fk_statut = 0 and p.fk_soc = s.idp";
$resql=$db->query($sql);
if ($resql)
{
$var=true;
$total = 0;
$num = $db->num_rows($resql);
$i = 0;
if ($num > 0)
{
print '<table class="noborder" width="100%">';
print "<tr class=\"liste_titre\">";
print "<td colspan=\"3\">".$langs->trans("ProposalsDraft")."</td></tr>";
$i = 0;
$var=true;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$var=!$var;
print '<tr '.$bc[$var].'><td width="25%" nowrap>'."<a href=\"".DOL_URL_ROOT."/comm/propal.php?propalid=".$obj->rowid."\">".img_object($langs->trans("ShowPropal"),"propal")." ".$obj->ref."</a></td><td>".$obj->nom."</td><td align=\"right\">".price($obj->price)."</td></tr>";
print '<tr '.$bc[$var].'><td nowrap>'."<a href=\"".DOL_URL_ROOT."/comm/propal.php?propalid=".$obj->rowid."\">".img_object($langs->trans("ShowPropal"),"propal")." ".$obj->ref.'</a></td>';
print '<td><a href="fiche.php?socid='.$obj->idp.'">'.dolibarr_trunc($obj->nom,18).'</a></td><td align="right">'.price($obj->price).'</td></tr>';
$i++;
$total += $obj->price;
}
if ($total>0) {
$var=!$var;
print '<tr class="liste_total"><td colspan="2">'.$langs->trans("Total")."</td><td align=\"right\">".price($total)."</td></tr>";
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td colspan="2" align="right">'.price($total)."</td></tr>";
}
print "</table><br>";
}
@ -161,7 +163,7 @@ if ($conf->propal->enabled && $user->rights->propale->lire)
if ($conf->commande->enabled)
{
$langs->load("orders");
$sql = "SELECT c.rowid, c.ref, s.nom, s.idp FROM ".MAIN_DB_PREFIX."commande as c, ".MAIN_DB_PREFIX."societe as s";
$sql = "SELECT c.rowid, c.ref, c.total_ttc, s.nom, s.idp FROM ".MAIN_DB_PREFIX."commande as c, ".MAIN_DB_PREFIX."societe as s";
$sql .= " WHERE c.fk_soc = s.idp AND c.fk_statut = 0";
if ($socidp)
{
@ -170,12 +172,14 @@ if ($conf->commande->enabled)
if ( $db->query($sql) )
{
$total = 0;
$num = $db->num_rows();
if ($num)
{
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("DraftOrders").'</td></tr>';
print '<td colspan="3">'.$langs->trans("DraftOrders").'</td></tr>';
$i = 0;
$var = true;
while ($i < $num)
@ -183,8 +187,14 @@ if ($conf->commande->enabled)
$var=!$var;
$obj = $db->fetch_object();
print "<tr $bc[$var]><td nowrap><a href=\"../commande/fiche.php?id=$obj->rowid\">".img_object($langs->trans("ShowOrder"),"order")." ".$obj->ref."</a></td>";
print '<td><a href="fiche.php?socid='.$obj->idp.'">'.dolibarr_trunc($obj->nom,24).'</a></td></tr>';
print '<td><a href="fiche.php?socid='.$obj->idp.'">'.dolibarr_trunc($obj->nom,18).'</a></td>';
print '<td align="right">'.price($obj->total_ttc).'</td></tr>';
$i++;
$total += $obj->total_ttc;
}
if ($total>0) {
$var=!$var;
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td colspan="2" align="right">'.price($total)."</td></tr>";
}
print "</table><br>";
}
@ -235,7 +245,7 @@ if ( $db->query($sql) )
}
}
print '</td><td valign="top" width="70%">';
print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
/*
@ -289,7 +299,7 @@ if ($user->rights->societe->lire)
* Dernières actions commerciales effectuées
*/
$sql = "SELECT a.id, ".$db->pdate("a.datea")." as da, c.libelle, a.fk_user_author, s.nom as sname, s.idp";
$sql = "SELECT a.id, ".$db->pdate("a.datea")." as da, c.code, c.libelle, a.fk_user_author, s.nom as sname, s.idp";
$sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a, ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."societe as s";
$sql .= " WHERE c.id=a.fk_action AND a.percent >= 100 AND s.idp = a.fk_soc";
if ($socidp)
@ -528,18 +538,7 @@ if ($conf->propal->enabled && $user->rights->propale->lire) {
print '<a href="propal.php?propalid='.$objp->propalid.'">'.img_object($langs->trans("ShowPropal"),"propal").' ';
print $objp->ref.'</a></td>';
print '<td><a href="fiche.php?socid='.$objp->idp.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dolibarr_trunc($objp->nom,44).'</a></td>';
$now = time();
$lim = 3600 * 24 * 15 ;
if ( ($now - $objp->dp) > $lim && $objp->statutid == 1 )
{
print "<td><b> &gt; 15 jours</b></td>";
}
else
{
print "<td>&nbsp;</td>";
}
print "<td>&nbsp;</td>";
print "<td align=\"right\">";
print dolibarr_print_date($objp->dp)."</td>\n";
print "<td align=\"right\">".price($objp->price)."</td>\n";

View File

@ -61,11 +61,11 @@ function valeur($sql)
*
*/
print_titre($langs->trans("ProspectionArea"));
print_fiche_titre($langs->trans("ProspectionArea"));
print '<table border="0" width="100%" cellspacing="0" cellpadding="4">';
print '<table border="0" width="100%" class="notopnoleftnoright">';
print '<tr><td valign="top" width="30%">';
print '<tr><td valign="top" width="30%" class="notopnoleft">';
if ($conf->propal->enabled)
{
@ -165,7 +165,7 @@ if ($conf->propal->enabled && $user->rights->propale->lire)
* Actions commerciales a faire
*
*/
print '</td><td valign="top" width="70%">';
print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
$sql = "SELECT a.id, ".$db->pdate("a.datea")." as da, c.code, c.libelle, a.fk_user_author, s.nom as sname, s.idp";
$sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a, ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."societe as s";

View File

@ -44,11 +44,7 @@ if ($_GET["action"] == 'cstc')
$db->query($sql);
}
dolibarr_user_page_param($db, $user, $_GET);
/*
* Sécurité accés client
*/
// Sécurité accés client
if ($user->societe_id > 0)
{
$action = '';

View File

@ -1,6 +1,6 @@
<?PHP
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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
@ -43,35 +43,31 @@ $langs->load("companies");
if ($_POST["action"] == 'setremise')
{
$soc = New Societe($db);
$soc->fetch($_GET["id"]);
$soc->set_remise_client($_POST["remise"],$user);
Header("Location: remise.php?id=".$_GET["id"]);
$soc = New Societe($db);
$soc->fetch($_GET["id"]);
$soc->set_remise_client($_POST["remise"],$user);
Header("Location: remise.php?id=".$_GET["id"]);
exit;
}
llxHeader();
/*
*
*/
$_socid = $_GET["id"];
/*
* Sécurité si un client essaye d'accéder à une autre fiche que la sienne
*/
// Sécurité si un client essaye d'accéder à une autre fiche que la sienne
if ($user->societe_id > 0)
{
$_socid = $user->societe_id;
$_socid = $user->societe_id;
}
/*********************************************************************************
*
* Mode fiche
*
*
*********************************************************************************/
if ($_socid > 0)
{
@ -156,52 +152,26 @@ if ($_socid > 0)
print '<tr><td valign="top">';
print '<table class="border" width="100%">';
print '<tr><td colspan="2">';
print $langs->trans("CustomerDiscount").'</td><td colspan="2">'.$objsoc->remise_client."&nbsp;%</td></tr>";
print '<tr><td colspan="2" width="25%">';
print $langs->trans("CustomerRelativeDiscount").'</td><td colspan="2">'.$objsoc->remise_client."%</td></tr>";
print '<tr><td colspan="2">';
print $langs->trans("NewValue").'</td><td colspan="2"><input type="text" size="5" name="remise" value="'.$objsoc->remise_client.'">&nbsp;%</td></tr>';
print $langs->trans("NewValue").'</td><td colspan="2"><input type="text" size="5" name="remise" value="'.$objsoc->remise_client.'">%</td></tr>';
print '<tr><td colspan="4" align="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></td></tr>';
print "</table>";
print "</form>";
print "<br>";
/*
*
*/
print "</td>\n";
/*
*
*
*/
print "</td></tr>";
print "</table></div>\n";
print '<br>';
/*
*
* Notes sur la societe
*
*/
if ($objsoc->note)
{
print '<table border="1" width="100%" cellspacing="0" bgcolor="#e0e0e0">';
print "<tr><td>".nl2br($objsoc->note)."</td></tr>";
print "</table>";
}
/*
*
*/
/*
*
* Liste de l'historique des remises
*
*/
$sql = "SELECT rc.rowid,rc.remise_client,".$db->pdate("rc.datec")." as dc, u.code";
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise as rc, ".MAIN_DB_PREFIX."user as u";

View File

@ -1,6 +1,6 @@
<?PHP
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
*
* 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
@ -23,14 +23,11 @@
/**
\file htdocs/comm/remx.php
\ingroup commercial
\brief Onglet ???
\brief Onglet de définition des avoirs
\version $Revision$
*/
require_once("./pre.inc.php");
require_once("../contact.class.php");
//require_once("../cactioncomm.class.php");
//require_once("../actioncomm.class.php");
$user->getrights('propale');
$user->getrights('commande');
@ -38,6 +35,7 @@ $user->getrights('projet');
$langs->load("orders");
$langs->load("bills");
$langs->load("companies");
@ -47,25 +45,21 @@ if ($_POST["action"] == 'setremise')
$soc->fetch($_GET["id"]);
$soc->set_remise_except($_POST["remise"],$user);
Header("Location: remx.php?id=".$_GET["id"]);
}
llxHeader();
/*
*
*/
$_socid = $_GET["id"];
/*
* Sécurité si un client essaye d'accéder à une autre fiche que la sienne
*/
// Sécurité si un client essaye d'accéder à une autre fiche que la sienne
if ($user->societe_id > 0)
{
$_socid = $user->societe_id;
}
/*********************************************************************************
*
* Mode fiche
@ -96,19 +90,53 @@ if ($_socid > 0)
if ($objsoc->client==1)
{
$head[$h][0] = DOL_URL_ROOT.'/comm/fiche.php?socid='.$objsoc->id;
$head[$h][1] = 'Client';
$h++;
}
if ($objsoc->client==1)
{
$head[$h][0] = DOL_URL_ROOT.'/comm/remx.php?id='.$objsoc->id;
$head[$h][1] = 'Remises exceptionnelles';
$hselected=$h;
$head[$h][0] = DOL_URL_ROOT.'/comm/fiche.php?socid='.$objsoc->id;
$head[$h][1] = $langs->trans("Customer");
$h++;
}
if ($objsoc->client==2)
{
$hselected=$h;
$head[$h][0] = DOL_URL_ROOT.'/comm/prospect/fiche.php?id='.$obj->socid;
$head[$h][1] = $langs->trans("Prospect");
$h++;
}
if ($objsoc->fournisseur)
{
$head[$h][0] = DOL_URL_ROOT.'/fourn/fiche.php?socid='.$objsoc->id;
$head[$h][1] = $langs->trans("Supplier");
$h++;
}
if ($conf->compta->enabled) {
$head[$h][0] = DOL_URL_ROOT.'/compta/fiche.php?socid='.$objsoc->id;
$head[$h][1] = $langs->trans("Accountancy");
$h++;
}
$head[$h][0] = DOL_URL_ROOT.'/socnote.php?socid='.$objsoc->id;
$head[$h][1] = $langs->trans("Note");
$h++;
if ($user->societe_id == 0)
{
$head[$h][0] = DOL_URL_ROOT.'/docsoc.php?socid='.$objsoc->id;
$head[$h][1] = $langs->trans("Documents");
$h++;
}
$head[$h][0] = DOL_URL_ROOT.'/societe/notify/fiche.php?socid='.$objsoc->id;
$head[$h][1] = $langs->trans("Notifications");
$h++;
if ($user->societe_id == 0)
{
$head[$h][0] = DOL_URL_ROOT."/comm/index.php?socidp=$objsoc->id&action=add_bookmark";
$head[$h][1] = '<img border="0" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/bookmark.png" alt="Bookmark" title="Bookmark">';
$head[$h][2] = 'image';
}
dolibarr_fiche_head($head, $hselected, $objsoc->nom);
/*
@ -118,114 +146,125 @@ if ($_socid > 0)
print '<form method="POST" action="remx.php?id='.$objsoc->id.'">';
print '<input type="hidden" name="action" value="setremise">';
print '<table class="border" cellpadding="3" cellspacing="0" width="100%">';
print '<table class="border" width="100%">';
print '<tr><td width="20%">Remises exceptionnelles';
print '</td><td>&nbsp;</td></tr>';
$sql = "SELECT rc.amount_ht,".$db->pdate("rc.datec")." as dc, rc.fk_user";
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc";
$sql .= " WHERE rc.fk_soc =". $objsoc->id;
$sql .= " AND fk_facture IS NULL";
$resql=$db->query($sql);
if ($resql)
{
$obj = $db->fetch_object($resql);
$remise_all+=$obj->amount_ht;
if ($obj->fk_user == $user->id) $remise_user+=$obj->amount_ht;
}
print '<tr><td>Montant HT';
print '</td><td><input type="text" size="5" name="remise" value="'.$objsoc->remise_client.'">&nbsp;<input type="submit" value="'.$langs->trans("Save").'"></td></tr>';
print '<tr><td width="25%">'.$langs->trans("CustomerAbsoluteDiscountAllUsers").'</td>';
print '<td>'.$remise_all.'&nbsp;'.$langs->trans("Currency".$conf->monnaie).'</td></tr>';
print '<tr><td width="25%">'.$langs->trans("CustomerAbsoluteDiscountMy").'</td>';
print '<td>'.$remise_user.'&nbsp;'.$langs->trans("Currency".$conf->monnaie).'</td></tr>';
print '<tr><td>'.$langs->trans("NewValue").'</td>';
print '<td><input type="text" size="5" name="remise" value="'.$remise_user.'">&nbsp;'.$langs->trans("Currency".$conf->monnaie).'</td></tr>';
print '<tr><td align="center" colspan="2">&nbsp;<input type="submit" value="'.$langs->trans("Save").'"></td></tr>';
print "</table></form>";
print "<br>";
/*
*
*/
print "</td>\n";
print "</div>\n";
print '<br>';
/*
*
* Liste
*
*/
$sql = "SELECT rc.amount_ht,".$db->pdate("rc.datec")." as dc, u.code, fk_facture";
$sql = "SELECT rc.amount_ht,".$db->pdate("rc.datec")." as dc, u.code";
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc";
$sql .= " , ".MAIN_DB_PREFIX."user as u";
$sql .= " WHERE rc.fk_soc =". $objsoc->id;
$sql .= " AND u.rowid = rc.fk_user AND fk_facture IS NULL";
$sql .= " ORDER BY rc.datec DESC";
if ( $db->query($sql) )
{
print '<table class="border" cellspacing="0" width="100%" cellpadding="1">';
print '<tr class="liste_titre"><td>Date</td>';
print '<td>Montant HT</td><td>Utilisateur</td></tr>';
$tag = !$tag;
print "<tr $bc[$tag]>";
$i = 0 ;
$num = $db->num_rows();
$resql=$db->query($sql);
if ($resql)
{
print_titre($langs->trans("Ristournes restant dues"));
print '<table width="100%" class="noborder">';
print '<tr class="liste_titre"><td width="80">'.$langs->trans("Date").'</td>';
print '<td>'.$langs->trans("AmountHT").'</td><td width="100">'.$langs->trans("Accordée par").'</td></tr>';
while ($i < $num )
{
$obj = $db->fetch_object( $i);
$tag = !$tag;
print "<tr $bc[$tag]>";
print '<td>'.strftime("%d %B %Y",$obj->dc).'</td>';
print '<td>'.price($obj->amount_ht).'</td>';
print '<td>'.$obj->code.'</td></tr>';
$i++;
}
$db->free();
print "</table>";
}
$var = true;
$i = 0 ;
$num = $db->num_rows($resql);
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$var = !$var;
print "<tr $bc[$var]>";
print '<td>'.dolibarr_print_date($obj->dc).'</td>';
print '<td>'.price($obj->amount_ht).'</td>';
print '<td>'.$obj->code.'</td></tr>';
$i++;
}
$db->free($resql);
print "</table>";
}
else
{
print $db->error();
}
{
dolibarr_print_error($db);
}
print '<br />';
/*
*
* Liste Archives
*
*/
$sql = "SELECT rc.amount_ht,".$db->pdate("rc.datec")." as dc, u.code, fk_facture";
$sql = "SELECT rc.amount_ht,".$db->pdate("rc.datec")." as dc, u.code, rc.fk_facture, f.facnumber";
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc";
$sql .= " , ".MAIN_DB_PREFIX."user as u";
$sql .= " , ".MAIN_DB_PREFIX."facture as f";
$sql .= " WHERE rc.fk_soc =". $objsoc->id;
$sql .= " AND fk_facture = f.rowid";
$sql .= " AND u.rowid = rc.fk_user AND fk_facture IS NOT NULL";
$sql .= " ORDER BY rc.datec DESC";
if ( $db->query($sql) )
{
print '<table class="border" cellspacing="0" width="100%" cellpadding="1">';
print '<tr class="liste_titre"><td>Date</td>';
print '<td>Montant HT</td><td align="center">Facture</td><td>Utilisateur</td></tr>';
$tag = !$tag;
print "<tr $bc[$tag]>";
$i = 0 ;
$num = $db->num_rows();
$resql=$db->query($sql);
if ($resql)
{
print_titre($langs->trans("Ristournes appliquées"));
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td width="80">'.$langs->trans("Date").'</td>';
print '<td>'.$langs->trans("AmountHT").'</td><td align="center">'.$langs->trans("Bill").'</td><td width="100">'.$langs->trans("Author").'</td></tr>';
while ($i < $num )
{
$obj = $db->fetch_object( $i);
$tag = !$tag;
print "<tr $bc[$tag]>";
print '<td>'.strftime("%d %B %Y",$obj->dc).'</td>';
print '<td>'.price($obj->amount_ht).'</td>';
print '<td align="center"><a href="'.DOL_URL_ROOT.'/compta/facture.php?facid='.$obj->fk_facture.'">'.$obj->fk_facture.'</a></td>';
print '<td>'.$obj->code.'</td></tr>';
$i++;
}
$db->free();
print "</table>";
}
$var = true;
$i = 0 ;
$num = $db->num_rows($resql);
while ($i < $num )
{
$obj = $db->fetch_object($resql);
$var = !$var;
print "<tr $bc[$var]>";
print '<td>'.dolibarr_print_date($obj->dc).'</td>';
print '<td>'.price($obj->amount_ht).'</td>';
print '<td align="center"><a href="'.DOL_URL_ROOT.'/compta/facture.php?facid='.$obj->fk_facture.'">'.img_object($langs->trans("ShowBill"),'bill').' '.$obj->facnumber.'</a></td>';
print '<td>'.$obj->code.'</td></tr>';
$i++;
}
$db->free($resql);
print "</table>";
}
else
{
print $db->error();
}
{
print dolibarr_print_error($db);
}
}
$db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");
llxFooter('$Date$ - $Revision$');
?>

View File

@ -36,33 +36,45 @@
class Commande
{
var $db ;
var $id ;
var $brouillon;
/** \brief Constructeur
*/
function Commande($DB)
var $db ;
var $id ;
var $brouillon;
// Pour board
var $nbtodo;
var $nbtodolate;
/**
* \brief Constructeur
* \param DB Handler d'accès base
*/
function Commande($DB)
{
global $langs;
$langs->load("orders");
$this->db = $DB;
$this->sources[0] = "Proposition commerciale";
$this->sources[1] = "Internet";
$this->sources[2] = "Courrier";
$this->sources[3] = "Téléphone";
$this->sources[4] = "Fax";
$this->sources[5] = "Commercial";
$this->statuts[-1] = $langs->trans("StatusOrderCanceled");
$this->statuts[0] = $langs->trans("StatusOrderDraft");
$this->statuts[1] = $langs->trans("StatusOrderValidated");
$this->statuts[2] = $langs->trans("StatusOrderOnProcess");
$this->statuts[3] = $langs->trans("StatusOrderProcessed");
$this->products = array();
global $langs;
$langs->load("orders");
$this->db = $DB;
$this->statuts[-1] = $langs->trans("StatusOrderCanceled");
$this->statuts[0] = $langs->trans("StatusOrderDraft");
$this->statuts[1] = $langs->trans("StatusOrderValidated");
$this->statuts[2] = $langs->trans("StatusOrderOnProcess");
$this->statuts[3] = $langs->trans("StatusOrderProcessed");
$this->status_label_short[-1] = $langs->trans("StatusOrderCanceled");
$this->status_label_short[0] = $langs->trans("StatusOrderDraft");
$this->status_label_short[1] = $langs->trans("StatusOrderValidated");
$this->status_label_short[2] = $langs->trans("StatusOrderOnProcessShort");
$this->status_label_short[3] = $langs->trans("StatusOrderProcessed");
$this->sources[0] = $langs->trans("OrderSource0");
$this->sources[1] = $langs->trans("OrderSource1");
$this->sources[2] = $langs->trans("OrderSource2");
$this->sources[3] = $langs->trans("OrderSource3");
$this->sources[4] = $langs->trans("OrderSource4");
$this->sources[5] = $langs->trans("OrderSource5");
$this->products = array();
}
/** \brief Créé la facture depuis une propale existante
@ -162,27 +174,31 @@ class Commande
}
/**
* Cloture la commande
*
* \brief Cloture la commande
* \param user Objet utilisateur qui cloture
* \return int <0 si ko, >0 si ok
*/
function cloture($user)
function cloture($user)
{
if ($user->rights->commande->valider)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."commande SET fk_statut = 3";
$sql .= " WHERE rowid = $this->id AND fk_statut > 0 ;";
if ($this->db->query($sql) )
{
return 1;
}
else
{
dolibarr_print_error($this->db);
}
}
}
if ($user->rights->commande->valider)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."commande";
$sql.= " SET fk_statut = 3,";
$sql.= " fk_user_cloture = ".$user->id.",";
$sql.= " date_cloture = now()";
$sql.= " WHERE rowid = $this->id AND fk_statut > 0 ;";
if ($this->db->query($sql) )
{
return 1;
}
else
{
dolibarr_print_error($this->db);
return -1;
}
}
}
/**
* Annule la commande
@ -845,7 +861,7 @@ class Commande
while ($obj=$this->db->fetch_object($resql))
{
$this->nbtodo++;
if ($obj->da < (time() - $conf->commande->traitement->warning_delay)) $this->nbtodolate++;
if ($obj->datec < (time() - $conf->commande->traitement->warning_delay)) $this->nbtodolate++;
}
return 1;
}
@ -857,6 +873,60 @@ class Commande
}
}
/**
* \brief Charge les informations d'ordre info dans l'objet commande
* \param id Id de la commande a charger
*/
function info($id)
{
$sql = "SELECT c.rowid, ".$this->db->pdate("date_creation")." as datec,";
$sql.= " ".$this->db->pdate("date_valid")." as datev,";
$sql.= " ".$this->db->pdate("date_cloture")." as datecloture,";
$sql.= " fk_user_author, fk_user_valid, fk_user_cloture";
$sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
$sql.= " WHERE c.rowid = ".$id;
$result=$this->db->query($sql);
if ($result)
{
if ($this->db->num_rows($result))
{
$obj = $this->db->fetch_object($result);
$this->id = $obj->rowid;
if ($obj->fk_user_author) {
$cuser = new User($this->db, $obj->fk_user_author);
$cuser->fetch();
$this->user_creation = $cuser;
}
if ($obj->fk_user_valid) {
$vuser = new User($this->db, $obj->fk_user_valid);
$vuser->fetch();
$this->user_validation = $vuser;
}
if ($obj->fk_user_cloture) {
$cluser = new User($this->db, $obj->fk_user_cloture);
$cluser->fetch();
$this->user_cloture = $cluser;
}
$this->date_creation = $obj->datec;
$this->date_validation = $obj->datev;
$this->date_cloture = $obj->datecloture;
}
$this->db->free($result);
}
else
{
dolibarr_print_error($this->db);
}
}
}
@ -868,7 +938,7 @@ class Commande
class CommandeLigne
{
var $pu;
var $pu;
}
?>

View File

@ -255,30 +255,29 @@ if ($_GET["action"] == 'create' && $user->rights->commande->creer)
print '<table class="border" width="100%">';
print '<tr><td>'.$langs->trans("Customer").' :</td><td>'.$soc->nom_url.'</td>';
print '<tr><td>'.$langs->trans("Ref").' :</td><td>Provisoire</td>';
print '<td>'.$langs->trans("Comments").' :</td></tr>';
print '<tr><td>'.$langs->trans("Author").' :</td><td>'.$user->fullname.'</td>';
print '<td rowspan="5" valign="top">';
print '<textarea name="note" wrap="soft" cols="60" rows="6"></textarea></td></tr>';
$nbrow=3;
if ($conf->projet->enabled) $nbrow++;
print '<tr><td>'.$langs->trans("Customer").' :</td><td>'.$soc->nom_url.'</td><td rowspan="'.$nbrow.'">';
print '<textarea name="note" wrap="soft" cols="50" rows="4"></textarea></td></tr>';
print '<tr><td>'.$langs->trans("Date").' :</td><td>';
$html->select_date();
print "</td></tr>";
print '<tr><td>'.$langs->trans("Ref").' :</td><td>Provisoire</td></tr>';
if ($conf->projet->enabled)
{
print '<tr><td>'.$langs->trans("Project").' :</td><td>';
$html->select_projects($soc->id,'','projetid');
print "</td></tr>";
}
print '<tr><td>'.$langs->trans("Source").' :</td><td>';
$html->select_array("source_id",$new_commande->sources,2);
print "</td></tr>";
print '<tr><td>'.$langs->trans("Project").' :</td><td>';
$proj = new Project($db);
$html->select_array("projetid",$proj->liste_array($soc->id),0,1);
print "</td></tr>";
if ($propalid > 0)
{
$amount = ($obj->price);
@ -296,43 +295,22 @@ if ($_GET["action"] == 'create' && $user->rights->commande->creer)
}
else
{
/*
* Services/produits prédéfinis
*/
$NBLINES=8;
print '<tr><td colspan="3">'.$langs->trans("Services").'/'.$langs->trans("Products").'</td></tr>';
print '<tr><td colspan="3">';
/*
*
* Liste des elements
*
*/
$sql = "SELECT p.rowid,p.label,p.ref,p.price FROM ".MAIN_DB_PREFIX."product as p ";
$sql .= " WHERE envente = 1";
$sql .= " ORDER BY p.nbvente DESC LIMIT 20";
if ( $db->query($sql) )
{
$opt = "<option value=\"0\" selected></option>";
if ($result)
{
$num = $db->num_rows(); $i = 0;
while ($i < $num)
{
$objp = $db->fetch_object();
$opt .= "<option value=\"$objp->rowid\">[$objp->ref] $objp->label : $objp->price</option>\n";
$i++;
}
}
$db->free();
}
else
{
dolibarr_print_error($db);
}
$NBLINES=8;
print '<table class="noborder">';
print '<tr><td>'.$langs->trans("ProductsAndServices").'</td><td>'.$langs->trans("Qty").'</td><td>'.$langs->trans("Discount").'</td></tr>';
for ($i = 1 ; $i <= $NBLINES ; $i++)
{
print '<tr><td><select name="idprod'.$i.'">'.$opt.'</select></td>';
print '<tr><td>';
print $html->select_produits('','idprod');
print '</td>';
print '<td><input type="text" size="3" name="qty'.$i.'" value="1"></td>';
print '<td><input type="text" size="3" name="remise_percent'.$i.'" value="0">%</td></tr>';
}
@ -344,7 +322,7 @@ if ($_GET["action"] == 'create' && $user->rights->commande->creer)
/*
*
*/
print '<tr><td colspan="3" align="center"><input type="submit" value="'.$langs->trans("Create").'"></td></tr>';
print '<tr><td colspan="3" align="center"><input type="submit" class="button" value="'.$langs->trans("Create").'"></td></tr>';
print "</form>\n";
print "</table>\n";
@ -458,7 +436,11 @@ else
$h++;
}
dolibarr_fiche_head($head, $hselected, $soc->nom." / ".$langs->trans("Order")." : $commande->ref");
$head[$h][0] = DOL_URL_ROOT.'/commande/info.php?id='.$commande->id;
$head[$h][1] = $langs->trans("Info");
$h++;
dolibarr_fiche_head($head, $hselected, $langs->trans("Order").": $commande->ref");
/*
* Confirmation de la suppression de la commande
@ -501,36 +483,10 @@ else
/*
* Commande
*/
print '<table class="border" width="100%">';
print '<tr><td width="20%">'.$langs->trans("Order")."</td>";
print '<td width="15%">'.$commande->ref.'</td>';
print '<td width="15%" align="center">'.$commande->statuts[$commande->statut].'</td>';
print '<td width="50%">';
if ($conf->projet->enabled)
{
$langs->load("projects");
if ($commande->projet_id > 0)
{
print $langs->trans("Project").' : ';
$projet = New Project($db);
$projet->fetch($commande->projet_id);
print '<a href="'.DOL_URL_ROOT.'/projet/fiche.php?id='.$commande->projet_id.'">'.$projet->title.'</a>';
}
else
{
print $langs->trans("Project").' : ';
print '<a href="fiche.php?id='.$id.'&amp;action=classer">'.$langs->trans("ClassifyOrder").'</a>';
}
}
print '&nbsp;</td></tr>';
print "<tr><td>".$langs->trans("Customer")."</td>";
print '<td colspan="2">';
print '<b><a href="'.DOL_URL_ROOT.'/comm/fiche.php?socid='.$soc->id.'">'.$soc->nom.'</a></b></td>';
print '<td width="50%">'.$langs->trans("Source").' : ' . $commande->sources[$commande->source] ;
print '<tr><td width="15%">'.$langs->trans("Ref")."</td>";
print '<td colspan="2">'.$commande->ref.'</td>';
print '<td>'.$langs->trans("Source").' : ' . $commande->sources[$commande->source] ;
if ($commande->source == 0)
{
/* Propale */
@ -539,30 +495,64 @@ else
print ' -> <a href="'.DOL_URL_ROOT.'/comm/propal.php?propalid='.$propal->id.'">'.$propal->ref.'</a>';
}
print "</td></tr>";
print "<tr><td>".$langs->trans("Customer")."</td>";
print '<td colspan="3">';
print '<a href="'.DOL_URL_ROOT.'/comm/fiche.php?socid='.$soc->id.'">'.$soc->nom.'</a></td>';
print '</tr>';
print '<tr><td>'.$langs->trans("Status").'</td>';
print "<td colspan=\"2\">".$commande->statuts[$commande->statut]."</td>\n";
$nbrow=6;
if ($conf->projet->enabled) $nbrow++;
print '<td rowspan="'.$nbrow.'" valign="top">'.$langs->trans("Note").' :<br>';
if ($commande->brouillon == 1 && $user->rights->commande->creer)
{
print '<form action="fiche.php?id='.$id.'" method="post">';
print '<input type="hidden" name="action" value="setnote">';
print '<textarea name="note" style="width:95%;height:"80%">'.$commande->note.'</textarea><br>';
print '<center><input type="submit" class="button" value="'.$langs->trans("Save").'"></center>';
print '</form>';
}
else
{
print nl2br($commande->note);
}
print '</td></tr>';
print '<tr><td>'.$langs->trans("Date").'</td>';
print "<td colspan=\"2\">".dolibarr_print_date($commande->date,"%A %d %B %Y")."</td>\n";
print '</tr>';
print '<td width="50%">';
print $langs->trans("Author").' : '.$author->fullname.'</td></tr>';
// Ligne de 3 colonnes
// Projet
if ($conf->projet->enabled)
{
$langs->load("projects");
print '<td height="10">';
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans("Project");
print '</td>';
if ($_GET["action"] != "classer") print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=classer&amp;id='.$commande->id.'">'.img_edit($langs->trans("SetProject")).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($_GET["action"] == "classer")
{
$html->form_project($_SERVER["PHP_SELF"]."?id=$commande->id",$commande->fk_soc,$commande->projetid,"projetid");
}
else
{
$html->form_project($_SERVER["PHP_SELF"]."?id=$commande->id",$commande->fk_soc,$commande->projetid,"none");
}
print "</td>";
} else {
print '<td height="10">&nbsp;</td><td colspan="2">&nbsp;</td>';
}
// Lignes de 3 colonnes
print '<tr><td>'.$langs->trans("AmountHT").'</td>';
print '<td align="right"><b>'.price($commande->total_ht).'</b></td>';
print '<td>'.$langs->trans("Currency".$conf->monnaie).'</td>';
print '<td rowspan="4" valign="top">'.$langs->trans("Note").' :<br>';
if ($commande->brouillon == 1 && $user->rights->commande->creer)
{
print '<form action="fiche.php?id='.$id.'" method="post">';
print '<input type="hidden" name="action" value="setnote">';
print '<textarea name="note" style="width:95%;height:"80%">'.$commande->note.'</textarea><br><input type="submit" value="'.$langs->trans("Save").'">';
print '</form>';
}
else
{
print nl2br($commande->note);
}
print '</td></tr>';
print '<td>'.$langs->trans("Currency".$conf->monnaie).'</td></tr>';
print '<tr><td>'.$langs->trans("GlobalDiscount").'</td><td align="right">';
@ -570,8 +560,8 @@ else
{
print '<form action="fiche.php?id='.$id.'" method="post">';
print '<input type="hidden" name="action" value="setremise">';
print '<input type="text" name="remise" size="3" value="'.$commande->remise_percent.'">%';
print '</td><td><input type="submit" value="'.$langs->trans("Save").'">';
print '<input type="text" class="flat" name="remise" size="3" value="'.$commande->remise_percent.'">%';
print '</td><td><input type="submit" class="button" value="'.$langs->trans("Save").'">';
print '</form>';
}
else
@ -670,16 +660,16 @@ else
print '<input type="hidden" name="elrowid" value="'.$_GET["rowid"].'">';
print "<tr $bc[$var]>";
print '<td colspan="2"><textarea name="eldesc" cols="60" rows="2">'.stripslashes($objp->description).'</textarea></td>';
print '<td align="center"><input size="4" type="text" name="elqty" value="'.$objp->qty.'"></td>';
print '<td align="right"><input size="3" type="text" name="elremise_percent" value="'.$objp->remise_percent.'">%</td>';
print '<td align="right"><input size="7" type="text" name="elprice" value="'.price($objp->subprice).'"></td>';
print '<td align="right" colspan="2"><input type="submit" value="'.$langs->trans("Save").'"></td>';
print '<td align="center"><input size="4" type="text" class="flat" name="elqty" value="'.$objp->qty.'"></td>';
print '<td align="right"><input size="3" type="text" class="flat" name="elremise_percent" value="'.$objp->remise_percent.'">%</td>';
print '<td align="right"><input size="7" type="text" class="flat" name="elprice" value="'.price($objp->subprice).'"></td>';
print '<td align="right" colspan="2"><input type="submit" class="button" value="'.$langs->trans("Save").'"></td>';
print '</tr>' . "\n";
print "</form>\n";
}
$i++;
}
$db->free();
$db->free($result);
}
else
{
@ -734,14 +724,14 @@ else
print '<td align="right" nowrap><input type="text" name="remise_percent" size="2" value="0">%</td>';
print '<td align="right"><input type="text" name="pu" size="6"></td>';
print '<td align="center" colspan="3"><input type="submit" value="'.$langs->trans("Add").'"></td></tr>';
print '<td align="center" colspan="3"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td></tr>';
$var=!$var;
print "<tr $bc[$var]><td colspan=\"2\"><select name=\"p_idprod\">$opt</select></td>";
print '<td align="center"><input type="text" size="2" name="pqty" value="1"></td>';
print '<td align="right" nowrap><input type="text" size="2" name="premise" value="0">%</td>';
print '<td>&nbsp;</td>';
print '<td align="center" colspan="3"><input type="submit" value="'.$langs->trans("Add").'"></td></tr>';
print '<td align="center" colspan="3"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td></tr>';
print "</tr>\n";
print "</form>";
@ -913,25 +903,6 @@ else
print "</td></tr></table>";
/*
* Classe la commande dans un projet
* TODO finir le look & feel très moche
*/
if ($_GET["action"] == 'classer')
{
print '<form method="post" action="fiche.php?id='.$commande->id.'">';
print '<input type="hidden" name="action" value="classin">';
print '<table class="border" width="100%">';
print '<tr><td>'.$langs->trans("Project").'</td><td>';
$proj = new Project($db);
$html->select_array("projetid",$proj->liste_array($commande->soc_id));
print "</td></tr>";
print '<tr><td colspan="2" align="center"><input type="submit" value="'.$langs->trans("Save").'"></td></tr></table></form>';
}
}
else
{

View File

@ -35,11 +35,11 @@ $langs->load("orders");
llxHeader("",$langs->trans("Orders"),"Commande");
print_titre($langs->trans("OrdersArea"));
print_fiche_titre($langs->trans("OrdersArea"));
print '<table class="noborder" width="100%">';
print '<table width="100%" class="notopnoleftnoright">';
print '<tr><td valign="top" width="30%">';
print '<tr><td valign="top" width="30%" class="notopnoleft">';
/*
* Zone recherche
@ -116,7 +116,7 @@ if ( $db->query($sql) )
}
print '</td><td valign="top" width="70%">';
print '</td><td valign="top" width="70%" class="notopnoleftnoright">';
/*
@ -153,15 +153,16 @@ if ( $db->query($sql) )
}
/*
* Commandes à traiter
* Dernières commandes traitées
*/
$max=5;
$sql = "SELECT c.rowid, c.ref, s.nom, s.idp";
$sql = "SELECT c.rowid, c.ref, s.nom, s.idp,";
$sql.= " ".$db->pdate("date_cloture")." as datec";
$sql.= " FROM ".MAIN_DB_PREFIX."commande as c, ".MAIN_DB_PREFIX."societe as s";
$sql.= " WHERE c.fk_soc = s.idp AND c.fk_statut > 2";
$sql.= " WHERE c.fk_soc = s.idp and c.fk_statut > 2";
if ($socidp) $sql .= " AND c.fk_soc = $socidp";
$sql.= " ORDER BY c.rowid DESC";
$sql.= " ORDER BY c.tms DESC";
$sql.= $db->plimit($max, 0);
$resql=$db->query($sql);
@ -173,7 +174,7 @@ if ($resql)
$i = 0;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("LastOrders",$max).'</td></tr>';
print '<td colspan="3">'.$langs->trans("LastClosedOrders",$max).'</td></tr>';
$var = True;
while ($i < $num)
{
@ -181,7 +182,9 @@ if ($resql)
$obj = $db->fetch_object($resql);
print "<tr $bc[$var]><td width=\"30%\"><a href=\"fiche.php?id=$obj->rowid\">".img_object($langs->trans("ShowOrders"),"order").' ';
print $obj->ref.'</a></td>';
print '<td><a href="'.DOL_URL_ROOT.'/comm/fiche.php?socid='.$obj->idp.'">'.img_object($langs->trans("ShowCompany"),"company").' '.$obj->nom.'</a></td></tr>';
print '<td><a href="'.DOL_URL_ROOT.'/comm/fiche.php?socid='.$obj->idp.'">'.img_object($langs->trans("ShowCompany"),"company").' '.$obj->nom.'</a></td>';
print '<td>'.dolibarr_print_date($obj->datec).'</td>';
print '</tr>';
$i++;
}
print "</table><br>";

View File

@ -21,10 +21,11 @@
*
*/
/** \file htdocs/commande/liste.php
\ingroup commande
\brief Page liste des commandes
\version $Revision$
/**
\file htdocs/commande/liste.php
\ingroup commande
\brief Page liste des commandes
\version $Revision$
*/
@ -156,7 +157,7 @@ if ($resql)
print " <a href=\"liste.php?year=$y\">";
print strftime("%Y",$objp->date_commande)."</a></td>\n";
print '<td align="center">'.$generic_commande->statuts[$objp->fk_statut].'</td>';
print '<td align="center">'.$generic_commande->status_label_short[$objp->fk_statut].'</td>';
print "</tr>\n";
$total = $total + $objp->price;
@ -174,5 +175,6 @@ else
}
$db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");
llxFooter('$Date$ - $Revision$');
?>

View File

@ -83,6 +83,7 @@ class Contrat
* Si la duree est renseignée, date_start=date_start et date_end=date_start+duree
* sinon date_start=date_start et date_end=date_end
*/
/*
function mise_en_service($user, $date_start, $duree=0, $date_end)
{
if ($duree) {
@ -128,7 +129,7 @@ class Contrat
return -1;
}
}
*/
/**
* \brief Active une ligne detail d'un contrat
@ -642,11 +643,11 @@ class Contrat
}
/**
* \brief Récupère les lignes de detail du contrat
* \param statut Statut des lignes detail à récupérer
* \return array Tableau des lignes de details
*/
/**
* \brief Récupère les lignes de detail du contrat
* \param statut Statut des lignes detail à récupérer
* \return array Tableau des lignes de details
*/
function array_detail($statut=-1)
{
$tab=array();
@ -676,5 +677,52 @@ class Contrat
}
}
/**
* \brief Charge indicateurs this->nbtodo et this->nbtodolate de tableau de bord
* \param mode "inactive" pour services à activer, "expired" pour services expirés
* \return int <0 si ko, >0 si ok
*/
function load_board($mode)
{
global $conf;
$this->nbtodo=$this->nbtodolate=0;
if ($mode == 'inactives')
{
$sql = "SELECT cd.rowid,".$this->db->pdate("cd.date_ouverture_prevue")." as datefin";
$sql.= " FROM ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."contratdet as cd";
$sql.= " WHERE c.statut = 1 AND c.rowid = cd.fk_contrat";
$sql.= " AND cd.statut = 0";
}
if ($mode == 'expired')
{
$sql = "SELECT cd.rowid,".$this->db->pdate("cd.date_fin_validite")." as datefin";
$sql.= " FROM ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."contratdet as cd";
$sql.= " WHERE c.statut = 1 AND c.rowid = cd.fk_contrat";
$sql.= " AND cd.statut = 4";
$sql.= " AND cd.date_fin_validite < '".$this->db->idate(time())."'";
}
$resql=$this->db->query($sql);
if ($resql)
{
while ($obj=$this->db->fetch_object($resql))
{
$this->nbtodo++;
if ($mode == 'inactives')
if ($obj->datefin && $obj->datefin < (time() - $conf->contrat->services->inactifs->warning_delay)) $this->nbtodolate++;
if ($mode == 'expired')
if ($obj->datefin && $obj->datefin < (time() - $conf->contrat->services->expires->warning_delay)) $this->nbtodolate++;
}
return 1;
}
else
{
dolibarr_print_error($this->db);
$this->error=$this->db->error();
return -1;
}
}
}
?>

View File

@ -29,9 +29,9 @@
*/
require("./pre.inc.php");
require("../project.class.php");
require("../propal.class.php");
require_once (DOL_DOCUMENT_ROOT."/contrat/contrat.class.php");
if ($conf->projet->enabled) require_once("../project.class.php");
if ($conf->propal->enabled) require_once("../propal.class.php");
if ($conf->contrat->enabled) require_once (DOL_DOCUMENT_ROOT."/contrat/contrat.class.php");
$langs->load("contracts");
$langs->load("orders");
@ -472,7 +472,7 @@ else
/*
* Confirmation de la suppression de la contrat
* Confirmation de la suppression du contrat
*/
if ($_GET["action"] == 'delete')
{
@ -542,7 +542,7 @@ else
print '<table width="100%" class="nobordernopadding"><tr><td>';
print $langs->trans("Project");
print '</td>';
if ($_GET["action"] != "classer") print '<td align="right"><a href="fiche.php?action=classer&amp;id='.$id.'">'.img_edit($langs->trans("SetProject")).'</a></td>';
if ($_GET["action"] != "classer") print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=classer&amp;id='.$id.'">'.img_edit($langs->trans("SetProject")).'</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($_GET["action"] == "classer")
@ -722,9 +722,9 @@ else
// Ligne dates prévues
print "<tr $bc[$var]>";
print '<td colspan="8">';
print 'Date prévue mise en service ';
print $langs->trans("DateStartPlanned").' ';
$html->select_date($objp->date_debut,"date_start_update",0,0,($objp->date_debut>0?0:1));
print ' &nbsp; Date prévue fin de service ';
print ' &nbsp; '.$langs->trans("DateEndPlanned").' ';
$html->select_date($objp->date_fin,"date_end_update",0,0,($objp->date_fin>0?0:1));
print '</td>';
print '</tr>';
@ -775,9 +775,9 @@ else
print "<tr $bc[$var]>";
print '<td colspan="8">';
print 'Date prévue mise en service ';
print $langs->trans("DateStartPlanned").' ';
$html->select_date('',"date_start",0,0,1);
print ' &nbsp; Date prévue fin de service ';
print ' &nbsp; '.$langs->trans("DateEndPlanned").' ';
$html->select_date('',"date_end",0,0,1);
print '</td>';
print '</tr>';
@ -810,9 +810,9 @@ else
print "<tr $bc[$var]>";
print '<td colspan="8">';
print 'Date prévue mise en service ';
print $langs->trans("DateStartPlanned").' ';
$html->select_date('',"date_start",0,0,1);
print ' &nbsp; Date prévue fin de service ';
print ' &nbsp; '.$langs->trans("DateEndPlanned").' ';
$html->select_date('',"date_end",0,0,1);
print '</td>';
print '</tr>';

View File

@ -54,13 +54,12 @@ if ($user->societe_id > 0)
$socid = $user->societe_id;
}
print_barre_liste($langs->trans("ContractsArea"), $page, "index.php", "&sref=$sref&snom=$snom", $sortfield, $sortorder,'',$num);
print_fiche_titre($langs->trans("ContractsArea"));
print '<table class="noborder" width="100%">';
print '<table class="notopnoleftnoright" width="100%">';
print '<tr><td width="30%" valign="top">';
print '<tr><td width="30%" valign="top" class="notopnoleft">';
/*
* Recherche Contrat
@ -89,7 +88,7 @@ print '</td></tr>';
print '</table>';
print '</td><td width="70%" valign="top">';
print '</td><td width="70%" valign="top" class="notopnoleftnoright">';
// Last contracts

View File

@ -28,6 +28,9 @@
*/
require("./pre.inc.php");
if ($conf->projet->enabled) require_once("../project.class.php");
if ($conf->propal->enabled) require_once("../propal.class.php");
if ($conf->contrat->enabled) require_once (DOL_DOCUMENT_ROOT."/contrat/contrat.class.php");
$langs->load("contracts");
$langs->load("orders");
@ -38,9 +41,7 @@ $user->getrights('contrat');
if (!$user->rights->contrat->lire)
accessforbidden();
require("../project.class.php");
require("../propal.class.php");
require_once (DOL_DOCUMENT_ROOT."/contrat/contrat.class.php");
/*
* Sécurité accés client
@ -91,7 +92,8 @@ if ($_POST["action"] == 'confirm_close' && $_POST["confirm"] == 'yes' && $user->
llxHeader('',$langs->trans("Contract"),"Contrat");
llxHeader('',$langs->trans("ContractCard"),"Contrat");
$html = new Form($db);
@ -154,27 +156,38 @@ if ($id > 0)
print '<td colspan="3">';
print '<b><a href="'.DOL_URL_ROOT.'/comm/fiche.php?socid='.$contrat->societe->id.'">'.$contrat->societe->nom.'</a></b></td></tr>';
// Status
// Statut contrat
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">';
print $contrat->statuts[$contrat->statut];
print "</td></tr>";
// Date
print '<tr><td>'.$langs->trans("Date").'</td>';
print '<td colspan="3">'.strftime("%A %d %B %Y",$contrat->date_contrat)."</td></tr>\n";
print '<td colspan="3">'.dolibarr_print_date($contrat->date_contrat,"%A %d %B %Y")."</td></tr>\n";
// Factures associées
/*
TODO
*/
// Projet
if ($conf->projet->enabled)
{
print '<tr><td>'.$langs->trans("Project").'</td><td colspan="3">';
if ($contrat->projet_id > 0)
$langs->load("projects");
print '<tr><td>';
print '<table width="100%" class="nobordernopadding"><tr><td>';
print $langs->trans("Project");
print '</td>';
if ($_GET["action"] != "classer") print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=classer&amp;id='.$id.'&amp;ligne='.$_GET["ligne"].'">'.img_edit($langs->trans("SetProject")).'</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($_GET["action"] == "classer")
{
$projet = New Project($db);
$projet->fetch($contrat->projet_id);
print '<a href="'.DOL_URL_ROOT.'/projet/fiche.php?id='.$contrat->projet_id.'">'.$projet->title.'</a>';
$html->form_project($_SERVER["PHP_SELF"]."?id=$id&amp;ligne=".$_GET["ligne"],$contrat->fk_soc,$contrat->fk_projet,"projetid");
}
else
{
print '<a href="fiche.php?id='.$id.'&amp;action=classer">Classer le contrat</a>';
$html->form_project($_SERVER["PHP_SELF"]."?id=$id&amp;ligne=".$_GET["ligne"],$contrat->fk_soc,$contrat->fk_projet,"none");
}
print "</td></tr>";
}
@ -291,13 +304,13 @@ if ($id > 0)
// Dates mise en service
print '<tr '.$bc[$var].'>';
print '<td colspan="7">';
// Si pas encore activ
// Si pas encore activé
if (! $objp->date_debut_reelle) {
print $langs->trans("DateStartPlanned").': ';
if ($objp->date_debut) print dolibarr_print_date($objp->date_debut);
else print $langs->trans("Unknown");
}
// Si activ
// Si activé
if ($objp->date_debut_reelle) {
print $langs->trans("DateStartReal").': ';
if ($objp->date_debut_reelle) print dolibarr_print_date($objp->date_debut_reelle);
@ -433,7 +446,7 @@ if ($id > 0)
}
else
{
/* Contrat non trouvée */
// Contrat non trouvé
print "Contrat inexistant ou accés refusé";
}
}

View File

@ -44,6 +44,8 @@ if ($page == -1) { $page = 0 ; }
$limit = $conf->liste_limit;
$offset = $limit * $page ;
$search_nom=isset($_GET["search_nom"])?$_GET["search_nom"]:$_POST["search_nom"];
$search_contract=isset($_GET["search_contract"])?$_GET["search_contract"]:$_POST["search_contract"];
$statut=isset($_GET["statut"])?$_GET["statut"]:1;
$socid=$_GET["socid"];
@ -68,13 +70,9 @@ $sql.= " c.rowid as cid, 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 ";
if ($_POST["search_contract"]) {
$sql .= " AND c.rowid = '".$_POST["search_contract"]."'";
}
if ($socid > 0)
{
$sql .= " AND s.idp = $socid";
}
if ($search_nom) $sql.= " AND s.nom like '%".$search_nom."%'";
if ($search_contract) $sql.= " AND c.rowid = '".$search_contract."'";
if ($socid > 0) $sql.= " AND s.idp = $socid";
$sql.= " GROUP BY c.rowid, c.datec, c.statut, s.nom, s.idp";
$sql.= " ORDER BY $sortfield $sortorder";
$sql.= $db->plimit($limit + 1 ,$offset);
@ -90,15 +88,31 @@ if ($resql)
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid","","",'width="50"',$sortfield);
print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom","","","",$sortfield);
print_liste_field_titre($langs->trans("DateCreation"), $_SERVER["PHP_SELF"], "c.datec","","",'align="center"',$sortfield);
print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "c.statut","","",'align="center"',$sortfield);
$param='&amp;search_contract='.$search_contract;
$param.='&amp;search_nom='.$search_nom;
print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid","","$param",'width="50"',$sortfield);
print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom","","$param","",$sortfield);
print_liste_field_titre($langs->trans("DateCreation"), $_SERVER["PHP_SELF"], "c.datec","","$param",'align="center"',$sortfield);
print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "c.statut","","$param",'align="center"',$sortfield);
print '<td width="16">'.img_statut(0,$langs->trans("ServiceStatusInitial")).'</td>';
print '<td width="16">'.img_statut(4,$langs->trans("ServiceStatusRunning")).'</td>';
print '<td width="16">'.img_statut(5,$langs->trans("ServiceStatusClosed")).'</td>';
print "</tr>\n";
print '<form method="POST" action="liste.php">';
print '<tr class="liste_titre">';
print '<td>';
print '<input type="text" class="flat" size="3" name="search_contract" value="'.stripslashes($search_contract).'">';
print '</td>';
print '<td class="liste_titre" valign="right">';
print '<input type="text" class="flat" size="24" name="search_nom" value="'.stripslashes($search_nom).'">';
print '</td>';
print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre">&nbsp;</td>';
print '<td colspan="3" class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans("Search").'">';
print "</td>";
print "</tr>\n";
print '</form>';
$contratstatic=new Contrat($db);
$now=mktime();

View File

@ -69,13 +69,14 @@ $sql.= " ".$db->pdate("cd.date_cloture")." as date_cloture";
$sql.= " FROM ".MAIN_DB_PREFIX."contrat as c";
$sql.= " , ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."product as p";
$sql.= " , ".MAIN_DB_PREFIX."contratdet as cd";
$sql.= " WHERE c.fk_soc = s.idp AND cd.fk_product = p.rowid";
$sql.= " WHERE c.statut > 0";
$sql.= " AND c.rowid = cd.fk_contrat";
$sql.= " AND c.fk_soc = s.idp AND cd.fk_product = p.rowid";
if ($mode == "0") $sql.= " AND cd.statut = 0";
if ($mode == "4") $sql.= " AND cd.statut = 4";
if ($mode == "5") $sql.= " AND cd.statut = 5";
// \todo filtre sur services expirés
//if ($mode == "expired") $sql.= " AND cd.statut = 1";
$sql.= " AND cd.fk_contrat = c.rowid";
if ($socid > 0)
{
$sql .= " AND s.idp = $socid";
@ -99,7 +100,7 @@ if ($resql)
print_liste_field_titre($langs->trans("Company"),"services.php", "s.nom","&mode=$mode","","",$sortfield);
// Date debut
if ($mode == "0") print_liste_field_titre($langs->trans("DateStartPlannedShort"),"services.php", "cd.date_ouverture_prevue","&mode=$mode",'',' align="center"',$sortfield);
if ($mode =="" || $mode > 0) print_liste_field_titre($langs->trans("DateStartRealShort"),"services.php", "cd.date_ouverture","&mode=$mode",'',' align="center"',$sortfield);
if ($mode == "" || $mode > 0) print_liste_field_titre($langs->trans("DateStartRealShort"),"services.php", "cd.date_ouverture","&mode=$mode",'',' align="center"',$sortfield);
// Date fin
if ($mode == "" || $mode < 5) print_liste_field_titre($langs->trans("DateEndPlannedShort"),"services.php", "cd.date_fin_validite","&mode=$mode",'',' align="center"',$sortfield);
else print_liste_field_titre($langs->trans("DateEndRealShort"),"services.php", "cd.date_cloture","&mode=$mode",'',' align="center"',$sortfield);
@ -117,13 +118,20 @@ if ($resql)
print '<td><a href="../product/fiche.php?id='.$obj->pid.'">'.img_object($langs->trans("ShowService"),"service").' '.dolibarr_trunc($obj->label,20).'</a></td>';
print '<td><a href="../comm/fiche.php?socid='.$obj->sidp.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dolibarr_trunc($obj->nom,44).'</a></td>';
// Date debut
if ($mode == "0") print '<td align="center">'.($obj->date_ouverture_prevue?dolibarr_print_date($obj->date_ouverture_prevue):'&nbsp;').'</td>';
if ($mode == "0") {
print '<td align="center">';
print ($obj->date_ouverture_prevue?dolibarr_print_date($obj->date_ouverture_prevue):'&nbsp;');
if ($obj->date_ouverture_prevue && ($obj->date_ouverture_prevue < (time() - $conf->contrat->services->inactifs->warning_delay)))
print img_picto($langs->trans("Late"),"warning");
else print '&nbsp;&nbsp;&nbsp;&nbsp;';
print '</td>';
}
if ($mode == "" || $mode > 0) print '<td align="center">'.($obj->date_ouverture?dolibarr_print_date($obj->date_ouverture):'&nbsp;').'</td>';
// Date fin
if ($mode == "" || $mode < 5) print '<td align="center">'.($obj->date_fin_validite?dolibarr_print_date($obj->date_fin_validite):'&nbsp;');
else print '<td align="center">'.dolibarr_print_date($obj->date_cloture);
// Icone warning
if ($obj->date_fin_validite && $obj->date_fin_validite < mktime() && $obj->statut < 5) print img_warning($langs->trans("Late"));
if ($obj->date_fin_validite && $obj->date_fin_validite < (time() - $conf->contrat->services->expires->warning_delay) && $obj->statut < 5) print img_warning($langs->trans("Late"));
else print '&nbsp;&nbsp;&nbsp;&nbsp;';
print '</td>';
print '<td align="center"><a href="'.DOL_URL_ROOT.'/contrat/ligne.php?id='.$obj->cid.'&ligne='.$obj->rowid.'"><img src="./statut'.$obj->statut.'.png" border="0" alt="statut"></a></td>';

View File

@ -586,7 +586,7 @@ else
{
$resteapayer = abs($fac->total_ttc - $total);
print "<tr class=\liste_total\"><td colspan=\"2\" align=\"right\">".$langs->trans("RemainderToPay")." :</td>";
print '<td align="right"><b>'.price($resteapayer)."</b></td><td$tdsup>".$conf->monnaie."</td>";
print '<td align="right"><b>'.price($resteapayer)."</b></td><td$tdsup>".$langs->trans("Currency".$conf->monnaie)."</td>";
print "</tr>\n";
}

View File

@ -33,13 +33,10 @@ require("./pre.inc.php");
if (!$user->rights->fournisseur->facture->lire)
accessforbidden();
llxHeader();
$socid = $_GET["socid"];
/*
* Sécurité accés client
*/
// Sécurité accés client
if ($user->societe_id > 0)
{
$_GET["action"] = '';
@ -90,6 +87,10 @@ if ($_POST["mode"] == 'search')
}
}
llxHeader();
/*
* Mode Liste
*
@ -98,7 +99,6 @@ if ($_POST["mode"] == 'search')
$sql = "SELECT s.idp as socid, s.nom, ".$db->pdate("fac.date_lim_reglement")." as date_echeance, fac.total_ht, fac.total_ttc, fac.paye as paye, fac.fk_statut as fk_statut, fac.libelle, fac.rowid as facid, fac.facnumber";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as fac ";
$sql .= " WHERE fac.fk_soc = s.idp";
if ($socid)
{
$sql .= " AND s.idp = $socid";

View File

@ -99,6 +99,7 @@ class box_factures_imp extends ModeleBoxes {
$this->info_box_contents[$i][1] = array('align' => 'left',
'text' => $objp->nom,
'maxlength'=>44,
'url' => DOL_URL_ROOT."/comm/fiche.php?socid=".$objp->idp);
$i++;

View File

@ -64,7 +64,8 @@ class ModeleBoxes
$var = true;
$nbcol=sizeof($contents[0])+1;
$nblines=sizeof($contents);
print '<table width="100%" class="noborder">';
// Affiche titre de la boite
@ -73,55 +74,58 @@ class ModeleBoxes
print '>'.$head['text']."</td></tr>";
// Affiche chaque ligne de la boite
for ($i=0, $n=sizeof($contents); $i < $n; $i++)
for ($i=0, $n=$nblines; $i < $n; $i++)
{
$var=!$var;
if (sizeof($contents[$i])) print '<tr valign="top" '.$bcx[$var].'>';
// Affiche chaque cellule
for ($j=0, $m=sizeof($contents[$i]); $j < $m; $j++)
if (isset($contents[$i]))
{
$tdparam="";
if (isset($contents[$i][$j]['align'])) $tdparam.=' align="'. $contents[$i][$j]['align'].'"';
if (isset($contents[$i][$j]['width'])) $tdparam.=' width="'. $contents[$i][$j]['width'].'"';
$var=!$var;
if (sizeof($contents[$i])) print '<tr valign="top" '.$bcx[$var].'>';
// Affiche chaque cellule
for ($j=0, $m=sizeof($contents[$i]); $j < $m; $j++)
{
$tdparam="";
if (isset($contents[$i][$j]['align'])) $tdparam.=' align="'. $contents[$i][$j]['align'].'"';
if (isset($contents[$i][$j]['width'])) $tdparam.=' width="'. $contents[$i][$j]['width'].'"';
if ($contents[$i][$j]['text']) {
$texte=isset($contents[$i][$j]['text'])?$contents[$i][$j]['text']:'';
$textewithnotags=eregi_replace('<[^>]+>','',$texte);
$texte2=isset($contents[$i][$j]['text2'])?$contents[$i][$j]['text2']:'';
$texte2withnotags=eregi_replace('<[^>]+>','',$texte2);
//print "xxx $textewithnotags y";
if ($contents[$i][$j]['text']) {
$texte=$contents[$i][$j]['text'];
$textewithnotags=eregi_replace('<[^>]+>','',$texte);
$texte2=$contents[$i][$j]['text2'];
$texte2withnotags=eregi_replace('<[^>]+>','',$texte2);
//print "xxx $textewithnotags y";
if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo']) print '<td width="16">';
else print '<td '.$tdparam.'>';
if (isset($contents[$i][$j]['url'])) print '<a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'">';
if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo'])
{
$logo=eregi_replace("^object_","",$contents[$i][$j]['logo']);
print img_object($langs->trans("Show"),$logo);
print '</a></td><td '.$tdparam.'><a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'">';
if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo']) print '<td width="16">';
else print '<td '.$tdparam.'>';
if (isset($contents[$i][$j]['url'])) print '<a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'">';
if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo'])
{
$logo=eregi_replace("^object_","",$contents[$i][$j]['logo']);
print img_object($langs->trans("Show"),$logo);
print '</a></td><td '.$tdparam.'><a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'">';
}
$maxlength=$this->MAXLENGTHBOX;
if (isset($contents[$i][$j]['maxlength'])) $maxlength=$contents[$i][$j]['maxlength'];
if ($maxlength && strlen($textewithnotags) > $maxlength)
{
$texte=substr($texte,0,$maxlength)."...";
}
if ($maxlength && strlen($texte2withnotags) > $maxlength)
{
$texte2=substr($texte2,0,$maxlength)."...";
}
print $texte;
if ($contents[$i][$j]['url']) print '</a>';
print $texte2;
print "</td>";
}
$maxlength=$this->MAXLENGTHBOX;
if (isset($contents[$i][$j]['maxlength'])) $maxlength=$contents[$i][$j]['maxlength'];
if ($maxlength && strlen($textewithnotags) > $maxlength)
{
$texte=substr($texte,0,$maxlength)."...";
}
if ($maxlength && strlen($texte2withnotags) > $maxlength)
{
$texte2=substr($texte2,0,$maxlength)."...";
}
print $texte;
if ($contents[$i][$j]['url']) print '</a>';
print $texte2;
print "</td>";
}
if (sizeof($contents[$i])) print '</tr>';
}
if (sizeof($contents[$i])) print '</tr>';
}
print "</table>";