* Copyright (C) 2015 Frederic France * * 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/admin/receiptprinter.php * \ingroup printing * \brief Page to setup receipt printer */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/receiptprinter.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolreceiptprinter.class.php'; $langs->load("admin"); $langs->load("receiptprinter"); if (! $user->admin) accessforbidden(); $action = GETPOST('action','alpha'); $mode = GETPOST('mode','alpha'); $value = GETPOST('value','alpha'); $varname = GETPOST('varname', 'alpha'); $printername = GETPOST('printername', 'alpha'); $printerid = GETPOST('printerid', 'int'); $parameter = GETPOST('parameter', 'alpha'); $printer = new dolReceiptPrinter($db); if (!$mode) $mode='config'; if (!function_exists('gzdecode')) { function gzdecode($data) { return gzinflate(substr($data,10,-8)); } } /* * Action */ if ($action == 'addprinter' && $user->admin) { $error=0; $db->begin(); if (empty($printername)) { $error++; setEventMessages($langs->trans("PrinterNameEmpty"), null, 'errors'); } if (empty($parameter)) { setEventMessages($langs->trans("PrinterParameterEmpty"), null, 'warnings'); } if (! $error) { $result= $printer->AddPrinter($printername, GETPOST('printertypeid', 'int'), $parameter); if ($result > 0) $error++; if (! $error) { $db->commit(); setEventMessages($langs->trans("PrinterAdded",$printername), null); } else { $db->rollback(); dol_print_error($db); } } $action = ''; } if ($action == 'deleteprinter' && $user->admin) { $error=0; $db->begin(); if (empty($printerid)) { $error++; setEventMessages($langs->trans("PrinterIdEmpty"), null, 'errors'); } if (! $error) { $result= $printer->DeletePrinter($printerid); if ($result > 0) $error++; if (! $error) { $db->commit(); setEventMessages($langs->trans("PrinterDeleted",$printername), null); } else { $db->rollback(); dol_print_error($db); } } $action = ''; } if ($action == 'updateprinter' && $user->admin) { $error=0; $db->begin(); if (empty($printerid)) { $error++; setEventMessages($langs->trans("PrinterIdEmpty"), null, 'errors'); } if (! $error) { $result= $printer->UpdatePrinter($printername, GETPOST('printertypeid', 'int'), $parameter, $printerid); if ($result > 0) $error++; if (! $error) { $db->commit(); setEventMessages($langs->trans("PrinterUpdated",$printername), null); } else { $db->rollback(); dol_print_error($db); } } $action = ''; } if ($action == 'testprinter' && $user->admin) { $error=0; if (empty($printerid)) { $error++; setEventMessages($langs->trans("PrinterIdEmpty"), null, 'errors'); } if (! $error) { // test $ret = $printer->SendTestToPrinter($printerid); if ($ret == 0) { setEventMessages($langs->trans("TestSentToPrinter", $printername), null); } else { setEventMessages($printer->error, $printer->errors, 'errors'); } } $action = ''; } /* * View */ $form = new Form($db); llxHeader('',$langs->trans("ReceiptPrinterSetup")); $linkback=''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("ReceiptPrinterSetup"),$linkback,'title_setup'); $head = receiptprinteradmin_prepare_head($mode); if ($mode == 'config' && $user->admin) { print '
'; print ''; if ($action!='editprinter') { print ''; } else { print ''; } dol_fiche_head($head, $mode, $langs->trans("ModuleSetup"), 0, 'technic'); print $langs->trans("ReceiptPrinterDesc")."

\n"; print ''."\n"; $var=true; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; $ret = $printer->listprinters(); if ($ret > 0) { setEventMessages($printer->error, $printer->errors, 'errors'); } else { for ($line=0; $line < count($printer->listprinters); $line++) { $var = !$var; print ''; if ($action=='editprinter' && $printer->listprinters[$line]['rowid']==$printerid) { print ''; print ''; $ret = $printer->selectTypePrinter($printer->listprinters[$line]['fk_type']); print ''; print ''; print ''; print ''; print ''; print ''; } else { print ''; switch ($printer->listprinters[$line]['fk_type']) { case 1: $connector = 'CONNECTOR_DUMMY'; break; case 2: $connector = 'CONNECTOR_FILE_PRINT'; break; case 3: $connector = 'CONNECTOR_NETWORK_PRINT'; break; case 4: $connector = 'CONNECTOR_WINDOWS_PRINT'; break; case 5: $connector = 'CONNECTOR_JAVA'; break; default: $connector = 'CONNECTOR_UNKNOWN'; break; } print ''; print ''; // edit icon print ''; // delete icon print ''; // test icon print ''; print ''; } } } if ($action!='editprinter') { print ''; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; print ''; print ''; $ret = $printer->selectTypePrinter(); print ''; print ''; print ''; print ''; print ''; print ''; } print '
'.$langs->trans("Name").''.$langs->trans("Type").''.$langs->trans("Parameters").'
'.$printer->resprint.'
'.$printer->listprinters[$line]['name'].''.$langs->trans($connector).''.$printer->listprinters[$line]['parameter'].''; print img_picto($langs->trans("Edit"),'edit'); print ''; print img_picto($langs->trans("Delete"),'delete'); print ''; print img_picto($langs->trans("TestPrinter"),'printer'); print '
'.$langs->trans("Name").''.$langs->trans("Type").''.$langs->trans("Parameters").'
'.$printer->resprint.'
'; dol_fiche_end(); if ($action!='editprinter') { print '
'; } else { print '
'; } print '
'; print '

'; dol_fiche_head(); print ''."\n"; $var=true; print ''; print ''; print ''; print ''; //print ''; print '
'.$langs->trans("CONNECTOR_DUMMY").':'.$langs->trans("CONNECTOR_DUMMY_HELP").'
'.$langs->trans("CONNECTOR_NETWORK_PRINT").':'.$langs->trans("CONNECTOR_NETWORK_PRINT_HELP").'
'.$langs->trans("CONNECTOR_FILE_PRINT").':'.$langs->trans("CONNECTOR_FILE_PRINT_HELP").'
'.$langs->trans("CONNECTOR_WINDOWS_PRINT").':'.$langs->trans("CONNECTOR_WINDOWS_PRINT_HELP").'
'.$langs->trans("CONNECTOR_JAVA").':'.$langs->trans("CONNECTOR_JAVA_HELP").'
'; dol_fiche_end(); } if ($mode == 'template' && $user->admin) { $tags = array( 'dol_align_left', 'dol_align_center', 'dol_align_right', 'dol_use_font_a', 'dol_use_font_b', 'dol_use_font_c', 'dol_bold', '/dol_bold', 'dol_double_height', '/dol_double_height', 'dol_double_width', '/dol_double_width', 'dol_underline', '/dol_underline', 'dol_underline_2dots', '/dol_underline', 'dol_emphasized', '/dol_emphasized', 'dol_switch_colors', '/dol_switch_colors', 'dol_print_barcode', 'dol_print_barcode_customer_id', 'dol_set_print_width_57', 'dol_cut_paper_full', 'dol_cut_paper_partial', 'dol_open_drawer', 'dol_activate_buzzer', 'dol_print_qrcode', 'dol_print_date', 'dol_print_date_time', 'dol_print_year', 'dol_print_month_letters', 'dol_print_month', 'dol_print_day', 'dol_print_day_letters', 'dol_print_table', 'dol_print_cutlery', 'dol_print_payment', 'dol_print_logo', 'dol_print_logo_old', 'dol_print_order_lines', 'dol_print_order_tax', 'dol_print_order_local_tax', 'dol_print_order_total', 'dol_print_order_number', 'dol_print_order_number_unique', 'dol_print_customer_first_name', 'dol_print_customer_last_name', 'dol_print_customer_mail', 'dol_print_customer_telephone', 'dol_print_customer_mobile', 'dol_print_customer_skype', 'dol_print_customer_tax_number', 'dol_print_customer_account_balance', 'dol_print_vendor_last_name', 'dol_print_vendor_first_name', 'dol_print_vendor_mail', 'dol_print_customer_points', 'dol_print_order_points', 'dol_print_if_customer', 'dol_print_if_vendor', 'dol_print_if_happy_hour', 'dol_print_if_num_order_unique', 'dol_print_if_customer_points', 'dol_print_if_order_points', 'dol_print_if_customer_tax_number', 'dol_print_if_customer_account_balance_positive', ); print '
'; print ''; if ($action!='edittemplate') { print ''; } else { print ''; } dol_fiche_head($head, $mode, $langs->trans("ModuleSetup"), 0, 'technic'); print $langs->trans("ReceiptPrinterTemplateDesc")."

\n"; print ''."\n"; $var=true; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; $ret = $printer->listPrintersTemplates(); //print '
'.print_r($printer->listprinterstemplates, true).'
'; if ($ret > 0) { setEventMessages($printer->error, $printer->errors, 'errors'); } else { for ($line=0; $line < count($printer->listprinterstemplates); $line++) { $var = !$var; print ''; if ($action=='edittemplate' && $printer->listprinterstemplates[$line]['rowid']==$templateid) { print ''; print ''; // TODO doleditor print ''; print ''; print ''; print ''; } else { print ''; print ''; // edit icon print ''; // delete icon print ''; // test icon print ''; } print ''; } } print '
'.$langs->trans("Name").''.$langs->trans("Template").'
'.$printer->listprinterstemplates[$line]['name'].''.nl2br(htmlentities($printer->listprinterstemplates[$line]['template'])).''; print img_picto($langs->trans("Edit"),'edit'); print ''; print img_picto($langs->trans("Delete"),'delete'); print ''; print img_picto($langs->trans("TestPrinterTemplate"),'printer'); print '
'; if ($action!='edittemplate') { print '
'; } else { print '
'; } print '
'; print '

'; print ''."\n"; $var=true; print ''; print ''; print ''; print "\n"; for ($tag=0; $tag < count($tags); $tag++) { $var = !$var; print ''; print ''; print ''; } print '
'.$langs->trans("Tag").''.$langs->trans("Description").'
<'.$tags[$tag].'>'.$langs->trans(strtoupper($tags[$tag])).'
'; dol_fiche_end(); } llxFooter(); $db->close();