NEW Add color and picto for direction of movement
This commit is contained in:
parent
eeb1c5d884
commit
af199189b3
@ -2577,7 +2577,7 @@ class Form
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($showempty) {
|
if ($showempty) {
|
||||||
$out .= '<option value="0" selected>'.$textifempty.'</option>';
|
$out .= '<option value="0" selected>'.($textifempty ? $textifempty : ' ').'</option>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|||||||
@ -155,7 +155,7 @@ StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to
|
|||||||
StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever the rule for automatic stock change)
|
StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever the rule for automatic stock change)
|
||||||
StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever the rule for automatic stock change)
|
StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever the rule for automatic stock change)
|
||||||
MovementLabel=Label of movement
|
MovementLabel=Label of movement
|
||||||
TypeMovement=Type of movement
|
TypeMovement=Direction of movement
|
||||||
DateMovement=Date of movement
|
DateMovement=Date of movement
|
||||||
InventoryCode=Movement or inventory code
|
InventoryCode=Movement or inventory code
|
||||||
IsInPackage=Contained into package
|
IsInPackage=Contained into package
|
||||||
|
|||||||
@ -1107,6 +1107,47 @@ class MouvementStock extends CommonObject
|
|||||||
// There is no specific properties. All data into insert are provided as method parameter.
|
// There is no specific properties. All data into insert are provided as method parameter.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return html string with picto for type of movement
|
||||||
|
*
|
||||||
|
* @param int $withlabel With label
|
||||||
|
* @return string String with URL
|
||||||
|
*/
|
||||||
|
public function getTypeMovement($withlabel = 0)
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
|
||||||
|
$s = '';
|
||||||
|
switch ($this->type) {
|
||||||
|
case "0":
|
||||||
|
$s = '<span class="fa fa-level-down-alt stockmovemententry stockmovementtransfer" title="'.$langs->trans('StockIncreaseAfterCorrectTransfer').'"></span>';
|
||||||
|
if ($withlabel) {
|
||||||
|
$s .= $langs->trans('StockIncreaseAfterCorrectTransfer');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "1":
|
||||||
|
$s = '<span class="fa fa-level-up-alt stockmovementexit stockmovementtransfer" title="'.$langs->trans('StockDecreaseAfterCorrectTransfer').'"></span>';
|
||||||
|
if ($withlabel) {
|
||||||
|
$s .= $langs->trans('StockDecreaseAfterCorrectTransfer');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "2":
|
||||||
|
$s = '<span class="fa fa-long-arrow-alt-up stockmovementexit stockmovement" title="'.$langs->trans('StockDecrease').'"></span>';
|
||||||
|
if ($withlabel) {
|
||||||
|
$s .= $langs->trans('StockDecrease');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "3":
|
||||||
|
$s = '<span class="fa fa-long-arrow-alt-down stockmovemententry stockmovement" title="'.$langs->trans('StockIncrease').'"></span>';
|
||||||
|
if ($withlabel) {
|
||||||
|
$s .= $langs->trans('StockIncrease');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $s;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a link (with optionaly the picto)
|
* Return a link (with optionaly the picto)
|
||||||
* Use this->id,this->lastname, this->firstname
|
* Use this->id,this->lastname, this->firstname
|
||||||
|
|||||||
@ -944,22 +944,6 @@ if ($resql) {
|
|||||||
print '<input class="flat" type="text" size="8" name="search_movement" value="'.dol_escape_htmltag($search_movement).'">';
|
print '<input class="flat" type="text" size="8" name="search_movement" value="'.dol_escape_htmltag($search_movement).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['m.type_mouvement']['checked'])) {
|
|
||||||
// Type of movement
|
|
||||||
print '<td class="liste_titre center">';
|
|
||||||
//print '<input class="flat" type="text" size="3" name="search_type_mouvement" value="'.dol_escape_htmltag($search_type_mouvement).'">';
|
|
||||||
print '<select id="search_type_mouvement" name="search_type_mouvement" class="maxwidth150">';
|
|
||||||
print '<option value="" '.(($search_type_mouvement == "") ? 'selected="selected"' : '').'></option>';
|
|
||||||
print '<option value="0" '.(($search_type_mouvement == "0") ? 'selected="selected"' : '').'>'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</option>';
|
|
||||||
print '<option value="1" '.(($search_type_mouvement == "1") ? 'selected="selected"' : '').'>'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</option>';
|
|
||||||
print '<option value="2" '.(($search_type_mouvement == "2") ? 'selected="selected"' : '').'>'.$langs->trans('StockDecrease').'</option>';
|
|
||||||
print '<option value="3" '.(($search_type_mouvement == "3") ? 'selected="selected"' : '').'>'.$langs->trans('StockIncrease').'</option>';
|
|
||||||
print '</select>';
|
|
||||||
print ajax_combobox('search_type_mouvement');
|
|
||||||
// TODO: add new function $formentrepot->selectTypeOfMovement(...) like
|
|
||||||
// print $formproduct->selectWarehouses($search_warehouse, 'search_warehouse', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, null, 'maxwidth200');
|
|
||||||
print '</td>';
|
|
||||||
}
|
|
||||||
if (!empty($arrayfields['origin']['checked'])) {
|
if (!empty($arrayfields['origin']['checked'])) {
|
||||||
// Origin of movement
|
// Origin of movement
|
||||||
print '<td class="liste_titre left">';
|
print '<td class="liste_titre left">';
|
||||||
@ -972,6 +956,22 @@ if ($resql) {
|
|||||||
print ' ';
|
print ' ';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
if (!empty($arrayfields['m.type_mouvement']['checked'])) {
|
||||||
|
// Type of movement
|
||||||
|
print '<td class="liste_titre center">';
|
||||||
|
//print '<input class="flat" type="text" size="3" name="search_type_mouvement" value="'.dol_escape_htmltag($search_type_mouvement).'">';
|
||||||
|
print '<select id="search_type_mouvement" name="search_type_mouvement" class="maxwidth150">';
|
||||||
|
print '<option value="" '.(($search_type_mouvement == "") ? 'selected="selected"' : '').'> </option>';
|
||||||
|
print '<option value="0" '.(($search_type_mouvement == "0") ? 'selected="selected"' : '').'>'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</option>';
|
||||||
|
print '<option value="1" '.(($search_type_mouvement == "1") ? 'selected="selected"' : '').'>'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</option>';
|
||||||
|
print '<option value="2" '.(($search_type_mouvement == "2") ? 'selected="selected"' : '').'>'.$langs->trans('StockDecrease').'</option>';
|
||||||
|
print '<option value="3" '.(($search_type_mouvement == "3") ? 'selected="selected"' : '').'>'.$langs->trans('StockIncrease').'</option>';
|
||||||
|
print '</select>';
|
||||||
|
print ajax_combobox('search_type_mouvement');
|
||||||
|
// TODO: add new function $formentrepot->selectTypeOfMovement(...) like
|
||||||
|
// print $formproduct->selectWarehouses($search_warehouse, 'search_warehouse', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, null, 'maxwidth200');
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
if (!empty($arrayfields['m.value']['checked'])) {
|
if (!empty($arrayfields['m.value']['checked'])) {
|
||||||
// Qty
|
// Qty
|
||||||
print '<td class="liste_titre right">';
|
print '<td class="liste_titre right">';
|
||||||
@ -1044,15 +1044,15 @@ if ($resql) {
|
|||||||
if (!empty($arrayfields['m.label']['checked'])) {
|
if (!empty($arrayfields['m.label']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['m.label']['label'], $_SERVER["PHP_SELF"], "m.label", "", $param, "", $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['m.label']['label'], $_SERVER["PHP_SELF"], "m.label", "", $param, "", $sortfield, $sortorder);
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['m.type_mouvement']['checked'])) {
|
|
||||||
print_liste_field_titre($arrayfields['m.type_mouvement']['label'], $_SERVER["PHP_SELF"], "m.type_mouvement", "", $param, '', $sortfield, $sortorder, 'center ');
|
|
||||||
}
|
|
||||||
if (!empty($arrayfields['origin']['checked'])) {
|
if (!empty($arrayfields['origin']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['origin']['label'], $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['origin']['label'], $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['m.fk_projet']['checked'])) {
|
if (!empty($arrayfields['m.fk_projet']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['m.fk_projet']['label'], $_SERVER["PHP_SELF"], "m.fk_projet", "", $param, '', $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['m.fk_projet']['label'], $_SERVER["PHP_SELF"], "m.fk_projet", "", $param, '', $sortfield, $sortorder);
|
||||||
}
|
}
|
||||||
|
if (!empty($arrayfields['m.type_mouvement']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['m.type_mouvement']['label'], $_SERVER["PHP_SELF"], "m.type_mouvement", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
if (!empty($arrayfields['m.value']['checked'])) {
|
if (!empty($arrayfields['m.value']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['m.value']['label'], $_SERVER["PHP_SELF"], "m.value", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre($arrayfields['m.value']['label'], $_SERVER["PHP_SELF"], "m.value", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
}
|
}
|
||||||
@ -1113,6 +1113,8 @@ if ($resql) {
|
|||||||
$warehousestatic->fk_parent = $objp->fk_parent;
|
$warehousestatic->fk_parent = $objp->fk_parent;
|
||||||
$warehousestatic->statut = $objp->statut;
|
$warehousestatic->statut = $objp->statut;
|
||||||
|
|
||||||
|
$movement->type = $objp->type_mouvement;
|
||||||
|
|
||||||
$arrayofuniqueproduct[$objp->rowid] = $objp->produit;
|
$arrayofuniqueproduct[$objp->rowid] = $objp->produit;
|
||||||
if (!empty($objp->fk_origin)) {
|
if (!empty($objp->fk_origin)) {
|
||||||
$origin = $movement->get_origin($objp->fk_origin, $objp->origintype);
|
$origin = $movement->get_origin($objp->fk_origin, $objp->origintype);
|
||||||
@ -1176,23 +1178,6 @@ if ($resql) {
|
|||||||
// Label of movement
|
// Label of movement
|
||||||
print '<td class="tdoverflowmax200" title="'.dol_escape_htmltag($objp->label).'">'.$objp->label.'</td>';
|
print '<td class="tdoverflowmax200" title="'.dol_escape_htmltag($objp->label).'">'.$objp->label.'</td>';
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['m.type_mouvement']['checked'])) {
|
|
||||||
// Type of movement
|
|
||||||
switch ($objp->type_mouvement) {
|
|
||||||
case "0":
|
|
||||||
print '<td class="center">'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</td>';
|
|
||||||
break;
|
|
||||||
case "1":
|
|
||||||
print '<td class="center">'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</td>';
|
|
||||||
break;
|
|
||||||
case "2":
|
|
||||||
print '<td class="center">'.$langs->trans('StockDecrease').'</td>';
|
|
||||||
break;
|
|
||||||
case "3":
|
|
||||||
print '<td class="center">'.$langs->trans('StockIncrease').'</td>';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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">'.$origin.'</td>';
|
||||||
@ -1205,13 +1190,25 @@ if ($resql) {
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
if (!empty($arrayfields['m.type_mouvement']['checked'])) {
|
||||||
|
// Type of movement
|
||||||
|
print '<td class="center">';
|
||||||
|
print $movement->getTypeMovement();
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
if (!empty($arrayfields['m.value']['checked'])) {
|
if (!empty($arrayfields['m.value']['checked'])) {
|
||||||
// Qty
|
// Qty
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($objp->qt > 0) {
|
if ($objp->qty > 0) {
|
||||||
|
print '<span class="stockmovemententry">';
|
||||||
print '+';
|
print '+';
|
||||||
|
print $objp->qty;
|
||||||
|
print '</span>';
|
||||||
|
} else {
|
||||||
|
print '<span class="stockmovementexit">';
|
||||||
|
print $objp->qty;
|
||||||
|
print '</span>';
|
||||||
}
|
}
|
||||||
print $objp->qty;
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['m.price']['checked'])) {
|
if (!empty($arrayfields['m.price']['checked'])) {
|
||||||
|
|||||||
@ -358,12 +358,12 @@ print '<span class="fieldrequired">'.$langs->trans('Date').'</span> '.$form->sel
|
|||||||
print ' <span class="clearbothonsmartphone marginleftonly paddingleftonly marginrightonly paddingrightonly"> </span> ';
|
print ' <span class="clearbothonsmartphone marginleftonly paddingleftonly marginrightonly paddingrightonly"> </span> ';
|
||||||
print img_picto('', 'product').' ';
|
print img_picto('', 'product').' ';
|
||||||
print $langs->trans('Product').'</span> ';
|
print $langs->trans('Product').'</span> ';
|
||||||
$form->select_produits($productid, 'productid', '', 0, 0, -1, 2, '', 0, array(), 0, '1', 0, 'maxwidth300');
|
print $form->select_produits($productid, 'productid', '', 0, 0, -1, 2, '', 0, array(), 0, '1', 0, 'maxwidth300', 0, '', null, 1);
|
||||||
|
|
||||||
print ' <span class="clearbothonsmartphone marginleftonly paddingleftonly marginrightonly paddingrightonly"> </span> ';
|
print ' <span class="clearbothonsmartphone marginleftonly paddingleftonly marginrightonly paddingrightonly"> </span> ';
|
||||||
print img_picto('', 'stock').' ';
|
print img_picto('', 'stock').' ';
|
||||||
print $langs->trans('Warehouse').'</span> ';
|
print $langs->trans('Warehouse').'</span> ';
|
||||||
print $formproduct->selectWarehouses((GETPOSTISSET('fk_warehouse') ? $fk_warehouse : 'ifone'), 'fk_warehouse', '', 1);
|
print $formproduct->selectWarehouses((GETPOSTISSET('fk_warehouse') ? $fk_warehouse : 'ifone'), 'fk_warehouse', '', 1, 0, 0, '', 0, 0, null, '', '', 1, false, 'e.ref');
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
|
|||||||
@ -768,6 +768,19 @@ i.fa-mars::before, i.fa-venus::before, i.fa-genderless::before {
|
|||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
padding-<?php echo $left; ?>: 3px;
|
padding-<?php echo $left; ?>: 3px;
|
||||||
}
|
}
|
||||||
|
.stockmovemententry {
|
||||||
|
color: #080;
|
||||||
|
transform: rotate(0.25turn);
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
.stockmovementexit {
|
||||||
|
color: #968822;
|
||||||
|
transform: rotate(0.3turn);
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
.stockmovement {
|
||||||
|
font-size: 1.4em;
|
||||||
|
}
|
||||||
|
|
||||||
body[class*="colorblind-"] .text-warning{
|
body[class*="colorblind-"] .text-warning{
|
||||||
color : <?php print $colorblind_deuteranopes_textWarning; ?>
|
color : <?php print $colorblind_deuteranopes_textWarning; ?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user