27 require
'../main.inc.php';
29 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
30 require_once DOL_DOCUMENT_ROOT.
'/core/class/doleditor.class.php';
31 require_once DOL_DOCUMENT_ROOT.
'/core/lib/receiptprinter.lib.php';
32 require_once DOL_DOCUMENT_ROOT.
'/core/class/dolreceiptprinter.class.php';
35 $langs->loadLangs(array(
"admin",
"receiptprinter"));
41 $action =
GETPOST(
'action',
'aZ09');
42 $mode =
GETPOST(
'mode',
'alpha');
44 $printername =
GETPOST(
'printername',
'alpha');
45 $printerid =
GETPOST(
'printerid',
'int');
46 $parameter =
GETPOST(
'parameter',
'alpha');
48 $template =
GETPOST(
'template',
'alphanohtml');
49 $templatename =
GETPOST(
'templatename',
'alpha');
50 $templateid =
GETPOST(
'templateid',
'int');
59 if (!function_exists(
'gzdecode')) {
66 function gzdecode($data)
68 return gzinflate(substr($data, 10, -8));
77 if ($action ==
'addprinter' && $user->admin) {
79 if (empty($printername)) {
84 if (empty($parameter)) {
90 $result = $printer->addPrinter($printername,
GETPOST(
'printertypeid',
'int'),
GETPOST(
'printerprofileid',
'int'), $parameter);
106 if ($action ==
'deleteprinter' && $user->admin) {
108 if (empty($printerid)) {
115 $result = $printer->deletePrinter($printerid);
131 if ($action ==
'updateprinter' && $user->admin) {
133 if (empty($printerid)) {
140 $result = $printer->updatePrinter($printername,
GETPOST(
'printertypeid',
'int'),
GETPOST(
'printerprofileid',
'int'), $parameter, $printerid);
156 if ($action ==
'testprinter' && $user->admin) {
158 if (empty($printerid)) {
165 $ret = $printer->sendTestToPrinter($printerid);
175 if ($action ==
'testtemplate' && $user->admin) {
184 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
186 $object->initAsSpecimen();
189 $ret = $printer->sendToPrinter($object, $templateid, 1);
191 setEventMessages($langs->trans(
"TestTemplateToPrinter", $printername),
null);
199 if ($action ==
'updatetemplate' && $user->admin) {
201 if (empty($templateid)) {
208 $result = $printer->updateTemplate($templatename, $template, $templateid);
224 if ($action ==
'addtemplate' && $user->admin) {
226 if (empty($templatename)) {
233 $result = $printer->addTemplate($templatename, $template);
249 if ($action ==
'deletetemplate' && $user->admin) {
251 if (empty($templateid)) {
258 $result = $printer->deleteTemplate($templateid);
281 llxHeader(
'', $langs->trans(
"ReceiptPrinterSetup"));
283 $linkback =
'<a href="'.DOL_URL_ROOT.
'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToModuleList").
'</a>';
284 print
load_fiche_titre($langs->trans(
"ReceiptPrinterSetup"), $linkback,
'title_setup');
289 if ($mode ==
'config' && $user->admin) {
290 print
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].
'?mode=config" autocomplete="off">';
291 print
'<input type="hidden" name="token" value="'.newToken().
'">';
292 if ($action !=
'editprinter') {
293 print
'<input type="hidden" name="action" value="addprinter">';
295 print
'<input type="hidden" name="action" value="updateprinter">';
301 print
'<span class="opacitymedium">'.$langs->trans(
"ReceiptPrinterDesc").
"</span><br><br>\n";
303 print
'<table class="noborder centpercent">'.
"\n";
304 print
'<tr class="liste_titre">';
305 print
'<th>'.$langs->trans(
"Name").
'</th>';
306 print
'<th>'.$langs->trans(
"Type").
'</th>';
308 $htmltext = $langs->trans(
"PROFILE_DEFAULT").
' = '.$langs->trans(
"PROFILE_DEFAULT_HELP").
'<br>';
309 $htmltext .= $langs->trans(
"PROFILE_SIMPLE").
' = '.$langs->trans(
"PROFILE_SIMPLE_HELP").
'<br>';
310 $htmltext .= $langs->trans(
"PROFILE_EPOSTEP").
' = '.$langs->trans(
"PROFILE_EPOSTEP_HELP").
'<br>';
311 $htmltext .= $langs->trans(
"PROFILE_P822D").
' = '.$langs->trans(
"PROFILE_P822D_HELP").
'<br>';
312 $htmltext .= $langs->trans(
"PROFILE_STAR").
' = '.$langs->trans(
"PROFILE_STAR_HELP").
'<br>';
314 print
$form->textwithpicto($langs->trans(
"Profile"), $htmltext);
316 print
'<th>'.$langs->trans(
"Parameters").
'</th>';
319 $ret = $printer->listprinters();
320 $nbofprinters = count($printer->listprinters);
322 if ($action !=
'editprinter') {
324 print
'<td><input class="minwidth200" type="text" name="printername"></td>';
325 $ret = $printer->selectTypePrinter();
326 print
'<td>'.$printer->resprint.
'</td>';
327 $ret = $printer->selectProfilePrinter();
328 print
'<td>'.$printer->profileresprint.
'</td>';
329 print
'<td><input size="60" type="text" name="parameter"></td>';
330 print
'<td class="right">';
331 if ($action !=
'editprinter') {
332 print
'<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans(
"Add")).
'"></div>';
341 for ($line = 0; $line < $nbofprinters; $line++) {
342 print
'<tr class="oddeven">';
343 if ($action ==
'editprinter' && $printer->listprinters[$line][
'rowid'] == $printerid) {
344 print
'<input type="hidden" name="printerid" value="'.$printer->listprinters[$line][
'rowid'].
'">';
345 print
'<td><input type="text" class="minwidth200" name="printername" value="'.$printer->listprinters[$line][
'name'].
'"></td>';
346 $ret = $printer->selectTypePrinter($printer->listprinters[$line][
'fk_type']);
347 print
'<td>'.$printer->resprint.
'</td>';
348 $ret = $printer->selectProfilePrinter($printer->listprinters[$line][
'fk_profile']);
349 print
'<td>'.$printer->profileresprint.
'</td>';
350 print
'<td><input size="60" type="text" name="parameter" value="'.$printer->listprinters[$line][
'parameter'].
'"></td>';
352 print
$form->buttonsSaveCancel(
"Save",
'');
356 print
'<td>'.$printer->listprinters[$line][
'name'].
'</td>';
357 print
'<td>'.$langs->trans($printer->listprinters[$line][
'fk_type_name']).
'</td>';
358 print
'<td>'.$langs->trans($printer->listprinters[$line][
'fk_profile_name']).
'</td>';
359 print
'<td>'.$printer->listprinters[$line][
'parameter'].
'</td>';
361 print
'<td class="right"><a class="editfielda marginrightonly" href="'.$_SERVER[
'PHP_SELF'].
'?mode=config&action=editprinter&token='.
newToken().
'&printerid='.$printer->listprinters[$line][
'rowid'].
'">';
362 print
img_picto($langs->trans(
"Edit"),
'edit');
365 print
'<a class="marginrightonly" href="'.$_SERVER[
'PHP_SELF'].
'?mode=config&action=deleteprinter&token='.
newToken().
'&printerid='.$printer->listprinters[$line][
'rowid'].
'&printername='.urlencode($printer->listprinters[$line][
'name']).
'">';
366 print
img_picto($langs->trans(
"Delete"),
'delete');
369 print
'<a class="marginrightonly" href="'.$_SERVER[
'PHP_SELF'].
'?mode=config&action=testprinter&token='.
newToken().
'&printerid='.$printer->listprinters[$line][
'rowid'].
'&printername='.urlencode($printer->listprinters[$line][
'name']).
'">';
370 print
img_picto($langs->trans(
"TestPrinter"),
'printer');
386 print
load_fiche_titre($langs->trans(
"ReceiptPrinterTypeDesc"),
'',
'').
"\n";
388 print
'<table class="noborder centpercent">'.
"\n";
389 print
'<tr class="oddeven"><td>'.$langs->trans(
"CONNECTOR_DUMMY").
':</td><td>'.$langs->trans(
"CONNECTOR_DUMMY_HELP").
'</td></tr>';
390 print
'<tr class="oddeven"><td>'.$langs->trans(
"CONNECTOR_NETWORK_PRINT").
':</td><td>'.$langs->trans(
"CONNECTOR_NETWORK_PRINT_HELP").
'</td></tr>';
391 print
'<tr class="oddeven"><td>'.$langs->trans(
"CONNECTOR_FILE_PRINT").
':</td><td>'.$langs->trans(
"CONNECTOR_FILE_PRINT_HELP").
'</td></tr>';
392 print
'<tr class="oddeven"><td>'.$langs->trans(
"CONNECTOR_WINDOWS_PRINT").
':</td><td>'.$langs->trans(
"CONNECTOR_WINDOWS_PRINT_HELP").
'</td></tr>';
393 print
'<tr class="oddeven"><td>'.$langs->trans(
"CONNECTOR_CUPS_PRINT").
':</td><td>'.$langs->trans(
"CONNECTOR_CUPS_PRINT_HELP").
'</td></tr>';
400 if ($mode ==
'template' && $user->admin) {
403 print
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].
'?mode=template" autocomplete="off">';
404 print
'<input type="hidden" name="token" value="'.newToken().
'">';
405 if ($action !=
'edittemplate') {
406 print
'<input type="hidden" name="action" value="addtemplate">';
408 print
'<input type="hidden" name="action" value="updatetemplate">';
411 print
'<table class="noborder centpercent">'.
"\n";
412 print
'<tr class="liste_titre">';
413 print
'<th>'.$langs->trans(
"Name").
'</th>';
414 print
'<th>'.$langs->trans(
"Template").
'</th>';
417 $ret = $printer->listPrintersTemplates();
422 $max = count($printer->listprinterstemplates);
423 for ($line = 0; $line < $max; $line++) {
424 print
'<tr class="oddeven">';
425 if ($action ==
'edittemplate' && $printer->listprinterstemplates[$line][
'rowid'] == $templateid) {
426 print
'<input type="hidden" name="templateid" value="'.$printer->listprinterstemplates[$line][
'rowid'].
'">';
427 print
'<td><input type="text" class="minwidth200" name="templatename" value="'.$printer->listprinterstemplates[$line][
'name'].
'"></td>';
429 print
'<textarea name="template" wrap="soft" cols="120" rows="12">'.$printer->listprinterstemplates[$line][
'template'].
'</textarea>';
432 print
$form->buttonsSaveCancel(
"Save",
'');
435 print
'<td>'.$printer->listprinterstemplates[$line][
'name'].
'</td>';
436 print
'<td>'.dol_htmlentitiesbr($printer->listprinterstemplates[$line][
'template']).
'</td>';
438 print
'<td><a class="editfielda paddingleftonly marginrightonly" href="'.$_SERVER[
'PHP_SELF'].
'?mode=template&action=edittemplate&token='.
newToken().
'&templateid='.$printer->listprinterstemplates[$line][
'rowid'].
'">';
439 print
img_picto($langs->trans(
"Edit"),
'edit');
442 print
'<a class="paddingleftonly marginrightonly" href="'.$_SERVER[
'PHP_SELF'].
'?mode=template&action=deletetemplate&token='.
newToken().
'&templateid='.$printer->listprinterstemplates[$line][
'rowid'].
'&templatename='.urlencode($printer->listprinterstemplates[$line][
'name']).
'">';
443 print
img_picto($langs->trans(
"Delete"),
'delete');
446 print
'<a class="paddingleftonly marginrightonly" href="'.$_SERVER[
'PHP_SELF'].
'?mode=template&action=testtemplate&token='.
newToken().
'&templateid='.$printer->listprinterstemplates[$line][
'rowid'].
'&templatename='.urlencode($printer->listprinterstemplates[$line][
'name']).
'">';
447 print
img_picto($langs->trans(
"TestPrinterTemplate"),
'printer');
454 if ($action !=
'edittemplate') {
456 print
'<td><input type="text" class="minwidth200" name="templatename" value="'.$printer->listprinterstemplates[$line][
'name'].
'"></td>';
458 print
'<textarea name="template" wrap="soft" cols="120" rows="12">';
462 print
'<input type="hidden" name="templateid" value="'.$printer->listprinterstemplates[$line][
'rowid'].
'">';
463 print
'<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans(
"Add")).
'">';
476 print
'<table class="noborder centpercent">'.
"\n";
477 print
'<tr class="liste_titre">';
478 print
'<th>'.$langs->trans(
"Tag").
'</th>';
479 print
'<th>'.$langs->trans(
"Description").
'</th>';
482 $langs->loadLangs(array(
"bills",
"companies"));
483 foreach ($printer->tags as $key => $val) {
484 print
'<tr class="oddeven">';
485 print
'<td>{'.$key.
'}</td><td>'.$langs->trans($val).
'</td>';