forked from Wavyzz/dolibarr
Merge branch '8.0' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2016 Jamal Elbaz <jamelbaz@gmail.pro>
|
/* Copyright (C) 2016 Jamal Elbaz <jamelbaz@gmail.pro>
|
||||||
* Copyright (C) 2016-2017 Alexandre Spangaro <aspangaro@zendsi.com>
|
* Copyright (C) 2016-2017 Alexandre Spangaro <aspangaro@zendsi.com>
|
||||||
|
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -816,9 +817,9 @@ class AccountancyCategory // extends CommonObject
|
|||||||
* Get all accounting account of a group.
|
* Get all accounting account of a group.
|
||||||
* You must choose between first parameter (personalized group) or the second (free criteria filter)
|
* You must choose between first parameter (personalized group) or the second (free criteria filter)
|
||||||
*
|
*
|
||||||
* @param int $cat_id Id if personalized accounting group/category
|
* @param int $cat_id Id if personalized accounting group/category
|
||||||
* @param string $predefinedgroupwhere Sql criteria filter to select accounting accounts
|
* @param string $predefinedgroupwhere Sql criteria filter to select accounting accounts
|
||||||
* @return array|int Array of accounting accounts or -1 if error
|
* @return array|int Array of accounting accounts or -1 if error
|
||||||
*/
|
*/
|
||||||
public function getCptsCat($cat_id, $predefinedgroupwhere='')
|
public function getCptsCat($cat_id, $predefinedgroupwhere='')
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -695,6 +695,9 @@ if (empty($reshook))
|
|||||||
$amount_ht[$line->tva_tx] += $line->total_ht;
|
$amount_ht[$line->tva_tx] += $line->total_ht;
|
||||||
$amount_tva[$line->tva_tx] += $line->total_tva;
|
$amount_tva[$line->tva_tx] += $line->total_tva;
|
||||||
$amount_ttc[$line->tva_tx] += $line->total_ttc;
|
$amount_ttc[$line->tva_tx] += $line->total_ttc;
|
||||||
|
$multicurrency_amount_ht[$line->tva_tx] += $line->multicurrency_total_ht;
|
||||||
|
$multicurrency_amount_tva[$line->tva_tx] += $line->multicurrency_total_tva;
|
||||||
|
$multicurrency_amount_ttc[$line->tva_tx] += $line->multicurrency_total_ttc;
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -750,6 +753,9 @@ if (empty($reshook))
|
|||||||
$discount->amount_ht = abs($amount_ht[$tva_tx]);
|
$discount->amount_ht = abs($amount_ht[$tva_tx]);
|
||||||
$discount->amount_tva = abs($amount_tva[$tva_tx]);
|
$discount->amount_tva = abs($amount_tva[$tva_tx]);
|
||||||
$discount->amount_ttc = abs($amount_ttc[$tva_tx]);
|
$discount->amount_ttc = abs($amount_ttc[$tva_tx]);
|
||||||
|
$discount->multicurrency_amount_ht = abs($multicurrency_amount_ht[$tva_tx]);
|
||||||
|
$discount->multicurrency_amount_tva = abs($multicurrency_amount_tva[$tva_tx]);
|
||||||
|
$discount->multicurrency_amount_ttc = abs($multicurrency_amount_ttc[$tva_tx]);
|
||||||
$discount->tva_tx = abs($tva_tx);
|
$discount->tva_tx = abs($tva_tx);
|
||||||
|
|
||||||
$result = $discount->create($user);
|
$result = $discount->create($user);
|
||||||
|
|||||||
@@ -1770,9 +1770,9 @@ class Facture extends CommonInvoice
|
|||||||
$facligne->total_ttc = -$remise->amount_ttc;
|
$facligne->total_ttc = -$remise->amount_ttc;
|
||||||
|
|
||||||
$facligne->multicurrency_subprice = -$remise->multicurrency_subprice;
|
$facligne->multicurrency_subprice = -$remise->multicurrency_subprice;
|
||||||
$facligne->multicurrency_total_ht = -$remise->multicurrency_total_ht;
|
$facligne->multicurrency_total_ht = -$remise->multicurrency_amount_ht;
|
||||||
$facligne->multicurrency_total_tva = -$remise->multicurrency_total_tva;
|
$facligne->multicurrency_total_tva = -$remise->multicurrency_amount_tva;
|
||||||
$facligne->multicurrency_total_ttc = -$remise->multicurrency_total_ttc;
|
$facligne->multicurrency_total_ttc = -$remise->multicurrency_amount_ttc;
|
||||||
|
|
||||||
$lineid=$facligne->insert();
|
$lineid=$facligne->insert();
|
||||||
if ($lineid > 0)
|
if ($lineid > 0)
|
||||||
|
|||||||
@@ -1098,6 +1098,18 @@ if (! $error && ($massaction == 'delete' || ($action == 'delete' && $confirm ==
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($objectclass == "Task" && $objecttmp->hasChildren() > 0)
|
||||||
|
{
|
||||||
|
$sql = "UPDATE ".MAIN_DB_PREFIX."projet_task SET fk_task_parent = 0 WHERE fk_task_parent = ".$objecttmp->id;
|
||||||
|
$res = $db->query($sql);
|
||||||
|
|
||||||
|
if (!$res)
|
||||||
|
{
|
||||||
|
setEventMessage('ErrorRecordParentingNotModified', 'errors');
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (in_array($objecttmp->element, array('societe', 'member'))) $result = $objecttmp->delete($objecttmp->id, $user, 1);
|
if (in_array($objecttmp->element, array('societe', 'member'))) $result = $objecttmp->delete($objecttmp->id, $user, 1);
|
||||||
else $result = $objecttmp->delete($user);
|
else $result = $objecttmp->delete($user);
|
||||||
|
|
||||||
|
|||||||
@@ -4816,6 +4816,7 @@ abstract class CommonObject
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
|
$this->array_options = array();
|
||||||
$numrows=$this->db->num_rows($resql);
|
$numrows=$this->db->num_rows($resql);
|
||||||
if ($numrows)
|
if ($numrows)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ class DiscountAbsolute
|
|||||||
$this->amount_tva = $obj->amount_tva;
|
$this->amount_tva = $obj->amount_tva;
|
||||||
$this->amount_ttc = $obj->amount_ttc;
|
$this->amount_ttc = $obj->amount_ttc;
|
||||||
|
|
||||||
$this->multicurrency_amount_ht = $obj->multicurrency_amount_ht;
|
$this->multicurrency_amount_ht = $this->multicurrency_subprice = $obj->multicurrency_amount_ht;
|
||||||
$this->multicurrency_amount_tva = $obj->multicurrency_amount_tva;
|
$this->multicurrency_amount_tva = $obj->multicurrency_amount_tva;
|
||||||
$this->multicurrency_amount_ttc = $obj->multicurrency_amount_ttc;
|
$this->multicurrency_amount_ttc = $obj->multicurrency_amount_ttc;
|
||||||
|
|
||||||
@@ -213,10 +213,12 @@ class DiscountAbsolute
|
|||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_remise_except";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_remise_except";
|
||||||
$sql.= " (entity, datec, fk_soc, discount_type, fk_user, description,";
|
$sql.= " (entity, datec, fk_soc, discount_type, fk_user, description,";
|
||||||
$sql.= " amount_ht, amount_tva, amount_ttc, tva_tx,";
|
$sql.= " amount_ht, amount_tva, amount_ttc, tva_tx,";
|
||||||
|
$sql.= " multicurrency_amount_ht, multicurrency_amount_tva, multicurrency_amount_ttc,";
|
||||||
$sql.= " fk_facture_source, fk_invoice_supplier_source";
|
$sql.= " fk_facture_source, fk_invoice_supplier_source";
|
||||||
$sql.= ")";
|
$sql.= ")";
|
||||||
$sql.= " VALUES (".$conf->entity.", '".$this->db->idate($this->datec!=''?$this->datec:dol_now())."', ".$this->fk_soc.", ".(empty($this->discount_type)?0:intval($this->discount_type)).", ".$user->id.", '".$this->db->escape($this->description)."',";
|
$sql.= " VALUES (".$conf->entity.", '".$this->db->idate($this->datec!=''?$this->datec:dol_now())."', ".$this->fk_soc.", ".(empty($this->discount_type)?0:intval($this->discount_type)).", ".$user->id.", '".$this->db->escape($this->description)."',";
|
||||||
$sql.= " ".$this->amount_ht.", ".$this->amount_tva.", ".$this->amount_ttc.", ".$this->tva_tx.",";
|
$sql.= " ".$this->amount_ht.", ".$this->amount_tva.", ".$this->amount_ttc.", ".$this->tva_tx.",";
|
||||||
|
$sql.= " ".$this->multicurrency_amount_ht.", ".$this->multicurrency_amount_tva.", ".$this->multicurrency_amount_ttc.", ";
|
||||||
$sql.= " ".($this->fk_facture_source ? "'".$this->db->escape($this->fk_facture_source)."'":"null").",";
|
$sql.= " ".($this->fk_facture_source ? "'".$this->db->escape($this->fk_facture_source)."'":"null").",";
|
||||||
$sql.= " ".($this->fk_invoice_supplier_source ? "'".$this->db->escape($this->fk_invoice_supplier_source)."'":"null");
|
$sql.= " ".($this->fk_invoice_supplier_source ? "'".$this->db->escape($this->fk_invoice_supplier_source)."'":"null");
|
||||||
$sql.= ")";
|
$sql.= ")";
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
* Copyright (C) 2014 Cédric GROSS <c.gross@kreiz-it.fr>
|
* Copyright (C) 2014 Cédric GROSS <c.gross@kreiz-it.fr>
|
||||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -7025,11 +7026,12 @@ function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode=
|
|||||||
// No need to make a return $head. Var is modified as a reference
|
// No need to make a return $head. Var is modified as a reference
|
||||||
if (! empty($hookmanager))
|
if (! empty($hookmanager))
|
||||||
{
|
{
|
||||||
$parameters=array('object' => $object, 'mode' => $mode, 'head'=>$head);
|
$parameters=array('object' => $object, 'mode' => $mode, 'head' => $head);
|
||||||
$reshook=$hookmanager->executeHooks('completeTabsHead',$parameters);
|
$reshook=$hookmanager->executeHooks('completeTabsHead', $parameters);
|
||||||
if ($reshook > 0)
|
if ($reshook > 0)
|
||||||
{
|
{
|
||||||
$head = $hookmanager->resArray;
|
$head = $hookmanager->resArray;
|
||||||
|
$h = count($head);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2006-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2006-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
* Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -20,10 +21,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/lib/order.lib.php
|
* \file htdocs/core/lib/import.lib.php
|
||||||
* \brief Ensemble de fonctions de base pour le module commande
|
* \brief Ensemble de fonctions de base pour le module import
|
||||||
* \ingroup commande
|
* \ingroup import
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to return list of tabs for import pages
|
* Function to return list of tabs for import pages
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
|
||||||
|
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -164,7 +165,7 @@ function getOnlinePaymentUrl($mode, $type, $ref='', $amount='9.99', $freetag='yo
|
|||||||
else $out.='&securekey='.dol_hash($conf->global->PAYMENT_SECURITY_TOKEN, 2);
|
else $out.='&securekey='.dol_hash($conf->global->PAYMENT_SECURITY_TOKEN, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($type == 'order')
|
elseif ($type == 'order')
|
||||||
{
|
{
|
||||||
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=order&ref='.($mode?'<font color="#666666">':'');
|
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=order&ref='.($mode?'<font color="#666666">':'');
|
||||||
if ($mode == 1) $out.='order_ref';
|
if ($mode == 1) $out.='order_ref';
|
||||||
@@ -182,7 +183,7 @@ function getOnlinePaymentUrl($mode, $type, $ref='', $amount='9.99', $freetag='yo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($type == 'invoice')
|
elseif ($type == 'invoice')
|
||||||
{
|
{
|
||||||
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=invoice&ref='.($mode?'<font color="#666666">':'');
|
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=invoice&ref='.($mode?'<font color="#666666">':'');
|
||||||
if ($mode == 1) $out.='invoice_ref';
|
if ($mode == 1) $out.='invoice_ref';
|
||||||
@@ -200,7 +201,7 @@ function getOnlinePaymentUrl($mode, $type, $ref='', $amount='9.99', $freetag='yo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($type == 'contractline')
|
elseif ($type == 'contractline')
|
||||||
{
|
{
|
||||||
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=contractline&ref='.($mode?'<font color="#666666">':'');
|
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=contractline&ref='.($mode?'<font color="#666666">':'');
|
||||||
if ($mode == 1) $out.='contractline_ref';
|
if ($mode == 1) $out.='contractline_ref';
|
||||||
@@ -218,7 +219,7 @@ function getOnlinePaymentUrl($mode, $type, $ref='', $amount='9.99', $freetag='yo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($type == 'member' || $type == 'membersubscription')
|
elseif ($type == 'member' || $type == 'membersubscription')
|
||||||
{
|
{
|
||||||
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=membersubscription&ref='.($mode?'<font color="#666666">':'');
|
$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=membersubscription&ref='.($mode?'<font color="#666666">':'');
|
||||||
if ($mode == 1) $out.='member_ref';
|
if ($mode == 1) $out.='member_ref';
|
||||||
@@ -335,14 +336,14 @@ function htmlPrintOnlinePaymentFooter($fromcompany, $langs, $addformmessage=0, $
|
|||||||
|
|
||||||
$parammessageform='ONLINE_PAYMENT_MESSAGE_FORM_'.$suffix;
|
$parammessageform='ONLINE_PAYMENT_MESSAGE_FORM_'.$suffix;
|
||||||
if (! empty($conf->global->$parammessageform)) print $langs->transnoentities($conf->global->$parammessageform);
|
if (! empty($conf->global->$parammessageform)) print $langs->transnoentities($conf->global->$parammessageform);
|
||||||
else if (! empty($conf->global->ONLINE_PAYMENT_MESSAGE_FORM)) print $langs->transnoentities($conf->global->ONLINE_PAYMENT_MESSAGE_FORM);
|
elseif (! empty($conf->global->ONLINE_PAYMENT_MESSAGE_FORM)) print $langs->transnoentities($conf->global->ONLINE_PAYMENT_MESSAGE_FORM);
|
||||||
|
|
||||||
// Add other message if VAT exists
|
// Add other message if VAT exists
|
||||||
if ($object->total_vat != 0 || $object->total_tva != 0)
|
if ($object->total_vat != 0 || $object->total_tva != 0)
|
||||||
{
|
{
|
||||||
$parammessageform='ONLINE_PAYMENT_MESSAGE_FORMIFVAT_'.$suffix;
|
$parammessageform='ONLINE_PAYMENT_MESSAGE_FORMIFVAT_'.$suffix;
|
||||||
if (! empty($conf->global->$parammessageform)) print $langs->transnoentities($conf->global->$parammessageform);
|
if (! empty($conf->global->$parammessageform)) print $langs->transnoentities($conf->global->$parammessageform);
|
||||||
else if (! empty($conf->global->ONLINE_PAYMENT_MESSAGE_FORMIFVAT)) print $langs->transnoentities($conf->global->ONLINE_PAYMENT_MESSAGE_FORMIFVAT);
|
elseif (! empty($conf->global->ONLINE_PAYMENT_MESSAGE_FORMIFVAT)) print $langs->transnoentities($conf->global->ONLINE_PAYMENT_MESSAGE_FORMIFVAT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
* Copyright (C) 2014 Henry Florian <florian.henry@open-concept.pro>
|
* Copyright (C) 2014 Henry Florian <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2014-2016 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2014-2016 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2014 Ion agorria <ion@agorria.com>
|
* Copyright (C) 2014 Ion agorria <ion@agorria.com>
|
||||||
* Copyright (C) 2016-2017 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2016-2018 Ferran Marcet <fmarcet@2byte.es>
|
||||||
* Copyright (C) 2017 Gustavo Novaro
|
* Copyright (C) 2017 Gustavo Novaro
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -1097,7 +1097,7 @@ class Product extends CommonObject
|
|||||||
$sql.= " WHERE fk_product_stock IN (";
|
$sql.= " WHERE fk_product_stock IN (";
|
||||||
$sql.= "SELECT rowid FROM ".MAIN_DB_PREFIX.'product_stock';
|
$sql.= "SELECT rowid FROM ".MAIN_DB_PREFIX.'product_stock';
|
||||||
$sql.= " WHERE fk_product = ".$id.")";
|
$sql.= " WHERE fk_product = ".$id.")";
|
||||||
dol_syslog(get_class($this).'::delete', LOG_DEBUG);
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if (! $result)
|
if (! $result)
|
||||||
{
|
{
|
||||||
@@ -1116,7 +1116,7 @@ class Product extends CommonObject
|
|||||||
{
|
{
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX.$table;
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX.$table;
|
||||||
$sql.= " WHERE fk_product = ".$id;
|
$sql.= " WHERE fk_product = ".$id;
|
||||||
dol_syslog(get_class($this).'::delete', LOG_DEBUG);
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if (! $result)
|
if (! $result)
|
||||||
{
|
{
|
||||||
@@ -1147,12 +1147,25 @@ class Product extends CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete from product_association
|
||||||
|
if (!$error){
|
||||||
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_association";
|
||||||
|
$sql.= " WHERE fk_product_pere = ".$id." OR fk_product_fils = ".$id;
|
||||||
|
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
if (! $result)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$this->errors[] = $this->db->lasterror();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Delete product
|
// Delete product
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$sqlz = "DELETE FROM ".MAIN_DB_PREFIX."product";
|
$sqlz = "DELETE FROM ".MAIN_DB_PREFIX."product";
|
||||||
$sqlz.= " WHERE rowid = ".$id;
|
$sqlz.= " WHERE rowid = ".$id;
|
||||||
dol_syslog(get_class($this).'::delete', LOG_DEBUG);
|
|
||||||
$resultz = $this->db->query($sqlz);
|
$resultz = $this->db->query($sqlz);
|
||||||
if ( ! $resultz )
|
if ( ! $resultz )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ $fourn_id = GETPOST("fourn_id",'int');
|
|||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
$sortorder = GETPOST("sortorder",'alpha');
|
||||||
$page = GETPOST("page",'int');
|
$page = GETPOST("page",'int');
|
||||||
|
if (empty($page) || $page < 0) $page = 0;
|
||||||
if (! $sortfield) $sortfield="p.ref";
|
if (! $sortfield) $sortfield="p.ref";
|
||||||
if (! $sortorder) $sortorder="ASC";
|
if (! $sortorder) $sortorder="ASC";
|
||||||
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||||
@@ -92,11 +93,15 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
|
|||||||
$sref="";
|
$sref="";
|
||||||
$snom="";
|
$snom="";
|
||||||
$sall="";
|
$sall="";
|
||||||
|
$tosell="";
|
||||||
|
$tobuy="";
|
||||||
$search_sale="";
|
$search_sale="";
|
||||||
$search_categ="";
|
$search_categ="";
|
||||||
$type="";
|
$type="";
|
||||||
$catid='';
|
$catid='';
|
||||||
$toolowstock='';
|
$toolowstock='';
|
||||||
|
$fourn_id='';
|
||||||
|
$sbarcode='';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -188,6 +193,20 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
$texte.=' ('.$langs->trans("Stocks").')';
|
$texte.=' ('.$langs->trans("Stocks").')';
|
||||||
|
|
||||||
|
$param='';
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
||||||
|
if ($sall) $param.="&sall=".$sall;
|
||||||
|
if ($tosell) $param.="&tosell=".$tosell;
|
||||||
|
if ($tobuy) $param.="&tobuy=".$tobuy;
|
||||||
|
if ($type) $param.="&type=".$type;
|
||||||
|
if ($fourn_id) $param.="&fourn_id=".$fourn_id;
|
||||||
|
if ($snom) $param.="&snom=".$snom;
|
||||||
|
if ($sref) $param.="&sref=".$sref;
|
||||||
|
if ($search_sale) $param.="&search_sale=".$search_sale;
|
||||||
|
if ($search_categ) $param.="&search_categ=".$search_categ;
|
||||||
|
if ($toolowstock) $param.="&toolowstock=".$toolowstock;
|
||||||
|
if ($sbarcode) $param.="&sbarcode=".$sbarcode;
|
||||||
|
if ($catid) $param.="&catid=".$catid;
|
||||||
|
|
||||||
llxHeader("", $texte, $helpurl);
|
llxHeader("", $texte, $helpurl);
|
||||||
|
|
||||||
@@ -198,14 +217,7 @@ if ($resql)
|
|||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
print '<input type="hidden" name="type" value="'.$type.'">';
|
print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
|
|
||||||
if ($sref || $snom || $sall || GETPOST('search'))
|
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit);
|
||||||
{
|
|
||||||
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=".$sref."&snom=".$snom."&sall=".$sall."&tosell=".$tosell."&tobuy=".$tobuy.(!empty($search_categ) ? '&search_categ='.$search_categ : '').(!empty($toolowstock) ? '&toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":"").(!empty($search_categ) ? '&search_categ='.$search_categ : '').(!empty($toolowstock) ? '&toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! empty($catid))
|
if (! empty($catid))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ $fourn_id = GETPOST("fourn_id",'int');
|
|||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
$sortorder = GETPOST("sortorder",'alpha');
|
||||||
$page = GETPOST("page",'int');
|
$page = GETPOST("page",'int');
|
||||||
|
if (empty($page) || $page < 0) $page = 0;
|
||||||
if (! $sortfield) $sortfield="p.ref";
|
if (! $sortfield) $sortfield="p.ref";
|
||||||
if (! $sortorder) $sortorder="ASC";
|
if (! $sortorder) $sortorder="ASC";
|
||||||
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||||
@@ -89,6 +90,8 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
|
|||||||
$sref="";
|
$sref="";
|
||||||
$snom="";
|
$snom="";
|
||||||
$sall="";
|
$sall="";
|
||||||
|
$tosell="";
|
||||||
|
$tobuy="";
|
||||||
$search_sale="";
|
$search_sale="";
|
||||||
$search_categ="";
|
$search_categ="";
|
||||||
$type="";
|
$type="";
|
||||||
@@ -96,6 +99,8 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
|
|||||||
$toolowstock='';
|
$toolowstock='';
|
||||||
$search_batch='';
|
$search_batch='';
|
||||||
$search_warehouse='';
|
$search_warehouse='';
|
||||||
|
$fourn_id='';
|
||||||
|
$sbarcode='';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -199,6 +204,24 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
$texte.=' ('.$langs->trans("StocksByLotSerial").')';
|
$texte.=' ('.$langs->trans("StocksByLotSerial").')';
|
||||||
|
|
||||||
|
$param='';
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
||||||
|
if ($sall) $param.="&sall=".$sall;
|
||||||
|
if ($tosell) $param.="&tosell=".$tosell;
|
||||||
|
if ($tobuy) $param.="&tobuy=".$tobuy;
|
||||||
|
if ($type) $param.="&type=".$type;
|
||||||
|
if ($fourn_id) $param.="&fourn_id=".$fourn_id;
|
||||||
|
if ($snom) $param.="&snom=".$snom;
|
||||||
|
if ($sref) $param.="&sref=".$sref;
|
||||||
|
if ($search_batch) $param.="&search_batch=".$search_batch;
|
||||||
|
if ($sbarcode) $param.="&sbarcode=".$sbarcode;
|
||||||
|
if ($search_warehouse) $param.="&search_warehouse=".$search_warehouse;
|
||||||
|
if ($catid) $param.="&catid=".$catid;
|
||||||
|
if ($toolowstock) $param.="&toolowstock=".$toolowstock;
|
||||||
|
if ($search_sale) $param.="&search_sale=".$search_sale;
|
||||||
|
if ($search_categ) $param.="&search_categ=".$search_categ;
|
||||||
|
/*if ($eatby) $param.="&eatby=".$eatby;
|
||||||
|
if ($sellby) $param.="&sellby=".$sellby;*/
|
||||||
|
|
||||||
llxHeader("",$title,$helpurl,$texte);
|
llxHeader("",$title,$helpurl,$texte);
|
||||||
|
|
||||||
@@ -209,14 +232,8 @@ if ($resql)
|
|||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
print '<input type="hidden" name="type" value="'.$type.'">';
|
print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
|
|
||||||
if ($sref || $snom || $sall || GETPOST('search'))
|
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit);
|
||||||
{
|
|
||||||
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=".$sref."&snom=".$snom."&sall=".$sall."&tosell=".$tosell."&tobuy=".$tobuy, $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":""), $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! empty($catid))
|
if (! empty($catid))
|
||||||
{
|
{
|
||||||
@@ -250,17 +267,6 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$param='';
|
|
||||||
if ($tosell) $param.="&tosell=".$tosell;
|
|
||||||
if ($tobuy) $param.="&tobuy=".$tobuy;
|
|
||||||
if ($type) $param.="&type=".$type;
|
|
||||||
if ($fourn_id) $param.="&fourn_id=".$fourn_id;
|
|
||||||
if ($snom) $param.="&snom=".$snom;
|
|
||||||
if ($sref) $param.="&sref=".$sref;
|
|
||||||
if ($search_batch) $param.="&search_batch=".$search_batch;
|
|
||||||
/*if ($eatby) $param.="&eatby=".$eatby;
|
|
||||||
if ($sellby) $param.="&sellby=".$sellby;*/
|
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
|
||||||
|
|
||||||
@@ -342,6 +348,7 @@ if ($resql)
|
|||||||
$product_static->label = $objp->label;
|
$product_static->label = $objp->label;
|
||||||
$product_static->type=$objp->fk_product_type;
|
$product_static->type=$objp->fk_product_type;
|
||||||
$product_static->entity=$objp->entity;
|
$product_static->entity=$objp->entity;
|
||||||
|
$product_static->status_batch=$objp->tobatch;
|
||||||
|
|
||||||
$product_lot_static->batch=$objp->batch;
|
$product_lot_static->batch=$objp->batch;
|
||||||
$product_lot_static->product_id=$objp->rowid;
|
$product_lot_static->product_id=$objp->rowid;
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ $id = GETPOST('id','int');
|
|||||||
$action = GETPOST('action','alpha');
|
$action = GETPOST('action','alpha');
|
||||||
$backtopage = GETPOST('backtopage','alpha');
|
$backtopage = GETPOST('backtopage','alpha');
|
||||||
$myparam = GETPOST('myparam','alpha');
|
$myparam = GETPOST('myparam','alpha');
|
||||||
|
$toselect = GETPOST('toselect', 'array');
|
||||||
|
|
||||||
|
|
||||||
$search_entity=GETPOST('search_entity','int');
|
$search_entity=GETPOST('search_entity','int');
|
||||||
@@ -143,7 +144,7 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
|
|||||||
$search_import_key='';
|
$search_import_key='';
|
||||||
$search_date_creation='';
|
$search_date_creation='';
|
||||||
$search_date_update='';
|
$search_date_update='';
|
||||||
$toselect='';
|
$toselect=array();
|
||||||
$search_array_options=array();
|
$search_array_options=array();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,7 +208,8 @@ $sql.= " t.fk_user_modif,";
|
|||||||
$sql.= " t.import_key,";
|
$sql.= " t.import_key,";
|
||||||
$sql.= " p.fk_product_type as product_type,";
|
$sql.= " p.fk_product_type as product_type,";
|
||||||
$sql.= " p.ref as product_ref,";
|
$sql.= " p.ref as product_ref,";
|
||||||
$sql.= " p.label as product_label";
|
$sql.= " p.label as product_label,";
|
||||||
|
$sql.= " p.tobatch";
|
||||||
// Add fields for extrafields
|
// Add fields for extrafields
|
||||||
foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
|
foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
|
||||||
// Add fields from hooks
|
// Add fields from hooks
|
||||||
@@ -424,6 +426,7 @@ if ($resql)
|
|||||||
$productstatic->type=$obj->product_type;
|
$productstatic->type=$obj->product_type;
|
||||||
$productstatic->ref=$obj->product_ref;
|
$productstatic->ref=$obj->product_ref;
|
||||||
$productstatic->label=$obj->product_label;
|
$productstatic->label=$obj->product_label;
|
||||||
|
$productstatic->status_batch = $obj->tobatch;
|
||||||
print '<td>'.$productstatic->getNomUrl(1).'</td>';
|
print '<td>'.$productstatic->getNomUrl(1).'</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -618,6 +618,10 @@ foreach ($listofreferent as $key => $value)
|
|||||||
{
|
{
|
||||||
if (! empty($element->close_code) && $element->close_code == 'replaced') $qualifiedfortotal=false; // Replacement invoice, do not include into total
|
if (! empty($element->close_code) && $element->close_code == 'replaced') $qualifiedfortotal=false; // Replacement invoice, do not include into total
|
||||||
}
|
}
|
||||||
|
if ($key == 'propal')
|
||||||
|
{
|
||||||
|
if ($element->statut == Propal::STATUS_NOTSIGNED) $qualifiedfortotal=false; // Refused proposal must not be included in total
|
||||||
|
}
|
||||||
|
|
||||||
if ($qualifiedfortotal) $total_ht = $total_ht + $total_ht_by_line;
|
if ($qualifiedfortotal) $total_ht = $total_ht + $total_ht_by_line;
|
||||||
|
|
||||||
|
|||||||
@@ -1727,10 +1727,13 @@ class Societe extends CommonObject
|
|||||||
|
|
||||||
$discount = new DiscountAbsolute($this->db);
|
$discount = new DiscountAbsolute($this->db);
|
||||||
$discount->fk_soc=$this->id;
|
$discount->fk_soc=$this->id;
|
||||||
|
|
||||||
$discount->discount_type=$discount_type;
|
$discount->discount_type=$discount_type;
|
||||||
$discount->amount_ht=price2num($remise,'MT');
|
|
||||||
$discount->amount_tva=price2num($remise*$tva_tx/100,'MT');
|
$discount->amount_ht=$discount->multicurrency_amount_ht=price2num($remise,'MT');
|
||||||
$discount->amount_ttc=price2num($discount->amount_ht+$discount->amount_tva,'MT');
|
$discount->amount_tva=$discount->multicurrency_amount_tva=price2num($remise*$tva_tx/100,'MT');
|
||||||
|
$discount->amount_ttc=$discount->multicurrency_amount_ttc=price2num($discount->amount_ht+$discount->amount_tva,'MT');
|
||||||
|
|
||||||
$discount->tva_tx=price2num($tva_tx,'MT');
|
$discount->tva_tx=price2num($tva_tx,'MT');
|
||||||
$discount->description=$desc;
|
$discount->description=$desc;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user