From d154c260117eb16c5c0ad64596b95a62c9290c8b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Mon, 4 May 2009 19:55:52 +0000 Subject: [PATCH] Can export commercial proposals --- ChangeLog | 4 ++-- htdocs/exports/export.php | 2 ++ htdocs/includes/modules/modPropale.class.php | 25 ++++++++++++++++++++ htdocs/langs/en_US/admin.lang | 1 + htdocs/langs/en_US/orders.lang | 1 + htdocs/langs/en_US/products.lang | 2 ++ htdocs/langs/en_US/propal.lang | 3 +++ htdocs/langs/fr_FR/admin.lang | 1 + htdocs/langs/fr_FR/orders.lang | 1 + htdocs/langs/fr_FR/products.lang | 2 ++ htdocs/langs/fr_FR/propal.lang | 3 +++ 11 files changed, 43 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index deae6f69d1b..61ee86334ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,8 +4,8 @@ English Dolibarr changelog ***** Changelog for 2.7 compared to 2.6 ***** For users: -- New: Add filter on status in emailing selector for Dolibarr users. - +- New: Can export commercial proposals + For translators: - Update some language files. diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 7b942912db1..6c014e039c7 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -39,6 +39,7 @@ if (! $user->admin) $entitytoicon=array( 'invoice'=>'bill','invoice_line'=>'bill', 'order'=>'order' ,'order_line'=>'order', + 'propal'=>'propal', 'propal_line'=>'propal', 'intervention'=>'intervention' ,'inter_line'=>'intervention', 'member'=>'user' ,'member_type'=>'group','subscription'=>'payment', 'tax'=>'generic' ,'tax_type'=>'generic', @@ -53,6 +54,7 @@ $entitytolang=array( // Translation code 'company'=>'Company','contact'=>'Contact', 'invoice'=>'Bill','invoice_line'=>'InvoiceLine', 'order'=>'Order','order_line'=>'OrderLine', + 'propal'=>'Proposal','propal_line'=>'ProposalLine', 'intervention'=>'Intervention' ,'inter_line'=>'InterLine', 'member'=>'Member','member_type'=>'MemberType','subscription'=>'Subscription', 'tax'=>'SocialContribution','tax_type'=>'DictionnarySocialContributions', diff --git a/htdocs/includes/modules/modPropale.class.php b/htdocs/includes/modules/modPropale.class.php index f545ef8345d..30c20e62bf9 100644 --- a/htdocs/includes/modules/modPropale.class.php +++ b/htdocs/includes/modules/modPropale.class.php @@ -68,7 +68,9 @@ class modPropale extends DolibarrModules // Dependancies $this->depends = array("modSociete","modCommercial"); + $this->requiredby = array(); $this->config_page_url = array("propale.php"); + $this->langfiles = array("propal","bills","companies","deliveries","products"); // Constants $this->const = array(); @@ -129,6 +131,29 @@ class modPropale extends DolibarrModules $this->rights[6][3] = 0; // La permission est-elle une permission par defaut $this->rights[6][4] = 'supprimer'; + $this->rights[6][0] = 28; // id de la permission + $this->rights[6][1] = 'Exporter les propositions commerciales et attributs'; // libelle de la permission + $this->rights[6][2] = 'r'; // type de la permission (deprecie a ce jour) + $this->rights[6][3] = 0; // La permission est-elle une permission par defaut + $this->rights[6][4] = 'export'; + + // Exports + //-------- + $r=0; + + $r++; + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='ProposalsAndProposalsLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_permission[$r]=array(array("propale","export")); + $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.datec'=>"DateCreation",'c.datep'=>"DatePropal",'c.fin_validite'=>"DateEndPropal",'c.remise_percent'=>"GlobalDiscount",'c.total_ht'=>"TotalHT",'c.total'=>"TotalTTC",'c.fk_statut'=>'Status','c.note'=>"Note",'c.date_livraison'=>'DeliveryDate','cd.rowid'=>'LineId','cd.description'=>"LineDescription",'cd.product_type'=>'TypeOfLineServiceOrProduct','cd.tva_tx'=>"LineVATRate",'cd.qty'=>"LineQty",'cd.total_ht'=>"LineTotalHT",'cd.total_tva'=>"LineTotalVAT",'cd.total_ttc'=>"LineTotalTTC",'p.rowid'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'Label'); + $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'=>"propal",'c.ref'=>"propal",'c.ref_client'=>"propal",'c.fk_soc'=>"propal",'c.datec'=>"propal",'c.datep'=>"propal",'c.fin_validite'=>"propal",'c.remise_percent'=>"propal",'c.total_ht'=>"propal",'c.total'=>"propal",'c.fk_statut'=>"propal",'c.note'=>"propal",'c.date_livraison'=>"propal",'cd.rowid'=>'propal_line','cd.description'=>"propal_line",'cd.product_type'=>'propal_line','cd.tva_tx'=>"propal_line",'cd.qty'=>"propal_line",'cd.total_ht'=>"propal_line",'cd.total_tva'=>"propal_line",'cd.total_ttc'=>"propal_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product'); + $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.datec'=>"datecreation",'c.datep'=>"datepropal",'c.fin_validite'=>"dateendpropal",'c.remise_percent'=>"globaldiscount",'c.total_ht'=>"totalht",'c.total'=>"totalttc",'c.fk_statut'=>'status','c.note'=>"note",'c.date_livraison'=>'datedelivery','cd.rowid'=>'lineid','cd.description'=>"linedescription",'cd.product_type'=>'linetype','cd.tva_tx'=>"linevatrate",'cd.qty'=>"lineqty",'cd.total_ht'=>"lientotalht",'cd.total_tva'=>"linetotalvat",'cd.total_ttc'=>"linetotalttc",'p.rowid'=>'idproduct','p.ref'=>'refproduct','p.label'=>'label'); + + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'propal as c, '.MAIN_DB_PREFIX.'propaldet as cd, '.MAIN_DB_PREFIX.'societe as s)'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (cd.fk_product = p.rowid)'; + $this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_propal'; + $this->export_sql_end[$r] .=' AND s.entity = '.$conf->entity; } diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index a2a0d0d9b44..aad2db8ef47 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -344,6 +344,7 @@ Permission24=Validate commercial proposals 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 diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index 57f23abae51..fce6cdc99c2 100755 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -5,6 +5,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card Order=Order Orders=Orders +OrderLine=Order line OrderFollow=Follow up OrderContact=Order contact OrderDate=Order date diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 2f5c4e49ec4..cf3ed65a5a1 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -1,5 +1,7 @@ # Dolibarr language file - en_US - products CHARSET=UTF-8 +ProductRef=Product ref. +ProductLabel=Product label ProductServiceCard=Products/Services card Products=Products Services=Services diff --git a/htdocs/langs/en_US/propal.lang b/htdocs/langs/en_US/propal.lang index 95804979f6f..f3b5c1c5229 100644 --- a/htdocs/langs/en_US/propal.lang +++ b/htdocs/langs/en_US/propal.lang @@ -59,6 +59,7 @@ FileNotUploaded=The file was not uploaded FileUploaded=The file was successfully uploaded AssociatedDocuments=Documents associated with the proposal: ErrorCantOpenDir=Can't open directory +DatePropal=Date of proposal DateEndPropal=Date end validity DateEndPropalShort=Date end ValidityDuration=Validity duration @@ -77,6 +78,8 @@ DefaultProposalDurationValidity=Default commercial proposal validity duration (i UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address ClonePropal=Clone commercial proposal ConfirmClonePropal=Are you sure you want to clone this commercial proposal <b>%s</b> ? +ProposalsAndProposalsLines=Commercial proposal and lines +ProposalLine=Proposal line # Document models DocModelAzurDescription=A complete proposal model (logo...) diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 3bb3fde6210..d1aa0498fac 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -343,6 +343,7 @@ Permission24 = Valider les propositions commerciales 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 diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang index f6c13ea2e08..6b9bf697e06 100755 --- a/htdocs/langs/fr_FR/orders.lang +++ b/htdocs/langs/fr_FR/orders.lang @@ -5,6 +5,7 @@ SuppliersOrdersArea=Espace commandes fournisseurs OrderCard=Fiche commande Order=Commande Orders=Commandes +OrderLine=Ligne de commande OrderFollow=Suivi OrderContact=Contacts commande OrderDate=Date commande diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index 32be2b2ca5a..cd621abf194 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -1,5 +1,7 @@ # Dolibarr language file - fr_FR - products CHARSET=UTF-8 +ProductRef=Réf. produit +ProductLabel=Libellé produit ProductServiceCard=Fiche produit/service Products=Produits Services=Services diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang index d075ae4563f..ac27a9492f7 100644 --- a/htdocs/langs/fr_FR/propal.lang +++ b/htdocs/langs/fr_FR/propal.lang @@ -59,6 +59,7 @@ FileNotUploaded=Le fichier n'a pas été téléchargé FileUploaded=Le fichier a été téléchargé avec succès AssociatedDocuments=Documents associés à la proposition : ErrorCantOpenDir=Impossible d'ouvrir le répertoire +DatePropal=Date proposition DateEndPropal=Date fin validité DateEndPropalShort=Date fin ValidityDuration=Durée de validité @@ -77,6 +78,8 @@ DefaultProposalDurationValidity=Délai de validité par défaut (en jours) UseCustomerContactAsPropalRecipientIfExist=Utiliser adresse contact suivi client si défini plutot que adresse tiers comme destinataire des propositions ClonePropal=Cloner proposition commerciale ConfirmClonePropal=Etes-vous sur de vouloir cloner cette proposition commerciale <b>%s</b> ? +ProposalsAndProposalsLines=Propositions commerciales clientes et lignes de propositions +ProposalLine=Ligne de proposition # Documents models DocModelAzurDescription=Modèle de propositions commerciales complet (logo...) -- GitLab