diff --git a/htdocs/admin/facture_situation.php b/htdocs/admin/facture_situation.php index 61969651634..1706cfd1389 100644 --- a/htdocs/admin/facture_situation.php +++ b/htdocs/admin/facture_situation.php @@ -104,12 +104,7 @@ $arrayAvailableType = array( Facture::TYPE_SITUATION => $langs->trans("InvoiceSituation"), Facture::TYPE_STANDARD.'+'.Facture::TYPE_SITUATION => $langs->trans("InvoiceSituation").' + '.$langs->trans("InvoiceStandard"), ); -$selected = array(); -$implodeglue = '+'; -if (!empty($conf->global->{$confkey}) && !is_array($conf->global->{$confkey})) { - $selected = explode('+', $conf->global->{$confkey}); -} - +$selected = $conf->global->$confkey; $curentInput = (empty($inputCount) ? 1 : ($inputCount + 1)); $formSelectInvoiceType = $form->selectarray('value'.$curentInput, $arrayAvailableType, $selected, 1); _printInputFormPart($confkey, $langs->trans('AllowedInvoiceForRetainedWarranty'), '', array(), $formSelectInvoiceType); diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 8a2b5b150e4..5e39a4210cc 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -3382,7 +3382,7 @@ if ($action == 'create') } }); - $("[name=\'type\']").trigger("change"); + $("[name=\'type\']:checked").trigger("change"); }); '; } diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php index 2691e14504d..3841a90452b 100644 --- a/htdocs/compta/prelevement/card.php +++ b/htdocs/compta/prelevement/card.php @@ -225,7 +225,7 @@ if ($id > 0 || $ref) print ''; $acc = new Account($db); - $result = $acc->fetch($conf->global->PRELEVEMENT_ID_BANKACCOUNT); + $result = $acc->fetch(($object->type == 'bank-transfer' ? $conf->global->PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT : $conf->global->PRELEVEMENT_ID_BANKACCOUNT)); print ''; @@ -428,7 +428,7 @@ if ($id > 0 || $ref) if ($user->rights->prelevement->bons->credit) { //print ''.$langs->trans("StandingOrderReject").''; - print ''.$langs->trans("StandingOrderReject").''; + print ''.$langs->trans("StandingOrderReject").''; } else { //print ''.$langs->trans("StandingOrderReject").''; } diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 9d3c5bef7a8..79516ab46f1 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -449,7 +449,7 @@ class BonPrelevement extends CommonObject $message = $langs->trans("InfoCreditMessage", $this->ref, dol_print_date($date, 'dayhour')); //Add payment of withdrawal into bank - $bankaccount = $conf->global->PRELEVEMENT_ID_BANKACCOUNT; + $bankaccount = ($this->type == 'bank-transfer' ? $conf->global->PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT : $conf->global->PRELEVEMENT_ID_BANKACCOUNT); $facs = array(); $amounts = array(); $amountsperthirdparty = array(); @@ -1699,7 +1699,7 @@ class BonPrelevement extends CommonObject fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); - fputs($this->file, ' '.$conf->global->PRELEVEMENT_ICS.''.$CrLf); + fputs($this->file, ' '.$conf->global->PAYMENTBYBANKTRANSFER_ICS.''.$CrLf); fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); @@ -2114,7 +2114,8 @@ class BonPrelevement extends CommonObject $dateTime_YMDHMS = dol_print_date($ladate, '%Y-%m-%dT%H:%M:%S'); // Get data of bank account - $id = $configuration->global->PRELEVEMENT_ID_BANKACCOUNT; + //$id = $configuration->global->PRELEVEMENT_ID_BANKACCOUNT; + $id = ($type == 'bank-transfer' ? $conf->global->PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT : $conf->global->PRELEVEMENT_ID_BANKACCOUNT); $account = new Account($this->db); if ($account->fetch($id) > 0) { diff --git a/htdocs/compta/prelevement/class/rejetprelevement.class.php b/htdocs/compta/prelevement/class/rejetprelevement.class.php index d4f76548363..14904498b3e 100644 --- a/htdocs/compta/prelevement/class/rejetprelevement.class.php +++ b/htdocs/compta/prelevement/class/rejetprelevement.class.php @@ -39,6 +39,8 @@ class RejetPrelevement * @var DoliDB Database handler. */ public $db; + + public $type; //prelevement or bank transfer /** @@ -47,12 +49,13 @@ class RejetPrelevement * @param DoliDb $db Database handler * @param User $user Objet user */ - public function __construct($db, $user) + public function __construct($db, $user, $type) { global $langs; $this->db = $db; $this->user = $user; + $this->type = $type; $this->motifs = array(); $this->facturer = array(); @@ -92,7 +95,7 @@ class RejetPrelevement $now = dol_now(); dol_syslog("RejetPrelevement::Create id $id"); - $bankaccount = $conf->global->PRELEVEMENT_ID_BANKACCOUNT; + $bankaccount = ($this->type == 'bank-transfer' ? $conf->global->PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT : $conf->global->PRELEVEMENT_ID_BANKACCOUNT); $facs = $this->getListInvoices(1); $this->db->begin(); @@ -137,11 +140,19 @@ class RejetPrelevement $num = count($facs); for ($i = 0; $i < $num; $i++) { - $fac = new Facture($this->db); + if($this->type == 'bank-transfer'){ + $fac = new FactureFournisseur($this->db); + $pai = new PaiementFourn($this->db); + } + else{ + $fac = new Facture($this->db); + $pai = new Paiement($this->db); + } + $fac->fetch($facs[$i][0]); // Make a negative payment - $pai = new Paiement($this->db); + //$pai = new Paiement($this->db); $pai->amounts = array(); @@ -150,7 +161,7 @@ class RejetPrelevement * PHP installs sends only the part integer negative */ - $pai->amounts[$facs[$i][0]] = price2num($facs[$i][1] * -1); + $pai->amounts[$facs[$i][0]] = price2num($facs[$i][1] * ($this->type == 'bank-transfer' ? 1: -1)); $pai->datepaye = $date_rejet; $pai->paiementid = 3; // type of payment: withdrawal $pai->num_payment = $fac->ref; @@ -211,7 +222,7 @@ class RejetPrelevement $sql = "SELECT fk_user_demande"; $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; $sql .= " WHERE pfd.fk_prelevement_bons = ".$this->bon_id; - $sql .= " AND pfd.fk_facture = ".$fac->id; + $sql .= " AND pfd.fk_facture".($this->type == 'bank-transfer' ? '_fourn=': '=').$fac->id; $resql = $this->db->query($sql); if ($resql) @@ -282,7 +293,10 @@ class RejetPrelevement //Returns all invoices of a withdrawal $sql = "SELECT f.rowid as facid, pl.amount"; $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture as pf"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON (pf.fk_facture = f.rowid)"; + //$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON (pf.fk_facture = f.rowid)"; + if ($this->type == 'bank-transfer') $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facture_fourn as f ON (pf.fk_facture_fourn = f.rowid)"; + else $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON (pf.fk_facture = f.rowid)"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."prelevement_lignes as pl ON (pf.fk_prelevement_lignes = pl.rowid)"; $sql .= " WHERE pf.fk_prelevement_lignes = ".$this->id; $sql .= " AND f.entity IN (".getEntity('invoice').")"; diff --git a/htdocs/compta/prelevement/line.php b/htdocs/compta/prelevement/line.php index 3c8d80d4931..f827eb39322 100644 --- a/htdocs/compta/prelevement/line.php +++ b/htdocs/compta/prelevement/line.php @@ -95,18 +95,18 @@ if ($action == 'confirm_rejet') if ($lipre->fetch($id) == 0) { - $rej = new RejetPrelevement($db, $user); + $rej = new RejetPrelevement($db, $user,$type); $rej->create($user, $id, GETPOST('motif', 'alpha'), $daterej, $lipre->bon_rowid, GETPOST('facturer', 'int')); - header("Location: line.php?id=".$id); + header("Location: line.php?id=".$id.'&type='.$type); exit; } } else { $action = "rejet"; } } else { - header("Location: line.php?id=".$id); + header("Location: line.php?id=".$id.'&type='.$type); exit; } } @@ -128,7 +128,7 @@ llxHeader('', $title); $head = array(); $h = 0; -$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/line.php?id='.$id; +$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/line.php?id='.$id.'&type='.$type; $head[$h][1] = $title; $hselected = $h; $h++; @@ -191,11 +191,12 @@ if ($id) $soc = new Societe($db); $soc->fetch($lipre->socid); - $rej = new RejetPrelevement($db, $user); + $rej = new RejetPrelevement($db, $user, $type); print ''; print ''; print ''; + print ''; print '
'; $labelofbankfield = "BankToReceiveWithdraw"; @@ -404,7 +404,7 @@ if ($id > 0 || $ref) print ""; print $ligne->LibStatut($obj->statut, 2); print " "; - print ''; + print ''; print sprintf("%06s", $obj->rowid); print '
'; print ''; @@ -246,7 +247,7 @@ if ($id) if ($lipre->statut == 2) { if ($user->rights->prelevement->bons->credit) { - print ''.$langs->trans("StandingOrderReject").''; + print ''.$langs->trans("StandingOrderReject").''; } else { print ''.$langs->trans("StandingOrderReject").''; } diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index ea38df7a826..c5179806ac2 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6888,6 +6888,8 @@ abstract class CommonObject var parent = $(this).find("option[parent]:first").attr("parent"); var infos = parent.split(":"); var parent_list = infos[0]; + showOptions(child_list, parent_list); + $("select[name=\""+parent_list+"\"]").change(function() { showOptions(child_list, parent_list); }); diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 0c06d845843..a638d2c5745 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -1842,7 +1842,14 @@ function dolGetElementUrl($objectid, $objecttype, $withpicto = 0, $option = '') $classname = 'CommandeFournisseur'; $classpath = 'fourn/class'; $module = 'fournisseur'; - } elseif ($objecttype == 'stock') { + } + elseif ($objecttype == 'supplier_proposal') { + $classfile = 'supplier_proposal'; + $classname = 'SupplierProposal'; + $classpath = 'supplier_proposal/class'; + $module = 'supplier_proposal'; + } + elseif ($objecttype == 'stock') { $classpath = 'product/stock/class'; $classfile = 'entrepot'; $classname = 'Entrepot'; diff --git a/htdocs/core/tpl/card_presend.tpl.php b/htdocs/core/tpl/card_presend.tpl.php index 9ce7d8bfaff..adc9a102cb2 100644 --- a/htdocs/core/tpl/card_presend.tpl.php +++ b/htdocs/core/tpl/card_presend.tpl.php @@ -167,6 +167,9 @@ if ($action == 'presend') } elseif ($object->element == 'user' || $object->element == 'member') { $liste['thirdparty'] = $object->getFullName($outputlangs)." <".$object->email.">"; } else { + if (!empty($object->socid) && $object->socid > 0 && !is_object($object->thirdparty) && method_exists($object, 'fetch_thirdparty')) { + $object->fetch_thirdparty(); + } if (is_object($object->thirdparty)) { foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key => $value) { diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php index 8f02f40fe3c..0615a1070a3 100644 --- a/htdocs/core/tpl/extrafields_view.tpl.php +++ b/htdocs/core/tpl/extrafields_view.tpl.php @@ -226,6 +226,9 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element] var parent = $(this).find("option[parent]:first").attr("parent"); var infos = parent.split(":"); var parent_list = infos[0]; + showOptions(child_list, parent_list); + + /* Activate the handler to call showOptions on each future change */ $("select[name=\""+parent_list+"\"]").change(function() { showOptions(child_list, parent_list); }); diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index eed6c9d201e..d177ce7637c 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -693,7 +693,7 @@ if (!empty($usemargins) && $user->rights->margins->creer) $("#buying_price").val("").show(); /* Call post to load content of combo list fournprice_predef */ - $.post('/fourn/ajax/getSupplierPrices.php?bestpricefirst=1', { 'idprod': $(this).val() }, function(data) { + $.post('/fourn/ajax/getSupplierPrices.php?bestpricefirst=1', { 'idprod': $(this).val(), 'token': '' }, function(data) { if (data && data.length > 0) { var options = ''; var defaultkey = ''; var defaultprice = ''; var bestpricefound = 0; diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index 61be629b2ae..3798852662e 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -434,7 +434,7 @@ jQuery(document).ready(function() }); /* Init field buying_price and fournprice */ - $.post('/fourn/ajax/getSupplierPrices.php', {'idprod': fk_product ? $line->fk_product : 0; ?>}, function(data) { + $.post('/fourn/ajax/getSupplierPrices.php', {'idprod': fk_product ? $line->fk_product : 0; ?>, 'token': ''}, function(data) { if (data && data.length > 0) { var options = ''; var trouve=false; diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php index 09ae60a69b7..b40900dd6c7 100644 --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php @@ -299,6 +299,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers //Build array of quantity ordered by product if (is_array($order->lines) && count($order->lines) > 0) { foreach ($order->lines as $orderline) { + if (empty($conf->global->STOCK_SUPPORTS_SERVICES) && $orderline->product_type > 0) continue; $qtyordred[$orderline->fk_product] += $orderline->qty; } } diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index f020680c110..817e211e957 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -2185,20 +2185,22 @@ class ExpenseReport extends CommonObject $langs->load("trips"); - if (!dol_strlen($modele)) { - $modele = 'standard'; + if (!dol_strlen($modele)) { + if ($this->modelpdf) { + $modele = $this->modelpdf; + } elseif (!empty($conf->global->EXPENSEREPORT_ADDON_PDF)) { + $modele = $conf->global->EXPENSEREPORT_ADDON_PDF; + } + } + + if (!empty($modele)) { + $modelpath = "core/modules/expensereport/doc/"; - if ($this->modelpdf) { - $modele = $this->modelpdf; - } elseif (!empty($conf->global->EXPENSEREPORT_ADDON_PDF)) { - $modele = $conf->global->EXPENSEREPORT_ADDON_PDF; - } + return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams); + } else { + return 0; } - - $modelpath = "core/modules/expensereport/doc/"; - - return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams); - } + } /** * List of types diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php index c17f3ec10ee..1f0c1e8da4c 100644 --- a/htdocs/expensereport/payment/payment.php +++ b/htdocs/expensereport/payment/payment.php @@ -247,8 +247,8 @@ if ($action == 'create' || empty($action)) print '"; print ''; diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 3ae4e45964c..95359b7e74f 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -2210,10 +2210,9 @@ class CommandeFournisseur extends CommonOrder // TODO LDR01 Add a control test to accept only if ALL predefined products are received (same qty). - - if (!$error) - { - $this->db->begin(); + if (empty($error)) + { + $this->db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur"; $sql .= " SET fk_statut = ".$statut; @@ -2224,17 +2223,17 @@ class CommandeFournisseur extends CommonOrder $resql = $this->db->query($sql); if ($resql) { - $result = 0; + $result = 1; $old_statut = $this->statut; $this->statut = $statut; $this->actionmsg2 = $comment; - // Call trigger - $result = $this->call_trigger('ORDER_SUPPLIER_RECEIVE', $user); - if ($result < 0) $error++; - // End call triggers + // Call trigger + $result_trigger = $this->call_trigger('ORDER_SUPPLIER_RECEIVE', $user); + if ($result_trigger < 0) $error++; + // End call triggers - if (!$error) + if (empty($error)) { $this->db->commit(); } else { diff --git a/htdocs/margin/checkMargins.php b/htdocs/margin/checkMargins.php index 60052294baa..f4e5a565d9e 100644 --- a/htdocs/margin/checkMargins.php +++ b/htdocs/margin/checkMargins.php @@ -158,6 +158,7 @@ $head = marges_prepare_head($user); $picto = 'margin'; print ''; +print ''; dol_fiche_head($head, $langs->trans('checkMargins'), $title, 0, $picto); diff --git a/htdocs/product/composition/card.php b/htdocs/product/composition/card.php index 843e1e6cb59..54c74ec3548 100644 --- a/htdocs/product/composition/card.php +++ b/htdocs/product/composition/card.php @@ -351,11 +351,12 @@ if ($id > 0 || !empty($ref)) $fourn_remise_percent = (!empty($product_fourn->fourn_remise_percent) ? $product_fourn->fourn_remise_percent : 0); $fourn_remise = (!empty($product_fourn->fourn_remise) ? $product_fourn->fourn_remise : 0); - $totalline = price2num($value['nb'] * ($fourn_unitprice * (1 - $fourn_remise_percent / 100) - $fourn_remise), 'MT'); + $unitline = price2num(($fourn_unitprice * (1 - ($fourn_remise_percent / 100)) - $fourn_remise), 'MU'); + $totalline = price2num($value['nb'] * ($fourn_unitprice * (1 - ($fourn_remise_percent / 100)) - $fourn_remise), 'MT'); $total += $totalline; print ''; // Best selling price
'.$langs->trans("Date").''; $datepaid = dol_mktime(12, 0, 0, GETPOST("remonth", 'int'), GETPOST("reday", 'int'), GETPOST("reyear", 'int')); - $datepayment = empty($conf->global->MAIN_AUTOFILL_DATE) ? (empty($_POST["remonth"]) ?-1 : $datepaid) : 0; - print $form->selectDate($datepayment, '', '', '', '', "add_payment", 1, 1); + $datepayment = ($datepaid == '' ? (empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '') : $datepaid); + print $form->selectDate($datepayment, '', '', '', 0, "add_payment", 1, 1); print "
'; - print ($notdefined ? '' : ($value['nb'] > 1 ? $value['nb'].'x' : '').price($fourn_unitprice, '', '', 0, 0, -1, $conf->currency)); + print ($notdefined ? '' : ($value['nb'] > 1 ? $value['nb'].'x' : '').price($unitline, '', '', 0, 0, -1, $conf->currency)); print '