--- /tmp/dsg/dolibarr/htdocs/takepos/ajax/github_ajax.php +++ /tmp/dsg/dolibarr/htdocs/takepos/ajax/client_ajax.php @@ -1,6 +1,5 @@ <?php /* Copyright (C) 2001-2004 Andreu Bisquerra <jove@bisquerra.com> -/* Copyright (C) 2020 Thibault FOUCART <support@ptibogxiv.net> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,13 +29,12 @@ if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); -if (!defined('NOBROWSERNOTIF')) define('NOBROWSERNOTIF', '1'); require '../../main.inc.php'; // Load $user and permissions require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $category = GETPOST('category', 'alpha'); -$action = GETPOST('action', 'aZ09'); +$action = GETPOST('action', 'alpha'); $term = GETPOST('term', 'alpha'); $id = GETPOST('id', 'int'); @@ -50,44 +48,29 @@ */ if ($action == 'getProducts') { - $object = new Categorie($db); + $object = new Categorie($db); if ($category == "supplements") $category = $conf->global->TAKEPOS_SUPPLEMENTS_CATEGORY; - $result = $object->fetch($category); - if ($result > 0) - { - $prods = $object->getObjectsInCateg("product", 0, 0, 0, $conf->global->TAKEPOS_SORTPRODUCTFIELD, 'ASC'); - // Removed properties we don't need - if (is_array($prods) && count($prods) > 0) - { - foreach ($prods as $prod) - { - unset($prod->fields); - unset($prod->db); - } - } - echo json_encode($prods); - } else { - echo 'Failed to load category with id='.$category; - } -} elseif ($action == 'search' && $term != '') { - // Change thirdparty with barcode - require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; - - $thirdparty = new Societe($db); - $result = $thirdparty->fetch('', '', '', $term); - - if ($result && $thirdparty->id > 0) { - $rows = array(); - $rows[] = array( - 'rowid' => $thirdparty->id, - 'name' => $thirdparty->name, - 'barcode' => $thirdparty->barcode, - 'object' => 'thirdparty' - ); - echo json_encode($rows); - exit; - } - + $result = $object->fetch($category); + if ($result > 0) + { + $prods = $object->getObjectsInCateg("product", 0, 0, 0, $conf->global->TAKEPOS_SORTPRODUCTFIELD, 'ASC'); + // Removed properties we don't need + if (is_array($prods) && count($prods) > 0) + { + foreach ($prods as $prod) + { + unset($prod->fields); + unset($prod->db); + } + } + echo json_encode($prods); + } + else + { + echo 'Failed to load category with id='.$category; + } +} +elseif ($action == 'search' && $term != '') { // Define $filteroncategids, the filter on category ID if there is a Root category defined. $filteroncategids = ''; if ($conf->global->TAKEPOS_ROOT_CATEGORY_ID > 0) { // A root category is defined, we must filter on products inside this category tree @@ -102,54 +85,54 @@ } } - $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 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); - $resql = $db->query($sql); + $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 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); + $resql = $db->query($sql); if ($resql) { - $rows = array(); - 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, - 'object' => 'product' - //'price_formated' => price(price2num($obj->price, 'MU'), 1, $langs, 1, -1, -1, $conf->currency) - ); - } - echo json_encode($rows); - } else { + $rows = array(); + 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); + } + else { echo 'Failed to search product : '.$db->lasterror(); } } elseif ($action == "opendrawer" && $term != '') { - require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; - $printer = new dolReceiptPrinter($db); - // check printer for terminal - if ($conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term} > 0) { - $printer->initPrinter($conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term}); - // open cashdrawer - $printer->pulse(); - $printer->close(); - } + require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; + $printer = new dolReceiptPrinter($db); + // check printer for terminal + if ($conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term} > 0) { + $printer->initPrinter($conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term}); + // open cashdrawer + $printer->pulse(); + $printer->close(); + } } elseif ($action == "printinvoiceticket" && $term != '' && $id > 0 && !empty($user->rights->facture->lire)) { - require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; - require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; - $printer = new dolReceiptPrinter($db); - // check printer for terminal - if (($conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term} > 0 || $conf->global->TAKEPOS_PRINT_METHOD == "takeposconnector") && $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$term} > 0) { - $object = new Facture($db); - $object->fetch($id); - $ret = $printer->sendToPrinter($object, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$term}, $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term}); - } + require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; + require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; + $printer = new dolReceiptPrinter($db); + // check printer for terminal + if ($conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term} > 0 && $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$term} > 0) { + $object = new Facture($db); + $object->fetch($id); + $ret = $printer->sendToPrinter($object, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$term}, $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term}); + } } elseif ($action == 'getInvoice') { require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; @@ -163,6 +146,6 @@ $place = GETPOST('place', 'alpha'); require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; - $printer = new dolReceiptPrinter($db); - $printer->sendToPrinter($object, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$term}, $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term}); + $printer = new dolReceiptPrinter($db); + $printer->sendToPrinter($object, $conf->global->{'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$term}, $conf->global->{'TAKEPOS_PRINTER_TO_USE'.$term}); }