23if (empty($conf) || !is_object($conf)) {
 
   24  print 
"Error, template page can't be called as URL";
 
   30<!-- BEGIN PHP TEMPLATE STOCKCORRECTION.TPL.PHP -->
 
   37if (
$object->element == 
'product') {
 
   41$langs->load(
"productbatch");
 
   53  $result = $pdluo->fetch($pdluoid);
 
   55    $pdluoid = $pdluo->id;
 
   78print 
'<script type="text/javascript"> 
   79    jQuery(document).ready(function() { 
   82        if (jQuery("#mouvement").val() == \'0\') jQuery("#unitprice").removeAttr("disabled"); 
   83        else jQuery("#unitprice").prop("disabled", true); 
   86      jQuery("#mouvement").change(function() { 
   87        console.log("We change the direction of movement"); 
   90      jQuery("#nbpiece").keyup(function(event) { 
   91        console.log("We enter a qty on "+event.key); 
   92        if ( event.key == "-" ) {  /* char - */ 
   93          console.log("We set direction to value 1"); 
   94          jQuery("#nbpiece").val(jQuery("#nbpiece").val().replace("-", "")); 
   95          jQuery("#mouvement option").removeAttr("selected").change(); 
   96          jQuery("#mouvement option[value=1]").attr("selected","selected").trigger("change"); 
   97          jQuery("#mouvement").trigger("change"); 
   98        } else if ( event.key == "+" ) {  /* char + */ 
   99          console.log("We set direction to value 0"); 
  100          jQuery("#nbpiece").val(jQuery("#nbpiece").val().replace("+", "")); 
  101          jQuery("#mouvement option").removeAttr("selected").change(); 
  102          jQuery("#mouvement option[value=0]").attr("selected","selected").trigger("change"); 
  103          jQuery("#mouvement").trigger("change"); 
  107if ($disableSellBy == 0 || $disableEatBy == 0) {
 
  109      var disableSellBy = '.dol_escape_js($disableSellBy).
'; 
  111      jQuery("#batch_number").change(function(event) { 
  112        var batch = jQuery(this).val(); 
  113        jQuery.getJSON("'.DOL_URL_ROOT.
'/product/ajax/product_lot.php?action=search&token='.
currentToken().
'&product_id='.$id.
'&batch="+batch, function(data) { 
  114          if (data.length > 0) { 
  115            var productLot = data[0]; 
  116            if (disableSellBy == 0) { 
  117              jQuery("#sellby").val(productLot.sellby); 
  119            if (disableEatBy == 0) { 
  120              jQuery("#eatby").val(productLot.eatby); 
  132print 
'<form action="'.$_SERVER[
"PHP_SELF"].
'?id='.$id.
'" method="post">'.
"\n";
 
  136print 
'<input type="hidden" name="token" value="'.newToken().
'">';
 
  137print 
'<input type="hidden" name="action" value="correct_stock">';
 
  138print 
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
 
  140  print 
'<input type="hidden" name="pdluoid" value="'.$pdluoid.
'">';
 
  142print 
'<table class="border centpercent">';
 
  146if (
$object->element == 
'product') {
 
  147  print 
'<td class="fieldrequired">'.$langs->trans(
"Warehouse").
'</td>';
 
  153  print 
img_picto(
'', 
'stock', 
'class="pictofixedwidth"').$formproduct->selectWarehouses($ident, 
'id_entrepot', 
'warehouseopen,warehouseinternal', 1, 0, 0, 
'', 0, 0, 
null, 
'minwidth100 maxwidth300 widthcentpercentminusx');
 
  156if (
$object->element == 
'stockmouvement') {
 
  157  print 
'<td class="fieldrequired">'.$langs->trans(
"Product").
'</td>';
 
  160  $form->select_produits(
GETPOSTINT(
'product_id'), 
'product_id', (!
getDolGlobalString(
'STOCK_SUPPORTS_SERVICES') ? 
'0' : 
''), 0, 0, -1, 2, 
'', 0, null, 0, 1, 0, 
'maxwidth500');
 
  163print 
'<td class="fieldrequired">'.$langs->trans(
"NumberOfUnit").
'</td>';
 
  165if (
$object->element == 
'product' || 
$object->element == 
'stockmouvement') {
 
  166  print 
'<select name="mouvement" id="mouvement" class="minwidth100 valignmiddle">';
 
  167  print 
'<option value="0">'.$langs->trans(
"Add").
'</option>';
 
  168  print 
'<option value="1"'.(GETPOST(
'mouvement') ? 
' selected="selected"' : 
'').
'>'.$langs->trans(
"Delete").
'</option>';
 
  172print 
'<input name="nbpiece" id="nbpiece" class="center valignmiddle maxwidth75" value="'.GETPOST(
"nbpiece").
'">';
 
  180  print 
'<td colspan="3">';
 
  181  print 
'<input type="checkbox" name="disablesubproductstockchange" id="disablesubproductstockchange" value="1"'.(GETPOST(
'disablesubproductstockchange') ? 
' checked="checked"' : 
'').
'">';
 
  182  print 
' <label for="disablesubproductstockchange">'.$langs->trans(
"DisableStockChangeOfSubProduct").
'</label>';
 
  188if (isModEnabled(
'productbatch') &&
 
  190|| (
$object->element == 
'stockmouvement'))
 
  193  print 
'<td'.($object->element == 
'stockmouvement' ? 
'' : 
' class="fieldrequired"').
'>'.$langs->trans(
"batch_number").
'</td><td colspan="3">';
 
  196    print 
'<input type="text" name="batch_number_bis" size="40" disabled="disabled" value="'.(GETPOST(
'batch_number') ? 
GETPOST(
'batch_number') : $pdluo->batch).
'">';
 
  197    print 
'<input type="hidden" name="batch_number" value="'.(GETPOST(
'batch_number') ? 
GETPOST(
'batch_number') : $pdluo->batch).
'">';
 
  199    print 
img_picto(
'', 
'barcode', 
'class="pictofixedwidth"').
'<input type="text" id="batch_number" name="batch_number" class="minwidth300" value="'.(
GETPOST(
'batch_number') ? 
GETPOST(
'batch_number') : $pdluo->batch).
'">';
 
  206    print 
'<td'.($sellByCss ? 
' class="'.$sellByCss.
'"' : 
'').
'>'.$langs->trans(
"SellByDate").
'</td><td>';
 
  209    print $form->selectDate(($pdluo->id > 0 ? $pdluo->sellby : $sellbyselected), 
'sellby', 0, 0, 1, 
"", 1, 0, ($pdluoid > 0 ? 1 : 0));
 
  213    print 
'<td'.($eatByCss ? 
' class="'.$eatByCss.
'"' : 
'').
'>'.$langs->trans(
"EatByDate").
'</td><td>';
 
  216    print $form->selectDate(($pdluo->id > 0 ? $pdluo->eatby : $eatbyselected), 
'eatby', 0, 0, 1, 
"", 1, 0, ($pdluoid > 0 ? 1 : 0));
 
  224print 
'<td>'.$langs->trans(
"UnitPurchaseValue").
'</td>';
 
  225print 
'<td colspan="'.(isModEnabled(
'project') ? 
'1' : 
'3').
'"><input name="unitprice" id="unitprice" size="10" value="'.
GETPOST(
"unitprice").
'"></td>';
 
  226if (isModEnabled(
'project')) {
 
  227  print 
'<td>'.$langs->trans(
'Project').
'</td>';
 
  230  $formproject->select_projects(-1, 
'', 
'projectid', 0, 0, 1, 0, 0, 0, 0, 
'', 0, 0, 
'maxwidth300 widthcentpercentminusx');
 
  236$valformovementlabel = ((
GETPOST(
"label") && (
GETPOST(
'label') != $langs->trans(
"MovementCorrectStock", 
''))) ? 
GETPOST(
"label") : $langs->trans(
"MovementCorrectStock", $productref));
 
  238print 
'<td>'.$langs->trans(
"MovementLabel").
'</td>';
 
  240print 
'<input type="text" name="label" class="minwidth400" value="'.dol_escape_htmltag($valformovementlabel).
'">';
 
  242print 
'<td>'.$langs->trans(
"InventoryCode").
'</td>';
 
  244print 
'<input class="maxwidth100onsmartphone" name="inventorycode" id="inventorycode" value="'.(GETPOSTISSET(
"inventorycode") ? 
GETPOST(
"inventorycode", 
'alpha') : 
dol_print_date(
dol_now(), 
'%Y%m%d%H%M%S')).
'">';
 
  252print 
'<div class="center">';
 
  253print 
'<input type="submit" class="button button-save" name="save" value="'.dol_escape_htmltag($langs->trans(
"Save")).
'">';
 
  254print 
'     ';
 
  255print 
'<input type="submit" class="button button-cancel" name="cancel" value="'.dol_escape_htmltag($langs->trans(
"Cancel")).
'">';
 
  260<!-- END PHP STOCKCORRECTION.TPL.PHP -->
 
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
 
ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $forcefocus=0, $widthTypeOfAutocomplete='resolve', $idforemptyvalue='-1', $morecss='')
Convert a html select field into an ajax combobox.
 
Manage record for batch number management.
 
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
 
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
 
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
 
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
 
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
 
currentToken()
Return the value of token currently saved into session with name 'token'.
 
dol_get_fiche_end($notab=0)
Return tab footer of a card.
 
dol_now($mode='auto')
Return date for now.
 
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
 
dol_escape_js($stringtoescape, $mode=0, $noescapebackslashn=0)
Returns text escaped for inclusion into javascript code.
 
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
 
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
 
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
 
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.