dolibarr  19.0.0-dev
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
29 require '../../main.inc.php'; // Load $user and permissions
30 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
31 require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
33 require_once DOL_DOCUMENT_ROOT."/core/lib/takepos.lib.php";
34 
35 // Security check
36 if (!$user->admin) {
38 }
39 
40 $langs->loadLangs(array("admin", "cashdesk", "commercial"));
41 
42 
43 /*
44  * Actions
45  */
46 
47 if (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 
85 llxHeader('', $langs->trans("CashDeskSetup"));
86 
87 $linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
88 print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)', $linkback, 'title_setup');
90 print dol_get_fiche_head($head, 'receipt', 'TakePOS', -1, 'cash-register');
91 
92 print '<form action="'.$_SERVER["PHP_SELF"].'?terminal='.(empty($terminal) ? 1 : $terminal).'" method="post">';
93 print '<input type="hidden" name="token" value="'.newToken().'">';
94 print '<input type="hidden" name="action" value="set">';
95 
96 print load_fiche_titre($langs->trans("Receipt"), '', '');
97 
98 print '<div class="div-table-responsive-no-min">';
99 print '<table class="noborder centpercent">';
100 print '<tr class="liste_titre">';
101 print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
102 print "</tr>\n";
103 
104 // VAT Grouped on ticket
105 print '<tr class="oddeven"><td>';
106 print $langs->trans('TicketVatGrouped');
107 print '<td colspan="2">';
108 print ajax_constantonoff("TAKEPOS_TICKET_VAT_GROUPPED", array(), $conf->entity, 0, 0, 1, 0);
109 print "</td></tr>\n";
110 
111 if (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
167 print '<tr class="oddeven"><td>';
168 print $langs->trans('ShowPriceHTOnReceipt');
169 print '<td colspan="2">';
170 print ajax_constantonoff("TAKEPOS_SHOW_HT_RECEIPT", array(), $conf->entity, 0, 0, 1, 0);
171 print "</td></tr>\n";
172 
173 if (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 
181 if (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
190 print '<tr class="oddeven"><td>';
191 print $langs->trans('PrintWithoutDetailsButton');
192 print '<td colspan="2">';
193 print ajax_constantonoff('TAKEPOS_PRINT_WITHOUT_DETAILS', array(), $conf->entity, 0, 0, 1, 0);
194 print "</td></tr>\n";
195 if (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
204 print '<tr class="oddeven"><td>';
205 print $langs->trans("AutoPrintTickets");
206 print '<td colspan="2">';
207 print ajax_constantonoff("TAKEPOS_AUTO_PRINT_TICKETS", array(), $conf->entity, 0, 0, 1, 0);
208 print "</td></tr>\n";
209 
210 
211 print '</table>';
212 print '</div>';
213 
214 print '<br>';
215 
216 print $form->buttonsSaveCancel("Save", '');
217 
218 print "</form>\n";
219 
220 print load_fiche_titre($langs->trans("Preview"), '', '');
221 print '<div style="width: 50%; float:center;background-color:#606060">';
222 print '<center>';
223 print '<iframe id="iframe" allowtransparency="true" style="background: #FFFFFF;" src="../receipt.php" width="80%" height="600"></iframe>';
224 print '</center>';
225 print '</div>';
226 
227 print '<br>';
228 
229 llxFooter();
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).
Definition: admin.lib.php:638
activateModule($value, $withdeps=1, $noconfverification=0)
Enable a module.
Definition: admin.lib.php:1104
ajax_constantonoff($code, $input=array(), $entity=null, $revertonoff=0, $strict=0, $forcereload=0, $marginleftonlyshort=2, $forcenoajax=0, $setzeroinsteadofdel=0, $suffix='', $mode='', $morecss='inline-block')
On/off button for constant.
Definition: ajax.lib.php:630
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:56
llxFooter()
Empty footer.
Definition: wrapper.php:70
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 ...
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
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.
isModEnabled($module)
Is Dolibarr module enabled.
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:753
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.
Definition: takepos.lib.php:30