From 568d5cb5ba8f2eddc729a4b6d362f24fe6fcf1eb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 23 Jan 2015 18:47:47 +0100 Subject: [PATCH 01/11] Fixed: Tracking number restored on PDF shipments Fixed: Translation Conflicts: htdocs/langs/en_US/agenda.lang --- ChangeLog | 1 + .../modules/expedition/doc/pdf_merou.modules.php | 16 ++++++++-------- .../expedition/doc/pdf_rouget.modules.php | 14 ++++++++++---- htdocs/expedition/class/expedition.class.php | 2 +- htdocs/langs/en_US/admin.lang | 4 ++-- htdocs/langs/en_US/agenda.lang | 4 ++-- htdocs/langs/en_US/sendings.lang | 8 ++++---- htdocs/langs/en_US/stocks.lang | 2 +- 8 files changed, 29 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2643b444876..ace6a13363d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ English Dolibarr ChangeLog - Fix: [ bug #1783 ] SQL error when enabling 3rd party module with PostgreSQL and MySQL strict mode ON - Fix: [ bug #1717 ] Sorting unpaid invoices by amount received brings due amount - Fix: [ bug #1784 ] MOTD doesn't show up in Amarok theme +- Fix: Tracking number not visible on shipment pdf ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** - Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index cc9d884a831..8fab26f211c 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -534,13 +534,18 @@ class pdf_merou extends ModelePdfExpedition // Date Expedition $Yoff = $Yoff+7; - $pdf->SetXY($blSocX-80,$blSocY+20); + $pdf->SetXY($blSocX-80,$blSocY+17); $pdf->SetFont('','B', $default_font_size - 2); $pdf->SetTextColor(0,0,0); $pdf->MultiCell(50, 8, $outputlangs->transnoentities("Date")." : " . dol_print_date($object->date_delivery,'day',false,$outputlangs,true), '', 'L'); + $pdf->SetXY($blSocX-80,$blSocY+20); + $pdf->SetFont('','B', $default_font_size - 2); + $pdf->SetTextColor(0,0,0); + $pdf->MultiCell(50, 8, $outputlangs->transnoentities("TrackingNumber")." : " . $object->tracking_number, '', 'L'); + // Deliverer - $pdf->SetXY($blSocX-80,$blSocY+23); + $pdf->SetXY($blSocX-80,$blSocY+24); $pdf->SetFont('','', $default_font_size - 2); $pdf->SetTextColor(0,0,0); @@ -554,13 +559,8 @@ class pdf_merou extends ModelePdfExpedition // Get code using getLabelFromKey $code=$outputlangs->getLabelFromKey($this->db,$object->shipping_method_id,'c_shipment_mode','rowid','code'); $label=$outputlangs->trans("SendingMethod".strtoupper($code))." :"; + $pdf->writeHTMLCell(50, 8, '', '', $label." ".$object->tracking_url, '', 'L'); } - else - { - $label=$outputlangs->transnoentities("Deliverer"); - } - - $pdf->writeHTMLCell(50, 8, '', '', $label." ".$object->tracking_url, '', 'L'); } } else diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index eedc4b91827..12fd723bf9b 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -180,11 +180,17 @@ class pdf_rouget extends ModelePdfExpedition $tab_height = 130; $tab_height_newpage = 150; - if (! empty($object->note_public) || (! empty($object->tracking_number) && ! empty($object->shipping_method_id))) + if (! empty($object->note_public) || ! empty($object->tracking_number)) { $tab_top = 88; $tab_top_alt = $tab_top; + $pdf->SetFont('','B', $default_font_size - 2); + $pdf->writeHTMLCell(60, 4, $this->posxdesc-1, $tab_top-1, $outputlangs->transnoentities("TrackingNumber")." : " . $object->tracking_number, 0, 1, false, true, 'L'); + + $tab_top_alt = $pdf->GetY(); + //$tab_top_alt += 1; + // Tracking number if (! empty($object->tracking_number)) { @@ -198,14 +204,14 @@ class pdf_rouget extends ModelePdfExpedition $label=$outputlangs->trans("LinkToTrackYourPackage")."
"; $label.=$outputlangs->trans("SendingMethod".strtoupper($code))." :"; $pdf->SetFont('','B', $default_font_size - 2); - $pdf->writeHTMLCell(60, 7, $this->posxdesc-1, $tab_top-1, $label." ".$object->tracking_url, 0, 1, false, true, 'L'); + $pdf->writeHTMLCell(60, 4, $this->posxdesc-1, $tab_top+6, $label." ".$object->tracking_url, 0, 1, false, true, 'L'); - $tab_top_alt += 7; + $tab_top_alt = $pdf->GetY(); } } } - // Affiche notes + // Notes if (! empty($object->note_public)) { $pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 1045bed42be..e120ce24a40 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -1494,7 +1494,7 @@ class Expedition extends CommonObject } /** - * Get tracking url status + * Forge an set tracking url * * @param string $value Value * @return void diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 2aa09fd867d..57d496bd0f4 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1374,9 +1374,9 @@ ListOfAvailableNotifications=List of available notifications (This list depends SendingsSetup=Sending module setup SendingsReceiptModel=Sending receipt model SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support sendings sheets for customer deliveries +SendingsAbility=Support shipment sheets for customer deliveries NoNeedForDeliveryReceipts=In most cases, sendings receipts are used both as sheets for customer deliveries (list of products to send) and sheets that is recevied and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shippings +FreeLegalTextOnShippings=Free text on shipments ##### Deliveries ##### DeliveryOrderNumberingModules=Products deliveries receipt numbering module DeliveryOrderModel=Products deliveries receipt model diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 687e3cae146..52b2e8128fd 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -52,8 +52,8 @@ OrderSentByEMail=Customer order %s sent by EMail InvoiceSentByEMail=Customer invoice %s sent by EMail SupplierOrderSentByEMail=Supplier order %s sent by EMail SupplierInvoiceSentByEMail=Supplier invoice %s sent by EMail -ShippingSentByEMail=Shipping %s sent by EMail -ShippingValidated= Shipping %s validated +ShippingSentByEMail=Shipment %s sent by EMail +ShippingValidated= Shipment %s validated InterventionSentByEMail=Intervention %s sent by EMail NewCompanyToDolibarr= Third party created DateActionPlannedStart= Planned start date diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang index 039d47f6aa9..861feeaf8d0 100644 --- a/htdocs/langs/en_US/sendings.lang +++ b/htdocs/langs/en_US/sendings.lang @@ -4,7 +4,7 @@ Sending=Shipment Sendings=Shipments Shipment=Shipment Shipments=Shipments -Receivings=Receivings +Receivings=Receipts SendingsArea=Shipments area ListOfSendings=List of shipments SendingMethod=Shipping method @@ -14,7 +14,7 @@ SearchASending=Search for shipment StatisticsOfSendings=Statistics for shipments NbOfSendings=Number of shipments NumberOfShipmentsByMonth=Number of shipments by month -SendingCard=Shipping card +SendingCard=Shipment card NewSending=New shipment CreateASending=Create a shipment CreateSending=Create shipment @@ -37,7 +37,7 @@ StatusSendingCanceledShort=Canceled StatusSendingDraftShort=Draft StatusSendingValidatedShort=Validated StatusSendingProcessedShort=Processed -SendingSheet=Sending sheet +SendingSheet=Shipment sheet Carriers=Carriers Carrier=Carrier CarriersArea=Carriers area @@ -58,7 +58,7 @@ SendShippingRef=Send shipment %s ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. -RelatedShippings=Related shippings +RelatedShippings=Related shipments ShipmentLine=Shipment line CarrierList=List of transporters diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index 7a08148c9ce..63c118dd6e2 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -116,7 +116,7 @@ MassMovement=Mass movement MassStockMovement=Mass stock movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". RecordMovement=Record transfert -ReceivingForSameOrder=Receivings for this order +ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements StockMustBeEnoughForInvoice=Stock level must be enough to add product/service into invoice From 11dd32a8fd7d7d29061145203e7a329762d8d051 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Mon, 26 Jan 2015 23:37:25 +0100 Subject: [PATCH 02/11] FIXED Import module was not working with multi-company and importing everything in entity 1 --- htdocs/core/modules/import/import_csv.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index e83f812e8c4..da8d57395bc 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -607,7 +607,7 @@ class ImportCsv extends ModeleImports //var_dump($objimport->array_import_convertvalue); exit; // Build SQL request - if (empty($tablewithentity[$tablename])) + if (empty($tablewithentity_cache[$tablename])) { $sql ='INSERT INTO '.$tablename.'('.$listfields.', import_key'; if (! empty($objimport->array_import_tables_creator[0][$alias])) $sql.=', '.$objimport->array_import_tables_creator[0][$alias]; From 04f83ae4ff9feddbf567dc1c94f41b083ee03cb7 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Wed, 28 Jan 2015 16:19:56 +0100 Subject: [PATCH 03/11] FIX: always show fournprice select --- htdocs/core/tpl/objectline_edit.tpl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index d48abbc0aa1..3f9bd972122 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -128,7 +128,7 @@ $coldisplay=-1; // We remove first td margin->enabled)) { ?> - + rights->margins->creer) { From 87b75126aa2cbc5bbe5704bd926557aceeac3a7c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 31 Jan 2015 16:52:34 +0100 Subject: [PATCH 04/11] Fix missing set into specimen --- htdocs/comm/action/class/actioncomm.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 360f38c3f45..96135cd3569 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1060,6 +1060,7 @@ class ActionComm extends CommonObject $this->datef=$now; $this->author=$user; $this->usermod=$user; + $this->usertodo=$user; $this->fulldayevent=0; $this->punctual=0; $this->percentage=0; From ef354834943a7af57c792a3e7d84cedca88ee8dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 1 Feb 2015 12:58:54 +0100 Subject: [PATCH 05/11] Fix: [ bug #1819 ] SQL error when searching for an invoice payment --- ChangeLog | 1 + htdocs/compta/paiement/liste.php | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index ace6a13363d..ab0f89efd60 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,7 @@ English Dolibarr ChangeLog - Fix: [ bug #1717 ] Sorting unpaid invoices by amount received brings due amount - Fix: [ bug #1784 ] MOTD doesn't show up in Amarok theme - Fix: Tracking number not visible on shipment pdf +- Fix: [ bug #1819 ] SQL error when searching for an invoice payment ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** - Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. diff --git a/htdocs/compta/paiement/liste.php b/htdocs/compta/paiement/liste.php index 6e3e1bc54ff..26f5c6eb5da 100644 --- a/htdocs/compta/paiement/liste.php +++ b/htdocs/compta/paiement/liste.php @@ -3,6 +3,7 @@ * Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2013 Cédric Salvador + * Copyright (C) 2015 Marcos García * * 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 @@ -53,6 +54,8 @@ $limit = $conf->liste_limit; if (! $sortorder) $sortorder="DESC"; if (! $sortfield) $sortfield="p.rowid"; +$search_ref = GETPOST("search_ref",'int'); +$search_account = GETPOST("search_account",'int'); @@ -109,11 +112,13 @@ else if ($userid == -1) $sql.= " AND f.fk_user_author IS NULL"; else $sql.= " AND f.fk_user_author = ".$userid; } + + // Search criteria - if (GETPOST("search_ref")) $sql .=" AND p.rowid=".GETPOST("search_ref",'int'); - if (GETPOST("search_account") > 0) $sql .=" AND b.fk_account=".GETPOST("search_account",'int'); - if (GETPOST("search_paymenttype") != "") $sql .=" AND c.code='".GETPOST("search_paymenttype")."'"; - if (GETPOST("search_amount")) $sql .=" AND p.amount=".price2num(GETPOST("search_amount")); + if ($search_ref) $sql .=" AND p.rowid=".$search_ref; + if ($search_account > 0) $sql .=" AND b.fk_account=".$search_account; + if (GETPOST("search_paymenttype") != "") $sql .=" AND c.code='".$db->escape(GETPOST("search_paymenttype"))."'"; + if (GETPOST("search_amount")) $sql .=" AND p.amount='".$db->escape(price2num(GETPOST("search_amount")))."'"; if (GETPOST("search_company")) $sql .= natural_search('s.nom', GETPOST('search_company')); } $sql.= $db->order($sortfield,$sortorder); @@ -129,7 +134,7 @@ if ($resql) $paramlist=''; $paramlist.=(GETPOST("orphelins")?"&orphelins=1":""); - $paramlist.=($_REQUEST["search_ref"]?"&search_ref=".$_REQUEST["search_ref"]:""); + $paramlist.=($search_ref?"&search_ref=".$search_ref:""); $paramlist.=($_REQUEST["search_company"]?"&search_company=".$_REQUEST["search_company"]:""); $paramlist.=($_REQUEST["search_amount"]?"&search_amount=".$_REQUEST["search_amount"]:""); @@ -154,7 +159,7 @@ if ($resql) // Lines for filters fields print ''; print ''; - print ''; + print ''; print ''; print ' '; print ''; From 0c6364403850cb293ed92b9e1906a58b2f70862e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Sun, 1 Feb 2015 13:26:30 +0100 Subject: [PATCH 06/11] Fix: [ bug #1819 ] SQL error when searching for an invoice payment --- ChangeLog | 1 + htdocs/comm/mailing/fiche.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ace6a13363d..a3b356e2436 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,7 @@ English Dolibarr ChangeLog - Fix: [ bug #1717 ] Sorting unpaid invoices by amount received brings due amount - Fix: [ bug #1784 ] MOTD doesn't show up in Amarok theme - Fix: Tracking number not visible on shipment pdf +- Fix: [ bug #1812 ] SQL Error message while sending emailing with PostgreSQL datatabase ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** - Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php index 6e7546fb70d..97f06b3d9ba 100644 --- a/htdocs/comm/mailing/fiche.php +++ b/htdocs/comm/mailing/fiche.php @@ -188,7 +188,7 @@ if (empty($reshook)) { $now=dol_now(); // Positionne date debut envoi - $sql="UPDATE ".MAIN_DB_PREFIX."mailing SET date_envoi=".$db->idate($now)." WHERE rowid=".$object->id; + $sql="UPDATE ".MAIN_DB_PREFIX."mailing SET date_envoi='".$db->idate($now)."' WHERE rowid=".$object->id; $resql2=$db->query($sql); if (! $resql2) { @@ -284,7 +284,7 @@ if (empty($reshook)) { dol_syslog("comm/mailing/fiche.php: ok for #".$i.($mail->error?' - '.$mail->error:''), LOG_DEBUG); $sql="UPDATE ".MAIN_DB_PREFIX."mailing_cibles"; - $sql.=" SET statut=1, date_envoi=".$db->idate($now)." WHERE rowid=".$obj->rowid; + $sql.=" SET statut=1, date_envoi='".$db->idate($now)."' WHERE rowid=".$obj->rowid; $resql2=$db->query($sql); if (! $resql2) { From fb865e818490ba2008d2d44fc1a4a5737e4e5478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= Date: Mon, 2 Feb 2015 17:08:59 +0100 Subject: [PATCH 07/11] FIXED Removed deprecated forcing SSLv3 for CURL Since the Poodle vulnerability, SSLv3 has been supersedded by TLS. Many services do not offer SSLv3 anymore. CURL has also been patched in PHP so it now auto-negociates the most appropriate protocol. This prevented most API calls from working. --- htdocs/core/lib/geturl.lib.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/core/lib/geturl.lib.php b/htdocs/core/lib/geturl.lib.php index 8a9ac1385be..e4c3625257d 100644 --- a/htdocs/core/lib/geturl.lib.php +++ b/htdocs/core/lib/geturl.lib.php @@ -52,7 +52,6 @@ function getURLContent($url,$postorget='GET',$param='',$followlocation=1,$addhea exit;*/ curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_VERBOSE, 1); - curl_setopt($ch, CURLOPT_SSLVERSION, 3); // Force SSLv3 curl_setopt($ch, CURLOPT_USERAGENT, 'Dolibarr geturl function'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, ($followlocation?true:false)); From eb2c5c29b787b8aa9c2a9669006ae83ab0f1f83c Mon Sep 17 00:00:00 2001 From: Arnaud Aujon Chevallier Date: Thu, 5 Feb 2015 13:33:58 +0100 Subject: [PATCH 08/11] FIXES Webservice : fk_delivery_address not saved --- htdocs/webservices/server_order.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/webservices/server_order.php b/htdocs/webservices/server_order.php index d70725b468f..8cd69b352a7 100644 --- a/htdocs/webservices/server_order.php +++ b/htdocs/webservices/server_order.php @@ -640,6 +640,7 @@ function createOrder($authentication,$order) $newobject->statut=0; // We start with status draft $newobject->facturee=$order['facturee']; $newobject->fk_project=$order['project_id']; + $newObject->fk_delivery_address=$order['fk_delivery_address']; $newobject->cond_reglement_id=$order['cond_reglement_id']; $newobject->demand_reason_id=$order['demand_reason_id']; $newobject->date_creation=$now; From 65efa7ddf76d442264c9aff8c995fecd78a6df00 Mon Sep 17 00:00:00 2001 From: Arnaud Aujon Date: Thu, 5 Feb 2015 12:05:34 +0100 Subject: [PATCH 09/11] FIXED #1824 Add ref_ext for Contact webservices Add possibility to use ref_ext to reference contact using webservice, field was present but not saved and not used to fetch object --- htdocs/contact/class/contact.class.php | 9 +++++++-- htdocs/webservices/server_contact.php | 22 ++++++++++++---------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 4187de7136c..a5c3764fd28 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -140,6 +140,7 @@ class Contact extends CommonObject $sql.= ", statut"; $sql.= ", canvas"; $sql.= ", entity"; + $sql.= ",ref_ext"; $sql.= ", import_key"; $sql.= ") VALUES ("; $sql.= "'".$this->db->idate($now)."',"; @@ -152,6 +153,7 @@ class Contact extends CommonObject $sql.= " ".$this->statut.","; $sql.= " ".(! empty($this->canvas)?"'".$this->canvas."'":"null").","; $sql.= " ".$conf->entity.","; + $sql.= "'".$this->db->escape($this->ref_ext)."',"; $sql.= " ".(! empty($this->import_key)?"'".$this->import_key."'":"null"); $sql.= ")"; @@ -496,10 +498,12 @@ class Contact extends CommonObject * * @param int $id id du contact * @param User $user Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact + * @param string $ref_ext External reference, not given by Dolibarr * @return int -1 if KO, 0 if OK but not found, 1 if OK */ - function fetch($id, $user=0) + function fetch($id, $user=0, $ref_ext='') { + dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR); global $langs; $langs->load("companies"); @@ -521,7 +525,8 @@ class Contact extends CommonObject $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d ON c.fk_departement = d.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON c.rowid = u.fk_socpeople"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON c.fk_soc = s.rowid"; - $sql.= " WHERE c.rowid = ". $id; + if ($id) $sql.= " WHERE c.rowid = ". $id; + elseif ($ref_ext) $sql .= " WHERE c.ref_ext = '".$this->db->escape($ref_ext)."'"; dol_syslog(get_class($this)."::fetch sql=".$sql); $resql=$this->db->query($sql); diff --git a/htdocs/webservices/server_contact.php b/htdocs/webservices/server_contact.php index eb05665ea04..edd95566287 100644 --- a/htdocs/webservices/server_contact.php +++ b/htdocs/webservices/server_contact.php @@ -83,6 +83,7 @@ $server->wsdl->addComplexType( $contact_fields = array( 'id' => array('name'=>'id','type'=>'xsd:string'), + 'ref_ext' => array('name'=>'ref_ext','type'=>'xsd:string'), 'lastname' => array('name'=>'lastname','type'=>'xsd:string'), 'firstname' => array('name'=>'firstname','type'=>'xsd:string'), 'address' => array('name'=>'address','type'=>'xsd:string'), @@ -176,14 +177,14 @@ $styleuse='encoded'; // encoded/literal/literal wrapped $server->register( 'getContact', // Entry values - array('authentication'=>'tns:authentication','id'=>'xsd:string','ref'=>'xsd:string','ref_ext'=>'xsd:string'), + array('authentication'=>'tns:authentication','id'=>'xsd:string','ref_ext'=>'xsd:string'), // Exit values array('result'=>'tns:result','contact'=>'tns:contact'), $ns, $ns.'#getContact', $styledoc, $styleuse, - 'WS to get contact' + 'WS to get a contact' ); // Register WSDL @@ -232,16 +233,15 @@ $server->register( * Get Contact * * @param array $authentication Array of authentication information - * @param int $id Id of object - * @param string $ref Ref of object - * @param ref_ext $ref_ext Ref external of object + * @param int $id Id of object + * @param string $ref_ext Ref external of object * @return mixed */ -function getContact($authentication,$id,$ref='',$ref_ext='') +function getContact($authentication,$id,$ref_ext) { global $db,$conf,$langs; - dol_syslog("Function: getContact login=".$authentication['login']." id=".$id." ref=".$ref." ref_ext=".$ref_ext); + dol_syslog("Function: getContact login=".$authentication['login']." id=".$id." ref_ext=".$ref_ext); if ($authentication['entity']) $conf->entity=$authentication['entity']; @@ -251,10 +251,10 @@ function getContact($authentication,$id,$ref='',$ref_ext='') $error=0; $fuser=check_authentication($authentication,$error,$errorcode,$errorlabel); // Check parameters - if (! $error && (($id && $ref) || ($id && $ref_ext) || ($ref && $ref_ext))) + if (! $error && ($id && $ref_ext)) { $error++; - $errorcode='BAD_PARAMETERS'; $errorlabel="Parameter id, ref and ref_ext can't be both provided. You must choose one or other but not both."; + $errorcode='BAD_PARAMETERS'; $errorlabel="Parameter id and ref_ext can't be both provided. You must choose one or other but not both."; } if (! $error) @@ -262,7 +262,7 @@ function getContact($authentication,$id,$ref='',$ref_ext='') $fuser->getrights(); $contact=new Contact($db); - $result=$contact->fetch($id,$ref,$ref_ext); + $result=$contact->fetch($id,0,$ref_ext); if ($result > 0) { // Only internal user who have contact read permission @@ -273,6 +273,7 @@ function getContact($authentication,$id,$ref='',$ref_ext='') ){ $contact_result_fields =array( 'id' => $contact->id, + 'ref_ext' => $contact->ref_ext, 'lastname' => $contact->lastname, 'firstname' => $contact->firstname, 'address' => $contact->address, @@ -383,6 +384,7 @@ function createContact($authentication,$contact) $newobject=new Contact($db); $newobject->id=$contact['id']; + $newobject->ref_ext=$contact['ref_ext']; $newobject->civility_id=$contact['civility_id']; $newobject->lastname=$contact['lastname']; $newobject->firstname=$contact['firstname']; From b8b9df7b953e6e8ba5226cd7096433c3e57a1813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Fri, 6 Feb 2015 12:36:09 +0100 Subject: [PATCH 10/11] Fix: [ bug #1827 ] Tax reports gives incorrect amounts when using external modules that create lines with special codes --- ChangeLog | 1 + htdocs/core/lib/tax.lib.php | 26 +++++++++----------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index ace6a13363d..f5faea819fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,7 @@ English Dolibarr ChangeLog - Fix: [ bug #1717 ] Sorting unpaid invoices by amount received brings due amount - Fix: [ bug #1784 ] MOTD doesn't show up in Amarok theme - Fix: Tracking number not visible on shipment pdf +- Fix: [ bug #1827 ] Tax reports gives incorrect amounts when using external modules that create lines with special codes ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** - Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index a52aeb37345..3b7e4044227 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -3,6 +3,7 @@ * Copyright (C) 2006-2007 Yannick Warnier * Copyright (C) 2011 Regis Houssin * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2015 Marcos García * * 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 @@ -86,26 +87,18 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction global $conf; $list=array(); - //print "xx".$conf->global->MAIN_MODULE_ACCOUNTING; - //print "xx".$conf->global->MAIN_MODULE_COMPTABILITE; if ($direction == 'sell') { $invoicetable='facture'; - $invoicedettable='facturedet'; - $fk_facture='fk_facture'; - $total_tva='total_tva'; - $total_localtax1='total_localtax1'; - $total_localtax2='total_localtax2'; + $total_ht='total'; + $total_tva='tva'; } if ($direction == 'buy') { $invoicetable='facture_fourn'; - $invoicedettable='facture_fourn_det'; - $fk_facture='fk_facture_fourn'; - $total_tva='tva'; - $total_localtax1='total_localtax1'; - $total_localtax2='total_localtax2'; + $total_ht='total_ht'; + $total_tva='total_tva'; } // Define sql request @@ -125,11 +118,10 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) { $sql = "SELECT s.rowid as socid, s.nom as nom, s.siren as tva_intra, s.tva_assuj as assuj,"; - $sql.= " sum(fd.total_ht) as amount, sum(fd.".$total_tva.") as tva,"; - $sql.= " sum(fd.".$total_localtax1.") as localtax1,"; - $sql.= " sum(fd.".$total_localtax2.") as localtax2"; + $sql.= " sum(f.$total_ht) as amount, sum(f.".$total_tva.") as tva,"; + $sql.= " sum(f.localtax1) as localtax1,"; + $sql.= " sum(f.localtax2) as localtax2"; $sql.= " FROM ".MAIN_DB_PREFIX.$invoicetable." as f,"; - $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as fd,"; $sql.= " ".MAIN_DB_PREFIX."societe as s"; $sql.= " WHERE f.entity = " . $conf->entity; $sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely) @@ -146,7 +138,7 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction $sql.= " AND f.datef <= '".$db->idate(dol_get_last_day($y,12,false))."'"; } if ($date_start && $date_end) $sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'"; - $sql.= " AND s.rowid = f.fk_soc AND f.rowid = fd.".$fk_facture; + $sql.= " AND s.rowid = f.fk_soc"; $sql.= " GROUP BY s.rowid, s.nom, s.tva_intra, s.tva_assuj"; } } From fce7a0e36e51fa7f6f3e01469e370a7bc66720e3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 10 Feb 2015 21:01:44 +0100 Subject: [PATCH 11/11] Bad translation --- htdocs/langs/en_US/orders.lang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index 4127de804c6..e8c0556d550 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -29,7 +29,7 @@ StatusOrderDraftShort=Draft StatusOrderValidatedShort=Validated StatusOrderSentShort=In process StatusOrderSent=Shipment in process -StatusOrderOnProcessShort=Reception +StatusOrderOnProcessShort=Order sent StatusOrderProcessedShort=Processed StatusOrderToBillShort=Delivered StatusOrderToBill2Short=To bill @@ -41,7 +41,7 @@ StatusOrderReceivedAllShort=Everything received StatusOrderCanceled=Canceled StatusOrderDraft=Draft (needs to be validated) StatusOrderValidated=Validated -StatusOrderOnProcess=Waiting to receive +StatusOrderOnProcess=Order sent - Standby reception StatusOrderProcessed=Processed StatusOrderToBill=Delivered StatusOrderToBill2=To bill