New: Add private/public property on contact. This allow to add your own address database in Dolibarr.

This commit is contained in:
Laurent Destailleur 2008-03-30 22:25:39 +00:00
parent fc706aec4d
commit 0ac4706f24
23 changed files with 330 additions and 128 deletions

View File

@ -70,12 +70,15 @@ class modMyModule extends DolibarrModules
// Png file must be in theme/yourtheme/img directory under name object_pictovalue.png.
$this->picto='generic';
// Data directories to create when module is enabled
// Data directories to create when module is enabled.
$this->dirs = array();
//$this->dirs[0] = DOL_DATA_ROOT.'/mymodule;
//$this->dirs[1] = DOL_DATA_ROOT.'/mymodule/temp;
// Config pages. Put here list of php page names stored in admmin directory used to setup module
// Relative path to module style sheet if exists. Example: '/mymodule/mycss.css'.
$this->style_sheet = '';
// Config pages. Put here list of php page names stored in admmin directory used to setup module.
$this->config_page_url = array("mymodulesetuppage.php");
// Dependencies

View File

@ -65,6 +65,8 @@ class Conf
var $propal;
var $categorie;
var $oscommerce2;
var $css;
var $css_modules=array();
/**
@ -100,6 +102,8 @@ class Conf
{
if (! defined("$key")) define ("$key", $value); // In some cases, the constant might be already forced (Example: SYSLOG_FILE during install)
$this->global->$key=$value;
// If this is constant for a css file activated by a module
if (eregi('MAIN_MODULE_([A-Z_]+)_CSS',$key)) $this->css_modules[]=$value;
}
$i++;
}

View File

@ -93,15 +93,16 @@ class Contact extends CommonObject
$this->name=trim($this->name);
if (! $this->socid) $this->socid = 0;
$sql = "INSERT INTO ".MAIN_DB_PREFIX."socpeople (datec, fk_soc, name, fk_user_creat)";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."socpeople (datec, fk_soc, name, fk_user_creat, priv)";
$sql.= " VALUES (now(),";
if ($this->socid > 0) $sql.= " ".$this->socid.",";
else $sql.= "null,";
$sql.= "'".addslashes($this->name)."',";
$sql.= $user->id;
$sql.= $user->id.",";
$sql.= $this->priv;
$sql.= ")";
dolibarr_syslog("Contact.class::create sql=".$sql);
dolibarr_syslog("Contact::create sql=".$sql);
$resql=$this->db->query($sql);
if ($resql)
@ -127,7 +128,7 @@ class Contact extends CommonObject
else
{
$this->error=$this->db->error();
dolibarr_syslog("Contact.class::create ".$this->error);
dolibarr_syslog("Contact::create ".$this->error);
return -1;
}
}
@ -177,10 +178,11 @@ class Contact extends CommonObject
$sql .= ", phone_perso = '".addslashes($this->phone_perso)."'";
$sql .= ", phone_mobile = '".addslashes($this->phone_mobile)."'";
$sql .= ", jabberid = '".addslashes($this->jabberid)."'";
$sql .= ", priv = '".$this->priv."'";
if ($user) $sql .= ", fk_user_modif=".$user->id;
$sql .= " WHERE rowid=".$id;
dolibarr_syslog("Contact.class::update sql=".$sql,LOG_DEBUG);
dolibarr_syslog("Contact::update sql=".$sql,LOG_DEBUG);
$result = $this->db->query($sql);
if (! $result)
{
@ -371,7 +373,8 @@ class Contact extends CommonObject
$sql.= " c.address, c.cp, c.ville,";
$sql.= " c.fk_pays, p.libelle as pays, p.code as pays_code,";
$sql.= " c.birthday,";
$sql.= " c.poste, c.phone, c.phone_perso, c.phone_mobile, c.fax, c.email, c.jabberid, c.note,";
$sql.= " c.poste, c.phone, c.phone_perso, c.phone_mobile, c.fax, c.email, c.jabberid,";
$sql.= " c.priv, c.note,";
$sql.= " u.rowid as user_id, u.login as user_login";
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p ON c.fk_pays = p.rowid";
@ -413,6 +416,7 @@ class Contact extends CommonObject
$this->email = $obj->email;
$this->jabberid = $obj->jabberid;
$this->priv = $obj->priv;
$this->mail = $obj->email;
$this->birthday = $obj->birthday;
@ -505,7 +509,7 @@ class Contact extends CommonObject
$sql.=" AND fk_socpeople = ". $this->id;
$sql.=" GROUP BY tc.element";
dolibarr_syslog("Contact.class::load_ref_elements sql=".$sql);
dolibarr_syslog("Contact::load_ref_elements sql=".$sql);
$resql=$this->db->query($sql);
if ($resql)
@ -526,7 +530,7 @@ class Contact extends CommonObject
else
{
$this->error=$this->db->error()." - ".$sql;
dolibarr_syslog("Contact.class::load_ref_elements Error ".$this->error);
dolibarr_syslog("Contact::load_ref_elements Error ".$this->error);
return -1;
}
}
@ -822,6 +826,19 @@ class Contact extends CommonObject
}
/**
* \brief Return translated label of Public or Private
* \param type Type (0 = public, 1 = private)
* \return string Label translated
*/
function LibPubPriv($statut)
{
global $langs;
if ($statut=='1') return $langs->trans('ContactPrivate');
else return $langs->trans('ContactPublic');
}
/**
* \brief Initialise le contact avec valeurs fictives aléatoire
*/

View File

@ -98,6 +98,7 @@ if ($user->rights->societe->contact->creer)
$contact->phone_mobile = $_POST["phone_mobile"];
$contact->fax = $_POST["fax"];
$contact->jabberid = $_POST["jabberid"];
$contact->priv = $_POST["priv"];
$contact->note = $_POST["note"];
@ -167,6 +168,7 @@ if ($user->rights->societe->contact->creer)
$contact->phone_mobile = $_POST["phone_mobile"];
$contact->fax = $_POST["fax"];
$contact->jabberid = $_POST["jabberid"];
$contact->priv = $_POST["priv"];
$contact->note = $_POST["note"];
@ -307,10 +309,19 @@ if ($user->rights->societe->contact->creer)
print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input name="phone_mobile" type="text" size="18" maxlength="80" value="'.$contact->phone_mobile.'"></td>';
print '<td>'.$langs->trans("Fax").'</td><td><input name="fax" type="text" size="18" maxlength="80" value="'.$contact->fax.'"></td></tr>';
// EMail
print '<tr><td>'.$langs->trans("Email").'</td><td colspan="3"><input name="email" type="text" size="50" maxlength="80" value="'.$contact->email.'"></td></tr>';
// Jabberid
print '<tr><td>Jabberid</td><td colspan="3"><input name="jabberid" type="text" size="50" maxlength="80" value="'.$contact->jabberid.'"></td></tr>';
// Visibility
print '<tr><td>'.$langs->trans("ContactVisibility").'</td><td colspan="3">';
$selectarray=array('0'=>$langs->trans("ContactPublic"),'1'=>$langs->trans("ContactPrivate"));
$form->select_array('priv',$selectarray,$contact->priv,0);
print '</td></tr>';
// Note
print '<tr><td valign="top">'.$langs->trans("Note").'</td><td colspan="3" valign="note"><textarea name="note" cols="70" rows="'.ROWS_3.'">'.$contact->note.'</textarea></td></tr>';
print '<tr><td align="center" colspan="4"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td></tr>';
@ -392,8 +403,15 @@ if ($user->rights->societe->contact->creer)
}
print '</tr>';
// Jabberid
print '<tr><td>Jabberid</td><td colspan="3"><input name="jabberid" type="text" size="40" maxlength="80" value="'.$contact->jabberid.'"></td></tr>';
// Visibility
print '<tr><td>'.$langs->trans("ContactVisibility").'</td><td colspan="3">';
$selectarray=array('0'=>$langs->trans("ContactPublic"),'1'=>$langs->trans("ContactPrivate"));
$form->select_array('priv',$selectarray,$contact->priv,0);
print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Note").'</td><td colspan="3">';
print '<textarea name="note" cols="70" rows="'.ROWS_3.'">';
print $contact->note;
@ -530,8 +548,13 @@ if ($_GET["id"] && $_GET["action"] != 'edit')
}
print '</tr>';
// Jabberid
print '<tr><td>Jabberid</td><td colspan="3">'.$contact->jabberid.'</td></tr>';
print '<tr><td>'.$langs->trans("ContactVisibility").'</td><td colspan="3">';
print $contact->LibPubPriv($contact->priv);
print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("Note").'</td><td colspan="3">';
print nl2br($contact->note);
print '</td></tr>';
@ -592,7 +615,7 @@ if ($_GET["id"] && $_GET["action"] != 'edit')
print '<a class="butAction" href="fiche.php?id='.$contact->id.'&amp;action=edit">'.$langs->trans('Modify').'</a>';
}
if (! $contact->user_id && $user->rights->user->user->creer && $contact->socid > 0)
if (! $contact->user_id && $user->rights->user->user->creer)
{
print '<a class="butAction" href="fiche.php?id='.$contact->id.'&amp;action=create_user">'.$langs->trans("CreateDolibarrLogin").'</a>';
}

View File

@ -40,8 +40,10 @@ $search_nom=isset($_GET["search_nom"])?$_GET["search_nom"]:$_POST["search_nom"];
$search_prenom=isset($_GET["search_prenom"])?$_GET["search_prenom"]:$_POST["search_prenom"];
$search_societe=isset($_GET["search_societe"])?$_GET["search_societe"]:$_POST["search_societe"];
$search_email=isset($_GET["search_email"])?$_GET["search_email"]:$_POST["search_email"];
$search_priv=isset($_GET["search_priv"])?$_GET["search_priv"]:(isset($_POST["search_priv"])?$_POST["search_priv"]:'');
$type = isset($_GET["type"])?$_GET["type"]:$_POST["type"];
$view=isset($_GET["view"])?$_GET["view"]:$_POST["view"];
$sall=isset($_GET["contactname"])?$_GET["contactname"]:$_POST["contactname"];
@ -71,9 +73,13 @@ if ($type == "f") {
$titre=$langs->trans("ListOfContacts").' ('.$langs->trans("ThirdPartySuppliers").')';
$urlfiche="fiche.php";
}
if ($view == 'phone') { $text="( Vue T<>l<EFBFBD>phones)"; }
if ($type == "o") {
$titre=$langs->trans("ListOfContacts").' ('.$langs->trans("OthersNotLinkedToThirdParty").')';
$urlfiche="";
}
if ($view == 'phone') { $text="( Vue Telephones)"; }
if ($view == 'mail') { $text=" (Vue EMail)"; }
if ($view == 'recent') { $text=" (R<>cents)"; }
if ($view == 'recent') { $text=" (Recents)"; }
$titre = $titre." $text";
if ($_POST["button_removefilter"])
@ -82,9 +88,10 @@ if ($_POST["button_removefilter"])
$search_prenom="";
$search_societe="";
$search_email="";
$search_priv="";
$sall="";
}
if ($search_priv < 0) $search_priv='';
@ -95,8 +102,10 @@ if ($_POST["button_removefilter"])
llxHeader();
$form=new Form($db);
$sql = "SELECT s.rowid as socid, s.nom, ";
$sql.= " p.rowid as cidp, p.name, p.firstname, p.email, p.phone, p.phone_mobile, p.fax,";
$sql.= " p.rowid as cidp, p.name, p.firstname, p.email, p.phone, p.phone_mobile, p.fax, p.priv,";
$sql.= " ".$db->pdate("p.tms")." as tms";
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as p";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = p.fk_soc";
@ -106,10 +115,22 @@ if (!$user->rights->societe->client->voir && !$socid) //restriction
{
$sql .= " AND IFNULL(sc.fk_user, ".$user->id.") = " .$user->id;
}
if ($_GET["userid"]) // statut commercial
if ($_GET["userid"]) // propre au commercial
{
$sql .= " AND p.fk_user_creat=".$_GET["userid"];
}
// Filter to exclude not owned private contacts
if ($search_priv != '0' && $search_priv != '1')
{
$sql .= " AND (p.priv='0' OR (p.priv='1' AND p.fk_user_creat=".$user->id."))";
}
else
{
if ($search_priv == '0') $sql .= " AND p.priv='0'";
if ($search_priv == '1') $sql .= " AND (p.priv='1' AND p.fk_user_creat=".$user->id.")";
}
if ($search_nom) // filtre sur le nom
{
$sql .= " AND p.name like '%".addslashes($search_nom)."%'";
@ -126,6 +147,10 @@ if ($search_email) // filtre sur l'email
{
$sql .= " AND p.email like '%".addslashes($search_email)."%'";
}
if ($type == "o") // filtre sur type
{
$sql .= " AND p.fk_soc IS NULL";
}
if ($type == "f") // filtre sur type
{
$sql .= " AND fournisseur = 1";
@ -167,7 +192,6 @@ else
dolibarr_syslog("contact/index.php sql=".$sql);
$result = $db->query($sql);
if ($result)
{
$contactstatic=new Contact($db);
@ -191,13 +215,15 @@ if ($result)
print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname")." ".$langs->trans("or")." ".$langs->trans("EMail")."): ".$sall;
}
$param="&type=$type&view=$view&search_nom=$search_nom&search_prenom=$search_prenom&search_societe=$search_societe&search_email=$search_email";
if ($search_priv == '0' || $search_priv == '1') $param.="&search_priv=$search_priv";
// Ligne des titres
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Lastname"),"index.php","p.name", $begin, "&type=$type&view=$view&search_nom=$search_nom&search_prenom=$search_prenom&search_societe=$search_societe&search_email=$search_email", '', $sortfield,$sortorder);
print_liste_field_titre($langs->trans("Firstname"),"index.php","p.firstname", $begin, "&type=$type&view=$view&search_nom=$search_nom&search_prenom=$search_prenom&search_societe=$search_societe&search_email=$search_email", '', $sortfield,$sortorder);
print_liste_field_titre($langs->trans("Company"),"index.php","s.nom", $begin, "&type=$type&view=$view&search_nom=$search_nom&search_prenom=$search_prenom&search_societe=$search_societe&search_email=$search_email", '', $sortfield,$sortorder);
print '<td class="liste_titre">'.$langs->trans("Phone").'</td>';
print_liste_field_titre($langs->trans("Lastname"),"index.php","p.name", $begin, $param, '', $sortfield,$sortorder);
print_liste_field_titre($langs->trans("Firstname"),"index.php","p.firstname", $begin, $param, '', $sortfield,$sortorder);
print_liste_field_titre($langs->trans("Company"),"index.php","s.nom", $begin, $param, '', $sortfield,$sortorder);
print_liste_field_titre($langs->trans("Phone"),"index.php","p.phone", $begin, $param, '', $sortfield,$sortorder);
if ($_GET["view"] == 'phone')
{
print '<td class="liste_titre">'.$langs->trans("Mobile").'</td>';
@ -205,22 +231,23 @@ if ($result)
}
else
{
print_liste_field_titre($langs->trans("EMail"),"index.php","p.email", $begin, "&type=$type&view=$view&search_nom=$search_nom&search_prenom=$search_prenom&search_societe=$search_societe&search_email=$search_email", "", $sortfield,$sortorder);
print_liste_field_titre($langs->trans("EMail"),"index.php","p.email", $begin, $param, '', $sortfield,$sortorder);
}
print_liste_field_titre($langs->trans("DateModification"),"index.php","p.tms", $begin, "&type=$type&view=$view&search_nom=$search_nom&search_prenom=$search_prenom&search_societe=$search_societe&search_email=$search_email", 'align="center"', $sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateModification"),"index.php","p.tms", $begin, $param, 'align="center"', $sortfield,$sortorder);
print_liste_field_titre($langs->trans("ContactVisibility"),"index.php","p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder);
print '<td class="liste_titre">&nbsp;</td>';
print "</tr>\n";
// Ligne des champs de filtres
print '<tr class="liste_titre">';
print '<td class="liste_titre">';
print '<input class="flat" type="text" name="search_nom" size="12" value="'.$search_nom.'">';
print '<input class="flat" type="text" name="search_nom" size="10" value="'.$search_nom.'">';
print '</td>';
print '<td class="liste_titre">';
print '<input class="flat" type="text" name="search_prenom" size="10" value="'.$search_prenom.'">';
print '</td>';
print '<td class="liste_titre">';
print '<input class="flat" type="text" name="search_societe" size="14" value="'.$search_societe.'">';
print '<input class="flat" type="text" name="search_societe" size="10" value="'.$search_societe.'">';
print '</td>';
if ($conf->agenda->enabled && $user->rights->agenda->myactions->create)
{
@ -246,6 +273,10 @@ if ($result)
}
print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre">';
$selectarray=array('0'=>$langs->trans("ContactPublic"),'1'=>$langs->trans("ContactPrivate"));
$form->select_array('search_priv',$selectarray,$search_priv,1);
print '</td>';
print '<td class="liste_titre" align="right">';
print '<input type="image" value="button_search" class="liste_titre" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" name="button_search" alt="'.$langs->trans("Search").'">';
print '&nbsp; <input type="image" value="button_removefilter" class="liste_titre" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/searchclear.png" name="button_removefilter" alt="'.$langs->trans("RemoveFilter").'">';
@ -315,6 +346,9 @@ if ($result)
// Date
print '<td align="center">'.dolibarr_print_date($obj->tms,"day").'</td>';
// Private/Public
print '<td align="center">'.$contactstatic->LibPubPriv($obj->priv).'</td>';
// Link export vcard
print '<td align="right">';
print '<a href="'.DOL_URL_ROOT.'/contact/vcard.php?id='.$obj->cidp.'">';

View File

@ -1,5 +1,6 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2008 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
@ -14,40 +15,51 @@
* 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/contact/pre.inc.php
\brief File to manage left menu for contact area
\version $Id$
*/
require("../main.inc.php");
function llxHeader($head = "", $urlp = "")
{
global $langs, $user, $conf;
global $langs, $user, $conf;
$langs->load("companies");
$langs->load("commercial");
$langs->load("companies");
$langs->load("commercial");
top_menu($head);
top_menu($head);
$menu = new Menu();
$menu = new Menu();
$menu->add(DOL_URL_ROOT."/contact/index.php", $langs->trans("Contacts"));
if ($user->rights->societe->contact->creer)
{
$menu->add_submenu(DOL_URL_ROOT."/contact/fiche.php?action=create", $langs->trans("NewContact"));
}
if ($user->rights->societe->contact->lire)
{
$menu->add(DOL_URL_ROOT."/contact/index.php", $langs->trans("Contacts"));
}
if ($user->rights->societe->contact->creer)
{
$menu->add_submenu(DOL_URL_ROOT."/contact/fiche.php?action=create", $langs->trans("NewContact"));
}
if ($user->rights->societe->contact->lire)
{
$menu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire);
$menu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire);
$menu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire);
$menu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=o", $langs->trans("Others"), 2, $user->rights->societe->contact->lire);
$menu->add(DOL_URL_ROOT."/contact/index.php?userid=$user->id", $langs->trans("MyContacts"));
$menu->add(DOL_URL_ROOT."/contact/index.php?view=recent", $langs->trans("LastContacts"));
$menu->add(DOL_URL_ROOT."/contact/index.php?view=phone", $langs->trans("Phones"));
$menu->add(DOL_URL_ROOT."/contact/index.php?view=mail", $langs->trans("EMails"));
$menu->add(DOL_URL_ROOT."/contact/index.php?view=recent", $langs->trans("LastContacts"));
$menu->add(DOL_URL_ROOT."/contact/index.php?view=phone", $langs->trans("Phones"));
$menu->add(DOL_URL_ROOT."/contact/index.php?view=mail", $langs->trans("EMails"));
left_menu($menu->liste);
$menu->add(DOL_URL_ROOT."/contact/index.php?userid=$user->id", $langs->trans("MyContacts"));
}
left_menu($menu->liste);
}
?>

View File

@ -202,7 +202,7 @@ class MenuLeft {
$newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=suppliers&amp;action=create&amp;type=f",$langs->trans("MenuNewSupplier"), 2, $user->rights->societe->creer && $user->rights->fournisseur->lire);
}
$newmenu->add_submenu(DOL_URL_ROOT."/fourn/liste.php?leftmenu=suppliers", $langs->trans("List"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=suppliers&amp;type=f",$langs->trans("Contacts"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire && $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=suppliers&amp;type=f",$langs->trans("Contacts"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire && $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/fourn/stats.php",$langs->trans("Statistics"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire);
}
@ -213,7 +213,7 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/comm/prospect/prospects.php?leftmenu=prospects", $langs->trans("Prospects"), 1, $user->rights->societe->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=prospects&amp;action=create&amp;type=p", $langs->trans("MenuNewProspect"), 2, $user->rights->societe->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
}
// Clients
@ -223,13 +223,18 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/comm/clients.php?leftmenu=customers", $langs->trans("Customers"), 1, $user->rights->societe->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=customers&amp;action=create&amp;type=c", $langs->trans("MenuNewCustomer"), 2, $user->rights->societe->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
}
// Contacts
$newmenu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("Contacts"), 0, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/fiche.php?leftmenu=contacts&amp;action=create", $langs->trans("NewContact"), 1, $user->rights->societe->contact->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("List"), 1, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=o", $langs->trans("Others"), 2, $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?userid=$user->id", $langs->trans("MyContacts"), 1, $user->rights->societe->contact->lire);
// Catégories
if ($conf->categorie->enabled)
@ -287,6 +292,10 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("Contacts"), 0, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/fiche.php?leftmenu=contacts&amp;action=create", $langs->trans("NewContact"), 1, $user->rights->societe->contact->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("List"), 1, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=o", $langs->trans("Others"), 2, $user->rights->societe->contact->lire);
// Propal
if ($conf->propal->enabled)

View File

@ -205,7 +205,7 @@ class MenuLeft {
$newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=suppliers&amp;action=create&amp;type=f",$langs->trans("NewSupplier"), 2, $user->rights->societe->creer && $user->rights->fournisseur->lire);
}
$newmenu->add_submenu(DOL_URL_ROOT."/fourn/liste.php?leftmenu=suppliers", $langs->trans("List"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=suppliers&amp;type=f",$langs->trans("Contacts"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire && $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=suppliers&amp;type=f",$langs->trans("Contacts"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire && $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/fourn/stats.php",$langs->trans("Statistics"), 2, $user->rights->societe->lire && $user->rights->fournisseur->lire);
}
@ -216,7 +216,7 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/comm/prospect/prospects.php?leftmenu=prospects", $langs->trans("Prospects"), 2, $user->rights->societe->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=prospects&amp;action=create&amp;type=p", $langs->trans("MenuNewProspect"), 2, $user->rights->societe->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
}
// Clients
@ -226,14 +226,18 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/comm/clients.php?leftmenu=customers", $langs->trans("Customers"), 1, $user->rights->societe->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=customers&amp;action=create&amp;type=c", $langs->trans("MenuNewCustomer"), 2, $user->rights->societe->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&amp;type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
}
// Contacts
$newmenu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("Contacts"), 0, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/fiche.php?leftmenu=contacts&amp;action=create", $langs->trans("NewContact"), 1, $user->rights->societe->contact->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("List"), 1, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=o", $langs->trans("Others"), 2, $user->rights->societe->contact->lire);
//$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?userid=$user->id", $langs->trans("MyContacts"), 1, $user->rights->societe->contact->lire);
}
/*
@ -271,7 +275,12 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("Contacts"), 0, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/fiche.php?leftmenu=contacts&amp;action=create", $langs->trans("NewContact"), 1, $user->rights->societe->contact->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts", $langs->trans("List"), 1, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=contacts&type=o", $langs->trans("Others"), 2, $user->rights->societe->contact->lire);
*/
// Propal
if ($conf->propal->enabled)
{

View File

@ -18,13 +18,12 @@
* 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$
*/
/**
\file htdocs/includes/modules/DolibarrModules.class.php
\brief Fichier de description et activation des modules Dolibarr
\file htdocs/includes/modules/DolibarrModules.class.php
\brief Fichier de description et activation des modules Dolibarr
\version $Id$
*/
@ -36,16 +35,20 @@ class DolibarrModules
{
//! Database handler
var $db;
//! Relative path to module style sheet
var $style_sheet = '';
//! Path to create when module activated
var $dirs = array();
//! Tableau des boites
var $boxes;
//! Tableau des constantes
var $const;
//! Tableau des droits
var $rights;
//! Tableau des documents
var $docs;
//! Tableau des menus
var $menu=array();
//! Tableau des documents ???
var $docs;
var $dbversion;
@ -79,6 +82,9 @@ class DolibarrModules
// Insere la constante d'activation module
if (! $err) $err+=$this->_active();
// Insere le nom de la feuille de style
if (! $err) $err+=$this->insert_style_sheet();
// Insere les constantes associees au module dans llx_const
if (! $err) $err+=$this->insert_const();
@ -173,6 +179,9 @@ class DolibarrModules
// Supprime la constante d'activation du module
$err+=$this->_unactive();
// Supprime les boites de la liste des boites disponibles
$err+=$this->delete_style_sheet();
// Supprime les boites de la liste des boites disponibles
$err+=$this->delete_boxes();
@ -484,42 +493,89 @@ class DolibarrModules
}
/**
\brief Supprime les boites
\return int Nombre d'erreurs (0 si ok)
*/
function delete_boxes()
{
$err=0;
if (is_array($this->boxes))
{
foreach ($this->boxes as $key => $value)
{
//$titre = $this->boxes[$key][0];
$file = $this->boxes[$key][1];
//$note = $this->boxes[$key][2];
$sql = "DELETE ".MAIN_DB_PREFIX."boxes";
$sql.= " FROM ".MAIN_DB_PREFIX."boxes, ".MAIN_DB_PREFIX."boxes_def";
$sql.= " WHERE ".MAIN_DB_PREFIX."boxes.box_id = ".MAIN_DB_PREFIX."boxes_def.rowid";
$sql.= " AND ".MAIN_DB_PREFIX."boxes_def.file = '".addslashes($file)."'";
dolibarr_syslog("DolibarrModules::delete_boxes sql=".$sql);
$this->db->query($sql);
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
$sql.= " WHERE file = '".addslashes($file)."'";
dolibarr_syslog("DolibarrModules::delete_boxes sql=".$sql);
if (! $this->db->query($sql))
{
$err++;
}
}
}
return $err;
}
/**
\brief Supprime les boites
\return int Nombre d'erreurs (0 si ok)
*/
function delete_boxes()
{
$err=0;
if (is_array($this->boxes))
{
foreach ($this->boxes as $key => $value)
{
//$titre = $this->boxes[$key][0];
$file = $this->boxes[$key][1];
//$note = $this->boxes[$key][2];
$sql = "DELETE ".MAIN_DB_PREFIX."boxes";
$sql.= " FROM ".MAIN_DB_PREFIX."boxes, ".MAIN_DB_PREFIX."boxes_def";
$sql.= " WHERE ".MAIN_DB_PREFIX."boxes.box_id = ".MAIN_DB_PREFIX."boxes_def.rowid";
$sql.= " AND ".MAIN_DB_PREFIX."boxes_def.file = '".addslashes($file)."'";
dolibarr_syslog("DolibarrModules::delete_boxes sql=".$sql);
$this->db->query($sql);
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
$sql.= " WHERE file = '".addslashes($file)."'";
dolibarr_syslog("DolibarrModules::delete_boxes sql=".$sql);
if (! $this->db->query($sql))
{
$err++;
}
}
}
return $err;
}
/**
\brief Desactive feuille de style du module par suppression ligne dans llx_const
\return int Nombre d'erreurs (0 si ok)
*/
function delete_style_sheet()
{
$err=0;
if ($this->style_sheet)
{
$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
$sql.= " WHERE name = '".$this->const_name."_CSS'";
dolibarr_syslog("DolibarrModules::delete_style_sheet sql=".$sql);
if (! $this->db->query($sql))
{
$err++;
}
}
return $err;
}
/**
\brief Active la feuille de style associee au module par insertion ligne dans llx_const
\return int Nombre d'erreurs (0 si ok)
*/
function insert_style_sheet()
{
$err=0;
if ($this->style_sheet)
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible)";
$sql.= " VALUES ('".$this->const_name."_CSS','chaine','".$this->style_sheet."','Style sheet for module ".$this->name."','0')";
dolibarr_syslog("DolibarrModules::insert_style_sheet sql=".$sql);
$resql=$this->db->query($sql);
/* Allow duplicate key
if (! $resql)
{
$err++;
}
*/
}
return $err;
}
/**
\brief Insere les constantes associees au module dans llx_const
\return int Nombre d'erreurs (0 si ok)
@ -548,17 +604,18 @@ class DolibarrModules
if (! $visible) $visible='0';
if (strlen($note))
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible) VALUES ('$name','$type','$val','$note','$visible');";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible) VALUES ('$name','$type','$val','$note','$visible')";
}
elseif (strlen($val))
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,visible) VALUES ('$name','$type','$val','$visible');";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,visible) VALUES ('$name','$type','$val','$visible')";
}
else
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,visible) VALUES ('$name','$type','$visible');";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,visible) VALUES ('$name','$type','$visible')";
}
dolibarr_syslog("DolibarrModules::insert_const sql=".$sql);
if (! $this->db->query($sql) )
{
$err++;
@ -585,7 +642,7 @@ class DolibarrModules
//print $this->rights_class." ".sizeof($this->rights)."<br>";
// Test si module actif
$sql_del = "SELECT value FROM ".MAIN_DB_PREFIX."const WHERE name = '".$this->const_name."';";
$sql_del = "SELECT value FROM ".MAIN_DB_PREFIX."const WHERE name = '".$this->const_name."'";
$resql=$this->db->query($sql_del);
if ($resql) {
@ -610,14 +667,14 @@ class DolibarrModules
$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def ";
$sql .= " (id, libelle, module, type, bydefault, perms, subperms)";
$sql .= " VALUES ";
$sql .= "(".$r_id.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."','".$r_subperms."');";
$sql .= "(".$r_id.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."','".$r_subperms."')";
}
else
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def ";
$sql .= " (id, libelle, module, type, bydefault, perms)";
$sql .= " VALUES ";
$sql .= "(".$r_id.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."');";
$sql .= "(".$r_id.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."')";
}
}
else
@ -625,9 +682,10 @@ class DolibarrModules
$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def ";
$sql .= " (id, libelle, module, type, bydefault)";
$sql .= " VALUES ";
$sql .= "(".$r_id.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.");";
$sql .= "(".$r_id.",'".addslashes($r_desc)."','".$r_modul."','".$r_type."',".$r_def.")";
}
dolibarr_syslog("DolibarrModules::insert_permissions sql=".$sql);
$resql=$this->db->query($sql);
if (! $resql)
{
@ -651,7 +709,8 @@ class DolibarrModules
{
$err=0;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."rights_def WHERE module = '".$this->rights_class."';";
$sql = "DELETE FROM ".MAIN_DB_PREFIX."rights_def WHERE module = '".$this->rights_class."'";
dolibarr_syslog("DolibarrModules::delete_permissions sql=".$sql);
if (!$this->db->query($sql))
{
$err++;

View File

@ -200,9 +200,9 @@ class modSociete extends DolibarrModules
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='ExportDataset_company_2';
$this->export_permission[$r]=array(array("societe","contact","export"));
$this->export_fields_array[$r]=array('c.civilite'=>"CivilityCode",'c.name'=>'Lastname','c.firstname'=>'Firstname','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.address'=>"Address",'c.cp'=>"Zip",'c.ville'=>"Town",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.email'=>"EMail",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode");
$this->export_entities_array[$r]=array('c.civilite'=>"contact",'c.name'=>'contact','c.firstname'=>'contact','c.datec'=>"contact",'c.tms'=>"contact",'c.address'=>"contact",'c.cp'=>"contact",'c.ville'=>"contact",'c.phone'=>"contact",'c.fax'=>"contact",'c.email'=>"contact",'p.libelle'=>"contact",'p.code'=>"contact",'s.rowid'=>"company",'s.nom'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company");
$this->export_alias_array[$r]=array('c.civilite'=>"civilitycode",'c.name'=>'lastname','c.firstname'=>'firstname','c.datec'=>"datecreation",'c.tms'=>"datelastmodification",'c.address'=>"address",'c.cp'=>"zip",'c.ville'=>"town",'c.phone'=>"phone",'c.fax'=>"fax",'c.email'=>"email",'p.libelle'=>"country",'p.code'=>"countrycode",'s.rowid'=>"socid",'s.nom'=>"companyname",'s.code_client'=>"customercode",'s.code_fournisseur'=>"suppliercode");
$this->export_fields_array[$r]=array('c.civilite'=>"CivilityCode",'c.name'=>'Lastname','c.firstname'=>'Firstname','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.cp'=>"Zip",'c.ville'=>"Town",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.email'=>"EMail",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode");
$this->export_entities_array[$r]=array('c.civilite'=>"contact",'c.name'=>'contact','c.firstname'=>'contact','c.datec'=>"contact",'c.tms'=>"contact",'c.priv'=>"contact",'c.address'=>"contact",'c.cp'=>"contact",'c.ville'=>"contact",'c.phone'=>"contact",'c.fax'=>"contact",'c.email'=>"contact",'p.libelle'=>"contact",'p.code'=>"contact",'s.rowid'=>"company",'s.nom'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company");
$this->export_alias_array[$r]=array('c.civilite'=>"civilitycode",'c.name'=>'lastname','c.firstname'=>'firstname','c.datec'=>"datecreation",'c.tms'=>"datelastmodification",'c.priv'=>"private",'c.address'=>"address",'c.cp'=>"zip",'c.ville'=>"town",'c.phone'=>"phone",'c.fax'=>"fax",'c.email'=>"email",'p.libelle'=>"country",'p.code'=>"countrycode",'s.rowid'=>"socid",'s.nom'=>"companyname",'s.code_client'=>"customercode",'s.code_fournisseur'=>"suppliercode");
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'c_pays as p, '.MAIN_DB_PREFIX.'socpeople as c LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON c.fk_soc = s.rowid';
$this->export_sql_end[$r].=' WHERE c.fk_pays = p.rowid';

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2007 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2007 Regis Houssin <regis@dolibarr.fr>
*
* This program is free software; you can redistribute it and/or modify
@ -16,14 +16,12 @@
* 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$
*/
/**
\file htdocs/index.php
\brief Page accueil par defaut
\version $Revision$
\version $Id$
*/
require("./pre.inc.php");
@ -229,7 +227,7 @@ print '</td><td width="65%" valign="top" class="notopnoleftnoright">';
/*
* Dolibarr Work Board
* Dolibarr Working Board
*/
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
@ -240,6 +238,7 @@ print '<td>&nbsp;</td>';
print '<td width="20">&nbsp;</td>';
print '</tr>';
$nboflate=0;
$var=true;
//
// Ne pas inclure de sections sans gestion de permissions
@ -264,7 +263,7 @@ if ($conf->commercial->enabled || $conf->compta->enabled || $conf->comptaexpert-
print ' (>'.ceil($board->warning_delay).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -288,7 +287,7 @@ if ($conf->commande->enabled && $user->rights->commande->lire)
print ' (>'.ceil($conf->commande->traitement->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -314,7 +313,7 @@ if ($conf->propal->enabled && $user->rights->propale->lire)
print ' (>'.ceil($conf->propal->cloture->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -339,7 +338,7 @@ if ($conf->propal->enabled && $user->rights->propale->lire)
print ' (>'.ceil($conf->propal->facturation->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -365,7 +364,7 @@ if ($conf->contrat->enabled && $user->rights->contrat->lire)
print ' (>'.ceil($conf->contrat->services->inactifs->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -391,7 +390,7 @@ if ($conf->contrat->enabled && $user->rights->contrat->lire)
print ' (>'.ceil($conf->contrat->services->expires->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -417,7 +416,7 @@ if ($conf->fournisseur->enabled && $conf->facture->enabled && $user->rights->fac
print ' (>'.ceil($conf->facture->fournisseur->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -443,7 +442,7 @@ if ($conf->facture->enabled && $user->rights->facture->lire)
print ' (>'.ceil($conf->facture->client->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -469,7 +468,7 @@ if ($conf->banque->enabled && $user->rights->banque->lire && ! $user->societe_id
print ' (>'.ceil($conf->bank->rappro->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -495,7 +494,7 @@ if ($conf->banque->enabled && $user->rights->banque->lire && ! $user->societe_id
print ' (>'.ceil($conf->bank->cheque->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -521,7 +520,7 @@ if ($conf->adherent->enabled && $user->rights->adherent->lire && ! $user->societ
print ' (>'.ceil($conf->adherent->cotisation->warning_delay/60/60/24).' '.$langs->trans("days").')';
print '</td>';
print '<td>';
if ($board->nbtodolate > 0) print img_picto($langs->trans("Late"),"warning");
if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
else print '&nbsp;';
print '</td>';
print '</tr>';
@ -530,6 +529,11 @@ print "\n";
print '</table>';
if ($nboflate > 0)
{
print '<br><table width="100%" class="border"><tr><td><font class="warning">'.img_picto($langs->trans("Alert"),'warning').' '.$langs->trans("WarningYouHaveAtLeastOneTaskLate").'</font></td></tr></table>';
}
print '</td></tr></table>';

View File

@ -187,6 +187,10 @@ JuridicalStatus=Juridical status
Staff=Staff
ProspectLevelShort=Potentiel
ProspectLevel=Prospect potential
ContactPrivate=Private
ContactPublic=Shared
ContactVisibility=Visibility
OthersNotLinkedToThirdParty=Others, not linked to a third party
PL_UNKNOWN=Unknown
PL_LOW=Low
PL_MEDIUM=Medium

View File

@ -60,6 +60,7 @@ NotePrivate=Note (private)
PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to <b>%s</b> decimals.
DoTest=Test
ToFilter=Filter
WarningYouHaveAtLeastOneTaskLate=Warning, you at least on element that has exceded tolerance delay.
yes=yes
Yes=Yes
no=no
@ -277,6 +278,7 @@ to=to
and=and
or=or
Other=Other
Others=Others
Quantity=Quantity
Qty=Qty
ChangedBy=Changed by

View File

@ -51,7 +51,7 @@ StatusActionInProcess=En cours
MyActionsAsked=Actions que j'ai enregistrées
MyActionsToDo=Actions qui me sont affectées
MyActionsDone=Actions que j'ai faites
TasksHistoryForThisContact=Actions vis à vis de contact
TasksHistoryForThisContact=Actions vis à vis de ce contact
LastProspectDoNotContact=A ne pas contacter
LastProspectNeverContacted=Non contactés
LastProspectToContact=A contacter

View File

@ -27,7 +27,7 @@ CountryIsInEEC=Pays de la Communaut
ThirdParty=Tiers
ThirdParties=Tiers
ThirdPartyAll=Tiers (tous)
ThirdPartyProspects=Prospets
ThirdPartyProspects=Prospects
ThirdPartyCustomers=Clients
ThirdPartyCustomersWithIdProf12=Clients avec %s ou %s
ThirdPartySuppliers=Fournisseurs
@ -187,6 +187,10 @@ JuridicalStatus=Forme juridique
Staff=Effectif
ProspectLevelShort=Potentiel
ProspectLevel=Potentiel du prospect
ContactPrivate=Privé
ContactPublic=Partagé
ContactVisibility=Visibilité
OthersNotLinkedToThirdParty=Autres, non liés à un tiers
PL_UNKNOWN=Indéterminé
PL_LOW=Faible
PL_MEDIUM=Moyen

View File

@ -60,6 +60,7 @@ NotePrivate=Note (priv
PrecisionUnitIsLimitedToXDecimals=Dolibarr a été configuré pour limiter la précision des prix unitaires à <b>%s</b> décimals.
DoTest=Tester
ToFilter=Filtrer
WarningYouHaveAtLeastOneTaskLate=Attention, vous avez au moins un élément qui a dépassé le délai de tolérance de retard.
yes=oui
Yes=Oui
no=non
@ -279,6 +280,7 @@ To=
and=et
or=ou
Other=Autre
Others=Autres
Quantity=Quantité
Qty=Qté
ChangedBy=Modifié par

View File

@ -653,7 +653,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
{
global $user, $conf, $langs, $db;
if (! $conf->css) $conf->css ='/theme/eldy/eldy.css.php';
if (empty($conf->css)) $conf->css ='/theme/eldy/eldy.css.php';
//header("Content-type: text/html; charset=UTF-8");
header("Content-type: text/html; charset=".$conf->character_set_client);
@ -694,6 +694,15 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
// Output style sheets
print '<link rel="stylesheet" type="text/css" title="default" href="'.DOL_URL_ROOT.'/'.$conf->css.'">'."\n";
print '<link rel="stylesheet" type="text/css" media="print" href="'.DOL_URL_ROOT.'/theme/print.css">'."\n";
// CSS forced by modules
if (is_array($conf->css_modules))
{
foreach($conf->css_modules as $cssfile)
{ // cssfile is an absolute path
print '<link rel="stylesheet" type="text/css" title="default" href="'.DOL_URL_ROOT.$cssfile.'">'."\n";
}
}
// CSS forced by page
if (is_array($arrayofcss))
{
foreach($arrayofcss as $cssfile)

View File

@ -88,7 +88,7 @@ textarea.flat
}
select.flat
{
font-weight: normal;
border: 1px solid #ACBCBB;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;

View File

@ -94,6 +94,7 @@ select.flat
{
font-size: <?php print (eregi('MSIE 6',$_SERVER['HTTP_USER_AGENT']) ? "11" : "12"); ?>px;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: normal;
border: 1px solid #ACBCBB;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;

View File

@ -96,6 +96,7 @@ select.flat
{
font-size: <?php print (eregi('MSIE 6',$_SERVER['HTTP_USER_AGENT']) ? "11" : "12"); ?>px;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: normal;
border: 1px solid #ACBCBB;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;

View File

@ -89,6 +89,7 @@ select.flat
{
font-size: 12px;
font-family: helvetica, verdana, arial, sans-serif;
font-weight: normal;
border: 1px solid #cccccc;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;

View File

@ -238,3 +238,5 @@ update llx_rights_def set module='societe' where module='commercial' and perms='
insert into llx_c_chargesociales (id, libelle, deductible, active, actioncompta) values (25, 'Impots revenus', 0,1,'TAXREV');
alter table llx_socpeople add priv smallint NOT NULL DEFAULT 0 after jabberid;

View File

@ -1,5 +1,6 @@
-- ============================================================================
-- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
-- Copyright (C) 2008 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
@ -39,6 +40,7 @@ create table llx_socpeople
fax varchar(30),
email varchar(255),
jabberid varchar(255),
priv smallint NOT NULL DEFAULT 0,
fk_user_creat integer DEFAULT 0, -- user qui a créé l'enregistrement
fk_user_modif integer,
note text