* Copyright (C) 2015 Frederic France * Copyright (C) 2016 Juanjo Menent * * 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'); $printername = GETPOST('printername', 'alpha'); $printerid = GETPOST('printerid', 'int'); $parameter = GETPOST('parameter', 'alpha'); $template = GETPOST('template', 'alpha'); $templatename = GETPOST('templatename', 'alpha'); $templateid = GETPOST('templateid', 'int'); $printer = new dolReceiptPrinter($db); if (!$mode) $mode='config'; // used in library escpos maybe useful if php doesn't support gzdecode 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'), GETPOST('printerprofileid', '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'), GETPOST('printerprofileid', '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 = ''; } if ($action == 'updatetemplate' && $user->admin) { $error=0; $db->begin(); if (empty($templateid)) { $error++; setEventMessages($langs->trans("TemplateIdEmpty"), null, 'errors'); } if (! $error) { $result= $printer->UpdateTemplate($templatename, $template, $templateid); if ($result > 0) $error++; if (! $error) { $db->commit(); setEventMessages($langs->trans("TemplateUpdated",$templatename), null); } else { $db->rollback(); dol_print_error($db); } } $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 ''; print "\n"; $ret = $printer->listprinters(); $nbofprinters = count($printer->listprinters); if ($ret > 0) { setEventMessages($printer->error, $printer->errors, 'errors'); } else { for ($line=0; $line < $nbofprinters; $line++) { $var = !$var; print ''; if ($action=='editprinter' && $printer->listprinters[$line]['rowid']==$printerid) { print ''; print ''; $ret = $printer->selectTypePrinter($printer->listprinters[$line]['fk_type']); print ''; $ret = $printer->selectProfilePrinter($printer->listprinters[$line]['fk_profile']); print ''; print ''; print ''; print ''; print ''; print ''; } else { print ''; print ''; print ''; print ''; // edit icon print ''; // delete icon print ''; // test icon print ''; print ''; } } } if ($action!='editprinter') { if ($nbofprinters > 0) { print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; } print ''; print ''; $ret = $printer->selectTypePrinter(); print ''; $ret = $printer->selectProfilePrinter(); print ''; print ''; print ''; print ''; print ''; print ''; } print '
'.$langs->trans("Name").''.$langs->trans("Type").''.$langs->trans("Profile").''.$langs->trans("Parameters").'
'.$printer->resprint.''.$printer->profileresprint.'
'.$printer->listprinters[$line]['name'].''.$langs->trans($printer->listprinters[$line]['fk_type_name']).''.$langs->trans($printer->listprinters[$line]['fk_profile_name']).''.$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("Profile").''.$langs->trans("Parameters").'
'.$printer->resprint.''.$printer->profileresprint.'
'; dol_fiche_end(); if ($action!='editprinter') { print '
'; } else { print '
'; } print '
'; print '

'; dol_fiche_head(); print $langs->trans("ReceiptPrinterTypeDesc")."

\n"; print ''."\n"; 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(); print '

'; dol_fiche_head(); print $langs->trans("ReceiptPrinterProfileDesc")."

\n"; print ''."\n"; print ''; print ''; print ''; print ''; print ''; print '
'.$langs->trans("PROFILE_DEFAULT").':'.$langs->trans("PROFILE_DEFAULT_HELP").'
'.$langs->trans("PROFILE_SIMPLE").':'.$langs->trans("PROFILE_SIMPLE_HELP").'
'.$langs->trans("PROFILE_EPOSTEP").':'.$langs->trans("PROFILE_EPOSTEP_HELP").'
'.$langs->trans("PROFILE_P822D").':'.$langs->trans("PROFILE_P822D_HELP").'
'.$langs->trans("PROFILE_STAR").':'.$langs->trans("PROFILE_STAR_HELP").'
'; dol_fiche_end(); } if ($mode == 'template' && $user->admin) { 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 { $max = count($printer->listprinterstemplates); for ($line=0; $line < $max; $line++) { $var = !$var; print ''; if ($action=='edittemplate' && $printer->listprinterstemplates[$line]['rowid']==$templateid) { print ''; print ''; print ''; print ''; print ''; print ''; } else { print ''; print ''; // edit icon print ''; // delete icon print ''; // test icon print ''; } print ''; } } print '
'.$langs->trans("Name").''.$langs->trans("Template").'
'; print ''.$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"; $max = count($printer->tags); for ($tag=0; $tag < $max; $tag++) { $var = !$var; print ''; print ''; print ''; } print '
'.$langs->trans("Tag").''.$langs->trans("Description").'
<'.$printer->tags[$tag].'>'.$langs->trans(strtoupper($printer->tags[$tag])).'
'; dol_fiche_end(); } // to remove after test $object=new stdClass(); $object->date_time = '2015-11-02 22:30:25'; $object->id = 1234; $object->customer_firstname = 'John'; $object->customer_lastname = 'Deuf'; $object->vendor_firstname = 'Jim'; $object->vendor_lastname = 'Big'; $object->barcode = '3700123862396'; //$printer->sendToPrinter($object, 1, 16); //setEventMessages($printer->error, $printer->errors, 'errors'); llxFooter(); $db->close();