diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php
index 99ee1b6af9b..1d8dd1db08e 100644
--- a/htdocs/core/class/html.formother.class.php
+++ b/htdocs/core/class/html.formother.class.php
@@ -77,7 +77,10 @@ class FormOther
$out .= ' Scan a product barcode ';
$out .= ' Scan a product lot or serial number ';
- $out .= $langs->trans("QtyToAddAfterBarcodeScan").' ';
+ $stringaddbarcode = $langs->trans("QtyToAddAfterBarcodeScan","tmphtml");
+ $htmltoreplaceby = '';
+ $stringaddbarcode = str_replace("tmphtml",$htmltoreplaceby,$stringaddbarcode);
+ $out .= $stringaddbarcode.' ';
$out .= '';
/*print ' '.$langs->trans("or").' ';
diff --git a/htdocs/langs/en_US/productbatch.lang b/htdocs/langs/en_US/productbatch.lang
index 71e44e8f281..dd1e0ea4027 100644
--- a/htdocs/langs/en_US/productbatch.lang
+++ b/htdocs/langs/en_US/productbatch.lang
@@ -30,7 +30,7 @@ ManageLotMask=Custom mask
CustomMasks=Option to define a different numbering mask for each product
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product)
-QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
+QtyToAddAfterBarcodeScan=Qty to %s for each barcode/lot/serial scanned
LifeTime=Life span (in days)
EndOfLife=End of life
ManufacturingDate=Manufacturing date
@@ -42,3 +42,4 @@ HideLots=Hide lots
#Traceability - qc status
OutOfOrder=Out of order
InWorkingOrder=In working order
+ToReplace=Replace
\ No newline at end of file
diff --git a/htdocs/langs/fr_FR/productbatch.lang b/htdocs/langs/fr_FR/productbatch.lang
index ccd5e43d3d7..bcef04e75ed 100644
--- a/htdocs/langs/fr_FR/productbatch.lang
+++ b/htdocs/langs/fr_FR/productbatch.lang
@@ -30,7 +30,7 @@ ManageLotMask=Masque personnalisé
CustomMasks=Option pour définir un masque de numérotation différent pour chaque produit
BatchLotNumberingModules=Règle de numérotation pour la génération automatique de numéro de lot
BatchSerialNumberingModules=Règle de numérotation pour la génération automatique de numéro de série (pour les produits avec propriété 1 lot/série unique pour chaque produit)
-QtyToAddAfterBarcodeScan=Quantité à ajouter pour chaque code à barres/lot/série scanné
+QtyToAddAfterBarcodeScan=Quantité à %s pour chaque code à barres/lot/série scanné
LifeTime=Durée de vie (en jours)
EndOfLife=Fin d'utilisation
ManufacturingDate=Date de fabrication
diff --git a/htdocs/product/inventory/ajax/ajax.inventory.php b/htdocs/product/inventory/ajax/ajax.inventory.php
deleted file mode 100644
index 920607f4c1e..00000000000
--- a/htdocs/product/inventory/ajax/ajax.inventory.php
+++ /dev/null
@@ -1,47 +0,0 @@
-rights->stock->creer)) {
- echo -1; exit;
- }
-
- $fk_det_inventory = GETPOST('fk_det_inventory');
-
- $det = new InventoryLine($db);
- if ($det->fetch($fk_det_inventory)) {
- $det->qty_view += GETPOST('qty');
- $res = $det->update($user);
-
- echo $det->qty_view;
- } else {
- echo -2;
- }
-
- break;
-
- case 'pmp':
- if (empty($user->rights->stock->creer) || empty($user->rights->stock->changePMP)) {
- echo -1; exit;
- }
-
- $fk_det_inventory = GETPOST('fk_det_inventory');
-
- $det = new InventoryLine($db);
- if ($det->fetch($fk_det_inventory)) {
- $det->new_pmp = price2num(GETPOST('pmp'));
- $det->update($user);
-
- echo $det->new_pmp;
- } else {
- echo -2;
- }
-
- break;
-}
diff --git a/htdocs/product/inventory/ajax/searchfrombarcode.php b/htdocs/product/inventory/ajax/searchfrombarcode.php
new file mode 100644
index 00000000000..259aa5999f6
--- /dev/null
+++ b/htdocs/product/inventory/ajax/searchfrombarcode.php
@@ -0,0 +1,54 @@
+.
+ */
+
+/**
+ * \file /htdocs/product/inventory/ajax/searchfrombarcode.php
+ * \brief File to make Ajax action on product and stock
+ */
+
+if (!defined('NOTOKENRENEWAL')) {
+ define('NOTOKENRENEWAL', '1'); // Disables token renewal
+}
+if (!defined('NOREQUIREHTML')) {
+ define('NOREQUIREHTML', '1');
+}
+if (!defined('NOREQUIREAJAX')) {
+ define('NOREQUIREAJAX', '1');
+}
+if (!defined('NOREQUIRESOC')) {
+ define('NOREQUIRESOC', '1');
+}
+if (!defined('NOCSRFCHECK')) {
+ define('NOCSRFCHECK', '1');
+}
+// Do not check anti CSRF attack test
+if (!defined('NOREQUIREMENU')) {
+ define('NOREQUIREMENU', '1');
+}
+// If there is no need to load and show top and left menu
+if (!defined("NOLOGIN")) {
+ define("NOLOGIN", '1');
+}
+if (!defined('NOIPCHECK')) {
+ define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip
+}
+if (!defined('NOBROWSERNOTIF')) {
+ define('NOBROWSERNOTIF', '1');
+}
+require '../../../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/product/inventory/class/inventory.class.php';
+
diff --git a/htdocs/product/inventory/inventory.php b/htdocs/product/inventory/inventory.php
index 9a4d61209ba..9445e7896c6 100644
--- a/htdocs/product/inventory/inventory.php
+++ b/htdocs/product/inventory/inventory.php
@@ -542,6 +542,7 @@ if ($object->id > 0) {
print '';
}
include DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
$formother = new FormOther($db);
- print $formother->getHTMLScannerForm();
+ print $formother->getHTMLScannerForm("barcodescannerjs");
}
//Call method to undo changes in real qty