2004-10-20 00:24:10 +02:00
< ? php
2005-04-09 10:43:18 +02:00
/* Copyright ( C ) 2003 - 2005 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2007-10-10 01:15:25 +02:00
* Copyright ( C ) 2004 - 2007 Laurent Destailleur < eldy @ users . sourceforge . net >
2005-05-14 16:22:08 +02:00
* Copyright ( C ) 2004 Sebastien Di Cintio < sdicintio @ ressource - toi . org >
* Copyright ( C ) 2004 Benoit Mortier < benoit . mortier @ opensides . be >
* Copyright ( C ) 2004 Eric Seigne < eric . seigne @ ryxeo . com >
2007-11-01 21:39:36 +01:00
* Copyright ( C ) 2005 - 2007 Regis Houssin < regis @ dolibarr . fr >
2003-09-10 18:06:35 +02:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA .
*
* $Id $
*/
2005-01-14 19:46:23 +01:00
/** \defgroup commande Module commande
2004-08-14 14:21:24 +02:00
\brief Module pour g<EFBFBD> rer le suivi des commandes
*/
2005-01-14 19:46:23 +01:00
/**
2004-08-14 14:21:24 +02:00
\file htdocs / includes / modules / modCommande . class . php
2004-08-15 14:40:18 +02:00
\ingroup commande
2004-08-14 14:21:24 +02:00
\brief Fichier de description et activation du module Commande
*/
2007-10-10 01:15:25 +02:00
include_once ( DOL_DOCUMENT_ROOT . " /includes/modules/DolibarrModules.class.php " );
2003-09-10 18:06:35 +02:00
2005-01-14 19:46:23 +01:00
/** \class modCommande
2004-08-15 14:40:18 +02:00
\brief Classe de description et activation du module Commande
*/
2003-11-13 16:07:42 +01:00
class modCommande extends DolibarrModules
2003-09-10 18:06:35 +02:00
{
2004-11-23 21:04:19 +01:00
/**
* \brief Constructeur . Definit les noms , constantes et boites
* \param DB handler d ' acc<EFBFBD> s base
*/
2004-08-07 19:14:42 +02:00
function modCommande ( $DB )
2003-09-10 18:06:35 +02:00
{
$this -> db = $DB ;
2006-01-22 19:31:56 +01:00
$this -> id = 'commande' ; // Same value xxx than in file modXxx.class.php file
2003-11-13 16:07:42 +01:00
$this -> numero = 25 ;
2004-06-26 19:15:28 +02:00
$this -> family = " crm " ;
2003-11-13 16:07:42 +01:00
$this -> name = " Commande " ;
2005-04-04 14:05:41 +02:00
$this -> description = " Gestion des commandes clients " ;
2005-08-11 21:18:11 +02:00
$this -> revision = explode ( ' ' , '$Revision$' );
2005-04-09 10:43:18 +02:00
$this -> version = $this -> revision [ 1 ];
2005-10-22 15:45:24 +02:00
$this -> const_name = 'MAIN_MODULE_COMMANDE' ;
2004-11-23 21:04:19 +01:00
$this -> special = 0 ;
2005-03-06 01:15:34 +01:00
$this -> picto = 'order' ;
2004-11-23 21:04:19 +01:00
// Dir
$this -> dirs = array ();
2003-11-13 16:07:42 +01:00
2004-06-26 19:15:28 +02:00
// Config pages
2006-12-06 00:20:18 +01:00
$this -> config_page_url = array ( " commande.php " );
2004-06-26 19:15:28 +02:00
// D<> pendances
2005-04-09 10:43:18 +02:00
$this -> depends = array ( " modCommercial " );
2005-04-04 19:51:24 +02:00
$this -> requiredby = array ( " modExpedition " );
2007-03-21 00:30:10 +01:00
$this -> conflictwith = array ();
$this -> langfiles = array ( " orders " , " bills " , " companies " );
2004-06-26 19:15:28 +02:00
2004-11-23 21:04:19 +01:00
// Constantes
2003-09-11 17:19:56 +02:00
$this -> const = array ();
2006-06-02 22:14:21 +02:00
$this -> const [ 0 ][ 0 ] = " COMMANDE_ADDON_PDF " ;
2006-02-08 15:29:32 +01:00
$this -> const [ 0 ][ 1 ] = " chaine " ;
2006-06-02 22:14:21 +02:00
$this -> const [ 0 ][ 2 ] = " einstein " ;
2006-03-17 13:24:41 +01:00
$this -> const [ 0 ][ 3 ] = 'Nom du gestionnaire de g<> n<EFBFBD> ration des commandes en PDF' ;
$this -> const [ 0 ][ 4 ] = 0 ;
2006-02-11 17:24:55 +01:00
2006-03-17 13:24:41 +01:00
$this -> const [ 1 ][ 0 ] = " COMMANDE_ADDON " ;
2006-02-11 17:24:55 +01:00
$this -> const [ 1 ][ 1 ] = " chaine " ;
2006-06-02 22:14:21 +02:00
$this -> const [ 1 ][ 2 ] = " mod_commande_marbre " ;
2006-03-17 13:24:41 +01:00
$this -> const [ 1 ][ 3 ] = 'Nom du gestionnaire de num<75> rotation des commandes' ;
$this -> const [ 1 ][ 4 ] = 0 ;
2004-11-23 21:04:19 +01:00
2004-11-27 13:54:08 +01:00
// Boites
2003-09-11 17:19:56 +02:00
$this -> boxes = array ();
2003-11-05 18:31:59 +01:00
$this -> boxes [ 0 ][ 0 ] = " Commandes " ;
$this -> boxes [ 0 ][ 1 ] = " box_commandes.php " ;
2004-11-27 13:54:08 +01:00
// Permissions
$this -> rights = array ();
$this -> rights_class = 'commande' ;
2006-04-29 16:21:20 +02:00
2007-03-19 16:33:19 +01:00
$r = 0 ;
$r ++ ;
$this -> rights [ $r ][ 0 ] = 81 ;
$this -> rights [ $r ][ 1 ] = 'Lire les commandes clients' ;
$this -> rights [ $r ][ 2 ] = 'r' ;
$this -> rights [ $r ][ 3 ] = 1 ;
$this -> rights [ $r ][ 4 ] = 'lire' ;
$r ++ ;
$this -> rights [ $r ][ 0 ] = 82 ;
$this -> rights [ $r ][ 1 ] = 'Cr<43> er modifier les commandes clients' ;
$this -> rights [ $r ][ 2 ] = 'w' ;
$this -> rights [ $r ][ 3 ] = 0 ;
$this -> rights [ $r ][ 4 ] = 'creer' ;
$r ++ ;
$this -> rights [ $r ][ 0 ] = 84 ;
$this -> rights [ $r ][ 1 ] = 'Valider les commandes clients' ;
$this -> rights [ $r ][ 2 ] = 'd' ;
$this -> rights [ $r ][ 3 ] = 0 ;
$this -> rights [ $r ][ 4 ] = 'valider' ;
$r ++ ;
$this -> rights [ $r ][ 0 ] = 86 ;
$this -> rights [ $r ][ 1 ] = 'Envoyer les commandes clients' ;
$this -> rights [ $r ][ 2 ] = 'd' ;
$this -> rights [ $r ][ 3 ] = 0 ;
$this -> rights [ $r ][ 4 ] = 'envoyer' ;
$r ++ ;
$this -> rights [ $r ][ 0 ] = 87 ;
$this -> rights [ $r ][ 1 ] = 'Cl<43> turer les commandes clients' ;
$this -> rights [ $r ][ 2 ] = 'd' ;
$this -> rights [ $r ][ 3 ] = 0 ;
$this -> rights [ $r ][ 4 ] = 'cloturer' ;
$r ++ ;
$this -> rights [ $r ][ 0 ] = 88 ;
$this -> rights [ $r ][ 1 ] = 'Annuler les commandes clients' ;
$this -> rights [ $r ][ 2 ] = 'd' ;
$this -> rights [ $r ][ 3 ] = 0 ;
$this -> rights [ $r ][ 4 ] = 'annuler' ;
$r ++ ;
$this -> rights [ $r ][ 0 ] = 89 ;
$this -> rights [ $r ][ 1 ] = 'Supprimer les commandes clients' ;
$this -> rights [ $r ][ 2 ] = 'd' ;
$this -> rights [ $r ][ 3 ] = 0 ;
$this -> rights [ $r ][ 4 ] = 'supprimer' ;
$r ++ ;
2007-04-20 00:35:18 +02:00
$this -> rights [ $r ][ 0 ] = 1421 ;
2007-03-19 16:33:19 +01:00
$this -> rights [ $r ][ 1 ] = 'Exporter les commandes clients et attributs' ;
$this -> rights [ $r ][ 2 ] = 'r' ;
$this -> rights [ $r ][ 3 ] = 0 ;
$this -> rights [ $r ][ 4 ] = 'commande' ;
$this -> rights [ $r ][ 5 ] = 'export' ;
2006-04-29 16:21:20 +02:00
2007-03-19 16:33:19 +01:00
// Exports
//--------
$r = 0 ;
2006-04-29 16:21:20 +02:00
2007-03-19 16:33:19 +01:00
$r ++ ;
$this -> export_code [ $r ] = $this -> id . '_' . $r ;
$this -> export_label [ $r ] = 'Commandes clients et lignes de commande' ;
2007-06-12 00:51:47 +02:00
$this -> export_fields_array [ $r ] = array ( 's.rowid' => " IdCompany " , 's.nom' => 'CompanyName' , 's.address' => 'Address' , 's.cp' => 'Zip' , 's.ville' => 'Town' , 's.fk_pays' => 'Country' , 's.tel' => 'Phone' , 's.siren' => 'ProfId1' , 's.siret' => 'ProfId2' , 's.ape' => 'ProfId3' , 's.idprof4' => 'ProfId4' , 'c.rowid' => " Id " , 'c.ref' => " Ref " , 'c.ref_client' => " RefClient " , 'c.fk_soc' => " IdCompany " , 'c.date_creation' => " DateCreation " , 'c.date_commande' => " DateOrder " , 'c.amount_ht' => " Amount " , 'c.remise_percent' => " GlobalDiscount " , 'c.total_ht' => " TotalHT " , 'c.total_ttc' => " TotalTTC " , 'c.facture' => " OrderShortStatusInvoicee " , 'c.fk_statut' => 'Status' , 'c.note' => " Note " , 'c.date_livraison' => 'DateDelivery' , 'p.ref' => 'RefProduct' , 'p.label' => 'Label' , 'cd.rowid' => 'LineId' , 'cd.description' => " LineDescription " , 'cd.total_ht' => " LineTotalHT " , 'cd.tva_tx' => " LineVATRate " , 'cd.qty' => " LineQty " );
$this -> export_entities_array [ $r ] = array ( 's.rowid' => " company " , 's.nom' => 'company' , 's.address' => 'company' , 's.cp' => 'company' , 's.ville' => 'company' , 's.fk_pays' => 'company' , 's.tel' => 'company' , 's.siren' => 'company' , 's.ape' => 'company' , 's.idprof4' => 'company' , 's.siret' => 'company' , 'c.rowid' => " order " , 'c.ref' => " order " , 'c.ref_client' => " order " , 'c.fk_soc' => " order " , 'c.date_creation' => " order " , 'c.date_commande' => " order " , 'c.amount_ht' => " order " , 'c.remise_percent' => " order " , 'c.total_ht' => " order " , 'c.total_ttc' => " order " , 'c.facture' => " order " , 'c.fk_statut' => 'order' , 'c.note' => " order " , 'c.date_livraison' => " order " , 'p.ref' => 'product' , 'p.label' => 'product' , 'cd.rowid' => 'order_line' , 'cd.description' => " order_line " , 'cd.total_ht' => " order_line " , 'cd.tva_tx' => " order_line " , 'cd.qty' => " order_line " );
$this -> export_alias_array [ $r ] = array ( 's.rowid' => " socid " , 's.nom' => 'soc_name' , 's.address' => 'soc_adres' , 's.cp' => 'soc_zip' , 's.ville' => 'soc_ville' , 's.fk_pays' => 'soc_pays' , 's.tel' => 'soc_tel' , 's.siren' => 'soc_siren' , 's.siret' => 'soc_siret' , 's.ape' => 'soc_ape' , 's.idprof4' => 'soc_idprof4' , 'c.rowid' => " orderid " , 'c.ref' => " ref " , 'c.ref_client' => " refclient " , 'c.fk_soc' => " fk_soc " , 'c.date_creation' => " datecreation " , 'c.date_commande' => " dateorder " , 'c.amount_ht' => " amount " , 'c.remise_percent' => " globaldiscount " , 'c.total_ht' => " totalht " , 'c.total_ttc' => " totalttc " , 'c.facture' => " invoicee " , 'c.fk_statut' => 'status' , 'c.note' => " note " , 'c.date_livraison' => 'datedelivery' , 'p.ref' => 'refproduct' , 'p.label' => 'label' , 'cd.rowid' => 'lineid' , 'cd.description' => " linedescription " , 'cd.total_ht' => " linetotalht " , 'cd.tva_tx' => " linevatrate " , 'cd.qty' => " lineqty " );
2007-03-19 16:33:19 +01:00
$this -> export_sql [ $r ] = " select distinct " ;
$i = 0 ;
foreach ( $this -> export_alias_array [ $r ] as $key => $value )
{
if ( $i > 0 ) $this -> export_sql [ $r ] .= ', ' ;
else $i ++ ;
$this -> export_sql [ $r ] .= $key . ' as ' . $value ;
}
2007-06-12 00:51:47 +02:00
$this -> export_sql [ $r ] .= ' from ' . MAIN_DB_PREFIX . 'commande as c, ' . MAIN_DB_PREFIX . 'commandedet as cd, ' . MAIN_DB_PREFIX . 'societe as s, ' . MAIN_DB_PREFIX . 'product as p WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_commande AND cd.fk_product = p.rowid' ;
2007-03-19 16:33:19 +01:00
$this -> export_permission [ $r ] = array ( array ( " commande " , " commande " , " export " ));
2004-12-22 21:27:10 +01:00
2005-05-14 16:22:08 +02:00
}
/**
* \brief Fonction appel<EFBFBD> e lors de l ' activation du module . Ins<EFBFBD> re en base les constantes , boites , permissions du module .
* D<EFBFBD> finit <EFBFBD> galement les r<EFBFBD> pertoires de donn<EFBFBD> es <EFBFBD> cr<EFBFBD> er pour ce module .
*/
function init ()
{
global $conf ;
// Permissions
$this -> remove ();
2005-02-06 17:34:11 +01:00
// Dir
$this -> dirs [ 0 ] = $conf -> commande -> dir_output ;
2006-08-19 17:50:48 +02:00
$this -> dirs [ 1 ] = $conf -> commande -> dir_temp ;
2006-02-09 09:37:11 +01:00
$sql = array (
2006-06-02 22:14:21 +02:00
" DELETE FROM " . MAIN_DB_PREFIX . " document_model WHERE nom = ' " . $this -> const [ 0 ][ 2 ] . " ' " ,
" INSERT INTO " . MAIN_DB_PREFIX . " document_model (nom,type) VALUES(' " . $this -> const [ 0 ][ 2 ] . " ','order') "
2006-02-09 09:37:11 +01:00
);
2004-12-22 21:27:10 +01:00
2003-11-03 10:45:15 +01:00
return $this -> _init ( $sql );
2003-09-10 18:06:35 +02:00
}
2004-11-23 21:04:19 +01:00
/**
* \brief Fonction appel<EFBFBD> e lors de la d<EFBFBD> sactivation d ' un module .
* Supprime de la base les constantes , boites et permissions du module .
2003-09-10 18:06:35 +02:00
*/
2004-08-07 19:14:42 +02:00
function remove ()
2003-09-10 18:06:35 +02:00
{
2004-09-11 00:23:40 +02:00
$sql = array ();
2006-02-09 09:37:11 +01:00
2003-09-10 18:06:35 +02:00
return $this -> _remove ( $sql );
}
}
?>