Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0

Conflicts:
	htdocs/mrp/mo_movements.php
This commit is contained in:
Laurent Destailleur 2022-01-06 11:07:05 +01:00
commit b381f24897
2 changed files with 47 additions and 6 deletions

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2019 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2019 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2022 Ferran Marcet <fmarcet@2byte.es>
* *
* 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
@ -155,6 +156,9 @@ if ($permissiontoupdatecost) {
$arrayfields['m.price']['enabled'] = 1; $arrayfields['m.price']['enabled'] = 1;
} }
$arrayofselected = array();
/* /*
* Actions * Actions
*/ */
@ -798,10 +802,29 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
} }
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$totalarray = array();
$i = 0; $i = 0;
while ($i < ($limit ? min($num, $limit) : $num)) { while ($i < ($limit ? min($num, $limit) : $num)) {
$objp = $db->fetch_object($resql); $objp = $db->fetch_object($resql);
// Multilangs
if (!empty($conf->global->MAIN_MULTILANGS)) { // If multilang is enabled
// TODO Use a cache here
$sql = "SELECT label";
$sql .= " FROM ".MAIN_DB_PREFIX."product_lang";
$sql .= " WHERE fk_product=".$objp->rowid;
$sql .= " AND lang='".$db->escape($langs->getDefaultLang())."'";
$sql .= " LIMIT 1";
$result = $db->query($sql);
if ($result) {
$objtp = $db->fetch_object($result);
if (!empty($objtp->label)) {
$objp->produit = $objtp->label;
}
}
}
$userstatic->id = $objp->fk_user_author; $userstatic->id = $objp->fk_user_author;
$userstatic->login = $objp->login; $userstatic->login = $objp->login;
$userstatic->lastname = $objp->lastname; $userstatic->lastname = $objp->lastname;
@ -835,7 +858,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
// Id movement // Id movement
if (!empty($arrayfields['m.rowid']['checked'])) { if (!empty($arrayfields['m.rowid']['checked'])) {
// This is primary not movement id // This is primary not movement id
print '<td>'.$objp->mid.'</td>'; print '<td>'.dol_escape_htmltag($objp->mid).'</td>';
} }
if (!empty($arrayfields['m.datem']['checked'])) { if (!empty($arrayfields['m.datem']['checked'])) {
// Date // Date
@ -858,7 +881,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
if ($productlot->id > 0) { if ($productlot->id > 0) {
print $productlot->getNomUrl(1); print $productlot->getNomUrl(1);
} else { } else {
print $productlot->batch; // the id may not be defined if movement was entered when lot was not saved or if lot was removed after movement. print dol_escape_htmltag($productlot->batch); // the id may not be defined if movement was entered when lot was not saved or if lot was removed after movement.
} }
print '</td>'; print '</td>';
} }
@ -884,13 +907,13 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
// Inventory code // Inventory code
print '<td>'; print '<td>';
//print '<a href="' . DOL_URL_ROOT . '/product/stock/movement_card.php' . '?id=' . $objp->entrepot_id . '&amp;search_inventorycode=' . $objp->inventorycode . '&amp;search_type_mouvement=' . $objp->type_mouvement . '">'; //print '<a href="' . DOL_URL_ROOT . '/product/stock/movement_card.php' . '?id=' . $objp->entrepot_id . '&amp;search_inventorycode=' . $objp->inventorycode . '&amp;search_type_mouvement=' . $objp->type_mouvement . '">';
print $objp->inventorycode; print dol_escape_htmltag($objp->inventorycode);
//print '</a>'; //print '</a>';
print '</td>'; print '</td>';
} }
if (!empty($arrayfields['m.label']['checked'])) { if (!empty($arrayfields['m.label']['checked'])) {
// Label of movement // Label of movement
print '<td class="tdoverflowmax300" title="'.dol_escape_htmltag($objp->label).'">'.$objp->label.'</td>'; print '<td class="tdoverflowmax300" title="'.dol_escape_htmltag($objp->label).'">'.dol_escape_htmltag($objp->label).'</td>';
} }
if (!empty($arrayfields['m.type_mouvement']['checked'])) { if (!empty($arrayfields['m.type_mouvement']['checked'])) {
// Type of movement // Type of movement
@ -911,7 +934,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
} }
if (!empty($arrayfields['origin']['checked'])) { if (!empty($arrayfields['origin']['checked'])) {
// Origin of movement // Origin of movement
print '<td class="nowraponall">'.$origin.'</td>'; print '<td class="nowraponall">'.dol_escape_htmltag($origin).'</td>';
} }
if (!empty($arrayfields['m.fk_projet']['checked'])) { if (!empty($arrayfields['m.fk_projet']['checked'])) {
// fk_project // fk_project

View File

@ -3,7 +3,7 @@
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@inodbox.com> * Copyright (C) 2005-2014 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es> * Copyright (C) 2018-2022 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr> * Copyright (C) 2019 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
@ -1130,6 +1130,24 @@ if ($resql) {
$userstatic->email = $objp->user_email; $userstatic->email = $objp->user_email;
$userstatic->statut = $objp->user_status; $userstatic->statut = $objp->user_status;
// Multilangs
if (!empty($conf->global->MAIN_MULTILANGS)) { // If multilang is enabled
// TODO Use a cache
$sql = "SELECT label";
$sql .= " FROM ".MAIN_DB_PREFIX."product_lang";
$sql .= " WHERE fk_product=".$objp->rowid;
$sql .= " AND lang='".$db->escape($langs->getDefaultLang())."'";
$sql .= " LIMIT 1";
$result = $db->query($sql);
if ($result) {
$objtp = $db->fetch_object($result);
if (!empty($objtp->label)) {
$objp->produit = $objtp->label;
}
}
}
$productstatic->id = $objp->rowid; $productstatic->id = $objp->rowid;
$productstatic->ref = $objp->product_ref; $productstatic->ref = $objp->product_ref;
$productstatic->label = $objp->produit; $productstatic->label = $objp->produit;