31require
'../../main.inc.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
41require_once DOL_DOCUMENT_ROOT.
'/product/class/html.formproduct.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/lib/pdf.lib.php';
43require_once DOL_DOCUMENT_ROOT.
'/blockedlog/lib/blockedlog.lib.php';
44require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
45require_once DOL_DOCUMENT_ROOT.
"/core/lib/takepos.lib.php";
46require_once DOL_DOCUMENT_ROOT.
'/stripe/class/stripe.class.php';
50if (
GETPOST(
'CASHDESK_ID_THIRDPARTY'.$terminal.
'_id',
'alpha')) {
51 $_GET[
'CASHDESK_ID_THIRDPARTY'.$terminal] =
GETPOST(
'CASHDESK_ID_THIRDPARTY'.$terminal.
'_id',
'alpha');
52 $_POST[
'CASHDESK_ID_THIRDPARTY'.$terminal] =
GETPOST(
'CASHDESK_ID_THIRDPARTY'.$terminal.
'_id',
'alpha');
53 $_REQUEST[
'CASHDESK_ID_THIRDPARTY'.$terminal] =
GETPOST(
'CASHDESK_ID_THIRDPARTY'.$terminal.
'_id',
'alpha');
61$langs->loadLangs(array(
"admin",
"cashdesk",
"printing",
"receiptprinter"));
63$sql =
"SELECT code, libelle as label FROM ".MAIN_DB_PREFIX.
"c_paiement";
64$sql .=
" WHERE entity IN (".getEntity(
'c_paiement').
")";
65$sql .=
" AND active = 1";
66$sql .=
" ORDER BY libelle";
67$resql = $db->query($sql);
70 while ($obj = $db->fetch_object($resql)) {
71 array_push($paiements, $obj);
75$terminaltouse = $terminal;
84if (
GETPOST(
'action',
'alpha') ==
'set') {
87 $res =
dolibarr_set_const($db,
"TAKEPOS_TERMINAL_NAME_".$terminaltouse, (!empty(
GETPOST(
'terminalname'.$terminaltouse,
'restricthtml')) ?
GETPOST(
'terminalname'.$terminaltouse,
'restricthtml') : $langs->trans(
"TerminalName", $terminaltouse)),
'chaine', 0,
'',
$conf->entity);
94 if (
GETPOSTISSET(
'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse)) {
95 $res =
dolibarr_set_const($db,
"CASHDESK_ID_BANKACCOUNT_CASH".$terminaltouse, (
GETPOST(
'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse,
'alpha') > 0 ?
GETPOST(
'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse,
'alpha') :
''),
'chaine', 0,
'',
$conf->entity);
97 if (
GETPOSTISSET(
'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse)) {
98 $res =
dolibarr_set_const($db,
"CASHDESK_ID_BANKACCOUNT_CHEQUE".$terminaltouse, (
GETPOST(
'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse,
'alpha') > 0 ?
GETPOST(
'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse,
'alpha') :
''),
'chaine', 0,
'',
$conf->entity);
100 if (
GETPOSTISSET(
'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse)) {
101 $res =
dolibarr_set_const($db,
"CASHDESK_ID_BANKACCOUNT_CB".$terminaltouse, (
GETPOST(
'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse,
'alpha') > 0 ?
GETPOST(
'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse,
'alpha') :
''),
'chaine', 0,
'',
$conf->entity);
103 if (
GETPOSTISSET(
'CASHDESK_ID_BANKACCOUNT_STRIPETERMINAL'.$terminaltouse)) {
104 $res =
dolibarr_set_const($db,
"CASHDESK_ID_BANKACCOUNT_STRIPETERMINAL".$terminaltouse,
GETPOST(
'CASHDESK_ID_BANKACCOUNT_STRIPETERMINAL'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
106 if (
GETPOSTISSET(
'CASHDESK_ID_BANKACCOUNT_SUMUP'.$terminaltouse)) {
107 $res =
dolibarr_set_const($db,
"CASHDESK_ID_BANKACCOUNT_SUMUP".$terminaltouse, (
GETPOST(
'CASHDESK_ID_BANKACCOUNT_SUMUP'.$terminaltouse,
'alpha') > 0 ?
GETPOST(
'CASHDESK_ID_BANKACCOUNT_SUMUP'.$terminaltouse,
'alpha') :
''),
'chaine', 0,
'',
$conf->entity);
109 foreach ($paiements as $modep) {
110 if (in_array($modep->code, array(
'LIQ',
'CB',
'CHQ'))) {
113 $name =
"CASHDESK_ID_BANKACCOUNT_".$modep->code.$terminaltouse;
118 if (
GETPOSTISSET(
'CASHDESK_ID_WAREHOUSE'.$terminaltouse)) {
119 $res =
dolibarr_set_const($db,
"CASHDESK_ID_WAREHOUSE".$terminaltouse, (
GETPOST(
'CASHDESK_ID_WAREHOUSE'.$terminaltouse,
'alpha') > 0 ?
GETPOST(
'CASHDESK_ID_WAREHOUSE'.$terminaltouse,
'alpha') :
''),
'chaine', 0,
'',
$conf->entity);
121 if (
GETPOSTISSET(
'CASHDESK_NO_DECREASE_STOCK'.$terminaltouse)) {
122 $res =
dolibarr_set_const($db,
"CASHDESK_NO_DECREASE_STOCK".$terminaltouse,
GETPOST(
'CASHDESK_NO_DECREASE_STOCK'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
124 if (
GETPOSTISSET(
'TAKEPOS_PRINTER_TO_USE'.$terminaltouse)) {
125 $res =
dolibarr_set_const($db,
"TAKEPOS_PRINTER_TO_USE".$terminaltouse,
GETPOST(
'TAKEPOS_PRINTER_TO_USE'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
127 if (
GETPOSTISSET(
'TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminaltouse)) {
128 $res =
dolibarr_set_const($db,
"TAKEPOS_ORDER_PRINTER1_TO_USE".$terminaltouse,
GETPOST(
'TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
130 if (
GETPOSTISSET(
'TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminaltouse)) {
131 $res =
dolibarr_set_const($db,
"TAKEPOS_ORDER_PRINTER2_TO_USE".$terminaltouse,
GETPOST(
'TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
133 if (
GETPOSTISSET(
'TAKEPOS_ORDER_PRINTER3_TO_USE'.$terminaltouse)) {
134 $res =
dolibarr_set_const($db,
"TAKEPOS_ORDER_PRINTER3_TO_USE".$terminaltouse,
GETPOST(
'TAKEPOS_ORDER_PRINTER3_TO_USE'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
136 if (
GETPOSTISSET(
'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminaltouse)) {
137 $res =
dolibarr_set_const($db,
"TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES".$terminaltouse,
GETPOST(
'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
139 if (
GETPOSTISSET(
'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminaltouse)) {
140 $res =
dolibarr_set_const($db,
"TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS".$terminaltouse,
GETPOST(
'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminaltouse,
'alpha'),
'chaine', 0,
'',
$conf->entity);
143 if (
GETPOSTISSET(
'CASHDESK_READER_KEYCODE_FOR_ENTER'.$terminaltouse)) {
144 $res =
dolibarr_set_const($db,
'CASHDESK_READER_KEYCODE_FOR_ENTER'.$terminaltouse, (
GETPOSTINT(
'CASHDESK_READER_KEYCODE_FOR_ENTER'.$terminaltouse) > 0 ?
GETPOSTINT(
'CASHDESK_READER_KEYCODE_FOR_ENTER'.$terminaltouse) :
''),
'chaine', 0,
'',
$conf->entity);
153 $res =
dolibarr_set_const($db,
'TAKEPOS_HEADER'.$terminaltouse,
GETPOST(
'TAKEPOS_HEADER'.$terminaltouse,
'restricthtml'),
'chaine', 0,
'',
$conf->entity);
156 $res =
dolibarr_set_const($db,
'TAKEPOS_FOOTER'.$terminaltouse,
GETPOST(
'TAKEPOS_FOOTER'.$terminaltouse,
'restricthtml'),
'chaine', 0,
'',
$conf->entity);
167 setEventMessages($langs->trans(
"SetupSaved"),
null,
'mesgs');
170 setEventMessages($langs->trans(
"Error"),
null,
'errors');
179$form =
new Form($db);
182llxHeader(
'', $langs->trans(
"CashDeskSetup"),
'',
'', 0, 0,
'',
'',
'',
'mod-takepos page-admin_terminal');
184$linkback =
'<a href="'.dolBuildUrl(DOL_URL_ROOT.
'/admin/modules.php', [
'restore_lastsearch_values' => 1]).
'">'.img_picto($langs->trans(
"BackToModuleList"),
'back',
'class="pictofixedwidth"').
'<span class="hideonsmartphone">'.$langs->trans(
"BackToModuleList").
'</span></a>';
186print
load_fiche_titre($langs->trans(
"CashDeskSetup").
' (TakePOS)', $linkback,
'title_setup');
193print
'<form action="'.$_SERVER[
"PHP_SELF"].
'?terminal='.(empty($terminal) ? 1 : $terminal).
'" method="post">';
194print
'<input type="hidden" name="token" value="'.newToken().
'">';
195print
'<input type="hidden" name="action" value="set">';
197print
'<div class="div-table-responsive">';
198print
'<table class="noborder centpercent">';
199print
'<tr class="liste_titre">';
200print
'<td>'.$langs->trans(
"Parameters").
'</td><td></td>';
203print
'<tr class="oddeven"><td class="fieldrequired">'.$langs->trans(
"TerminalNameDesc").
'</td>';
205print
'<input type="text" name="terminalname'.$terminal.
'" value="'.
getDolGlobalString(
"TAKEPOS_TERMINAL_NAME_".$terminal, $langs->trans(
"TerminalName", $terminal)).
'" >';
210print
'<tr class="oddeven"><td>';
211print $form->textwithpicto($langs->trans(
"TakeposTerminalDisabled"), $langs->trans(
"TakeposTerminalDisabledHelp"));
214print ajax_constantonoff(
"TAKEPOS_TERMINAL_DISABLED_".$terminal, array(),
$conf->entity, 0, 0, 1, 0);
217print
'<tr class="oddeven"><td>'.$langs->trans(
"ForbidSalesToTheDefaultCustomer").
'</td>';
219print ajax_constantonoff(
"TAKEPOS_FORBID_SALES_TO_DEFAULT_CUSTOMER", array(),
$conf->entity, 0, 0, 1, 0);
223 print
'<tr class="oddeven"><td class="fieldrequired">'.$langs->trans(
"CashDeskThirdPartyForSell").
'</td>';
225 print img_picto(
'',
'company',
'class="pictofixedwidth"');
226 $filter =
'((s.client:IN:1,2,3) AND (s.status:=:1))';
227 print $form->select_company(
getDolGlobalInt(
'CASHDESK_ID_THIRDPARTY'.$terminaltouse),
'socid', $filter, 1, 0, 0, array(), 0,
'maxwidth500 widthcentpercentminusx');
233 print
'<tr class="oddeven"><td>'.$langs->trans(
"CashDeskBankAccountForSell").
'</td>';
235 print img_picto(
'',
'bank_account',
'class="pictofixedwidth"');
236 print $form->select_comptes(
getDolGlobalInt(
'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse),
'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse, 0,
"(courant:=:2)", 1,
'', 0,
'maxwidth500 widthcentpercentminusxx', 1);
237 print
' <a href="'.DOL_URL_ROOT.
'/compta/bank/card.php?action=create&type=2&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?terminal='.$terminal).
'"><span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans(
"NewBankAccount").
'"></span></a>';
242 print
'<tr class="oddeven"><td>'.$langs->trans(
"CashDeskBankAccountForCheque").
'</td>';
244 print img_picto(
'',
'bank_account',
'class="pictofixedwidth"');
245 print $form->select_comptes(
getDolGlobalInt(
'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse),
'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse, 0,
"(courant:=:1)", 1,
'', 0,
'maxwidth500 widthcentpercentminusxx', 1);
246 print
' <a href="'.DOL_URL_ROOT.
'/compta/bank/card.php?action=create&type=1&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?terminal='.$terminal).
'"><span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans(
"NewBankAccount").
'"></span></a>';
247 if (
getDolGlobalInt(
'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse)) {
251 print
'<tr class="oddeven"><td>'.$langs->trans(
"CashDeskBankAccountForCB").
'</td>';
253 print img_picto(
'',
'bank_account',
'class="pictofixedwidth"');
254 print $form->select_comptes(
getDolGlobalInt(
'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse),
'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse, 0,
"(courant:=:1)", 1,
'', 0,
'maxwidth500 widthcentpercentminusxx', 1);
255 print
' <a href="'.DOL_URL_ROOT.
'/compta/bank/card.php?action=create&type=1&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?terminal='.$terminal).
'"><span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans(
"NewBankAccount").
'"></span></a>';
262 print
'<tr class="oddeven"><td>'.$langs->trans(
"CashDeskBankAccountForStripeTerminal").
'</td>';
264 $service =
'StripeTest';
267 $service =
'StripeLive';
270 global $stripearrayofkeysbyenv;
271 $site_account = $stripearrayofkeysbyenv[$servicestatus][
'secret_key'];
272 \Stripe\Stripe::setApiKey($site_account);
274 $service =
'StripeTest';
275 $servicestatus =
'0';
276 dol_htmloutput_mesg($langs->trans(
'YouAreCurrentlyInSandboxMode',
'Stripe'), [],
'warning');
278 $service =
'StripeLive';
279 $servicestatus =
'1';
281 $stripe =
new Stripe($db);
282 $stripeacc = $stripe->getStripeAccount($service);
284 $readers = \Stripe\Terminal\Reader::all(
null, array(
"location" =>
getDolGlobalString(
'STRIPE_LOCATION'),
"stripe_account" => $stripeacc));
286 $readers = \Stripe\Terminal\Reader::all(
null, array(
"location" =>
getDolGlobalString(
'STRIPE_LOCATION')));
290 $reader[
""] = $langs->trans(
"NoReader");
291 foreach ($readers as $tmpreader) {
292 $reader[$tmpreader->id] = $tmpreader->label.
' ('.$tmpreader->status.
')';
294 print $form->selectarray(
'CASHDESK_ID_BANKACCOUNT_STRIPETERMINAL'.$terminaltouse, $reader,
getDolGlobalString(
'CASHDESK_ID_BANKACCOUNT_STRIPETERMINAL'.$terminaltouse));
299 print
'<tr class="oddeven"><td>'.$langs->trans(
"CashDeskBankAccountForSumup").
'</td>';
301 print img_picto(
'',
'bank_account',
'class="pictofixedwidth"');
302 print $form->select_comptes(
getDolGlobalInt(
'CASHDESK_ID_BANKACCOUNT_SUMUP'.$terminaltouse),
'CASHDESK_ID_BANKACCOUNT_SUMUP'.$terminaltouse, 0,
"(courant:=:1)", 1,
'', 0,
'maxwidth500 widthcentpercentminusxx', 1);
303 print
' <a href="'.DOL_URL_ROOT.
'/compta/bank/card.php?action=create&type=1&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?terminal='.$terminal).
'"><span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans(
"NewBankAccount").
'"></span></a>';
311 foreach ($paiements as $modep) {
312 if (in_array($modep->code, array(
'LIQ',
'CB',
'CHQ'))) {
315 $name =
"CASHDESK_ID_BANKACCOUNT_".$modep->code.$terminaltouse;
316 print
'<tr class="oddeven"><td>'.$langs->trans(
"CashDeskBankAccountFor").
' '.$langs->trans($modep->label).
'</td>';
321 $cour = preg_match(
'/^LIQ.*/', $modep->code) ? 2 : 1;
323 print
'<span class="opacitymedium">'.$form->textwithpicto($langs->trans(
"NotAvailable"), $langs->trans(
"NotAvailableForCountryWhenModuleIsOn",
$mysoc->country_code, $langs->transnoentitiesnoconv(
'Module3200Name'))).
'</span>';
325 print img_picto(
'',
'bank_account',
'class="pictofixedwidth"');
326 print $form->select_comptes(
getDolGlobalInt($name), $name, 0,
"(courant:=:".((
int) $cour).
")", 1,
'', 0,
'maxwidth500 widthcentpercentminusxx', 1);
327 print
' <a href="'.DOL_URL_ROOT.
'/compta/bank/card.php?action=create&type=1&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?terminal='.$terminal).
'"><span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans(
"NewBankAccount").
'"></span></a>';
334 print
'<tr class="oddeven"><td>';
335 print $form->textwithpicto($langs->trans(
"CashDeskDoNotDecreaseStock"), $langs->trans(
"CashDeskDoNotDecreaseStockHelp"));
339 print ajax_constantonoff(
'CASHDESK_NO_DECREASE_STOCK'.$terminal, array(),
$conf->entity, 0, 0, 1, 0);
346 print
'<tr class="oddeven"><td>';
348 print
'<span class="fieldrequired">';
350 print $langs->trans(
"CashDeskIdWareHouse");
355 print img_warning($langs->trans(
"DisableStockChange").
' - '.$langs->trans(
"NoWarehouseDefinedForTerminal"));
358 print
'<td class="minwidth300">';
360 print img_picto(
'',
'stock',
'class="pictofixedwidth"');
361 print $formproduct->selectWarehouses(
getDolGlobalString(
'CASHDESK_ID_WAREHOUSE'.$terminal),
'CASHDESK_ID_WAREHOUSE'.$terminal,
'', 1, $disabled, 0,
'', 0, 0, array(),
'maxwidth500 widthcentpercentminusxx');
362 print
' <a href="'.DOL_URL_ROOT.
'/product/stock/card.php?action=create&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?&terminal='.$terminal).
'"><span class="fa fa-plus-circle valignmiddle"></span></a>';
364 print
'<span class="opacitymedium">'.$langs->trans(
"StockDecreaseForPointOfSaleDisabled").
'</span>';
370 print
'<tr class="oddeven"><td>'.$langs->trans(
'CashDeskForceDecreaseStockLabel').
'</td>';
372 print
'<span class="opacitymedium">'.$langs->trans(
'CashDeskForceDecreaseStockDesc').
'</span>';
378 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formprojet.class.php';
380 print
'<tr class="oddeven"><td>'.$langs->trans(
"CashDeskDefaultProject").
'</td><td>';
381 print img_picto(
'',
'project',
'class="pictofixedwidth"');
384 print $formproject->select_projects(-1, (
string) $projectid,
'projectid', 0, 0, 1, 1, 0, 0, 0,
'', 1, 1,
'maxwidth500 widthcentpercentminusxx');
388print
'<tr class="oddeven"><td>'.$langs->trans(
'CashDeskReaderKeyCodeForEnter').
'</td>';
390print
'<input type="text" class="width50" name="CASHDESK_READER_KEYCODE_FOR_ENTER'.$terminaltouse.
'" value="'.
getDolGlobalString(
'CASHDESK_READER_KEYCODE_FOR_ENTER'.$terminaltouse).
'" />';
395 print
'<tr class="oddeven"><td>';
396 print $langs->trans(
"BillsNumberingModule");
397 print
'<td colspan="2">';
398 $array = array(0 => $langs->trans(
"Default"));
399 $dirmodels = array_merge(array(
'/'), (array)
$conf->modules_parts[
'models']);
400 foreach ($dirmodels as $reldir) {
403 $handle = opendir($dir);
404 if (is_resource($handle)) {
405 while (($file = readdir($handle)) !==
false) {
406 if (!is_dir($dir.$file) || (
dol_substr($file, 0, 1) !=
'.' &&
dol_substr($file, 0, 3) !=
'CVS')) {
408 $classname = preg_replace(
'/\.php$/',
'', $file);
410 if (!is_file($dir.$filebis)) {
411 $filebis = $file.
"/".$file.
".modules.php";
412 $classname =
"mod_facture_".$file;
416 preg_match(
'/\-(.*)_(.*)$/', $classname, $reg);
417 if (!empty($reg[2]) && $reg[2] != strtoupper(
$mysoc->country_code)) {
421 $classname = preg_replace(
'/\-.*$/',
'', $classname);
422 if (!class_exists($classname) && is_readable($dir.$filebis) && (preg_match(
'/mod_/', $filebis) || preg_match(
'/mod_/', $classname)) &&
dol_substr($filebis,
dol_strlen($filebis) - 3, 3) ==
'php') {
424 require_once $dir.$filebis;
427 '@phan-var-force ModeleNumRefFactures $module';
438 $array[preg_replace(
'/\-.*$/',
'', preg_replace(
'/\.php$/',
'', $file))] = preg_replace(
'/\-.*$/',
'', preg_replace(
'/mod_facture_/',
'', preg_replace(
'/\.php$/',
'', $file)));
447 print $form->selectarray(
'TAKEPOS_ADDON'.$terminaltouse, $array,
getDolGlobalString(
'TAKEPOS_ADDON'.$terminaltouse,
'0'), 0);
448 print
"</td></tr>\n";
453$customprinterallowed =
true;
455$customprinttemplateallowed =
true;
456include_once DOL_DOCUMENT_ROOT.
'/blockedlog/lib/blockedlog.lib.php';
458 $customprinterallowed =
false;
459 $customprinttemplateallowed =
false;
464 require_once DOL_DOCUMENT_ROOT.
'/takepos/class/dolreceiptprinter.class.php';
467 $printer->listprinters();
469 foreach ($printer->listprinters as $key => $value) {
470 $printers[$value[
'rowid']] = $value[
'name'];
472 print
'<tr class="oddeven"><td>'.$langs->trans(
"MainPrinterToUse");
473 print
' <span class="opacitymedium">('.$langs->trans(
"MainPrinterToUseMore").
')</span>';
476 if (!$customprinterallowed) {
477 print
'<span class="opacitymedium">'.$form->textwithpicto($langs->trans(
"NotAvailable"), $langs->trans(
"NotAvailableForCountryWhenModuleIsOn",
$mysoc->country_code, $langs->transnoentitiesnoconv(
'Module3200Name'))).
'</span>';
479 print $form->selectarray(
'TAKEPOS_PRINTER_TO_USE'.$terminal, $printers,
getDolGlobalInt(
'TAKEPOS_PRINTER_TO_USE'.$terminal), 1);
484 print
'<tr class="oddeven"><td>'.$langs->trans(
"OrderPrinterToUse").
' - '.$langs->trans(
"KitchenPrinter").
' 1</td>';
486 print $form->selectarray(
'TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminal, $printers,
getDolGlobalInt(
'TAKEPOS_ORDER_PRINTER1_TO_USE'.$terminal), 1);
488 print
'<tr class="oddeven"><td>'.$langs->trans(
"OrderPrinterToUse").
' - '.$langs->trans(
"KitchenPrinter").
' 2</td>';
490 print $form->selectarray(
'TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminal, $printers,
getDolGlobalInt(
'TAKEPOS_ORDER_PRINTER2_TO_USE'.$terminal), 1);
492 print
'<tr class="oddeven"><td>'.$langs->trans(
"OrderPrinterToUse").
' - '.$langs->trans(
"KitchenPrinter").
' 3</td>';
494 print $form->selectarray(
'TAKEPOS_ORDER_PRINTER3_TO_USE'.$terminal, $printers,
getDolGlobalInt(
'TAKEPOS_ORDER_PRINTER3_TO_USE'.$terminal), 1);
501 require_once DOL_DOCUMENT_ROOT.
'/takepos/class/dolreceiptprinter.class.php';
503 $printer->listPrintersTemplates();
504 $templates = array();
505 foreach ($printer->listprinterstemplates as $key => $value) {
506 $templates[$value[
'rowid']] = $value[
'name'];
508 print
'<tr class="oddeven"><td>'.$langs->trans(
"MainTemplateToUse");
509 print
' <span class="opacitymedium">('.$langs->trans(
"MainTemplateToUseMore").
')</span>';
510 if ($customprinttemplateallowed) {
511 print
' (<a href="'.DOL_URL_ROOT.
'/admin/receiptprinter.php?mode=template">'.$langs->trans(
"SetupReceiptTemplate").
'</a>)</td>';
514 if (!$customprinttemplateallowed) {
515 print
'<span class="opacitymedium">'.$form->textwithpicto($langs->trans(
"NotAvailable"), $langs->trans(
"NotAvailableForCountryWhenModuleIsOn",
$mysoc->country_code, $langs->transnoentitiesnoconv(
'Module3200Name'))).
'</span>';
517 print $form->selectarray(
'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal, $templates,
getDolGlobalInt(
'TAKEPOS_TEMPLATE_TO_USE_FOR_INVOICES'.$terminal), 1, 0, 0,
'', 0, 0, 0,
'',
'minwidth150');
521 if (
getDolGlobalInt(
'TAKEPOS_ORDER_PRINTERS') && $orderprinterallowed) {
522 print
'<tr class="oddeven"><td>'.$langs->trans(
"OrderTemplateToUse").
'</td>';
524 print $form->selectarray(
'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal, $templates,
getDolGlobalInt(
'TAKEPOS_TEMPLATE_TO_USE_FOR_ORDERS'.$terminal), 1, 0, 0,
'', 0, 0, 0,
'',
'minwidth150');
532print $form->buttonsSaveCancel(
"Save",
'');
539$substitutionarray[
'__(AnyTranslationKey)__'] = $langs->trans(
'Translation');
540$htmltext =
'<i>'.$langs->trans(
'AvailableVariables').
':<br>';
541foreach ($substitutionarray as $key => $val) {
542 $htmltext .= $key.
'<br>';
549print
'<div class="div-table-responsive-no-min">';
550print
'<table class="noborder centpercent">';
551print
'<tr class="liste_titre">';
552print
'<td>'.$langs->trans(
"Parameters").
'</td><td>'.$langs->trans(
'Value').
'</td>';
556print
'<tr class="oddeven">';
558print $form->textwithpicto($langs->trans(
'Header'), $htmltext, 1,
'help',
'', 0, 2,
'freetexttooltip').
'<br>';
561$variablename =
'TAKEPOS_HEADER'.$terminaltouse;
563 print
'<textarea name="'.$variablename.
'" class="flat" cols="120">'.
getDolGlobalString($variablename).
'</textarea>';
565 include_once DOL_DOCUMENT_ROOT.
'/core/class/doleditor.class.php';
567 print $doleditor->Create();
572print
'<tr class="oddeven">';
574print $form->textwithpicto($langs->trans(
'Footer'), $htmltext, 1,
'help',
'', 0, 2,
'freetexttooltip').
'<br>';
577$variablename =
'TAKEPOS_FOOTER'.$terminaltouse;
579 print
'<textarea name="'.$variablename.
'" class="flat" cols="120">'.
getDolGlobalString($variablename).
'</textarea>';
581 include_once DOL_DOCUMENT_ROOT.
'/core/class/doleditor.class.php';
583 print $doleditor->Create();
591 print
info_admin($langs->trans(
"AtLeastOneDefaultBankAccountMandatory"), 0, 0,
'error');
594print $form->buttonsSaveCancel(
"Save",
'');
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
isALNERunningVersion($blockedlogusagealreadychecked=0, $blockedlogmoduleonalreadychecked=0)
Return if the application is executed with the LNE requirements on.
Class to manage a WYSIWYG editor.
Stripe class @TODO No reason to extend CommonObject.
Class to manage Receipt Printers.
if(! $sortfield) if(! $sortorder) $module
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
dol_substr($string, $start, $length=null, $stringencoding='', $trunconbytes=0)
Make a substring.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
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_htmloutput_mesg($mesgstring='', $mesgarray=array(), $style='ok', $keepembedded=0)
Print formatted messages to output (Used to show messages on html output).
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='', $textonpictotooltip='', $cssfordropdown='info_admin')
Show information in HTML for admin users or standard users.
pdf_getSubstitutionArray($outputlangs, $exclude=null, $object=null, $onlykey=0, $include=null)
Return array of possible substitutions for PDF content (without external module substitutions).
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.
takepos_admin_prepare_head()
Prepare array with list of tabs.