2
0
forked from Wavyzz/dolibarr

New: Add graph stats for suppliers orders in tab "stats" on products.

This commit is contained in:
simnandez
2013-11-22 14:47:16 +01:00
parent 5d34953200
commit 58a8f590e6
7 changed files with 43 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ English Dolibarr ChangeLog
***** ChangeLog for 3.6 compared to 3.5.* *****
For users:
- New: Add list of orders products in tab "consumption" on thirdparties.
- New: Add graph stats for suppliers orders in tab "stats" on products.
***** ChangeLog for 3.5 compared to 3.4.* *****

View File

@@ -138,10 +138,12 @@ StatsByNumberOfEntities=Estadístiques en nombre d'identitats referents
NumberOfProposals=Nombre de pressupostos en els darrers 12 mesos
NumberOfCustomerOrders=Nombre de comandes de clients en els darrers 12 mesos
NumberOfCustomerInvoices=Nombre de factures a clients en els darrers 12 mesos
NumberOfSupplierOrders=Nombre de comandes a proveïdors en els darrers 12 mesos
NumberOfSupplierInvoices=Nombre de factures de proveïdors en els darrers 12 mesos
NumberOfUnitsProposals=Nombre d'unitats en els pressupostos en els darrers 12 mesos
NumberOfUnitsCustomerOrders=Nombre d'unitats en les comandes de clients en els darrers 12 mesos
NumberOfUnitsCustomerInvoices=Nombre d'unitats en les factures a clients en els darrers 12 mesos
NumberOfUnitsSupplierInvoices=Nombre d'unitats en les comandes a proveïdors en els darrers 12 mesos
NumberOfUnitsSupplierInvoices=Nombre d'unitats en les factures de proveïdors en els darrers 12 mesos
EMailTextInterventionValidated=Fitxa intervenció %s validada
EMailTextInvoiceValidated=Factura %s validada

View File

@@ -138,10 +138,12 @@ StatsByNumberOfEntities=Statistics in number of referring entities
NumberOfProposals=Number of proposals on last 12 month
NumberOfCustomerOrders=Number of customer orders on last 12 month
NumberOfCustomerInvoices=Number of customer invoices on last 12 month
NumberOfSupplierOrders=Number of supplier orders on last 12 month
NumberOfSupplierInvoices=Number of supplier invoices on last 12 month
NumberOfUnitsProposals=Number of units on proposals on last 12 month
NumberOfUnitsCustomerOrders=Number of units on customer orders on last 12 month
NumberOfUnitsCustomerInvoices=Number of units on customer invoices on last 12 month
NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month
NumberOfUnitsSupplierInvoices=Number of units on supplier invoices on last 12 month
EMailTextInterventionValidated=The intervention %s has been validated.
EMailTextInvoiceValidated=The invoice %s has been validated.

View File

@@ -138,10 +138,12 @@ StatsByNumberOfEntities=Estadísticas en número de identidades referentes
NumberOfProposals=Número de presupuestos en los últimos 12 meses
NumberOfCustomerOrders=Número de pedidos de clientes en los últimos 12 meses
NumberOfCustomerInvoices=Número de facturas a clientes en los últimos 12 meses
NumberOfSupplierOrders=Número de pedidos a proveedores en los últimos 12 meses
NumberOfSupplierInvoices=Número de facturas de proveedores en los últimos 12 meses
NumberOfUnitsProposals=Número de unidades en los presupuestos en los últimos 12 meses
NumberOfUnitsCustomerOrders=Número de unidades en los pedidos de clientes en los últimos 12 meses
NumberOfUnitsCustomerInvoices=Número de unidades en las facturas a clientes en los últimos 12 meses
NumberOfUnitsSupplierOrders=Número de unidades en los pedidos a proveedores en los últimos 12 meses
NumberOfUnitsSupplierInvoices=Número de unidades en las facturas de proveedores en los últimos 12 meses
EMailTextInterventionValidated=Ficha intervención %s validada
EMailTextInvoiceValidated=Factura %s validada

View File

@@ -138,10 +138,12 @@ StatsByNumberOfEntities=Statistiques en nombre d'entités référentes
NumberOfProposals=Nombre de propositions commerciales sur les 12 derniers mois
NumberOfCustomerOrders=Nombre de commandes clients sur les 12 derniers mois
NumberOfCustomerInvoices=Nombre de factures clients sur les 12 derniers mois
NumberOfSupplierOrders=Nombre de commandes fournisseurs sur les 12 derniers mois
NumberOfSupplierInvoices=Nombre de factures fournisseurs sur les 12 derniers mois
NumberOfUnitsProposals=Nombre d'unités sur les propositions commerciales des 12 derniers mois
NumberOfUnitsCustomerOrders=Nombre d'unités sur les commandes clients des 12 derniers mois
NumberOfUnitsCustomerInvoices=Nombre d'unités sur les factures clients des 12 derniers mois
NumberOfUnitsSupplierOrders=Nombre d'unités sur les commandes fournisseur des 12 derniers mois
NumberOfUnitsSupplierInvoices=Nombre d'unités sur les factures fournisseurs des 12 derniers mois
EMailTextInterventionValidated=La fiche intervention %s vous concernant a été validée.
EMailTextInvoiceValidated=La facture %s vous concernant a été validée.

View File

@@ -4,7 +4,7 @@
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
* Copyright (C) 2007-2011 Jean Heimburger <jean@tiaris.info>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Cedric GROSS <c.gross@kreiz-it.fr>
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
*
@@ -1830,6 +1830,33 @@ class Product extends CommonObject
return $this->_get_stats($sql,$mode);
}
/**
* Return nb of units or orders in which product is included
*
* @param int $socid Limit count on a particular third party id
* @param string $mode 'byunit'=number of unit, 'bynumber'=nb of entities
* @return array <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
*/
function get_nb_ordersupplier($socid,$mode)
{
global $conf, $user;
$sql = "SELECT sum(d.qty), date_format(c.date_commande, '%Y%m')";
if ($mode == 'bynumber') $sql.= ", count(DISTINCT c.rowid)";
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as d, ".MAIN_DB_PREFIX."commande_fournisseur as c, ".MAIN_DB_PREFIX."societe as s";
if (!$user->rights->fournisseur->lire && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE c.rowid = d.fk_commande";
$sql.= " AND d.fk_product =".$this->id;
$sql.= " AND c.fk_soc = s.rowid";
$sql.= " AND c.entity = ".$conf->entity;
if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
if ($socid > 0) $sql.= " AND c.fk_soc = ".$socid;
$sql.= " GROUP BY date_format(c.date_commande,'%Y%m')";
$sql.= " ORDER BY date_format(c.date_commande,'%Y%m') DESC";
return $this->_get_stats($sql,$mode);
}
/**
* Lie un produit associe au produit/service
*

View File

@@ -3,6 +3,7 @@
* Copyright (c) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -142,6 +143,9 @@ if (! empty($id) || ! empty($ref))
'invoices' =>array('modulepart'=>'productstats_invoices',
'file' => $object->id.'/invoices12m.png',
'label' => ($mode=='byunit'?$langs->transnoentitiesnoconv("NumberOfUnitsCustomerInvoices"):$langs->transnoentitiesnoconv("NumberOfCustomerInvoices"))),
'orderssuppliers'=>array('modulepart'=>'productstats_orderssuppliers',
'file' => $object->id.'/orderssuppliers12m.png',
'label' => ($mode=='byunit'?$langs->transnoentitiesnoconv("NumberOfUnitsSupplierOrders"):$langs->transnoentitiesnoconv("NumberOfSupplierOrders"))),
'invoicessuppliers'=>array('modulepart'=>'productstats_invoicessuppliers',
'file' => $object->id.'/invoicessuppliers12m.png',
'label' => ($mode=='byunit'?$langs->transnoentitiesnoconv("NumberOfUnitsSupplierInvoices"):$langs->transnoentitiesnoconv("NumberOfSupplierInvoices"))),
@@ -165,6 +169,7 @@ if (! empty($id) || ! empty($ref))
if ($key == 'orders') $graph_data = $object->get_nb_order($socid,$mode);
if ($key == 'invoices') $graph_data = $object->get_nb_vente($socid,$mode);
if ($key == 'invoicessuppliers') $graph_data = $object->get_nb_achat($socid,$mode);
if ($key == 'orderssuppliers') $graph_data = $object->get_nb_ordersupplier($socid,$mode);
if (is_array($graph_data))
{
@@ -204,6 +209,7 @@ if (! empty($id) || ! empty($ref))
if ($graphfiles == 'order' && ! $user->rights->commande->lire) continue;
if ($graphfiles == 'invoices' && ! $user->rights->facture->lire) continue;
if ($graphfiles == 'invoices_suppliers' && ! $user->rights->fournisseur->facture->lire) continue;
if ($graphfiles == 'orders_suppliers' && ! $user->rights->fournisseur->commande->lire) continue;
if ($i % 2 == 0)