New: Finished page to make mass stock movement
This commit is contained in:
parent
cb510f7c46
commit
16b2741834
@ -63,6 +63,7 @@ For users:
|
|||||||
- Fix: [bug #1022] correct margin calculation for credit notes.
|
- Fix: [bug #1022] correct margin calculation for credit notes.
|
||||||
- New: Can choose contact on event (action com) creation, and filtred by thirdparty.
|
- New: Can choose contact on event (action com) creation, and filtred by thirdparty.
|
||||||
- New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID.
|
- New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID.
|
||||||
|
- New: Add page to make mass stock movement.
|
||||||
|
|
||||||
For translators:
|
For translators:
|
||||||
- Qual: Normalized sort order of all languages files with english reference files.
|
- Qual: Normalized sort order of all languages files with english reference files.
|
||||||
|
|||||||
@ -122,12 +122,95 @@ if ($action == 'delline' && $idline != '')
|
|||||||
else unset($_SESSION['massstockmove']);
|
else unset($_SESSION['massstockmove']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'createmovement' && isset($_POST['valid']))
|
if ($action == 'createmovements')
|
||||||
{
|
{
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
if (! GETPOST("label"))
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
setEventMessage($langs->trans("ErrorFieldRequired"),$langs->transnoentitiesnoconv("LabelMovement"));
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$product = new Product($db);
|
||||||
|
|
||||||
|
foreach($listofdata as $key => $val) // Loop on each movement to do
|
||||||
|
{
|
||||||
|
$id=$val['id'];
|
||||||
|
$id_product=$val['id_product'];
|
||||||
|
$id_sw=$val['id_sw'];
|
||||||
|
$id_tw=$val['id_tw'];
|
||||||
|
$qty=price2num($val['qty']);
|
||||||
|
|
||||||
|
if (! $error && $id_sw <> $id_tw && is_numeric($qty) && $id_product)
|
||||||
|
{
|
||||||
|
$result=$product->fetch($id_product);
|
||||||
|
|
||||||
|
$product->load_stock(); // Load array product->stock_warehouse
|
||||||
|
|
||||||
|
// Define value of products moved
|
||||||
|
$pricesrc=0;
|
||||||
|
if (isset($product->stock_warehouse[$id_sw]->pmp)) $pricesrc=$product->stock_warehouse[$id_sw]->pmp;
|
||||||
|
$pricedest=$pricesrc;
|
||||||
|
|
||||||
|
//print 'price src='.$pricesrc.', price dest='.$pricedest;exit;
|
||||||
|
|
||||||
|
// Remove stock
|
||||||
|
$result1=$product->correct_stock(
|
||||||
|
$user,
|
||||||
|
$id_sw,
|
||||||
|
$qty,
|
||||||
|
1,
|
||||||
|
GETPOST("label"),
|
||||||
|
$pricesrc
|
||||||
|
);
|
||||||
|
if ($result1 < 0)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
setEventMessage($product->errors,'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add stock
|
||||||
|
$result2=$product->correct_stock(
|
||||||
|
$user,
|
||||||
|
$id_tw,
|
||||||
|
$qty,
|
||||||
|
0,
|
||||||
|
GETPOST("label"),
|
||||||
|
$pricedest
|
||||||
|
);
|
||||||
|
if ($result2 < 0)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
setEventMessage($product->errors,'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_print_error('',"Bad value saved into sessions");
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
unset($_SESSION['massstockmove']);
|
||||||
|
|
||||||
|
$db->commit();
|
||||||
|
setEventMessage($langs->trans("StockMovementRecorded"),'mesgs');
|
||||||
|
header("Location: ".DOL_URL_ROOT.'/product/stock/index.php'); // Redirect to avoid pb when using back
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$db->rollback();
|
||||||
|
setEventMessage($langs->trans("Error"),'errors');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -230,8 +313,16 @@ foreach($listofdata as $key => $val)
|
|||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="formulaire2">';
|
||||||
|
print '<input type="hidden" name="token" value="' .$_SESSION['newtoken'] . '">';
|
||||||
|
print '<input type="hidden" name="action" value="createmovements">';
|
||||||
|
|
||||||
// Button to record mass movement
|
// Button to record mass movement
|
||||||
$labelmovement=GETPOST("label")?GETPOST('label'):$langs->trans("MassStockMovement").' '.dol_print_date($now,'%Y-%m-%d %H:%M');
|
$labelmovement=GETPOST("label")?GETPOST('label'):$langs->trans("MassStockMovement").' '.dol_print_date($now,'%Y-%m-%d %H:%M');
|
||||||
|
|
||||||
@ -246,7 +337,6 @@ print '</table>';
|
|||||||
|
|
||||||
print '<div class="center"><input class="button" type="submit" name="valid" value="'.dol_escape_htmltag($buttonrecord).'"></div>';
|
print '<div class="center"><input class="button" type="submit" name="valid" value="'.dol_escape_htmltag($buttonrecord).'"></div>';
|
||||||
|
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -414,7 +414,7 @@ if ($resql)
|
|||||||
print "<tr class=\"liste_titre\">";
|
print "<tr class=\"liste_titre\">";
|
||||||
//print_liste_field_titre($langs->trans("Id"),$_SERVER["PHP_SELF"], "m.rowid","",$param,"",$sortfield,$sortorder);
|
//print_liste_field_titre($langs->trans("Id"),$_SERVER["PHP_SELF"], "m.rowid","",$param,"",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"], "m.datem","",$param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"], "m.datem","",$param,"",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"], "m.label","",$param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("LabelMovement"),$_SERVER["PHP_SELF"], "m.label","",$param,"",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("ProductRef"),$_SERVER["PHP_SELF"], "p.ref","",$param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("ProductRef"),$_SERVER["PHP_SELF"], "p.ref","",$param,"",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("ProductLabel"),$_SERVER["PHP_SELF"], "p.ref","",$param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("ProductLabel"),$_SERVER["PHP_SELF"], "p.ref","",$param,"",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Warehouse"),$_SERVER["PHP_SELF"], "","",$param,"",$sortfield,$sortorder); // We are on a specific warehouse card, no filter on other should be possible
|
print_liste_field_titre($langs->trans("Warehouse"),$_SERVER["PHP_SELF"], "","",$param,"",$sortfield,$sortorder); // We are on a specific warehouse card, no filter on other should be possible
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user