Merge branch '10.0' of git@github.com:Dolibarr/dolibarr.git into 11.0
Conflicts: ChangeLog htdocs/comm/remise.php htdocs/core/class/html.form.class.php htdocs/filefunc.inc.php htdocs/product/list.php htdocs/variants/combinations.php
This commit is contained in:
commit
d97a59ac4a
19
ChangeLog
19
ChangeLog
@ -213,6 +213,25 @@ Following changes may create regressions for some external modules, but were nec
|
|||||||
* The jquery plugin/dependency multiselect has been removed. It was not used by Dolibarr core.
|
* The jquery plugin/dependency multiselect has been removed. It was not used by Dolibarr core.
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 10.0.6 compared to 10.0.5 *****
|
||||||
|
FIX Regression of 10.0.5 to create/edit proposals and orders.
|
||||||
|
FIX: #12760 #12763 #12755 #12765 #12751
|
||||||
|
FIX: add product qty in shipment already sent (fix for option STOCK_CALCULATE_ON_SHIPMENT_NEW)
|
||||||
|
FIX: an issue that shows all entities stock
|
||||||
|
FIX: class Facture undefined in displaying margin information
|
||||||
|
FIX: error 500 when getting margin info for objects other than invoices
|
||||||
|
FIX: Loan card - Wrong language key used
|
||||||
|
FIX: Missing language key for MAIN_MAXTABS_IN_CARD
|
||||||
|
FIX: product with empty stock were not visible
|
||||||
|
FIX: remove backward compatibility projectid and uses object id instead
|
||||||
|
FIX: Some issues on salary payment
|
||||||
|
FIX: Some problems on conciliation with others modules
|
||||||
|
FIX: typo on language key
|
||||||
|
FIX: url new for task time spent in project element tab
|
||||||
|
FIX: uses GETPOSTISSET instead of GETPOST for projectfield
|
||||||
|
FIX: var transkey not defined in input hidden
|
||||||
|
FIX: wrong var name and avoid warning
|
||||||
|
|
||||||
***** ChangeLog for 10.0.5 compared to 10.0.4 *****
|
***** ChangeLog for 10.0.5 compared to 10.0.4 *****
|
||||||
FIX: 10.0: add URL param "restore_last_search_values=1" to all backlinks pointing to lists
|
FIX: 10.0: add URL param "restore_last_search_values=1" to all backlinks pointing to lists
|
||||||
FIX: 10.0: do not display single-letter values (indicating duration unit without value) in product list
|
FIX: 10.0: do not display single-letter values (indicating duration unit without value) in product list
|
||||||
|
|||||||
@ -222,7 +222,7 @@ if ($socid > 0)
|
|||||||
$sql .= " u.login, u.rowid as user_id";
|
$sql .= " u.login, u.rowid as user_id";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise as rc, ".MAIN_DB_PREFIX."user as u";
|
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise as rc, ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql .= " WHERE rc.fk_soc = ".$object->id;
|
$sql .= " WHERE rc.fk_soc = ".$object->id;
|
||||||
$sql .= " AND rc.entity = ".$conf->entity;
|
$sql .= " AND rc.entity IN (".getEntity('discount').")";
|
||||||
$sql .= " AND u.rowid = rc.fk_user_author";
|
$sql .= " AND u.rowid = rc.fk_user_author";
|
||||||
$sql .= " ORDER BY rc.datec DESC";
|
$sql .= " ORDER BY rc.datec DESC";
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ if ($socid > 0)
|
|||||||
$sql .= " u.login, u.rowid as user_id";
|
$sql .= " u.login, u.rowid as user_id";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise_supplier as rc, ".MAIN_DB_PREFIX."user as u";
|
$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise_supplier as rc, ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql .= " WHERE rc.fk_soc = ".$object->id;
|
$sql .= " WHERE rc.fk_soc = ".$object->id;
|
||||||
$sql .= " AND rc.entity = ".$conf->entity;
|
$sql .= " AND rc.entity IN (".getEntity('discount').")";
|
||||||
$sql .= " AND u.rowid = rc.fk_user_author";
|
$sql .= " AND u.rowid = rc.fk_user_author";
|
||||||
$sql .= " ORDER BY rc.datec DESC";
|
$sql .= " ORDER BY rc.datec DESC";
|
||||||
|
|
||||||
|
|||||||
@ -79,7 +79,7 @@ class FactureStats extends Stats
|
|||||||
$this->field_line='total_ht';
|
$this->field_line='total_ht';
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->where = " f.fk_statut > 0";
|
$this->where = " f.fk_statut >= 0";
|
||||||
$this->where.= " AND f.entity IN (".getEntity('invoice').")";
|
$this->where.= " AND f.entity IN (".getEntity('invoice').")";
|
||||||
if (!$user->rights->societe->client->voir && !$this->socid) $this->where .= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
|
if (!$user->rights->societe->client->voir && !$this->socid) $this->where .= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||||
if ($mode == 'customer') $this->where.=" AND (f.fk_statut <> 3 OR f.close_code <> 'replaced')"; // Exclude replaced invoices as they are duplicated (we count closed invoices for other reasons)
|
if ($mode == 'customer') $this->where.=" AND (f.fk_statut <> 3 OR f.close_code <> 'replaced')"; // Exclude replaced invoices as they are duplicated (we count closed invoices for other reasons)
|
||||||
|
|||||||
@ -591,15 +591,14 @@ class Form
|
|||||||
* Generate select HTML to choose massaction
|
* Generate select HTML to choose massaction
|
||||||
*
|
*
|
||||||
* @param string $selected Value auto selected when at least one record is selected. Not a preselected value. Use '0' by default.
|
* @param string $selected Value auto selected when at least one record is selected. Not a preselected value. Use '0' by default.
|
||||||
* @param int $arrayofaction array('code'=>'label', ...). The code is the key stored into the GETPOST('massaction') when submitting action.
|
* @param array $arrayofaction array('code'=>'label', ...). The code is the key stored into the GETPOST('massaction') when submitting action.
|
||||||
* @param int $alwaysvisible 1=select button always visible
|
* @param int $alwaysvisible 1=select button always visible
|
||||||
* @return string Select list
|
* @return string|void Select list
|
||||||
*/
|
*/
|
||||||
public function selectMassAction($selected, $arrayofaction, $alwaysvisible = 0)
|
public function selectMassAction($selected, $arrayofaction, $alwaysvisible = 0)
|
||||||
{
|
{
|
||||||
global $conf, $langs, $hookmanager;
|
global $conf, $langs, $hookmanager;
|
||||||
|
|
||||||
if (count($arrayofaction) == 0) return;
|
|
||||||
|
|
||||||
$disabled = 0;
|
$disabled = 0;
|
||||||
$ret = '<div class="centpercent center">';
|
$ret = '<div class="centpercent center">';
|
||||||
@ -608,6 +607,8 @@ class Form
|
|||||||
// Complete list with data from external modules. THe module can use $_SERVER['PHP_SELF'] to know on which page we are, or use the $parameters['currentcontext'] completed by executeHooks.
|
// Complete list with data from external modules. THe module can use $_SERVER['PHP_SELF'] to know on which page we are, or use the $parameters['currentcontext'] completed by executeHooks.
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('addMoreMassActions', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('addMoreMassActions', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
// check if there is a mass action
|
||||||
|
if (count($arrayofaction) == 0 && empty($hookmanager->resPrint)) return;
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
$ret .= '<option value="0"'.($disabled ? ' disabled="disabled"' : '').'>-- '.$langs->trans("SelectAction").' --</option>';
|
$ret .= '<option value="0"'.($disabled ? ' disabled="disabled"' : '').'>-- '.$langs->trans("SelectAction").' --</option>';
|
||||||
|
|||||||
@ -476,9 +476,11 @@ if ($resql)
|
|||||||
//'builddoc'=>$langs->trans("PDFMerge"),
|
//'builddoc'=>$langs->trans("PDFMerge"),
|
||||||
//'presend'=>$langs->trans("SendByMail"),
|
//'presend'=>$langs->trans("SendByMail"),
|
||||||
);
|
);
|
||||||
if ($user->rights->produit->supprimer) $arrayofmassactions['predelete'] = "<span class='fa fa-trash paddingrightonly'></span>".$langs->trans("Delete");
|
$rightskey='produit';
|
||||||
if (in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array();
|
if ($type == Product::TYPE_SERVICE) $rightskey='service';
|
||||||
$massactionbutton = $form->selectMassAction('', $arrayofmassactions);
|
if ($user->rights->{$rightskey}->supprimer) $arrayofmassactions['predelete'] = "<span class='fa fa-trash paddingrightonly'></span>".$langs->trans("Delete");
|
||||||
|
if (in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions=array();
|
||||||
|
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
|
||||||
|
|
||||||
$newcardbutton = '';
|
$newcardbutton = '';
|
||||||
if ($type === "") $perm = ($user->rights->produit->creer || $user->rights->service->creer);
|
if ($type === "") $perm = ($user->rights->produit->creer || $user->rights->service->creer);
|
||||||
|
|||||||
@ -1431,7 +1431,7 @@ class Societe extends CommonObject
|
|||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON s.fk_departement = d.rowid';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON s.fk_departement = d.rowid';
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_typent as te ON s.fk_typent = te.id';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_typent as te ON s.fk_typent = te.id';
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON s.fk_incoterms = i.rowid';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON s.fk_incoterms = i.rowid';
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_remise as sr ON sr.rowid = (SELECT MAX(rowid) FROM '.MAIN_DB_PREFIX.'societe_remise WHERE fk_soc = s.rowid AND entity = '.$conf->entity.')';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe_remise as sr ON sr.rowid = (SELECT MAX(rowid) FROM '.MAIN_DB_PREFIX.'societe_remise WHERE fk_soc = s.rowid AND entity IN ('.getEntity('discount').'))';
|
||||||
|
|
||||||
$sql .= ' WHERE s.entity IN ('.getEntity($this->element).')';
|
$sql .= ' WHERE s.entity IN ('.getEntity($this->element).')';
|
||||||
if ($rowid) $sql .= ' AND s.rowid = '.$rowid;
|
if ($rowid) $sql .= ' AND s.rowid = '.$rowid;
|
||||||
|
|||||||
@ -166,11 +166,14 @@ if ($_POST) {
|
|||||||
$bulkaction = $massaction;
|
$bulkaction = $massaction;
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
$prodstatic = new Product($db);
|
|
||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
foreach ($toselect as $prodid) {
|
foreach ($toselect as $prodid) {
|
||||||
|
// need create new of Product to prevent rename dir behavior
|
||||||
|
$prodstatic = new Product($db);
|
||||||
|
|
||||||
if ($prodstatic->fetch($prodid) < 0) {
|
if ($prodstatic->fetch($prodid) < 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user