* Copyright (C) 2004-2006 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/index.php \brief Page accueil par defaut \version $Revision$ */ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/boxes.php"); $user->getrights(''); // Simule le menu par défaut sur Home if (! isset($_GET["mainmenu"])) $_GET["mainmenu"]="home"; $infobox=new InfoBox($db); /* * Affichage page */ llxHeader(); print_fiche_titre($langs->trans("HomeArea")); if (defined("MAIN_MOTD") && strlen(trim(MAIN_MOTD))) { print '
'; print nl2br(MAIN_MOTD); print '

'; } // Affiche warning répertoire install existe (si utilisateur admin) if ($user->admin && ! defined("MAIN_REMOVE_INSTALL_WARNING")) { if (is_dir(DOL_DOCUMENT_ROOT."/install") && is_readable(DOL_DOCUMENT_ROOT."/install")) { $langs->load("other"); $message=$langs->trans("WarningInstallDirExists",DOL_DOCUMENT_ROOT."/install"); $message.=$langs->trans("WarningUntilDirRemoved",DOL_DOCUMENT_ROOT."/install"); print info_admin($message); print "
\n"; } } print ''; print '
'; /* * Informations */ if (file_exists(DOL_DOCUMENT_ROOT.'/logo.png')) { print ''; print ''; print "
'; print '

\n"; } print ''; print ''; print ''; $userstring=$user->fullname; print ''; print ''; print ''; print "\n"; print "
'.$langs->trans("Informations").'
'.$langs->trans("User").''.$userstring.'
'.$langs->trans("PreviousConnexion").''; if ($user->datepreviouslogin) print dolibarr_print_date($user->datepreviouslogin,"%d %b %Y %H:%M:%S"); else print $langs->trans("Unknown"); print '
\n"; /* * Tableau de bord d'états Dolibarr (statistiques) * Non affiché pour un utilisateur externe */ $langs->load("commercial"); if ($user->societe_id == 0) { print '
'; print ''; print ''; print ''; print ''; print ''; $var=true; // Condition à vérifier pour affichage de chaque ligne du tableau de bord $conditions=array($conf->societe->enabled && $user->rights->societe->lire, $conf->societe->enabled && $user->rights->societe->lire, $conf->fournisseur->enabled && $user->rights->fournisseur->lire, $conf->adherent->enabled && $user->rights->adherent->lire, $conf->produit->enabled && $user->rights->produit->lire, $conf->service->enabled && $user->rights->produit->lire, $conf->telephonie->enabled && $user->rights->telephonie->lire); // Fichier des classes qui contiennent la methode load_state_board pour chaque ligne $includes=array(DOL_DOCUMENT_ROOT."/client.class.php", DOL_DOCUMENT_ROOT."/prospect.class.php", DOL_DOCUMENT_ROOT."/fourn/fournisseur.class.php", DOL_DOCUMENT_ROOT."/adherents/adherent.class.php", DOL_DOCUMENT_ROOT."/product.class.php", DOL_DOCUMENT_ROOT."/service.class.php", DOL_DOCUMENT_ROOT."/telephonie/lignetel.class.php"); // Nom des classes qui contiennent la methode load_state_board pour chaque ligne $classes=array('Client', 'Prospect', 'Fournisseur', 'Adherent', 'Product', 'Service', 'LigneTel'); // Clé de tableau retourné par la methode load_state_bord pour chaque ligne $keys=array('customers', 'prospects', 'suppliers', 'members', 'products', 'services', 'sign'); // Icon des lignes du tableau de bord $icons=array('company', 'company', 'company', 'user', 'product', 'service', 'phoning'); // Titre des lignes du tableau de bord $titres=array($langs->trans("Customers"), $langs->trans("Prospects"), $langs->trans("Suppliers"), $langs->trans("Members"), $langs->trans("Products"), $langs->trans("Services"), $langs->trans("Lignes de téléphonie suivis")); // Lien des lignes du tableau de bord $links=array(DOL_URL_ROOT.'/comm/clients.php', DOL_URL_ROOT.'/comm/prospect/prospects.php', DOL_URL_ROOT.'/fourn/index.php', DOL_URL_ROOT.'/adherents/liste.php?statut=1&mainmenu=members', DOL_URL_ROOT.'/product/liste.php?type=0&mainmenu=products', DOL_URL_ROOT.'/product/liste.php?type=1&mainmenu=products', DOL_URL_ROOT.'/telephonie/ligne/index.php'); // Boucle et affiche chaque ligne du tableau foreach ($keys as $key=>$val) { if ($conditions[$key]) { $classe=$classes[$key]; // Cherche dans cache si le load_state_board deja réalisé if (! is_object($boardloaded[$classe])) { include_once($includes[$key]); $board=new $classe($db); $board->load_state_board($user); $boardloaded[$classe]=$board; } else $board=$boardloaded[$classe]; $var=!$var; print ''; print ''; print ''; print ''; } } print '
'.$langs->trans("DolibarrStateBoard").' 
'.img_object($titres[$key],$icons[$key]).''.$titres[$key].''.$board->nb[$val].'
'; } print '
'; /* * Dolibarr Work Board */ if ($conf->global->MAIN_SHOW_WORKBOARD == 1) { print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; $var=true; // // Ne pas inclure de sections sans gestion de permissions // // Nbre actions à faire (en retard) if (($conf->commercial->enabled || $conf->compta->enabled || $conf->comptaexpert->enabled) && $user->rights->actions->lire) { include_once(DOL_DOCUMENT_ROOT."/actioncomm.class.php"); $board=new ActionComm($db); $board->load_board($user); $board->warning_delay=$conf->actions->warning_delay/60/60/24; $board->label=$langs->trans("ActionsToDo"); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre commandes clients à honorer if ($conf->commande->enabled && $user->rights->commande->lire) { include_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php"); $board=new Commande($db); $board->load_board($user); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre propales ouvertes (expirées) if ($conf->propal->enabled && $user->rights->propale->lire) { $langs->load("propal"); include_once(DOL_DOCUMENT_ROOT."/propal.class.php"); $board=new Propal($db); $board->load_board($user,"opened"); $var=!$var; print ''; print ''; print ''; print ''; print ''; } // Nbre propales fermées signées (à facturer) if ($conf->propal->enabled && $user->rights->propale->lire) { $langs->load("propal"); include_once(DOL_DOCUMENT_ROOT."/propal.class.php"); $board=new Propal($db); $board->load_board($user,"signed"); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre services à activer (en retard) if ($conf->contrat->enabled && $user->rights->contrat->lire) { $langs->load("contracts"); include_once(DOL_DOCUMENT_ROOT."/contrat/contrat.class.php"); $board=new Contrat($db); $board->load_board($user,"inactives"); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre services actifs (à renouveler) if ($conf->contrat->enabled && $user->rights->contrat->lire) { $langs->load("contracts"); include_once(DOL_DOCUMENT_ROOT."/contrat/contrat.class.php"); $board=new Contrat($db); $board->load_board($user,"expired"); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre factures fournisseurs (à payer) if ($conf->fournisseur->enabled && $conf->facture->enabled && $user->rights->facture->lire) { $langs->load("bills"); include_once(DOL_DOCUMENT_ROOT."/fourn/fournisseur.facture.class.php"); $board=new FactureFournisseur($db); $board->load_board($user); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre factures clients (à payer) if ($conf->facture->enabled && $user->rights->facture->lire) { $langs->load("bills"); include_once(DOL_DOCUMENT_ROOT."/facture.class.php"); $board=new Facture($db); $board->load_board($user); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre ecritures à rapprocher if ($conf->banque->enabled && $user->rights->banque->lire && ! $user->societe_id) { $langs->load("banks"); include_once(DOL_DOCUMENT_ROOT."/compta/bank/account.class.php"); $board=new Account($db); $board->load_board($user); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre ecritures à rapprocher if ($conf->banque->enabled && $user->rights->banque->lire && ! $user->societe_id) { $langs->load("banks"); include_once(DOL_DOCUMENT_ROOT."/compta/paiement/cheque/remisecheque.class.php"); $board=new RemiseCheque($db); $board->load_board($user); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } // Nbre adhérent valides (attente cotisation) if ($conf->adherent->enabled && $user->rights->adherent->lire && ! $user->societe_id) { $langs->load("members"); include_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php"); $board=new Adherent($db); $board->load_board($user); $var=!$var; print ''; print ''; print ''; print ''; print ''; print "\n"; } print '
'.$langs->trans("DolibarrWorkBoard").''.$langs->trans("Number").''.$langs->trans("Late").'  
'.img_object($langs->trans("Actions"),"task").''.$board->label.''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($board->warning_delay).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Orders"),"order").''.$langs->trans("OrdersToProcess").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->commande->traitement->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Propals"),"propal").''.$langs->trans("PropalsToClose").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->propal->cloture->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Propals"),"propal").''.$langs->trans("PropalsToBill").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->propal->facturation->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Contract"),"contract").''.$langs->trans("BoardNotActivatedServices").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->contrat->services->inactifs->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Contract"),"contract").''.$langs->trans("BoardRunningServices").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->contrat->services->expires->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Bills"),"bill").''.$langs->trans("SupplierBillsToPay").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->facture->fournisseur->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Bills"),"bill").''.$langs->trans("CustomerBillsUnpayed").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->facture->client->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("TransactionsToConciliate"),"payment").''.$langs->trans("TransactionsToConciliate").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->bank->rappro->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("BankChecksToReceipt"),"payment").''.$langs->trans("BankChecksToReceipt").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->bank->cheque->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'.img_object($langs->trans("Members"),"user").''.$langs->trans("Members").''.$board->nbtodo.''; print ''; print $board->nbtodolate; print ''; print ' (>'.ceil($conf->adherent->cotisation->warning_delay/60/60/24).' '.$langs->trans("days").')'; print ''; if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning"); else print ' '; print '
'; } print '
'; /* * Affichage des boites * */ $boxarray=$infobox->listboxes("0",$user); // 0=valeur pour la page accueil $boxjavascriptids=array(); //print_r($boxarray); // Gestion deplacement des boxes if (eregi('boxobject_([0-9]+)',$_GET["switchfrom"],$regfrom) && eregi('boxto_([0-9]+)',$_GET["switchto"],$regto)) { /* print "Modif ordre box: "; print $boxarray[$regfrom[1]]->box_id."(".$boxarray[$regfrom[1]]->box_order.")"; print " <-> "; print $boxarray[$regto[1]]->box_id."(".$boxarray[$regto[1]]->box_order.")"; print "
\n"; */ // Permutation boites $switchii=$boxarray[$regto[1]]; $boxarray[$regto[1]]=$boxarray[$regfrom[1]]; $boxarray[$regfrom[1]]=$switchii; // Permutation box_order $switchbox_order=$boxarray[$regto[1]]->box_order; $boxarray[$regto[1]]->box_order=$boxarray[$regfrom[1]]->box_order; $boxarray[$regfrom[1]]->box_order=$switchbox_order; /* print "Modif ordre box: "; print $boxarray[$regfrom[1]]->box_id."(".$boxarray[$regfrom[1]]->box_order.")"; print " <-> "; print $boxarray[$regto[1]]->box_id."(".$boxarray[$regto[1]]->box_order.")"; print "
\n"; */ // Sauvegarde nouvel ordre pour l'utilisateur $result=$infobox->saveboxorder("0",$boxarray,$user); if ($result < 0) { dolibarr_print_error($db,$infobox->error); } } $NBCOLS=2; // Nombre de colonnes pour les boites if (sizeof($boxarray)) { print '
'; print_fiche_titre($langs->trans("OtherInformationsBoxes")); print ''; for ($ii=0, $ni=sizeof($boxarray); $ii < $ni; $ii++) { $boxjavascriptids[$ii]='"box_'.$ii.'"'; if ($ii % $NBCOLS == 0) print "\n"; print '"; if ($ii % $NBCOLS == ($NBCOLS-1)) print "\n"; } if ($ii % $NBCOLS == ($NBCOLS-1)) print "\n"; print "
'; print '
'; if ($conf->use_ajax && $conf->browser->firefox) { print '
    '; print '
  • '; } // Affichage boite ii $box=$boxarray[$ii]; $box->loadBox(); $box->boxid="$ii"; $box->showBox(); if ($conf->use_ajax && $conf->browser->firefox) { print '
  • '; print '
'; } print '
'; print "
"; } if ($conf->use_ajax && $conf->browser->firefox) { print ''."\n"; } // Juste pour éviter bug IE qui réorganise mal div précédents si celui-ci absent if (! $conf->browser->firefox) { print '
 
'; } $db->close(); llxFooter('$Date$ - $Revision$'); ?>