37 print
"Error, template page can't be called as URL";
42@phan-var-force Entrepot|MouvementStock $object
43@phan-var-force FormProduct $formproduct
44@phan-var-force FormProjets $formproject
45@phan-var-force string $backtopage
50<!-- BEGIN PHP TEMPLATE PRODUCT/STOCK/TPL/STOCKCORRECTION.TPL.PHP -->
54if (
$object->element ==
'product') {
59$langs->load(
"productbatch");
71 $result = $pdluo->fetch($pdluoid);
73 $pdluoid = $pdluo->id;
96print
'<script type="text/javascript">
97 jQuery(document).ready(function() {
100 if (jQuery("#mouvement").val() == \'0\') jQuery("#unitprice").removeAttr("disabled");
101 else jQuery("#unitprice").prop("disabled", true);
104 jQuery("#mouvement").change(function() {
105 console.log("We change the direction of movement");
108 jQuery("#nbpiece").keyup(function(event) {
109 console.log("We enter a qty on "+event.key);
110 if ( event.key == "-" ) { /* char - */
111 console.log("We set direction to value 1");
112 jQuery("#nbpiece").val(jQuery("#nbpiece").val().replace("-", ""));
113 jQuery("#mouvement option").removeAttr("selected").change();
114 jQuery("#mouvement option[value=1]").attr("selected","selected").trigger("change");
115 jQuery("#mouvement").trigger("change");
116 } else if ( event.key == "+" ) { /* char + */
117 console.log("We set direction to value 0");
118 jQuery("#nbpiece").val(jQuery("#nbpiece").val().replace("+", ""));
119 jQuery("#mouvement option").removeAttr("selected").change();
120 jQuery("#mouvement option[value=0]").attr("selected","selected").trigger("change");
121 jQuery("#mouvement").trigger("change");
125if ($disableSellBy == 0 || $disableEatBy == 0) {
127 var disableSellBy = '.dol_escape_js((
string) $disableSellBy).
';
128 var disableEatBy = '.
dol_escape_js((
string) $disableSellBy).
';
129 jQuery("#batch_number").change(function(event) {
130 var batch = jQuery(this).val();
131 jQuery.getJSON("'.DOL_URL_ROOT.
'/product/ajax/product_lot.php?action=search&token='.
currentToken().
'&product_id='.
$id.
'&batch="+batch, function(data) {
132 if (data.length > 0) {
133 var productLot = data[0];
134 if (disableSellBy == 0) {
135 jQuery("#sellby").val(productLot.sellby);
137 if (disableEatBy == 0) {
138 jQuery("#eatby").val(productLot.eatby);
150print
'<form action="'.$_SERVER[
"PHP_SELF"].
'?id='.
$id.
'" method="post">'.
"\n";
152print
dol_get_fiche_head(array(),
'',
'', 0,
'', 0,
'',
'', 0,
'', 0,
'marginbottomonly');
154print
'<input type="hidden" name="token" value="'.newToken().
'">';
155print
'<input type="hidden" name="action" value="correct_stock">';
156print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
158 print
'<input type="hidden" name="pdluoid" value="'.$pdluoid.
'">';
160print
'<table class="border centpercent">';
164if (
$object->element ==
'product') {
166 print
'<td class="fieldrequired">'.$langs->trans(
"Warehouse").
'</td>';
172 print
img_picto(
'',
'stock',
'class="pictofixedwidth"').$formproduct->selectWarehouses($ident,
'id_entrepot',
'warehouseopen,warehouseinternal', 1, 0, 0,
'', 0, 0, array(),
'minwidth100 maxwidth300 widthcentpercentminusx');
175if (
$object->element ==
'stockmouvement') {
177 print
'<td class="fieldrequired">'.$langs->trans(
"Product").
'</td>';
180 $form->select_produits(
GETPOSTINT(
'product_id'),
'product_id', (!
getDolGlobalString(
'STOCK_SUPPORTS_SERVICES') ?
'0' :
''), 0, 0, -1, 2,
'', 0, array(), 0, 1, 0,
'maxwidth500');
183print
'<td class="fieldrequired">'.$langs->trans(
"NumberOfUnit").
'</td>';
185if (
$object->element ==
'product' ||
$object->element ==
'stockmouvement') {
187 print
'<select name="mouvement" id="mouvement" class="minwidth100 valignmiddle">';
188 print
'<option value="0">'.$langs->trans(
"Add").
'</option>';
189 print
'<option value="1"'.(GETPOST(
'mouvement') ?
' selected="selected"' :
'').
'>'.$langs->trans(
"Delete").
'</option>';
193print
'<input name="nbpiece" id="nbpiece" class="center valignmiddle maxwidth75" value="'.GETPOST(
"nbpiece").
'">';
202 print
'<td colspan="3">';
203 print
'<input type="checkbox" name="disablesubproductstockchange" id="disablesubproductstockchange" value="1"'.(GETPOST(
'disablesubproductstockchange') ?
' checked="checked"' :
'').
'">';
204 print
' <label for="disablesubproductstockchange">'.$langs->trans(
"DisableStockChangeOfSubProduct").
'</label>';
212|| (
$object->element ==
'stockmouvement'))
216 print
'<td'.($object->element ==
'stockmouvement' ?
'' :
' class="fieldrequired"').
'>'.$langs->trans(
"batch_number").
'</td><td colspan="3">';
219 print
'<input type="text" name="batch_number_bis" size="40" disabled="disabled" value="'.(GETPOST(
'batch_number') ?
GETPOST(
'batch_number') : $pdluo->batch).
'">';
220 print
'<input type="hidden" name="batch_number" value="'.(GETPOST(
'batch_number') ?
GETPOST(
'batch_number') : $pdluo->batch).
'">';
222 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).
'">';
230 print
'<td>'.$langs->trans(
"SellByDate").
'</td><td>';
233 print $form->selectDate(($pdluo->id > 0 ? $pdluo->sellby : $sellbyselected),
'sellby', 0, 0, 1,
"", 1, 0, ($pdluoid > 0 ? 1 : 0));
238 print
'<td>'.$langs->trans(
"EatByDate").
'</td><td>';
241 print $form->selectDate(($pdluo->id > 0 ? $pdluo->eatby : $eatbyselected),
'eatby', 0, 0, 1,
"", 1, 0, ($pdluoid > 0 ? 1 : 0));
249print
'<td>'.$langs->trans(
"UnitPurchaseValue").
'</td>';
250print
'<td colspan="'.(isModEnabled(
'project') ?
'1' :
'3').
'"><input name="unitprice" id="unitprice" size="10" value="'.
GETPOST(
"unitprice").
'"></td>';
252 print
'<td>'.$langs->trans(
'Project').
'</td>';
255 $formproject->select_projects(-1,
'',
'projectid', 0, 0, 1, 0, 0, 0, 0,
'', 0, 0,
'maxwidth300 widthcentpercentminusx');
261$valformovementlabel = ((
GETPOST(
"label") && (
GETPOST(
'label') != $langs->trans(
"MovementCorrectStock",
''))) ?
GETPOST(
"label") : $langs->trans(
"MovementCorrectStock", $productref));
263print
'<td>'.$langs->trans(
"MovementLabel").
'</td>';
265print
'<input type="text" name="label" class="minwidth400" value="'.dol_escape_htmltag($valformovementlabel).
'">';
267print
'<td>'.$langs->trans(
"InventoryCode").
'</td>';
270print
'<input class="maxwidth100onsmartphone" name="inventorycode" id="inventorycode" value="'.(GETPOSTISSET(
"inventorycode") ?
GETPOST(
"inventorycode",
'alpha') :
getDolGlobalString(
'STOCK_CORRECTION_CODE_PREFIX',
'COR-').
dol_print_date(
dol_now(),
'%Y%m%d%H%M%S')).
'">';
278print
'<div class="center">';
279print
'<input type="submit" class="button button-save" name="save" value="'.dol_escape_htmltag($langs->trans(
"Save")).
'">';
280print
' ';
281print
'<input type="submit" class="button button-cancel" name="cancel" value="'.dol_escape_htmltag($langs->trans(
"Cancel")).
'">';
288<!-- END PHP STOCKCORRECTION.TPL.PHP -->
$id
Support class for third parties, contacts, members, users or resources.
if(! $sortfield) if(! $sortorder) $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_now($mode='gmt')
Return date for now.
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...
currentToken()
Return the value of token currently saved into session with name 'token'.
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.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string