Qual: Now module services and products are two completely separated modules.

This commit is contained in:
Laurent Destailleur 2009-06-08 18:14:37 +00:00
parent 17fb177920
commit 8732364f01
68 changed files with 1217 additions and 1200 deletions

View File

@ -46,7 +46,7 @@ if ($_REQUEST["socid"])
else if ($_REQUEST["id"] || $_REQUEST["ref"]) else if ($_REQUEST["id"] || $_REQUEST["ref"])
{ {
$type = 'produit'; $type = 'produit';
$objecttype = 'produit'; $objecttype = 'produit|service';
$objectid = isset($_REQUEST["id"])?$_REQUEST["id"]:(isset($_REQUEST["ref"])?$_REQUEST["ref"]:''); $objectid = isset($_REQUEST["id"])?$_REQUEST["id"]:(isset($_REQUEST["ref"])?$_REQUEST["ref"]:'');
$dbtablename = 'product'; $dbtablename = 'product';
$fieldid = isset($_REQUEST["ref"])?'ref':'rowid'; $fieldid = isset($_REQUEST["ref"])?'ref':'rowid';
@ -68,7 +68,7 @@ if ($_REQUEST["removecat"])
$object = new Societe($db); $object = new Societe($db);
$result = $object->fetch($_REQUEST["socid"]); $result = $object->fetch($_REQUEST["socid"]);
} }
else if (($_REQUEST["id"] || $_REQUEST["ref"]) && $user->rights->produit->creer) else if (($_REQUEST["id"] || $_REQUEST["ref"]) && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$object = new Product($db); $object = new Product($db);
if ($_REQUEST["ref"]) $result = $object->fetch('',$_REQUEST["ref"]); if ($_REQUEST["ref"]) $result = $object->fetch('',$_REQUEST["ref"]);
@ -87,7 +87,7 @@ if (isset($_REQUEST["catMere"]) && $_REQUEST["catMere"]>=0)
$object = new Societe($db); $object = new Societe($db);
$result = $object->fetch($_REQUEST["socid"]); $result = $object->fetch($_REQUEST["socid"]);
} }
else if (($_REQUEST["id"] || $_REQUEST["ref"]) && $user->rights->produit->creer) else if (($_REQUEST["id"] || $_REQUEST["ref"]) && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$object = new Product($db); $object = new Product($db);
if ($_REQUEST["ref"]) $result = $object->fetch('',$_REQUEST["ref"]); if ($_REQUEST["ref"]) $result = $object->fetch('',$_REQUEST["ref"]);
@ -333,7 +333,7 @@ function formCategory($db,$object,$type,$typeid)
$permission=0; $permission=0;
if ($type == 'fournisseur') $permission=$user->rights->societe->creer; if ($type == 'fournisseur') $permission=$user->rights->societe->creer;
if ($type == 'societe') $permission=$user->rights->societe->creer; if ($type == 'societe') $permission=$user->rights->societe->creer;
if ($type == 'product') $permission=$user->rights->produit->creer; if ($type == 'product') $permission=($user->rights->produit->creer || $user->rights->service->creer);
if ($permission) if ($permission)
{ {
print "<a href= '".DOL_URL_ROOT."/categories/categorie.php?".$nameId."=".$object->id."&amp;typeid=".$typeid."&amp;removecat=".$cat->id."'>"; print "<a href= '".DOL_URL_ROOT."/categories/categorie.php?".$nameId."=".$object->id."&amp;typeid=".$typeid."&amp;removecat=".$cat->id."'>";

View File

@ -18,98 +18,98 @@
*/ */
/** /**
\file htdocs/comm/pre.inc.php \file htdocs/comm/pre.inc.php
\ingroup commercial \ingroup commercial
\brief Fichier de gestion du menu gauche de l'espace commercial \brief Fichier de gestion du menu gauche de l'espace commercial
\version $Id$ \version $Id$
*/ */
require("../main.inc.php"); require("../main.inc.php");
function llxHeader($head = '', $title='', $help_url='') function llxHeader($head = '', $title='', $help_url='')
{ {
global $user, $conf, $langs; global $user, $conf, $langs;
$langs->load("companies"); $langs->load("companies");
$langs->load("commercial"); $langs->load("commercial");
top_menu($head, $langs->trans($title)); top_menu($head, $langs->trans($title));
$menu = new Menu(); $menu = new Menu();
// Clients // Clients
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers")); $menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
if ($user->rights->societe->creer) if ($user->rights->societe->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=c", $langs->trans("MenuNewCustomer")); $menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=c", $langs->trans("MenuNewCustomer"));
} }
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts")); $menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts"));
// Prospects // Prospects
$menu->add(DOL_URL_ROOT."/comm/prospect/index.php", $langs->trans("Prospects")); $menu->add(DOL_URL_ROOT."/comm/prospect/index.php", $langs->trans("Prospects"));
if ($user->rights->societe->creer) if ($user->rights->societe->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=p", $langs->trans("MenuNewProspect")); $menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=p", $langs->trans("MenuNewProspect"));
} }
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=p", $langs->trans("Contacts")); $menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=p", $langs->trans("Contacts"));
$menu->add(DOL_URL_ROOT."/comm/action/index.php", $langs->trans("Actions")); $menu->add(DOL_URL_ROOT."/comm/action/index.php", $langs->trans("Actions"));
// Propal // Propal
if ($conf->propal->enabled && $user->rights->propale->lire) if ($conf->propal->enabled && $user->rights->propale->lire)
{ {
$langs->load("propal"); $langs->load("propal");
$menu->add(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop")); $menu->add(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("PropalsDraft")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("PropalsDraft"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("PropalsOpened")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("PropalsOpened"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics"));
} }
if ($conf->contrat->enabled && $user->rights->contrat->lire) if ($conf->contrat->enabled && $user->rights->contrat->lire)
{ {
$langs->load("contracts"); $langs->load("contracts");
$menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts")); $menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts"));
} }
if ($conf->commande->enabled && $user->rights->commande->lire) if ($conf->commande->enabled && $user->rights->commande->lire)
{ {
$langs->load("orders"); $langs->load("orders");
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders")); $menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
} }
if ($user->mailing->enabled && $user->rights->mailing->lire) if ($user->mailing->enabled && $user->rights->mailing->lire)
{ {
$langs->load("mails"); $langs->load("mails");
$menu->add(DOL_URL_ROOT."/comm/mailing/", $langs->trans("EMailings")); $menu->add(DOL_URL_ROOT."/comm/mailing/", $langs->trans("EMailings"));
} }
if ($conf->ficheinter->enabled && $user->rights->ficheinter->lire) if ($conf->ficheinter->enabled && $user->rights->ficheinter->lire)
{ {
$langs->load("interventions"); $langs->load("interventions");
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions")); $menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
} }
if (($conf->produit->enabled || $conf->service->enabled) && $user->rights->produit->lire) if (($conf->produit->enabled && $user->rights->produit->lire) || ($conf->service->enabled && $user->rights->service->lire))
{ {
$langs->load("products"); $langs->load("products");
$chaine=""; $chaine="";
if ($conf->produit->enabled) { $chaine.=$langs->trans("Products"); } if ($conf->produit->enabled) { $chaine.=$langs->trans("Products"); }
if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; } if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; }
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); } if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$menu->add(DOL_URL_ROOT."/product/index.php", "$chaine"); $menu->add(DOL_URL_ROOT."/product/index.php", "$chaine");
} }
if ($conf->projet->enabled && $user->rights->projet->lire) if ($conf->projet->enabled && $user->rights->projet->lire)
{ {
$langs->load("projects"); $langs->load("projects");
$menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects")); $menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects"));
} }
left_menu($menu->liste, $help_url); left_menu($menu->liste, $help_url);
} }
?> ?>

View File

@ -22,88 +22,88 @@
*/ */
/** /**
\file htdocs/comm/propal/pre.inc.php \file htdocs/comm/propal/pre.inc.php
\ingroup propale \ingroup propale
\brief Fichier de gestion du menu gauche du module propale \brief Fichier de gestion du menu gauche du module propale
\version $Revision$ \version $Revision$
*/ */
require("../../main.inc.php"); require("../../main.inc.php");
function llxHeader($head = "", $urlp = "") { function llxHeader($head = "", $urlp = "") {
global $user, $conf, $langs; global $user, $conf, $langs;
$langs->load("companies"); $langs->load("companies");
top_menu($head); top_menu($head);
$menu = new Menu(); $menu = new Menu();
// Clients // Clients
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers")); $menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
if ($user->rights->societe->creer) if ($user->rights->societe->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=c", $langs->trans("MenuNewCustomer")); $menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=c", $langs->trans("MenuNewCustomer"));
} }
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts")); $menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts"));
// Prospects // Prospects
$menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects")); $menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects"));
if ($user->rights->societe->creer) if ($user->rights->societe->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=p", $langs->trans("MenuNewProspect")); $menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=p", $langs->trans("MenuNewProspect"));
} }
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=p", $langs->trans("Contacts")); $menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=p", $langs->trans("Contacts"));
$menu->add(DOL_URL_ROOT."/comm/action/index.php", $langs->trans("Actions")); $menu->add(DOL_URL_ROOT."/comm/action/index.php", $langs->trans("Actions"));
if ($conf->propal->enabled && $user->rights->propale->lire) if ($conf->propal->enabled && $user->rights->propale->lire)
{ {
$langs->load("propal"); $langs->load("propal");
$menu->add(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop")); $menu->add(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("PropalsDraft")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("PropalsDraft"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("PropalsOpened")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("PropalsOpened"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics"));
}
if ($conf->contrat->enabled)
{
$langs->load("contracts");
$menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts"));
}
if ($conf->commande->enabled )
{
$langs->load("orders");
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
}
if ($conf->ficheinter->enabled)
{
$langs->load("interventions");
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
}
if ($conf->produit->enabled || $conf->service->enabled)
{
$langs->load("products");
$chaine="";
if ($conf->produit->enabled) { $chaine.=$langs->trans("Products"); }
if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; }
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$menu->add(DOL_URL_ROOT."/product/index.php", "$chaine");
}
if ($conf->projet->enabled )
{
$langs->load("projects");
$menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects"));
} }
left_menu($menu->liste); if ($conf->contrat->enabled)
{
$langs->load("contracts");
$menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts"));
}
if ($conf->commande->enabled )
{
$langs->load("orders");
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
}
if ($conf->ficheinter->enabled)
{
$langs->load("interventions");
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
}
if ($conf->produit->enabled || $conf->service->enabled)
{
$langs->load("products");
$chaine="";
if ($conf->produit->enabled) { $chaine.=$langs->trans("Products"); }
if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; }
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$menu->add(DOL_URL_ROOT."/product/index.php", "$chaine");
}
if ($conf->projet->enabled )
{
$langs->load("projects");
$menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects"));
}
left_menu($menu->liste);
} }

View File

@ -22,94 +22,94 @@
*/ */
/** /**
\file htdocs/comm/propal/stats/pre.inc.php \file htdocs/comm/propal/stats/pre.inc.php
\ingroup propale \ingroup propale
\brief Fichier de gestion du menu gauche du module propale stats \brief Fichier de gestion du menu gauche du module propale stats
\version $Revision$ \version $Revision$
*/ */
require("../../../main.inc.php"); require("../../../main.inc.php");
function llxHeader($head = "", $urlp = "") function llxHeader($head = "", $urlp = "")
{ {
global $user, $conf, $langs; global $user, $conf, $langs;
$langs->load("companies"); $langs->load("companies");
top_menu($head); top_menu($head);
$menu = new Menu(); $menu = new Menu();
// Clients // Clients
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers")); $menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
if ($user->rights->societe->creer) if ($user->rights->societe->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=c", $langs->trans("MenuNewCustomer")); $menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=c", $langs->trans("MenuNewCustomer"));
} }
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts")); $menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts"));
// Prospects // Prospects
$menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects")); $menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects"));
if ($user->rights->societe->creer) if ($user->rights->societe->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=p", $langs->trans("MenuNewProspect")); $menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=p", $langs->trans("MenuNewProspect"));
} }
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=p", $langs->trans("Contacts")); $menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=p", $langs->trans("Contacts"));
$menu->add(DOL_URL_ROOT."/comm/action/index.php", $langs->trans("Actions")); $menu->add(DOL_URL_ROOT."/comm/action/index.php", $langs->trans("Actions"));
if ($conf->propal->enabled && $user->rights->propale->lire) if ($conf->propal->enabled && $user->rights->propale->lire)
{ {
$langs->load("propal"); $langs->load("propal");
$menu->add(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop")); $menu->add(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("PropalsDraft")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("PropalsDraft"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("PropalsOpened")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("PropalsOpened"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort"));
$menu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics")); $menu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics"));
}
if ($conf->contrat->enabled)
{
$langs->load("contracts");
$menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts"));
}
if ($conf->commande->enabled )
{
$langs->load("orders");
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
}
if ($user->rights->mailing->lire)
{
$langs->load("mails");
$menu->add(DOL_URL_ROOT."/comm/mailing/", $langs->trans("EMailings"));
}
if ($conf->ficheinter->enabled)
{
$langs->load("interventions");
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
}
if ($conf->produit->enabled || $conf->service->enabled)
{
$langs->load("products");
$chaine="";
if ($conf->produit->enabled) { $chaine.=$langs->trans("Products"); }
if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; }
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$menu->add(DOL_URL_ROOT."/product/index.php", "$chaine");
}
if ($conf->projet->enabled )
{
$langs->load("projects");
$menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects"));
} }
left_menu($menu->liste); if ($conf->contrat->enabled)
{
$langs->load("contracts");
$menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts"));
}
if ($conf->commande->enabled )
{
$langs->load("orders");
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
}
if ($user->rights->mailing->lire)
{
$langs->load("mails");
$menu->add(DOL_URL_ROOT."/comm/mailing/", $langs->trans("EMailings"));
}
if ($conf->ficheinter->enabled)
{
$langs->load("interventions");
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
}
if ($conf->produit->enabled || $conf->service->enabled)
{
$langs->load("products");
$chaine="";
if ($conf->produit->enabled) { $chaine.=$langs->trans("Products"); }
if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; }
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$menu->add(DOL_URL_ROOT."/product/index.php", "$chaine");
}
if ($conf->projet->enabled )
{
$langs->load("projects");
$menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects"));
}
left_menu($menu->liste);
} }
?> ?>

View File

@ -62,7 +62,7 @@ function llxHeader($head = "", $title="", $help_url='')
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions")); $menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
} }
if (($conf->produit->enabled || $conf->service->enabled) && $user->rights->produit->lire) if (($conf->produit->enabled && $user->rights->produit->lire) || ($conf->service->enabled && $user->rights->service->lire))
{ {
$langs->load("products"); $langs->load("products");
$chaine=""; $chaine="";

View File

@ -304,7 +304,8 @@ if ($modulepart)
if ($modulepart == 'produit') if ($modulepart == 'produit')
{ {
$user->getrights('produit'); $user->getrights('produit');
if ($user->rights->produit->lire || eregi('^specimen',$original_file)) $user->getrights('service');
if (($user->rights->produit->lire || $user->rights->service->lire) || eregi('^specimen',$original_file))
{ {
$accessallowed=1; $accessallowed=1;
} }

View File

@ -199,7 +199,7 @@ $userstatic = new User($db);
// Ajout rubriques automatiques // Ajout rubriques automatiques
$rowspan=0; $rowspan=0;
$sectionauto=array(); $sectionauto=array();
if ($conf->produit->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'product', 'test'=>$conf->produit->enabled, 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } if ($conf->produit->enabled || $conf->service->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'product', 'test'=>$conf->produit->enabled, 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); }
if ($conf->societe->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); } if ($conf->societe->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); }
if ($conf->propal->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Prop"), 'desc'=>$langs->trans("ECMDocsByProposals")); } if ($conf->propal->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Prop"), 'desc'=>$langs->trans("ECMDocsByProposals")); }
if ($conf->contrat->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'contract','test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); } if ($conf->contrat->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'contract','test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); }

View File

@ -104,7 +104,7 @@ $userstatic = new User($db);
// Ajout rubriques automatiques // Ajout rubriques automatiques
$rowspan=0; $rowspan=0;
$sectionauto=array(); $sectionauto=array();
if ($conf->produit->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'product', 'test'=>$conf->produit->enabled, 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); } if ($conf->produit->enabled || $conf->service->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'product', 'test'=>$conf->produit->enabled, 'label'=>$langs->trans("ProductsAndServices"), 'desc'=>$langs->trans("ECMDocsByProducts")); }
if ($conf->societe->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); } if ($conf->societe->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'company', 'test'=>$conf->societe->enabled, 'label'=>$langs->trans("ThirdParties"), 'desc'=>$langs->trans("ECMDocsByThirdParties")); }
if ($conf->propal->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Prop"), 'desc'=>$langs->trans("ECMDocsByProposals")); } if ($conf->propal->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'propal', 'test'=>$conf->propal->enabled, 'label'=>$langs->trans("Prop"), 'desc'=>$langs->trans("ECMDocsByProposals")); }
if ($conf->contrat->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'contract','test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); } if ($conf->contrat->enabled) { $rowspan++; $sectionauto[]=array('level'=>1, 'module'=>'contract','test'=>$conf->contrat->enabled, 'label'=>$langs->trans("Contracts"), 'desc'=>$langs->trans("ECMDocsByContracts")); }

View File

@ -32,7 +32,7 @@ require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php");
require_once(DOL_DOCUMENT_ROOT."/html.formproduct.class.php"); require_once(DOL_DOCUMENT_ROOT."/html.formproduct.class.php");
require_once(DOL_DOCUMENT_ROOT."/lib/product.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/product.lib.php");
require_once(DOL_DOCUMENT_ROOT."/lib/sendings.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/sendings.lib.php");
if ($conf->produit->enabled) require_once(DOL_DOCUMENT_ROOT."/product.class.php"); if ($conf->produit->enabled || $conf->service->enabled) require_once(DOL_DOCUMENT_ROOT."/product.class.php");
if ($conf->propal->enabled) require_once(DOL_DOCUMENT_ROOT."/propal.class.php"); if ($conf->propal->enabled) require_once(DOL_DOCUMENT_ROOT."/propal.class.php");
if ($conf->commande->enabled) require_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php"); if ($conf->commande->enabled) require_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php");
if ($conf->stock->enabled) require_once(DOL_DOCUMENT_ROOT."/product/stock/entrepot.class.php"); if ($conf->stock->enabled) require_once(DOL_DOCUMENT_ROOT."/product/stock/entrepot.class.php");

View File

@ -797,7 +797,7 @@ if ($id > 0 || ! empty($ref))
print '<tr '.$bc[$var].'>'; print '<tr '.$bc[$var].'>';
print '<td>'; print '<td>';
print '<a name="'.$commandline->id.'"></a>'; // ancre pour retourner sur la ligne print '<a name="'.$commandline->id.'"></a>'; // ancre pour retourner sur la ligne
if ($conf->produit->enabled && $commandline->fk_product > 0) if (($conf->produit->enabled || $conf->service->enabled) && $commandline->fk_product > 0)
{ {
print '<a href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$commandline->product_id.'">'; print '<a href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$commandline->product_id.'">';
print img_object($langs->trans('ShowProduct'),'product'); print img_object($langs->trans('ShowProduct'),'product');
@ -894,7 +894,7 @@ if ($id > 0 || ! empty($ref))
print '</form>'; print '</form>';
// Ajout de produits/services predefinis // Ajout de produits/services predefinis
if ($conf->produit->enabled) if ($conf->produit->enabled || $conf->service->enabled)
{ {
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td colspan="3">'; print '<td colspan="3">';

View File

@ -846,7 +846,7 @@ else
// Show product and description // Show product and description
print '<td>'; print '<td>';
if ($conf->produit->enabled && $fac->lignes[$i]->fk_product) if (($conf->produit->enabled || $conf->service->enabled) && $fac->lignes[$i]->fk_product)
{ {
print '<input type="hidden" name="idprod" value="'.$fac->lignes[$i]->fk_product.'">'; print '<input type="hidden" name="idprod" value="'.$fac->lignes[$i]->fk_product.'">';
$product_static=new ProductFournisseur($db); $product_static=new ProductFournisseur($db);
@ -1029,7 +1029,7 @@ else
print '</form>'; print '</form>';
// Ajout de produits/services predefinis // Ajout de produits/services predefinis
if ($conf->produit->enabled) if ($conf->produit->enabled || $conf->service->enabled)
{ {
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td colspan="4">'; print '<td colspan="4">';

View File

@ -46,7 +46,7 @@ function llxHeader($head = '', $title='', $help_url='')
{ {
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers")); $menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
// Sécurité accés client // S<EFBFBD>curit<EFBFBD> acc<63>s client
if ($user->societe_id == 0 && $user->rights->societe->creer) if ($user->societe_id == 0 && $user->rights->societe->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=f",$langs->trans("NewSupplier")); $menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&amp;type=f",$langs->trans("NewSupplier"));
@ -80,18 +80,15 @@ function llxHeader($head = '', $title='', $help_url='')
{ {
$menu->add(DOL_URL_ROOT."/fourn/commande/",$langs->trans("Orders")); $menu->add(DOL_URL_ROOT."/fourn/commande/",$langs->trans("Orders"));
} }
if ($conf->produit->enabled || $conf->service->enabled) if (($conf->produit->enabled && $user->rights->produit->lire) || ($conf->service->enabled && $user->rights->service->lire))
{ {
if ($user->rights->produit->lire) $menu->add(DOL_URL_ROOT."/product/", $langs->trans("Products"));
{
$menu->add(DOL_URL_ROOT."/product/", $langs->trans("Products"));
}
} }
if ($conf->categorie->enabled) if ($conf->categorie->enabled)
{ {
$langs->load("categories"); $langs->load("categories");
// Catégories fournisseurs // Cat<EFBFBD>gories fournisseurs
$menu->add(DOL_URL_ROOT."/categories/index.php?leftmenu=cat&amp;type=1", $langs->trans("SuppliersCategoriesShort"), 0); $menu->add(DOL_URL_ROOT."/categories/index.php?leftmenu=cat&amp;type=1", $langs->trans("SuppliersCategoriesShort"), 0);
} }

View File

@ -26,10 +26,10 @@ $langs->load("categories");
$mesg = ''; $mesg = '';
if (!$user->rights->produit->lire) accessforbidden(); if (!$user->rights->produit->lire && !$user->rights->service->lire) accessforbidden();
/* /*
* Creation de l'objet produit correspondant à l'id * Creation de l'objet produit correspondant a l'id
*/ */
if ($_GET["id"]) if ($_GET["id"])
{ {
@ -44,14 +44,14 @@ llxHeader("","",$langs->trans("CardProduct0"));
*/ */
if ($_GET["id"]) if ($_GET["id"])
{ {
//on veut supprimer une catégorie //on veut supprimer une cat<EFBFBD>gorie
if ($_REQUEST["cat"]) if ($_REQUEST["cat"])
{ {
$cat = new Categorie($db,$_REQUEST["cat"]); $cat = new Categorie($db,$_REQUEST["cat"]);
$cat->del_product($product); $cat->del_product($product);
} }
//on veut ajouter une catégorie //on veut ajouter une cat<EFBFBD>gorie
if (isset($_REQUEST["add_cat"]) && $_REQUEST["add_cat"]>=0) if (isset($_REQUEST["add_cat"]) && $_REQUEST["add_cat"]>=0)
{ {
$cat = new Categorie($db,$_REQUEST["add_cat"]); $cat = new Categorie($db,$_REQUEST["add_cat"]);
@ -94,7 +94,7 @@ if ($_GET["id"])
$head[$h][1] = $langs->trans('Statistics'); $head[$h][1] = $langs->trans('Statistics');
$h++; $h++;
//affichage onglet catégorie //affichage onglet cat<EFBFBD>gorie
if ($conf->categorie->enabled){ if ($conf->categorie->enabled){
$head[$h][0] = DOL_URL_ROOT."/fourn/product/categorie.php?id=".$product->id; $head[$h][0] = DOL_URL_ROOT."/fourn/product/categorie.php?id=".$product->id;
$head[$h][1] = $langs->trans('Categories'); $head[$h][1] = $langs->trans('Categories');
@ -118,7 +118,7 @@ if ($_GET["id"])
if (sizeof($cats) > 0) if (sizeof($cats) > 0)
{ {
print "Vous avez stocké le produit dans les catégorie suivantes:<br/><br/>"; print "Vous avez stock<EFBFBD> le produit dans les cat<61>gorie suivantes:<br/><br/>";
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("AllWays").'</td></tr>'; print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("AllWays").'</td></tr>';

View File

@ -21,30 +21,30 @@
*/ */
/*! /*!
\file htdocs/fourn/product/fourn.php \file htdocs/fourn/product/fourn.php
\ingroup product \ingroup product
\brief Page de la fiche produit fournisseur \brief Page de la fiche produit fournisseur
\version $Revision$ \version $Revision$
*/ */
require("./pre.inc.php"); require("./pre.inc.php");
require_once DOL_DOCUMENT_ROOT."/fourn/fournisseur.product.class.php"; require_once DOL_DOCUMENT_ROOT."/fourn/fournisseur.product.class.php";
if (!$user->rights->produit->lire) accessforbidden(); if (!$user->rights->produit->lire && !$user->rights->service->lire) accessforbidden();
if ($_POST["action"] == 'update' && $_POST["cancel"] <> $langs->trans("Cancel")) if ($_POST["action"] == 'update' && $_POST["cancel"] <> $langs->trans("Cancel"))
{ {
$product = new ProductFournisseur($db); $product = new ProductFournisseur($db);
$result = $product->fetch($_GET["id"], $_GET["id_fourn"]); $result = $product->fetch($_GET["id"], $_GET["id_fourn"]);
if( $result == 0 ) if( $result == 0 )
{ {
$product->update($_POST["fourn_ref"], '1', $_POST["price"], $user); $product->update($_POST["fourn_ref"], '1', $_POST["price"], $user);
} }
Header('Location :fourn.php?id='.$product->id.'&id_fourn='.$_GET["id_fourn"]); Header('Location :fourn.php?id='.$product->id.'&id_fourn='.$_GET["id_fourn"]);
} }
@ -56,119 +56,119 @@ llxHeader("","",$langs->trans("CardProduct0"));
*/ */
if ($_GET["id"]) if ($_GET["id"])
{ {
if ($_GET["action"] <> 're-edit') if ($_GET["action"] <> 're-edit')
{
$product = new ProductFournisseur($db);
$result = $product->fetch($_GET["id"], $_GET["id_fourn"]);
$product->get_buyprice($_GET["id_fourn"],1);
}
if ( $result == 0)
{
/*
* En mode visu
*/
$h=0;
$head[$h][0] = DOL_URL_ROOT."/fourn/product/fiche.php?id=".$product->id;
$head[$h][1] = $langs->trans("ProductCard");
$h++;
$head[$h][0] = DOL_URL_ROOT."/fourn/product/fourn.php?id=".$product->id.'&amp;id_fourn='.$_GET["id_fourn"];
$head[$h][1] = $langs->trans("SupplierCard");
$hselected = $h;
$h++;
dol_fiche_head($head, $hselected, $langs->trans("CardProduct".$product->type).' : '.$product->ref);
print '<table class="border" width="100%">';
if ($conf->categorie->enabled)
{ {
$product = new ProductFournisseur($db);
$result = $product->fetch($_GET["id"], $_GET["id_fourn"]);
$product->get_buyprice($_GET["id_fourn"],1);
}
if ( $result == 0)
{
/*
* En mode visu
*/
$h=0;
$head[$h][0] = DOL_URL_ROOT."/fourn/product/fiche.php?id=".$product->id;
$head[$h][1] = $langs->trans("ProductCard");
$h++;
$head[$h][0] = DOL_URL_ROOT."/fourn/product/fourn.php?id=".$product->id.'&amp;id_fourn='.$_GET["id_fourn"];
$head[$h][1] = $langs->trans("SupplierCard");
$hselected = $h;
$h++;
dol_fiche_head($head, $hselected, $langs->trans("CardProduct".$product->type).' : '.$product->ref);
print '<table class="border" width="100%">';
if ($conf->categorie->enabled)
{
print '<tr id="ways">'; print '<tr id="ways">';
print '<td colspan="3">'; print '<td colspan="3">';
$cat = new Categorie ($db); $cat = new Categorie ($db);
$way = $cat->print_primary_way($product->id," &gt; ",'fourn/product/liste.php'); $way = $cat->print_primary_way($product->id," &gt; ",'fourn/product/liste.php');
if ($way == "") if ($way == "")
{ {
print "Ce produit n'appartient à aucune catégorie"; print "Ce produit n'appartient <20> aucune cat<61>gorie";
} }
else else
{ {
print $langs->trans("Category")." : "; print $langs->trans("Category")." : ";
print $way; print $way;
} }
print '</td></tr>'; print '</td></tr>';
} }
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="2">'.$product->libelle.'</td></tr>'; print '<tr><td>'.$langs->trans("Label").'</td><td colspan="2">'.$product->libelle.'</td></tr>';
print '<tr><td width="20%">'.$langs->trans("InternalRef").'</td><td width="40%">'.$product->ref.'</td>'; print '<tr><td width="20%">'.$langs->trans("InternalRef").'</td><td width="40%">'.$product->ref.'</td>';
print '<td class="photo" valign="top" rowspan="6">'; print '<td class="photo" valign="top" rowspan="6">';
$product->show_photos($conf->produit->dir_output,1,1,0); $product->show_photos($conf->produit->dir_output,1,1,0);
print '</td></tr>'; print '</td></tr>';
print "<tr>"; print "<tr>";
print '<td width="20%">'.$langs->trans("Supplier").'</td><td width="40%">'.$product->fourn->getNomUrl(1).'</td>'; print '<td width="20%">'.$langs->trans("Supplier").'</td><td width="40%">'.$product->fourn->getNomUrl(1).'</td>';
print '</tr><tr>'; print '</tr><tr>';
print '<td width="20%">'.$langs->trans("SupplierRef").'</td><td width="40%">'.$product->fourn_ref.'</td>'; print '<td width="20%">'.$langs->trans("SupplierRef").'</td><td width="40%">'.$product->fourn_ref.'</td>';
print '</tr><tr>'; print '</tr><tr>';
print '<td width="20%">'.$langs->trans("BuiingPrice").'</td><td width="40%">'.price($product->buyprice).'</td>'; print '<td width="20%">'.$langs->trans("BuiingPrice").'</td><td width="40%">'.price($product->buyprice).'</td>';
print '</tr>'; print '</tr>';
print '<tr><td colspan="2">'.$langs->trans("Description").'</td></tr>'; print '<tr><td colspan="2">'.$langs->trans("Description").'</td></tr>';
print '<tr><td valign="top" colspan="2">'.nl2br($product->description).'&nbsp;</td></tr>'; print '<tr><td valign="top" colspan="2">'.nl2br($product->description).'&nbsp;</td></tr>';
print "</table><br>\n"; print "</table><br>\n";
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr class="liste_titre"><td>'; print '<tr class="liste_titre"><td>';
print $langs->trans("Date").'</td>'; print $langs->trans("Date").'</td>';
print '<td align="right">'.$langs->trans("Price").'</td>'; print '<td align="right">'.$langs->trans("Price").'</td>';
print '<td align="center">'.$langs->trans("Quantity").'</td>'; print '<td align="center">'.$langs->trans("Quantity").'</td>';
print '</tr>'; print '</tr>';
/* /*
* Prix * Prix
*/ */
$sql = "SELECT p.price, p.quantity,".$db->pdate("tms") ." as date_releve"; $sql = "SELECT p.price, p.quantity,".$db->pdate("tms") ." as date_releve";
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as p"; $sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as p";
$sql .=" WHERE p.fk_soc = ".$product->fourn->id; $sql .=" WHERE p.fk_soc = ".$product->fourn->id;
$sql .= " AND p.fk_product = ".$product->id; $sql .= " AND p.fk_product = ".$product->id;
$sql .= " ORDER BY p.quantity ASC"; $sql .= " ORDER BY p.quantity ASC";
$resql= $db->query($sql) ; $resql= $db->query($sql) ;
if ($resql) if ($resql)
{ {
$num_fournisseur = $db->num_rows($resql); $num_fournisseur = $db->num_rows($resql);
$i = 0; $i = 0;
$var=True; $var=True;
while ($i < $num_fournisseur) while ($i < $num_fournisseur)
{ {
$objp = $db->fetch_object($resql); $objp = $db->fetch_object($resql);
$var=!$var; $var=!$var;
print "<tr $bc[$var]>"; print "<tr $bc[$var]>";
print '<td>'.dol_print_date($objp->date_releve).'</td>'; print '<td>'.dol_print_date($objp->date_releve).'</td>';
print '<td align="right">'.price($objp->price).'</td>'; print '<td align="right">'.price($objp->price).'</td>';
print '<td align="center">'.$objp->quantity.'</td></tr>'; print '<td align="center">'.$objp->quantity.'</td></tr>';
$i++; $i++;
} }
$db->free($resql); $db->free($resql);
} }
print '</table>'; print '</table>';
/* /*
* *
* Fiche en mode edition * Fiche en mode edition
* *
*/ */
if (($_GET["action"] == 'edit' || $_GET["action"] == 're-edit') && $user->rights->produit->creer) if (($_GET["action"] == 'edit' || $_GET["action"] == 're-edit') && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$action = 'fourn.php?id='.$product->id.'&amp;id_fourn='.$product->fourn->id; $action = 'fourn.php?id='.$product->id.'&amp;id_fourn='.$product->fourn->id;
@ -191,33 +191,32 @@ if ($_GET["id"])
print '<input type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>'; print '<input type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>'; print '</table>';
print '</form>'; print '</form>';
}
print "</div>\n";
/* ************************************************************************** */
/* */
/* Barre d'action */
/* */
/* ************************************************************************** */
print "\n<div class=\"tabsAction\">\n";
if ($_GET["action"] == '')
{
if ($user->rights->produit->creer || $user->rights->service->creer)
{
print '<a class="butAction" href="fourn.php?action=edit&amp;id='.$product->id.'&amp;id_fourn='.$product->fourn->id.'">'.$langs->trans("Modify").'</a>';
}
}
print "\n</div>\n";
} }
print "</div>\n";
/* ************************************************************************** */
/* */
/* Barre d'action */
/* */
/* ************************************************************************** */
print "\n<div class=\"tabsAction\">\n";
if ($_GET["action"] == '')
{
if ( $user->rights->produit->creer)
{
print '<a class="butAction" href="fourn.php?action=edit&amp;id='.$product->id.'&amp;id_fourn='.$product->fourn->id.'">'.$langs->trans("Modify").'</a>';
}
}
print "\n</div>\n";
}
} }
else else
{ {
print $langs->trans("ErrorUnknown"); print $langs->trans("ErrorUnknown");
} }
$db->close(); $db->close();

View File

@ -30,11 +30,11 @@
require("./pre.inc.php"); require("./pre.inc.php");
if (!$user->rights->produit->lire) accessforbidden(); if (!$user->rights->produit->lire && !$user->rights->service->lire) accessforbidden();
/* /*
* Affichage page accueil * View
*
*/ */
llxHeader("","",$langs->trans("ProductsAndServices")); llxHeader("","",$langs->trans("ProductsAndServices"));

View File

@ -32,7 +32,7 @@ require_once(DOL_DOCUMENT_ROOT."/societe.class.php");
$langs->load("products"); $langs->load("products");
$langs->load("suppliers"); $langs->load("suppliers");
if (!$user->rights->produit->lire) accessforbidden(); if (!$user->rights->produit->lire && !$user->rights->service->lire) accessforbidden();
$sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"]; $sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"];
$sRefSupplier=isset($_GET["srefsupplier"])?$_GET["srefsupplier"]:$_POST["srefsupplier"]; $sRefSupplier=isset($_GET["srefsupplier"])?$_GET["srefsupplier"]:$_POST["srefsupplier"];

View File

@ -28,11 +28,11 @@ require("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT."/product.class.php"); require_once(DOL_DOCUMENT_ROOT."/product.class.php");
if (!$user->rights->produit->lire) accessforbidden(); if (!$user->rights->produit->lire && !$user->rights->service->lire) accessforbidden();
/* /*
* * View
*/ */
if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
@ -83,7 +83,7 @@ if ($_GET["id"])
$hselected = $h; $hselected = $h;
$h++; $h++;
//Affichage onglet Catégories //Affichage onglet Cat<EFBFBD>gories
if ($conf->categorie->enabled){ if ($conf->categorie->enabled){
$head[$h][0] = DOL_URL_ROOT."/fourn/product/categorie.php?id=".$product->id; $head[$h][0] = DOL_URL_ROOT."/fourn/product/categorie.php?id=".$product->id;
$head[$h][1] = $langs->trans('Categories'); $head[$h][1] = $langs->trans('Categories');
@ -111,7 +111,7 @@ if ($_GET["id"])
* Ajouter une photo * Ajouter une photo
* *
*/ */
if ($_GET["action"] == 'ajout_photo' && $user->rights->produit->creer && ! empty($conf->global->MAIN_UPLOAD_DOC)) if ($_GET["action"] == 'ajout_photo' && ($user->rights->produit->creer || $user->rights->service->creer) && ! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
print_titre($langs->trans("AddPhoto")); print_titre($langs->trans("AddPhoto"));
@ -162,7 +162,7 @@ if ($_GET["id"])
print '</a>'; print '</a>';
print '<br>'.$langs->trans("File").': '.dol_trunc($filename,16); print '<br>'.$langs->trans("File").': '.dol_trunc($filename,16);
if ($user->rights->produit->creer) if ($user->rights->produit->creer || $user->rights->service->creer)
{ {
print '<br>'.'<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&amp;action=delete&amp;file='.urlencode($pdir.$filename).'">'.img_delete().'</a>'; print '<br>'.'<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&amp;action=delete&amp;file='.urlencode($pdir.$filename).'">'.img_delete().'</a>';
} }
@ -196,17 +196,15 @@ if ($_GET["id"])
if ($_GET["action"] == '') if ($_GET["action"] == '')
{ {
if ( $user->rights->produit->creer && ! empty($conf->global->MAIN_UPLOAD_DOC)) if (($user->rights->produit->creer || $user->rights->service->creer) && ! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
print '<a class="butAction" href="photos.php?action=ajout_photo&amp;id='.$product->id.'">'; print '<a class="butAction" href="photos.php?action=ajout_photo&amp;id='.$product->id.'">';
print $langs->trans("AddPhoto").'</a>'; print $langs->trans("AddPhoto").'</a>';
} }
} }
print "\n</div>\n"; print "\n</div>\n";
} }
else else
{ {
@ -215,11 +213,7 @@ else
$db->close(); $db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>"); llxFooter('$Date$ - $Revision$');
?> ?>

View File

@ -55,7 +55,7 @@ function llxHeader($head = "", $title="", $help_url='',$addons='')
$menu->add(DOL_URL_ROOT."/fourn/product/", $langs->trans("Products")); $menu->add(DOL_URL_ROOT."/fourn/product/", $langs->trans("Products"));
$menu->add_submenu(DOL_URL_ROOT."/fourn/product/liste.php?type=0", $langs->trans("List")); $menu->add_submenu(DOL_URL_ROOT."/fourn/product/liste.php?type=0", $langs->trans("List"));
if ($user->societe_id == 0 && $user->rights->produit->creer) if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$menu->add_submenu(DOL_URL_ROOT."/fourn/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct")); $menu->add_submenu(DOL_URL_ROOT."/fourn/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct"));
} }

View File

@ -121,7 +121,7 @@ class Import
// Permission // Permission
$this->array_import_perms[$i]=$user->admin; $this->array_import_perms[$i]=$user->admin;
// Icon // Icon
$this->array_import_icon[$i]=(isset($module->export_icon[$r])?$module->export_icon[$r]:$module->picto); $this->array_import_icon[$i]=(isset($module->import_icon[$r])?$module->import_icon[$r]:$module->picto);
// Code du dataset export // Code du dataset export
$this->array_import_code[$i]=$module->import_code[$r]; $this->array_import_code[$i]=$module->import_code[$r];
// Libelle du dataset export // Libelle du dataset export
@ -138,9 +138,9 @@ class Import
// Requete sql du dataset // Requete sql du dataset
$this->array_import_sql_start[$i]=$module->import_sql_start[$r]; $this->array_import_sql_start[$i]=$module->import_sql_start[$r];
$this->array_import_sql_end[$i]=$module->import_sql_end[$r]; $this->array_import_sql_end[$i]=$module->import_sql_end[$r];
//$this->array_import_sql[$i]=$module->export_sql[$r]; //$this->array_import_sql[$i]=$module->import_sql[$r];
dol_syslog("Import loaded for module ".$modulename." with index ".$i.", dataset=".$module->export_code[$r].", nb of fields=".sizeof($module->export_fields_code[$r])); dol_syslog("Import loaded for module ".$modulename." with index ".$i.", dataset=".$module->import_code[$r].", nb of fields=".sizeof($module->import_fields_code[$r]));
$i++; $i++;
// } // }
} }

View File

@ -21,14 +21,14 @@
/** /**
\file htdocs/html.form.class.php \file htdocs/html.form.class.php
\brief Fichier de la classe des fonctions prédéfinie de composants html \brief Fichier de la classe des fonctions pr<EFBFBD>d<EFBFBD>finie de composants html
\version $Revision$ \version $Revision$
*/ */
/** /**
\class Form \class Form
\brief Classe permettant la génération de composants html \brief Classe permettant la g<EFBFBD>n<EFBFBD>ration de composants html
*/ */
class FormBarCode class FormBarCode
@ -39,7 +39,7 @@ class FormBarCode
/** /**
\brief Constructeur \brief Constructeur
\param DB handler d'accès base de donnée \param DB handler d'acc<EFBFBD>s base de donn<EFBFBD>e
*/ */
function FormBarCode($DB) function FormBarCode($DB)
{ {
@ -50,8 +50,8 @@ class FormBarCode
/** /**
* \brief Liste de sélection du générateur de codes barres * \brief Liste de s<EFBFBD>lection du g<EFBFBD>n<EFBFBD>rateur de codes barres
* \param selected Id code pré-sélectionné * \param selected Id code pr<EFBFBD>-s<EFBFBD>lectionn<EFBFBD>
* \param code_id Id du code barre * \param code_id Id du code barre
* \param idForm Id du formulaire * \param idForm Id du formulaire
*/ */
@ -61,8 +61,8 @@ class FormBarCode
$disable = ''; $disable = '';
// On vérifie si le code de barre est déjà sélectionné par défaut dans le module produit // We check if barcode is already selected by default
if (($conf->produit->enabled && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) || if ((($conf->produit->enabled || $conf->service->enabled) && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) ||
($conf->societe->enabled && $conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY == $code_id)) ($conf->societe->enabled && $conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY == $code_id))
{ {
$disable = 'disabled="disabled"'; $disable = 'disabled="disabled"';
@ -86,7 +86,7 @@ class FormBarCode
/** /**
* \brief Retourne la liste des types de codes barres * \brief Retourne la liste des types de codes barres
* \param selected Id code pré-sélectionné * \param selected Id code pr<EFBFBD>-s<EFBFBD>lectionn<EFBFBD>
* \param htmlname Nom de la zone select * \param htmlname Nom de la zone select
* \param useempty Affiche valeur vide dans liste * \param useempty Affiche valeur vide dans liste
*/ */
@ -142,7 +142,7 @@ class FormBarCode
/** /**
* \brief Affiche formulaire de selection du type de code barre * \brief Affiche formulaire de selection du type de code barre
* \param page Page * \param page Page
* \param selected Id condition pré-sélectionnée * \param selected Id condition pr<EFBFBD>-s<EFBFBD>lectionn<EFBFBD>e
* \param htmlname Nom du formulaire select * \param htmlname Nom du formulaire select
*/ */
function form_barcode_type($page, $selected='', $htmlname='barcodetype_id') function form_barcode_type($page, $selected='', $htmlname='barcodetype_id')

View File

@ -69,7 +69,7 @@ class box_produits extends ModeleBoxes {
$this->info_box_head = array('text' => $langs->trans("BoxTitleLastProducts",$max)); $this->info_box_head = array('text' => $langs->trans("BoxTitleLastProducts",$max));
if ($user->rights->produit->lire) if ($user->rights->produit->lire || $user->rights->service->lire)
{ {
$clause = " WHERE"; $clause = " WHERE";
@ -83,6 +83,8 @@ class box_produits extends ModeleBoxes {
$clause = " AND"; $clause = " AND";
} }
$sql.= $clause." p.entity = ".$conf->entity; $sql.= $clause." p.entity = ".$conf->entity;
if (empty($user->rights->produit->lire)) $sql.=' AND p.fk_product_type != 0';
if (empty($user->rights->service->lire)) $sql.=' AND p.fk_product_type != 1';
$sql.= " ORDER BY p.datec DESC"; $sql.= " ORDER BY p.datec DESC";
$sql.= $db->plimit($max, 0); $sql.= $db->plimit($max, 0);

View File

@ -67,7 +67,7 @@ class box_services_vendus extends ModeleBoxes {
$this->info_box_head = array('text' => $langs->trans("BoxLastProductsInContract",$max)); $this->info_box_head = array('text' => $langs->trans("BoxLastProductsInContract",$max));
if ($user->rights->produit->lire && $user->rights->contrat->lire) if ($user->rights->service->lire && $user->rights->contrat->lire)
{ {
$sql = "SELECT s.nom, s.rowid as socid,"; $sql = "SELECT s.nom, s.rowid as socid,";
$sql.= " c.rowid,"; $sql.= " c.rowid,";

View File

@ -606,26 +606,26 @@ class MenuLeft {
} }
if ($conf->propal->enabled) if ($conf->propal->enabled)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=0", $langs->trans("Popularity"), 1, $user->rights->propale->lire); $newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=0", $langs->trans("Popularity"), 1, $user->rights->produit->lire && $user->rights->propale->lire);
} }
if ($conf->stock->enabled) if ($conf->stock->enabled)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/reassort.php?type=0", $langs->trans("Stocks"), 1, $user->rights->stock->lire); $newmenu->add_submenu(DOL_URL_ROOT."/product/reassort.php?type=0", $langs->trans("Stocks"), 1, $user->rights->produit->lire && $user->rights->stock->lire);
} }
} }
// Services // Services
if ($conf->service->enabled) if ($conf->service->enabled)
{ {
$newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&amp;type=1", $langs->trans("Services"), 0, $user->rights->produit->lire); $newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&amp;type=1", $langs->trans("Services"), 0, $user->rights->service->lire);
if ($user->societe_id == 0) if ($user->societe_id == 0)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&amp;action=create&amp;type=1", $langs->trans("NewService"), 1, $user->rights->produit->creer); $newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&amp;action=create&amp;type=1", $langs->trans("NewService"), 1, $user->rights->service->creer);
} }
$newmenu->add_submenu(DOL_URL_ROOT."/product/liste.php?leftmenu=service&amp;type=1", $langs->trans("List"), 1, $user->rights->produit->lire); $newmenu->add_submenu(DOL_URL_ROOT."/product/liste.php?leftmenu=service&amp;type=1", $langs->trans("List"), 1, $user->rights->service->lire);
if ($conf->propal->enabled) if ($conf->propal->enabled)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=1", $langs->trans("Popularity"), 1, $user->rights->propale->lire); $newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=1", $langs->trans("Popularity"), 1, $user->rights->service->lire && $user->rights->propale->lire);
} }
} }

View File

@ -588,27 +588,27 @@ class MenuLeft {
} }
if ($conf->propal->enabled) if ($conf->propal->enabled)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=0", $langs->trans("Popularity"), 1, $user->rights->propale->lire); $newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=0", $langs->trans("Popularity"), 1, $user->rights->produit->lire && $user->rights->propale->lire);
} }
if ($conf->stock->enabled) if ($conf->stock->enabled)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/reassort.php?type=0", $langs->trans("Stocks"), 1, $user->rights->stock->lire); $newmenu->add_submenu(DOL_URL_ROOT."/product/reassort.php?type=0", $langs->trans("Stocks"), 1, $user->rights->produit->lire && $user->rights->stock->lire);
} }
} }
// Services // Services
if ($conf->service->enabled) if ($conf->service->enabled)
{ {
$newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&amp;type=1", $langs->trans("Services"), 0, $user->rights->produit->lire); $newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&amp;type=1", $langs->trans("Services"), 0, $user->rights->service->lire);
if ($user->societe_id == 0) if ($user->societe_id == 0)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&amp;action=create&amp;type=1", $langs->trans("NewService"), 1, $user->rights->produit->creer); $newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&amp;action=create&amp;type=1", $langs->trans("NewService"), 1, $user->rights->service->creer);
} }
$newmenu->add_submenu(DOL_URL_ROOT."/product/liste.php?leftmenu=service&amp;type=1", $langs->trans("List"), 1, $user->rights->service->lire);
if ($conf->propal->enabled) if ($conf->propal->enabled)
{ {
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=1", $langs->trans("Popularity"), 1, $user->rights->propale->lire); $newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&amp;type=1", $langs->trans("Popularity"), 1, $user->rights->service->lire && $user->rights->propale->lire);
} }
$newmenu->add_submenu(DOL_URL_ROOT."/product/liste.php?leftmenu=service&amp;type=1", $langs->trans("List"), 1, $user->rights->produit->lire);
} }
// Categories // Categories

View File

@ -137,7 +137,7 @@ class MenuTop {
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); } if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$idsel='id="mainmenu_products" '; $idsel='id="mainmenu_products" ';
if ($user->rights->produit->lire) if ($user->rights->produit->lire || $user->rights->service->lire)
{ {
print '<td class="tmenu">'; print '<td class="tmenu">';
print '<a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&amp;leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a>'; print '<a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&amp;leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a>';

View File

@ -137,7 +137,7 @@ class MenuTop {
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); } if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$idsel='id="mainmenu_products" '; $idsel='id="mainmenu_products" ';
if ($user->rights->produit->lire) if ($user->rights->produit->lire || $user->service->lire)
{ {
print '<td class="tmenu">'; print '<td class="tmenu">';
print '<a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&amp;leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a>'; print '<a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&amp;leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a>';

View File

@ -129,7 +129,7 @@ class MenuTop {
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); } if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
$idsel='id="products" '; $idsel='id="products" ';
if ($user->rights->produit->lire) if ($user->rights->produit->lire || $user->rights->service->lire)
{ {
print '<td class="tmenu"><a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&amp;leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a></td>'; print '<td class="tmenu"><a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&amp;leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a></td>';
} }

View File

@ -15,7 +15,7 @@ delete from llx_menu where menu_handler='auguria';
-- --
insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('1', 1__+MAX_llx_menu__, 'auguria', 'top', 'home', '', 0, '/index.php?mainmenu=home&amp;leftmenu=', 'Home', -1, '', '', '', 2, 1, __ENTITY__); insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('1', 1__+MAX_llx_menu__, 'auguria', 'top', 'home', '', 0, '/index.php?mainmenu=home&amp;leftmenu=', 'Home', -1, '', '', '', 2, 1, __ENTITY__);
insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->societe->enabled || $conf->fournisseur->enabled', 2__+MAX_llx_menu__, 'auguria', 'top', 'companies', '', 0, '/index.php?mainmenu=companies&amp;leftmenu=', 'ThirdParties', -1, 'companies', '', '', 2, 2, __ENTITY__); insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->societe->enabled || $conf->fournisseur->enabled', 2__+MAX_llx_menu__, 'auguria', 'top', 'companies', '', 0, '/index.php?mainmenu=companies&amp;leftmenu=', 'ThirdParties', -1, 'companies', '', '', 2, 2, __ENTITY__);
insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled || $conf->service->enabled', 3__+MAX_llx_menu__, 'auguria', 'top', 'products', '', 0, '/product/index.php?mainmenu=products&amp;leftmenu=', 'Products/Services', -1, 'products', '$user->rights->produit->lire', '', 0, 3, __ENTITY__); insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled || $conf->service->enabled', 3__+MAX_llx_menu__, 'auguria', 'top', 'products', '', 0, '/product/index.php?mainmenu=products&amp;leftmenu=', 'Products/Services', -1, 'products', '$user->rights->produit->lire||$user->rights->service->lire', '', 0, 3, __ENTITY__);
insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->fournisseur->enabled', 4__+MAX_llx_menu__, 'auguria', 'top', 'suppliers', '', 0, '/fourn/index.php?mainmenu=suppliers&amp;leftmenu=', 'Suppliers', -1, 'suppliers', '$user->rights->fournisseur->lire', '', 0, 4, __ENTITY__); insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->fournisseur->enabled', 4__+MAX_llx_menu__, 'auguria', 'top', 'suppliers', '', 0, '/fourn/index.php?mainmenu=suppliers&amp;leftmenu=', 'Suppliers', -1, 'suppliers', '$user->rights->fournisseur->lire', '', 0, 4, __ENTITY__);
insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->societe->enabled', 5__+MAX_llx_menu__, 'auguria', 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&amp;leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 5, __ENTITY__); insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->societe->enabled', 5__+MAX_llx_menu__, 'auguria', 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&amp;leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 5, __ENTITY__);
insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->compta->enabled || $conf->comptaexpert->enabled || $conf->banque->enabled || $conf->facture->enabled', 6__+MAX_llx_menu__, 'auguria', 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&amp;leftmenu=', 'MenuFinancial', -1, 'compta', '$user->rights->compta->resultat->lire || $user->rights->comptaexpert->plancompte->lire || $user->rights->commande->lire || $user->rights->facture->lire || $user->rights->banque->lire', '', 2, 6, __ENTITY__); insert into `llx_menu` (`enabled`, `rowid`, `menu_handler`, `type`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->compta->enabled || $conf->comptaexpert->enabled || $conf->banque->enabled || $conf->facture->enabled', 6__+MAX_llx_menu__, 'auguria', 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&amp;leftmenu=', 'MenuFinancial', -1, 'compta', '$user->rights->compta->resultat->lire || $user->rights->comptaexpert->plancompte->lire || $user->rights->commande->lire || $user->rights->facture->lire || $user->rights->banque->lire', '', 2, 6, __ENTITY__);
@ -82,14 +82,14 @@ insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`,
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2800__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/index.php?leftmenu=product&type=0', 'Products', 0, 'products', '$user->rights->produit->lire', '', 2, 0, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2800__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/index.php?leftmenu=product&type=0', 'Products', 0, 'products', '$user->rights->produit->lire', '', 2, 0, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2801__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/fiche.php?leftmenu=product&action=create&type=0', 'NewProduct', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2801__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/fiche.php?leftmenu=product&action=create&type=0', 'NewProduct', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2802__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/liste.php?leftmenu=product&type=0', 'ProductList', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2802__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/liste.php?leftmenu=product&type=0', 'ProductList', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2803__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassort.php?type=0', 'Stocks', 1, 'products', '$user->rights->stock->lire', '', 2, 4, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2803__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassort.php?type=0', 'Stocks', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 4, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2804__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/fiche.php?leftmenu=product&action=create&type=0&canvas=livre', 'NewBook', 1, 'products', '$user->rights->produit->creer', '', 2, 2, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2804__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/fiche.php?leftmenu=product&action=create&type=0&canvas=livre', 'NewBook', 1, 'products', '$user->rights->produit->creer', '', 2, 2, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/liste.php?leftmenu=product&type=0&canvas=livre', 'BookList', 1, 'products', '$user->rights->produit->lire', '', 2, 3, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled', 'auguria', 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/liste.php?leftmenu=product&type=0&canvas=livre', 'BookList', 1, 'products', '$user->rights->produit->lire', '', 2, 3, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->service->enabled', 'auguria', 'left', 2900__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/index.php?leftmenu=service&type=1', 'Services', 0, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->service->enabled', 'auguria', 'left', 2900__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/index.php?leftmenu=service&type=1', 'Services', 0, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->service->enabled', 'auguria', 'left', 2901__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/fiche.php?leftmenu=service&action=create&type=1', 'NewService', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->service->enabled', 'auguria', 'left', 2901__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/fiche.php?leftmenu=service&action=create&type=1', 'NewService', 1, 'products', '$user->rights->service->creer', '', 2, 0, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->service->enabled', 'auguria', 'left', 2902__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/liste.php?leftmenu=service&type=1', 'List', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->service->enabled', 'auguria', 'left', 2902__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/liste.php?leftmenu=service&type=1', 'List', 1, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled || $conf->service->enabled', 'auguria', 'left', 3000__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/stats/index.php?leftmenu=stats', 'Statistics', 0, 'main', '$user->rights->produit>lire', '', 2, 2, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->produit->enabled || $conf->service->enabled', 'auguria', 'left', 3000__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/stats/index.php?leftmenu=stats', 'Statistics', 0, 'main', '$user->rights->service->lire', '', 2, 2, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->propal->enabled', 'auguria', 'left', 3001__+MAX_llx_menu__, 'products', '', 3000__+MAX_llx_menu__, '/product/popuprop.php?leftmenu=stats', 'Popularity', 1, 'main', '$user->rights->produit>lire', '', 2, 0, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->propal->enabled', 'auguria', 'left', 3001__+MAX_llx_menu__, 'products', '', 3000__+MAX_llx_menu__, '/product/popuprop.php?leftmenu=stats', 'Popularity', 1, 'main', '$user->rights->produit->lire && $user->rights->produit>lire', '', 2, 0, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->stock->enabled', 'auguria', 'left', 3100__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/stock/index.php?leftmenu=stock', 'Stock', 0, 'stocks', '$user->rights->stock->lire', '', 2, 3, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->stock->enabled', 'auguria', 'left', 3100__+MAX_llx_menu__, 'products', '', 3__+MAX_llx_menu__, '/product/stock/index.php?leftmenu=stock', 'Stock', 0, 'stocks', '$user->rights->stock->lire', '', 2, 3, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->stock->enabled', 'auguria', 'left', 3101__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/fiche.php?action=create', 'MenuNewWarehouse', 1, 'stocks', '$user->rights->stock->creer', '', 2, 0, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->stock->enabled', 'auguria', 'left', 3101__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/fiche.php?action=create', 'MenuNewWarehouse', 1, 'stocks', '$user->rights->stock->creer', '', 2, 0, __ENTITY__);
insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->stock->enabled', 'auguria', 'left', 3102__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/liste.php', 'List', 1, 'stocks', '$user->rights->stock->lire', '', 2, 1, __ENTITY__); insert into `llx_menu` (`enabled`, `menu_handler`, `type`, `rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, perms, `target`, `user`, position, entity) values ('$conf->stock->enabled', 'auguria', 'left', 3102__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/liste.php', 'List', 1, 'stocks', '$user->rights->stock->lire', '', 2, 1, __ENTITY__);

View File

@ -70,7 +70,7 @@ class modProduit extends DolibarrModules
// Dependencies // Dependencies
$this->depends = array(); $this->depends = array();
$this->requiredby = array("modStock","modService","modBarcode"); $this->requiredby = array("modStock","modBarcode");
// Config pages // Config pages
$this->config_page_url = array("produit.php"); $this->config_page_url = array("produit.php");
@ -98,34 +98,27 @@ class modProduit extends DolibarrModules
$r++; $r++;
$this->rights[$r][0] = 31; // id de la permission $this->rights[$r][0] = 31; // id de la permission
$this->rights[$r][1] = 'Lire les produits/services'; // libelle de la permission $this->rights[$r][1] = 'Lire les produits'; // libelle de la permission
$this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour)
$this->rights[$r][3] = 1; // La permission est-elle une permission par defaut $this->rights[$r][3] = 1; // La permission est-elle une permission par defaut
$this->rights[$r][4] = 'lire'; $this->rights[$r][4] = 'lire';
$r++; $r++;
$this->rights[$r][0] = 32; // id de la permission $this->rights[$r][0] = 32; // id de la permission
$this->rights[$r][1] = 'Creer modifier les produits/services'; // libelle de la permission $this->rights[$r][1] = 'Creer/modifier les produits'; // libelle de la permission
$this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour) $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour)
$this->rights[$r][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut
$this->rights[$r][4] = 'creer'; $this->rights[$r][4] = 'creer';
$r++;
$this->rights[$r][0] = 33; // id de la permission
$this->rights[$r][1] = 'Commander les produits/services'; // libelle de la permission
$this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour)
$this->rights[$r][3] = 0; // La permission est-elle une permission par defaut
$this->rights[$r][4] = 'commander';
$r++; $r++;
$this->rights[$r][0] = 34; // id de la permission $this->rights[$r][0] = 34; // id de la permission
$this->rights[$r][1] = 'Supprimer les produits/services'; // libelle de la permission $this->rights[$r][1] = 'Supprimer les produits'; // libelle de la permission
$this->rights[$r][2] = 'd'; // type de la permission (deprecie a ce jour) $this->rights[$r][2] = 'd'; // type de la permission (deprecie a ce jour)
$this->rights[$r][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut
$this->rights[$r][4] = 'supprimer'; $this->rights[$r][4] = 'supprimer';
$r++; $r++;
$this->rights[$r][0] = 38; $this->rights[$r][0] = 38; // Must be same permission than in service module
$this->rights[$r][1] = 'Exporter les produits'; $this->rights[$r][1] = 'Exporter les produits';
$this->rights[$r][2] = 'r'; $this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0; $this->rights[$r][3] = 0;

View File

@ -23,23 +23,22 @@
*/ */
/** /**
\defgroup service Module service * \defgroup service Module service
\brief Module pour gerer le suivi de services predefinis * \brief Module pour gerer le suivi de services predefinis
*/ */
/** /**
\file htdocs/includes/modules/modService.class.php * \file htdocs/includes/modules/modService.class.php
\ingroup service * \ingroup service
\brief Fichier de description et activation du module Service * \brief Fichier de description et activation du module Service
*/ */
include_once(DOL_DOCUMENT_ROOT ."/includes/modules/DolibarrModules.class.php"); include_once(DOL_DOCUMENT_ROOT ."/includes/modules/DolibarrModules.class.php");
/** \class modService /** \class modService
\brief Classe de description et activation du module Service * \brief Classe de description et activation du module Service
*/ */
class modService extends DolibarrModules class modService extends DolibarrModules
{ {
@ -68,7 +67,7 @@ class modService extends DolibarrModules
$this->dirs = array("/produit/temp"); $this->dirs = array("/produit/temp");
// Dependancies // Dependancies
$this->depends = array("modProduit"); $this->depends = array();
$this->requiredby = array("modContrat"); $this->requiredby = array("modContrat");
// Constants // Constants
@ -81,33 +80,35 @@ class modService extends DolibarrModules
// Permissions // Permissions
$this->rights = array(); $this->rights = array();
$this->rights_class = 'service'; $this->rights_class = 'service';
$r=0;
/* Pour l'instant droits sur services non geres $r++;
$this->rights[1][0] = 331; // id de la permission $this->rights[$r][0] = 531; // id de la permission
$this->rights[1][1] = 'Lire les services'; // libelle de la permission $this->rights[$r][1] = 'Lire les services'; // libelle de la permission
$this->rights[1][2] = 'r'; // type de la permission (deprecie a ce jour) $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour)
$this->rights[1][3] = 1; // La permission est-elle une permission par defaut $this->rights[$r][3] = 1; // La permission est-elle une permission par defaut
$this->rights[1][4] = 'lire'; $this->rights[$r][4] = 'lire';
$this->rights[2][0] = 332; // id de la permission $r++;
$this->rights[2][1] = 'Creer/modifier les services'; // libelle de la permission $this->rights[$r][0] = 532; // id de la permission
$this->rights[2][2] = 'w'; // type de la permission (deprecie a ce jour) $this->rights[$r][1] = 'Creer/modifier les services'; // libelle de la permission
$this->rights[2][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour)
$this->rights[2][4] = 'creer'; $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut
$this->rights[$r][4] = 'creer';
$this->rights[3][0] = 333; // id de la permission $r++;
$this->rights[3][1] = 'Commander un service'; // libelle de la permission $this->rights[$r][0] = 534; // id de la permission
$this->rights[3][2] = 'w'; // type de la permission (deprecie a ce jour) $this->rights[$r][1] = 'Supprimer les services'; // libelle de la permission
$this->rights[3][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][2] = 'd'; // type de la permission (deprecie a ce jour)
$this->rights[3][4] = 'commander'; $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut
$this->rights[$r][4] = 'supprimer';
$this->rights[4][0] = 334; // id de la permission
$this->rights[4][1] = 'Supprimer les services'; // libelle de la permission
$this->rights[4][2] = 'd'; // type de la permission (deprecie a ce jour)
$this->rights[4][3] = 0; // La permission est-elle une permission par defaut
$this->rights[4][4] = 'supprimer';
*/
$r++;
$this->rights[$r][0] = 538; // Must be same permission than in product module
$this->rights[$r][1] = 'Exporter les services';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'export';
} }

View File

@ -132,7 +132,7 @@ if ($user->societe_id == 0)
! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire, ! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire,
! empty($conf->adherent->enabled) && $user->rights->adherent->lire, ! empty($conf->adherent->enabled) && $user->rights->adherent->lire,
! empty($conf->produit->enabled) && $user->rights->produit->lire, ! empty($conf->produit->enabled) && $user->rights->produit->lire,
! empty($conf->service->enabled) && $user->rights->produit->lire, ! empty($conf->service->enabled) && $user->rights->service->lire,
! empty($conf->propal->enabled) && $user->rights->propale->lire, ! empty($conf->propal->enabled) && $user->rights->propale->lire,
! empty($conf->commande->enabled) && $user->rights->commande->lire, ! empty($conf->commande->enabled) && $user->rights->commande->lire,
! empty($conf->facture->enabled) && $user->rights->facture->lire, ! empty($conf->facture->enabled) && $user->rights->facture->lire,

View File

@ -350,11 +350,9 @@ Permission25 = Enviar els pressupostos
Permission26 = Tancar pressupostos Permission26 = Tancar pressupostos
Permission27 = Eliminar pressupostos Permission27 = Eliminar pressupostos
Permission28 = Exportar els pressupostos Permission28 = Exportar els pressupostos
Permission31 = Consultar productes/serveis Permission31 = Consultar productes
Permission32 = Crear/modificar productes/serveis Permission32 = Crear/modificar productes
Permission33 = Demanar productes/serveis Permission34 = Eliminar productes
Permission34 = Eliminar productes/serveis
Permission36 = Exportar productes/serveis
Permission38 = Exportar productes Permission38 = Exportar productes
Permission41 = Consultar projectes Permission41 = Consultar projectes
Permission42 = Crear/modificar projectes Permission42 = Crear/modificar projectes
@ -480,6 +478,10 @@ Permission401 = Consultar havers
Permission402 = Crear/modificar havers Permission402 = Crear/modificar havers
Permission403 = Validar havers Permission403 = Validar havers
Permission404 = Eliminar havers Permission404 = Eliminar havers
Permission531 = Consultar serviceis
Permission532 = Crear/modificar serviceis
Permission534 = Eliminar serviceis
Permission538 = Exportar serviceis
Permission700 = Consultar subvencions Permission700 = Consultar subvencions
Permission701 = Crear/modificar subvencions Permission701 = Crear/modificar subvencions
Permission702 = Eliminar subvencions Permission702 = Eliminar subvencions

View File

@ -352,11 +352,9 @@ Permission25=Send commercial proposals
Permission26=Close commercial proposals Permission26=Close commercial proposals
Permission27=Delete commercial proposals Permission27=Delete commercial proposals
Permission28=Export commercial proposals Permission28=Export commercial proposals
Permission31=Read products/services Permission31=Read products
Permission32=Create/modify products/services Permission32=Create/modify products
Permission33=Command products/services Permission34=Delete products
Permission34=Delete products/services
Permission36=Export products/services
Permission38=Export products Permission38=Export products
Permission41=Read projects and tasks Permission41=Read projects and tasks
Permission42=Create/modify projects, edit tasks for my projects Permission42=Create/modify projects, edit tasks for my projects
@ -482,6 +480,10 @@ Permission401=Read discounts
Permission402=Create/modify discounts Permission402=Create/modify discounts
Permission403=Validate discounts Permission403=Validate discounts
Permission404=Delete discounts Permission404=Delete discounts
Permission531=Read services
Permission532=Create/modify services
Permission534=Delete services
Permission538=Export services
Permission700=Read donations Permission700=Read donations
Permission701=Create/modify donations Permission701=Create/modify donations
Permission702=Delete donations Permission702=Delete donations

View File

@ -350,11 +350,9 @@ Permission25 = Enviar los presupuestos
Permission26 = Cerrar presupuestos Permission26 = Cerrar presupuestos
Permission27 = Eliminar presupuestos Permission27 = Eliminar presupuestos
Permission28 = Exportar los presupuestos Permission28 = Exportar los presupuestos
Permission31 = Consultar productos/servicios Permission31 = Consultar productos
Permission32 = Crear/modificar productos/servicios Permission32 = Crear/modificar productos
Permission33 = Pedir productos/servicios Permission34 = Eliminar productos
Permission34 = Eliminar productos/servicios
Permission36 = Exportar productos/servicios
Permission38 = Exportar productos Permission38 = Exportar productos
Permission41 = Consultar proyectos Permission41 = Consultar proyectos
Permission42 = Crear/modificar proyectos Permission42 = Crear/modificar proyectos
@ -480,6 +478,10 @@ Permission401 = Consultar haberes
Permission402 = Crear/modificar haberes Permission402 = Crear/modificar haberes
Permission403 = Validar haberes Permission403 = Validar haberes
Permission404 = Eliminar haberes Permission404 = Eliminar haberes
Permission531 = Consultar servicios
Permission532 = Crear/modificar servicios
Permission534 = Eliminar servicios
Permission538 = Exportar servicios
Permission700 = Consultar subvenciones Permission700 = Consultar subvenciones
Permission701 = Crear/modificar subvenciones Permission701 = Crear/modificar subvenciones
Permission702 = Eliminar subvenciones Permission702 = Eliminar subvenciones

View File

@ -351,11 +351,9 @@ Permission25 = Envoyer les propositions commerciales
Permission26 = Clôturer les propositions commerciales Permission26 = Clôturer les propositions commerciales
Permission27 = Supprimer les propositions commerciales Permission27 = Supprimer les propositions commerciales
Permission28 = Exporter les propositions commerciales Permission28 = Exporter les propositions commerciales
Permission31 = Consulter les produits/services Permission31 = Consulter les produits
Permission32 = Créer/modifier les produits/services Permission32 = Créer/modifier les produits
Permission33 = Commander les produits/services Permission34 = Supprimer les produits
Permission34 = Supprimer les produits/services
Permission36 = Exporter les produits/services
Permission38 = Exporter les produits Permission38 = Exporter les produits
Permission41 = Consulter les projets et tâches Permission41 = Consulter les projets et tâches
Permission42 = Créer/modifier les projets, éditer tâches de mes projets Permission42 = Créer/modifier les projets, éditer tâches de mes projets
@ -481,6 +479,10 @@ Permission401 = Consulter les avoirs
Permission402 = Créer/modifier les avoirs Permission402 = Créer/modifier les avoirs
Permission403 = Valider les avoirs Permission403 = Valider les avoirs
Permission404 = Supprimer les avoirs Permission404 = Supprimer les avoirs
Permission531 = Consulter les services
Permission532 = Créer/modifier les services
Permission534 = Supprimer les services
Permission538 = Exporter les services
Permission700 = Consulter les dons Permission700 = Consulter les dons
Permission701 = Créer/modifier les dons Permission701 = Créer/modifier les dons
Permission702 = Supprimer les dons Permission702 = Supprimer les dons

View File

@ -9,7 +9,7 @@ HTMLCharset =Charset per le pagine HTML
DBStoringCharset =Charset database per memorizzare i dati DBStoringCharset =Charset database per memorizzare i dati
DBSortingCharset =Charset database per ordinare i dati DBSortingCharset =Charset database per ordinare i dati
WarningModuleNotActive =Modulo <b> %s </b> deve essere attivato WarningModuleNotActive =Modulo <b> %s </b> deve essere attivato
WarningOnlyPermissionOfActivatedModules =Solo le autorizzazioni relative a moduli attivati sono mostrate qui. È possibile attivare altri moduli nelle impostazioni - pagina Moduli. WarningOnlyPermissionOfActivatedModules =Solo le autorizzazioni relative a moduli attivati sono mostrate qui. <EFBFBD> possibile attivare altri moduli nelle impostazioni - pagina Moduli.
DolibarrSetup =Dolibarr setup DolibarrSetup =Dolibarr setup
DolibarrUser =Dolibarr utente DolibarrUser =Dolibarr utente
InternalUser =Utente interno InternalUser =Utente interno
@ -22,13 +22,13 @@ SetupArea =Sezione impostazioni
SecuritySetup =Impostazioni per la sicurezza SecuritySetup =Impostazioni per la sicurezza
ErrorModuleRequirePHPVersion =Errore, questo modulo richiede PHP versione %s o superiore ErrorModuleRequirePHPVersion =Errore, questo modulo richiede PHP versione %s o superiore
ErrorModuleRequireDolibarrVersion =Errore, questo modulo richiede Dolibarr versione %s o superiore ErrorModuleRequireDolibarrVersion =Errore, questo modulo richiede Dolibarr versione %s o superiore
ErrorDecimalLargerThanAreForbidden =Errore, una precisione superiore a <b> %s </b> non è supportata. ErrorDecimalLargerThanAreForbidden =Errore, una precisione superiore a <b> %s </b> non <EFBFBD> supportata.
DictionnarySetup =Dizionario DictionnarySetup =Dizionario
DisableJavascript =Disabilita JavaScript e funzioni Ajax DisableJavascript =Disabilita JavaScript e funzioni Ajax
ConfirmAjax =Utilizzare popup di conferma Ajax ConfirmAjax =Utilizzare popup di conferma Ajax
UseSearchToSelectCompany =Utilizzare un sistema di ricerca a compilazione progressiva per scegliere una società invece di una lista di selezione (ricerca Ajax invece di una combo select) UseSearchToSelectCompany =Utilizzare un sistema di ricerca a compilazione progressiva per scegliere una societ<EFBFBD> invece di una lista di selezione (ricerca Ajax invece di una combo select)
ViewFullDateActions =Visualizzazione di tutte le date delle azioni nel foglio dei terzi ViewFullDateActions =Visualizzazione di tutte le date delle azioni nel foglio dei terzi
NotAvailableWhenAjaxDisabled =Non disponibile quando Ajax è disabilitato NotAvailableWhenAjaxDisabled =Non disponibile quando Ajax <EFBFBD> disabilitato
JavascriptDisabled =JavaScript sia disattivato JavascriptDisabled =JavaScript sia disattivato
UsePopupCalendar =Utilizzare popup per l'inserimento delle date UsePopupCalendar =Utilizzare popup per l'inserimento delle date
UsePreviewTabs =Utilizzare le schede anteprima UsePreviewTabs =Utilizzare le schede anteprima
@ -38,12 +38,12 @@ Mask =Maschera
NextValue =Prossimo valore NextValue =Prossimo valore
NextValueForInvoices =Prossimo valore (fatture) NextValueForInvoices =Prossimo valore (fatture)
NextValueForCreditNotes =Prossimo valore (note di credito) NextValueForCreditNotes =Prossimo valore (note di credito)
MustBeLowerThanPHPLimit =Nota: il tuo PHP limita la dimensione di ogni file upload a <b> %s </b> %s, sebbene il valore del parametro è MustBeLowerThanPHPLimit =Nota: il tuo PHP limita la dimensione di ogni file upload a <b> %s </b> %s, sebbene il valore del parametro <EFBFBD>
NoMaxSizeByPHPLimit =Nota: Nessun limite è fissato nel vostro configurazione di PHP NoMaxSizeByPHPLimit =Nota: Nessun limite <EFBFBD> fissato nel vostro configurazione di PHP
MaxSizeForUploadedFiles =La dimensione massima per i file caricati (0 per disabilitare qualsiasi upload) MaxSizeForUploadedFiles =La dimensione massima per i file caricati (0 per disabilitare qualsiasi upload)
UseCaptchaCode =Utilizzare il codice grafico sulla pagina di accesso UseCaptchaCode =Utilizzare il codice grafico sulla pagina di accesso
UseAvToScanUploadedFiles =Utilizzare anti-virus per la scansione di file caricati UseAvToScanUploadedFiles =Utilizzare anti-virus per la scansione di file caricati
ComptaSetup =Impostazioni modulo Contabilità ComptaSetup =Impostazioni modulo Contabilit<EFBFBD>
UserSetup =Impostazioni per la gestione utenti UserSetup =Impostazioni per la gestione utenti
MenuSetup =Impostazioni per la gestione Menu MenuSetup =Impostazioni per la gestione Menu
MenuLimits =Limiti e precisione MenuLimits =Limiti e precisione
@ -83,7 +83,7 @@ MaxNbOfLinesForBoxes =Max numero di linee per caselle
PositionByDefault =Per impostazione predefinita PositionByDefault =Per impostazione predefinita
Position =Ordine Position =Ordine
MenusDesc =Menu gestori definire il contenuto del 2 barre dei menu (barra orizzontale e verticale bar). MenusDesc =Menu gestori definire il contenuto del 2 barre dei menu (barra orizzontale e verticale bar).
MenusEditorDesc =L'editor di menu consentono di definire personalizzata voci nei menu. Utilizzare con attenzione per evitare di rendere instabile dolibarr e voci di menu definitivamente irraggiungibile. <br> Alcuni moduli aggiungere voci nel menu (nel menu <b> Tutti </b> nella maggior parte dei casi). Se sono stati rimossi alcune di queste voci per errore, è possibile ripristinare i loro disattivando e reenabling il modulo. MenusEditorDesc =L'editor di menu consentono di definire personalizzata voci nei menu. Utilizzare con attenzione per evitare di rendere instabile dolibarr e voci di menu definitivamente irraggiungibile. <br> Alcuni moduli aggiungere voci nel menu (nel menu <b> Tutti </b> nella maggior parte dei casi). Se sono stati rimossi alcune di queste voci per errore, <EFBFBD> possibile ripristinare i loro disattivando e reenabling il modulo.
MenuForUsers =Menu per gli utenti MenuForUsers =Menu per gli utenti
LangFile =File. Lang LangFile =File. Lang
System =Sistema System =Sistema
@ -91,9 +91,9 @@ SystemInfo =Informazioni di sistema
SystemTools =Strumenti di gestione SystemTools =Strumenti di gestione
SystemToolsArea =Sezione strumenti di gestione del sistema SystemToolsArea =Sezione strumenti di gestione del sistema
SystemToolsAreaDesc =Questa sezione offre funzioni di gestione. Utilizzare il menu per scegliere la funzione che stai cercando. SystemToolsAreaDesc =Questa sezione offre funzioni di gestione. Utilizzare il menu per scegliere la funzione che stai cercando.
PurgeAreaDesc =Questa pagina consente di eliminare tutti i file memorizzati in costruzione o da Dolibarr (file temporanei o tutti i file in <b> %s </b>). Utilizzando questa funzione non è necessario. Esso è fornito per gli utenti Dolibarr cui è ospitato da un prestatore di servizi che non offre le autorizzazioni per eliminare i file costruito dai server web. PurgeAreaDesc =Questa pagina consente di eliminare tutti i file memorizzati in costruzione o da Dolibarr (file temporanei o tutti i file in <b> %s </b>). Utilizzando questa funzione non <EFBFBD> necessario. Esso <20> fornito per gli utenti Dolibarr cui <20> ospitato da un prestatore di servizi che non offre le autorizzazioni per eliminare i file costruito dai server web.
PurgeDeleteTemporaryFiles =Elimina tutti i file temporanei (nessun rischio di perdere dati) PurgeDeleteTemporaryFiles =Elimina tutti i file temporanei (nessun rischio di perdere dati)
PurgeDeleteAllFilesInDocumentsDir =Elimina tutti i file nella directory di <b> %s </b>. I file temporanei, ma anche file allegati di elementi (terze parti, fatture, ...) sarà soppresso. PurgeDeleteAllFilesInDocumentsDir =Elimina tutti i file nella directory di <b> %s </b>. I file temporanei, ma anche file allegati di elementi (terze parti, fatture, ...) sar<EFBFBD> soppresso.
PurgeRunNow =Spurgo ora PurgeRunNow =Spurgo ora
PurgeNothingToDelete =nessuna directory da eliminare. PurgeNothingToDelete =nessuna directory da eliminare.
PurgeNDirectoriesDeleted =<b> %s </b> di file o directory soppresso. PurgeNDirectoriesDeleted =<b> %s </b> di file o directory soppresso.
@ -101,7 +101,7 @@ NewBackup =Nuovo backup
GenerateBackup =Genera il backup GenerateBackup =Genera il backup
Backup =Backup Backup =Backup
Restore =Ripristino Restore =Ripristino
RunCommandSummary =Backup sarà realizzato attraverso il seguente comando RunCommandSummary =Backup sar<EFBFBD> realizzato attraverso il seguente comando
WebServerMustHavePermissionForCommand =Il tuo server web devono avere il permesso di eseguire tali comandi WebServerMustHavePermissionForCommand =Il tuo server web devono avere il permesso di eseguire tali comandi
BackupResult =Backup risultato BackupResult =Backup risultato
BackupFileSuccessfullyCreated =File di backup generati con successo BackupFileSuccessfullyCreated =File di backup generati con successo
@ -110,13 +110,13 @@ NoBackupFileAvailable =Nessun file di backup disponibile.
ExportMethod =Metodo di esportazione ExportMethod =Metodo di esportazione
ImportMethod =Importa metodo ImportMethod =Importa metodo
ToBuildBackupFileClickHere =Per costruire un file di backup, fare clic <a href="%s">qui</a>. ToBuildBackupFileClickHere =Per costruire un file di backup, fare clic <a href="%s">qui</a>.
ImportMySqlDesc =Per importare un file di backup, è necessario utilizzare il comando mysql da riga di comando: ImportMySqlDesc =Per importare un file di backup, <EFBFBD> necessario utilizzare il comando mysql da riga di comando:
ImportMySqlCommand = %s %s <mybackupfile.sql ImportMySqlCommand = %s %s <mybackupfile.sql
FileNameToGenerate =Il nome del file da generare FileNameToGenerate =Il nome del file da generare
CommandsToDisableForeignKeysForImport =Comando per disattivare chiavi esterne sulle importazioni CommandsToDisableForeignKeysForImport =Comando per disattivare chiavi esterne sulle importazioni
ExportCompatibility =Compatibilità dei file di esportazione generati ExportCompatibility =Compatibilit<EFBFBD> dei file di esportazione generati
MySqlExportParameters =MySQL esportazione parametri MySqlExportParameters =MySQL esportazione parametri
UseTransactionnalMode =Utilizzare la modalità transazionale UseTransactionnalMode =Utilizzare la modalit<EFBFBD> transazionale
FullPathToMysqldumpCommand =Percorso completo di comando mysqldump FullPathToMysqldumpCommand =Percorso completo di comando mysqldump
ExportOptions =Opzioni di esportazione ExportOptions =Opzioni di esportazione
AddDropDatabase =Aggiungere goccia database comando AddDropDatabase =Aggiungere goccia database comando
@ -126,33 +126,33 @@ NameColumn =Nome colonne
ExtendedInsert =Estensione INSERT ExtendedInsert =Estensione INSERT
DelayedInsert =Ritardato inserire DelayedInsert =Ritardato inserire
EncodeBinariesInHexa =Codificare dati binari in esadecimale EncodeBinariesInHexa =Codificare dati binari in esadecimale
Yes =Sì Yes =S<EFBFBD>
No =No No =No
AutoDetectLang =Autorileva (lingua del browser) AutoDetectLang =Autorileva (lingua del browser)
FeatureDisabledInDemo =Disabili in funzione demo FeatureDisabledInDemo =Disabili in funzione demo
Rights =Autorizzazioni Rights =Autorizzazioni
BoxesDesc =Le caselle sono schermo che mostra un pezzo di informazioni su alcune pagine. È possibile scegliere tra mostrando la casella o no selezionando pagina di destinazione e facendo clic su 'Attiva', o facendo clic sul pattumiera di disattivare questa funzione. BoxesDesc =Le caselle sono schermo che mostra un pezzo di informazioni su alcune pagine. <EFBFBD> possibile scegliere tra mostrando la casella o no selezionando pagina di destinazione e facendo clic su 'Attiva', o facendo clic sul pattumiera di disattivare questa funzione.
OnlyActiveElementsAreShown =Sono mostrati solo gli elementi relativi ai <a href="modules.php">moduli attivati</a> . OnlyActiveElementsAreShown =Sono mostrati solo gli elementi relativi ai <a href="modules.php">moduli attivati</a> .
ModulesDesc =Dolibarr moduli di definire quali è attivata la funzionalità del software. Alcuni moduli richiedono le autorizzazioni è necessario concedere agli utenti, dopo che consenta modulo. ModulesDesc =Dolibarr moduli di definire quali <EFBFBD> attivata la funzionalit<69> del software. Alcuni moduli richiedono le autorizzazioni <20> necessario concedere agli utenti, dopo che consenta modulo.
ModulesInterfaceDesc =Il Dolibarr moduli interfaccia permette di aggiungere nuove funzionalità a seconda del software esterno, sistemi o servizi. ModulesInterfaceDesc =Il Dolibarr moduli interfaccia permette di aggiungere nuove funzionalit<EFBFBD> a seconda del software esterno, sistemi o servizi.
ModulesSpecialDesc =Moduli speciali sono molto specifiche o raramente utilizzati moduli. ModulesSpecialDesc =Moduli speciali sono molto specifiche o raramente utilizzati moduli.
ModulesJobDesc =Business fornire moduli predefiniti semplice configurazione di Dolibarr per una particolare attività. ModulesJobDesc =Business fornire moduli predefiniti semplice configurazione di Dolibarr per una particolare attivit<EFBFBD>.
BoxesAvailable =Caselle disponibili BoxesAvailable =Caselle disponibili
BoxesActivated =Caselle attivate BoxesActivated =Caselle attivate
ActivateOn =Attiva sul ActivateOn =Attiva sul
ActiveOn =Attivati sul ActiveOn =Attivati sul
SourceFile =File sorgente SourceFile =File sorgente
AutomaticIfJavascriptDisabled =Automatico se Javascript è disattivato AutomaticIfJavascriptDisabled =Automatico se Javascript <EFBFBD> disattivato
AvailableOnlyIfJavascriptNotDisabled =Disponibile solo se JavaScript non è disattivato AvailableOnlyIfJavascriptNotDisabled =Disponibile solo se JavaScript non <EFBFBD> disattivato
AvailableOnlyIfJavascriptAndAjaxNotDisabled =Disponibile solo se JavaScript e Ajax non sono disabilitati AvailableOnlyIfJavascriptAndAjaxNotDisabled =Disponibile solo se JavaScript e Ajax non sono disabilitati
Required =Richiesto Required =Richiesto
Security =Sicurezza Security =Sicurezza
Passwords =Password Passwords =Password
DoNotStoreClearPassword =Non fare memorizzare le password in chiaro nella banca dati DoNotStoreClearPassword =Non fare memorizzare le password in chiaro nella banca dati
MainDbPasswordFileConfEncrypted =Database password codificato in conf.php MainDbPasswordFileConfEncrypted =Database password codificato in conf.php
ConfigFileIsInReadOnly =Conf.php Il file è di sola lettura, verificare le autorizzazioni. ConfigFileIsInReadOnly =Conf.php Il file <EFBFBD> di sola lettura, verificare le autorizzazioni.
ProtectAndEncryptPdfFiles =Protezione e crittografia dei PDF generati ProtectAndEncryptPdfFiles =Protezione e crittografia dei PDF generati
ProtectAndEncryptPdfFilesDesc =Protezione di un documento PDF mantiene a disposizione per leggere e stampare i PDF con qualsiasi browser. Tuttavia, la modifica e la copia non è più possibile. ProtectAndEncryptPdfFilesDesc =Protezione di un documento PDF mantiene a disposizione per leggere e stampare i PDF con qualsiasi browser. Tuttavia, la modifica e la copia non <EFBFBD> pi<70> possibile.
Feature =Caratterisitica Feature =Caratterisitica
DolibarrLicense =Licenza DolibarrLicense =Licenza
DolibarrProjectLeader =Project leader DolibarrProjectLeader =Project leader
@ -162,10 +162,10 @@ OfficialWebSiteFr =Francese sito ufficiale
OfficialWikiFr =Wiki francese OfficialWikiFr =Wiki francese
CurrentTopMenuHandler =Gestore attuale del menu in alto CurrentTopMenuHandler =Gestore attuale del menu in alto
CurrentLeftMenuHandler =Gestore attuale del menu a sinistra CurrentLeftMenuHandler =Gestore attuale del menu a sinistra
MeasuringUnit =Unità di misura MeasuringUnit =Unit<EFBFBD> di misura
Emails =E-mail Emails =E-mail
EMailsSetup =E-mail setup EMailsSetup =E-mail setup
EMailsDesc =Questa pagina ti permette di sovrascrivere il PHP parametri per l'e-mail di invio. Nella maggior parte dei casi su Unix / Linux OS, il PHP impostazione è corretta e questi parametri sono inutili. EMailsDesc =Questa pagina ti permette di sovrascrivere il PHP parametri per l'e-mail di invio. Nella maggior parte dei casi su Unix / Linux OS, il PHP impostazione <EFBFBD> corretta e questi parametri sono inutili.
MAIN_MAIL_SMTP_PORT =Porta SMTP (Di default in php.ini: <b> %s </b>) MAIN_MAIL_SMTP_PORT =Porta SMTP (Di default in php.ini: <b> %s </b>)
MAIN_MAIL_SMTP_SERVER =Host SMTP (Di default in php.ini: <b> %s </b>) MAIN_MAIL_SMTP_SERVER =Host SMTP (Di default in php.ini: <b> %s </b>)
MAIN_MAIL_EMAIL_FROM =Mittente e-mail automatica per e-mail (Di default in php.ini: <b> %s </b>) MAIN_MAIL_EMAIL_FROM =Mittente e-mail automatica per e-mail (Di default in php.ini: <b> %s </b>)
@ -180,30 +180,30 @@ ModuleFamilyProjects =Progetti / collaboratif
ModuleFamilyOther =Altro ModuleFamilyOther =Altro
ModuleFamilyTechnic =Mutli-moduli strumenti ModuleFamilyTechnic =Mutli-moduli strumenti
ModuleFamilyExperimental =Sperimentale moduli ModuleFamilyExperimental =Sperimentale moduli
ModuleFamilyFinancial =Moduli finanziari (Contabilità / Tesoro) ModuleFamilyFinancial =Moduli finanziari (Contabilit<EFBFBD> / Tesoro)
ModuleFamilyECM =ECM ModuleFamilyECM =ECM
MenuHandlers =Menu gestori MenuHandlers =Menu gestori
MenuAdmin =Menu editor MenuAdmin =Menu editor
ThisIsProcessToFollow =Questa è l'impostazione del processo: ThisIsProcessToFollow =Questa <EFBFBD> l'impostazione del processo:
StepNb =Passo %s StepNb =Passo %s
DownloadPackageFromWebSite =Scarica il pacchetto dal sito %s. DownloadPackageFromWebSite =Scarica il pacchetto dal sito %s.
UnpackPackageInDolibarrRoot =Scompattate il pacchetto con il file in Dolibarr directory di root del <b> %s </b> UnpackPackageInDolibarrRoot =Scompattate il pacchetto con il file in Dolibarr directory di root del <b> %s </b>
SetupIsReadyForUse =Installare è finito e Dolibarr è pronto per l'utilizzo con questo nuovo componente. SetupIsReadyForUse =Installare <EFBFBD> finito e Dolibarr <20> pronto per l'utilizzo con questo nuovo componente.
CurrentVersion =Dolibarr versione corrente CurrentVersion =Dolibarr versione corrente
CallUpdatePage =Vai alla pagina che aggiorna la struttura del database e dati su %s. CallUpdatePage =Vai alla pagina che aggiorna la struttura del database e dati su %s.
LastStableVersion =Ultima versione stabile LastStableVersion =Ultima versione stabile
GenericMaskCodes =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : <br><b> {000000} </b> Corrisponde a un numero che sarà incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sarà completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. <br><b> {000000+000} </b> Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. <br> <b> {000000@x} </b> Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x è raggiunto (x è tra 1 e 12). Se viene utilizzata questa opzione e x è 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} è anche necessaria. <br> <b> {dd} </b> giorno (da 01 a 31). <br> <b> {mm} </b> mese (da 01 a 12). <br> <b> {yy} </b>, <b> {yyyy} </b> o <b> {y} </b> anno più di 2, 4 o 1 numeri.<br> GenericMaskCodes =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : <br><b> {000000} </b> Corrisponde a un numero che sar<EFBFBD> incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sar<EFBFBD> completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. <br><b> {000000+000} </b> Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. <br> <b> {000000@x} </b> Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x <EFBFBD> raggiunto (x <20> tra 1 e 12). Se viene utilizzata questa opzione e x <20> 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} <20> anche necessaria. <br> <b> {dd} </b> giorno (da 01 a 31). <br> <b> {mm} </b> mese (da 01 a 12). <br> <b> {yy} </b>, <b> {yyyy} </b> o <b> {y} </b> anno pi<EFBFBD> di 2, 4 o 1 numeri.<br>
GenericMaskCodes2=<b> {cccc000} </b> Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale.<br> GenericMaskCodes2=<b> {cccc000} </b> Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale.<br>
GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno intatti. <br> Spazi non sono ammessi. <br> GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno intatti. <br> Spazi non sono ammessi. <br>
GenericMaskCodes4a=<u> Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007: </u> <br> GenericMaskCodes4a=<u> Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007: </u> <br>
GenericMaskCodes5=<b> ABC{yy}{mm}-{000000} </b> darà <b> ABC0701-000099 </b> <br> <b> {0000+100}-ZZZ/{dd}/XXX </b> darà <b> 0199-ZZZ/31/XXX </b> GenericMaskCodes5=<b> ABC{yy}{mm}-{000000} </b> dar<EFBFBD> <b> ABC0701-000099 </b> <br> <b> {0000+100}-ZZZ/{dd}/XXX </b> dar<61> <b> 0199-ZZZ/31/XXX </b>
GenericNumRefModelDesc =Ritorna un numero personalizzabile in base allo schema definito. GenericNumRefModelDesc =Ritorna un numero personalizzabile in base allo schema definito.
ServerAvailableOnIPOrPort =Server è disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b> ServerAvailableOnIPOrPort =Server <EFBFBD> disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b>
ServerNotAvailableOnIPOrPort =Server non è disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b> ServerNotAvailableOnIPOrPort =Server non <EFBFBD> disponibile presso l'indirizzo <b> %s </b> sulla porta <b> %s </b>
DoTestServerAvailability =Server di test di connettività DoTestServerAvailability =Server di test di connettivit<EFBFBD>
DoTestSend =L'invio di prova DoTestSend =L'invio di prova
DoTestSendHTML =Prova HTML inviando DoTestSendHTML =Prova HTML inviando
ErrorCantUseRazInStartedYearIfNoYearMonthInMask =Errore, non possono utente @ opzione se la sequenza aa () () o millimetri aaaa () () millimetri non è in maschera. ErrorCantUseRazInStartedYearIfNoYearMonthInMask =Errore, non possono utente @ opzione se la sequenza aa () () o millimetri aaaa () () millimetri non <EFBFBD> in maschera.
# Modules # Modules
Module0Name =Utenti e gruppi Module0Name =Utenti e gruppi
@ -212,7 +212,7 @@ Module1Name =Terzi
Module1Desc =Gestione Aziende e contatti Module1Desc =Gestione Aziende e contatti
Module2Name =Commerciale Module2Name =Commerciale
Module2Desc =Gestione commerciale Module2Desc =Gestione commerciale
Module10Name =Contabilità Module10Name =Contabilit<EFBFBD>
Module10Desc =Gestione contabile semplice (fatture e pagamenti) Module10Desc =Gestione contabile semplice (fatture e pagamenti)
Module20Name =Proposte Module20Name =Proposte
Module20Desc =Gestione proposte commerciali Module20Desc =Gestione proposte commerciali
@ -255,7 +255,7 @@ Module80Desc =Gestione spedizioni e consegne ordini
Module85Name =Banche e cassa Module85Name =Banche e cassa
Module85Desc =La gestione di conti bancari o conti di cassa Module85Desc =La gestione di conti bancari o conti di cassa
Module130Name =Esperto contabile Module130Name =Esperto contabile
Module130Desc =Gestione contabilità per esperti (partita doppia) Module130Desc =Gestione contabilit<EFBFBD> per esperti (partita doppia)
Module200Name =LDAP Module200Name =LDAP
Module200Desc =Sincronizzazione directory LDAP Module200Desc =Sincronizzazione directory LDAP
Module210Name =Postnuke Module210Name =Postnuke
@ -309,11 +309,10 @@ Permission24 =Valida proposte commerciali
Permission25 =Inviare proposte commerciali Permission25 =Inviare proposte commerciali
Permission26 =Chiudere proposte commerciali Permission26 =Chiudere proposte commerciali
Permission27 =Eliminare proposte commerciali Permission27 =Eliminare proposte commerciali
Permission31 =Leggere prodotti / servizi Permission31 =Leggere prodotti
Permission32 =Creare / modificare i prodotti / servizi Permission32 =Creare / modificare i prodotti
Permission33 =Comando prodotti / servizi Permission34 =Eliminare i prodotti
Permission34 =Eliminare i prodotti / servizi Permission38 =Esportazione di prodotti
Permission36 =Esportazione di prodotti / servizi
Permission41 =Leggere i progetti Permission41 =Leggere i progetti
Permission42 =Creare / modificare i progetti Permission42 =Creare / modificare i progetti
Permission44 =Eliminare progetti Permission44 =Eliminare progetti
@ -339,7 +338,7 @@ Permission92 =Creare / modificare i contributi sociali e iva
Permission93 =Eliminare i contributi sociali e iva Permission93 =Eliminare i contributi sociali e iva
Permission95 =Leggere le relazioni Permission95 =Leggere le relazioni
Permission96 =Impostazioni del dispacciamento Permission96 =Impostazioni del dispacciamento
Permission97 =Leggere la contabilità di spedizione fattura Permission97 =Leggere la contabilit<EFBFBD> di spedizione fattura
Permission98 =Spedizione della fattura di righe contabili Permission98 =Spedizione della fattura di righe contabili
Permission101 =Leggere Spedizione Permission101 =Leggere Spedizione
Permission102 =Creare / modificare Spedizione Permission102 =Creare / modificare Spedizione
@ -393,7 +392,7 @@ Permission254 =Eliminare o disattivare altri utenti
Permission255 =Creare / modificare le proprie informazioni utente Permission255 =Creare / modificare le proprie informazioni utente
Permission256 =Modificare la propria password Permission256 =Modificare la propria password
Permission261 =Accesso al menu commerciale Permission261 =Accesso al menu commerciale
Permission262 =Estendere l'accesso a tutte le terze parti (non solo quelle legate a utente). Non è efficace per gli utenti esterni (semper limitato a se stessi). Permission262 =Estendere l'accesso a tutte le terze parti (non solo quelle legate a utente). Non <EFBFBD> efficace per gli utenti esterni (semper limitato a se stessi).
Permission281 =Leggere contatti Permission281 =Leggere contatti
Permission282 =Creare / modificare i contatti Permission282 =Creare / modificare i contatti
Permission283 =Eliminare contatti Permission283 =Eliminare contatti
@ -408,6 +407,10 @@ Permission401 =Leggere sconti
Permission402 =Creare / modificare sconti Permission402 =Creare / modificare sconti
Permission403 =Validare sconti Permission403 =Validare sconti
Permission404 =Eliminare sconti Permission404 =Eliminare sconti
Permission531 =Leggere servizi
Permission532 =Creare / modificare i servizi
Permission534 =Eliminare i servizi
Permission538 =Esportazione di servizi
Permission700 =Leggere le donazioni Permission700 =Leggere le donazioni
Permission701 =Creare / modificare le donazioni Permission701 =Creare / modificare le donazioni
Permission702 =Eliminare le donazioni Permission702 =Eliminare le donazioni
@ -439,12 +442,12 @@ Permission1236 =Esportazione fatture fornitore, attributi e dei pagame
Permission1321 =Esportazione fatture del cliente, attributi e dei pagamenti Permission1321 =Esportazione fatture del cliente, attributi e dei pagamenti
Permission2401 =Leggere azioni (o eventi compiti), collegate al suo conto Permission2401 =Leggere azioni (o eventi compiti), collegate al suo conto
Permission2402 =Creare / modificare / cancellare le azioni (o eventi compiti), collegata al suo conto Permission2402 =Creare / modificare / cancellare le azioni (o eventi compiti), collegata al suo conto
Permission2403 =Leggere azioni (eventi o attività) di altri Permission2403 =Leggere azioni (eventi o attivit<EFBFBD>) di altri
Permission2405 =Creare / modificare / cancellare le azioni (eventi o attività) di altri Permission2405 =Creare / modificare / cancellare le azioni (eventi o attivit<EFBFBD>) di altri
Permission2500 =Leggere documenti Permission2500 =Leggere documenti
Permission2501 =Presentare o cancellare i documenti Permission2501 =Presentare o cancellare i documenti
Permission2515 =Impostazioni Directory documenti Permission2515 =Impostazioni Directory documenti
DictionnaryCompanyType =Tipi di società DictionnaryCompanyType =Tipi di societ<EFBFBD>
DictionnaryCompanyJuridicalType =Forme giuridiche di impresa DictionnaryCompanyJuridicalType =Forme giuridiche di impresa
DictionnaryProspectLevel =Livello prospettiva potenziale cliente DictionnaryProspectLevel =Livello prospettiva potenziale cliente
DictionnaryCanton =Distretti DictionnaryCanton =Distretti
@ -456,7 +459,7 @@ DictionnaryActions =Azioni elenco
DictionnarySocialContributions =Tipi di contributi sociali DictionnarySocialContributions =Tipi di contributi sociali
DictionnaryVAT =Prezzi IVA DictionnaryVAT =Prezzi IVA
DictionnaryPaymentConditions =Condizioni di pagamento DictionnaryPaymentConditions =Condizioni di pagamento
DictionnaryPaymentModes =Modalità di pagamento DictionnaryPaymentModes =Modalit<EFBFBD> di pagamento
DictionnaryTypeContact =Contatto tipi DictionnaryTypeContact =Contatto tipi
DictionnaryEcotaxe =Ecotassa (RAEE) DictionnaryEcotaxe =Ecotassa (RAEE)
DictionnaryPaperFormat =Formati di carta DictionnaryPaperFormat =Formati di carta
@ -466,11 +469,11 @@ BackToModuleList =Torna alla lista moduli
BackToDictionnaryList =Torna alla lista dizionari BackToDictionnaryList =Torna alla lista dizionari
VATReceivedOnly =Tariffa speciale non sono a carico VATReceivedOnly =Tariffa speciale non sono a carico
VATManagement =Gestione IVA VATManagement =Gestione IVA
VATIsUsedDesc =L'aliquota IVA per impostazione predefinita durante la creazione di prospettive, fatture, ordini, ecc seguire la regola standard attivo: <br> Se il venditore è soggetto ad IVA, quindi IVA per impostazione predefinita VATIsUsedDesc =L'aliquota IVA per impostazione predefinita durante la creazione di prospettive, fatture, ordini, ecc seguire la regola standard attivo: <br> Se il venditore <EFBFBD> soggetto ad IVA, quindi IVA per impostazione predefinita
VATIsNotUsedDesc =Per impostazione predefinita la proposta di IVA è pari a 0 che possono essere utilizzati per casi come associazioni, singoli individui o piccole imprese. VATIsNotUsedDesc =Per impostazione predefinita la proposta di IVA <EFBFBD> pari a 0 che possono essere utilizzati per casi come associazioni, singoli individui o piccole imprese.
VATIsUsedExampleFR =In Francia, significa che le imprese o organizzazioni che hanno un vero e proprio sistema fiscale (Semplificato reale reale o normale). Un sistema in cui l'IVA è dichiarata. VATIsUsedExampleFR =In Francia, significa che le imprese o organizzazioni che hanno un vero e proprio sistema fiscale (Semplificato reale reale o normale). Un sistema in cui l'IVA <EFBFBD> dichiarata.
VATIsNotUsedExampleFR =In Francia, ciò significa che le associazioni non sono IVA dichiarata o le società, le organizzazioni o le professioni liberali che hanno scelto la micro impresa sistema fiscale (IVA in franchising) e il versamento di una franchigia IVA senza alcuna dichiarazione IVA. Questa scelta viene visualizzata la dicitura "non applicabile IVA - Art-293B del CGI" sulle fatture. VATIsNotUsedExampleFR =In Francia, ci<EFBFBD> significa che le associazioni non sono IVA dichiarata o le societ<65>, le organizzazioni o le professioni liberali che hanno scelto la micro impresa sistema fiscale (IVA in franchising) e il versamento di una franchigia IVA senza alcuna dichiarazione IVA. Questa scelta viene visualizzata la dicitura "non applicabile IVA - Art-293B del CGI" sulle fatture.
LabelUsedByDefault =Etichetta usato in modo predefinito, se non la traduzione può essere trovato per il codice LabelUsedByDefault =Etichetta usato in modo predefinito, se non la traduzione pu<EFBFBD> essere trovato per il codice
LabelOnDocuments =Etichetta su documenti LabelOnDocuments =Etichetta su documenti
NbOfDays =Numeri di giorni NbOfDays =Numeri di giorni
AtEndOfMonth =Alla fine del mese AtEndOfMonth =Alla fine del mese
@ -511,13 +514,13 @@ DriverType =Driver tipo
SummarySystem =Informazioni sul sistema di sintesi SummarySystem =Informazioni sul sistema di sintesi
SummaryConst =Elenco di tutti i parametri di impostazione Dolibarr SummaryConst =Elenco di tutti i parametri di impostazione Dolibarr
SystemUpdate =Aggiornamento del sistema SystemUpdate =Aggiornamento del sistema
SystemSuccessfulyUpdate =Il sistema è stato aggiornato con successo SystemSuccessfulyUpdate =Il sistema <EFBFBD> stato aggiornato con successo
MenuCompanySetup =Società / Fondazione MenuCompanySetup =Societ<EFBFBD> / Fondazione
MenuNewUser =Nuovo utente MenuNewUser =Nuovo utente
MenuTopManager =Gestione menù principale MenuTopManager =Gestione men<EFBFBD> principale
MenuLeftManager =Gestione menù a sinistra MenuLeftManager =Gestione men<EFBFBD> a sinistra
DefaultMenuTopManager =Gestione menù principale DefaultMenuTopManager =Gestione men<EFBFBD> principale
DefaultMenuLeftManager =Gestione menù a sinistra DefaultMenuLeftManager =Gestione men<EFBFBD> a sinistra
Skin =tema Skin Skin =tema Skin
DefaultSkin =Tema di default dello Skin DefaultSkin =Tema di default dello Skin
MaxSizeList =Max lunghezza per lista MaxSizeList =Max lunghezza per lista
@ -527,13 +530,13 @@ MessageLogin =Messaggio pagina di accesso
PermanentLeftSearchForm =Modulo di ricerca permanente nel menu di sinistra PermanentLeftSearchForm =Modulo di ricerca permanente nel menu di sinistra
DefaultLanguage =La lingua di default da usare (codice lingua) DefaultLanguage =La lingua di default da usare (codice lingua)
EnableMultilangInterface =Attiva l'interfaccia multilingue EnableMultilangInterface =Attiva l'interfaccia multilingue
SystemSuccessfulyUpdated =Il sistema è stato aggiornato con successo SystemSuccessfulyUpdated =Il sistema <EFBFBD> stato aggiornato con successo
CompanyInfo =Informazioni società / fondazione CompanyInfo =Informazioni societ<EFBFBD> / fondazione
CompanyIds =Identità società / fondazione CompanyIds =Identit<EFBFBD> societ<65> / fondazione
CompanyName =Nome CompanyName =Nome
CompanyAddress =Indirizzo CompanyAddress =Indirizzo
CompanyZip =Cap CompanyZip =Cap
CompanyTown =Città CompanyTown =Citt<EFBFBD>
CompanyCountry =Paese CompanyCountry =Paese
CompanyCurrency =Principali valute CompanyCurrency =Principali valute
DoNotShow =Non mostrare DoNotShow =Non mostrare
@ -561,39 +564,39 @@ DelaysOfToleranceTransactionsToConciliate =Tolleranza di ritardo (in giorn
DelaysOfToleranceMembers =Tolleranza di ritardo (in giorni) prima segnalazione differita su adherant quota di adesione DelaysOfToleranceMembers =Tolleranza di ritardo (in giorni) prima segnalazione differita su adherant quota di adesione
DelaysOfToleranceChequesToDeposit =Tolleranza di ritardo (in giorni), prima segnalazione per il deposito di assegni a che fare DelaysOfToleranceChequesToDeposit =Tolleranza di ritardo (in giorni), prima segnalazione per il deposito di assegni a che fare
SetupDescription1 =Tutti i parametri disponibili nella sezione impostazioni consentono il setup Dolibarr prima di iniziare l'uso. SetupDescription1 =Tutti i parametri disponibili nella sezione impostazioni consentono il setup Dolibarr prima di iniziare l'uso.
SetupDescription2 =I 2 più importanti passi dell'installazione avvengono seguendo le prime 2 voci a sinistra nel menu impostazioni, ovvero la pagina di configurazione Azienda / Fondazione e la pagina di configurazione moduli: SetupDescription2 =I 2 pi<EFBFBD> importanti passi dell'installazione avvengono seguendo le prime 2 voci a sinistra nel menu impostazioni, ovvero la pagina di configurazione Azienda / Fondazione e la pagina di configurazione moduli:
SetupDescription3 =L'impostazione <b> Azienda / Fondazione </b> è necessaria perché le informazioni inserite saranno usate da Dolibarr per le visualizzazioni ed il comportamento (per esempio per le funzioni correlate al tuo paese). SetupDescription3 =L'impostazione <b> Azienda / Fondazione </b> <EFBFBD> necessaria perch<63> le informazioni inserite saranno usate da Dolibarr per le visualizzazioni ed il comportamento (per esempio per le funzioni correlate al tuo paese).
SetupDescription4 =Le impostazioni per i <b> moduli </b> sono necessarie perché Dolibarr non è un semplice ERP / CRM, ma una somma di diversi moduli, tutti più o meno indipendenti. E 'solo dopo aver attivato i moduli che potrai usufruire delle caratteristiche che vedrete apparse nel Dolibarr menu. SetupDescription4 =Le impostazioni per i <b> moduli </b> sono necessarie perch<EFBFBD> Dolibarr non <20> un semplice ERP / CRM, ma una somma di diversi moduli, tutti pi<70> o meno indipendenti. E 'solo dopo aver attivato i moduli che potrai usufruire delle caratteristiche che vedrete apparse nel Dolibarr menu.
EventsSetup =Impostazioni di log di eventi EventsSetup =Impostazioni di log di eventi
LogEvents =Eventi di audit di sicurezza LogEvents =Eventi di audit di sicurezza
Audit =Audit Audit =Audit
ListEvents =Audit eventi ListEvents =Audit eventi
ListOfSecurityEvents =Elenco degli eventi di sicurezza Dolibarr ListOfSecurityEvents =Elenco degli eventi di sicurezza Dolibarr
LogEventDesc =È possibile attivare il registro di eventi di sicurezza Dolibarr qui. Gli amministratori possono quindi vedere il suo contenuto attraverso <b> dal menu Strumenti di sistema - Audit </b>. Attenzione, questa funzione può consumare una grande quantità di dati nel database. LogEventDesc =<EFBFBD> possibile attivare il registro di eventi di sicurezza Dolibarr qui. Gli amministratori possono quindi vedere il suo contenuto attraverso <b> dal menu Strumenti di sistema - Audit </b>. Attenzione, questa funzione pu<EFBFBD> consumare una grande quantit<69> di dati nel database.
AreaForAdminOnly =Tali funzioni possono essere utilizzate solo da utenti di tipo <b> amministratore </b>. Le funzioni per l'amministratore sono facilmente individuabili in Dolibarr grazie alla seguente icona: AreaForAdminOnly =Tali funzioni possono essere utilizzate solo da utenti di tipo <b> amministratore </b>. Le funzioni per l'amministratore sono facilmente individuabili in Dolibarr grazie alla seguente icona:
SystemInfoDesc =Le informazioni di sistema sono varie informazioni tecniche visibili in modalità di sola lettura e solo agli amministratori. SystemInfoDesc =Le informazioni di sistema sono varie informazioni tecniche visibili in modalit<EFBFBD> di sola lettura e solo agli amministratori.
SystemAreaForAdminOnly =Questa sezione è disponibile solo agli utenti ti tipo amministratore. Nessuna delle autorizzazioni Dolibarr può ridurre questo limite. SystemAreaForAdminOnly =Questa sezione <EFBFBD> disponibile solo agli utenti ti tipo amministratore. Nessuna delle autorizzazioni Dolibarr pu<70> ridurre questo limite.
CompanyFundationDesc =Modifica in questa pagina tutte le informazioni note della società o della fondazione che intendi gestire CompanyFundationDesc =Modifica in questa pagina tutte le informazioni note della societ<EFBFBD> o della fondazione che intendi gestire
DisplayDesc =Qui è possibile scegliere i parametri relativi al Dolibarr look and feel DisplayDesc =Qui <EFBFBD> possibile scegliere i parametri relativi al Dolibarr look and feel
TriggersAvailable =Trigger disponibili TriggersAvailable =Trigger disponibili
TriggersDesc =Trigger sono file che modificare il comportamento del flusso di lavoro Dolibarr una volta copiato nella directory <b> htdocs / include / trigger </b>. Hanno realizzato nuove azioni, attivato su Dolibarr eventi (creazione di nuova impresa, fattura di convalida, ...). TriggersDesc =Trigger sono file che modificare il comportamento del flusso di lavoro Dolibarr una volta copiato nella directory <b> htdocs / include / trigger </b>. Hanno realizzato nuove azioni, attivato su Dolibarr eventi (creazione di nuova impresa, fattura di convalida, ...).
TriggerDisabledByName =Trigger in questo file sono disattivati da <b>-NoRun </b> suffisso in loro nome. TriggerDisabledByName =Trigger in questo file sono disattivati da <b>-NoRun </b> suffisso in loro nome.
TriggerDisabledAsModuleDisabled =Trigger in questo file sono disabili come modulo <b> %s </b> è disattivato. TriggerDisabledAsModuleDisabled =Trigger in questo file sono disabili come modulo <b> %s </b> <EFBFBD> disattivato.
TriggerAlwaysActive =Trigger in questo file sono attivi, qualunque siano i moduli attivati Dolibarr. TriggerAlwaysActive =Trigger in questo file sono attivi, qualunque siano i moduli attivati Dolibarr.
TriggerActiveAsModuleActive =Trigger in questo file sono attivi come modulo <b> %s </b> è abilitato. TriggerActiveAsModuleActive =Trigger in questo file sono attivi come modulo <b> %s </b> <EFBFBD> abilitato.
GeneratedPasswordDesc =Definire qui regola che si desidera utilizzare per generare una nuova password se chiedere che la password generata in automatico GeneratedPasswordDesc =Definire qui regola che si desidera utilizzare per generare una nuova password se chiedere che la password generata in automatico
DictionnaryDesc =Definire qui tutti i dati di riferimento. È possibile completare il valore predefinito con la tua. DictionnaryDesc =Definire qui tutti i dati di riferimento. <EFBFBD> possibile completare il valore predefinito con la tua.
ConstDesc =Questa pagina ti permette di modificare tutti gli altri parametri non sono disponibili nelle pagine precedenti. Essi sono riservati parametri per gli sviluppatori avanzati o per troubleshouting. ConstDesc =Questa pagina ti permette di modificare tutti gli altri parametri non sono disponibili nelle pagine precedenti. Essi sono riservati parametri per gli sviluppatori avanzati o per troubleshouting.
OnceSetupFinishedCreateUsers =Attenzione, sei un utente amministratore Dolibarr. Gli utenti amministratore sono utilizzati per impostare Dolibarr. Per un uso abituale di Dolibarr, si raccomanda di non utilizzare un utente amministratore ma crearne uno nuovo dal menu utenti e gruppi . OnceSetupFinishedCreateUsers =Attenzione, sei un utente amministratore Dolibarr. Gli utenti amministratore sono utilizzati per impostare Dolibarr. Per un uso abituale di Dolibarr, si raccomanda di non utilizzare un utente amministratore ma crearne uno nuovo dal menu utenti e gruppi .
MiscellanousDesc =Definire qui tutti gli altri parametri relativi alla sicurezza. MiscellanousDesc =Definire qui tutti gli altri parametri relativi alla sicurezza.
LimitsSetup =Limiti / impostazioni di precisione LimitsSetup =Limiti / impostazioni di precisione
LimitsDesc =È possibile definire i limiti e la precisione utilizzato da qui Dolibarr LimitsDesc =<EFBFBD> possibile definire i limiti e la precisione utilizzato da qui Dolibarr
MAIN_MAX_DECIMALS_UNIT =Max decimali per i prezzi unitari MAIN_MAX_DECIMALS_UNIT =Max decimali per i prezzi unitari
MAIN_MAX_DECIMALS_TOT =Max decimali per il totale dei prezzi MAIN_MAX_DECIMALS_TOT =Max decimali per il totale dei prezzi
MAIN_MAX_DECIMALS_SHOWN =Max decimali per i prezzi indicati sullo schermo (Aggiungi <b>...</b> dopo questo numero se si desidera visualizzare <b>...</b> quando il numero viene troncato quando mostrato sullo schermo) MAIN_MAX_DECIMALS_SHOWN =Max decimali per i prezzi indicati sullo schermo (Aggiungi <b>...</b> dopo questo numero se si desidera visualizzare <b>...</b> quando il numero viene troncato quando mostrato sullo schermo)
ParameterActiveForNextInputOnly =Parametro efficace solo per il prossimo inserimento ParameterActiveForNextInputOnly =Parametro efficace solo per il prossimo inserimento
NoEventOrNoAuditSetup =Nessun evento di sicurezza è stato ancora registrato. Questo può essere un normale controllo se non è stato attivato sulla pagina "Impostazioni - sicurezza - controllo". NoEventOrNoAuditSetup =Nessun evento di sicurezza <EFBFBD> stato ancora registrato. Questo pu<70> essere un normale controllo se non <20> stato attivato sulla pagina "Impostazioni - sicurezza - controllo".
NoEventFoundWithCriteria =Nessun evento di sicurezza è stato trovato per la ricerca di tali criteri. NoEventFoundWithCriteria =Nessun evento di sicurezza <EFBFBD> stato trovato per la ricerca di tali criteri.
##### Users setup ##### ##### Users setup #####
UserGroupSetup =Impostazioni utenti e gruppi UserGroupSetup =Impostazioni utenti e gruppi
@ -605,17 +608,17 @@ DisableForgetPasswordLinkOnLogonPage =Non mostrare il link "Hai dimentica
##### Company setup ##### ##### Company setup #####
CompanySetup =Impostazioni modulo aziende CompanySetup =Impostazioni modulo aziende
CompanyCodeChecker =Modulo per la generazione e verifica dei codici di terzi (cliente o fornitore) CompanyCodeChecker =Modulo per la generazione e verifica dei codici di terzi (cliente o fornitore)
AccountCodeManager =Modulo per la generazione di codice di contabilità (cliente o fornitore) AccountCodeManager =Modulo per la generazione di codice di contabilit<EFBFBD> (cliente o fornitore)
ModuleCompanyCodeAquarium =Restituisce di un codice contabile costruito da "401" seguito dal codice del fornitore terzo per un codice contabile fornitori, e "411" seguito dal codice del cliente terzo per un codice contabile cliente. ModuleCompanyCodeAquarium =Restituisce di un codice contabile costruito da "401" seguito dal codice del fornitore terzo per un codice contabile fornitori, e "411" seguito dal codice del cliente terzo per un codice contabile cliente.
ModuleCompanyCodePanicum =Restituisce un codice contabile vuoto. ModuleCompanyCodePanicum =Restituisce un codice contabile vuoto.
ModuleCompanyCodeDigitaria =Contabilità codice dipende dal codice di terze parti. Il codice è composto di carattere "C" nella prima posizione seguita da i primi 5 caratteri del codice di terze parti. ModuleCompanyCodeDigitaria =Contabilit<EFBFBD> codice dipende dal codice di terze parti. Il codice <20> composto di carattere "C" nella prima posizione seguita da i primi 5 caratteri del codice di terze parti.
UseNotifications =Utilizzare le notifiche UseNotifications =Utilizzare le notifiche
NotificationsDesc =Notifiche funzione consente di inviare in silenzio automatico della posta, per alcuni Dolibarr eventi, alle imprese che sono configurati per NotificationsDesc =Notifiche funzione consente di inviare in silenzio automatico della posta, per alcuni Dolibarr eventi, alle imprese che sono configurati per
##### Webcal setup ##### ##### Webcal setup #####
WebCalSetup =Impostazioni collegamento Webcalendar WebCalSetup =Impostazioni collegamento Webcalendar
WebCalSyncro =Aggiungi Dolibarr eventi di WebCalendar WebCalSyncro =Aggiungi Dolibarr eventi di WebCalendar
WebCalAllways =Tutti i giorni, non chiedendo WebCalAllways =Tutti i giorni, non chiedendo
WebCalYesByDefault =Su richiesta (sì per impostazione predefinita) WebCalYesByDefault =Su richiesta (s<EFBFBD> per impostazione predefinita)
WebCalNoByDefault =Su richiesta (non di default) WebCalNoByDefault =Su richiesta (non di default)
WebCalNever =Mai WebCalNever =Mai
WebCalURL =URL di accesso per il calendario WebCalURL =URL di accesso per il calendario
@ -626,15 +629,15 @@ WebCalSetupSaved =Webcalendar setup salvato con successo.
WebCalTestOk =Connessione al server ' %s' sulla base di dati' %s' con l'utente ' %s' successo. WebCalTestOk =Connessione al server ' %s' sulla base di dati' %s' con l'utente ' %s' successo.
WebCalTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto. WebCalTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto.
WebCalTestKo2 =Connessione al server ' %s' con l'utente' %s' fallito. WebCalTestKo2 =Connessione al server ' %s' con l'utente' %s' fallito.
WebCalErrorConnectOkButWrongDatabase =Connessione dati è riuscito, ma non cercare di essere un Webcalendar database. WebCalErrorConnectOkButWrongDatabase =Connessione dati <EFBFBD> riuscito, ma non cercare di essere un Webcalendar database.
WebCalAddEventOnCreateActions =Aggiungi evento in calendario creare azioni WebCalAddEventOnCreateActions =Aggiungi evento in calendario creare azioni
WebCalAddEventOnCreateCompany =Aggiungi evento di calendario per le imprese creare WebCalAddEventOnCreateCompany =Aggiungi evento di calendario per le imprese creare
WebCalAddEventOnStatusPropal =Aggiungi evento in calendario commerciale proposte stato cambiamento WebCalAddEventOnStatusPropal =Aggiungi evento in calendario commerciale proposte stato cambiamento
WebCalAddEventOnStatusContract =Aggiungi il calendario evento sui contratti cambiamento di stato WebCalAddEventOnStatusContract =Aggiungi il calendario evento sui contratti cambiamento di stato
WebCalAddEventOnStatusBill =Aggiungi evento in calendario fatture cambiamento di stato WebCalAddEventOnStatusBill =Aggiungi evento in calendario fatture cambiamento di stato
WebCalAddEventOnStatusMember =Aggiungi evento in calendario membri cambiamento di stato WebCalAddEventOnStatusMember =Aggiungi evento in calendario membri cambiamento di stato
WebCalUrlForVCalExport =Un link per l'esportazione <b> %s </b> è disponibile al seguente link: %s WebCalUrlForVCalExport =Un link per l'esportazione <b> %s </b> <EFBFBD> disponibile al seguente link: %s
WebCalCheckWebcalSetup =Forse il webcal modulo di impostazione non è corretta. WebCalCheckWebcalSetup =Forse il webcal modulo di impostazione non <EFBFBD> corretta.
##### Invoices ##### ##### Invoices #####
BillsSetup =Impostazioni modulo fatture BillsSetup =Impostazioni modulo fatture
BillsDate =Data fatture BillsDate =Data fatture
@ -646,8 +649,8 @@ CreditNote =Nota di credito
CreditNotes =Note di credito CreditNotes =Note di credito
ForceInvoiceDate =Forza alla data della fattura la data di convalida ForceInvoiceDate =Forza alla data della fattura la data di convalida
DisableRepeatable =Disattiva fattura ripetibile DisableRepeatable =Disattiva fattura ripetibile
SuggestedPaymentModesIfNotDefinedInInvoice =Suggerire le modalità predefinite di pagamento delle fatture, se non già definite per la fattura SuggestedPaymentModesIfNotDefinedInInvoice =Suggerire le modalit<EFBFBD> predefinite di pagamento delle fatture, se non gi<67> definite per la fattura
EnableEditDeleteValidInvoice =Attiva la possibilità di modificare / cancellare una fattura valida senza pagamento EnableEditDeleteValidInvoice =Attiva la possibilit<EFBFBD> di modificare / cancellare una fattura valida senza pagamento
SuggestPaymentByRIBOnAccount =Suggerire il pagamento su conto bancario utilizzando le coordinate bancarie del conto SuggestPaymentByRIBOnAccount =Suggerire il pagamento su conto bancario utilizzando le coordinate bancarie del conto
SuggestPaymentByChequeToAddress =Suggerire il pagamento mediante assegno a SuggestPaymentByChequeToAddress =Suggerire il pagamento mediante assegno a
FreeLegalTextOnInvoices =Testo libero su fatture FreeLegalTextOnInvoices =Testo libero su fatture
@ -663,9 +666,9 @@ ProposalsPDFModules =Modelli di documenti per la proposta commerciale
ClassifiedInvoiced =Classificati fatturati ClassifiedInvoiced =Classificati fatturati
ClassifiedInvoicedWithOrder =Classifica proposta fatturata nello stesso momento dell'ordine ClassifiedInvoicedWithOrder =Classifica proposta fatturata nello stesso momento dell'ordine
HideTreadedPropal =Nascondi proposte commerciali trattate nella lista HideTreadedPropal =Nascondi proposte commerciali trattate nella lista
AddShippingDateAbility =Aggiungi la possibilità di inserire la data di spedizione AddShippingDateAbility =Aggiungi la possibilit<EFBFBD> di inserire la data di spedizione
AddDeliveryAddressAbility =Aggiungi la possibilità di inserire la data di consegna AddDeliveryAddressAbility =Aggiungi la possibilit<EFBFBD> di inserire la data di consegna
UseOptionLineIfNoQuantity =Una linea di prodotto / servizio con un importo pari a zero è considerato come una opzione UseOptionLineIfNoQuantity =Una linea di prodotto / servizio con un importo pari a zero <EFBFBD> considerato come una opzione
FreeLegalTextOnProposal =Testo libero su proposte commerciali FreeLegalTextOnProposal =Testo libero su proposte commerciali
WatermarkOnDraftProposal =Filigrana sulle bozze di proposte commerciali (nessuna se vuota) WatermarkOnDraftProposal =Filigrana sulle bozze di proposte commerciali (nessuna se vuota)
##### Orders ##### ##### Orders #####
@ -682,7 +685,7 @@ TemplatePDFInterventions =Intervento modelli di carta di documenti
WatermarkOnDraftInterventionCards =Filigrana su carta di documenti d'intervento (se qualsiasi vuoto) WatermarkOnDraftInterventionCards =Filigrana su carta di documenti d'intervento (se qualsiasi vuoto)
##### Clicktodial ##### ##### Clicktodial #####
ClickToDialSetup =Impostazioni modulo ClickToDial (clic per telefonare) ClickToDialSetup =Impostazioni modulo ClickToDial (clic per telefonare)
ClickToDialUrlDesc =Url chiamata quando un clic sul telefono picto è fatto. Dans l'url, vous pouvez utiliser les balises<br><b>%%1$s</b> qui sera remplacé par le téléphone de l'appelé<br><b>%%2$s</b> qui sera remplacé par le téléphone de l'appelant (le votre)<br><b>%%3$s</b> qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)<br><b>%%4$s</b> qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur). ClickToDialUrlDesc =Url chiamata quando un clic sul telefono picto <EFBFBD> fatto. Dans l'url, vous pouvez utiliser les balises<br><b>%%1$s</b> qui sera remplac<EFBFBD> par le t<>l<EFBFBD>phone de l'appel<65><br><b>%%2$s</b> qui sera remplac<61> par le t<>l<EFBFBD>phone de l'appelant (le votre)<br><b>%%3$s</b> qui sera remplac<61> par votre login clicktodial (d<>fini sur votre fiche utilisateur)<br><b>%%4$s</b> qui sera remplac<61> par votre mot de passe clicktodial (d<>fini sur votre fiche utilisateur).
##### Bookmark4u ##### ##### Bookmark4u #####
Bookmark4uSetup =Impostazioni modulo Bookmark4u Bookmark4uSetup =Impostazioni modulo Bookmark4u
##### Interventions ##### ##### Interventions #####
@ -762,8 +765,8 @@ LDAPBindOK =Collegare / Authentificate al server LDAP di successo (Ser
LDAPBindKO =Collegare / Authentificate al server LDAP non riuscita (Server LDAPBindKO =Collegare / Authentificate al server LDAP non riuscita (Server
LDAPUnbindSuccessfull =Scollegare successo LDAPUnbindSuccessfull =Scollegare successo
LDAPUnbindFailed =Scollegare non LDAPUnbindFailed =Scollegare non
LDAPConnectToDNSuccessfull =Connessione al DN ( %s) ri ¿½ ussie LDAPConnectToDNSuccessfull =Connessione al DN ( %s) ri <EFBFBD><EFBFBD> ussie
LDAPConnectToDNFailed =Connessione al DN ( %s) ¿½ ï ¿½ chouï e LDAPConnectToDNFailed =Connessione al DN ( %s) <EFBFBD><EFBFBD> <20> <20><> chou<6F> e
LDAPSetupForVersion3 =Server LDAP configurato per la versione 3 LDAPSetupForVersion3 =Server LDAP configurato per la versione 3
LDAPSetupForVersion2 =Server LDAP configurato per la versione 2 LDAPSetupForVersion2 =Server LDAP configurato per la versione 2
LDAPDolibarrMapping =Mappatura Dolibarr LDAPDolibarrMapping =Mappatura Dolibarr
@ -800,7 +803,7 @@ LDAPFieldAddress =Street
LDAPFieldAddressExample =Esempio: strada LDAPFieldAddressExample =Esempio: strada
LDAPFieldZip =Zip LDAPFieldZip =Zip
LDAPFieldZipExample =Esempio: postalcode LDAPFieldZipExample =Esempio: postalcode
LDAPFieldTown =Città LDAPFieldTown =Citt<EFBFBD>
LDAPFieldTownExample =Esempio: l LDAPFieldTownExample =Esempio: l
LDAPFieldCountry =Paese LDAPFieldCountry =Paese
LDAPFieldCountryExample =Esempio: c LDAPFieldCountryExample =Esempio: c
@ -808,14 +811,14 @@ LDAPFieldDescription =Descrizione
LDAPFieldDescriptionExample =Esempio: descrizione LDAPFieldDescriptionExample =Esempio: descrizione
LDAPFieldBirthdate =Data di nascita LDAPFieldBirthdate =Data di nascita
LDAPFieldBirthdateExample =Esempio: LDAPFieldBirthdateExample =Esempio:
LDAPFieldCompany =Società LDAPFieldCompany =Societ<EFBFBD>
LDAPFieldCompanyExample =Esempio: o LDAPFieldCompanyExample =Esempio: o
LDAPFieldSid =SID LDAPFieldSid =SID
LDAPFieldSidExample =Esempio: objectSid LDAPFieldSidExample =Esempio: objectSid
LDAPFieldEndLastSubscription =Data di fine abbonamento LDAPFieldEndLastSubscription =Data di fine abbonamento
LDAPParametersAreStillHardCoded =LDAP parametri sono ancora hardcoded (a contatto classe) LDAPParametersAreStillHardCoded =LDAP parametri sono ancora hardcoded (a contatto classe)
LDAPSetupNotComplete =Impostazione LDAP non completo (vai su altre schede) LDAPSetupNotComplete =Impostazione LDAP non completo (vai su altre schede)
LDAPNoUserOrPasswordProvidedAccessIsReadOnly =Nessun amministratore o la password forniti. LDAP accesso saranno anonime e in modalità di sola lettura. LDAPNoUserOrPasswordProvidedAccessIsReadOnly =Nessun amministratore o la password forniti. LDAP accesso saranno anonime e in modalit<EFBFBD> di sola lettura.
LDAPDescContact =Questa pagina consente di definire gli attributi LDAP LDAP nel nome di albero per ogni dati disponibili sul Dolibarr contatti. LDAPDescContact =Questa pagina consente di definire gli attributi LDAP LDAP nel nome di albero per ogni dati disponibili sul Dolibarr contatti.
LDAPDescUsers =Questa pagina consente di definire gli attributi LDAP LDAP nel nome di albero per ogni dati disponibili sul Dolibarr utenti. LDAPDescUsers =Questa pagina consente di definire gli attributi LDAP LDAP nel nome di albero per ogni dati disponibili sul Dolibarr utenti.
LDAPDescGroups =Questa pagina consente di definire gli attributi LDAP LDAP nel nome di albero per ogni dati disponibili sul Dolibarr gruppi. LDAPDescGroups =Questa pagina consente di definire gli attributi LDAP LDAP nel nome di albero per ogni dati disponibili sul Dolibarr gruppi.
@ -839,7 +842,7 @@ SyslogFacility =Facility
SyslogLevel =Livello SyslogLevel =Livello
SyslogSimpleFile =File SyslogSimpleFile =File
SyslogFilename =Nome file e percorso SyslogFilename =Nome file e percorso
ErrorUnknownSyslogConstant =Costante %s non è un noto syslog costante ErrorUnknownSyslogConstant =Costante %s non <EFBFBD> un noto syslog costante
##### Donations ##### ##### Donations #####
DonationsSetup =Impostazioni modulo Donazione DonationsSetup =Impostazioni modulo Donazione
##### Barcode ##### ##### Barcode #####
@ -871,7 +874,7 @@ NotificationEMailFrom =Mittente e-mail (Da) per le email inviate per le
SendingsSetup =Impostazione del modulo di consegna SendingsSetup =Impostazione del modulo di consegna
SendingsReceiptModel =Modello di ricevuta consegna (D.D.T. ex bolla?) SendingsReceiptModel =Modello di ricevuta consegna (D.D.T. ex bolla?)
SendingsAbility =Supporto per fogli di consegna per le spedizioni ai clienti SendingsAbility =Supporto per fogli di consegna per le spedizioni ai clienti
NoNeedForDeliveryReceipts =Nella maggior parte dei casi, le spedizioni entrate sono utilizzate sia come fogli di consegne per il cliente (elenco dei prodotti per l'invio) e fogli che è recevied e firmata dal cliente. Quindi, le consegne ricevute prodotto è un duplicato caratteristica e raramente è attivato. NoNeedForDeliveryReceipts =Nella maggior parte dei casi, le spedizioni entrate sono utilizzate sia come fogli di consegne per il cliente (elenco dei prodotti per l'invio) e fogli che <EFBFBD> recevied e firmata dal cliente. Quindi, le consegne ricevute prodotto <20> un duplicato caratteristica e raramente <20> attivato.
##### Deliveries ##### ##### Deliveries #####
DeliveryOrderNumberingModules =Prodotti consegne ricevimento del modulo di numerazione DeliveryOrderNumberingModules =Prodotti consegne ricevimento del modulo di numerazione
DeliveryOrderModel =Prodotti consegne ricevimento modello DeliveryOrderModel =Prodotti consegne ricevimento modello
@ -879,14 +882,14 @@ DeliveriesOrderAbility =Supporto prodotti consegne ricevute
##### FCKeditor ##### ##### FCKeditor #####
ActivateFCKeditor =Attiva FCKeditor per: ActivateFCKeditor =Attiva FCKeditor per:
FCKeditorForUsers =WYSIWIG creazione / edizione di utenti 'alla designazione e alla nota FCKeditorForUsers =WYSIWIG creazione / edizione di utenti 'alla designazione e alla nota
FCKeditorForCompany =WYSIWIG creazione / edizione di società 'alla designazione e alla nota FCKeditorForCompany =WYSIWIG creazione / edizione di societ<EFBFBD> 'alla designazione e alla nota
FCKeditorForProduct =WYSIWIG creazione / edizione di prodotti / servizi 'alla designazione e alla nota FCKeditorForProduct =WYSIWIG creazione / edizione di prodotti / servizi 'alla designazione e alla nota
FCKeditorForMembers =WYSIWIG creazione / edizione dei membri 'descrizione e nota FCKeditorForMembers =WYSIWIG creazione / edizione dei membri 'descrizione e nota
FCKeditorForProductDetails =WYSIWIG creazione / edizione di prodotti di dettagli le linee per tutti i soggetti (proposte, ordini, fatture, ecc ..) FCKeditorForProductDetails =WYSIWIG creazione / edizione di prodotti di dettagli le linee per tutti i soggetti (proposte, ordini, fatture, ecc ..)
FCKeditorForProductDetailsPerso =WYSIWIG creazione / edizione di prodotti di dettagli personalizzati linee per tutti i soggetti (proposte, ordini, fatture, ecc ..) FCKeditorForProductDetailsPerso =WYSIWIG creazione / edizione di prodotti di dettagli personalizzati linee per tutti i soggetti (proposte, ordini, fatture, ecc ..)
FCKeditorForMailing =WYSIWIG creazione / edizione di invii FCKeditorForMailing =WYSIWIG creazione / edizione di invii
##### OSCommerce 1 ##### ##### OSCommerce 1 #####
OSCommerceErrorConnectOkButWrongDatabase =Connessione dati è riuscito, ma non cercare di essere un database di osCommerce. OSCommerceErrorConnectOkButWrongDatabase =Connessione dati <EFBFBD> riuscito, ma non cercare di essere un database di osCommerce.
OSCommerceTestOk =Connessione al server ' %s' sulla base di dati' %s' con l'utente ' %s' successo. OSCommerceTestOk =Connessione al server ' %s' sulla base di dati' %s' con l'utente ' %s' successo.
OSCommerceTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto. OSCommerceTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto.
OSCommerceTestKo2 =Connessione al server ' %s' con l'utente' %s' fallito. OSCommerceTestKo2 =Connessione al server ' %s' con l'utente' %s' fallito.
@ -900,7 +903,7 @@ MantisSetupSaved =Mantis setup salvato con successo.
MantisTestOk =Connessione al server ' %s' sulla base di dati' %s' con l'utente ' %s' successo. MantisTestOk =Connessione al server ' %s' sulla base di dati' %s' con l'utente ' %s' successo.
MantisTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto. MantisTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto.
MantisTestKo2 =Connessione al server ' %s' con l'utente' %s' fallito. MantisTestKo2 =Connessione al server ' %s' con l'utente' %s' fallito.
MantisErrorConnectOkButWrongDatabase =Connessione dati è riuscito, ma non cercare di essere un database di Mantis. MantisErrorConnectOkButWrongDatabase =Connessione dati <EFBFBD> riuscito, ma non cercare di essere un database di Mantis.
##### Stock ##### ##### Stock #####
StockSetup =Configurazione del modulo di magazzino StockSetup =Configurazione del modulo di magazzino
UserWarehouse =Usa utente stock personali UserWarehouse =Usa utente stock personali
@ -933,11 +936,11 @@ DeleteLine =Elimina riga
ConfirmDeleteLine =Sei sicuro di voler eliminare questa riga ? ConfirmDeleteLine =Sei sicuro di voler eliminare questa riga ?
##### Tax ##### ##### Tax #####
TaxSetup =Taxes, social contributions and dividends module setup TaxSetup =Taxes, social contributions and dividends module setup
OptionVatMode =Option d'exigibilité de TVA OptionVatMode =Option d'exigibilit<EFBFBD> de TVA
OptionVATDefault =Standard OptionVATDefault =Standard
OptionVATDebitOption =Option services sur debit OptionVATDebitOption =Option services sur debit
OptionVatDefaultDesc =L'exigibilité de la TVA est:<br>- sur livraison pour les biens<br>- sur paiement pour les services OptionVatDefaultDesc =L'exigibilit<EFBFBD> de la TVA est:<br>- sur livraison pour les biens<br>- sur paiement pour les services
OptionVatDebitOptionDesc =L'exigibilité de la TVA est:<br>- sur livraison pour les biens<br>- sur facturation (d�bit) pour les services OptionVatDebitOptionDesc =L'exigibilit<EFBFBD> de la TVA est:<br>- sur livraison pour les biens<br>- sur facturation (d<>bit) pour les services
##### Agenda ##### ##### Agenda #####
AgendaSetup =Actions and agenda module setup AgendaSetup =Actions and agenda module setup
PasswordTogetVCalExport =Key to authorize export link PasswordTogetVCalExport =Key to authorize export link
@ -967,25 +970,25 @@ UMask=Parametro umask per i nuovi file su Unix / Linux / BSD file di sistema.
UMaskExplanation=Questo parametro consente di definire i permessi impostati di default per i file creati da Dolibarr sul server (per esempio durante il caricamento). <br> Esso deve essere il valore ottale (per esempio, 0.666 mezzi di lettura e scrittura per tutti). <br> Ce ne paramtre insert pas sous un server Windows. UMaskExplanation=Questo parametro consente di definire i permessi impostati di default per i file creati da Dolibarr sul server (per esempio durante il caricamento). <br> Esso deve essere il valore ottale (per esempio, 0.666 mezzi di lettura e scrittura per tutti). <br> Ce ne paramtre insert pas sous un server Windows.
Module50100Name=Cassa Module50100Name=Cassa
Module50100Desc=Cassa modulo Module50100Desc=Cassa modulo
VATIsUsedDesc=The VAT rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is subjected to VAT, then VAT by default=0. End of rule.<br>If the (selling country = buying country), then the VAT by default=VAT of the product in the selling country. End of rule. <br>If seller and buyer in the European Community and goods are sold having new means of transport (car, ship, plane), the default VAT=0 ( The VAT should be paid by the buyer at the customoffice of his country and not at the seller). End of rule.<br>If seller and buyer in the European Community and goods sold by other means rather than new means of transport, then the VAT by default=VAT of product sold. End of rule.<br>Else the proposed default VAT=L&#39;aliquota IVA per impostazione predefinita durante la creazione di prospettive, fatture, ordini, ecc seguire la regola standard attivi: <br> Se il venditore è soggetto ad IVA, quindi l&#39;IVA di default = 0. Fine della regola. <br> Se la (vendita paese = paese di acquisto), quindi l&#39;IVA di default = IVA del prodotto nel paese di vendita. Fine della regola. <br> Se il venditore e l&#39;acquirente nella Comunità europea e le merci sono vendute avere nuovi mezzi di trasporto (auto, nave, aereo), il default IVA = 0 (L&#39;IVA deve essere pagato dal compratore al customoffice del suo paese e non a carico del venditore ). Fine della regola. <br> Se il venditore e l&#39;acquirente nella Comunità europea e dei beni venduti da altri mezzi, piuttosto che i nuovi mezzi di trasporto, quindi l&#39;IVA di default = IVA del prodotto venduto. Fine della regola. <br> Altre proposte di default IVA = 1. Fine della regola. VATIsUsedDesc=The VAT rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is subjected to VAT, then VAT by default=0. End of rule.<br>If the (selling country = buying country), then the VAT by default=VAT of the product in the selling country. End of rule. <br>If seller and buyer in the European Community and goods are sold having new means of transport (car, ship, plane), the default VAT=0 ( The VAT should be paid by the buyer at the customoffice of his country and not at the seller). End of rule.<br>If seller and buyer in the European Community and goods sold by other means rather than new means of transport, then the VAT by default=VAT of product sold. End of rule.<br>Else the proposed default VAT=L&#39;aliquota IVA per impostazione predefinita durante la creazione di prospettive, fatture, ordini, ecc seguire la regola standard attivi: <br> Se il venditore <EFBFBD> soggetto ad IVA, quindi l&#39;IVA di default = 0. Fine della regola. <br> Se la (vendita paese = paese di acquisto), quindi l&#39;IVA di default = IVA del prodotto nel paese di vendita. Fine della regola. <br> Se il venditore e l&#39;acquirente nella Comunit<EFBFBD> europea e le merci sono vendute avere nuovi mezzi di trasporto (auto, nave, aereo), il default IVA = 0 (L&#39;IVA deve essere pagato dal compratore al customoffice del suo paese e non a carico del venditore ). Fine della regola. <br> Se il venditore e l&#39;acquirente nella Comunit<EFBFBD> europea e dei beni venduti da altri mezzi, piuttosto che i nuovi mezzi di trasporto, quindi l&#39;IVA di default = IVA del prodotto venduto. Fine della regola. <br> Altre proposte di default IVA = 1. Fine della regola.
UpdateRequired=Your system needs to be updated. To do this, click on <a href=Il sistema deve essere aggiornato. Per effettuare questa operazione, fare clic su <a href="%s">Aggiorna ora.</a> UpdateRequired=Your system needs to be updated. To do this, click on <a href=Il sistema deve essere aggiornato. Per effettuare questa operazione, fare clic su <a href="%s">Aggiorna ora.</a>
AvailableModules=Moduli disponibili AvailableModules=Moduli disponibili
ToActivateModule=Per attivare i moduli, andare su Setup. ToActivateModule=Per attivare i moduli, andare su Setup.
SessionTimeOut=Tempo per sessione SessionTimeOut=Tempo per sessione
SessionExplanation=Questo numero di garanzia che non sarà mai sessione scade prima di questo ritardo. Ma PHP sessoin di gestione non è sempre garanzia che sessione scade dopo questo ritardo: Questo si verifica se un sistema per la pulizia della cache di sessione è in esecuzione. <br> Nota: con particolare sistema interno PHP processo pulito ogni sessione <b>su% s /% s</b> di accesso, ma solo durante l&#39;accesso da altre sessioni. SessionExplanation=Questo numero di garanzia che non sar<EFBFBD> mai sessione scade prima di questo ritardo. Ma PHP sessoin di gestione non <20> sempre garanzia che sessione scade dopo questo ritardo: Questo si verifica se un sistema per la pulizia della cache di sessione <EFBFBD> in esecuzione. <br> Nota: con particolare sistema interno PHP processo pulito ogni sessione <b>su% s /% s</b> di accesso, ma solo durante l&#39;accesso da altre sessioni.
MAIN_DISABLE_PDF_COMPRESSION=PDF Usa la compressione per i file PDF generati. MAIN_DISABLE_PDF_COMPRESSION=PDF Usa la compressione per i file PDF generati.
SeeLocalSendMailSetup=Consultare il locale di installazione di sendmail SeeLocalSendMailSetup=Consultare il locale di installazione di sendmail
PasswordGenerationStandard=Torna una password generata in base al Dolibarr algoritmo interno: 8 caratteri contenenti condivisa numeri e caratteri in minuscolo. PasswordGenerationStandard=Torna una password generata in base al Dolibarr algoritmo interno: 8 caratteri contenenti condivisa numeri e caratteri in minuscolo.
PasswordGenerationNone=Non suggerire eventuali password generata. La password deve essere di tipo manuale. PasswordGenerationNone=Non suggerire eventuali password generata. La password deve essere di tipo manuale.
ClickToDialUrlDesc=Url called when a click on phone picto is done.<br>Complete url will be: URL?login=...&password=...&caller=...&called=Url chiamata quando un clic sul telefono cellulare picto è fatto. <br> URL completo sarà: URL?login=...&password=...&caller=...&called=phonecalled ClickToDialUrlDesc=Url called when a click on phone picto is done.<br>Complete url will be: URL?login=...&password=...&caller=...&called=Url chiamata quando un clic sul telefono cellulare picto <EFBFBD> fatto. <br> URL completo sar<61>: URL?login=...&password=...&caller=...&called=phonecalled
MemberSendInformationByMailByDefault=Checkbox per inviare una mail di conferma per i membri è attivata per impostazione predefinita MemberSendInformationByMailByDefault=Checkbox per inviare una mail di conferma per i membri <EFBFBD> attivata per impostazione predefinita
LDAPAdminDnExample=Complete DN (ex: cn=adminldap,dc=society,dc=DN completo (ad esempio: cn = adminldap, dc = società, dc = it) LDAPAdminDnExample=Complete DN (ex: cn=adminldap,dc=society,dc=DN completo (ad esempio: cn = adminldap, dc = societ<EFBFBD>, dc = it)
LDAPUserDnExample=Complete DN (ex: ou=users,dc=society,dc=DN completo (es: ou = utenti, dc = società, dc = it) LDAPUserDnExample=Complete DN (ex: ou=users,dc=society,dc=DN completo (es: ou = utenti, dc = societ<EFBFBD>, dc = it)
LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=society,dc=DN completo (es: ou = gruppo, dc = società, dc = it) LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=society,dc=DN completo (es: ou = gruppo, dc = societ<EFBFBD>, dc = it)
LDAPServerDnExample=Complete DN (ex: dc=company,dc=DN completo (ad esempio: dc = azienda, dc = it) LDAPServerDnExample=Complete DN (ex: dc=company,dc=DN completo (ad esempio: dc = azienda, dc = it)
LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=society,dc=DN completo (es: ou = contatti, dc = società, dc = it) LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=society,dc=DN completo (es: ou = contatti, dc = societ<EFBFBD>, dc = it)
LDAPMemberDnExample=Complete DN (ex: ou=members,dc=society,dc=DN completo (es: ou = membri, dc = società, dc = it) LDAPMemberDnExample=Complete DN (ex: ou=members,dc=society,dc=DN completo (es: ou = membri, dc = societ<EFBFBD>, dc = it)
LDAPMemberTypeDnExample=Complete DN (ex: ou=type_members,dc=society,dc=DN completo (es: ou = type_members, dc = società, dc = it) LDAPMemberTypeDnExample=Complete DN (ex: ou=type_members,dc=society,dc=DN completo (es: ou = type_members, dc = societ<EFBFBD>, dc = it)
LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP connettersi a server LDAP di successo (= Server% s, Port =% s) LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP connettersi a server LDAP di successo (= Server% s, Port =% s)
LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP connettersi a server LDAP fallito (% s = Server, Port =% s) LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP connettersi a server LDAP fallito (% s = Server, Port =% s)
LDAPBindOK=Connect/Authentificate to LDAP server sucessfull (Server=%s, Port=%s, Admin=%s, Password=Collegare / Authentificate al server LDAP successo (= Server% s, Port =% s,% s = Admin, password =% s) LDAPBindOK=Connect/Authentificate to LDAP server sucessfull (Server=%s, Port=%s, Admin=%s, Password=Collegare / Authentificate al server LDAP successo (= Server% s, Port =% s,% s = Admin, password =% s)

View File

@ -323,11 +323,10 @@ Permission24=Godkjenne tilbud
Permission25=Sende tilbud Permission25=Sende tilbud
Permission26=Lukke tilbud Permission26=Lukke tilbud
Permission27=Slette tilbud Permission27=Slette tilbud
Permission31=Vise produkter/tjenester Permission31=Vise produkter
Permission32=Lage/endre produkter/tjenester Permission32=Lage/endre produkter
Permission33=Command produkter/tjenester Permission34=Slette produkter
Permission34=Slette produkter/tjenester Permission38=Eksportere produkter
Permission36=Eksportere produkter/tjenester
Permission41=Vise prosjekter Permission41=Vise prosjekter
Permission42=Lage/endre prosjekter Permission42=Lage/endre prosjekter
Permission44=Slette prosjekter Permission44=Slette prosjekter
@ -422,6 +421,10 @@ Permission401=Vise rabatter
Permission402=Lage/endre rabatter Permission402=Lage/endre rabatter
Permission403=Godkjenne rabatter Permission403=Godkjenne rabatter
Permission404=Slette rabatter Permission404=Slette rabatter
Permission31=Vise tjenester
Permission32=Lage/endre tjenester
Permission34=Slette tjenester
Permission38=Eksportere tjenester
Permission700=Vise donasjoner Permission700=Vise donasjoner
Permission701=Lage/endre donasjoner Permission701=Lage/endre donasjoner
Permission702=Slette donasjoner Permission702=Slette donasjoner

View File

@ -1397,6 +1397,10 @@ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='',
{ {
if (! $user->rights->societe->contact->lire) $readok=0; if (! $user->rights->societe->contact->lire) $readok=0;
} }
else if ($feature == 'produit|service')
{
if (! $user->rights->produit->lire && ! $user->rights->service->lire) $readok=0;
}
else if ($feature == 'prelevement') else if ($feature == 'prelevement')
{ {
if (! $user->rights->prelevement->bons->lire) $readok=0; if (! $user->rights->prelevement->bons->lire) $readok=0;
@ -1440,6 +1444,10 @@ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='',
{ {
if (! $user->rights->societe->contact->creer) $createok=0; if (! $user->rights->societe->contact->creer) $createok=0;
} }
else if ($feature == 'produit|service')
{
if (! $user->rights->produit->creer && ! $user->rights->service->creer) $createok=0;
}
else if ($feature == 'prelevement') else if ($feature == 'prelevement')
{ {
if (! $user->rights->prelevement->bons->creer) $createok=0; if (! $user->rights->prelevement->bons->creer) $createok=0;
@ -1479,7 +1487,7 @@ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='',
if (empty($dbtablename)) $dbtablename = $feature; if (empty($dbtablename)) $dbtablename = $feature;
// Check permission for object with entity // Check permission for object with entity
if ($feature == 'user' || $feature == 'usergroup' || $feature == 'produit') if ($feature == 'user' || $feature == 'usergroup' || $feature == 'produit' || $feature == 'service' || $feature == 'produit|service')
{ {
$sql = "SELECT dbt.".$dbt_select; $sql = "SELECT dbt.".$dbt_select;
$sql.= " FROM ".MAIN_DB_PREFIX.$dbtablename." as dbt"; $sql.= " FROM ".MAIN_DB_PREFIX.$dbtablename." as dbt";

View File

@ -31,7 +31,7 @@ require("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT."/includes/modules/livraison/modules_livraison.php"); require_once(DOL_DOCUMENT_ROOT."/includes/modules/livraison/modules_livraison.php");
require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php"); require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php");
require_once(DOL_DOCUMENT_ROOT."/lib/sendings.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/sendings.lib.php");
if ($conf->produit->enabled) require_once(DOL_DOCUMENT_ROOT."/product.class.php"); if ($conf->produit->enabled || $conf->service->enabled) require_once(DOL_DOCUMENT_ROOT."/product.class.php");
if ($conf->expedition_bon->enabled) require_once(DOL_DOCUMENT_ROOT."/expedition/expedition.class.php"); if ($conf->expedition_bon->enabled) require_once(DOL_DOCUMENT_ROOT."/expedition/expedition.class.php");
if ($conf->stock->enabled) require_once(DOL_DOCUMENT_ROOT."/product/stock/entrepot.class.php"); if ($conf->stock->enabled) require_once(DOL_DOCUMENT_ROOT."/product/stock/entrepot.class.php");

View File

@ -925,7 +925,8 @@ function left_menu($menu_array, $helppagename='', $moresearchform='')
img_object('','contact').' '.$langs->trans("Contacts"), 'contact', 'contactname'); img_object('','contact').' '.$langs->trans("Contacts"), 'contact', 'contactname');
} }
if (($conf->produit->enabled || $conf->service->enabled) && $conf->global->MAIN_SEARCHFORM_PRODUITSERVICE && $user->rights->produit->lire) if ((($conf->produit->enabled && $user->rights->produit->lire) || ($conf->service->enabled && $user->rights->service->lire))
&& $conf->global->MAIN_SEARCHFORM_PRODUITSERVICE)
{ {
$langs->load("products"); $langs->load("products");
$searchform.=printSearchForm(DOL_URL_ROOT.'/product/liste.php', DOL_URL_ROOT.'/product/index.php', $searchform.=printSearchForm(DOL_URL_ROOT.'/product/liste.php', DOL_URL_ROOT.'/product/index.php',

View File

@ -29,148 +29,147 @@ llxHeader();
if ($action == '' && !$cancel) { if ($action == '' && !$cancel) {
if ($_GET['custid']) if ($_GET['custid'])
{ {
$osc_cust = new Osc_customer($db, $_GET['custid']); $osc_cust = new Osc_customer($db, $_GET['custid']);
$result = $osc_cust->fetch($_GET['custid']); $result = $osc_cust->fetch($_GET['custid']);
if ( !$result) if ( !$result)
{ {
print '<div class="titre">Fiche client OSC : '.$osc_cust->osc_custfirstname.' '.$osc_cust->osc_custlastname.'</div><br>'; print '<div class="titre">Fiche client OSC : '.$osc_cust->osc_custfirstname.' '.$osc_cust->osc_custlastname.'</div><br>';
print '<table border="1" width="100%" cellspacing="0" cellpadding="4">'; print '<table border="1" width="100%" cellspacing="0" cellpadding="4">';
print '<tr></tr><td width="20%">Ville</td><td width="80%">'.$osc_cust->osc_custcity.'</td></tr>'; print '<tr></tr><td width="20%">Ville</td><td width="80%">'.$osc_cust->osc_custcity.'</td></tr>';
print '<tr></tr><td width="20%">Pays</td><td width="80%">'.$osc_cust->osc_custcountry.'</td></tr>'; print '<tr></tr><td width="20%">Pays</td><td width="80%">'.$osc_cust->osc_custcountry.'</td></tr>';
print '<tr></tr><td width="20%">Id OSC</td><td width="80%">'.$osc_cust->osc_custid.'</td></tr>'; print '<tr></tr><td width="20%">Id OSC</td><td width="80%">'.$osc_cust->osc_custid.'</td></tr>';
print '<tr></tr><td width="20%">Téléphone</td><td width="80%">'.$osc_cust->osc_custtel.'</td></tr>'; print '<tr></tr><td width="20%">T<>l<EFBFBD>phone</td><td width="80%">'.$osc_cust->osc_custtel.'</td></tr>';
print '<tr></tr><td width="20%">E-mail</td><td width="80%">'.$osc_cust->osc_custmail.'</td></tr>'; print '<tr></tr><td width="20%">E-mail</td><td width="80%">'.$osc_cust->osc_custmail.'</td></tr>';
print "</table>"; print "</table>";
/* ************************************************************************** */ /* ************************************************************************** */
/* */ /* */
/* Barre d'action */ /* Barre d'action */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
print "\n<div class=\"tabsAction\">\n"; print "\n<div class=\"tabsAction\">\n";
if ( $user->rights->societe->creer) { if ( $user->rights->societe->creer) {
print '<a class="butAction" href="fiche.php?action=import&amp;custid='.$osc_cust->osc_custid.'">'.$langs->trans("Import").'</a>'; print '<a class="butAction" href="fiche.php?action=import&amp;custid='.$osc_cust->osc_custid.'">'.$langs->trans("Import").'</a>';
} }
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>'; print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n"; print "\n</div><br>\n";
// seule action importer // seule action importer
} }
else else
{
print "\n<div class=\"tabsAction\">\n";
print "<p>ERROR 1c</p>\n";
dol_print_error('',"erreur webservice ".$osc_cust->error);
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n";
}
}
else
{
print "\n<div class=\"tabsAction\">\n";
print "<p>ERROR 1b</p>\n";
print "Error";
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n";
}
}
/* action Import création de l'objet product de dolibarr
*
*/
if (($_GET["action"] == 'import' ) && ( $_GET["custid"] != '' ) && $user->rights->produit->creer)
{
$osc_cust = new Osc_customer($db, $_GET['custid']);
$result = $osc_cust->fetch($_GET['custid']);
if ( !$result )
{
$societe = new Societe($db);
if ($_error == 1)
{
print "\n<div class=\"tabsAction\">\n";
print '<br>erreur 1</br>';
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n";
}
/* initialisation */
$societe->nom = $osc_cust->osc_custsoc.' '.$osc_cust->osc_custlastname;
$societe->adresse = $osc_cust->osc_cutstreet;
$societe->cp = $osc_cust->osc_custpostcode;
$societe->ville = $osc_cust->osc_custcity;
$societe->departement_id = 0;
$societe->pays_code = $osc_cust->osc_custcodecountry;
$societe->tel = $osc_cust->osc_custtel;
$societe->fax = $osc_cust->osc_custfax;
$societe->email = $osc_cust->osc_custmail;
/* on force */
$societe->url = '';
$societe->siren = '';
$societe->siret = '';
$societe->ape = '';
$societe->client = 1; // mettre 0 si prospect
}
/* utilisation de la table de transco*/
if ($osc_cust->get_clientid($osc_cust->osc_custid)>0)
{ {
print "\n<div class=\"tabsAction\">\n"; print "\n<div class=\"tabsAction\">\n";
print '<p>Ce client existe déjà mise à jour à prévoir</p>'; print "<p>ERROR 1c</p>\n";
dol_print_error('',"erreur webservice ".$osc_cust->error);
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>'; print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n"; print "\n</div><br>\n";
} }
else { }
$id = $societe->create($user); else
{
print "\n<div class=\"tabsAction\">\n";
print "<p>ERROR 1b</p>\n";
print "Error";
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n";
}
}
if ($id == 0) /* action Import creation de l'objet product de dolibarr
{ */
print "\n<div class=\"tabsAction\">\n"; if (($_GET["action"] == 'import' ) && ( $_GET["custid"] != '' ) && ($user->rights->produit->creer || $user->rights->service->creer))
print '<p>création réussie nouveau client/prospect : '.$societe->nom; {
$res = $osc_cust->transcode($osc_cust->osc_custid,$societe->id); $osc_cust = new Osc_customer($db, $_GET['custid']);
print ' : Id Dolibarr '.$societe->id.' , Id osc : '.$osc_cust->osc_custid.'</p>'; $result = $osc_cust->fetch($_GET['custid']);
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n"; if ( !$result )
} {
else $societe = new Societe($db);
{ if ($_error == 1)
if ($id == -3) {
{ print "\n<div class=\"tabsAction\">\n";
$_error = 1; print '<br>erreur 1</br>';
$_GET["action"] = "create"; print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
$_GET["type"] = $_POST["type"]; print "\n</div><br>\n";
} }
if ($id == -2)
/* initialisation */
$societe->nom = $osc_cust->osc_custsoc.' '.$osc_cust->osc_custlastname;
$societe->adresse = $osc_cust->osc_cutstreet;
$societe->cp = $osc_cust->osc_custpostcode;
$societe->ville = $osc_cust->osc_custcity;
$societe->departement_id = 0;
$societe->pays_code = $osc_cust->osc_custcodecountry;
$societe->tel = $osc_cust->osc_custtel;
$societe->fax = $osc_cust->osc_custfax;
$societe->email = $osc_cust->osc_custmail;
/* on force */
$societe->url = '';
$societe->siren = '';
$societe->siret = '';
$societe->ape = '';
$societe->client = 1; // mettre 0 si prospect
}
/* utilisation de la table de transco*/
if ($osc_cust->get_clientid($osc_cust->osc_custid)>0)
{
print "\n<div class=\"tabsAction\">\n";
print '<p>Ce client existe d<>j<EFBFBD> mise <20> jour <20> pr<70>voir</p>';
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n";
}
else {
$id = $societe->create($user);
if ($id == 0)
{
print "\n<div class=\"tabsAction\">\n";
print '<p>cr<63>ation r<>ussie nouveau client/prospect : '.$societe->nom;
$res = $osc_cust->transcode($osc_cust->osc_custid,$societe->id);
print ' : Id Dolibarr '.$societe->id.' , Id osc : '.$osc_cust->osc_custid.'</p>';
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n";
}
else
{
if ($id == -3)
{
$_error = 1;
$_GET["action"] = "create";
$_GET["type"] = $_POST["type"];
}
if ($id == -2)
{
/* la r<>f<EFBFBD>rence existe on fait un update */
$societe_control = new Societe($db);
if ($_error == 1)
{ {
/* la référence existe on fait un update */ print "\n<div class=\"tabsAction\">\n";
$societe_control = new Societe($db); print '<br>erreur 1</br>';
if ($_error == 1) print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
{
print "\n<div class=\"tabsAction\">\n";
print '<br>erreur 1</br>';
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n"; print "\n</div><br>\n";
}
$idp = $societe_control->fetch($socid = $osc_cust->osc_ref);
if ($idp > 0)
{
$res = $societe->update($idp, $user);
if ($res < 0) print '<br>Erreur update '.$idp.'</br>';
$res = $osc_cust->transcode($osc_cust->custid,$idp );
if ($res < 0) print '<br>Erreur update '.$idp.'</br>';
}
else print '<br>update impossible $id : '.$idp.' </br>';
} }
} $idp = $societe_control->fetch($socid = $osc_cust->osc_ref);
}
} if ($idp > 0)
{
$res = $societe->update($idp, $user);
if ($res < 0) print '<br>Erreur update '.$idp.'</br>';
$res = $osc_cust->transcode($osc_cust->custid,$idp );
if ($res < 0) print '<br>Erreur update '.$idp.'</br>';
}
else print '<br>update impossible $id : '.$idp.' </br>';
}
}
}
}
llxFooter('$Date$ - $Revision$'); llxFooter('$Date$ - $Revision$');
?> ?>

View File

@ -50,19 +50,20 @@ if ($action == '' && !$cancel) {
/* ************************************************************************** */ /* ************************************************************************** */
print "\n<div class=\"tabsAction\">\n"; print "\n<div class=\"tabsAction\">\n";
if ( $user->rights->produit->creer) { if ($user->rights->produit->creer || $user->rights->service->creer)
print '<a class="butAction" href="fiche.php?action=import&amp;id='.$osc_prod->osc_id.'">'.$langs->trans("Import").'</a>'; {
} print '<a class="butAction" href="fiche.php?action=import&amp;id='.$osc_prod->osc_id.'">'.$langs->trans("Import").'</a>';
}
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>'; print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
print "\n</div><br>\n"; print "\n</div><br>\n";
// seule action importer // seule action importer
} }
else else
{ {
print "<p>ERROR 1</p>\n"; print "<p>ERROR 1</p>\n";
dol_print_error('',"erreur webservice ".$osc_prod->error); dol_print_error('',"erreur webservice ".$osc_prod->error);
} }
} }
else else
@ -71,11 +72,11 @@ if ($action == '' && !$cancel) {
print "Error"; print "Error";
} }
} }
/* action Import création de l'objet product de dolibarr /* action Import cr<EFBFBD>ation de l'objet product de dolibarr
* *
*/ */
if (($_GET["action"] == 'import' ) && ( $_GET["id"] != '' ) && $user->rights->produit->creer) if (($_GET["action"] == 'import' ) && ( $_GET["id"] != '' ) && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$osc_prod = new Osc_product($db, $_GET['id']); $osc_prod = new Osc_product($db, $_GET['id']);
$result = $osc_prod->fetch($_GET['id']); $result = $osc_prod->fetch($_GET['id']);
@ -99,7 +100,7 @@ if (($_GET["action"] == 'import' ) && ( $_GET["id"] != '' ) && $user->rights->pr
/* utilisation de la table de transco*/ /* utilisation de la table de transco*/
if ($osc_prod->get_productid($osc_prod->osc_id)>0) if ($osc_prod->get_productid($osc_prod->osc_id)>0)
{ {
print '<p>Ce produit existe déjà</p>'; print '<p>Ce produit existe d<EFBFBD>j<EFBFBD></p>';
} }
else else
{ {
@ -113,7 +114,7 @@ if (($_GET["action"] == 'import' ) && ( $_GET["id"] != '' ) && $user->rights->pr
$res = $prod->fetch($id); $res = $prod->fetch($id);
$prod->add_photo_web($conf->produit->dir_output,$osc_prod->osc_image); $prod->add_photo_web($conf->produit->dir_output,$osc_prod->osc_image);
print '<p>création réussie produit '.$id.' référence : '.$product->ref; print '<p>cr<EFBFBD>ation r<>ussie produit '.$id.' r<>f<EFBFBD>rence : '.$product->ref;
$res = $osc_prod->transcode($osc_prod->osc_id,$product->id); $res = $osc_prod->transcode($osc_prod->osc_id,$product->id);
print ' Id osc : '.$osc_prod->osc_id.'</p>'; print ' Id osc : '.$osc_prod->osc_id.'</p>';
@ -135,7 +136,7 @@ if (($_GET["action"] == 'import' ) && ( $_GET["id"] != '' ) && $user->rights->pr
} }
if ($id == -2) if ($id == -2)
{ {
/* la référence existe on fait un update */ /* la r<EFBFBD>f<EFBFBD>rence existe on fait un update */
$product_control = new Product($db); $product_control = new Product($db);
if ($_error == 1) if ($_error == 1)
{ {

View File

@ -61,7 +61,7 @@ function llxHeader($head = '', $title='', $help_url='')
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions")); $menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
} }
if (($conf->produit->enabled || $conf->service->enabled) && $user->rights->produit->lire) if (($conf->produit->enabled && $user->rights->produit->lire) || ($conf->service->enabled && $user->rights->service->lire))
{ {
$langs->load("products"); $langs->load("products");
$chaine=""; $chaine="";

View File

@ -40,7 +40,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
/* /*
* Actions * Actions

View File

@ -45,7 +45,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
// Get parameters // Get parameters
$page=$_GET["page"]; $page=$_GET["page"];
@ -77,7 +77,7 @@ $modulepart='produit';
if ($_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) if ($_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
/* /*
* Creation répertoire si n'existe pas * Creation r<EFBFBD>pertoire si n'existe pas
*/ */
if (! is_dir($upload_dir)) create_exdir($upload_dir); if (! is_dir($upload_dir)) create_exdir($upload_dir);
@ -90,7 +90,7 @@ if ($_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
} }
else else
{ {
// Echec transfert (fichier dépassant la limite ?) // Echec transfert (fichier d<EFBFBD>passant la limite ?)
$mesg = '<div class="error">'.$langs->trans("ErrorFileNotUploaded").'</div>'; $mesg = '<div class="error">'.$langs->trans("ErrorFileNotUploaded").'</div>';
// print_r($_FILES); // print_r($_FILES);
} }
@ -173,7 +173,7 @@ if ($product->id)
// Affiche formulaire upload // Affiche formulaire upload
$formfile=new FormFile($db); $formfile=new FormFile($db);
$formfile->form_attach_new_file(DOL_URL_ROOT.'/product/document.php?id='.$product->id,'',0,0,$user->rights->produit->creer); $formfile->form_attach_new_file(DOL_URL_ROOT.'/product/document.php?id='.$product->id,'',0,0,($user->rights->produit->creer||$user->rights->service->creer));
// List of document // List of document

View File

@ -47,7 +47,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';
@ -67,7 +67,7 @@ if ($_GET["action"] == 'fastappro')
// Add a product or service // Add a product or service
if ($_POST["action"] == 'add' && $user->rights->produit->creer) if ($_POST["action"] == 'add' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$error=0; $error=0;
@ -153,7 +153,7 @@ if ($_POST["action"] == 'add' && $user->rights->produit->creer)
} }
} }
// Update a product or service // Update a product or service
if ($_POST["action"] == 'update' && $user->rights->produit->creer) if ($_POST["action"] == 'update' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
if (! empty($_POST["cancel"])) if (! empty($_POST["cancel"]))
{ {
@ -219,7 +219,7 @@ if ($_POST["action"] == 'update' && $user->rights->produit->creer)
} }
// Action clone object // Action clone object
if ($_POST["action"] == 'confirm_clone' && $_POST['confirm'] == 'yes' && $user->rights->produit->creer) if ($_POST["action"] == 'confirm_clone' && $_POST['confirm'] == 'yes' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
if (empty($_REQUEST["clone_content"]) && empty($_REQUEST["clone_prices"])) if (empty($_REQUEST["clone_content"]) && empty($_REQUEST["clone_prices"]))
{ {
@ -566,7 +566,7 @@ $formproduct = new FormProduct($db);
/* /*
* Fiche création du produit * Fiche création du produit
*/ */
if ($_GET["action"] == 'create' && $user->rights->produit->creer) if ($_GET["action"] == 'create' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
if ($conf->global->PRODUCT_CANVAS_ABILITY) if ($conf->global->PRODUCT_CANVAS_ABILITY)
{ {
@ -1003,7 +1003,7 @@ if ($_GET["id"] || $_GET["ref"])
/* /*
* Fiche en mode edition * Fiche en mode edition
*/ */
if ($_GET["action"] == 'edit' && $user->rights->produit->creer) if ($_GET["action"] == 'edit' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
if ($product->isservice()) { if ($product->isservice()) {
print_fiche_titre($langs->trans('Modify').' '.$langs->trans('Service').' : '.$product->ref, ""); print_fiche_titre($langs->trans('Modify').' '.$langs->trans('Service').' : '.$product->ref, "");
@ -1175,7 +1175,7 @@ print "\n<div class=\"tabsAction\">\n";
if ($_GET["action"] == '') if ($_GET["action"] == '')
{ {
if ( $user->rights->produit->creer) if ($user->rights->produit->creer || $user->rights->service->creer)
{ {
if ($product->no_button_edit <> 1) if ($product->no_button_edit <> 1)
print '<a class="butAction" href="fiche.php?action=edit&amp;id='.$product->id.'">'.$langs->trans("Modify").'</a>'; print '<a class="butAction" href="fiche.php?action=edit&amp;id='.$product->id.'">'.$langs->trans("Modify").'</a>';

View File

@ -42,12 +42,12 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';
//Récupère le résultat de la recherche Ajax //R<EFBFBD>cup<EFBFBD>re le r<>sultat de la recherche Ajax
//Todo: voir pour le supprimer par la suite //Todo: voir pour le supprimer par la suite
if ($conf->use_javascript_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT && $_POST['id_fourn_id']) if ($conf->use_javascript_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT && $_POST['id_fourn_id'])
{ {
@ -235,7 +235,7 @@ if ($_GET["id"] || $_GET["ref"])
// Form to add or update a price // Form to add or update a price
if (($_GET["action"] == 'add_price' || $_POST["action"] == 'updateprice' )&& $user->rights->produit->creer) if (($_GET["action"] == 'add_price' || $_POST["action"] == 'updateprice' ) && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$langs->load("suppliers"); $langs->load("suppliers");
@ -318,7 +318,7 @@ if ($_GET["id"] || $_GET["ref"])
if ($_GET["action"] != 'add_price') { if ($_GET["action"] != 'add_price') {
if ($user->rights->produit->creer) if ($user->rights->produit->creer || $user->rights->service->creer)
{ {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$product->id.'&amp;action=add_price">'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$product->id.'&amp;action=add_price">';
print $langs->trans("AddSupplierPrice").'</a>'; print $langs->trans("AddSupplierPrice").'</a>';
@ -377,12 +377,12 @@ if ($_GET["id"] || $_GET["ref"])
// Fournisseur // Fournisseur
print '<td align="left">'.$objp->ref_fourn.'</td>'; print '<td align="left">'.$objp->ref_fourn.'</td>';
// Quantité // Quantit<EFBFBD>
print '<td align="center">'; print '<td align="center">';
print $objp->quantity; print $objp->quantity;
print '</td>'; print '</td>';
// Prix quantité // Prix quantit<EFBFBD>
print '<td align="right">'; print '<td align="right">';
print $objp->price?price($objp->price):""; print $objp->price?price($objp->price):"";
print '</td>'; print '</td>';
@ -394,7 +394,7 @@ if ($_GET["id"] || $_GET["ref"])
// Modifier-Supprimer // Modifier-Supprimer
print '<td align="center">'; print '<td align="center">';
if ($user->rights->produit->creer) if ($user->rights->produit->creer || $user->rights->service->creer)
{ {
print '<a href="fournisseurs.php?id='.$product->id.'&amp;socid='.$objp->socid.'&amp;action=add_price&amp;rowid='.$objp->rowid.'">'.img_edit()."</a>"; print '<a href="fournisseurs.php?id='.$product->id.'&amp;socid='.$objp->socid.'&amp;action=add_price&amp;rowid='.$objp->rowid.'">'.img_edit()."</a>";
print '<a href="fournisseurs.php?id='.$product->id.'&amp;socid='.$objp->socid.'&amp;action=remove_pf&amp;rowid='.$objp->rowid.'">'.img_picto($langs->trans("Remove"),'disable.png').'</a>'; print '<a href="fournisseurs.php?id='.$product->id.'&amp;socid='.$objp->socid.'&amp;action=remove_pf&amp;rowid='.$objp->rowid.'">'.img_picto($langs->trans("Remove"),'disable.png').'</a>';

View File

@ -28,7 +28,7 @@
require("./pre.inc.php"); require("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT.'/product.class.php'); require_once(DOL_DOCUMENT_ROOT.'/product.class.php');
if (!$user->rights->produit->lire) if (!$user->rights->produit->lire && !$user->rights->service->lire)
accessforbidden(); accessforbidden();
$staticproduct=new Product($db); $staticproduct=new Product($db);

View File

@ -32,7 +32,7 @@ if ($conf->categorie->enabled) require_once(DOL_DOCUMENT_ROOT."/categories/categ
$langs->load("products"); $langs->load("products");
// Security check // Security check
if (!$user->rights->produit->lire) if (!$user->rights->produit->lire && !$user->rights->service->lire)
accessforbidden(); accessforbidden();

View File

@ -41,7 +41,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';
@ -65,7 +65,7 @@ if ($_FILES['userfile']['size'] > 0 && $_POST["sendit"] && ! empty($conf->global
} }
} }
if ($_REQUEST["action"] == 'confirm_delete' && $_GET["file"] && $_REQUEST['confirm'] == 'yes' && $user->rights->produit->creer) if ($_REQUEST["action"] == 'confirm_delete' && $_GET["file"] && $_REQUEST['confirm'] == 'yes' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$product = new Product($db); $product = new Product($db);
$product->delete_photo($conf->produit->dir_output."/".$_GET["file"]); $product->delete_photo($conf->produit->dir_output."/".$_GET["file"]);
@ -157,7 +157,7 @@ if ($_GET["id"] || $_GET["ref"])
print "\n<div class=\"tabsAction\">\n"; print "\n<div class=\"tabsAction\">\n";
if ($_GET["action"] != 'ajout_photo' && $user->rights->produit->creer) if ($_GET["action"] != 'ajout_photo' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
if (! empty($conf->global->MAIN_UPLOAD_DOC)) if (! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
@ -176,7 +176,7 @@ if ($_GET["id"] || $_GET["ref"])
/* /*
* Ajouter une photo * Ajouter une photo
*/ */
if ($_GET["action"] == 'ajout_photo' && $user->rights->produit->creer && ! empty($conf->global->MAIN_UPLOAD_DOC)) if ($_GET["action"] == 'ajout_photo' && ($user->rights->produit->creer || $user->rights->service->creer) && ! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
// Affiche formulaire upload // Affiche formulaire upload
$formfile=new FormFile($db); $formfile=new FormFile($db);
@ -219,7 +219,7 @@ if ($_GET["id"] || $_GET["ref"])
$filename=$obj['photo']; $filename=$obj['photo'];
} }
// Nom affiché // Nom affich<EFBFBD>
$viewfilename=$obj['photo']; $viewfilename=$obj['photo'];
// Taille de l'image // Taille de l'image
@ -233,12 +233,12 @@ if ($_GET["id"] || $_GET["ref"])
print '<br>'.$viewfilename; print '<br>'.$viewfilename;
print '<br>'; print '<br>';
// On propose la génération de la vignette si elle n'existe pas et si la taille est supérieure aux limites // On propose la g<EFBFBD>n<EFBFBD>ration de la vignette si elle n'existe pas et si la taille est sup<75>rieure aux limites
if (!$obj['photo_vignette'] && eregi('(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$',$obj['photo']) && ($product->imgWidth > $maxWidth || $product->imgHeight > $maxHeight)) if (!$obj['photo_vignette'] && eregi('(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$',$obj['photo']) && ($product->imgWidth > $maxWidth || $product->imgHeight > $maxHeight))
{ {
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&amp;action=addthumb&amp;file='.urlencode($pdir.$viewfilename).'">'.img_refresh($langs->trans('GenerateThumb')).'&nbsp;&nbsp;</a>'; print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&amp;action=addthumb&amp;file='.urlencode($pdir.$viewfilename).'">'.img_refresh($langs->trans('GenerateThumb')).'&nbsp;&nbsp;</a>';
} }
if ($user->rights->produit->creer) if ($user->rights->produit->creer || $user->rights->service->creer)
{ {
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&amp;action=delete&amp;file='.urlencode($pdir.$viewfilename).'">'; print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&amp;action=delete&amp;file='.urlencode($pdir.$viewfilename).'">';
print img_delete().'</a>'; print img_delete().'</a>';

View File

@ -21,7 +21,7 @@
/** \file htdocs/product/popuprop.php /** \file htdocs/product/popuprop.php
\ingroup propal, produit \ingroup propal, produit
\brief Liste des produits/services par popularité \brief Liste des produits/services par popularit<EFBFBD>
\version $Id$ \version $Id$
*/ */
@ -30,7 +30,7 @@ require_once(DOL_DOCUMENT_ROOT.'/product.class.php');
// Security check // Security check
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit'); $result=restrictedArea($user,'produit|service');
$sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"]; $sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"];
$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"]; $sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"];
@ -47,6 +47,10 @@ $offset = $limit * $page ;
$staticproduct=new Product($db); $staticproduct=new Product($db);
/*
* View
*/
llxHeader(); llxHeader();
//On n'affiche le lien page suivante que s'il y a une page suivante ... //On n'affiche le lien page suivante que s'il y a une page suivante ...

View File

@ -37,12 +37,13 @@ function llxHeader($head = "", $urlp = "", $title="")
$menu = new Menu(); $menu = new Menu();
// Products
if ($conf->produit->enabled) if ($conf->produit->enabled)
{ {
$menu->add(DOL_URL_ROOT."/product/index.php?type=0", $langs->trans("Products")); $menu->add(DOL_URL_ROOT."/product/index.php?type=0", $langs->trans("Products"));
$menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=0", $langs->trans("List")); $menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=0", $langs->trans("List"));
if ($user->societe_id == 0 && $user->rights->produit->creer) if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct")); $menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct"));
} }
@ -80,17 +81,19 @@ function llxHeader($head = "", $urlp = "", $title="")
$menu->add_submenu(DOL_URL_ROOT."/product/reassort.php?type=0", $langs->trans("Restock")); $menu->add_submenu(DOL_URL_ROOT."/product/reassort.php?type=0", $langs->trans("Restock"));
// Services
if ($conf->service->enabled) if ($conf->service->enabled)
{ {
$menu->add(DOL_URL_ROOT."/product/index.php?type=1", $langs->trans("Services")); $menu->add(DOL_URL_ROOT."/product/index.php?type=1", $langs->trans("Services"));
$menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=1", $langs->trans("List")); $menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=1", $langs->trans("List"));
if ($user->societe_id == 0 && $user->rights->produit->creer) if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=1", $langs->trans("NewService")); $menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=1", $langs->trans("NewService"));
} }
} }
if ($conf->fournisseur->enabled) { if ($conf->fournisseur->enabled)
{
$langs->load("suppliers"); $langs->load("suppliers");
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers")); $menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
} }

View File

@ -41,14 +41,14 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
/* /*
* Actions * Actions
*/ */
if ($_POST["action"] == 'update_price' && ! $_POST["cancel"] && $user->rights->produit->creer) if ($_POST["action"] == 'update_price' && ! $_POST["cancel"] && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$product = new Product($db); $product = new Product($db);
@ -226,7 +226,7 @@ if (empty($_GET["action"]) || $_GET["action"]=='delete')
{ {
print "\n<div class=\"tabsAction\">\n"; print "\n<div class=\"tabsAction\">\n";
if ($user->rights->produit->modifier || $user->rights->produit->creer) if ($user->rights->produit->creer || $user->rights->service->creer)
{ {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/price.php?action=edit_price&amp;id='.$product->id.'">'.$langs->trans("UpdatePrice").'</a>'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/price.php?action=edit_price&amp;id='.$product->id.'">'.$langs->trans("UpdatePrice").'</a>';
} }
@ -239,7 +239,7 @@ if (empty($_GET["action"]) || $_GET["action"]=='delete')
/* /*
* Edition du prix * Edition du prix
*/ */
if ($_GET["action"] == 'edit_price' && $user->rights->produit->creer) if ($_GET["action"] == 'edit_price' && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
print_fiche_titre($langs->trans("NewPrice"),'',''); print_fiche_titre($langs->trans("NewPrice"),'','');

View File

@ -34,7 +34,7 @@ $langs->load("stocks");
// Security check // Security check
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit'); $result=restrictedArea($user,'produit|service');
$sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"]; $sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"];

View File

@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';
@ -67,7 +67,7 @@ $html = new Form($db);
// Action association d'un sousproduit // Action association d'un sousproduit
if ($action == 'add_prod' && if ($action == 'add_prod' &&
$cancel <> $langs->trans("Cancel") && $cancel <> $langs->trans("Cancel") &&
$user->rights->produit->creer) ($user->rights->produit->creer || $user->rights->service->creer))
{ {
for($i=0;$i<$_POST["max_prod"];$i++) for($i=0;$i<$_POST["max_prod"];$i++)
@ -212,7 +212,7 @@ if ($id || $ref)
/* /*
* Fiche en mode edition * Fiche en mode edition
*/ */
if (($action == 'edit' || $action == 'search' || $action == 're-edit') && $user->rights->produit->creer) if (($action == 'edit' || $action == 'search' || $action == 're-edit') && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
@ -354,13 +354,10 @@ print "\n<div class=\"tabsAction\">\n";
if ($action == '') if ($action == '')
{ {
if ($user->rights->produit->creer || $user->rights->service->creer)
if ( $user->rights->produit->creer)
{ {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/sousproduits/fiche.php?action=edit&amp;id='.$id.'">'.$langs->trans("EditAssociate").'</a>'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/sousproduits/fiche.php?action=edit&amp;id='.$id.'">'.$langs->trans("EditAssociate").'</a>';
} }
} }
print "\n</div>\n"; print "\n</div>\n";

View File

@ -15,18 +15,14 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*
*/ */
/*! /**
\file htdocs/product/pre.inc.php * \file htdocs/product/pre.inc.php
\ingroup product,service * \ingroup product,service
\brief Fichier gestionnaire du menu gauche des produits et services * \brief Fichier gestionnaire du menu gauche des produits et services
\version $Revision$ * \version $Id$
*/ */
require("../../main.inc.php"); require("../../main.inc.php");
$langs->load("products"); $langs->load("products");
@ -34,75 +30,77 @@ $langs->load("products");
function llxHeader($head = "", $urlp = "", $title="") function llxHeader($head = "", $urlp = "", $title="")
{ {
global $user, $conf, $langs; global $user, $conf, $langs;
$langs->load("products"); $langs->load("products");
top_menu($head, $title); top_menu($head, $title);
$menu = new Menu(); $menu = new Menu();
if ($conf->produit->enabled) // Products
{ if ($conf->produit->enabled)
$menu->add(DOL_URL_ROOT."/product/index.php?type=0", $langs->trans("Products"));
$menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=0", $langs->trans("List"));
if ($user->societe_id == 0 && $user->rights->produit->creer)
{ {
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct")); $menu->add(DOL_URL_ROOT."/product/index.php?type=0", $langs->trans("Products"));
} $menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=0", $langs->trans("List"));
}
if ($conf->service->enabled) if ($user->societe_id == 0 && $user->rights->produit->creer)
{ {
$menu->add(DOL_URL_ROOT."/product/index.php?type=1", $langs->trans("Services")); $menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct"));
$menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=1", $langs->trans("List")); }
if ($user->societe_id == 0 && $user->rights->produit->creer) }
// Services
if ($conf->service->enabled)
{ {
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=1", $langs->trans("NewService")); $menu->add(DOL_URL_ROOT."/product/index.php?type=1", $langs->trans("Services"));
$menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=1", $langs->trans("List"));
if ($user->societe_id == 0 && $user->rights->produit->creer)
{
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=1", $langs->trans("NewService"));
}
} }
}
if ($conf->boutique->enabled) if ($conf->boutique->enabled)
{ {
$menu->add(DOL_URL_ROOT."/product/osc-liste.php", "Osc"); $menu->add(DOL_URL_ROOT."/product/osc-liste.php", "Osc");
$menu->add_submenu(DOL_URL_ROOT."/product/osc-liste.php?reqstock=epuise", "Produits Epuisés"); $menu->add_submenu(DOL_URL_ROOT."/product/osc-liste.php?reqstock=epuise", "Produits Epuis<EFBFBD>s");
$menu->add(DOL_URL_ROOT."/product/osc-reviews.php", $langs->trans("Criticals")); $menu->add(DOL_URL_ROOT."/product/osc-reviews.php", $langs->trans("Criticals"));
$menu->add_submenu(DOL_URL_ROOT."/product/osc-productsbyreviews.php", "Meilleurs produits"); $menu->add_submenu(DOL_URL_ROOT."/product/osc-productsbyreviews.php", "Meilleurs produits");
$menu->add(DOL_URL_ROOT."/product/album/", "Albums"); $menu->add(DOL_URL_ROOT."/product/album/", "Albums");
$menu->add(DOL_URL_ROOT."/product/groupart/", "Groupes/Artistes"); $menu->add(DOL_URL_ROOT."/product/groupart/", "Groupes/Artistes");
$menu->add(DOL_URL_ROOT."/product/categorie/", $langs->trans("Categories")); $menu->add(DOL_URL_ROOT."/product/categorie/", $langs->trans("Categories"));
} }
if ($conf->fournisseur->enabled) { if ($conf->fournisseur->enabled) {
$langs->load("suppliers"); $langs->load("suppliers");
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers")); $menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
} }
$menu->add(DOL_URL_ROOT."/product/stats/", $langs->trans("Statistics")); $menu->add(DOL_URL_ROOT."/product/stats/", $langs->trans("Statistics"));
if ($conf->propal->enabled) if ($conf->propal->enabled)
{ {
$menu->add_submenu(DOL_URL_ROOT."/product/popuprop.php", $langs->trans("Popularity")); $menu->add_submenu(DOL_URL_ROOT."/product/popuprop.php", $langs->trans("Popularity"));
} }
if ($conf->stock->enabled) if ($conf->stock->enabled)
{ {
$menu->add(DOL_URL_ROOT."/product/stock/", $langs->trans("Stock")); $menu->add(DOL_URL_ROOT."/product/stock/", $langs->trans("Stock"));
} }
if ($conf->categorie->enabled) if ($conf->categorie->enabled)
{ {
$menu->add(DOL_URL_ROOT."/categories/", $langs->trans("Categories")); $menu->add(DOL_URL_ROOT."/categories/", $langs->trans("Categories"));
} }
left_menu($menu->liste); left_menu($menu->liste);
/* /*
* *
* *
*/ */
} }
?> ?>

View File

@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';

View File

@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';

View File

@ -15,152 +15,155 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* *
* $Id$
* $Source$
* *
*/ */
/*
* \version $Id$
*/
class CommandeStats class CommandeStats
{ {
var $db ; var $db ;
function CommandeStats($DB) function CommandeStats($DB)
{ {
$this->db = $DB; $this->db = $DB;
} }
/**
* Renvoie le nombre de commande par année
*
*/
function getNbCommandeByYear()
{
$result = array();
$sql = "SELECT date_format(date_commande,'%Y') as dm, count(*)";
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
$sql.= " WHERE fk_statut > 0";
$sql.= " AND entity = ".$conf->entity;
$sql.= " GROUP BY dm DESC";
if ($this->db->query($sql))
{ /**
$num = $this->db->num_rows(); * Renvoie le nombre de commande par annee
$i = 0; *
while ($i < $num) */
function getNbCommandeByYear()
{
$result = array();
$sql = "SELECT date_format(date_commande,'%Y') as dm, count(*)";
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
$sql.= " WHERE fk_statut > 0";
$sql.= " AND entity = ".$conf->entity;
$sql.= " GROUP BY dm DESC";
if ($this->db->query($sql))
{
$num = $this->db->num_rows();
$i = 0;
while ($i < $num)
{ {
$row = $this->db->fetch_row($i); $row = $this->db->fetch_row($i);
$result[$i] = $row; $result[$i] = $row;
$i++; $i++;
} }
$this->db->free(); $this->db->free();
} }
return $result; return $result;
} }
/** /**
* Renvoie le nombre de commande par mois pour une année donnée * Renvoie le nombre de commande par mois pour une ann<EFBFBD>e donn<EFBFBD>e
* *
*/ */
function getNbCommandeByMonth($year) function getNbCommandeByMonth($year)
{ {
$result = array(); $result = array();
$sql = "SELECT date_format(date_commande,'%m') as dm, count(*)"; $sql = "SELECT date_format(date_commande,'%m') as dm, count(*)";
$sql.= " FROM ".MAIN_DB_PREFIX."commande"; $sql.= " FROM ".MAIN_DB_PREFIX."commande";
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year; $sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
$sql.= " AND fk_statut > 0"; $sql.= " AND fk_statut > 0";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$sql.= " GROUP BY dm DESC"; $sql.= " GROUP BY dm DESC";
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
$num = $this->db->num_rows(); $num = $this->db->num_rows();
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$row = $this->db->fetch_row($i); $row = $this->db->fetch_row($i);
$j = $row[0] * 1; $j = $row[0] * 1;
$result[$j] = $row[1]; $result[$j] = $row[1];
$i++; $i++;
} }
$this->db->free(); $this->db->free();
} }
for ($i = 1 ; $i < 13 ; $i++) for ($i = 1 ; $i < 13 ; $i++)
{ {
$res[$i] = $result[$i] + 0; $res[$i] = $result[$i] + 0;
} }
return $res; return $res;
} }
/** /**
* Renvoie le nombre de commande par mois pour une année donnée * Renvoie le nombre de commande par mois pour une ann<EFBFBD>e donn<EFBFBD>e
* *
*/ */
function getCommandeAmountByMonth($year) function getCommandeAmountByMonth($year)
{ {
$result = array(); $result = array();
$sql = "SELECT date_format(date_commande,'%m') as dm, sum(total_ht)"; $sql = "SELECT date_format(date_commande,'%m') as dm, sum(total_ht)";
$sql.= " FROM ".MAIN_DB_PREFIX."commande"; $sql.= " FROM ".MAIN_DB_PREFIX."commande";
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year; $sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
$sql.= " AND fk_statut > 0"; $sql.= " AND fk_statut > 0";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$sql.= " GROUP BY dm DESC"; $sql.= " GROUP BY dm DESC";
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
$num = $this->db->num_rows(); $num = $this->db->num_rows();
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$row = $this->db->fetch_row($i); $row = $this->db->fetch_row($i);
$j = $row[0] * 1; $j = $row[0] * 1;
$result[$j] = $row[1]; $result[$j] = $row[1];
$i++; $i++;
} }
$this->db->free(); $this->db->free();
} }
for ($i = 1 ; $i < 13 ; $i++) for ($i = 1 ; $i < 13 ; $i++)
{ {
$res[$i] = $result[$i] + 0; $res[$i] = $result[$i] + 0;
} }
return $res; return $res;
} }
/** /**
* Renvoie le nombre de commande par mois pour une année donnée * Renvoie le nombre de commande par mois pour une ann<EFBFBD>e donn<EFBFBD>e
* *
*/ */
function getCommandeAverageByMonth($year) function getCommandeAverageByMonth($year)
{ {
$result = array(); $result = array();
$sql = "SELECT date_format(date_commande,'%m') as dm, avg(total_ht)"; $sql = "SELECT date_format(date_commande,'%m') as dm, avg(total_ht)";
$sql.= " FROM ".MAIN_DB_PREFIX."commande"; $sql.= " FROM ".MAIN_DB_PREFIX."commande";
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year; $sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
$sql.= " AND fk_statut > 0"; $sql.= " AND fk_statut > 0";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$sql.= " GROUP BY dm DESC"; $sql.= " GROUP BY dm DESC";
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
$num = $this->db->num_rows(); $num = $this->db->num_rows();
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$row = $this->db->fetch_row($i); $row = $this->db->fetch_row($i);
$j = $row[0] * 1; $j = $row[0] * 1;
$result[$j] = $row[1]; $result[$j] = $row[1];
$i++; $i++;
} }
$this->db->free(); $this->db->free();
} }
for ($i = 1 ; $i < 13 ; $i++) for ($i = 1 ; $i < 13 ; $i++)
{ {
$res[$i] = $result[$i] + 0; $res[$i] = $result[$i] + 0;
} }
return $res; return $res;
} }
} }
?> ?>

View File

@ -41,7 +41,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';

View File

@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';

View File

@ -43,7 +43,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';

View File

@ -45,7 +45,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';

View File

@ -33,7 +33,7 @@ require_once(DOL_DOCUMENT_ROOT."/propal.class.php");
// Security check // Security check
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit'); $result=restrictedArea($user,'produit|service');
llxHeader(); llxHeader();
@ -165,8 +165,8 @@ print '<br>';
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">'; print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
print "<tr class=\"liste_titre\">"; print "<tr class=\"liste_titre\">";
print "<td>Produit/Service</td>"; print "<td>Produit/Service</td>";
print "<td>Qté en facture</td>"; print "<td>Qt<EFBFBD> en facture</td>";
print "<td>Qté en propale</td>"; print "<td>Qt<EFBFBD> en propale</td>";
print "</tr>\n"; print "</tr>\n";
$sql = "SELECT p.label, sum(f.qty) as sumf, sum(pr.qty) as sumpr FROM ".MAIN_DB_PREFIX."product as p"; $sql = "SELECT p.label, sum(f.qty) as sumf, sum(pr.qty) as sumpr FROM ".MAIN_DB_PREFIX."product as p";
$sql.=" left join ".MAIN_DB_PREFIX."facturedet as f on p.rowid = f.fk_product"; $sql.=" left join ".MAIN_DB_PREFIX."facturedet as f on p.rowid = f.fk_product";

View File

@ -39,22 +39,24 @@ function llxHeader($head = "", $urlp = "", $title="")
$menu = new Menu(); $menu = new Menu();
// Products
if ($conf->produit->enabled) if ($conf->produit->enabled)
{ {
$menu->add(DOL_URL_ROOT."/product/index.php?type=0", $langs->trans("Products")); $menu->add(DOL_URL_ROOT."/product/index.php?type=0", $langs->trans("Products"));
$menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=0", $langs->trans("List")); $menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=0", $langs->trans("List"));
if ($user->societe_id == 0 && $user->rights->produit->creer) if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct")); $menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=0", $langs->trans("NewProduct"));
} }
} }
// Services
if ($conf->service->enabled) if ($conf->service->enabled)
{ {
$menu->add(DOL_URL_ROOT."/product/index.php?type=1", $langs->trans("Services")); $menu->add(DOL_URL_ROOT."/product/index.php?type=1", $langs->trans("Services"));
$menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=1", $langs->trans("List")); $menu->add_submenu(DOL_URL_ROOT."/product/liste.php?type=1", $langs->trans("List"));
if ($user->societe_id == 0 && $user->rights->produit->creer) if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=1", $langs->trans("NewService")); $menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&amp;type=1", $langs->trans("NewService"));
} }
@ -64,7 +66,7 @@ function llxHeader($head = "", $urlp = "", $title="")
{ {
$menu->add(DOL_URL_ROOT."/product/osc-liste.php", "Osc"); $menu->add(DOL_URL_ROOT."/product/osc-liste.php", "Osc");
$menu->add_submenu(DOL_URL_ROOT."/product/osc-liste.php?reqstock=epuise", "Produits Epuisés"); $menu->add_submenu(DOL_URL_ROOT."/product/osc-liste.php?reqstock=epuise", "Produits Epuis<EFBFBD>s");
$menu->add(DOL_URL_ROOT."/product/osc-reviews.php", "Critiques"); $menu->add(DOL_URL_ROOT."/product/osc-reviews.php", "Critiques");

View File

@ -41,7 +41,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
$mesg = ''; $mesg = '';

View File

@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid); $result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
/* /*
@ -58,7 +58,7 @@ if ($_POST["cancel"] == $langs->trans("Cancel"))
// Validation de l'ajout // Validation de l'ajout
if ($_POST["action"] == 'vadd' && if ($_POST["action"] == 'vadd' &&
$_POST["cancel"] != $langs->trans("Cancel") && $_POST["cancel"] != $langs->trans("Cancel") &&
$user->rights->produit->creer) ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$product = new Product($db); $product = new Product($db);
$product->fetch($_POST["id"]); $product->fetch($_POST["id"]);
@ -82,19 +82,19 @@ $user->rights->produit->creer)
if ( $product->setMultiLangs() > 0 ) if ( $product->setMultiLangs() > 0 )
{ {
$_GET["action"] = ''; $_GET["action"] = '';
$mesg = 'Fiche mise à jour'; $mesg = 'Fiche mise <EFBFBD> jour';
} }
else else
{ {
$_GET["action"] = 'add'; $_GET["action"] = 'add';
$mesg = 'Fiche non mise à jour !' . "<br>" . $product->mesg_error; $mesg = 'Fiche non mise <EFBFBD> jour !' . "<br>" . $product->mesg_error;
} }
} }
// Validation de l'edition // Validation de l'edition
if ($_POST["action"] == 'vedit' && if ($_POST["action"] == 'vedit' &&
$_POST["cancel"] != $langs->trans("Cancel") && $_POST["cancel"] != $langs->trans("Cancel") &&
$user->rights->produit->creer) ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$product = new Product($db); $product = new Product($db);
$product->fetch($_POST["id"]); $product->fetch($_POST["id"]);
@ -119,12 +119,12 @@ $user->rights->produit->creer)
if ( $product->setMultiLangs() > 0 ) if ( $product->setMultiLangs() > 0 )
{ {
$_GET["action"] = ''; $_GET["action"] = '';
$mesg = 'Fiche mise à jour'; $mesg = 'Fiche mise <EFBFBD> jour';
} }
else else
{ {
$_GET["action"] = 'edit'; $_GET["action"] = 'edit';
$mesg = 'Fiche non mise à jour !' . "<br>" . $product->mesg_error; $mesg = 'Fiche non mise <EFBFBD> jour !' . "<br>" . $product->mesg_error;
} }
} }
@ -229,7 +229,7 @@ print "</div>\n";
print "\n<div class=\"tabsAction\">\n"; print "\n<div class=\"tabsAction\">\n";
if ($_GET["action"] == '') if ($_GET["action"] == '')
if ($user->rights->produit->modifier || $user->rights->produit->creer) if ($user->rights->produit->creer || $user->rights->service->creer)
{ {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=edit&id='.$product->id.'">'.$langs->trans("Update").'</a>'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=edit&id='.$product->id.'">'.$langs->trans("Update").'</a>';
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=add&id='.$product->id.'">'.$langs->trans("Add").'</a>'; print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/traduction.php?action=add&id='.$product->id.'">'.$langs->trans("Add").'</a>';
@ -241,12 +241,12 @@ print "\n</div>\n";
/* /*
* Formulaire d'ajout de traduction * Formulaire d'ajout de traduction
*/ */
if ($_GET["action"] == 'add' || $user->rights->produit->modifier) if ($_GET["action"] == 'add' || ($user->rights->produit->creer || $user->rights->service->creer))
{ {
$langs_available = $langs->get_available_languages(); $langs_available = $langs->get_available_languages();
$current_lang = $langs->getDefaultLang(); $current_lang = $langs->getDefaultLang();
// on construit la liste des traduction qui n'existe pas déjà // on construit la liste des traduction qui n'existe pas deja
$select = '<select class="flat" name="lang">'; $select = '<select class="flat" name="lang">';
foreach ($langs_available as $value) foreach ($langs_available as $value)
if ( !array_key_exists($value, $product->multilangs) ) // si la traduction n'existe pas if ( !array_key_exists($value, $product->multilangs) ) // si la traduction n'existe pas

View File

@ -201,7 +201,7 @@ if ($modulepart)
elseif (eregi('^productstats_',$modulepart)) elseif (eregi('^productstats_',$modulepart))
{ {
$user->getrights('produit'); $user->getrights('produit');
if ($user->rights->produit->lire) if ($user->rights->produit->lire || $user->rights->service->lire)
{ {
$accessallowed=1; $accessallowed=1;
} }
@ -212,7 +212,7 @@ if ($modulepart)
elseif ($modulepart == 'product') elseif ($modulepart == 'product')
{ {
$user->getrights('produit'); $user->getrights('produit');
if ($user->rights->produit->lire) if ($user->rights->produit->lire || $user->rights->service->lire)
{ {
$accessallowed=1; $accessallowed=1;
} }