FIX Autoadd product when barcode match

Show barcode value in tooltips
This commit is contained in:
Laurent Destailleur 2020-03-16 18:04:22 +01:00
parent 1212a63365
commit ffc861d4e2
12 changed files with 129 additions and 15 deletions

View File

@ -85,10 +85,10 @@ elseif ($action == 'search' && $term != '') {
}
}
$sql = 'SELECT rowid, ref, label, tosell, tobuy FROM '.MAIN_DB_PREFIX.'product as p';
$sql = 'SELECT rowid, ref, label, tosell, tobuy, barcode, price FROM '.MAIN_DB_PREFIX.'product as p';
$sql .= ' WHERE entity IN ('.getEntity('product').')';
if ($filteroncategids) {
$sql.= ' AND rowid IN (SELECT DISTINCT fk_product FROM '.MAIN_DB_PREFIX.'categorie_product WHERE fk_categorie IN ('.$filteroncategids.'))';
$sql.= ' AND EXISTS (SELECT cp.fk_product FROM '.MAIN_DB_PREFIX.'categorie_product as cp WHERE cp.fk_product = p.rowid AND cp.fk_categorie IN ('.$filteroncategids.'))';
}
$sql .= ' AND tosell = 1';
$sql .= natural_search(array('ref', 'label', 'barcode'), $term);
@ -96,8 +96,17 @@ elseif ($action == 'search' && $term != '') {
if ($resql)
{
$rows = array();
while ($row = $db->fetch_object($resql)) {
$rows[] = $row;
while ($obj = $db->fetch_object($resql)) {
$rows[] = array(
'rowid' => $obj->rowid,
'ref' => $obj->ref,
'label' => $obj->label,
'tosell' => $obj->tosell,
'tobuy' => $obj->tobuy,
'barcode' => $obj->barcode,
'price' => $obj->price
//'price_formated' => price(price2num($obj->price, 'MU'), 1, $langs, 1, -1, -1, $conf->currency)
);
}
echo json_encode($rows);
}

View File

@ -286,7 +286,7 @@ div.paymentbordline
.row1withhead{
margin: 0 auto;
width: 100%;
height: calc(50% - 50px);
height: calc(45% - 50px);
padding-top: 5px;
}
@ -299,7 +299,7 @@ div.paymentbordline
.row2withhead{
margin: 0 auto;
width: 100%;
height: 50%;
height: 55%;
}
.div1{
@ -488,6 +488,20 @@ div#moreinfo, div#infowarehouse {
padding: 0 8px 0 8px;
}
.productprice {
position: absolute;
top: 5px;
right: 5px;
background: var(--colorbackhmenu1);
color: var(--colortextbackhmenu);
font-size: 2em;
padding: 5px;
border-radius: 2px;
opacity: 0.9;
padding-left: 8px;
padding-right: 8px;
}
@media screen and (min-width: 892px) {
.actionbutton{
@ -561,7 +575,7 @@ div#moreinfo, div#infowarehouse {
}
.row1withhead{
height: calc(50% - 100px);
height: calc(45% - 100px);
}

View File

@ -47,6 +47,15 @@ $place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place
$newname = GETPOST('newname', 'alpha');
$mode = GETPOST('mode', 'alpha');
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/*
* Actions
*/
if ($action == "getTables")
{
$sql = "SELECT rowid, entity, label, leftpos, toppos, floor FROM ".MAIN_DB_PREFIX."takepos_floor_tables where floor=".$floor;
@ -81,6 +90,11 @@ if ($action == "add")
$db->query("update ".MAIN_DB_PREFIX."takepos_floor_tables set label=rowid where label=''"); // No empty table names
}
/*
* View
*/
// Title
$title = 'TakePOS - Dolibarr '.DOL_VERSION;
if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $title = 'TakePOS - '.$conf->global->MAIN_APPLICATION_TITLE;

View File

@ -40,6 +40,10 @@ $place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place
$idline = GETPOST('idline', 'int');
$action = GETPOST('action', 'alpha');
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/*
* View

View File

@ -263,6 +263,8 @@ function LoadProducts(position, issubcat) {
if (currentcat==val.fk_parent) {
$("#prodivdesc"+ishow).show();
$("#prodesc"+ishow).text(val.label);
$("#proprice"+ishow).attr("class", "hidden");
$("#proprice"+ishow).html("");
$("#proimg"+ishow).attr("src","genimg/index.php?query=cat&id="+val.rowid);
$("#prodiv"+ishow).data("rowid",val.rowid);
$("#prodiv"+ishow).data("iscat",1);
@ -281,6 +283,8 @@ function LoadProducts(position, issubcat) {
if (typeof (data[idata]) == "undefined") {
$("#prodivdesc"+ishow).hide();
$("#prodesc"+ishow).text("");
$("#proprice"+ishow).attr("class", "hidden");
$("#proprice"+ishow).html("");
$("#proimg"+ishow).attr("title","");
$("#proimg"+ishow).attr("src","genimg/empty.png");
$("#prodiv"+ishow).data("rowid","");
@ -289,9 +293,17 @@ function LoadProducts(position, issubcat) {
ishow++; //Next product to show after print data product
}
else if ((data[idata]['status']) == "1") { // Only show products with status=1 (for sell)
var titlestring = '<?php echo dol_escape_js($langs->transnoentities('Ref').': '); ?>'+data[idata]['ref'];
<?php
$titlestring = "'".dol_escape_js($langs->transnoentities('Ref').': ')."' + data[idata]['ref']";
$titlestring .= " + ' - ".dol_escape_js($langs->trans("Barcode").': ')."' + data[idata]['barcode']";
?>
var titlestring = <?php echo $titlestring; ?>;
$("#prodivdesc"+ishow).show();
$("#prodesc"+ishow).text(data[parseInt(idata)]['label']);
if (data[parseInt(idata)]['price_formated']) {
$("#proprice"+ishow).attr("class", "productprice");
$("#proprice"+ishow).html(data[parseInt(idata)]['price_formated']);
}
$("#proimg"+ishow).attr("title", titlestring);
$("#proimg"+ishow).attr("src", "genimg/index.php?query=pro&id="+data[idata]['id']);
$("#prodiv"+ishow).data("rowid", data[idata]['id']);
@ -337,6 +349,8 @@ function MoreProducts(moreorless) {
if (typeof (data[idata]) == "undefined") {
$("#prodivdesc"+ishow).hide();
$("#prodesc"+ishow).text("");
$("#proprice"+ishow).attr("class", "");
$("#proprice"+ishow).html("");
$("#proimg"+ishow).attr("src","genimg/empty.png");
$("#prodiv"+ishow).data("rowid","");
ishow++; //Next product to show after print data product
@ -345,6 +359,10 @@ function MoreProducts(moreorless) {
//Only show products with status=1 (for sell)
$("#prodivdesc"+ishow).show();
$("#prodesc"+ishow).text(data[parseInt(idata)]['label']);
if (data[parseInt(idata)]['price_formated']) {
$("#proprice"+ishow).attr("class", "productprice");
$("#proprice"+ishow).html(data[parseInt(idata)]['price_formated']);
}
$("#proimg"+ishow).attr("src","genimg/index.php?query=pro&id="+data[idata]['id']);
$("#prodiv"+ishow).data("rowid",data[idata]['id']);
$("#prodiv"+ishow).data("iscat",0);
@ -462,7 +480,7 @@ function New() {
* return {void}
*/
function Search2(keyCodeForEnter) {
console.log("Search2 Call ajax search to replace products");
console.log("Search2 Call ajax search to replace products keyCodeForEnter="+keyCodeForEnter);
var search = false;
var eventKeyCode = window.event.keyCode;
@ -477,20 +495,37 @@ function Search2(keyCodeForEnter) {
for (i = 0; i < <?php echo $MAXPRODUCT ?>; i++) {
if (typeof (data[i]) == "undefined") {
$("#prodesc" + i).text("");
$("#proprice" + i).attr("class", "hidden");
$("#proprice" + i).html("");
$("#proimg" + i).attr("src", "genimg/empty.png");
$("#prodiv" + i).data("rowid", "");
continue;
}
var titlestring = '<?php echo dol_escape_js($langs->transnoentities('Ref').': '); ?>' + data[i]['ref'];
<?php
$titlestring = "'".dol_escape_js($langs->transnoentities('Ref').': ')."' + data[i]['ref']";
$titlestring .= " + ' - ".dol_escape_js($langs->trans("Barcode").': ')."' + data[i]['barcode']";
?>
var titlestring = <?php echo $titlestring; ?>;
$("#prodesc" + i).text(data[i]['label']);
$("#prodivdesc" + i).show();
if (data[i]['price_formated']) {
$("#proprice" + i).attr("class", "productprice");
$("#proprice" + i).html(data[i]['price_formated']);
}
$("#proimg" + i).attr("title", titlestring);
$("#proimg" + i).attr("src", "genimg/index.php?query=pro&id=" + data[i]['rowid']);
$("#prodiv" + i).data("rowid", data[i]['rowid']);
$("#prodiv" + i).data("iscat", 0);
}
}).always(function (data) {
if ($('#search').val().length > 0 && data.length == 1) ClickProduct(0);
// If there is only 1 answer
if ($('#search').val().length > 0 && data.length == 1) {
console.log($('#search').val()+' - '+data[0]['barcode']);
if ($('#search').val() == data[0]['barcode']) {
console.log("There is only 1 answer with barcode matching the search, so we add the product in basket");
ClickProduct(0);
}
}
});
}
}
@ -924,15 +959,16 @@ if (!empty($conf->global->TAKEPOS_HIDE_HEAD_BAR)) {
<?php
if ($count == ($MAXPRODUCT - 2)) {
//echo '<img class="imgwrapper" src="img/arrow-prev-top.png" height="100%" id="proimg'.$count.'" />';
echo '<span class="fa fa-chevron-left centerinmiddle" style="font-size: 5em;"></span>';
print '<span class="fa fa-chevron-left centerinmiddle" style="font-size: 5em;"></span>';
}
elseif ($count == ($MAXPRODUCT - 1)) {
//echo '<img class="imgwrapper" src="img/arrow-next-top.png" height="100%" id="proimg'.$count.'" />';
echo '<span class="fa fa-chevron-right centerinmiddle" style="font-size: 5em;"></span>';
print '<span class="fa fa-chevron-right centerinmiddle" style="font-size: 5em;"></span>';
}
else
{
echo '<img class="imgwrapper" height="100%" title="" id="proimg'.$count.'">';
print '<div class="" id="proprice'.$count.'"></div>';
print '<img class="imgwrapper" height="100%" title="" id="proimg'.$count.'">';
}
?>
<?php if ($count != ($MAXPRODUCT - 2) && $count != ($MAXPRODUCT - 1)) { ?>

View File

@ -70,6 +70,11 @@ if ($conf->global->TAKEPOS_PHONE_BASIC_LAYOUT == 1 && $conf->browser->layout ==
<script type="text/javascript" src="js/jquery.colorbox-min.js"></script>';
}
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/**
* Abort invoice creationg with a given error message
*

View File

@ -38,6 +38,10 @@ $place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place
$invoiceid = GETPOST('invoiceid', 'int');
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/*
* View

View File

@ -48,6 +48,11 @@ if ($setterminal > 0)
$langs->loadLangs(array("bills", "orders", "commercial", "cashdesk", "receiptprinter"));
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/*
* View
*/

View File

@ -34,6 +34,10 @@ $place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place
$facid = GETPOST('facid', 'int');
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/*
* View

View File

@ -38,6 +38,10 @@ $place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place
$invoiceid = GETPOST('invoiceid', 'int');
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/*
* View

View File

@ -37,6 +37,11 @@ require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
$invoiceid = GETPOST('facid', 'int');
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
/*
* View
*/

View File

@ -1,5 +1,15 @@
<?php
require '../main.inc.php';
if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1');
if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1');
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1');
if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1');
require '../main.inc.php';
if (empty($user->rights->takepos->run)) {
access_forbidden();
}
if (isset($_GET['status'])) {
die(strtoupper($_SESSION['SMP_CURRENT_PAYMENT']));