* Copyright (C) 2024 Frédéric France * Copyright (C) 2025 MDW * * 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 * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/takepos/phone.php * \ingroup takepos * \brief TakePOS page for smartphone to allow a customer to take an order himself. * This page is called by takepos/public/auto_order.php that set INCLUDE_PHONEPAGE_FROM_PUBLIC_PAGE when a customer access to the auto_order page. */ /** * @var Conf $conf * @var DoliDB $db * @var Translate $langs * @var User $user */ //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language //if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language //if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','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'); } if (!defined('INCLUDE_PHONEPAGE_FROM_PUBLIC_PAGE')) { print 'This page must be called by takepos/public/auto_order.php'; exit; } require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; // Decode place if it is an order from a customer phone $place = GETPOSTISSET("key") ? dol_decode(GETPOST('key')) : GETPOST('place', 'aZ09'); $action = GETPOST('action', 'aZ09'); $setterminal = GETPOSTINT('setterminal'); $idproduct = GETPOSTINT('idproduct'); $mobilepage = GETPOST('mobilepage', 'alphanohtml'); // Set when page is loaded by a js .load() if ($setterminal > 0) { $_SESSION["takeposterminal"] = $setterminal; } $langs->loadLangs(array("bills", "orders", "commercial", "cashdesk", "receiptprinter")); /* * View */ $title = 'TakePOS - Dolibarr '.DOL_VERSION; if (getDolGlobalString('MAIN_APPLICATION_TITLE')) { $title = 'TakePOS - ' . getDolGlobalString('MAIN_APPLICATION_TITLE'); } // llxHeader if (empty($mobilepage)) { $head = ' '; $arrayofcss = array( '/takepos/css/phone.css', ); $arrayofjs = array('/takepos/js/jquery.colorbox-min.js'); $disablejs = 0; $disablehead = 0; top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); print ''."\n"; } else { top_htmlhead('', $title); print ''."\n"; } if ($action == "productinfo" && $user->hasRight('takepos', 'run')) { $prod = new Product($db); $prod->fetch($idproduct); print ''; print "
".$prod->label."
"; print ''; print "
".$prod->description; print "
".price($prod->price_ttc, 1, $langs, 1, -1, -1, getDolCurrency()).""; print '
'; } elseif ($action == "editline" && $user->hasRight('takepos', 'run')) { $placeid = GETPOSTINT('placeid'); $selectedline = GETPOSTINT('selectedline'); $invoice = new Facture($db); $invoice->fetch($placeid); foreach ($invoice->lines as $line) { if ($line->id == $selectedline) { $prod = new Product($db); $prod->fetch($line->fk_product); print "".$prod->label."
"; print ''; print "
".$prod->description; print "
".price($prod->price_ttc, 1, $langs, 1, -1, -1, getDolCurrency()).""; print '
'; print ''; print ''; print ''; } } } else { ?>
'.dol_trunc($langs->trans('Categories'), 8, 'right', 'UTF-8').''; print ''; // Do not show the payment link when order done from public page (a customer must not be able to set its order to paid himself) //print ''; ?>
'.$langs->trans('TerminalSelect').''; } } print ''; print ''; $db->close();