OpenXE/www/widgets/widget.drucker.php
2021-05-21 08:49:41 +02:00

187 lines
4.3 KiB
PHP

<?php
include '_gen/widget.gen.drucker.php';
class WidgetDrucker extends WidgetGenDrucker
{
/** @var Application */
private $app;
/**
* WidgetDrucker constructor.
*
* @param Application $app
* @param $parsetarget
*/
public function __construct($app,$parsetarget)
{
$this->app = $app;
$this->parsetarget = $parsetarget;
parent::__construct($app,$parsetarget);
$this->ExtendsForm();
}
public function ExtendsForm()
{
$this->app->Secure->POST['firma']=$this->app->User->GetFirma();
$field = new HTMLInput('firma','hidden',$this->app->User->GetFirma());
$this->form->NewField($field);
$id = $this->app->Secure->GetGET('id');
$selAnbindung = [
'cups' => 'Kommandozeilenbefehl',
'pdf' => 'PDF in Verzeichnis',
'adapterbox' => 'Adapterbox',
'email' => 'E-Mail',
'download' => 'Download',
'spooler' => 'Xentral Druckerspooler',
];
$printerModule = $id <=0?'':$this->app->DB->Select(
sprintf(
'SELECT anbindung FROM drucker WHERE id = %d',
$id
)
);
$printerModuleOptions = [];
/** @var Drucker $obj */
$obj = $this->app->erp->LoadModul('drucker');
if(!empty($obj) && method_exists($obj,'PrinterSelModul')){
$printerModuleOptions = $obj->PrinterSelModul($printerModule, true);
}
if(empty($printerModuleOptions)) {
$printerModuleOptions = [];
}
$field = new HTMLSelect('anbindung',0);
$field->AddOptionsSimpleArray(array_unique(array_merge($selAnbindung,$printerModuleOptions)));
$this->form->NewField($field);
if($id > 0) {
$printer = $this->app->DB->SelectRow(
sprintf(
'SELECT id,json,anbindung FROM drucker WHERE id = %d',
$id
)
);
if(!empty($printer)&& !empty($obj) && method_exists($obj,'loadPrinterModul') && !empty($printer['anbindung'])) {
/** @var PrinterBase $obj */
$objPrinter = $obj->loadPrinterModul($printer['anbindung'], $printer['id']);
if(!empty($objPrinter)){
$objPrinter->Settings('JSON');
}
}
}
}
/**
* @param bool $db
* @param string|int $value
* @param bool $fromform
*
* @return int|string|null
*/
public function ReplaceProjekt($db,$value,$fromform)
{
//value muss hier vom format ueberprueft werden
if(!$fromform) {
$id = $value;
$abkuerzung = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id='$id' LIMIT 1");
}
else {
$abkuerzung = $value;
$id = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$value' LIMIT 1");
}
// wenn ziel datenbank
if($db) {
return $id;
}
return $abkuerzung;
}
/**
* @param int $db
* @param string $value
*
* @return string
*/
public function ReplaceDecimal($db,$value)
{
//value muss hier vom format ueberprueft werden
return str_replace(',','.',$value);
}
/**
* @param bool $db
* @param string $value
*
* @return mixed
*/
public function ReplaceDatum($db,$value)
{
//value muss hier vom format ueberprueft werden
$dbformat = 0;
if(strpos($value,'-') > 0) {
$dbformat = 1;
}
// wenn ziel datenbank
if($db) {
if($dbformat) {
return $value;
}
return $this->app->String->Convert($value,'%1.%2.%3','%3-%2-%1');
}
// wenn ziel formular
if($dbformat) {
return $this->app->String->Convert($value,'%1-%2-%3','%3.%2.%1');
}
return $value;
}
/**
* @param bool $db
* @param int|string $value
*
* @return int|string|null
*/
public function ReplaceAdresse($db,$value)
{
//value muss hier vom format ueberprueft werden
if(is_numeric($value)) {
$id = $value;
$abkuerzung = $this->app->DB->Select("SELECT name FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1");
}
else {
$abkuerzung = $value;
$id = $this->app->DB->Select("SELECT id FROM adresse WHERE name='$value' AND geloescht=0 LIMIT 1");
}
// wenn ziel datenbank
if($db) {
return $id;
}
// wenn ziel formular
return $abkuerzung;
}
public function Table()
{
$this->app->YUI->TableSearch('INHALT','druckerlist');
$this->app->Tpl->Parse($this->parsetarget,'rahmen70.tpl');
}
public function Search()
{
}
}