Merge pull request #15910 from atm-john/new/unit_type_selection_limit
NEW unit selection on object edit line
This commit is contained in:
commit
a1d20ed9c2
@ -3890,9 +3890,10 @@ class Form
|
|||||||
* @param string $selected Preselected Unit ID
|
* @param string $selected Preselected Unit ID
|
||||||
* @param string $htmlname Select name
|
* @param string $htmlname Select name
|
||||||
* @param int $showempty Add a nempty line
|
* @param int $showempty Add a nempty line
|
||||||
|
* @param string $unit_type Restrict to one given unit type
|
||||||
* @return string HTML select
|
* @return string HTML select
|
||||||
*/
|
*/
|
||||||
public function selectUnits($selected = '', $htmlname = 'units', $showempty = 0)
|
public function selectUnits($selected = '', $htmlname = 'units', $showempty = 0, $unit_type = '')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
@ -3902,6 +3903,9 @@ class Form
|
|||||||
|
|
||||||
$sql = 'SELECT rowid, label, code from '.MAIN_DB_PREFIX.'c_units';
|
$sql = 'SELECT rowid, label, code from '.MAIN_DB_PREFIX.'c_units';
|
||||||
$sql .= ' WHERE active > 0';
|
$sql .= ' WHERE active > 0';
|
||||||
|
if (!empty($unit_type)) {
|
||||||
|
$sql .= " AND unit_type = '".$this->db->escape($unit_type)."'";
|
||||||
|
}
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql && $this->db->num_rows($resql) > 0)
|
if ($resql && $this->db->num_rows($resql) > 0)
|
||||||
|
|||||||
@ -189,11 +189,21 @@ $coldisplay++;
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if (!empty($conf->global->PRODUCT_USE_UNITS))
|
if (!empty($conf->global->PRODUCT_USE_UNITS)) {
|
||||||
{
|
$unit_type = false;
|
||||||
|
// limit unit select to unit type
|
||||||
|
if (!empty($line->fk_unit) && empty($conf->global->MAIN_EDIT_LINE_ALLOW_ALL_UNIT_TYPE)) {
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php';
|
||||||
|
$cUnit = new CUnits($line->db);
|
||||||
|
if ($cUnit->fetch($line->fk_unit) > 0) {
|
||||||
|
if (!empty($cUnit->unit_type)) {
|
||||||
|
$unit_type = $cUnit->unit_type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
$coldisplay++;
|
$coldisplay++;
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
print $form->selectUnits($line->fk_unit, "units");
|
print $form->selectUnits($line->fk_unit, "units", 0, $unit_type);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user