dolibarr 19.0.3
receipt.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2008-2011 Laurent Destailleur <eldy@users.sourceforge.net>
3 * Copyright (C) 2011-2017 Juanjo Menent <jmenent@2byte.es>
4 * Copyright (C) 2019 Andreu Bisquerra Gaya <jove@bisquerra.com>
5 * Copyright (C) 2021 Nicolas ZABOURI <info@inovea-conseil.com>
6 * Copyright (C) 2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
28// Load Dolibarr environment
29require '../../main.inc.php'; // Load $user and permissions
30require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
31require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
32require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
33require_once DOL_DOCUMENT_ROOT."/core/lib/takepos.lib.php";
34
35// Security check
36if (!$user->admin) {
38}
39
40$langs->loadLangs(array("admin", "cashdesk", "commercial"));
41
42
43/*
44 * Actions
45 */
46
47if (GETPOST('action', 'alpha') == 'set') {
48 $db->begin();
49
50 $res = dolibarr_set_const($db, "TAKEPOS_HEADER", GETPOST('TAKEPOS_HEADER', 'restricthtml'), 'chaine', 0, '', $conf->entity);
51 $res = dolibarr_set_const($db, "TAKEPOS_FOOTER", GETPOST('TAKEPOS_FOOTER', 'restricthtml'), 'chaine', 0, '', $conf->entity);
52 $res = dolibarr_set_const($db, "TAKEPOS_RECEIPT_NAME", GETPOST('TAKEPOS_RECEIPT_NAME', 'alpha'), 'chaine', 0, '', $conf->entity);
53 $res = dolibarr_set_const($db, "TAKEPOS_PRINT_SERVER", GETPOST('TAKEPOS_PRINT_SERVER', 'alpha'), 'chaine', 0, '', $conf->entity);
54 $res = dolibarr_set_const($db, 'TAKEPOS_PRINT_WITHOUT_DETAILS_LABEL_DEFAULT', GETPOST('TAKEPOS_PRINT_WITHOUT_DETAILS_LABEL_DEFAULT', 'alphanohtml'), 'chaine', 0, '', $conf->entity);
55
56 dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha'));
57
58 if (!($res > 0)) {
59 $error++;
60 }
61
62 if (!$error) {
63 $db->commit();
64 setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
65 } else {
66 $db->rollback();
67 setEventMessages($langs->trans("Error"), null, 'errors');
68 }
69} elseif (GETPOST('action', 'alpha') == 'setmethod') {
70 dolibarr_set_const($db, "TAKEPOS_PRINT_METHOD", GETPOST('value', 'alpha'), 'chaine', 0, '', $conf->entity);
71 // TakePOS connector require ReceiptPrinter module
72 if (getDolGlobalString('TAKEPOS_PRINT_METHOD') == "takeposconnector" && !isModEnabled('receiptprinter')) {
73 activateModule("modReceiptPrinter");
74 }
75}
76
77
78/*
79 * View
80 */
81
82$form = new Form($db);
83$formproduct = new FormProduct($db);
84
85llxHeader('', $langs->trans("CashDeskSetup"));
86
87$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
88print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)', $linkback, 'title_setup');
90print dol_get_fiche_head($head, 'receipt', 'TakePOS', -1, 'cash-register');
91
92print '<form action="'.$_SERVER["PHP_SELF"].'?terminal='.(empty($terminal) ? 1 : $terminal).'" method="post">';
93print '<input type="hidden" name="token" value="'.newToken().'">';
94print '<input type="hidden" name="action" value="set">';
95
96print load_fiche_titre($langs->trans("Receipt"), '', '');
97
98print '<div class="div-table-responsive-no-min">';
99print '<table class="noborder centpercent">';
100print '<tr class="liste_titre">';
101print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
102print "</tr>\n";
103
104// VAT Grouped on ticket
105print '<tr class="oddeven"><td>';
106print $langs->trans('TicketVatGrouped');
107print '<td colspan="2">';
108print ajax_constantonoff("TAKEPOS_TICKET_VAT_GROUPPED", array(), $conf->entity, 0, 0, 1, 0);
109print "</td></tr>\n";
110
111if (getDolGlobalString('TAKEPOS_PRINT_METHOD') == "browser" || getDolGlobalString('TAKEPOS_PRINT_METHOD') == "takeposconnector") {
112 $substitutionarray = pdf_getSubstitutionArray($langs, array('ticket', 'member', 'candidate'), null, 2, array('company', 'user', 'object', 'system'));
113 $substitutionarray['__(AnyTranslationKey)__'] = $langs->trans("Translation");
114
115 $htmltext = '<i>'.$langs->trans("AvailableVariables").':<br>';
116 foreach ($substitutionarray as $key => $val) {
117 $htmltext .= $key.'<br>';
118 }
119 $htmltext .= '</i>';
120
121 print '<tr class="oddeven"><td>';
122 print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices")." - ".$langs->trans("Header"), $htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
123 print '</td><td>';
124 $variablename = 'TAKEPOS_HEADER';
125 if (!getDolGlobalString('PDF_ALLOW_HTML_FOR_FREE_TEXT')) {
126 print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
127 } else {
128 include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
129 $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
130 print $doleditor->Create();
131 }
132 print "</td></tr>\n";
133
134 print '<tr class="oddeven"><td>';
135 print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices")." - ".$langs->trans("Footer"), $htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
136 print '</td><td>';
137 $variablename = 'TAKEPOS_FOOTER';
138 if (!getDolGlobalString('PDF_ALLOW_HTML_FOR_FREE_TEXT')) {
139 print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
140 } else {
141 include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
142 $doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
143 print $doleditor->Create();
144 }
145 print "</td></tr>\n";
146
147 print '<tr class="oddeven"><td><label for="receipt_name">'.$langs->trans("ReceiptName").'</label></td><td>';
148 print '<input name="TAKEPOS_RECEIPT_NAME" id="TAKEPOS_RECEIPT_NAME" class="minwidth200" value="'.getDolGlobalString('TAKEPOS_RECEIPT_NAME').'">';
149 print '</td></tr>';
150
151 // Customer information
152 print '<tr class="oddeven"><td>';
153 print $langs->trans('PrintCustomerOnReceipts');
154 print '<td colspan="2">';
155 print ajax_constantonoff("TAKEPOS_SHOW_CUSTOMER", array(), $conf->entity, 0, 0, 1, 0);
156 print "</td></tr>\n";
157
158 // Print payment method
159 print '<tr class="oddeven"><td>';
160 print $langs->trans('PrintPaymentMethodOnReceipts');
161 print '<td colspan="2">';
162 print ajax_constantonoff("TAKEPOS_PRINT_PAYMENT_METHOD", array(), $conf->entity, 0, 0, 1, 0);
163 print "</td></tr>\n";
164}
165
166// Show price without vat
167print '<tr class="oddeven"><td>';
168print $langs->trans('ShowPriceHTOnReceipt');
169print '<td colspan="2">';
170print ajax_constantonoff("TAKEPOS_SHOW_HT_RECEIPT", array(), $conf->entity, 0, 0, 1, 0);
171print "</td></tr>\n";
172
173if (getDolGlobalString('TAKEPOS_PRINT_METHOD') == "takeposconnector" && filter_var(getDolGlobalString('TAKEPOS_PRINT_SERVER'), FILTER_VALIDATE_URL) == true) {
174 print '<tr class="oddeven"><td>';
175 print $langs->trans('WeighingScale');
176 print '<td colspan="2">';
177 print ajax_constantonoff("TAKEPOS_WEIGHING_SCALE", array(), $conf->entity, 0, 0, 1, 0);
178 print "</td></tr>\n";
179}
180
181if (getDolGlobalString('TAKEPOS_PRINT_METHOD') == "takeposconnector" && filter_var(getDolGlobalString('TAKEPOS_PRINT_SERVER'), FILTER_VALIDATE_URL) == true) {
182 print '<tr class="oddeven"><td>';
183 print $langs->trans('CustomerDisplay');
184 print '<td colspan="2">';
185 print ajax_constantonoff("TAKEPOS_CUSTOMER_DISPLAY", array(), $conf->entity, 0, 0, 1, 0);
186 print "</td></tr>\n";
187}
188
189// Print without details
190print '<tr class="oddeven"><td>';
191print $langs->trans('PrintWithoutDetailsButton');
192print '<td colspan="2">';
193print ajax_constantonoff('TAKEPOS_PRINT_WITHOUT_DETAILS', array(), $conf->entity, 0, 0, 1, 0);
194print "</td></tr>\n";
195if (getDolGlobalString('TAKEPOS_PRINT_WITHOUT_DETAILS')) {
196 print '<tr class="oddeven"><td>';
197 print $langs->trans('PrintWithoutDetailsLabelDefault');
198 print '<td colspan="2">';
199 print '<input type="text" name="TAKEPOS_PRINT_WITHOUT_DETAILS_LABEL_DEFAULT" value="' . getDolGlobalString('TAKEPOS_PRINT_WITHOUT_DETAILS_LABEL_DEFAULT') . '" />';
200 print "</td></tr>\n";
201}
202
203// Auto print tickets
204print '<tr class="oddeven"><td>';
205print $langs->trans("AutoPrintTickets");
206print '<td colspan="2">';
207print ajax_constantonoff("TAKEPOS_AUTO_PRINT_TICKETS", array(), $conf->entity, 0, 0, 1, 0);
208print "</td></tr>\n";
209
210
211print '</table>';
212print '</div>';
213
214print '<br>';
215
216print $form->buttonsSaveCancel("Save", '');
217
218print "</form>\n";
219
220print load_fiche_titre($langs->trans("Preview"), '', '');
221print '<div style="width: 50%; float:center;background-color:#606060">';
222print '<center>';
223print '<iframe id="iframe" allowtransparency="true" style="background: #FFFFFF;" src="../receipt.php" width="80%" height="600"></iframe>';
224print '</center>';
225print '</div>';
226
227print '<br>';
228
229llxFooter();
230$db->close();
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).
activateModule($value, $withdeps=1, $noconfverification=0)
Enable a module.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Definition wrapper.php:55
llxFooter()
Empty footer.
Definition wrapper.php:69
Class to manage a WYSIWYG editor.
Class to manage generation of HTML components Only common components must be here.
Class with static methods for building HTML components related to products Only components common to ...
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
pdf_getSubstitutionArray($outputlangs, $exclude=null, $object=null, $onlykey=0, $include=null)
Return array of possible substitutions for PDF content (without external module substitutions).
Definition pdf.lib.php:762
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.