Qual: Now module services and products are two completely separated modules.
This commit is contained in:
parent
17fb177920
commit
8732364f01
@ -46,7 +46,7 @@ if ($_REQUEST["socid"])
|
||||
else if ($_REQUEST["id"] || $_REQUEST["ref"])
|
||||
{
|
||||
$type = 'produit';
|
||||
$objecttype = 'produit';
|
||||
$objecttype = 'produit|service';
|
||||
$objectid = isset($_REQUEST["id"])?$_REQUEST["id"]:(isset($_REQUEST["ref"])?$_REQUEST["ref"]:'');
|
||||
$dbtablename = 'product';
|
||||
$fieldid = isset($_REQUEST["ref"])?'ref':'rowid';
|
||||
@ -68,7 +68,7 @@ if ($_REQUEST["removecat"])
|
||||
$object = new Societe($db);
|
||||
$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);
|
||||
if ($_REQUEST["ref"]) $result = $object->fetch('',$_REQUEST["ref"]);
|
||||
@ -87,7 +87,7 @@ if (isset($_REQUEST["catMere"]) && $_REQUEST["catMere"]>=0)
|
||||
$object = new Societe($db);
|
||||
$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);
|
||||
if ($_REQUEST["ref"]) $result = $object->fetch('',$_REQUEST["ref"]);
|
||||
@ -333,7 +333,7 @@ function formCategory($db,$object,$type,$typeid)
|
||||
$permission=0;
|
||||
if ($type == 'fournisseur') $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)
|
||||
{
|
||||
print "<a href= '".DOL_URL_ROOT."/categories/categorie.php?".$nameId."=".$object->id."&typeid=".$typeid."&removecat=".$cat->id."'>";
|
||||
|
||||
@ -18,98 +18,98 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/comm/pre.inc.php
|
||||
\ingroup commercial
|
||||
\brief Fichier de gestion du menu gauche de l'espace commercial
|
||||
\version $Id$
|
||||
*/
|
||||
\file htdocs/comm/pre.inc.php
|
||||
\ingroup commercial
|
||||
\brief Fichier de gestion du menu gauche de l'espace commercial
|
||||
\version $Id$
|
||||
*/
|
||||
require("../main.inc.php");
|
||||
|
||||
|
||||
function llxHeader($head = '', $title='', $help_url='')
|
||||
{
|
||||
global $user, $conf, $langs;
|
||||
global $user, $conf, $langs;
|
||||
|
||||
$langs->load("companies");
|
||||
$langs->load("commercial");
|
||||
$langs->load("companies");
|
||||
$langs->load("commercial");
|
||||
|
||||
top_menu($head, $langs->trans($title));
|
||||
top_menu($head, $langs->trans($title));
|
||||
|
||||
$menu = new Menu();
|
||||
$menu = new Menu();
|
||||
|
||||
// Clients
|
||||
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=c", $langs->trans("MenuNewCustomer"));
|
||||
}
|
||||
// Clients
|
||||
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&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
|
||||
$menu->add(DOL_URL_ROOT."/comm/prospect/index.php", $langs->trans("Prospects"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=p", $langs->trans("MenuNewProspect"));
|
||||
}
|
||||
// Prospects
|
||||
$menu->add(DOL_URL_ROOT."/comm/prospect/index.php", $langs->trans("Prospects"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&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
|
||||
if ($conf->propal->enabled && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
$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=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/stats/", $langs->trans("Statistics"));
|
||||
}
|
||||
// Propal
|
||||
if ($conf->propal->enabled && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
$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=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/stats/", $langs->trans("Statistics"));
|
||||
}
|
||||
|
||||
if ($conf->contrat->enabled && $user->rights->contrat->lire)
|
||||
{
|
||||
$langs->load("contracts");
|
||||
$menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts"));
|
||||
}
|
||||
if ($conf->contrat->enabled && $user->rights->contrat->lire)
|
||||
{
|
||||
$langs->load("contracts");
|
||||
$menu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts"));
|
||||
}
|
||||
|
||||
if ($conf->commande->enabled && $user->rights->commande->lire)
|
||||
{
|
||||
$langs->load("orders");
|
||||
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
|
||||
}
|
||||
if ($conf->commande->enabled && $user->rights->commande->lire)
|
||||
{
|
||||
$langs->load("orders");
|
||||
$menu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders"));
|
||||
}
|
||||
|
||||
if ($user->mailing->enabled && $user->rights->mailing->lire)
|
||||
{
|
||||
$langs->load("mails");
|
||||
$menu->add(DOL_URL_ROOT."/comm/mailing/", $langs->trans("EMailings"));
|
||||
}
|
||||
if ($user->mailing->enabled && $user->rights->mailing->lire)
|
||||
{
|
||||
$langs->load("mails");
|
||||
$menu->add(DOL_URL_ROOT."/comm/mailing/", $langs->trans("EMailings"));
|
||||
}
|
||||
|
||||
if ($conf->ficheinter->enabled && $user->rights->ficheinter->lire)
|
||||
{
|
||||
$langs->load("interventions");
|
||||
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
|
||||
}
|
||||
if ($conf->ficheinter->enabled && $user->rights->ficheinter->lire)
|
||||
{
|
||||
$langs->load("interventions");
|
||||
$menu->add(DOL_URL_ROOT."/fichinter/index.php", $langs->trans("Interventions"));
|
||||
}
|
||||
|
||||
if (($conf->produit->enabled || $conf->service->enabled) && $user->rights->produit->lire)
|
||||
{
|
||||
$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->produit->enabled && $user->rights->produit->lire) || ($conf->service->enabled && $user->rights->service->lire))
|
||||
{
|
||||
$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 && $user->rights->projet->lire)
|
||||
{
|
||||
$langs->load("projects");
|
||||
$menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects"));
|
||||
}
|
||||
if ($conf->projet->enabled && $user->rights->projet->lire)
|
||||
{
|
||||
$langs->load("projects");
|
||||
$menu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects"));
|
||||
}
|
||||
|
||||
left_menu($menu->liste, $help_url);
|
||||
left_menu($menu->liste, $help_url);
|
||||
}
|
||||
?>
|
||||
|
||||
@ -22,88 +22,88 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/comm/propal/pre.inc.php
|
||||
\ingroup propale
|
||||
\brief Fichier de gestion du menu gauche du module propale
|
||||
\version $Revision$
|
||||
*/
|
||||
\file htdocs/comm/propal/pre.inc.php
|
||||
\ingroup propale
|
||||
\brief Fichier de gestion du menu gauche du module propale
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
require("../../main.inc.php");
|
||||
|
||||
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
|
||||
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=c", $langs->trans("MenuNewCustomer"));
|
||||
}
|
||||
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts"));
|
||||
|
||||
// Prospects
|
||||
$menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=p", $langs->trans("MenuNewProspect"));
|
||||
}
|
||||
$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"));
|
||||
|
||||
|
||||
if ($conf->propal->enabled && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
$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=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/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"));
|
||||
// Clients
|
||||
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=c", $langs->trans("MenuNewCustomer"));
|
||||
}
|
||||
|
||||
left_menu($menu->liste);
|
||||
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts"));
|
||||
|
||||
// Prospects
|
||||
$menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=p", $langs->trans("MenuNewProspect"));
|
||||
}
|
||||
$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"));
|
||||
|
||||
|
||||
if ($conf->propal->enabled && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
$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=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/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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -22,94 +22,94 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/comm/propal/stats/pre.inc.php
|
||||
\ingroup propale
|
||||
\brief Fichier de gestion du menu gauche du module propale stats
|
||||
\version $Revision$
|
||||
*/
|
||||
\file htdocs/comm/propal/stats/pre.inc.php
|
||||
\ingroup propale
|
||||
\brief Fichier de gestion du menu gauche du module propale stats
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
require("../../../main.inc.php");
|
||||
|
||||
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
|
||||
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=c", $langs->trans("MenuNewCustomer"));
|
||||
}
|
||||
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts"));
|
||||
|
||||
// Prospects
|
||||
$menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=p", $langs->trans("MenuNewProspect"));
|
||||
}
|
||||
$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"));
|
||||
|
||||
|
||||
if ($conf->propal->enabled && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
$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=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/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"));
|
||||
// Clients
|
||||
$menu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=c", $langs->trans("MenuNewCustomer"));
|
||||
}
|
||||
|
||||
left_menu($menu->liste);
|
||||
$menu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts"));
|
||||
|
||||
// Prospects
|
||||
$menu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects"));
|
||||
if ($user->rights->societe->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=p", $langs->trans("MenuNewProspect"));
|
||||
}
|
||||
$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"));
|
||||
|
||||
|
||||
if ($conf->propal->enabled && $user->rights->propale->lire)
|
||||
{
|
||||
$langs->load("propal");
|
||||
$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=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/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);
|
||||
}
|
||||
?>
|
||||
|
||||
@ -62,7 +62,7 @@ function llxHeader($head = "", $title="", $help_url='')
|
||||
$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");
|
||||
$chaine="";
|
||||
|
||||
@ -304,7 +304,8 @@ if ($modulepart)
|
||||
if ($modulepart == '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;
|
||||
}
|
||||
|
||||
@ -199,7 +199,7 @@ $userstatic = new User($db);
|
||||
// Ajout rubriques automatiques
|
||||
$rowspan=0;
|
||||
$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->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")); }
|
||||
|
||||
@ -104,7 +104,7 @@ $userstatic = new User($db);
|
||||
// Ajout rubriques automatiques
|
||||
$rowspan=0;
|
||||
$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->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")); }
|
||||
|
||||
@ -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."/lib/product.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->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");
|
||||
|
||||
@ -797,7 +797,7 @@ if ($id > 0 || ! empty($ref))
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>';
|
||||
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 img_object($langs->trans('ShowProduct'),'product');
|
||||
@ -894,7 +894,7 @@ if ($id > 0 || ! empty($ref))
|
||||
print '</form>';
|
||||
|
||||
// Ajout de produits/services predefinis
|
||||
if ($conf->produit->enabled)
|
||||
if ($conf->produit->enabled || $conf->service->enabled)
|
||||
{
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td colspan="3">';
|
||||
|
||||
@ -846,7 +846,7 @@ else
|
||||
|
||||
// Show product and description
|
||||
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.'">';
|
||||
$product_static=new ProductFournisseur($db);
|
||||
@ -1029,7 +1029,7 @@ else
|
||||
print '</form>';
|
||||
|
||||
// Ajout de produits/services predefinis
|
||||
if ($conf->produit->enabled)
|
||||
if ($conf->produit->enabled || $conf->service->enabled)
|
||||
{
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td colspan="4">';
|
||||
|
||||
@ -46,7 +46,7 @@ function llxHeader($head = '', $title='', $help_url='')
|
||||
{
|
||||
$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)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&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"));
|
||||
}
|
||||
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)
|
||||
{
|
||||
$langs->load("categories");
|
||||
// Catégories fournisseurs
|
||||
// Cat<EFBFBD>gories fournisseurs
|
||||
$menu->add(DOL_URL_ROOT."/categories/index.php?leftmenu=cat&type=1", $langs->trans("SuppliersCategoriesShort"), 0);
|
||||
}
|
||||
|
||||
|
||||
@ -26,15 +26,15 @@ $langs->load("categories");
|
||||
|
||||
$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"])
|
||||
{
|
||||
{
|
||||
$product = new Product($db);
|
||||
$result = $product->fetch($_GET["id"]);
|
||||
$result = $product->fetch($_GET["id"]);
|
||||
}
|
||||
|
||||
llxHeader("","",$langs->trans("CardProduct0"));
|
||||
@ -44,61 +44,61 @@ llxHeader("","",$langs->trans("CardProduct0"));
|
||||
*/
|
||||
if ($_GET["id"])
|
||||
{
|
||||
//on veut supprimer une catégorie
|
||||
//on veut supprimer une cat<EFBFBD>gorie
|
||||
if ($_REQUEST["cat"])
|
||||
{
|
||||
$cat = new Categorie($db,$_REQUEST["cat"]);
|
||||
$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)
|
||||
{
|
||||
$cat = new Categorie($db,$_REQUEST["add_cat"]);
|
||||
$cat->add_product($product);
|
||||
}
|
||||
|
||||
|
||||
if ( $result )
|
||||
{
|
||||
{
|
||||
|
||||
/*
|
||||
* En mode visu
|
||||
*/
|
||||
|
||||
|
||||
$h=0;
|
||||
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/fourn/product/fiche.php?id=".$product->id;
|
||||
$head[$h][1] = $langs->trans("Card");
|
||||
$h++;
|
||||
|
||||
|
||||
|
||||
|
||||
if ($conf->stock->enabled)
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/product/stock/product.php?id=".$product->id;
|
||||
$head[$h][1] = $langs->trans("Stock");
|
||||
$h++;
|
||||
}
|
||||
|
||||
|
||||
if ($conf->fournisseur->enabled)
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT."/product/fournisseurs.php?id=".$product->id;
|
||||
$head[$h][1] = $langs->trans("Suppliers");
|
||||
$h++;
|
||||
}
|
||||
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/product/photos.php?id=".$product->id;
|
||||
$head[$h][1] = $langs->trans("Photos");
|
||||
$h++;
|
||||
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT."/product/stats/fiche.php?id=".$product->id;
|
||||
$head[$h][1] = $langs->trans('Statistics');
|
||||
$h++;
|
||||
|
||||
//affichage onglet catégorie
|
||||
|
||||
//affichage onglet cat<EFBFBD>gorie
|
||||
if ($conf->categorie->enabled){
|
||||
$head[$h][0] = DOL_URL_ROOT."/fourn/product/categorie.php?id=".$product->id;
|
||||
$head[$h][1] = $langs->trans('Categories');
|
||||
$hselected = $h;
|
||||
$hselected = $h;
|
||||
$h++;
|
||||
}
|
||||
|
||||
@ -109,47 +109,47 @@ if ($_GET["id"])
|
||||
print '<table class="border" width="100%">';
|
||||
print "<tr>";
|
||||
print '<td>'.$langs->trans("Ref").'</td><td>'.$product->ref.'</td>';
|
||||
|
||||
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td>'.$product->libelle.'</td>';
|
||||
print "</table><br>\n";
|
||||
|
||||
$c = new Categorie($db);
|
||||
$cats = $c->containing($_REQUEST['id'],"product");
|
||||
|
||||
|
||||
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 '<tr class="liste_titre"><td colspan="2">'.$langs->trans("AllWays").'</td></tr>';
|
||||
|
||||
|
||||
|
||||
|
||||
foreach ($cats as $cat)
|
||||
{
|
||||
|
||||
|
||||
$ways = $cat->print_all_ways ();
|
||||
foreach ($ways as $way)
|
||||
{
|
||||
$i = !$i;
|
||||
print "<tr ".$bc[$i]."><td>".$way."</td>";
|
||||
print "<td><a href= '".DOL_URL_ROOT."/fourn/product/categorie.php?id=".$product->id."&cat=".$cat->id."'>".$langs->trans("DeleteFromCat")."</a></td></tr>\n";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
print "</table><br/><br/>\n";
|
||||
}
|
||||
}
|
||||
else if($cats < 0)
|
||||
{
|
||||
print $langs->trans("ErrorUnknown");
|
||||
}
|
||||
|
||||
|
||||
else
|
||||
{
|
||||
print $langs->trans("NoCat")."<br/><br/>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
print $langs->trans("AddProductToCat")."<br/><br/>";
|
||||
print '<table class="border" width="100%">';
|
||||
print '<form method="POST" action="'.DOL_URL_ROOT.'/fourn/product/categorie.php?id='.$product->id.'">';
|
||||
@ -162,7 +162,7 @@ if ($_GET["id"])
|
||||
}
|
||||
print "</select></td><td><input type='submit' value='".$langs->trans("Select")."'></td></tr>";
|
||||
print "</form></table><br/>";
|
||||
|
||||
|
||||
}
|
||||
$db->close();
|
||||
|
||||
|
||||
@ -21,30 +21,30 @@
|
||||
*/
|
||||
|
||||
/*!
|
||||
\file htdocs/fourn/product/fourn.php
|
||||
\ingroup product
|
||||
\brief Page de la fiche produit fournisseur
|
||||
\version $Revision$
|
||||
*/
|
||||
\file htdocs/fourn/product/fourn.php
|
||||
\ingroup product
|
||||
\brief Page de la fiche produit fournisseur
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
require("./pre.inc.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"))
|
||||
{
|
||||
|
||||
$product = new ProductFournisseur($db);
|
||||
$result = $product->fetch($_GET["id"], $_GET["id_fourn"]);
|
||||
$product = new ProductFournisseur($db);
|
||||
$result = $product->fetch($_GET["id"], $_GET["id_fourn"]);
|
||||
|
||||
if( $result == 0 )
|
||||
{
|
||||
$product->update($_POST["fourn_ref"], '1', $_POST["price"], $user);
|
||||
}
|
||||
if( $result == 0 )
|
||||
{
|
||||
$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["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.'&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)
|
||||
{
|
||||
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.'&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 '<td colspan="3">';
|
||||
$cat = new Categorie ($db);
|
||||
$way = $cat->print_primary_way($product->id," > ",'fourn/product/liste.php');
|
||||
if ($way == "")
|
||||
{
|
||||
print "Ce produit n'appartient à aucune catégorie";
|
||||
}
|
||||
{
|
||||
print "Ce produit n'appartient <20> aucune cat<61>gorie";
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
print $langs->trans("Category")." : ";
|
||||
print $way;
|
||||
}
|
||||
print $way;
|
||||
}
|
||||
print '</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>'.$langs->trans("Label").'</td><td colspan="2">'.$product->libelle.'</td></tr>';
|
||||
|
||||
print '<td class="photo" valign="top" rowspan="6">';
|
||||
$product->show_photos($conf->produit->dir_output,1,1,0);
|
||||
print '</td></tr>';
|
||||
print '<tr><td width="20%">'.$langs->trans("InternalRef").'</td><td width="40%">'.$product->ref.'</td>';
|
||||
|
||||
print "<tr>";
|
||||
print '<td width="20%">'.$langs->trans("Supplier").'</td><td width="40%">'.$product->fourn->getNomUrl(1).'</td>';
|
||||
print '</tr><tr>';
|
||||
print '<td width="20%">'.$langs->trans("SupplierRef").'</td><td width="40%">'.$product->fourn_ref.'</td>';
|
||||
print '</tr><tr>';
|
||||
print '<td width="20%">'.$langs->trans("BuiingPrice").'</td><td width="40%">'.price($product->buyprice).'</td>';
|
||||
print '</tr>';
|
||||
|
||||
print '<tr><td colspan="2">'.$langs->trans("Description").'</td></tr>';
|
||||
print '<tr><td valign="top" colspan="2">'.nl2br($product->description).' </td></tr>';
|
||||
|
||||
print "</table><br>\n";
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tr class="liste_titre"><td>';
|
||||
print $langs->trans("Date").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Price").'</td>';
|
||||
print '<td align="center">'.$langs->trans("Quantity").'</td>';
|
||||
print '</tr>';
|
||||
|
||||
/*
|
||||
* Prix
|
||||
*/
|
||||
|
||||
$sql = "SELECT p.price, p.quantity,".$db->pdate("tms") ." as date_releve";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as p";
|
||||
$sql .=" WHERE p.fk_soc = ".$product->fourn->id;
|
||||
$sql .= " AND p.fk_product = ".$product->id;
|
||||
$sql .= " ORDER BY p.quantity ASC";
|
||||
$resql= $db->query($sql) ;
|
||||
if ($resql)
|
||||
{
|
||||
print '<td class="photo" valign="top" rowspan="6">';
|
||||
$product->show_photos($conf->produit->dir_output,1,1,0);
|
||||
print '</td></tr>';
|
||||
|
||||
print "<tr>";
|
||||
print '<td width="20%">'.$langs->trans("Supplier").'</td><td width="40%">'.$product->fourn->getNomUrl(1).'</td>';
|
||||
print '</tr><tr>';
|
||||
print '<td width="20%">'.$langs->trans("SupplierRef").'</td><td width="40%">'.$product->fourn_ref.'</td>';
|
||||
print '</tr><tr>';
|
||||
print '<td width="20%">'.$langs->trans("BuiingPrice").'</td><td width="40%">'.price($product->buyprice).'</td>';
|
||||
print '</tr>';
|
||||
|
||||
print '<tr><td colspan="2">'.$langs->trans("Description").'</td></tr>';
|
||||
print '<tr><td valign="top" colspan="2">'.nl2br($product->description).' </td></tr>';
|
||||
|
||||
print "</table><br>\n";
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tr class="liste_titre"><td>';
|
||||
print $langs->trans("Date").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Price").'</td>';
|
||||
print '<td align="center">'.$langs->trans("Quantity").'</td>';
|
||||
print '</tr>';
|
||||
|
||||
/*
|
||||
* Prix
|
||||
*/
|
||||
|
||||
$sql = "SELECT p.price, p.quantity,".$db->pdate("tms") ." as date_releve";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as p";
|
||||
$sql .=" WHERE p.fk_soc = ".$product->fourn->id;
|
||||
$sql .= " AND p.fk_product = ".$product->id;
|
||||
$sql .= " ORDER BY p.quantity ASC";
|
||||
$resql= $db->query($sql) ;
|
||||
if ($resql)
|
||||
{
|
||||
$num_fournisseur = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
$var=True;
|
||||
$var=True;
|
||||
while ($i < $num_fournisseur)
|
||||
{
|
||||
$objp = $db->fetch_object($resql);
|
||||
$var=!$var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<td>'.dol_print_date($objp->date_releve).'</td>';
|
||||
print '<td align="right">'.price($objp->price).'</td>';
|
||||
print '<td align="center">'.$objp->quantity.'</td></tr>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
{
|
||||
$objp = $db->fetch_object($resql);
|
||||
$var=!$var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<td>'.dol_print_date($objp->date_releve).'</td>';
|
||||
print '<td align="right">'.price($objp->price).'</td>';
|
||||
print '<td align="center">'.$objp->quantity.'</td></tr>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
$db->free($resql);
|
||||
}
|
||||
print '</table>';
|
||||
|
||||
/*
|
||||
*
|
||||
* Fiche en mode edition
|
||||
*
|
||||
*/
|
||||
if (($_GET["action"] == 'edit' || $_GET["action"] == 're-edit') && $user->rights->produit->creer)
|
||||
{
|
||||
}
|
||||
print '</table>';
|
||||
|
||||
/*
|
||||
*
|
||||
* Fiche en mode edition
|
||||
*
|
||||
*/
|
||||
if (($_GET["action"] == 'edit' || $_GET["action"] == 're-edit') && ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
|
||||
$action = 'fourn.php?id='.$product->id.'&id_fourn='.$product->fourn->id;
|
||||
|
||||
@ -191,36 +191,35 @@ if ($_GET["id"])
|
||||
print '<input type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
|
||||
print '</table>';
|
||||
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&id='.$product->id.'&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&id='.$product->id.'&id_fourn='.$product->fourn->id.'">'.$langs->trans("Modify").'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
print "\n</div>\n";
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print $langs->trans("ErrorUnknown");
|
||||
print $langs->trans("ErrorUnknown");
|
||||
}
|
||||
$db->close();
|
||||
|
||||
llxFooter("<em>Dernière modification $Date$ révision $Revision$</em>");
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@ -30,11 +30,11 @@
|
||||
|
||||
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"));
|
||||
|
||||
@ -32,7 +32,7 @@ require_once(DOL_DOCUMENT_ROOT."/societe.class.php");
|
||||
$langs->load("products");
|
||||
$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"];
|
||||
$sRefSupplier=isset($_GET["srefsupplier"])?$_GET["srefsupplier"]:$_POST["srefsupplier"];
|
||||
@ -52,7 +52,7 @@ $offset = $limit * $page ;
|
||||
if (! $sortfield) $sortfield="p.ref";
|
||||
if (! $sortorder) $sortorder="DESC";
|
||||
|
||||
if (! empty($_POST["button_removefilter"]))
|
||||
if (! empty($_POST["button_removefilter"]))
|
||||
{
|
||||
$sref="";
|
||||
$sRefSupplier="";
|
||||
@ -155,11 +155,11 @@ if ($resql)
|
||||
}
|
||||
|
||||
if (! empty($supplier->id)) $texte = $langs->trans("ListOfSupplierProductForSupplier",$supplier->nom);
|
||||
else $texte = $langs->trans("List");
|
||||
else $texte = $langs->trans("List");
|
||||
|
||||
llxHeader("","",$texte);
|
||||
|
||||
|
||||
|
||||
$param="&envente=$envente&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":"");
|
||||
print_barre_liste($texte, $page, "liste.php", $param, $sortfield, $sortorder,'',$num);
|
||||
|
||||
@ -225,21 +225,21 @@ if ($resql)
|
||||
$productstatic->type=$objp->fk_product_type;
|
||||
print $productstatic->getNomUrl(1,'supplier');
|
||||
print '</td>';
|
||||
|
||||
|
||||
print '<td>'.$objp->ref_fourn.'</td>';
|
||||
|
||||
|
||||
print '<td>'.$objp->label.'</td>'."\n";
|
||||
|
||||
|
||||
$companystatic->nom=$objp->nom;
|
||||
$companystatic->id=$objp->socid;
|
||||
print '<td>'.$companystatic->getNomUrl(1,'supplier').'</td>';
|
||||
|
||||
|
||||
print '<td align="right">'.price($objp->price).'</td>';
|
||||
|
||||
|
||||
print '<td align="right">'.$objp->qty.'</td>';
|
||||
|
||||
|
||||
print '<td align="right">'.price($objp->unitprice).'</td>';
|
||||
|
||||
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
}
|
||||
|
||||
@ -28,11 +28,11 @@ require("./pre.inc.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))
|
||||
@ -83,7 +83,7 @@ if ($_GET["id"])
|
||||
$hselected = $h;
|
||||
$h++;
|
||||
|
||||
//Affichage onglet Catégories
|
||||
//Affichage onglet Cat<EFBFBD>gories
|
||||
if ($conf->categorie->enabled){
|
||||
$head[$h][0] = DOL_URL_ROOT."/fourn/product/categorie.php?id=".$product->id;
|
||||
$head[$h][1] = $langs->trans('Categories');
|
||||
@ -111,7 +111,7 @@ if ($_GET["id"])
|
||||
* 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"));
|
||||
|
||||
@ -162,7 +162,7 @@ if ($_GET["id"])
|
||||
|
||||
print '</a>';
|
||||
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"].'&action=delete&file='.urlencode($pdir.$filename).'">'.img_delete().'</a>';
|
||||
}
|
||||
@ -196,17 +196,15 @@ if ($_GET["id"])
|
||||
|
||||
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&id='.$product->id.'">';
|
||||
print $langs->trans("AddPhoto").'</a>';
|
||||
print '<a class="butAction" href="photos.php?action=ajout_photo&id='.$product->id.'">';
|
||||
print $langs->trans("AddPhoto").'</a>';
|
||||
}
|
||||
}
|
||||
|
||||
print "\n</div>\n";
|
||||
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -215,11 +213,7 @@ else
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter("<em>Dernière modification $Date$ révision $Revision$</em>");
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
?>
|
||||
|
||||
@ -55,7 +55,7 @@ function llxHeader($head = "", $title="", $help_url='',$addons='')
|
||||
$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"));
|
||||
|
||||
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&type=0", $langs->trans("NewProduct"));
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ class Import
|
||||
// Permission
|
||||
$this->array_import_perms[$i]=$user->admin;
|
||||
// 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
|
||||
$this->array_import_code[$i]=$module->import_code[$r];
|
||||
// Libelle du dataset export
|
||||
@ -138,9 +138,9 @@ class Import
|
||||
// Requete sql du dataset
|
||||
$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[$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++;
|
||||
// }
|
||||
}
|
||||
|
||||
@ -21,14 +21,14 @@
|
||||
|
||||
/**
|
||||
\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$
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
\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
|
||||
@ -39,35 +39,35 @@ class FormBarCode
|
||||
|
||||
/**
|
||||
\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)
|
||||
{
|
||||
$this->db = $DB;
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Liste de sélection du générateur de codes barres
|
||||
* \param selected Id code pré-sélectionné
|
||||
* \brief Liste de s<EFBFBD>lection du g<EFBFBD>n<EFBFBD>rateur de codes barres
|
||||
* \param selected Id code pr<EFBFBD>-s<EFBFBD>lectionn<EFBFBD>
|
||||
* \param code_id Id du code barre
|
||||
* \param idForm Id du formulaire
|
||||
*/
|
||||
function setBarcodeEncoder($selected=0,$barcodelist,$code_id,$idForm='formbarcode')
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
|
||||
$disable = '';
|
||||
|
||||
// On vérifie si le code de barre est déjà sélectionné par défaut dans le module produit
|
||||
if (($conf->produit->enabled && $conf->global->PRODUIT_DEFAULT_BARCODE_TYPE == $code_id) ||
|
||||
|
||||
// We check if barcode is already selected by default
|
||||
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))
|
||||
{
|
||||
$disable = 'disabled="disabled"';
|
||||
}
|
||||
|
||||
|
||||
$select_encoder = '<form action="barcode.php" method="post" id="'.$idForm.'">';
|
||||
$select_encoder.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
$select_encoder.= '<input type="hidden" name="action" value="update">';
|
||||
@ -83,30 +83,30 @@ class FormBarCode
|
||||
|
||||
return $select_encoder;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \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 useempty Affiche valeur vide dans liste
|
||||
*/
|
||||
function select_barcode_type($selected='',$htmlname='coder_id',$useempty=0)
|
||||
{
|
||||
global $langs,$conf;
|
||||
|
||||
|
||||
$sql = "SELECT rowid, code, libelle";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type";
|
||||
$sql.= " WHERE coder <> '0'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " ORDER BY rowid";
|
||||
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$num = $this->db->num_rows($result);
|
||||
$i = 0;
|
||||
|
||||
if ($useempty && $num > 0)
|
||||
|
||||
if ($useempty && $num > 0)
|
||||
{
|
||||
print '<select class="flat" name="'.$htmlname.'">';
|
||||
print '<option value="0"> </option>';
|
||||
@ -116,7 +116,7 @@ class FormBarCode
|
||||
print '<select disabled="disabled" class="flat" name="'.$htmlname.'">';
|
||||
print '<option value="0" selected="true">'.$langs->trans('NoActivatedBarcode').'</option>';
|
||||
}
|
||||
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
@ -138,11 +138,11 @@ class FormBarCode
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Affiche formulaire de selection du type de code barre
|
||||
* \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
|
||||
*/
|
||||
function form_barcode_type($page, $selected='', $htmlname='barcodetype_id')
|
||||
|
||||
@ -63,16 +63,16 @@ class box_produits extends ModeleBoxes {
|
||||
global $user, $langs, $db, $conf;
|
||||
|
||||
$this->max=$max;
|
||||
|
||||
|
||||
include_once(DOL_DOCUMENT_ROOT."/product.class.php");
|
||||
$productstatic=new Product($db);
|
||||
|
||||
$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";
|
||||
|
||||
|
||||
$sql = "SELECT p.rowid, p.label, p.price, p.price_base_type, p.price_ttc, p.fk_product_type, p.tms, p.envente";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
|
||||
if ($conf->categorie->enabled && !$user->rights->categorie->voir)
|
||||
@ -83,6 +83,8 @@ class box_produits extends ModeleBoxes {
|
||||
$clause = " AND";
|
||||
}
|
||||
$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.= $db->plimit($max, 0);
|
||||
|
||||
@ -120,7 +122,7 @@ class box_produits extends ModeleBoxes {
|
||||
$this->info_box_contents[$i][1] = array('td' => 'align="left"',
|
||||
'text' => $objp->label,
|
||||
'url' => DOL_URL_ROOT."/product/fiche.php?id=".$objp->rowid);
|
||||
|
||||
|
||||
if ($objp->price_base_type == 'HT')
|
||||
{
|
||||
$price=price($objp->price);
|
||||
@ -164,7 +166,7 @@ class box_produits extends ModeleBoxes {
|
||||
{
|
||||
parent::showBox($this->info_box_head, $this->info_box_contents);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -61,13 +61,13 @@ class box_services_vendus extends ModeleBoxes {
|
||||
global $user, $langs, $db, $conf;
|
||||
|
||||
$this->max=$max;
|
||||
|
||||
|
||||
include_once(DOL_DOCUMENT_ROOT."/contrat/contrat.class.php");
|
||||
$contratlignestatic=new ContratLigne($db);
|
||||
|
||||
$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.= " c.rowid,";
|
||||
@ -101,14 +101,14 @@ class box_services_vendus extends ModeleBoxes {
|
||||
{
|
||||
$num = $db->num_rows($result);
|
||||
$now=gmmktime();
|
||||
|
||||
|
||||
$i = 0;
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$objp = $db->fetch_object($result);
|
||||
$datem=$db->jdate($objp->datem);
|
||||
|
||||
|
||||
// Multilangs
|
||||
if ($conf->global->MAIN_MULTILANGS) // si l'option est active
|
||||
{
|
||||
@ -132,7 +132,7 @@ class box_services_vendus extends ModeleBoxes {
|
||||
'text' => $objp->label,
|
||||
'maxlength' => 16,
|
||||
'url' => DOL_URL_ROOT."/contrat/fiche.php?id=".$objp->rowid);
|
||||
|
||||
|
||||
$this->info_box_contents[$i][2] = array('td' => 'align="left"',
|
||||
'text' => $objp->nom,
|
||||
'maxlength' => 28,
|
||||
@ -144,12 +144,12 @@ class box_services_vendus extends ModeleBoxes {
|
||||
$this->info_box_contents[$i][4] = array('td' => 'align="right" width="18"',
|
||||
'text' => $contratlignestatic->LibStatut($objp->statut,3)
|
||||
);
|
||||
|
||||
|
||||
$i++;
|
||||
}
|
||||
if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'align="center"','text'=>$langs->trans("NoContractedProducts"));
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->info_box_contents[0][0] = array( 'td' => 'align="left"',
|
||||
'maxlength'=>500,
|
||||
|
||||
@ -606,26 +606,26 @@ class MenuLeft {
|
||||
}
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&type=0", $langs->trans("Popularity"), 1, $user->rights->propale->lire);
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&type=0", $langs->trans("Popularity"), 1, $user->rights->produit->lire && $user->rights->propale->lire);
|
||||
}
|
||||
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
|
||||
if ($conf->service->enabled)
|
||||
{
|
||||
$newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&type=1", $langs->trans("Services"), 0, $user->rights->produit->lire);
|
||||
$newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&type=1", $langs->trans("Services"), 0, $user->rights->service->lire);
|
||||
if ($user->societe_id == 0)
|
||||
{
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&action=create&type=1", $langs->trans("NewService"), 1, $user->rights->produit->creer);
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&action=create&type=1", $langs->trans("NewService"), 1, $user->rights->service->creer);
|
||||
}
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/liste.php?leftmenu=service&type=1", $langs->trans("List"), 1, $user->rights->produit->lire);
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/liste.php?leftmenu=service&type=1", $langs->trans("List"), 1, $user->rights->service->lire);
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&type=1", $langs->trans("Popularity"), 1, $user->rights->propale->lire);
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&type=1", $langs->trans("Popularity"), 1, $user->rights->service->lire && $user->rights->propale->lire);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -588,27 +588,27 @@ class MenuLeft {
|
||||
}
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&type=0", $langs->trans("Popularity"), 1, $user->rights->propale->lire);
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&type=0", $langs->trans("Popularity"), 1, $user->rights->produit->lire && $user->rights->propale->lire);
|
||||
}
|
||||
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
|
||||
if ($conf->service->enabled)
|
||||
{
|
||||
$newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&type=1", $langs->trans("Services"), 0, $user->rights->produit->lire);
|
||||
$newmenu->add(DOL_URL_ROOT."/product/index.php?leftmenu=service&type=1", $langs->trans("Services"), 0, $user->rights->service->lire);
|
||||
if ($user->societe_id == 0)
|
||||
{
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&action=create&type=1", $langs->trans("NewService"), 1, $user->rights->produit->creer);
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/fiche.php?leftmenu=service&action=create&type=1", $langs->trans("NewService"), 1, $user->rights->service->creer);
|
||||
}
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/liste.php?leftmenu=service&type=1", $langs->trans("List"), 1, $user->rights->service->lire);
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&type=1", $langs->trans("Popularity"), 1, $user->rights->propale->lire);
|
||||
$newmenu->add_submenu(DOL_URL_ROOT."/product/popuprop.php?leftmenu=stats&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&type=1", $langs->trans("List"), 1, $user->rights->produit->lire);
|
||||
}
|
||||
|
||||
// Categories
|
||||
|
||||
@ -137,7 +137,7 @@ class MenuTop {
|
||||
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
|
||||
|
||||
$idsel='id="mainmenu_products" ';
|
||||
if ($user->rights->produit->lire)
|
||||
if ($user->rights->produit->lire || $user->rights->service->lire)
|
||||
{
|
||||
print '<td class="tmenu">';
|
||||
print '<a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a>';
|
||||
|
||||
@ -137,7 +137,7 @@ class MenuTop {
|
||||
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
|
||||
|
||||
$idsel='id="mainmenu_products" ';
|
||||
if ($user->rights->produit->lire)
|
||||
if ($user->rights->produit->lire || $user->service->lire)
|
||||
{
|
||||
print '<td class="tmenu">';
|
||||
print '<a '.$class.' '.$idsel.'href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a>';
|
||||
@ -452,7 +452,7 @@ class MenuTop {
|
||||
|
||||
print '</tr></table>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -129,7 +129,7 @@ class MenuTop {
|
||||
if ($conf->service->enabled) { $chaine.=$langs->trans("Services"); }
|
||||
|
||||
$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&leftmenu="'.($this->atarget?" target=$this->atarget":"").'>'.$chaine.'</a></td>';
|
||||
}
|
||||
|
||||
@ -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&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&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&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&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&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&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&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', 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', 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', 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', 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', 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->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->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->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->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->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->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 && $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', 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__);
|
||||
|
||||
@ -70,7 +70,7 @@ class modProduit extends DolibarrModules
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array("modStock","modService","modBarcode");
|
||||
$this->requiredby = array("modStock","modBarcode");
|
||||
|
||||
// Config pages
|
||||
$this->config_page_url = array("produit.php");
|
||||
@ -98,34 +98,27 @@ class modProduit extends DolibarrModules
|
||||
|
||||
$r++;
|
||||
$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][3] = 1; // La permission est-elle une permission par defaut
|
||||
$this->rights[$r][4] = 'lire';
|
||||
|
||||
$r++;
|
||||
$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][3] = 0; // La permission est-elle une permission par defaut
|
||||
$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++;
|
||||
$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][3] = 0; // La permission est-elle une permission par defaut
|
||||
$this->rights[$r][4] = 'supprimer';
|
||||
|
||||
$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][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
|
||||
@ -23,23 +23,22 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
\defgroup service Module service
|
||||
\brief Module pour gerer le suivi de services predefinis
|
||||
* \defgroup service Module service
|
||||
* \brief Module pour gerer le suivi de services predefinis
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/modules/modService.class.php
|
||||
\ingroup service
|
||||
\brief Fichier de description et activation du module Service
|
||||
* \file htdocs/includes/modules/modService.class.php
|
||||
* \ingroup service
|
||||
* \brief Fichier de description et activation du module Service
|
||||
*/
|
||||
|
||||
include_once(DOL_DOCUMENT_ROOT ."/includes/modules/DolibarrModules.class.php");
|
||||
|
||||
|
||||
/** \class modService
|
||||
\brief Classe de description et activation du module Service
|
||||
/** \class modService
|
||||
* \brief Classe de description et activation du module Service
|
||||
*/
|
||||
|
||||
class modService extends DolibarrModules
|
||||
{
|
||||
|
||||
@ -68,7 +67,7 @@ class modService extends DolibarrModules
|
||||
$this->dirs = array("/produit/temp");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array("modProduit");
|
||||
$this->depends = array();
|
||||
$this->requiredby = array("modContrat");
|
||||
|
||||
// Constants
|
||||
@ -81,33 +80,35 @@ class modService extends DolibarrModules
|
||||
// Permissions
|
||||
$this->rights = array();
|
||||
$this->rights_class = 'service';
|
||||
$r=0;
|
||||
|
||||
/* Pour l'instant droits sur services non geres
|
||||
$this->rights[1][0] = 331; // id de la permission
|
||||
$this->rights[1][1] = 'Lire les services'; // libelle de la permission
|
||||
$this->rights[1][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[1][4] = 'lire';
|
||||
$r++;
|
||||
$this->rights[$r][0] = 531; // id de la permission
|
||||
$this->rights[$r][1] = 'Lire les services'; // libelle de la permission
|
||||
$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][4] = 'lire';
|
||||
|
||||
$this->rights[2][0] = 332; // id de la permission
|
||||
$this->rights[2][1] = 'Creer/modifier les services'; // libelle de la permission
|
||||
$this->rights[2][2] = 'w'; // type de la permission (deprecie a ce jour)
|
||||
$this->rights[2][3] = 0; // La permission est-elle une permission par defaut
|
||||
$this->rights[2][4] = 'creer';
|
||||
$r++;
|
||||
$this->rights[$r][0] = 532; // id de la permission
|
||||
$this->rights[$r][1] = 'Creer/modifier les 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] = 'creer';
|
||||
|
||||
$this->rights[3][0] = 333; // id de la permission
|
||||
$this->rights[3][1] = 'Commander un service'; // libelle de la permission
|
||||
$this->rights[3][2] = 'w'; // type de la permission (deprecie a ce jour)
|
||||
$this->rights[3][3] = 0; // La permission est-elle une permission par defaut
|
||||
$this->rights[3][4] = 'commander';
|
||||
|
||||
$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] = 534; // id de la permission
|
||||
$this->rights[$r][1] = 'Supprimer les services'; // libelle de la permission
|
||||
$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][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';
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -132,7 +132,7 @@ if ($user->societe_id == 0)
|
||||
! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire,
|
||||
! empty($conf->adherent->enabled) && $user->rights->adherent->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->commande->enabled) && $user->rights->commande->lire,
|
||||
! empty($conf->facture->enabled) && $user->rights->facture->lire,
|
||||
|
||||
@ -350,11 +350,9 @@ Permission25 = Enviar els pressupostos
|
||||
Permission26 = Tancar pressupostos
|
||||
Permission27 = Eliminar pressupostos
|
||||
Permission28 = Exportar els pressupostos
|
||||
Permission31 = Consultar productes/serveis
|
||||
Permission32 = Crear/modificar productes/serveis
|
||||
Permission33 = Demanar productes/serveis
|
||||
Permission34 = Eliminar productes/serveis
|
||||
Permission36 = Exportar productes/serveis
|
||||
Permission31 = Consultar productes
|
||||
Permission32 = Crear/modificar productes
|
||||
Permission34 = Eliminar productes
|
||||
Permission38 = Exportar productes
|
||||
Permission41 = Consultar projectes
|
||||
Permission42 = Crear/modificar projectes
|
||||
@ -480,6 +478,10 @@ Permission401 = Consultar havers
|
||||
Permission402 = Crear/modificar havers
|
||||
Permission403 = Validar havers
|
||||
Permission404 = Eliminar havers
|
||||
Permission531 = Consultar serviceis
|
||||
Permission532 = Crear/modificar serviceis
|
||||
Permission534 = Eliminar serviceis
|
||||
Permission538 = Exportar serviceis
|
||||
Permission700 = Consultar subvencions
|
||||
Permission701 = Crear/modificar subvencions
|
||||
Permission702 = Eliminar subvencions
|
||||
|
||||
@ -352,11 +352,9 @@ Permission25=Send commercial proposals
|
||||
Permission26=Close commercial proposals
|
||||
Permission27=Delete commercial proposals
|
||||
Permission28=Export commercial proposals
|
||||
Permission31=Read products/services
|
||||
Permission32=Create/modify products/services
|
||||
Permission33=Command products/services
|
||||
Permission34=Delete products/services
|
||||
Permission36=Export products/services
|
||||
Permission31=Read products
|
||||
Permission32=Create/modify products
|
||||
Permission34=Delete products
|
||||
Permission38=Export products
|
||||
Permission41=Read projects and tasks
|
||||
Permission42=Create/modify projects, edit tasks for my projects
|
||||
@ -482,6 +480,10 @@ Permission401=Read discounts
|
||||
Permission402=Create/modify discounts
|
||||
Permission403=Validate discounts
|
||||
Permission404=Delete discounts
|
||||
Permission531=Read services
|
||||
Permission532=Create/modify services
|
||||
Permission534=Delete services
|
||||
Permission538=Export services
|
||||
Permission700=Read donations
|
||||
Permission701=Create/modify donations
|
||||
Permission702=Delete donations
|
||||
|
||||
@ -350,11 +350,9 @@ Permission25 = Enviar los presupuestos
|
||||
Permission26 = Cerrar presupuestos
|
||||
Permission27 = Eliminar presupuestos
|
||||
Permission28 = Exportar los presupuestos
|
||||
Permission31 = Consultar productos/servicios
|
||||
Permission32 = Crear/modificar productos/servicios
|
||||
Permission33 = Pedir productos/servicios
|
||||
Permission34 = Eliminar productos/servicios
|
||||
Permission36 = Exportar productos/servicios
|
||||
Permission31 = Consultar productos
|
||||
Permission32 = Crear/modificar productos
|
||||
Permission34 = Eliminar productos
|
||||
Permission38 = Exportar productos
|
||||
Permission41 = Consultar proyectos
|
||||
Permission42 = Crear/modificar proyectos
|
||||
@ -480,6 +478,10 @@ Permission401 = Consultar haberes
|
||||
Permission402 = Crear/modificar haberes
|
||||
Permission403 = Validar haberes
|
||||
Permission404 = Eliminar haberes
|
||||
Permission531 = Consultar servicios
|
||||
Permission532 = Crear/modificar servicios
|
||||
Permission534 = Eliminar servicios
|
||||
Permission538 = Exportar servicios
|
||||
Permission700 = Consultar subvenciones
|
||||
Permission701 = Crear/modificar subvenciones
|
||||
Permission702 = Eliminar subvenciones
|
||||
|
||||
@ -351,11 +351,9 @@ Permission25 = Envoyer les propositions commerciales
|
||||
Permission26 = Clôturer les propositions commerciales
|
||||
Permission27 = Supprimer les propositions commerciales
|
||||
Permission28 = Exporter les propositions commerciales
|
||||
Permission31 = Consulter les produits/services
|
||||
Permission32 = Créer/modifier les produits/services
|
||||
Permission33 = Commander les produits/services
|
||||
Permission34 = Supprimer les produits/services
|
||||
Permission36 = Exporter les produits/services
|
||||
Permission31 = Consulter les produits
|
||||
Permission32 = Créer/modifier les produits
|
||||
Permission34 = Supprimer les produits
|
||||
Permission38 = Exporter les produits
|
||||
Permission41 = Consulter les projets et tâches
|
||||
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
|
||||
Permission403 = Valider 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
|
||||
Permission701 = Créer/modifier les dons
|
||||
Permission702 = Supprimer les dons
|
||||
|
||||
@ -9,7 +9,7 @@ HTMLCharset =Charset per le pagine HTML
|
||||
DBStoringCharset =Charset database per memorizzare i dati
|
||||
DBSortingCharset =Charset database per ordinare i dati
|
||||
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
|
||||
DolibarrUser =Dolibarr utente
|
||||
InternalUser =Utente interno
|
||||
@ -22,13 +22,13 @@ SetupArea =Sezione impostazioni
|
||||
SecuritySetup =Impostazioni per la sicurezza
|
||||
ErrorModuleRequirePHPVersion =Errore, questo modulo richiede PHP 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
|
||||
DisableJavascript =Disabilita JavaScript e funzioni 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
|
||||
NotAvailableWhenAjaxDisabled =Non disponibile quando Ajax è disabilitato
|
||||
NotAvailableWhenAjaxDisabled =Non disponibile quando Ajax <EFBFBD> disabilitato
|
||||
JavascriptDisabled =JavaScript sia disattivato
|
||||
UsePopupCalendar =Utilizzare popup per l'inserimento delle date
|
||||
UsePreviewTabs =Utilizzare le schede anteprima
|
||||
@ -38,12 +38,12 @@ Mask =Maschera
|
||||
NextValue =Prossimo valore
|
||||
NextValueForInvoices =Prossimo valore (fatture)
|
||||
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 è
|
||||
NoMaxSizeByPHPLimit =Nota: Nessun limite è fissato nel vostro configurazione di PHP
|
||||
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 <EFBFBD> fissato nel vostro configurazione di PHP
|
||||
MaxSizeForUploadedFiles =La dimensione massima per i file caricati (0 per disabilitare qualsiasi upload)
|
||||
UseCaptchaCode =Utilizzare il codice grafico sulla pagina di accesso
|
||||
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
|
||||
MenuSetup =Impostazioni per la gestione Menu
|
||||
MenuLimits =Limiti e precisione
|
||||
@ -83,7 +83,7 @@ MaxNbOfLinesForBoxes =Max numero di linee per caselle
|
||||
PositionByDefault =Per impostazione predefinita
|
||||
Position =Ordine
|
||||
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
|
||||
LangFile =File. Lang
|
||||
System =Sistema
|
||||
@ -91,9 +91,9 @@ SystemInfo =Informazioni di sistema
|
||||
SystemTools =Strumenti di gestione
|
||||
SystemToolsArea =Sezione strumenti di gestione del sistema
|
||||
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)
|
||||
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
|
||||
PurgeNothingToDelete =nessuna directory da eliminare.
|
||||
PurgeNDirectoriesDeleted =<b> %s </b> di file o directory soppresso.
|
||||
@ -101,7 +101,7 @@ NewBackup =Nuovo backup
|
||||
GenerateBackup =Genera il backup
|
||||
Backup =Backup
|
||||
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
|
||||
BackupResult =Backup risultato
|
||||
BackupFileSuccessfullyCreated =File di backup generati con successo
|
||||
@ -110,13 +110,13 @@ NoBackupFileAvailable =Nessun file di backup disponibile.
|
||||
ExportMethod =Metodo di esportazione
|
||||
ImportMethod =Importa metodo
|
||||
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
|
||||
FileNameToGenerate =Il nome del file da generare
|
||||
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
|
||||
UseTransactionnalMode =Utilizzare la modalità transazionale
|
||||
UseTransactionnalMode =Utilizzare la modalit<EFBFBD> transazionale
|
||||
FullPathToMysqldumpCommand =Percorso completo di comando mysqldump
|
||||
ExportOptions =Opzioni di esportazione
|
||||
AddDropDatabase =Aggiungere goccia database comando
|
||||
@ -126,33 +126,33 @@ NameColumn =Nome colonne
|
||||
ExtendedInsert =Estensione INSERT
|
||||
DelayedInsert =Ritardato inserire
|
||||
EncodeBinariesInHexa =Codificare dati binari in esadecimale
|
||||
Yes =Sì
|
||||
Yes =S<EFBFBD>
|
||||
No =No
|
||||
AutoDetectLang =Autorileva (lingua del browser)
|
||||
FeatureDisabledInDemo =Disabili in funzione demo
|
||||
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> .
|
||||
ModulesDesc =Dolibarr moduli di definire quali è attivata la funzionalità del software. Alcuni moduli richiedono le autorizzazioni è 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.
|
||||
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<EFBFBD> a seconda del software esterno, sistemi o servizi.
|
||||
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
|
||||
BoxesActivated =Caselle attivate
|
||||
ActivateOn =Attiva sul
|
||||
ActiveOn =Attivati sul
|
||||
SourceFile =File sorgente
|
||||
AutomaticIfJavascriptDisabled =Automatico se Javascript è disattivato
|
||||
AvailableOnlyIfJavascriptNotDisabled =Disponibile solo se JavaScript non è disattivato
|
||||
AutomaticIfJavascriptDisabled =Automatico se Javascript <EFBFBD> disattivato
|
||||
AvailableOnlyIfJavascriptNotDisabled =Disponibile solo se JavaScript non <EFBFBD> disattivato
|
||||
AvailableOnlyIfJavascriptAndAjaxNotDisabled =Disponibile solo se JavaScript e Ajax non sono disabilitati
|
||||
Required =Richiesto
|
||||
Security =Sicurezza
|
||||
Passwords =Password
|
||||
DoNotStoreClearPassword =Non fare memorizzare le password in chiaro nella banca dati
|
||||
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
|
||||
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
|
||||
DolibarrLicense =Licenza
|
||||
DolibarrProjectLeader =Project leader
|
||||
@ -162,10 +162,10 @@ OfficialWebSiteFr =Francese sito ufficiale
|
||||
OfficialWikiFr =Wiki francese
|
||||
CurrentTopMenuHandler =Gestore attuale del menu in alto
|
||||
CurrentLeftMenuHandler =Gestore attuale del menu a sinistra
|
||||
MeasuringUnit =Unità di misura
|
||||
MeasuringUnit =Unit<EFBFBD> di misura
|
||||
Emails =E-mail
|
||||
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_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>)
|
||||
@ -180,30 +180,30 @@ ModuleFamilyProjects =Progetti / collaboratif
|
||||
ModuleFamilyOther =Altro
|
||||
ModuleFamilyTechnic =Mutli-moduli strumenti
|
||||
ModuleFamilyExperimental =Sperimentale moduli
|
||||
ModuleFamilyFinancial =Moduli finanziari (Contabilità / Tesoro)
|
||||
ModuleFamilyFinancial =Moduli finanziari (Contabilit<EFBFBD> / Tesoro)
|
||||
ModuleFamilyECM =ECM
|
||||
MenuHandlers =Menu gestori
|
||||
MenuAdmin =Menu editor
|
||||
ThisIsProcessToFollow =Questa è l'impostazione del processo:
|
||||
ThisIsProcessToFollow =Questa <EFBFBD> l'impostazione del processo:
|
||||
StepNb =Passo %s
|
||||
DownloadPackageFromWebSite =Scarica il pacchetto dal sito %s.
|
||||
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
|
||||
CallUpdatePage =Vai alla pagina che aggiorna la struttura del database e dati su %s.
|
||||
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>
|
||||
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>
|
||||
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.
|
||||
ServerAvailableOnIPOrPort =Server è 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>
|
||||
DoTestServerAvailability =Server di test di connettività
|
||||
ServerAvailableOnIPOrPort =Server <EFBFBD> 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<EFBFBD>
|
||||
DoTestSend =L'invio di prova
|
||||
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
|
||||
Module0Name =Utenti e gruppi
|
||||
@ -212,7 +212,7 @@ Module1Name =Terzi
|
||||
Module1Desc =Gestione Aziende e contatti
|
||||
Module2Name =Commerciale
|
||||
Module2Desc =Gestione commerciale
|
||||
Module10Name =Contabilità
|
||||
Module10Name =Contabilit<EFBFBD>
|
||||
Module10Desc =Gestione contabile semplice (fatture e pagamenti)
|
||||
Module20Name =Proposte
|
||||
Module20Desc =Gestione proposte commerciali
|
||||
@ -255,7 +255,7 @@ Module80Desc =Gestione spedizioni e consegne ordini
|
||||
Module85Name =Banche e cassa
|
||||
Module85Desc =La gestione di conti bancari o conti di cassa
|
||||
Module130Name =Esperto contabile
|
||||
Module130Desc =Gestione contabilità per esperti (partita doppia)
|
||||
Module130Desc =Gestione contabilit<EFBFBD> per esperti (partita doppia)
|
||||
Module200Name =LDAP
|
||||
Module200Desc =Sincronizzazione directory LDAP
|
||||
Module210Name =Postnuke
|
||||
@ -309,11 +309,10 @@ Permission24 =Valida proposte commerciali
|
||||
Permission25 =Inviare proposte commerciali
|
||||
Permission26 =Chiudere proposte commerciali
|
||||
Permission27 =Eliminare proposte commerciali
|
||||
Permission31 =Leggere prodotti / servizi
|
||||
Permission32 =Creare / modificare i prodotti / servizi
|
||||
Permission33 =Comando prodotti / servizi
|
||||
Permission34 =Eliminare i prodotti / servizi
|
||||
Permission36 =Esportazione di prodotti / servizi
|
||||
Permission31 =Leggere prodotti
|
||||
Permission32 =Creare / modificare i prodotti
|
||||
Permission34 =Eliminare i prodotti
|
||||
Permission38 =Esportazione di prodotti
|
||||
Permission41 =Leggere i progetti
|
||||
Permission42 =Creare / modificare i progetti
|
||||
Permission44 =Eliminare progetti
|
||||
@ -339,7 +338,7 @@ Permission92 =Creare / modificare i contributi sociali e iva
|
||||
Permission93 =Eliminare i contributi sociali e iva
|
||||
Permission95 =Leggere le relazioni
|
||||
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
|
||||
Permission101 =Leggere Spedizione
|
||||
Permission102 =Creare / modificare Spedizione
|
||||
@ -393,7 +392,7 @@ Permission254 =Eliminare o disattivare altri utenti
|
||||
Permission255 =Creare / modificare le proprie informazioni utente
|
||||
Permission256 =Modificare la propria password
|
||||
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
|
||||
Permission282 =Creare / modificare i contatti
|
||||
Permission283 =Eliminare contatti
|
||||
@ -408,6 +407,10 @@ Permission401 =Leggere sconti
|
||||
Permission402 =Creare / modificare sconti
|
||||
Permission403 =Validare sconti
|
||||
Permission404 =Eliminare sconti
|
||||
Permission531 =Leggere servizi
|
||||
Permission532 =Creare / modificare i servizi
|
||||
Permission534 =Eliminare i servizi
|
||||
Permission538 =Esportazione di servizi
|
||||
Permission700 =Leggere le donazioni
|
||||
Permission701 =Creare / modificare 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
|
||||
Permission2401 =Leggere azioni (o eventi compiti), collegate al suo conto
|
||||
Permission2402 =Creare / modificare / cancellare le azioni (o eventi compiti), collegata al suo conto
|
||||
Permission2403 =Leggere azioni (eventi o attività) di altri
|
||||
Permission2405 =Creare / modificare / cancellare le azioni (eventi o attività) di altri
|
||||
Permission2403 =Leggere azioni (eventi o attivit<EFBFBD>) di altri
|
||||
Permission2405 =Creare / modificare / cancellare le azioni (eventi o attivit<EFBFBD>) di altri
|
||||
Permission2500 =Leggere documenti
|
||||
Permission2501 =Presentare o cancellare i documenti
|
||||
Permission2515 =Impostazioni Directory documenti
|
||||
DictionnaryCompanyType =Tipi di società
|
||||
DictionnaryCompanyType =Tipi di societ<EFBFBD>
|
||||
DictionnaryCompanyJuridicalType =Forme giuridiche di impresa
|
||||
DictionnaryProspectLevel =Livello prospettiva potenziale cliente
|
||||
DictionnaryCanton =Distretti
|
||||
@ -456,7 +459,7 @@ DictionnaryActions =Azioni elenco
|
||||
DictionnarySocialContributions =Tipi di contributi sociali
|
||||
DictionnaryVAT =Prezzi IVA
|
||||
DictionnaryPaymentConditions =Condizioni di pagamento
|
||||
DictionnaryPaymentModes =Modalità di pagamento
|
||||
DictionnaryPaymentModes =Modalit<EFBFBD> di pagamento
|
||||
DictionnaryTypeContact =Contatto tipi
|
||||
DictionnaryEcotaxe =Ecotassa (RAEE)
|
||||
DictionnaryPaperFormat =Formati di carta
|
||||
@ -466,11 +469,11 @@ BackToModuleList =Torna alla lista moduli
|
||||
BackToDictionnaryList =Torna alla lista dizionari
|
||||
VATReceivedOnly =Tariffa speciale non sono a carico
|
||||
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
|
||||
VATIsNotUsedDesc =Per impostazione predefinita la proposta di IVA è 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.
|
||||
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.
|
||||
LabelUsedByDefault =Etichetta usato in modo predefinito, se non la traduzione può essere trovato per il codice
|
||||
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 <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 <EFBFBD> dichiarata.
|
||||
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<EFBFBD> essere trovato per il codice
|
||||
LabelOnDocuments =Etichetta su documenti
|
||||
NbOfDays =Numeri di giorni
|
||||
AtEndOfMonth =Alla fine del mese
|
||||
@ -511,13 +514,13 @@ DriverType =Driver tipo
|
||||
SummarySystem =Informazioni sul sistema di sintesi
|
||||
SummaryConst =Elenco di tutti i parametri di impostazione Dolibarr
|
||||
SystemUpdate =Aggiornamento del sistema
|
||||
SystemSuccessfulyUpdate =Il sistema è stato aggiornato con successo
|
||||
MenuCompanySetup =Società / Fondazione
|
||||
SystemSuccessfulyUpdate =Il sistema <EFBFBD> stato aggiornato con successo
|
||||
MenuCompanySetup =Societ<EFBFBD> / Fondazione
|
||||
MenuNewUser =Nuovo utente
|
||||
MenuTopManager =Gestione menù principale
|
||||
MenuLeftManager =Gestione menù a sinistra
|
||||
DefaultMenuTopManager =Gestione menù principale
|
||||
DefaultMenuLeftManager =Gestione menù a sinistra
|
||||
MenuTopManager =Gestione men<EFBFBD> principale
|
||||
MenuLeftManager =Gestione men<EFBFBD> a sinistra
|
||||
DefaultMenuTopManager =Gestione men<EFBFBD> principale
|
||||
DefaultMenuLeftManager =Gestione men<EFBFBD> a sinistra
|
||||
Skin =tema Skin
|
||||
DefaultSkin =Tema di default dello Skin
|
||||
MaxSizeList =Max lunghezza per lista
|
||||
@ -527,13 +530,13 @@ MessageLogin =Messaggio pagina di accesso
|
||||
PermanentLeftSearchForm =Modulo di ricerca permanente nel menu di sinistra
|
||||
DefaultLanguage =La lingua di default da usare (codice lingua)
|
||||
EnableMultilangInterface =Attiva l'interfaccia multilingue
|
||||
SystemSuccessfulyUpdated =Il sistema è stato aggiornato con successo
|
||||
CompanyInfo =Informazioni società / fondazione
|
||||
CompanyIds =Identità società / fondazione
|
||||
SystemSuccessfulyUpdated =Il sistema <EFBFBD> stato aggiornato con successo
|
||||
CompanyInfo =Informazioni societ<EFBFBD> / fondazione
|
||||
CompanyIds =Identit<EFBFBD> societ<65> / fondazione
|
||||
CompanyName =Nome
|
||||
CompanyAddress =Indirizzo
|
||||
CompanyZip =Cap
|
||||
CompanyTown =Città
|
||||
CompanyTown =Citt<EFBFBD>
|
||||
CompanyCountry =Paese
|
||||
CompanyCurrency =Principali valute
|
||||
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
|
||||
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.
|
||||
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:
|
||||
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).
|
||||
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.
|
||||
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> <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<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
|
||||
LogEvents =Eventi di audit di sicurezza
|
||||
Audit =Audit
|
||||
ListEvents =Audit eventi
|
||||
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:
|
||||
SystemInfoDesc =Le informazioni di sistema sono varie informazioni tecniche visibili in modalità 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.
|
||||
CompanyFundationDesc =Modifica in questa pagina tutte le informazioni note della società o della fondazione che intendi gestire
|
||||
DisplayDesc =Qui è possibile scegliere i parametri relativi al Dolibarr look and feel
|
||||
SystemInfoDesc =Le informazioni di sistema sono varie informazioni tecniche visibili in modalit<EFBFBD> di sola lettura e solo agli amministratori.
|
||||
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<EFBFBD> o della fondazione che intendi gestire
|
||||
DisplayDesc =Qui <EFBFBD> possibile scegliere i parametri relativi al Dolibarr look and feel
|
||||
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, ...).
|
||||
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.
|
||||
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
|
||||
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.
|
||||
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.
|
||||
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_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)
|
||||
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".
|
||||
NoEventFoundWithCriteria =Nessun evento di sicurezza è stato trovato per la ricerca di tali criteri.
|
||||
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 <EFBFBD> stato trovato per la ricerca di tali criteri.
|
||||
|
||||
##### Users setup #####
|
||||
UserGroupSetup =Impostazioni utenti e gruppi
|
||||
@ -605,17 +608,17 @@ DisableForgetPasswordLinkOnLogonPage =Non mostrare il link "Hai dimentica
|
||||
##### Company setup #####
|
||||
CompanySetup =Impostazioni modulo aziende
|
||||
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.
|
||||
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
|
||||
NotificationsDesc =Notifiche funzione consente di inviare in silenzio automatico della posta, per alcuni Dolibarr eventi, alle imprese che sono configurati per
|
||||
##### Webcal setup #####
|
||||
WebCalSetup =Impostazioni collegamento Webcalendar
|
||||
WebCalSyncro =Aggiungi Dolibarr eventi di WebCalendar
|
||||
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)
|
||||
WebCalNever =Mai
|
||||
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.
|
||||
WebCalTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto.
|
||||
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
|
||||
WebCalAddEventOnCreateCompany =Aggiungi evento di calendario per le imprese creare
|
||||
WebCalAddEventOnStatusPropal =Aggiungi evento in calendario commerciale proposte stato cambiamento
|
||||
WebCalAddEventOnStatusContract =Aggiungi il calendario evento sui contratti cambiamento di stato
|
||||
WebCalAddEventOnStatusBill =Aggiungi evento in calendario fatture 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
|
||||
WebCalCheckWebcalSetup =Forse il webcal modulo di impostazione non è corretta.
|
||||
WebCalUrlForVCalExport =Un link per l'esportazione <b> %s </b> <EFBFBD> disponibile al seguente link: %s
|
||||
WebCalCheckWebcalSetup =Forse il webcal modulo di impostazione non <EFBFBD> corretta.
|
||||
##### Invoices #####
|
||||
BillsSetup =Impostazioni modulo fatture
|
||||
BillsDate =Data fatture
|
||||
@ -646,8 +649,8 @@ CreditNote =Nota di credito
|
||||
CreditNotes =Note di credito
|
||||
ForceInvoiceDate =Forza alla data della fattura la data di convalida
|
||||
DisableRepeatable =Disattiva fattura ripetibile
|
||||
SuggestedPaymentModesIfNotDefinedInInvoice =Suggerire le modalità predefinite di pagamento delle fatture, se non già definite per la fattura
|
||||
EnableEditDeleteValidInvoice =Attiva la possibilità di modificare / cancellare una fattura valida senza pagamento
|
||||
SuggestedPaymentModesIfNotDefinedInInvoice =Suggerire le modalit<EFBFBD> predefinite di pagamento delle fatture, se non gi<67> definite per la fattura
|
||||
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
|
||||
SuggestPaymentByChequeToAddress =Suggerire il pagamento mediante assegno a
|
||||
FreeLegalTextOnInvoices =Testo libero su fatture
|
||||
@ -663,9 +666,9 @@ ProposalsPDFModules =Modelli di documenti per la proposta commerciale
|
||||
ClassifiedInvoiced =Classificati fatturati
|
||||
ClassifiedInvoicedWithOrder =Classifica proposta fatturata nello stesso momento dell'ordine
|
||||
HideTreadedPropal =Nascondi proposte commerciali trattate nella lista
|
||||
AddShippingDateAbility =Aggiungi la possibilità di inserire la data di spedizione
|
||||
AddDeliveryAddressAbility =Aggiungi la possibilità di inserire la data di consegna
|
||||
UseOptionLineIfNoQuantity =Una linea di prodotto / servizio con un importo pari a zero è considerato come una opzione
|
||||
AddShippingDateAbility =Aggiungi la possibilit<EFBFBD> di inserire la data di spedizione
|
||||
AddDeliveryAddressAbility =Aggiungi la possibilit<EFBFBD> di inserire la data di consegna
|
||||
UseOptionLineIfNoQuantity =Una linea di prodotto / servizio con un importo pari a zero <EFBFBD> considerato come una opzione
|
||||
FreeLegalTextOnProposal =Testo libero su proposte commerciali
|
||||
WatermarkOnDraftProposal =Filigrana sulle bozze di proposte commerciali (nessuna se vuota)
|
||||
##### Orders #####
|
||||
@ -682,7 +685,7 @@ TemplatePDFInterventions =Intervento modelli di carta di documenti
|
||||
WatermarkOnDraftInterventionCards =Filigrana su carta di documenti d'intervento (se qualsiasi vuoto)
|
||||
##### Clicktodial #####
|
||||
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 #####
|
||||
Bookmark4uSetup =Impostazioni modulo Bookmark4u
|
||||
##### Interventions #####
|
||||
@ -762,8 +765,8 @@ LDAPBindOK =Collegare / Authentificate al server LDAP di successo (Ser
|
||||
LDAPBindKO =Collegare / Authentificate al server LDAP non riuscita (Server
|
||||
LDAPUnbindSuccessfull =Scollegare successo
|
||||
LDAPUnbindFailed =Scollegare non
|
||||
LDAPConnectToDNSuccessfull =Connessione al DN ( %s) ri ¿½ ussie
|
||||
LDAPConnectToDNFailed =Connessione al DN ( %s) ¿½ ï ¿½ chouï e
|
||||
LDAPConnectToDNSuccessfull =Connessione al DN ( %s) ri <EFBFBD><EFBFBD> ussie
|
||||
LDAPConnectToDNFailed =Connessione al DN ( %s) <EFBFBD><EFBFBD> <20> <20><> chou<6F> e
|
||||
LDAPSetupForVersion3 =Server LDAP configurato per la versione 3
|
||||
LDAPSetupForVersion2 =Server LDAP configurato per la versione 2
|
||||
LDAPDolibarrMapping =Mappatura Dolibarr
|
||||
@ -800,7 +803,7 @@ LDAPFieldAddress =Street
|
||||
LDAPFieldAddressExample =Esempio: strada
|
||||
LDAPFieldZip =Zip
|
||||
LDAPFieldZipExample =Esempio: postalcode
|
||||
LDAPFieldTown =Città
|
||||
LDAPFieldTown =Citt<EFBFBD>
|
||||
LDAPFieldTownExample =Esempio: l
|
||||
LDAPFieldCountry =Paese
|
||||
LDAPFieldCountryExample =Esempio: c
|
||||
@ -808,14 +811,14 @@ LDAPFieldDescription =Descrizione
|
||||
LDAPFieldDescriptionExample =Esempio: descrizione
|
||||
LDAPFieldBirthdate =Data di nascita
|
||||
LDAPFieldBirthdateExample =Esempio:
|
||||
LDAPFieldCompany =Società
|
||||
LDAPFieldCompany =Societ<EFBFBD>
|
||||
LDAPFieldCompanyExample =Esempio: o
|
||||
LDAPFieldSid =SID
|
||||
LDAPFieldSidExample =Esempio: objectSid
|
||||
LDAPFieldEndLastSubscription =Data di fine abbonamento
|
||||
LDAPParametersAreStillHardCoded =LDAP parametri sono ancora hardcoded (a contatto classe)
|
||||
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.
|
||||
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.
|
||||
@ -839,7 +842,7 @@ SyslogFacility =Facility
|
||||
SyslogLevel =Livello
|
||||
SyslogSimpleFile =File
|
||||
SyslogFilename =Nome file e percorso
|
||||
ErrorUnknownSyslogConstant =Costante %s non è un noto syslog costante
|
||||
ErrorUnknownSyslogConstant =Costante %s non <EFBFBD> un noto syslog costante
|
||||
##### Donations #####
|
||||
DonationsSetup =Impostazioni modulo Donazione
|
||||
##### Barcode #####
|
||||
@ -871,7 +874,7 @@ NotificationEMailFrom =Mittente e-mail (Da) per le email inviate per le
|
||||
SendingsSetup =Impostazione del modulo di consegna
|
||||
SendingsReceiptModel =Modello di ricevuta consegna (D.D.T. ex bolla?)
|
||||
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 #####
|
||||
DeliveryOrderNumberingModules =Prodotti consegne ricevimento del modulo di numerazione
|
||||
DeliveryOrderModel =Prodotti consegne ricevimento modello
|
||||
@ -879,14 +882,14 @@ DeliveriesOrderAbility =Supporto prodotti consegne ricevute
|
||||
##### FCKeditor #####
|
||||
ActivateFCKeditor =Attiva FCKeditor per:
|
||||
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
|
||||
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 ..)
|
||||
FCKeditorForProductDetailsPerso =WYSIWIG creazione / edizione di prodotti di dettagli personalizzati linee per tutti i soggetti (proposte, ordini, fatture, ecc ..)
|
||||
FCKeditorForMailing =WYSIWIG creazione / edizione di invii
|
||||
##### 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.
|
||||
OSCommerceTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto.
|
||||
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.
|
||||
MantisTestKo1 =Connessione al server ' %s' successo, ma il database' %s' non poteva essere raggiunto.
|
||||
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 #####
|
||||
StockSetup =Configurazione del modulo di magazzino
|
||||
UserWarehouse =Usa utente stock personali
|
||||
@ -933,11 +936,11 @@ DeleteLine =Elimina riga
|
||||
ConfirmDeleteLine =Sei sicuro di voler eliminare questa riga ?
|
||||
##### Tax #####
|
||||
TaxSetup =Taxes, social contributions and dividends module setup
|
||||
OptionVatMode =Option d'exigibilité de TVA
|
||||
OptionVatMode =Option d'exigibilit<EFBFBD> de TVA
|
||||
OptionVATDefault =Standard
|
||||
OptionVATDebitOption =Option services sur debit
|
||||
OptionVatDefaultDesc =L'exigibilité 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
|
||||
OptionVatDefaultDesc =L'exigibilit<EFBFBD> de la TVA est:<br>- sur livraison pour les biens<br>- sur paiement 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 #####
|
||||
AgendaSetup =Actions and agenda module setup
|
||||
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.
|
||||
Module50100Name=Cassa
|
||||
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'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'IVA di default = 0. Fine della regola. <br> Se la (vendita paese = paese di acquisto), quindi l'IVA di default = IVA del prodotto nel paese di vendita. Fine della regola. <br> Se il venditore e l'acquirente nella Comunità europea e le merci sono vendute avere nuovi mezzi di trasporto (auto, nave, aereo), il default IVA = 0 (L'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'acquirente nella Comunità europea e dei beni venduti da altri mezzi, piuttosto che i nuovi mezzi di trasporto, quindi l'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'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'IVA di default = 0. Fine della regola. <br> Se la (vendita paese = paese di acquisto), quindi l'IVA di default = IVA del prodotto nel paese di vendita. Fine della regola. <br> Se il venditore e l'acquirente nella Comunit<EFBFBD> europea e le merci sono vendute avere nuovi mezzi di trasporto (auto, nave, aereo), il default IVA = 0 (L'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'acquirente nella Comunit<EFBFBD> europea e dei beni venduti da altri mezzi, piuttosto che i nuovi mezzi di trasporto, quindi l'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>
|
||||
AvailableModules=Moduli disponibili
|
||||
ToActivateModule=Per attivare i moduli, andare su Setup.
|
||||
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'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'accesso da altre sessioni.
|
||||
MAIN_DISABLE_PDF_COMPRESSION=PDF Usa la compressione per i file PDF generati.
|
||||
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.
|
||||
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
|
||||
MemberSendInformationByMailByDefault=Checkbox per inviare una mail di conferma per i membri è attivata per impostazione predefinita
|
||||
LDAPAdminDnExample=Complete DN (ex: cn=adminldap,dc=society,dc=DN completo (ad esempio: cn = adminldap, dc = società, dc = it)
|
||||
LDAPUserDnExample=Complete DN (ex: ou=users,dc=society,dc=DN completo (es: ou = utenti, dc = società, dc = it)
|
||||
LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=society,dc=DN completo (es: ou = gruppo, dc = società, dc = it)
|
||||
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 <EFBFBD> attivata per impostazione predefinita
|
||||
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<EFBFBD>, 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)
|
||||
LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=society,dc=DN completo (es: ou = contatti, dc = società, dc = it)
|
||||
LDAPMemberDnExample=Complete DN (ex: ou=members,dc=society,dc=DN completo (es: ou = membri, dc = società, dc = it)
|
||||
LDAPMemberTypeDnExample=Complete DN (ex: ou=type_members,dc=society,dc=DN completo (es: ou = type_members, 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<EFBFBD>, 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)
|
||||
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)
|
||||
|
||||
@ -323,11 +323,10 @@ Permission24=Godkjenne tilbud
|
||||
Permission25=Sende tilbud
|
||||
Permission26=Lukke tilbud
|
||||
Permission27=Slette tilbud
|
||||
Permission31=Vise produkter/tjenester
|
||||
Permission32=Lage/endre produkter/tjenester
|
||||
Permission33=Command produkter/tjenester
|
||||
Permission34=Slette produkter/tjenester
|
||||
Permission36=Eksportere produkter/tjenester
|
||||
Permission31=Vise produkter
|
||||
Permission32=Lage/endre produkter
|
||||
Permission34=Slette produkter
|
||||
Permission38=Eksportere produkter
|
||||
Permission41=Vise prosjekter
|
||||
Permission42=Lage/endre prosjekter
|
||||
Permission44=Slette prosjekter
|
||||
@ -422,6 +421,10 @@ Permission401=Vise rabatter
|
||||
Permission402=Lage/endre rabatter
|
||||
Permission403=Godkjenne rabatter
|
||||
Permission404=Slette rabatter
|
||||
Permission31=Vise tjenester
|
||||
Permission32=Lage/endre tjenester
|
||||
Permission34=Slette tjenester
|
||||
Permission38=Eksportere tjenester
|
||||
Permission700=Vise donasjoner
|
||||
Permission701=Lage/endre donasjoner
|
||||
Permission702=Slette donasjoner
|
||||
|
||||
@ -1397,6 +1397,10 @@ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='',
|
||||
{
|
||||
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')
|
||||
{
|
||||
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;
|
||||
}
|
||||
else if ($feature == 'produit|service')
|
||||
{
|
||||
if (! $user->rights->produit->creer && ! $user->rights->service->creer) $createok=0;
|
||||
}
|
||||
else if ($feature == 'prelevement')
|
||||
{
|
||||
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;
|
||||
|
||||
// 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.= " FROM ".MAIN_DB_PREFIX.$dbtablename." as dbt";
|
||||
|
||||
@ -31,7 +31,7 @@ require("./pre.inc.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."/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->stock->enabled) require_once(DOL_DOCUMENT_ROOT."/product/stock/entrepot.class.php");
|
||||
|
||||
|
||||
@ -925,7 +925,8 @@ function left_menu($menu_array, $helppagename='', $moresearchform='')
|
||||
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");
|
||||
$searchform.=printSearchForm(DOL_URL_ROOT.'/product/liste.php', DOL_URL_ROOT.'/product/index.php',
|
||||
|
||||
@ -29,148 +29,147 @@ llxHeader();
|
||||
|
||||
if ($action == '' && !$cancel) {
|
||||
|
||||
if ($_GET['custid'])
|
||||
{
|
||||
$osc_cust = new Osc_customer($db, $_GET['custid']);
|
||||
$result = $osc_cust->fetch($_GET['custid']);
|
||||
if ($_GET['custid'])
|
||||
{
|
||||
$osc_cust = new Osc_customer($db, $_GET['custid']);
|
||||
$result = $osc_cust->fetch($_GET['custid']);
|
||||
|
||||
if ( !$result)
|
||||
{
|
||||
print '<div class="titre">Fiche client OSC : '.$osc_cust->osc_custfirstname.' '.$osc_cust->osc_custlastname.'</div><br>';
|
||||
if ( !$result)
|
||||
{
|
||||
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 '<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%">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%">E-mail</td><td width="80%">'.$osc_cust->osc_custmail.'</td></tr>';
|
||||
print "</table>";
|
||||
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%">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%">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 "</table>";
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Barre d'action */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
print "\n<div class=\"tabsAction\">\n";
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Barre d'action */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
print "\n<div class=\"tabsAction\">\n";
|
||||
|
||||
if ( $user->rights->societe->creer) {
|
||||
print '<a class="butAction" href="fiche.php?action=import&custid='.$osc_cust->osc_custid.'">'.$langs->trans("Import").'</a>';
|
||||
}
|
||||
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
|
||||
print "\n</div><br>\n";
|
||||
// seule action importer
|
||||
|
||||
}
|
||||
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";
|
||||
}
|
||||
print '<a class="butAction" href="fiche.php?action=import&custid='.$osc_cust->osc_custid.'">'.$langs->trans("Import").'</a>';
|
||||
}
|
||||
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
|
||||
print "\n</div><br>\n";
|
||||
// seule action importer
|
||||
|
||||
/* 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)
|
||||
}
|
||||
else
|
||||
{
|
||||
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 "\n</div><br>\n";
|
||||
}
|
||||
else {
|
||||
$id = $societe->create($user);
|
||||
|
||||
if ($id == 0)
|
||||
{
|
||||
print "\n<div class=\"tabsAction\">\n";
|
||||
print '<p>cré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)
|
||||
}
|
||||
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 creation de l'objet product de dolibarr
|
||||
*/
|
||||
if (($_GET["action"] == 'import' ) && ( $_GET["custid"] != '' ) && ($user->rights->produit->creer || $user->rights->service->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 '<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 */
|
||||
$societe_control = 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 class=\"tabsAction\">\n";
|
||||
print '<br>erreur 1</br>';
|
||||
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
|
||||
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$');
|
||||
?>
|
||||
|
||||
@ -50,19 +50,20 @@ if ($action == '' && !$cancel) {
|
||||
/* ************************************************************************** */
|
||||
print "\n<div class=\"tabsAction\">\n";
|
||||
|
||||
if ( $user->rights->produit->creer) {
|
||||
print '<a class="butAction" href="fiche.php?action=import&id='.$osc_prod->osc_id.'">'.$langs->trans("Import").'</a>';
|
||||
}
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer)
|
||||
{
|
||||
print '<a class="butAction" href="fiche.php?action=import&id='.$osc_prod->osc_id.'">'.$langs->trans("Import").'</a>';
|
||||
}
|
||||
|
||||
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
|
||||
print "\n</div><br>\n";
|
||||
// seule action importer
|
||||
print '<a class="butAction" href="index.php">'.$langs->trans("Retour").'</a>';
|
||||
print "\n</div><br>\n";
|
||||
// seule action importer
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
print "<p>ERROR 1</p>\n";
|
||||
dol_print_error('',"erreur webservice ".$osc_prod->error);
|
||||
print "<p>ERROR 1</p>\n";
|
||||
dol_print_error('',"erreur webservice ".$osc_prod->error);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -71,11 +72,11 @@ if ($action == '' && !$cancel) {
|
||||
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']);
|
||||
$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*/
|
||||
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
|
||||
{
|
||||
@ -113,7 +114,7 @@ if (($_GET["action"] == 'import' ) && ( $_GET["id"] != '' ) && $user->rights->pr
|
||||
$res = $prod->fetch($id);
|
||||
|
||||
$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);
|
||||
|
||||
print ' Id osc : '.$osc_prod->osc_id.'</p>';
|
||||
@ -135,7 +136,7 @@ if (($_GET["action"] == 'import' ) && ( $_GET["id"] != '' ) && $user->rights->pr
|
||||
}
|
||||
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);
|
||||
if ($_error == 1)
|
||||
{
|
||||
|
||||
@ -61,7 +61,7 @@ function llxHeader($head = '', $title='', $help_url='')
|
||||
$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");
|
||||
$chaine="";
|
||||
|
||||
@ -40,7 +40,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
/*
|
||||
* Actions
|
||||
|
||||
@ -45,7 +45,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
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
|
||||
$page=$_GET["page"];
|
||||
@ -77,7 +77,7 @@ $modulepart='produit';
|
||||
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);
|
||||
|
||||
@ -90,7 +90,7 @@ if ($_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
||||
}
|
||||
else
|
||||
{
|
||||
// Echec transfert (fichier dépassant la limite ?)
|
||||
// Echec transfert (fichier d<EFBFBD>passant la limite ?)
|
||||
$mesg = '<div class="error">'.$langs->trans("ErrorFileNotUploaded").'</div>';
|
||||
// print_r($_FILES);
|
||||
}
|
||||
@ -173,7 +173,7 @@ if ($product->id)
|
||||
|
||||
// Affiche formulaire upload
|
||||
$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
|
||||
|
||||
@ -47,7 +47,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -67,7 +67,7 @@ if ($_GET["action"] == 'fastappro')
|
||||
|
||||
|
||||
// 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;
|
||||
|
||||
@ -153,7 +153,7 @@ if ($_POST["action"] == 'add' && $user->rights->produit->creer)
|
||||
}
|
||||
}
|
||||
// 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"]))
|
||||
{
|
||||
@ -219,7 +219,7 @@ if ($_POST["action"] == 'update' && $user->rights->produit->creer)
|
||||
}
|
||||
|
||||
// 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"]))
|
||||
{
|
||||
@ -566,7 +566,7 @@ $formproduct = new FormProduct($db);
|
||||
/*
|
||||
* 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)
|
||||
{
|
||||
@ -1003,7 +1003,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
/*
|
||||
* 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()) {
|
||||
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 ( $user->rights->produit->creer)
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer)
|
||||
{
|
||||
if ($product->no_button_edit <> 1)
|
||||
print '<a class="butAction" href="fiche.php?action=edit&id='.$product->id.'">'.$langs->trans("Modify").'</a>';
|
||||
|
||||
@ -42,12 +42,12 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$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
|
||||
if ($conf->use_javascript_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT && $_POST['id_fourn_id'])
|
||||
{
|
||||
@ -71,7 +71,7 @@ if ($_GET["action"] == 'remove_pf')
|
||||
$mesg = '<div class="ok">'.$langs->trans("PriceRemoved").'.</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
// Deprecated. Should not occurs
|
||||
if ($product->remove_fournisseur($_GET["socid"]) > 0)
|
||||
{
|
||||
@ -93,7 +93,7 @@ if ($_POST["action"] == 'updateprice' && $_POST["cancel"] <> $langs->trans("Canc
|
||||
if ($result > 0)
|
||||
{
|
||||
$db->begin();
|
||||
|
||||
|
||||
$error=0;
|
||||
if (! $_POST["ref_fourn"])
|
||||
{
|
||||
@ -106,7 +106,7 @@ if ($_POST["action"] == 'updateprice' && $_POST["cancel"] <> $langs->trans("Canc
|
||||
$error++;
|
||||
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("Supplier")).'</div>';
|
||||
}
|
||||
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$ret=$product->add_fournisseur($user, $_POST["id_fourn"], $_POST["ref_fourn"]);
|
||||
@ -115,14 +115,14 @@ if ($_POST["action"] == 'updateprice' && $_POST["cancel"] <> $langs->trans("Canc
|
||||
$error++;
|
||||
$mesg='<div class="error">'.$product->error.'</div>';
|
||||
}
|
||||
|
||||
|
||||
if ($_POST["qty"])
|
||||
{
|
||||
if ($_POST["price"] >= 0)
|
||||
{
|
||||
$supplier=new Fournisseur($db);
|
||||
$result=$supplier->fetch($_POST["id_fourn"]);
|
||||
|
||||
|
||||
$ret=$product->update_buyprice($_POST["qty"], $_POST["price"], $user, $_POST["price_base_type"], $supplier);
|
||||
if ($ret < 0)
|
||||
{
|
||||
@ -144,9 +144,9 @@ if ($_POST["action"] == 'updateprice' && $_POST["cancel"] <> $langs->trans("Canc
|
||||
{
|
||||
$error++;
|
||||
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("Qty")).'</div>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$db->commit();
|
||||
@ -172,7 +172,7 @@ if ($_POST["cancel"] == $langs->trans("Cancel"))
|
||||
* Affichage fiche
|
||||
*/
|
||||
$html = new Form($db);
|
||||
|
||||
|
||||
if ($_GET["id"] || $_GET["ref"])
|
||||
{
|
||||
if ($_GET["action"] <> 're-edit')
|
||||
@ -185,8 +185,8 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
}
|
||||
|
||||
if ( $result )
|
||||
{
|
||||
|
||||
{
|
||||
|
||||
if ($_GET["action"] <> 'edit' && $_GET["action"] <> 're-edit')
|
||||
{
|
||||
/*
|
||||
@ -206,10 +206,10 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print $html->showrefnav($product,'ref','',1,'ref');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Libelle
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="2">'.$product->libelle.'</td></tr>';
|
||||
|
||||
|
||||
// Prix
|
||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td colspan="2">';
|
||||
if ($product->price_base_type == 'TTC')
|
||||
@ -228,32 +228,32 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print '</td></tr>';
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
print "</div>\n";
|
||||
|
||||
if ($mesg) print($mesg);
|
||||
|
||||
|
||||
// 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");
|
||||
|
||||
|
||||
if ($_GET["rowid"]) {
|
||||
$product->fetch_product_fournisseur_price($_GET["rowid"]);
|
||||
print_fiche_titre($langs->trans("ChangeSupplierPrice"));
|
||||
} else {
|
||||
print_fiche_titre($langs->trans("AddSupplierPrice"));
|
||||
}
|
||||
}
|
||||
print '<table class="border" width="100%">';
|
||||
print '<form action="fournisseurs.php?id='.$product->id.'" method="post">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="updateprice">';
|
||||
|
||||
|
||||
print '<tr><td>'.$langs->trans("Supplier").'</td><td colspan="3">';
|
||||
if ($_GET["rowid"])
|
||||
{
|
||||
$supplier=new Fournisseur($db);
|
||||
$supplier=new Fournisseur($db);
|
||||
$supplier->fetch($_GET["socid"]);
|
||||
print $supplier->getNomUrl(1);
|
||||
print '<input type="hidden" name="id_fourn" value="'.$_GET["socid"].'">';
|
||||
@ -266,7 +266,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
$html->select_societes($_POST["id_fourn"],'id_fourn','fournisseur=1',1);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
print '<tr><td>'.$langs->trans("SupplierRef").'</td><td colspan="3">';
|
||||
if ($_GET["rowid"])
|
||||
{
|
||||
@ -278,7 +278,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
}
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans("QtyMin").'</td>';
|
||||
print '<td>';
|
||||
@ -299,33 +299,33 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print $html->select_PriceBaseType(($_POST["price_base_type"]?$_POST["price_base_type"]:$product->price_base_type), "price_base_type");
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '<tr><td colspan="4" align="center"><input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
||||
print ' ';
|
||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
|
||||
|
||||
print '</form>';
|
||||
print '</table>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Barre d'action */
|
||||
/* */
|
||||
/* */
|
||||
/* Barre d'action */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
||||
print "\n<div class=\"tabsAction\">\n";
|
||||
|
||||
|
||||
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.'&action=add_price">';
|
||||
print $langs->trans("AddSupplierPrice").'</a>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
print "\n</div>\n";
|
||||
print '<br>';
|
||||
|
||||
@ -365,54 +365,54 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
|
||||
$var=True;
|
||||
$var=True;
|
||||
while ($i < $num)
|
||||
{
|
||||
$objp = $db->fetch_object($resql);
|
||||
$var=!$var;
|
||||
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<td><a href="../fourn/fiche.php?socid='.$objp->socid.'">'.img_object($langs->trans("ShowCompany"),'company').' '.$objp->nom.'</a></td>';
|
||||
|
||||
// Fournisseur
|
||||
print '<td align="left">'.$objp->ref_fourn.'</td>';
|
||||
|
||||
// Quantité
|
||||
// Quantit<EFBFBD>
|
||||
print '<td align="center">';
|
||||
print $objp->quantity;
|
||||
print '</td>';
|
||||
|
||||
// Prix quantité
|
||||
// Prix quantit<EFBFBD>
|
||||
print '<td align="right">';
|
||||
print $objp->price?price($objp->price):"";
|
||||
print '</td>';
|
||||
|
||||
|
||||
// Prix unitaire
|
||||
print '<td align="right">';
|
||||
print $objp->unitprice? price($objp->unitprice) : ($objp->quantity?price($objp->price/$objp->quantity):" ");
|
||||
print '</td>';
|
||||
|
||||
|
||||
// Modifier-Supprimer
|
||||
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.'&socid='.$objp->socid.'&action=add_price&rowid='.$objp->rowid.'">'.img_edit()."</a>";
|
||||
print '<a href="fournisseurs.php?id='.$product->id.'&socid='.$objp->socid.'&action=remove_pf&rowid='.$objp->rowid.'">'.img_picto($langs->trans("Remove"),'disable.png').'</a>';
|
||||
}
|
||||
|
||||
print '</td>';
|
||||
|
||||
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
$db->free($resql);
|
||||
}
|
||||
else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
|
||||
print '</table>';
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
require("./pre.inc.php");
|
||||
require_once(DOL_DOCUMENT_ROOT.'/product.class.php');
|
||||
|
||||
if (!$user->rights->produit->lire)
|
||||
if (!$user->rights->produit->lire && !$user->rights->service->lire)
|
||||
accessforbidden();
|
||||
|
||||
$staticproduct=new Product($db);
|
||||
|
||||
@ -32,7 +32,7 @@ if ($conf->categorie->enabled) require_once(DOL_DOCUMENT_ROOT."/categories/categ
|
||||
$langs->load("products");
|
||||
|
||||
// Security check
|
||||
if (!$user->rights->produit->lire)
|
||||
if (!$user->rights->produit->lire && !$user->rights->service->lire)
|
||||
accessforbidden();
|
||||
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$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->delete_photo($conf->produit->dir_output."/".$_GET["file"]);
|
||||
@ -157,7 +157,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
|
||||
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))
|
||||
{
|
||||
@ -176,7 +176,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
/*
|
||||
* 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
|
||||
$formfile=new FormFile($db);
|
||||
@ -219,7 +219,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
$filename=$obj['photo'];
|
||||
}
|
||||
|
||||
// Nom affiché
|
||||
// Nom affich<EFBFBD>
|
||||
$viewfilename=$obj['photo'];
|
||||
|
||||
// Taille de l'image
|
||||
@ -233,12 +233,12 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print '<br>'.$viewfilename;
|
||||
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))
|
||||
{
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&action=addthumb&file='.urlencode($pdir.$viewfilename).'">'.img_refresh($langs->trans('GenerateThumb')).' </a>';
|
||||
}
|
||||
if ($user->rights->produit->creer)
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer)
|
||||
{
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&action=delete&file='.urlencode($pdir.$viewfilename).'">';
|
||||
print img_delete().'</a>';
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
/** \file htdocs/product/popuprop.php
|
||||
\ingroup propal, produit
|
||||
\brief Liste des produits/services par popularité
|
||||
\brief Liste des produits/services par popularit<EFBFBD>
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
@ -30,7 +30,7 @@ require_once(DOL_DOCUMENT_ROOT.'/product.class.php');
|
||||
|
||||
// Security check
|
||||
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"];
|
||||
$sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"];
|
||||
@ -47,6 +47,10 @@ $offset = $limit * $page ;
|
||||
$staticproduct=new Product($db);
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
llxHeader();
|
||||
|
||||
//On n'affiche le lien page suivante que s'il y a une page suivante ...
|
||||
@ -101,7 +105,7 @@ if ($result)
|
||||
while ($i < $num)
|
||||
{
|
||||
$objp = $db->fetch_object($result);
|
||||
|
||||
|
||||
// Multilangs
|
||||
if ($conf->global->MAIN_MULTILANGS) // si l'option est active
|
||||
{
|
||||
@ -117,7 +121,7 @@ if ($result)
|
||||
if ($objtp->label != '') $objp->label = $objtp->label;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$var=!$var;
|
||||
print "<tr $bc[$var]>";
|
||||
print '<td><a href="'.DOL_URL_ROOT.'/product/stats/fiche.php?id='.$objp->rowid.'">';
|
||||
|
||||
@ -37,12 +37,13 @@ function llxHeader($head = "", $urlp = "", $title="")
|
||||
|
||||
$menu = new Menu();
|
||||
|
||||
// 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)
|
||||
if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&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"));
|
||||
|
||||
// Services
|
||||
if ($conf->service->enabled)
|
||||
{
|
||||
$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)
|
||||
if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&type=1", $langs->trans("NewService"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($conf->fournisseur->enabled) {
|
||||
if ($conf->fournisseur->enabled)
|
||||
{
|
||||
$langs->load("suppliers");
|
||||
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
|
||||
}
|
||||
|
||||
@ -41,14 +41,14 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
|
||||
/*
|
||||
* 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);
|
||||
|
||||
@ -226,7 +226,7 @@ if (empty($_GET["action"]) || $_GET["action"]=='delete')
|
||||
{
|
||||
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&id='.$product->id.'">'.$langs->trans("UpdatePrice").'</a>';
|
||||
}
|
||||
@ -239,7 +239,7 @@ if (empty($_GET["action"]) || $_GET["action"]=='delete')
|
||||
/*
|
||||
* 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"),'','');
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ $langs->load("stocks");
|
||||
|
||||
// Security check
|
||||
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"];
|
||||
|
||||
@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -67,7 +67,7 @@ $html = new Form($db);
|
||||
// Action association d'un sousproduit
|
||||
if ($action == 'add_prod' &&
|
||||
$cancel <> $langs->trans("Cancel") &&
|
||||
$user->rights->produit->creer)
|
||||
($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
|
||||
for($i=0;$i<$_POST["max_prod"];$i++)
|
||||
@ -119,7 +119,7 @@ if($action == 'search' )
|
||||
}
|
||||
$sql.= " ORDER BY p.ref ASC ";
|
||||
// $sql.= $db->plimit($limit + 1 ,$offset);
|
||||
|
||||
|
||||
$resql = $db->query($sql) ;
|
||||
}
|
||||
|
||||
@ -212,7 +212,7 @@ if ($id || $ref)
|
||||
/*
|
||||
* 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%">';
|
||||
|
||||
@ -354,13 +354,10 @@ print "\n<div class=\"tabsAction\">\n";
|
||||
|
||||
if ($action == '')
|
||||
{
|
||||
|
||||
if ( $user->rights->produit->creer)
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer)
|
||||
{
|
||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/product/sousproduits/fiche.php?action=edit&id='.$id.'">'.$langs->trans("EditAssociate").'</a>';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
print "\n</div>\n";
|
||||
|
||||
@ -15,18 +15,14 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*
|
||||
*/
|
||||
|
||||
/*!
|
||||
\file htdocs/product/pre.inc.php
|
||||
\ingroup product,service
|
||||
\brief Fichier gestionnaire du menu gauche des produits et services
|
||||
\version $Revision$
|
||||
*/
|
||||
/**
|
||||
* \file htdocs/product/pre.inc.php
|
||||
* \ingroup product,service
|
||||
* \brief Fichier gestionnaire du menu gauche des produits et services
|
||||
* \version $Id$
|
||||
*/
|
||||
require("../../main.inc.php");
|
||||
|
||||
$langs->load("products");
|
||||
@ -34,75 +30,77 @@ $langs->load("products");
|
||||
|
||||
function llxHeader($head = "", $urlp = "", $title="")
|
||||
{
|
||||
global $user, $conf, $langs;
|
||||
$langs->load("products");
|
||||
|
||||
top_menu($head, $title);
|
||||
global $user, $conf, $langs;
|
||||
$langs->load("products");
|
||||
|
||||
$menu = new Menu();
|
||||
top_menu($head, $title);
|
||||
|
||||
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"));
|
||||
$menu = new Menu();
|
||||
|
||||
if ($user->societe_id == 0 && $user->rights->produit->creer)
|
||||
// Products
|
||||
if ($conf->produit->enabled)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&type=0", $langs->trans("NewProduct"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($conf->service->enabled)
|
||||
{
|
||||
$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&type=1", $langs->trans("NewService"));
|
||||
}
|
||||
}
|
||||
$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->boutique->enabled)
|
||||
{
|
||||
$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(DOL_URL_ROOT."/product/osc-reviews.php", $langs->trans("Criticals"));
|
||||
|
||||
$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/groupart/", "Groupes/Artistes");
|
||||
|
||||
$menu->add(DOL_URL_ROOT."/product/categorie/", $langs->trans("Categories"));
|
||||
}
|
||||
|
||||
if ($conf->fournisseur->enabled) {
|
||||
$langs->load("suppliers");
|
||||
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
|
||||
}
|
||||
|
||||
$menu->add(DOL_URL_ROOT."/product/stats/", $langs->trans("Statistics"));
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/popuprop.php", $langs->trans("Popularity"));
|
||||
}
|
||||
|
||||
if ($conf->stock->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/product/stock/", $langs->trans("Stock"));
|
||||
}
|
||||
|
||||
if ($conf->categorie->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/categories/", $langs->trans("Categories"));
|
||||
}
|
||||
|
||||
left_menu($menu->liste);
|
||||
/*
|
||||
*
|
||||
*
|
||||
*/
|
||||
if ($user->societe_id == 0 && $user->rights->produit->creer)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&type=0", $langs->trans("NewProduct"));
|
||||
}
|
||||
}
|
||||
|
||||
// Services
|
||||
if ($conf->service->enabled)
|
||||
{
|
||||
$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&type=1", $langs->trans("NewService"));
|
||||
}
|
||||
}
|
||||
|
||||
if ($conf->boutique->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/product/osc-liste.php", "Osc");
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/osc-liste.php?reqstock=epuise", "Produits Epuis<69>s");
|
||||
|
||||
$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(DOL_URL_ROOT."/product/album/", "Albums");
|
||||
$menu->add(DOL_URL_ROOT."/product/groupart/", "Groupes/Artistes");
|
||||
|
||||
$menu->add(DOL_URL_ROOT."/product/categorie/", $langs->trans("Categories"));
|
||||
}
|
||||
|
||||
if ($conf->fournisseur->enabled) {
|
||||
$langs->load("suppliers");
|
||||
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
|
||||
}
|
||||
|
||||
$menu->add(DOL_URL_ROOT."/product/stats/", $langs->trans("Statistics"));
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/popuprop.php", $langs->trans("Popularity"));
|
||||
}
|
||||
|
||||
if ($conf->stock->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/product/stock/", $langs->trans("Stock"));
|
||||
}
|
||||
|
||||
if ($conf->categorie->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/categories/", $langs->trans("Categories"));
|
||||
}
|
||||
|
||||
left_menu($menu->liste);
|
||||
/*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -67,13 +67,13 @@ $html = new Form($db);
|
||||
if ($_GET["id"] || $_GET["ref"])
|
||||
{
|
||||
$product = new Product($db);
|
||||
if ($_GET["ref"])
|
||||
if ($_GET["ref"])
|
||||
{
|
||||
$result = $product->fetch('',$_GET["ref"]);
|
||||
$_GET["id"]=$product->id;
|
||||
}
|
||||
if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
|
||||
|
||||
|
||||
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
||||
|
||||
if ($result > 0)
|
||||
@ -98,7 +98,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
// Libelle
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$product->libelle.'</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Prix
|
||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td colspan="3">';
|
||||
if ($product->price_base_type == 'TTC')
|
||||
@ -110,18 +110,18 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print price($product->price).' '.$langs->trans($product->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">';
|
||||
print $product->getLibStatut(2);
|
||||
print '</td></tr>';
|
||||
|
||||
show_stats_for_company($product,$socid);
|
||||
|
||||
|
||||
print "</table>";
|
||||
|
||||
print '</div>';
|
||||
|
||||
|
||||
|
||||
$sql = "SELECT distinct(s.nom), s.rowid as socid, s.code_client, c.rowid, c.total_ht as total_ht, c.ref,";
|
||||
$sql.= " ".$db->pdate("c.date_creation")." as date, c.fk_statut as statut, c.facture, c.rowid as commandeid";
|
||||
|
||||
@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -66,13 +66,13 @@ $html = new Form($db);
|
||||
if ($_GET["id"] || $_GET["ref"])
|
||||
{
|
||||
$product = new Product($db);
|
||||
if ($_GET["ref"])
|
||||
if ($_GET["ref"])
|
||||
{
|
||||
$result = $product->fetch('',$_GET["ref"]);
|
||||
$_GET["id"]=$product->id;
|
||||
}
|
||||
if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
|
||||
|
||||
|
||||
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
||||
|
||||
if ($result > 0)
|
||||
@ -83,18 +83,18 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
$head=product_prepare_head($product, $user);
|
||||
$titre=$langs->trans("CardProduct".$product->type);
|
||||
dol_fiche_head($head, 'referers', $titre);
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
// Reference
|
||||
print '<tr>';
|
||||
print '<td width="15%">'.$langs->trans("Ref").'</td><td colspan="3">';
|
||||
print $html->showrefnav($product,'ref','',1,'ref');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Libelle
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$product->libelle.'</td></tr>';
|
||||
|
||||
|
||||
// Prix
|
||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td colspan="3">';
|
||||
if ($product->price_base_type == 'TTC')
|
||||
@ -106,17 +106,17 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print price($product->price).' '.$langs->trans($product->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">';
|
||||
print $product->getLibStatut(2);
|
||||
print '</td></tr>';
|
||||
|
||||
show_stats_for_company($product,$socid);
|
||||
|
||||
|
||||
print "</table>";
|
||||
print '</div>';
|
||||
|
||||
|
||||
$sql = "SELECT distinct(s.nom), s.rowid as socid, s.code_client, c.rowid, c.total_ht as total_ht, c.ref,";
|
||||
$sql.= " ".$db->pdate("c.date_creation")." as date, c.fk_statut as statut, c.rowid as commandeid";
|
||||
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user ";
|
||||
@ -132,17 +132,17 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
if ($socid) $sql.= " AND c.fk_soc = ".$socid;
|
||||
$sql.= " ORDER BY $sortfield $sortorder ";
|
||||
$sql.= $db->plimit($conf->liste_limit +1, $offset);
|
||||
|
||||
|
||||
$result = $db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$num = $db->num_rows($result);
|
||||
|
||||
|
||||
print_barre_liste($langs->trans("SuppliersOrders"),$page,$_SERVER["PHP_SELF"],"&id=$product->id",$sortfield,$sortorder,'',$num,0,'');
|
||||
|
||||
|
||||
$i = 0;
|
||||
print "<table class=\"noborder\" width=\"100%\">";
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","","&id=".$_GET["id"],'',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&id=".$_GET["id"],'',$sortfield,$sortorder);
|
||||
@ -151,9 +151,9 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.total_ht","","&id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"c.fk_statut","","&id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
$commandestatic=new Commande($db);
|
||||
|
||||
|
||||
if ($num > 0)
|
||||
{
|
||||
$var=True;
|
||||
@ -161,7 +161,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
{
|
||||
$objp = $db->fetch_object($result);
|
||||
$var=!$var;
|
||||
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
print '<td><a href="'.DOL_URL_ROOT.'/fourn/commande/fiche.php?id='.$objp->commandeid.'">'.img_object($langs->trans("ShowOrder"),"order").' ';
|
||||
print $objp->ref;
|
||||
|
||||
@ -15,152 +15,155 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* $Id$
|
||||
* $Source$
|
||||
*
|
||||
*/
|
||||
|
||||
class CommandeStats
|
||||
/*
|
||||
* \version $Id$
|
||||
*/
|
||||
class CommandeStats
|
||||
{
|
||||
var $db ;
|
||||
var $db ;
|
||||
|
||||
function CommandeStats($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";
|
||||
function CommandeStats($DB)
|
||||
{
|
||||
$this->db = $DB;
|
||||
}
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
|
||||
/**
|
||||
* Renvoie le nombre de commande par annee
|
||||
*
|
||||
*/
|
||||
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);
|
||||
$result[$i] = $row;
|
||||
$row = $this->db->fetch_row($i);
|
||||
$result[$i] = $row;
|
||||
|
||||
$i++;
|
||||
$i++;
|
||||
}
|
||||
$this->db->free();
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
/**
|
||||
* Renvoie le nombre de commande par mois pour une année donnée
|
||||
*
|
||||
*/
|
||||
function getNbCommandeByMonth($year)
|
||||
{
|
||||
$result = array();
|
||||
$sql = "SELECT date_format(date_commande,'%m') as dm, count(*)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
|
||||
$sql.= " AND fk_statut > 0";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " GROUP BY dm DESC";
|
||||
$this->db->free();
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
/**
|
||||
* Renvoie le nombre de commande par mois pour une ann<EFBFBD>e donn<EFBFBD>e
|
||||
*
|
||||
*/
|
||||
function getNbCommandeByMonth($year)
|
||||
{
|
||||
$result = array();
|
||||
$sql = "SELECT date_format(date_commande,'%m') as dm, count(*)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
|
||||
$sql.= " AND 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)
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$row = $this->db->fetch_row($i);
|
||||
$j = $row[0] * 1;
|
||||
$result[$j] = $row[1];
|
||||
$i++;
|
||||
$row = $this->db->fetch_row($i);
|
||||
$j = $row[0] * 1;
|
||||
$result[$j] = $row[1];
|
||||
$i++;
|
||||
}
|
||||
$this->db->free();
|
||||
}
|
||||
|
||||
for ($i = 1 ; $i < 13 ; $i++)
|
||||
{
|
||||
$res[$i] = $result[$i] + 0;
|
||||
}
|
||||
$this->db->free();
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* Renvoie le nombre de commande par mois pour une année donnée
|
||||
*
|
||||
*/
|
||||
function getCommandeAmountByMonth($year)
|
||||
{
|
||||
$result = array();
|
||||
$sql = "SELECT date_format(date_commande,'%m') as dm, sum(total_ht)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
|
||||
$sql.= " AND fk_statut > 0";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " GROUP BY dm DESC";
|
||||
for ($i = 1 ; $i < 13 ; $i++)
|
||||
{
|
||||
$res[$i] = $result[$i] + 0;
|
||||
}
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* Renvoie le nombre de commande par mois pour une ann<EFBFBD>e donn<EFBFBD>e
|
||||
*
|
||||
*/
|
||||
function getCommandeAmountByMonth($year)
|
||||
{
|
||||
$result = array();
|
||||
$sql = "SELECT date_format(date_commande,'%m') as dm, sum(total_ht)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
|
||||
$sql.= " AND 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);
|
||||
$j = $row[0] * 1;
|
||||
$result[$j] = $row[1];
|
||||
$i++;
|
||||
$row = $this->db->fetch_row($i);
|
||||
$j = $row[0] * 1;
|
||||
$result[$j] = $row[1];
|
||||
$i++;
|
||||
}
|
||||
$this->db->free();
|
||||
}
|
||||
|
||||
for ($i = 1 ; $i < 13 ; $i++)
|
||||
{
|
||||
$res[$i] = $result[$i] + 0;
|
||||
}
|
||||
$this->db->free();
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* Renvoie le nombre de commande par mois pour une année donnée
|
||||
*
|
||||
*/
|
||||
function getCommandeAverageByMonth($year)
|
||||
{
|
||||
$result = array();
|
||||
$sql = "SELECT date_format(date_commande,'%m') as dm, avg(total_ht)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
|
||||
$sql.= " AND fk_statut > 0";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$sql.= " GROUP BY dm DESC";
|
||||
for ($i = 1 ; $i < 13 ; $i++)
|
||||
{
|
||||
$res[$i] = $result[$i] + 0;
|
||||
}
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
return $res;
|
||||
}
|
||||
/**
|
||||
* Renvoie le nombre de commande par mois pour une ann<EFBFBD>e donn<EFBFBD>e
|
||||
*
|
||||
*/
|
||||
function getCommandeAverageByMonth($year)
|
||||
{
|
||||
$result = array();
|
||||
$sql = "SELECT date_format(date_commande,'%m') as dm, avg(total_ht)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE date_format(date_commande,'%Y') = ".$year;
|
||||
$sql.= " AND 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);
|
||||
$j = $row[0] * 1;
|
||||
$result[$j] = $row[1];
|
||||
$i++;
|
||||
$row = $this->db->fetch_row($i);
|
||||
$j = $row[0] * 1;
|
||||
$result[$j] = $row[1];
|
||||
$i++;
|
||||
}
|
||||
$this->db->free();
|
||||
}
|
||||
|
||||
for ($i = 1 ; $i < 13 ; $i++)
|
||||
{
|
||||
$res[$i] = $result[$i] + 0;
|
||||
}
|
||||
$this->db->free();
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
for ($i = 1 ; $i < 13 ; $i++)
|
||||
{
|
||||
$res[$i] = $result[$i] + 0;
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -41,7 +41,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -68,15 +68,15 @@ $html = new Form($db);
|
||||
if ($_GET["id"] || $_GET["ref"])
|
||||
{
|
||||
$product = new Product($db);
|
||||
if ($_GET["ref"])
|
||||
if ($_GET["ref"])
|
||||
{
|
||||
$result = $product->fetch('',$_GET["ref"]);
|
||||
$_GET["id"]=$product->id;
|
||||
}
|
||||
if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
|
||||
|
||||
|
||||
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
||||
|
||||
|
||||
if ($result > 0)
|
||||
{
|
||||
/*
|
||||
@ -94,11 +94,11 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print $html->showrefnav($product,'ref','',1,'ref');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Libelle
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$product->libelle.'</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Prix
|
||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td colspan="3">';
|
||||
if ($product->price_base_type == 'TTC')
|
||||
@ -110,18 +110,18 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print price($product->price).' '.$langs->trans($product->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">';
|
||||
print $product->getLibStatut(2);
|
||||
print '</td></tr>';
|
||||
|
||||
show_stats_for_company($product,$socid);
|
||||
|
||||
|
||||
print "</table>";
|
||||
|
||||
print '</div>';
|
||||
|
||||
|
||||
|
||||
$sql = "SELECT";
|
||||
$sql.= ' sum('.$db->ifsql("cd.statut=0",1,0).') as nb_initial,';
|
||||
@ -164,7 +164,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(4,3).'</td>';
|
||||
print '<td class="liste_titre" width="16">'.$staticcontratligne->LibStatut(5,3).'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
$contratstatic=new Contrat($db);
|
||||
|
||||
if ($num > 0)
|
||||
|
||||
@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -69,15 +69,15 @@ $html = new Form($db);
|
||||
if ($_GET["id"] || $_GET["ref"])
|
||||
{
|
||||
$product = new Product($db);
|
||||
if ($_GET["ref"])
|
||||
if ($_GET["ref"])
|
||||
{
|
||||
$result = $product->fetch('',$_GET["ref"]);
|
||||
$_GET["id"]=$product->id;
|
||||
}
|
||||
if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
|
||||
|
||||
|
||||
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
||||
|
||||
|
||||
/*
|
||||
* En mode visu
|
||||
*/
|
||||
@ -86,7 +86,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
$head=product_prepare_head($product, $user);
|
||||
$titre=$langs->trans("CardProduct".$product->type);
|
||||
dol_fiche_head($head, 'referers', $titre);
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Reference
|
||||
@ -99,7 +99,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
// Libelle
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$product->libelle.'</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Price
|
||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td colspan="3">';
|
||||
if ($product->price_base_type == 'TTC')
|
||||
@ -111,18 +111,18 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print price($product->price).' '.$langs->trans($product->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">';
|
||||
print $product->getLibStatut(2);
|
||||
print '</td></tr>';
|
||||
|
||||
show_stats_for_company($product,$socid);
|
||||
|
||||
|
||||
print "</table>";
|
||||
|
||||
print '</div>';
|
||||
|
||||
|
||||
|
||||
$sql = "SELECT distinct(s.nom), s.rowid as socid, s.code_client, f.facnumber, f.total as total_ht,";
|
||||
$sql.= " ".$db->pdate("f.datef")." as date, f.paye, f.fk_statut as statut, f.rowid as facid";
|
||||
|
||||
@ -43,7 +43,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -69,13 +69,13 @@ $html = new Form($db);
|
||||
if ($_GET["id"] || $_GET["ref"])
|
||||
{
|
||||
$product = new Product($db);
|
||||
if ($_GET["ref"])
|
||||
if ($_GET["ref"])
|
||||
{
|
||||
$result = $product->fetch('',$_GET["ref"]);
|
||||
$_GET["id"]=$product->id;
|
||||
}
|
||||
if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
|
||||
|
||||
|
||||
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
||||
|
||||
if ($result > 0)
|
||||
@ -100,7 +100,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
// Libelle
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$product->libelle.'</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Prix
|
||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td colspan="3">';
|
||||
if ($product->price_base_type == 'TTC')
|
||||
@ -112,18 +112,18 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print price($product->price).' '.$langs->trans($product->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">';
|
||||
print $product->getLibStatut(2);
|
||||
print '</td></tr>';
|
||||
|
||||
show_stats_for_company($product,$socid);
|
||||
|
||||
|
||||
print "</table>";
|
||||
|
||||
print '</div>';
|
||||
|
||||
|
||||
|
||||
$sql = "SELECT distinct(s.nom), s.rowid as socid, s.code_client, f.facnumber, f.total_ht as total_ht,";
|
||||
$sql.= " ".$db->pdate("f.datef")." as date, f.paye, f.fk_statut as statut, f.rowid as facid";
|
||||
|
||||
@ -45,7 +45,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
/**
|
||||
\file htdocs/product/stats/index.php
|
||||
\brief Page accueil statistiques produits
|
||||
\version $Revision$
|
||||
@ -33,7 +33,7 @@ require_once(DOL_DOCUMENT_ROOT."/propal.class.php");
|
||||
|
||||
// Security check
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit');
|
||||
$result=restrictedArea($user,'produit|service');
|
||||
|
||||
llxHeader();
|
||||
|
||||
@ -125,7 +125,7 @@ if ($conf->service->enabled)
|
||||
$nbproduct = $row[0];
|
||||
}
|
||||
$db->free();
|
||||
|
||||
|
||||
$sql = "SELECT count(*)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
|
||||
if ($conf->categorie->enabled && !$user->rights->categorie->voir)
|
||||
@ -165,8 +165,8 @@ print '<br>';
|
||||
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
|
||||
print "<tr class=\"liste_titre\">";
|
||||
print "<td>Produit/Service</td>";
|
||||
print "<td>Qté en facture</td>";
|
||||
print "<td>Qté en propale</td>";
|
||||
print "<td>Qt<EFBFBD> en facture</td>";
|
||||
print "<td>Qt<EFBFBD> en propale</td>";
|
||||
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.=" left join ".MAIN_DB_PREFIX."facturedet as f on p.rowid = f.fk_product";
|
||||
@ -188,13 +188,13 @@ if ($db->query($sql))
|
||||
}
|
||||
}
|
||||
else {
|
||||
dol_print_error($db);
|
||||
dol_print_error($db);
|
||||
}
|
||||
print "</table>\n";
|
||||
$db->free();
|
||||
*/
|
||||
|
||||
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter('$Date$ - $Revision$');
|
||||
|
||||
@ -34,70 +34,72 @@ function llxHeader($head = "", $urlp = "", $title="")
|
||||
{
|
||||
global $user, $conf, $langs;
|
||||
$langs->load("products");
|
||||
|
||||
|
||||
top_menu($head, $title);
|
||||
|
||||
|
||||
$menu = new Menu();
|
||||
|
||||
|
||||
// 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)
|
||||
|
||||
if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&type=0", $langs->trans("NewProduct"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Services
|
||||
if ($conf->service->enabled)
|
||||
{
|
||||
$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)
|
||||
if ($user->societe_id == 0 && ($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/fiche.php?action=create&type=1", $langs->trans("NewService"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($conf->boutique->enabled)
|
||||
{
|
||||
|
||||
|
||||
$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_submenu(DOL_URL_ROOT."/product/osc-productsbyreviews.php", "Meilleurs produits");
|
||||
|
||||
|
||||
$menu->add(DOL_URL_ROOT."/product/album/", "Albums");
|
||||
$menu->add(DOL_URL_ROOT."/product/groupart/", "Groupes/Artistes");
|
||||
|
||||
|
||||
$menu->add(DOL_URL_ROOT."/product/categorie/", $langs->trans("Categories"));
|
||||
}
|
||||
|
||||
|
||||
if ($conf->fournisseur->enabled) {
|
||||
$langs->load("suppliers");
|
||||
$menu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers"));
|
||||
}
|
||||
|
||||
|
||||
$menu->add(DOL_URL_ROOT."/product/stats/", $langs->trans("Statistics"));
|
||||
if ($conf->propal->enabled)
|
||||
{
|
||||
$menu->add_submenu(DOL_URL_ROOT."/product/popuprop.php", $langs->trans("Popularity"));
|
||||
}
|
||||
|
||||
|
||||
if ($conf->stock->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/product/stock/", $langs->trans("Stock"));
|
||||
}
|
||||
|
||||
|
||||
if ($conf->categorie->enabled)
|
||||
{
|
||||
$menu->add(DOL_URL_ROOT."/categories/", $langs->trans("Categories"));
|
||||
}
|
||||
|
||||
|
||||
left_menu($menu->liste);
|
||||
}
|
||||
?>
|
||||
|
||||
@ -41,7 +41,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
if ($user->societe_id) $socid=$user->societe_id;
|
||||
$result=restrictedArea($user,'produit',$id,'product','','',$fieldid);
|
||||
$result=restrictedArea($user,'produit|service',$id,'product','','',$fieldid);
|
||||
|
||||
$mesg = '';
|
||||
|
||||
@ -71,7 +71,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
$_GET["id"]=$product->id;
|
||||
}
|
||||
if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
|
||||
|
||||
|
||||
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
||||
|
||||
if ( $result > 0)
|
||||
@ -96,7 +96,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
// Libelle
|
||||
print '<tr><td>'.$langs->trans("Label").'</td><td colspan="3">'.$product->libelle.'</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Prix
|
||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td colspan="3">';
|
||||
if ($product->price_base_type == 'TTC')
|
||||
@ -115,7 +115,7 @@ if ($_GET["id"] || $_GET["ref"])
|
||||
print '</td></tr>';
|
||||
|
||||
show_stats_for_company($product,$socid);
|
||||
|
||||
|
||||
print "</table>";
|
||||
|
||||
print '</div>';
|
||||
|
||||
@ -42,7 +42,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
|
||||
}
|
||||
$fieldid = isset($_GET["ref"])?'ref':'rowid';
|
||||
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
|
||||
if ($_POST["action"] == 'vadd' &&
|
||||
$_POST["cancel"] != $langs->trans("Cancel") &&
|
||||
$user->rights->produit->creer)
|
||||
($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
$product = new Product($db);
|
||||
$product->fetch($_POST["id"]);
|
||||
@ -82,19 +82,19 @@ $user->rights->produit->creer)
|
||||
if ( $product->setMultiLangs() > 0 )
|
||||
{
|
||||
$_GET["action"] = '';
|
||||
$mesg = 'Fiche mise à jour';
|
||||
$mesg = 'Fiche mise <EFBFBD> jour';
|
||||
}
|
||||
else
|
||||
{
|
||||
$_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
|
||||
if ($_POST["action"] == 'vedit' &&
|
||||
$_POST["cancel"] != $langs->trans("Cancel") &&
|
||||
$user->rights->produit->creer)
|
||||
($user->rights->produit->creer || $user->rights->service->creer))
|
||||
{
|
||||
$product = new Product($db);
|
||||
$product->fetch($_POST["id"]);
|
||||
@ -119,12 +119,12 @@ $user->rights->produit->creer)
|
||||
if ( $product->setMultiLangs() > 0 )
|
||||
{
|
||||
$_GET["action"] = '';
|
||||
$mesg = 'Fiche mise à jour';
|
||||
$mesg = 'Fiche mise <EFBFBD> jour';
|
||||
}
|
||||
else
|
||||
{
|
||||
$_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";
|
||||
|
||||
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=add&id='.$product->id.'">'.$langs->trans("Add").'</a>';
|
||||
@ -241,12 +241,12 @@ print "\n</div>\n";
|
||||
/*
|
||||
* 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();
|
||||
$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">';
|
||||
foreach ($langs_available as $value)
|
||||
if ( !array_key_exists($value, $product->multilangs) ) // si la traduction n'existe pas
|
||||
|
||||
@ -201,7 +201,7 @@ if ($modulepart)
|
||||
elseif (eregi('^productstats_',$modulepart))
|
||||
{
|
||||
$user->getrights('produit');
|
||||
if ($user->rights->produit->lire)
|
||||
if ($user->rights->produit->lire || $user->rights->service->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
@ -212,7 +212,7 @@ if ($modulepart)
|
||||
elseif ($modulepart == 'product')
|
||||
{
|
||||
$user->getrights('produit');
|
||||
if ($user->rights->produit->lire)
|
||||
if ($user->rights->produit->lire || $user->rights->service->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
@ -297,7 +297,7 @@ if ($modulepart)
|
||||
//$original_file=$conf->barcode->dir_temp.'/'.$original_file;
|
||||
$original_file='';
|
||||
}
|
||||
|
||||
|
||||
// Wrapping pour les icones de background des mailings
|
||||
elseif ($modulepart == 'iconmailing')
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user