* 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ * $Source$ * */ /** \file htdocs/comm/index.php \ingroup commercial \brief Page acceuil de la zone commercial \version $Revision$ */ require("./pre.inc.php"); if ($conf->contrat->enabled) { require_once("../contrat/contrat.class.php"); } $langs->load("commercial"); $langs->load("orders"); $user->getrights('propale'); $user->getrights('fichinter'); $user->getrights('commande'); $user->getrights('projet'); if ($user->societe_id > 0) { $socidp = $user->societe_id; } llxHeader(); /* * Actions */ if ($_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) ) { dolibarr_print_error($db); } $sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_soc, dateb, fk_user) VALUES (".$_GET["socidp"].", now(),".$user->id.");"; if (! $db->query($sql) ) { dolibarr_print_error($db); } } if ($_GET["action"] == 'del_bookmark') { $sql = "DELETE FROM ".MAIN_DB_PREFIX."bookmark WHERE rowid=".$_GET["bid"]; $result = $db->query($sql); } /* * Affichage page */ print_titre($langs->trans("CommercialArea")); print ''; print ''; print '
'; /* * Recherche Propal */ if ($conf->propal->enabled && $user->rights->propale->lire) { $var=false; print '
'; print ''; print ''; print ''; print "
'.$langs->trans("SearchAProposal").'
'; print $langs->trans("Ref").' :  

\n"; } /* * Recherche Contrat */ if ($conf->contrat->enabled) { $var=false; print '
'; print ''; print ''; print ''; print "
'.$langs->trans("SearchAContract").'
'; print $langs->trans("Ref").' :  

\n"; } /* * Liste des propal brouillons */ if ($conf->propal->enabled && $user->rights->propale->lire) { $sql = "SELECT p.rowid, p.ref, p.price, 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"; if ( $db->query($sql) ) { $total = 0; $num = $db->num_rows(); $i = 0; $var=true; if ($num > 0 ) { print ''; print ""; print ""; while ($i < $num) { $obj = $db->fetch_object(); $var=!$var; print '"; $i++; $total += $obj->price; } if ($total>0) { $var=!$var; print '"; } print "
".$langs->trans("ProposalsDraft")."
'."rowid."\">".img_object($langs->trans("ShowPropal"),"propal")." ".$obj->ref."".$obj->nom."".price($obj->price)."
".$langs->trans("Total")."".price($total)."

"; } } } /* * Commandes à valider */ 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 .= " WHERE c.fk_soc = s.idp AND c.fk_statut = 0"; if ($socidp) { $sql .= " AND c.fk_soc = $socidp"; } if ( $db->query($sql) ) { $num = $db->num_rows(); if ($num) { print ''; print ''; print ''; $i = 0; $var = False; while ($i < $num) { $obj = $db->fetch_object(); print ""; print ''; $i++; $var=!$var; } print "
'.$langs->trans("OrdersToValid").'
rowid\">".img_object($langs->trans("ShowOrder"),"order")." ".$obj->ref."'.$obj->nom.'

"; } } } /* * Bookmark * */ $sql = "SELECT s.idp, s.nom,b.rowid as bid"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."bookmark as b"; $sql .= " WHERE b.fk_soc = s.idp AND b.fk_user = ".$user->id; if ($socidp) { $sql .= " AND s.idp = $socidp"; } $sql .= " ORDER BY lower(s.nom) ASC"; if ( $db->query($sql) ) { $num = $db->num_rows(); if ($num) { $i = 0; print ''; print ""; print ""; print "\n"; while ($i < $num) { $obj = $db->fetch_object(); $var = !$var; print ""; print ''; print ''; print ''; $i++; } print '
".$langs->trans("Bookmarks")."
'.$obj->nom.''; print img_delete(); print '
'; } } print '
'; /* * 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 .= " 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) { $sql .= " AND s.idp = $socidp"; } $sql .= " ORDER BY a.datea DESC limit 5"; if ( $db->query($sql) ) { $num = $db->num_rows(); print ''; print ''; $var = true; $i = 0; while ($i < $num ) { $obj = $db->fetch_object(); $var=!$var; print ""; print "'; print ""; print ''; $i++; } // TODO Ajouter rappel pour "il y a des contrats à mettre en service" // TODO Ajouter rappel pour "il y a des contrats qui arrivent à expiration" print "
'.$langs->trans("LastDoneTasks").'
id\">".img_object($langs->trans("ShowTask"),"task").' '.$obj->libelle.' '.$obj->label.'".dolibarr_print_date($obj->da)."'.img_object($langs->trans("ShowCustomer"),"company").' '.$obj->sname.'

"; $db->free(); } else { dolibarr_print_error($db); } /* * Actions commerciales a faire * */ $sql = "SELECT a.id, ".$db->pdate("a.datea")." as da, 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) { $sql .= " AND s.idp = $socidp"; } $sql .= " ORDER BY a.datea ASC"; if ( $db->query($sql) ) { $num = $db->num_rows(); if ($num > 0) { print ''; print ''; $var = true; $i = 0; while ($i < $num ) { $obj = $db->fetch_object(); $var=!$var; print ""; print "'; print '"; print ''; $i++; } // TODO Ajouter rappel pour "il y a des contrats à mettre en service" // TODO Ajouter rappel pour "il y a des contrats qui arrivent à expiration" print "
'.$langs->trans("ActionsToDo").'
id\">".img_object($langs->trans("ShowTask"),"task")." ".$obj->libelle.' '.$obj->label.''. strftime("%d %b %Y",$obj->da); if (date("U",$obj->da) < time()) { print img_warning("Late"); } print "'.img_object($langs->trans("ShowCustomer"),"company").' '.$obj->sname.'

"; } $db->free(); } else { dolibarr_print_error($db); } /* * Derniers contrat * */ if ($conf->contrat->enabled && 0) // \todo A REFAIRE DEPUIS NOUVEAU CONTRAT { $langs->load("contracts"); $sql = "SELECT s.nom, s.idp, c.statut, c.rowid, p.ref, c.mise_en_service as datemes, c.fin_validite as datefin, c.date_cloture as dateclo"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."product as p WHERE c.fk_soc = s.idp and c.fk_product = p.rowid"; if ($socidp) { $sql .= " AND s.idp = $socidp"; } $sql .= " ORDER BY c.tms DESC"; $sql .= $db->plimit(5, 0); if ( $db->query($sql) ) { $num = $db->num_rows(); if ($num > 0) { print ''; print ''; $i = 0; $contrat=new Contrat($db); $var=false; while ($i < $num) { $obj = $db->fetch_object(); print ""; print "\n"; print "\n"; $var=!$var; $i++; } print "
'.$langs->trans("LastContracts",5).'
rowid."\">".img_object($langs->trans("ShowContract","contract"))." ".$obj->ref."idp\">".img_object($langs->trans("ShowCompany","company"))." ".$obj->nom."".$contrat->LibStatut($obj->enservice)."

"; } } else { dolibarr_print_error($db); } } /* * Dernières propales ouvertes * */ if ($conf->propal->enabled && $user->rights->propale->lire) { $sql = "SELECT s.nom, s.idp, p.rowid as propalid, p.price, p.ref,".$db->pdate("p.datep")." as dp, c.label as statut, c.id as statutid"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."c_propalst as c"; $sql .= " WHERE p.fk_soc = s.idp AND p.fk_statut = c.id AND p.fk_statut = 1"; if ($socidp) $sql .= " AND s.idp = $socidp"; $sql .= " ORDER BY p.rowid DESC"; $result=$db->query($sql); if ($result) { $total = 0; $num = $db->num_rows($result); $i = 0; if ($num > 0) { print ''; print ''; $var=false; while ($i < $num) { $obj = $db->fetch_object($result); print ""; print "\n"; print "\n"; print "\n"; $var=!$var; $i++; $total += $obj->price; } if ($total>0) { print ""; } print "
'.$langs->trans("ProposalsOpened").'
propalid."\">".img_object($langs->trans("ShowPropal"),"propal")." ".$obj->ref."idp\">".img_object($langs->trans("ShowCompany"),"company")." ".$obj->nom.""; print strftime("%d %b %Y",$obj->dp)."".price($obj->price)."
".$langs->trans("Total")."".price($total)."

"; } } } /* * Dernières propales fermées * */ if ($conf->propal->enabled && $user->rights->propale->lire) { $NBMAX=5; $sql = "SELECT s.nom, s.idp, p.rowid as propalid, p.price, p.ref,".$db->pdate("p.datep")." as dp, c.label as statut, c.id as statutid"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."c_propalst as c"; $sql .= " WHERE p.fk_soc = s.idp AND p.fk_statut = c.id AND p.fk_statut > 1"; if ($socidp) { $sql .= " AND s.idp = $socidp"; } $sql .= " ORDER BY p.rowid DESC"; $sql .= $db->plimit($NBMAX, 0); if ( $db->query($sql) ) { $num = $db->num_rows(); $i = 0; print ''; print ''; $var=False; while ($i < $num) { $objp = $db->fetch_object(); print ""; print ''; print "\n"; $now = time(); $lim = 3600 * 24 * 15 ; if ( ($now - $objp->dp) > $lim && $objp->statutid == 1 ) { print ""; } else { print ""; } print "\n"; print "\n"; print "\n"; print "\n"; $i++; $var=!$var; } print "
'.$langs->trans("LastClosedProposals",$NBMAX).'
'; print ''.img_file().''; print ' '.$objp->ref.'idp\">$objp->nom > 15 jours "; print strftime("%e %b %Y",$objp->dp)."".price($objp->price)."$objp->statut
"; $db->free(); } } print '
'; $db->close(); llxFooter("Dernière modification $Date$ révision $Revision$"); ?>