getDocuments(); $colDocument = ''; foreach($documents as $documentKey => $document) { $colDocument .= sprintf("IF(dci.doctype = '%s', '%s',", $documentKey, $document); } $colDocument .= 'dci.doctype'. str_repeat(')', (!empty($documents)?count($documents):0)); // headings $heading = array('', 'Belegart', 'zusätzliche Sprachen', 'Projekt', 'Aktiv','', 'Menü'); $width = array('1%', '10%', '20%', '15%', '5%', '1%', '1%'); $findcols = array('dcit.id', $colDocument, 'translations', 'project', 'dci.active','color', 'dci.id'); $searchsql = array('dcit.language_code','pr.abkuerzung'); $menu = ""; $menu .= ""; $menu .= ""; $menu .= ""; $menu .= "
"; $menu .= ''; $menu .= "\"ändern\"app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\">"; $menu .= " "; $menu .= ''; $menu .= "\"kopieren\"app->Conf->WFconf['defaulttheme']}/images/copy.svg\" border=\"0\">"; $menu .= " "; $menu .= ''; $menu .= "\"löschen\"app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\">"; $menu .= " "; $menu .= "
"; $trcol = 5; // SQL statement $sql = "SELECT dci.id, CONCAT(''), $colDocument, GROUP_CONCAT(IF(dcit.active = 1,dcit.language_code,CONCAT('',dcit.language_code,'')) ORDER BY dcit.language_code SEPARATOR ',') AS translations , pr.abkuerzung as project, IF(dci.active = 1, 'ja','-'),IF(dci.active = 1 AND IFNULL(cp.count_elements,0) > 1,'#F1B19F','') AS color ,dci.id FROM document_customization_infoblock AS dci LEFT JOIN document_customization_infoblock_translation AS dcit ON dci.id = dcit.document_customization_infoblock_id LEFT JOIN ( SELECT doctype, project_id, COUNT(id) AS count_elements FROM document_customization_infoblock WHERE active = 1 GROUP BY doctype, project_id ) AS cp ON dci.doctype = cp.doctype AND dci.project_id = cp.project_id LEFT JOIN projekt AS pr ON dci.project_id = pr.id"; // fester filter $where = ''; $groupby = 'GROUP BY dci.id'; $count = 'SELECT COUNT(id) FROM document_customization_infoblock'; break; } $erg = []; foreach($erlaubtevars as $k => $v) { if(isset($$v)) { $erg[$v] = $$v; } } return $erg; } /** * Firmendaten constructor. * * @param Application $app * @param bool $intern */ public function __construct($app, $intern = false) { $this->app=$app; $this->payments = [ 'eckarte' => 'EC-Karte', 'ratenzahlung' => 'Ratenzahlung', 'sofortueberweisung' => 'Sofortüberweisung', 'secupay' => 'Secupay', 'amazon' => 'Amazon', 'kreditkarte' => 'Kreditkarte', 'paypal' => 'Paypal', 'bar' => 'Barzahlung', 'lastschrift' => 'Lastschrift', 'vorkasse' => 'Vorkasse', 'nachnahme' => 'Nachnahme' ]; if($intern) { return; } $this->app->ActionHandlerInit($this); $this->app->ActionHandler("edit","FirmendatenEdit"); $this->app->ActionHandler("briefpapier","FirmendatenBriefpapierDownload"); $this->app->ActionHandler("logo","FirmendatenLogoDownload"); $this->app->ActionHandler("nextnumber","FirmendatenNextNumber"); $this->app->ActionHandler("layout","FirmendatenLayout"); $this->app->ActionHandler("briefpapiervorlage","FirmendatenBriefpapiervorlage"); $this->app->ActionHandler("testmail","FirmendatenTestmail"); $this->app->ActionHandler("documentsettings","documentSettings"); $this->app->ActionHandlerListen($app); $this->app->Tpl->Set('FARBE',"[FARBE5]"); } /** * @param int $color * * @return int */ function ColorOK($color) { $r = $color % 256; $color = (int)floor($color / 256); $g = $color % 256; $color = (int)floor($color / 256); $b = $color % 256; return $r+$g+$b; } /** * @param string $bild * @param string $name * * @return string */ function CheckImage($bild, $name) { $data = explode(',', $bild); unset($bild); $encodedData = str_replace(' ','+',$data[1]); $decodedData = base64_decode($encodedData); $filename = $this->app->erp->GetTmp().$name; if(!file_put_contents($filename, $decodedData)){ return ''; } $type = mime_content_type($filename); switch($type) { case 'image/jpg': case 'image/jpeg': break; case 'image/png': break; case 'image/gif': break; default: return ''; break; } $palette = League\ColorExtractor\Palette::fromFilename($filename); if(@is_file($filename)) { @unlink($filename); } if($palette && (!empty($palette)?count($palette):0) == 1) { $color = array_keys($palette); return League\ColorExtractor\Color::fromIntToHex(reset($color)); } // $palette is an iterator on colors sorted by pixel count for($offset = 150; $offset > 0; $offset -= 30) { $maxc = 768; $creturn = ''; $i = 0; foreach ($palette as $color => $count) { $i++; if ($i > 100 || ($count < 10 && $i > 20)) { break; } $colorc = $this->ColorOK($color); //echo $count.' '. $colorc." ".$color." ".League\ColorExtractor\Color::fromIntToHex($color)."\r\n"; if ($colorc < 300 && $colorc > 0 + $offset && $colorc < 765 - $offset) { //echo $count . ' ' . $colorc . " " . $color . " " . League\ColorExtractor\Color::fromIntToHex($color) . "\r\n"; return League\ColorExtractor\Color::fromIntToHex($color); } if ($colorc < $maxc) { $maxc = $colorc; $creturn = $color; } } } return League\ColorExtractor\Color::fromIntToHex($creturn); } function FirmendatenMenu() { $this->app->erp->MenuEintrag('index.php?module=firmendaten&action=edit','Einstellungen'); //$this->app->erp->MenuEintrag('index.php?module=firmendaten&action=farbwelten','Farbwelten'); $this->app->erp->MenuEintrag('index.php?module=firmendaten&action=documentsettings','Belege Infoboxen'); } /** * @param string $color * * @return string */ function FarbeDunkel($color) { $color = strtolower(trim($color,'#')); $r = hexdec(substr($color, 0,2)); $g = hexdec(substr($color, 2,2)); $b = hexdec(substr($color, 4,2)); $r = dechex(floor($r * 0.7)); $g = dechex(floor($g * 0.7)); $b = dechex(floor($b * 0.7)); if(strlen($r) < 2) { $r = '0'.$r; } if(strlen($g) < 2) { $g = '0'.$g; } if(strlen($b) < 2) { $b = '0'.$b; } return '#'.strtoupper($r.$g.$b); } /** * @param string $color * * @return string */ function CorrectColor($color) { $color = strtolower(trim($color,'#')); $r = hexdec(substr($color, 0,2)); $g = hexdec(substr($color, 2,2)); $b = hexdec(substr($color, 4,2)); $ok =$this->ColorOK($b*65536+$g*256+$r); $f = 1; if($ok >= 765) { return '#DDDDDD'; } if($ok > 600) { $f = 0.8; } $r = dechex(floor($r * $f)); $g = dechex(floor($g * $f)); $b = dechex(floor($b * $f)); if(strlen($r) < 2) { $r = '0'.$r; } if(strlen($g) < 2) { $g = '0'.$g; } if(strlen($b) < 2) { $b = '0'.$b; } return '#'.strtoupper($r.$g.$b); } public function FirmendatenFarbwelten() { $cmd = $this->app->Secure->GetGET('cmd'); if($cmd === 'checkimage') { $color = $this->CorrectColor( $this->CheckImage($this->app->Secure->GetPOST('bild'), $this->app->Secure->GetPOST('name') ) ); $color2 = $this->FarbeDunkel($color); header('Content-Type: application/json'); echo json_encode(array('color'=>$color,'color2'=>$color2)); $this->app->ExitXentral(); } if($cmd === 'checkfarbe') { $color = $this->app->Secure->GetPOST('farbe'); $color2 = $this->FarbeDunkel($color); header('Content-Type: application/json'); echo json_encode(array('color'=>$color,'color2'=>$color2)); $this->app->ExitXentral(); } if($this->app->Secure->GetPOST('speichern')) { $bild = $this->app->Secure->GetPOST('bild'); $dateiname = $this->app->Secure->GetPOST('dateiname'); $color = $this->app->Secure->GetPOST('firmenfarbehell'); $firmenhoherformularkontrast = (int)$this->app->Secure->GetPOST('firmenhoherformularkontrast'); $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$firmenhoherformularkontrast' WHERE name = 'firmenhoherformularkontrast'"); if($color != '') { $colordunkel = $this->FarbeDunkel($color); $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$colordunkel' WHERE name = 'firmenfarbedunkel'"); $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$color' WHERE name = 'firmenfarbehell'"); $this->app->DB->Update("UPDATE firmendaten SET firmenfarbedunkel = '$colordunkel'"); $this->app->DB->Update("UPDATE firmendaten SET firmenfarbehell = '$color'"); } if($bild != '') { $data = explode(',', $bild); unset($bild); $encodedData = str_replace(' ','+',$data[1]); unset($data); $this->app->DB->Update("UPDATE firmendaten SET firmenlogo = '$encodedData'"); $this->app->DB->Update("UPDATE firmendaten_werte SET wert = 1 WHERE name = 'firmenlogoaktiv'"); unset($encodedData); } $this->app->Location->execute('index.php?module=firmendaten&action=farbwelten'); } $this->FirmendatenMenu(); if(isset($this->app->Conf->WFtestmode) && $this->app->Conf->WFtestmode==true) { $logo = './themes/new/images/xentral_logo_testmode.png'; } elseif(is_file('./themes/new/images/logo_cache.png')) { $logo = './themes/new/images/logo_cache.png'; } elseif($this->app->erp->Firmendaten('firmenlogoaktiv')=='1'){ $logo = './index.php?module=welcome&action=logo'; } elseif($this->app->erp->Firmendaten('iconset_dunkel')=='1'){ $logo = './themes/new/images/xentral_logo_white.png'; } else { $logo = './themes/new/images/xentral_logo.png'; } $this->app->Tpl->Add('DATEI',""); $this->app->Tpl->Set('FIRMENFARBEHELL', $this->app->erp->Firmendaten('firmenfarbehell')); $this->app->Tpl->Set('FIRMENHOHERFORMULARKONSTRAST', $this->app->erp->Firmendaten('firmenhoherformularkontrast')?' checked="checked" ':''); $this->app->YUI->ColorPicker('firmenfarbehell'); $themes = array( 'Gelb'=>array('image'=>'./images/farbwelten/farbwelt_gelb.png','color'=>'#E0C701','hoherkontrast'=>0) ,'Orange'=>array('image'=>'./images/farbwelten/farbwelt_orange.png','color'=>'#D4852E','hoherkontrast'=>0) ,'Rot'=>array('image'=>'./images/farbwelten/farbwelt_rot.png','color'=>'#B42927','hoherkontrast'=>0) ,'Rosa'=>array('image'=>'./images/farbwelten/farbwelt_rosa.png','color'=>'#CC9999','hoherkontrast'=>0) ,'Lila'=>array('image'=>'./images/farbwelten/farbwelt_lila.png','color'=>'#9E7098','hoherkontrast'=>0) ,'Blau (taubenblau)'=>array('image'=>'./images/farbwelten/farbwelt_taubenblau.png','color'=>'#608CB5', 'hoherkontrast'=>0) ,'Blau (beerenblau)'=>array('image'=>'./images/farbwelten/farbwelt_beerenblau.png','color'=>'#6579A5','hoherkontrast'=>0) ,'Türkis'=>array('image'=>'./images/farbwelten/farbwelt_tuerkis.png','color'=>'#42B8C4','hoherkontrast'=>0) ,'Blau (dunkel)'=>array('image'=>'./images/farbwelten/farbwelt_dunkelblau.png','color'=>'#01367C','hoherkontrast'=>0) ,'Grün (hell)'=>array('image'=>'./images/farbwelten/farbwelt_hellgruen.png','color'=>'#7AB31E','hoherkontrast'=>0) ,'Grün (dunkel)'=>array('image'=>'./images/farbwelten/farbwelt_dunkelgruen.png','color'=>'#405E10','hoherkontrast'=>0) ,'Grau'=>array('image'=>'./images/farbwelten/farbwelt_grau.png','color'=>'#999999','hoherkontrast'=>0) ,'Schwarz'=>array('image'=>'./images/farbwelten/farbwelt_schwarz.png','color'=>'#404040','hoherkontrast'=>1) ); $counter = 0; $this->app->Tpl->Add('THEMESVORSCHAU', '
'); foreach($themes as $k => $v) { if($counter%4 == 0){ $this->app->Tpl->Add('THEMESVORSCHAU', '
'); $this->app->Tpl->Add('THEMESVORSCHAU', '
'); } $this->app->Tpl->Add('THEMESVORSCHAU', '
'.$k.'
'); $counter += 1; } $this->app->Tpl->Add('THEMESVORSCHAU', '
'); $this->app->erp->Headlines('Grundeinstellungen', 'Farbwelten'); $this->app->Tpl->Parse('PAGE','firmendaten_farbwelten.tpl'); } public function FirmendatenNextNumber() { $cmd = $this->app->Secure->GetGET('cmd'); $nummer = $this->app->Secure->GetGET('nummer'); $allowedNumbers = [ 'angebot', 'auftrag', 'rechnung', 'lieferschein', 'retoure', 'gutschrift', 'bestellung', 'arbeitsnachweis', 'reisekosten', 'proformarechnung', 'produktion', 'anfrage', 'kundennummer', 'projektnummer', 'lieferantennummer', 'mitarbeiternummer', 'artikelnummer', 'preisanfrage', 'verbindlichkeit', 'lieferantengutschrift', 'receiptdocument', ]; if(in_array($cmd, $allowedNumbers)) { $this->app->erp->FirmendatenSet('next_'.$cmd, $nummer); } $this->app->Location->execute('index.php?module=firmendaten&action=edit#tabs-6'); } public function FirmendatenTestmail() { if($this->app->erp->Firmendaten('testmailempfaenger')=='') { $msg = $this->app->erp->base64_url_encode( '
Die Testmail wurde nicht versendet, da das Feld "Testmail Empfänger" keinen Wert hat! Bitte tragen Sie dort z.B. Ihre E-Mailadresse ein.
' ); } else if( $this->app->erp->MailSend( $this->app->erp->Firmendaten('email'), $this->app->erp->Firmendaten('absendername'), $this->app->erp->Firmendaten('testmailempfaenger'), $this->app->erp->Firmendaten('testmailempfaenger'), 'OpenXE ERP: Testmail', 'Dies ist eine Testmail', '',0,true,'','', true ) ) { $msg = $this->app->erp->base64_url_encode( '
Die Testmail wurde erfolgreich versendet. '.$this->app->erp->mail_error.'
' ); } else { $msg = $this->app->erp->base64_url_encode( '
Fehler beim Versenden der Testmail: '.$this->app->erp->mail_error.'
' ); } $this->app->Location->execute("index.php?module=firmendaten&action=edit&msg=$msg#tabs-4"); } public function FirmendatenLogoDownload() { $id = $this->app->DB->Select("SELECT MAX(f.id) FROM firma f INNER JOIN firmendaten fd ON f.id = fd.firma LIMIT 1"); if(!$id) { $id = $this->app->DB->Select("SELECT MAX(firma) FROM firmendaten LIMIT 1"); } $logo = $this->app->DB->Select("SELECT logo FROM firmendaten WHERE firma='$id'"); $logo_type = $this->app->erp->Firmendaten('logo_type'); $endung = str_replace('image/','',$logo_type); header('Content-type: '.$logo_type); header('Content-Disposition: attachment; filename="logo.'.$endung.'"'); echo base64_decode($logo); $this->app->ExitXentral(); } public function FirmendatenBriefpapierDownload() { $id = $this->app->DB->Select("SELECT MAX(f.id) FROM firma f INNER JOIN firmendaten fd ON f.id = fd.firma LIMIT 1"); if(!$id) { $id = $this->app->DB->Select("SELECT MAX(firma) FROM firmendaten LIMIT 1"); } $cmd = $this->app->Secure->GetGET('cmd'); switch ($cmd) { case 'briefpapier2': $briefpapier = $this->app->DB->Select("SELECT briefpapier2 FROM firmendaten WHERE firma='$id'"); $filename = 'breifpapier2.pdf'; break; case 'briefpapier1': default: $briefpapier = $this->app->DB->Select("SELECT briefpapier FROM firmendaten WHERE firma='$id'"); $filename = 'breifpapier1.pdf'; break; } header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="' . $filename . '"'); echo base64_decode($briefpapier); $this->app->ExitXentral(); } /** * @return array */ protected function getPaymentMethods() { return [ 'rechnung', 'vorkasse', 'nachnahme', 'lastschrift', 'bar', 'paypal', 'kreditkarte', 'amazon', 'amazon_bestellung', 'secupay', 'sofortueberweisung', 'ratenzahlung', 'eckarte', ]; } /** * @return array */ protected function getPaymentmethodsToHide() { return $this->app->DB->SelectFirstCols( sprintf( "SELECT DISTINCT type FROM zahlungsweisen WHERE aktiv = 1 AND projekt = 0 AND type IN ('%s')", implode("', '", $this->getPaymentMethods()) ) ); } public function FirmendatenEdit() { // Make sure the default values are all there, otherwise they are not editable $this->app->erp->StandardFirmendatenWerte(); if($this->app->Secure->GetPOST('installnewpayent')) { $this->checkPaymentModules(true); } $this->FirmendatenMenu(); $this->app->erp->Headlines('Grundeinstellungen','Bearbeiten'); $this->app->erp->MenuEintrag("index.php?module=einstellungen&action=list","Zurück zur Übersicht"); $this->app->erp->MenuEintrag("index.php?module=firmendaten&action=edit","Übersicht"); $this->app->YUI->CkEditor("signatur","all"); $this->app->YUI->CkEditor("mailgrussformel","all"); if($this->app->erp->Firmendaten("briefhtml")=="1") { $this->app->YUI->CkEditor("freitext1inhalt","belege"); $this->app->YUI->CkEditor("freitext2inhalt","belege"); } $this->app->YUI->HideFormular('zeiterfassung_schliessen',array('unchecked'=>'zeiterfassung_schliessen','checked'=>'dummy')); if($this->app->erp->Firmendaten("briefhtml")=="1") { $this->app->YUI->CkEditor("angebot_header","belege"); $this->app->YUI->CkEditor("angebot_footer","belege"); $this->app->YUI->CkEditor("auftrag_header","belege"); $this->app->YUI->CkEditor("auftrag_footer","belege"); $this->app->YUI->CkEditor("rechnung_header","belege"); $this->app->YUI->CkEditor("rechnung_footer","belege"); $this->app->YUI->CkEditor("lieferschein_header","belege"); $this->app->YUI->CkEditor("lieferschein_footer","belege"); $this->app->YUI->CkEditor("gutschrift_header","belege"); $this->app->YUI->CkEditor("gutschrift_footer","belege"); $this->app->YUI->CkEditor("bestellung_header","belege"); $this->app->YUI->CkEditor("bestellung_footer","belege"); $this->app->YUI->CkEditor("arbeitsnachweis_header","belege"); $this->app->YUI->CkEditor("arbeitsnachweis_footer","belege"); $this->app->YUI->CkEditor("provisionsgutschrift_header","belege"); $this->app->YUI->CkEditor("provisionsgutschrift_footer","belege"); $this->app->YUI->CkEditor("proformarechnung_header","belege"); $this->app->YUI->CkEditor("proformarechnung_footer","belege"); $this->app->YUI->CkEditor("eu_lieferung_vermerk","belege"); $this->app->YUI->CkEditor("export_lieferung_vermerk","belege"); $this->app->YUI->CkEditor("footer_reihenfolge_angebot","belege"); $this->app->YUI->CkEditor("footer_reihenfolge_auftrag","belege"); $this->app->YUI->CkEditor("footer_reihenfolge_rechnung","belege"); $this->app->YUI->CkEditor("footer_reihenfolge_gutschrift","belege"); $this->app->YUI->CkEditor("footer_reihenfolge_lieferschein","belege"); $this->app->YUI->CkEditor("footer_reihenfolge_bestellung","belege"); $this->app->YUI->CkEditor("footer_reihenfolge_proformarechnung","belege"); } $this->app->Tpl->Set('MYSQLVERSION',$this->app->DB->Select('SELECT VERSION( ) AS mysql_version')); if($this->app->erp->Firmendaten("version")==''){ $this->app->erp->FirmendatenSet("version", $this->app->erp->RevisionPlain()); } $lizenz = $this->app->erp->Firmendaten("lizenz"); $schluessel = $this->app->erp->Firmendaten("schluessel"); if($lizenz=='' || $schluessel=='') { if(is_file('../wawision.inc.php')) { $WAWISION = []; include_once('../wawision.inc.php'); $this->app->erp->FirmendatenSet('lizenz',$WAWISION['serial']); $this->app->erp->FirmendatenSet('schluessel',$WAWISION['authkey']); } } $id = $this->app->DB->Select("SELECT MAX(f.id) FROM firma f INNER JOIN firmendaten fd ON f.id = fd.firma LIMIT 1"); if(!$id){ $id = $this->app->DB->Select('SELECT max(id) FROM firma LIMIT 1'); } $this->app->YUI->AutoComplete("projekt","projektname",1); $this->app->YUI->AutoComplete("adresse_vorlage","adresse"); $this->app->YUI->AutoComplete("angebot_pipewiedervorlage","wiedervorlage_stages"); $this->app->YUI->AutoComplete("group_sales", "gruppekennziffer"); $this->app->YUI->AutoComplete("group_employee", "gruppekennziffer"); $this->app->Tpl->Set('NEXT_ANGEBOT_MAX',$this->app->DB->Select("SELECT MAX(belegnr) FROM angebot WHERE DATE_FORMAT(datum,'%Y')=DATE_FORMAT(NOW(),'%Y')")); $this->app->Tpl->Set('NEXT_RECHNUNG_MAX',$this->app->DB->Select("SELECT MAX(belegnr) FROM rechnung WHERE DATE_FORMAT(datum,'%Y')=DATE_FORMAT(NOW(),'%Y')")); $this->app->Tpl->Set('NEXT_AUFTRAG_MAX',$this->app->DB->Select("SELECT MAX(belegnr) FROM auftrag WHERE DATE_FORMAT(datum,'%Y')=DATE_FORMAT(NOW(),'%Y')")); $this->app->Tpl->Set('NEXT_LIEFERSCHEIN_MAX',$this->app->DB->Select("SELECT MAX(belegnr) FROM lieferschein WHERE DATE_FORMAT(datum,'%Y')=DATE_FORMAT(NOW(),'%Y')")); $this->app->Tpl->Set('NEXT_GUTSCHRIFT_MAX',$this->app->DB->Select("SELECT MAX(belegnr) FROM gutschrift WHERE DATE_FORMAT(datum,'%Y')=DATE_FORMAT(NOW(),'%Y')")); $this->app->Tpl->Set('NEXT_BESTELLUNG_MAX',$this->app->DB->Select("SELECT MAX(belegnr) FROM bestellung WHERE DATE_FORMAT(datum,'%Y')=DATE_FORMAT(NOW(),'%Y')")); // $this->app->Tpl->Set('NEXT_ARBEITSNACHWEIS_MAX',$this->app->DB->Select("SELECT MAX(belegnr) FROM arbeitsnachweis WHERE DATE_FORMAT(datum,'%Y')=DATE_FORMAT(NOW(),'%Y')")); $this->app->Tpl->Set('NEXT_KUNDENNUMMER_MAX',$this->app->DB->Select("SELECT MAX(kundennummer) FROM adresse")); $this->app->Tpl->Set('NEXT_LIEFERANTENNUMMER_MAX',$this->app->DB->Select("SELECT MAX(lieferantennummer) FROM adresse")); $this->app->Tpl->Set('NEXT_MITARBEITERNUMMER_MAX',$this->app->DB->Select("SELECT MAX(mitarbeiternummer) FROM adresse")); $this->app->Tpl->Set('NEXT_WAREN_MAX',$this->app->DB->Select("SELECT MAX(nummer) FROM artikel WHERE typ='produkt' OR typ=''")); $this->app->Tpl->Set('NEXT_PRODUKTION_MAX',$this->app->DB->Select("SELECT MAX(nummer) FROM artikel WHERE typ='produktion'")); $this->app->Tpl->Set('NEXT_SONSTIGES_MAX',$this->app->DB->Select("SELECT MAX(nummer) FROM artikel WHERE typ='material' OR typ='fremdleistung' OR typ='gebuehr'")); $this->app->erp->checkActiveCronjob('cleaner', 'MESSAGECLEANER', false); // Hole Post-Daten $data = $this->getPostData(); $testmail = $this->app->Secure->GetPOST("testmail"); $submit = $this->app->Secure->GetPOST("submitFirmendaten"); $submitfreifelder = $this->app->Secure->GetPOST("submitFirmendatenFreifelder"); if($submitfreifelder != '') { $doubletes = []; $firmendaten_werte = $this->app->DB->SelectArr("SELECT * FROM firmendaten_werte"); if($firmendaten_werte) { foreach($firmendaten_werte as $v) { $firmendaten_werte_spalten[$v['name']]['wert'] = $this->app->DB->real_escape_string($v['wert']); if(!empty($firmendaten_werte_spalten[$v['name']]['id'])) { $doubletes[$v['name']][] = $firmendaten_werte_spalten[$v['name']]['id']; } $firmendaten_werte_spalten[$v['name']]['id'] = $this->app->DB->real_escape_string($v['id']); } } for($i = 1; $i <= 20; $i++) { $n1 = 'adressefreifeld'.$i.'typ'; $n2 = 'adressefreifeld'.$i.'spalte'; $v1 = $this->app->Secure->GetPOST($n1); $v2 = $this->app->Secure->GetPOST($n2); /*$this->app->DB->Update("UPDATE firmendaten SET $n1 = '".$v1."', $n2 = '".$v2."' WHERE firma='$id' LIMIT 1");*/ $this->app->erp->FirmendatenSet($n1,$v1); $this->app->erp->FirmendatenSet($n2,$v2); if(isset($firmendaten_werte_spalten)) { if(isset($firmendaten_werte_spalten[$n1]) && $firmendaten_werte_spalten[$n1]['wert'] != $v1) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v1' WHERE id = '".$firmendaten_werte_spalten[$n1]['id']."' LIMIT 1"); if(!empty($doubletes[$n1])) { $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$n1]['id'], $this->app->DB->real_escape_string($n1), implode(', ', $doubletes[$n1]) ) ); unset($doubletes[$n1]); } unset($firmendaten_werte_spalten[$n1]); } if(isset($firmendaten_werte_spalten[$n2]) && $firmendaten_werte_spalten[$n2]['wert'] != $v2) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v2' WHERE id = '".$firmendaten_werte_spalten[$n2]['id']."' LIMIT 1"); if(!empty($doubletes[$n2])) { $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$n2]['id'], $this->app->DB->real_escape_string($n2), implode(', ', $doubletes[$n2]) ) ); unset($doubletes[$n2]); } unset($firmendaten_werte_spalten[$n2]); } } } for($i = 1; $i <= 20; $i++) { $n1 = 'projektfreifeld'.$i.'typ'; $n2 = 'projektfreifeld'.$i.'spalte'; $v1 = $this->app->Secure->GetPOST($n1); $v2 = $this->app->Secure->GetPOST($n2); /* $this->app->DB->Update("UPDATE firmendaten SET $n1 = '".$v1."', $n2 = '".$v2."' WHERE firma='$id' LIMIT 1"); */ $this->app->erp->FirmendatenSet($n1,$v1); $this->app->erp->FirmendatenSet($n2,$v2); if(isset($firmendaten_werte_spalten)) { if(isset($firmendaten_werte_spalten[$n1]) && $firmendaten_werte_spalten[$n1]['wert'] != $v1) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v1' WHERE id = '".$firmendaten_werte_spalten[$n1]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n1]); if(!empty($doubletes[$n1])) { $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$n1]['id'], $this->app->DB->real_escape_string($n1), implode(', ', $doubletes[$n1]) ) ); unset($doubletes[$n1]); } } if(isset($firmendaten_werte_spalten[$n2]) && $firmendaten_werte_spalten[$n2]['wert'] != $v2) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v2' WHERE id = '".$firmendaten_werte_spalten[$n2]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n2]); if(!empty($doubletes[$n2])) { $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$n2]['id'], $this->app->DB->real_escape_string($n2), implode(', ', $doubletes[$n2]) ) ); unset($doubletes[$n2]); } } } } $toupdate = null; /* for($in = 1; $in <= 40; $in++) { $toupdate[] = 'freifeld'.$in; } for($in = 1; $in <= 20; $in++) { $toupdate[] = 'projektfreifeld'.$in; } for($in = 1; $in <= 20; $in++) { $toupdate[] = 'adressefreifeld'.$in; } $sql2a = null; foreach($toupdate as $v) { $data[$v] = $this->app->Secure->GetPOST($v); $sql2a[] = $v ." = '".$data[$v]."' "; } $sql2 = "UPDATE firmendaten SET ".implode(',',$sql2a)." WHERE firma = '$id' LIMIT 1"; unset($sql2a); $this->app->DB->Update($sql2);*/ for($in = 1; $in <= 40; $in++) { $field = 'freifeld'.$in; $this->app->erp->FirmendatenSet($field,$this->app->Secure->GetPOST($field)); } for($in = 1; $in <= 20; $in++) { $field = 'projektfreifeld'.$in; $this->app->erp->FirmendatenSet($field,$this->app->Secure->GetPOST($field)); $field = 'adressefreifeld'.$in; $this->app->erp->FirmendatenSet($field,$this->app->Secure->GetPOST($field)); } if($this->app->DB->error()) { foreach($toupdate as $v) { $data[$v] = $this->app->Secure->GetPOST($v); $this->app->DB->Update("UPDATE firmendaten SET ".$v." = '".($data[$v])."'"." WHERE firma = '$id' LIMIT 1"); } } $toupdate[] = 'parameterundfreifelder'; for($in = 1; $in <= 40; $in++) { $freifeldarr = array('typ','spalte','sort','an','ab','re','gs','ls','be','pr','pa','pd'); foreach($freifeldarr as $v) { $toupdate[] = 'freifeld'.$in.$v; } } for($in = 1; $in <= 20; $in++) { $freifeldarr = array('typ','spalte','sort'); foreach($freifeldarr as $v) { $toupdate[] = 'adressefreifeld'.$in.$v; } $toupdate[] = 'adressefreifeld'.$in; } for($in = 1; $in <= 20; $in++) { $freifeldarr = array('sort','tabelle','breite'); foreach($freifeldarr as $v) { $toupdate[] = 'projektfreifeld'.$in.$v; } } if(isset($firmendaten_werte_spalten)) { foreach($toupdate as $key) { $data[$key] = $this->app->Secure->GetPOST($key); if(isset($firmendaten_werte_spalten[$key]) && $firmendaten_werte_spalten[$key]['wert'] != $data[$key]) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '".$data[$key]."' WHERE id = '".$firmendaten_werte_spalten[$key]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$key]); if(!empty($doubletes[$key])) { $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$key]['id'], $this->app->DB->real_escape_string($key), implode(', ', $doubletes[$key]) ) ); unset($doubletes[$key]); } } } } } if($submit!='') { $versandmail_zwischenspeichern = $this->app->erp->Firmendaten('versandmail_zwischenspeichern','', true); $error = ''; $logo_error = ''; $briefpapier_error = ''; $firmenlogo_error = ''; // Seite 2 if(!empty($_FILES['firmenlogo']['tmp_name']) && $_FILES['firmenlogo']['size']>0) { $firmenlogo_error = $this->app->erp->checkImage($_FILES['firmenlogo'],0,0,0,3); if($firmenlogo_error=='') { if(!($firmenlogo = $this->app->erp->uploadSettigsFile($_FILES['firmenlogo'],'firmenlogo'))){ $firmenlogo = $this->app->erp->uploadFileIntoDB($_FILES['firmenlogo']); } $this->app->DB->Update("UPDATE firmendaten SET firmenlogo='{$firmenlogo['file']}' WHERE firma='$id'"); } else{ $error .= "$firmenlogo_error
"; } } if(!empty($_FILES['logo']['tmp_name']) && $_FILES['logo']['size']>0) { $logo_error = $this->app->erp->checkImage($_FILES['logo']); if($logo_error=='') { if(!($logo = $this->app->erp->uploadSettigsImage($_FILES['logo'],'logo'))){ $logo = $this->app->erp->uploadImageIntoDB($_FILES['logo']); } $data['hintergrund'] = 'logo'; $data['briefpapier2vorhanden'] = 0; $this->app->erp->FirmendatenSet('logo_type',$logo['type']); $this->app->erp->FirmendatenSet('hintergrund','logo'); $this->app->DB->Update("UPDATE firmendaten SET logo='{$logo['image']}' WHERE firma='$id' LIMIT 1"); } else{ $error .= "$logo_error
"; } } if ($data['hintergrund'] === 'logo') { //pruefe ob logo vorhanden $logo = $this->app->erp->getSettingsFile('logo'); if(strlen($logo)<10){ $error .= 'Geben Sie bitte ein Logo zum Hochladen an.
'; } } // Seite 2 if(!empty($_FILES['briefpapier2']['tmp_name']) && $_FILES['briefpapier2']['size']>0) { $briefpapier2_error = $this->app->erp->checkFile($_FILES['briefpapier2'],'application/pdf'); if($briefpapier2_error=='') { if(!($briefpapier2 = $this->app->erp->uploadSettigsFile($_FILES['briefpapier2'],'briefpapier2'))) { $briefpapier2 = $this->app->erp->uploadFileIntoDB($_FILES['briefpapier2']); } $data['hintergrund'] = 'briefpapier'; $data['briefpapier2vorhanden'] = 1; $this->app->erp->FirmendatenSet('hintergrund','briefpapier'); $this->app->DB->Update("UPDATE firmendaten SET briefpapier2='{$briefpapier2['file']}' WHERE firma='$id'"); } else{ $error .= "$briefpapier2_error
"; } } // Seite 1 if(!empty($_FILES['briefpapier']['tmp_name']) && $_FILES['briefpapier']['size']>0) { $briefpapier_error = $this->app->erp->checkFile($_FILES['briefpapier'],'application/pdf'); if($briefpapier_error=='') { if(!($briefpapier = $this->app->erp->uploadSettigsFile($_FILES['briefpapier'],'briefpapier2'))){ $briefpapier = $this->app->erp->uploadFileIntoDB($_FILES['briefpapier']); } $data['hintergrund'] = 'briefpapier'; $this->app->erp->FirmendatenSet('briefpapier_type',$briefpapier['type']); $this->app->erp->FirmendatenSet('hintergrund','briefpapier'); $this->app->DB->Update("UPDATE firmendaten SET briefpapier='{$briefpapier['file']}' WHERE firma='$id'"); } else{ $error .= "$briefpapier_error
"; } } else{ $briefpapier = $this->app->erp->getSettingsFile('briefpapier'); } if(isset($data['sprachebevorzugen'])){ $this->savePreferredLanguage($data['sprachebevorzugen']); } // Schriftarten-Upload if(!empty($_FILES['schriftart_upload'])){ $fontUploadSuccessful = null; $fontUploadName = $this->app->Secure->GetPOST('schriftart_upload_bezeichnung'); $fontUploadSize = (int)$_FILES['schriftart_upload']['size']['normal'] + (int)$_FILES['schriftart_upload']['size']['kursiv'] + (int)$_FILES['schriftart_upload']['size']['fett'] + (int)$_FILES['schriftart_upload']['size']['fettkursiv']; // Es wurde mindestens eine Datei hochgeladen if ($fontUploadSize > 0) { try { // Wenn keine Exception geworfen wurde, dann ist alles hochgeladen. $this->HandleFontUpload($fontUploadName, $_FILES['schriftart_upload']); $data['schriftart'] = $fontUploadName; $fontUploadSuccessful = true; } catch (Exception $e) { $error .= $e->getMessage() . '
'; $fontUploadSuccessful = false; } } } if($error=='') { $vorhanden = $this->app->DB->Select("SELECT id FROM firmendaten WHERE firma='$id' LIMIT 1"); if(!is_numeric($vorhanden)) { $this->app->DB->Insert("INSERT INTO firmendaten (firma) VALUES ('$id')"); } // Update Bilder // suche max nummern //suche projekt ID von abkuerzung $data['projekt'] = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='{$data['projekt']}' LIMIT 1"); // wenn cloud hole data[lizenz] data[schluessel] if(!($this->app->Conf->WFcloud==true)) { $extendsql = "lizenz='{$data['lizenz']}', schluessel='{$data['schluessel']}'"; $this->app->DB->Update("UPDATE firmendaten SET $extendsql WHERE firma='$id' LIMIT 1"); } $firmendaten_werte = $this->app->DB->SelectArr("SELECT * FROM firmendaten_werte"); if(!empty($firmendaten_werte)) { foreach($firmendaten_werte as $v) { $firmendaten_werte_spalten[$v['name']]['wert'] = $this->app->DB->real_escape_string($v['wert']); $firmendaten_werte_spalten[$v['name']]['id'] = $this->app->DB->real_escape_string($v['id']); } } $toupdate = array('absender','sichtbar','rechnung_gutschrift_ansprechpartner','knickfalz','standardaufloesung','standardversanddrucker','standardetikettendrucker','etikettendrucker_wareneingang','barcode','aufgaben_bondrucker' ,'schriftgroesse','betreffszeile','dokumententext','tabellenbeschriftung','tabelleninhalt','zeilenuntertext','freitext','infobox','brieftext','spaltenbreite','seite_von_sichtbar','seite_von_ausrichtung','footersichtbar','briefpapier2vorhanden' ,'hintergrund','benutzername','abstand_adresszeileoben','abstand_boxrechtsoben','abstand_boxrechtsoben_lr','abstand_betreffzeileoben','abstand_artikeltabelleoben','abstand_name_beschreibung','artikel_suche_kurztext' ,'adresse_freitext1_suche','artikel_freitext1_suche','artikel_suche_variante_von','artikel_artikelnummer_suche' ,'standard_datensaetze_datatables','waehrung','branch' ,'warnung_doppelte_nummern','wareneingang_zwischenlager','boxausrichtung' ,'footer_breite1','footer_breite2','footer_breite3','footer_breite4','steuersatz_normal','steuersatz_ermaessigt','angebot_ohnebriefpapier','auftrag_ohnebriefpapier','rechnung_ohnebriefpapier', 'lieferschein_ohnebriefpapier','gutschrift_ohnebriefpapier','bestellung_ohnebriefpapier','arbeitsnachweis_ohnebriefpapier','externereinkauf' ,'projektnummerimdokument','mailanstellesmtp','herstellernummerimdokument','artikeleinheit','artikeleinheit_standard','auftrag_bezeichnung_bearbeiter','auftrag_bezeichnung_bestellnummer','bezeichnungkundennummer' ,'auftrag_bezeichnung_vertrieb','standardmarge','schriftart' ,'zahlung_rechnung','zahlung_vorkasse','zahlung_nachnahme','zahlung_bar','zahlung_paypal','zahlung_amazon','zahlung_lastschrift','zahlung_kreditkarte','zahlung_ratenzahlung','zahlung_rechnung_sofort_de','zahlung_rechnung_de' ,'zahlung_vorkasse_de','zahlung_bar_de','zahlung_lastschrift_de','zahlung_nachnahme_de','zahlung_paypal_de','zahlung_amazon_de','zahlung_kreditkarte_de','zahlung_ratenzahlung_de','zahlungszieltage','zahlungszieltageskonto' ,'zahlungszielskonto','kleinunternehmer','schnellanlegen','bestellvorschlaggroessernull','immernettorechnungen','rechnung_header','rechnung_footer', 'lieferschein_header','lieferschein_footer','auftrag_header','auftrag_footer','angebot_header','angebot_footer','gutschrift_header','gutschrift_footer','bestellung_header','bestellung_footer', 'arbeitsnachweis_header','arbeitsnachweis_footer','provisionsgutschrift_header','provisionsgutschrift_footer','proformarechnung_header','proformarechnung_footer','eu_lieferung_vermerk','export_lieferung_vermerk' ,'wareneingang_kamera_waage','layout_iconbar','passwort','host','port','mailssl','signatur','email','absendername','bcc1','bcc2','bcc3' ,'firmenfarbe','name','strasse','plz','ort','steuernummer','projekt','steuer_positionen_export','tabsnavigationfarbe','tabsnavigationfarbeschrift' ,"buchhaltung_berater","buchhaltung_mandant","buchhaltung_wj_beginn","buchhaltung_sachkontenlaenge", "fibu_buchungen_startdatum", "rechnung_skonto_kontorahmen" ); if(isset($sql2a)){ unset($sql2a); } foreach($toupdate as $v) { $check = $this->app->DB->SELECT("SHOW COLUMNS FROM firmendaten WHERE Field = '$v'"); if ($check) { $this->app->DB->Update("UPDATE firmendaten SET ".$v." = '".($data[$v])."'"." WHERE firma = '$id' LIMIT 1"); } } if (isset($firmendaten_werte_spalten)) { foreach($toupdate as $key) { if(isset($firmendaten_werte_spalten[$key])) { if ($firmendaten_werte_spalten[$key]['wert'] != $data[$key]) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '".$data[$key]."' WHERE id = '".$firmendaten_werte_spalten[$key]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$key]); if(!empty($doubletes[$key])) { $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$key]['id'], $this->app->DB->real_escape_string($key), implode(', ', $doubletes[$key]) ) ); unset($doubletes[$key]); } } } else { // Create new value in firmendaten_werte $sql = "INSERT INTO firmendaten_werte (name, wert) VALUES('$key', '".$data[$key]."')"; $this->app->DB->Update($sql); } } } for($i = 0; $i <= 3; $i++) { for($j = 0; $j <= 5; $j++) { $toupdate2['footer_'.$i.'_'.$j] = $data['footer'][$i][$j]; } } foreach($toupdate2 as $k => $v) { $check = $this->app->DB->SELECT("SHOW COLUMNS FROM firmendaten WHERE Field = '$k'"); if ($check) { $this->app->DB->Update("UPDATE firmendaten SET ".$k." = '".$v."'"." WHERE firma = '$id' LIMIT 1"); } } if(isset($firmendaten_werte_spalten)) { foreach($toupdate2 as $key => $v) { if(isset($firmendaten_werte_spalten[$key]) && $firmendaten_werte_spalten[$key]['wert'] != $toupdate2[$key]) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '".$toupdate2[$key]."' WHERE id = '".$firmendaten_werte_spalten[$key]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$key]); if(!empty($doubletes[$key])) { $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$key]['id'], $this->app->DB->real_escape_string($key), implode(', ', $doubletes[$key]) ) ); unset($doubletes[$key]); } } } } $checkDoublettes = []; for($i = 1; $i <= 5; $i++) { $n1 = 'artikeltabellezusatz'.$i; $n2 = 'adressetabellezusatz'.$i; $n3 = 'auftragtabellezusatz'.$i; $n4 = 'rechnungtabellezusatz'.$i; $n5 = 'lieferscheintabellezusatz'.$i; $n6 = 'produktiontabellezusatz'.$i; $n7 = 'bestellungtabellezusatz'.$i; $v1 = $this->app->Secure->GetPOST($n1); $v2 = $this->app->Secure->GetPOST($n2); $v3 = $this->app->Secure->GetPOST($n3); $v4 = $this->app->Secure->GetPOST($n4); $v5 = $this->app->Secure->GetPOST($n5); $v6 = $this->app->Secure->GetPOST($n6); $v7 = $this->app->Secure->GetPOST($n7); if(isset($firmendaten_werte_spalten)) { if(isset($firmendaten_werte_spalten[$n1]) && $firmendaten_werte_spalten[$n1]['wert'] != $v1) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v1' WHERE id = '".$firmendaten_werte_spalten[$n1]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n1]); $checkDoublettes[] = $n1; } if(isset($firmendaten_werte_spalten[$n2]) && $firmendaten_werte_spalten[$n2]['wert'] != $v2) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v2' WHERE id = '".$firmendaten_werte_spalten[$n2]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n2]); $checkDoublettes[] = $n2; } if(isset($firmendaten_werte_spalten[$n3]) && $firmendaten_werte_spalten[$n3]['wert'] != $v3) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v3' WHERE id = '".$firmendaten_werte_spalten[$n3]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n3]); $checkDoublettes[] = $n3; } if(isset($firmendaten_werte_spalten[$n4]) && $firmendaten_werte_spalten[$n4]['wert'] != $v4) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v4' WHERE id = '".$firmendaten_werte_spalten[$n4]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n4]); $checkDoublettes[] = $n4; } if(isset($firmendaten_werte_spalten[$n5]) && $firmendaten_werte_spalten[$n5]['wert'] != $v5) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v5' WHERE id = '".$firmendaten_werte_spalten[$n5]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n5]); $checkDoublettes[] = $n5; } if(isset($firmendaten_werte_spalten[$n6]) && $firmendaten_werte_spalten[$n6]['wert'] != $v6) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v6' WHERE id = '".$firmendaten_werte_spalten[$n6]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n6]); $checkDoublettes[] = $n6; } if(isset($firmendaten_werte_spalten[$n7]) && $firmendaten_werte_spalten[$n7]['wert'] != $v7) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '$v7' WHERE id = '".$firmendaten_werte_spalten[$n7]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$n7]); $checkDoublettes[] = $n7; } } } if(!empty($checkDoublettes) && !empty($doubletes)) { foreach($checkDoublettes as $key) { if(!empty($doubletes[$key])){ $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$key]['id'], $this->app->DB->real_escape_string($key), implode(', ', $doubletes[$key]) ) ); unset($doubletes[$key]); } } } $fields = $this->app->erp->GetFirmaFields(); $fields[] = 'produktionsverhalten'; $fields[] = 'taxfromdoctypesettings'; $sqla = null; foreach($fields as $key) { if(isset($firmendaten_werte_spalten)) { if(isset($firmendaten_werte_spalten[$key]) && $firmendaten_werte_spalten[$key]['wert'] != $data[$key]) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '".$data[$key]."' WHERE id = '".$firmendaten_werte_spalten[$key]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$key]); if(!empty($doubletes[$key])){ $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$key]['id'], $this->app->DB->real_escape_string($key), implode(', ', $doubletes[$key]) ) ); unset($doubletes[$key]); } } } $sqla[] = " $key='{$data[$key]}' "; } /* $sql = "UPDATE firmendaten SET ".implode(', ',$sqla)." WHERE firma='$id' LIMIT 1"; $this->app->DB->Update($sql); */ // if($this->app->DB->error()) { foreach($fields as $key) { $check = $this->app->DB->SELECT("SHOW COLUMNS FROM firmendaten WHERE Field = '$key'"); if ($check) { $this->app->DB->Update("UPDATE firmendaten SET $key='{$data[$key]}' WHERE firma='$id' LIMIT 1"); } } // } $fields_checkbox = $this->app->erp->GetFirmaFieldsCheckbox(); if(isset($sqla)){ unset($sqla); } foreach($fields_checkbox as $key) { $_data[$key] = $data[$key]; if($_data[$key] === 'checked'){ $_data[$key] = 1; } $_data[$key] = (int)$_data[$key]; $sqla[] = " $key='{$_data[$key]}' "; if(isset($firmendaten_werte_spalten) && isset($firmendaten_werte_spalten[$key]) && $firmendaten_werte_spalten[$key]['wert'] != $_data[$key]) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '".$_data[$key]."' WHERE id = '".$firmendaten_werte_spalten[$key]['id']."' LIMIT 1"); if(in_array($key,array('begrenzen_belege','begrenzen_artikeltabelle','begrenzen_adressetabelle'))) { $this->app->erp->SetKonfigurationValue('firmendaten_'.$key.'_gesetzt', 1); } unset($firmendaten_werte_spalten[$key]); } } /* $sql = "UPDATE firmendaten SET ".implode(', ',$sqla)." WHERE firma='$id' LIMIT 1"; $this->app->DB->Update($sql); */ // if($this->app->DB->error()) { foreach($fields_checkbox as $key) { $_data[$key] = $data[$key]; if($_data[$key] === 'checked'){ $_data[$key] = 1; } $_data[$key] = (int)$_data[$key]; $check = $this->app->DB->SELECT("SHOW COLUMNS FROM firmendaten WHERE Field = '$key'"); if ($check) { $this->app->DB->Update("UPDATE firmendaten SET $key='{$_data[$key]}' WHERE firma='$id' LIMIT 1"); } } // } $firmendaten = $this->app->DB->SelectArr("SELECT * FROM firmendaten WHERE firma='$id' LIMIT 1"); if($firmendaten && isset($firmendaten_werte_spalten)) { foreach($firmendaten[0] as $key => $v) { if($key !== 'id' && isset($data[$key])) { if(isset($firmendaten_werte_spalten[$key]) && $firmendaten_werte_spalten[$key]['wert'] != $data[$key]) { $this->app->DB->Update("UPDATE firmendaten_werte SET wert = '".$data[$key]."' WHERE id = '".$firmendaten_werte_spalten[$key]['id']."' LIMIT 1"); unset($firmendaten_werte_spalten[$key]); if(!empty($doubletes[$key])){ $this->app->DB->Delete( sprintf( "DELETE FROM firmendaten_werte WHERE id <> %d AND name != '%s' AND id IN (%s)", $firmendaten_werte_spalten[$key]['id'], $this->app->DB->real_escape_string($key), implode(', ', $doubletes[$key]) ) ); unset($doubletes[$key]); } } } } } $this->app->DB->Update("UPDATE firma SET name='{$data['name']}', standardprojekt='{$data['projekt']}' WHERE id='$id' LIMIT 1"); $this->app->Tpl->Set('MESSAGE', "
Ihre Daten wurden erfolgreich gespeichert.
"); $this->FillFormFromDB($id); } else { // Im Fehlerfall sollen das Formular mit den POST-Daten gefuellt werden $this->app->Tpl->Set('MESSAGE', "
$error
"); $this->fillForm($data); } if(!$versandmail_zwischenspeichern && $this->app->erp->Firmendaten('versandmail_zwischenspeichern','',true) && !$this->app->DB->Select("SELECT id FROM prozessstarter WHERE parameter = 'versandmailsundrueckmeldung' AND aktiv = 1")){ $this->app->DB->Update("UPDATE prozessstarter SET aktiv = 1 WHERE parameter = 'versandmailsundrueckmeldung' LIMIT 1"); } } else{ $this->FillFormFromDB($id); } if($this->app->erp->Firmendaten('versandmail_zwischenspeichern',"",true)){ $this->app->erp->checkActiveCronjob('versandmailsundrueckmeldung', 'MESSAGEMAILS', false); } if (isset($fontUploadSuccessful) && $fontUploadSuccessful === true){ $this->app->Tpl->Add('MESSAGE', sprintf('
Die Schriftart "%s" wurde erfolgreich hochgeladen und in den Einstellungen hinterlegt. Bitte Testen Sie die Einstellung durch Generierung eines Belegs.
', $fontUploadName) ); } $hintergrund=$this->app->erp->Firmendaten("hintergrund"); $hintergrund_size = 0; switch($hintergrund) { case "briefpapier": $hintergrund_size = strlen($this->app->erp->getSettingsFile('briefpapier')); break; case "logo": $hintergrund_size = strlen($this->app->erp->getSettingsFile('logo')); break; } if($hintergrund_size/1000 > 100){ $this->app->Tpl->Add('MESSAGE', '
Die Dateigröße von ca. ' . round($hintergrund_size / 1000) . ' KB vom ' . ucfirst($hintergrund) . ' ist zu groß. Das ' . ucfirst($hintergrund) . ' sollte unter 100 KB sein.
'); } if($this->app->erp->Firmendaten('lizenz', true)) { $this->app->Tpl->Set('UPDATESTARTENBUTTON',' '); } $getPaymentmethodsToHide = $this->getPaymentmethodsToHide(); if(!empty($getPaymentmethodsToHide)) { $this->app->Tpl->Add( 'MESSAGEZAHLUNGSWEISEN', '
Bitte stellen Sie die Zahlungstexte in den Zahlungsweisen ein.
' ); foreach($getPaymentmethodsToHide as $paymentMethod) { $this->app->Tpl->Add('TR_ZAHLUNG_'.strtoupper($paymentMethod), ' class="hide" '); } } if(!empty($this->getNotInstalledPayments())) { $this->app->Tpl->Add( 'MESSAGEZAHLUNGSWEISEN', '
Ab der Version 20.1 sind alle Zahlweisen in das Modul Zahlweisen verlagert worden. Sie sehen diese Meldung weil Sie vor der Version 20.1 mit Xentral gestartet hatten. Wenn Sie auf das neue Modul welchseln möchten (bitte nur nachdem Sie es in einem Testsystem geprüft hatten) können Sie das gerne hier mit dem Button durchführen.
' ); } $this->app->YUI->AutoComplete('steuersatz_normal','steuersatz',1); $this->app->YUI->AutoComplete('steuersatz_ermaessigt','steuersatz',1); $this->app->YUI->DatePicker('fibu_buchungen_startdatum'); $this->app->YUI->AutoComplete('rechnung_skonto_kontorahmen', 'sachkonto'); $this->app->Tpl->Parse('PAGE','firmendaten.tpl'); } /** * @param int $id */ function fillFormFromDB($id) { $vorhanden = $this->app->DB->Select("SELECT id FROM firmendaten WHERE firma='$id' LIMIT 1"); if(!is_numeric($vorhanden)) { // Falls das Formular zum ersten mal aufgerufen wird $this->app->Tpl->Set('SICHTBAR' , "checked"); $this->app->Tpl->Set('HINTERGRUNDKEIN', "checked"); }else { // Lade Formular aus DB $data = $this->app->DB->SelectArr("SELECT * FROM firmendaten WHERE firma='$id' LIMIT 1"); $firmendaten_werte = $this->app->DB->SelectArr("SELECT * FROM firmendaten_werte"); if($firmendaten_werte) { foreach($firmendaten_werte as $v) { if(!isset($data[0][$v['name']])){ $data[0][$v['name']] = $v['wert']; } // Fill all fields $this->app->Tpl->Set(strtoupper($v['name']), $v['wert']); } } //Brief Absender $this->app->Tpl->Set('ABSENDER' , $data[0]['absender']); $this->app->Tpl->Set('SICHTBAR' , $this->parseCheckbox($data[0]['sichtbar'])); $this->app->Tpl->Set('RECHNUNG_GUTSCHRIFT_ANSPRECHPARTNER' , $this->parseCheckbox($data[0]['rechnung_gutschrift_ansprechpartner'])); $this->app->Tpl->Set('KNICKFALZ' , $this->parseCheckbox($data[0]['knickfalz'])); $this->app->Tpl->Set('STANDARDAUFLOESUNG', $this->parseCheckbox($data[0]['standardaufloesung'])); //$this->app->Tpl->Set('FIRMENLOGOAKTIV' , $this->parseCheckbox($data[0]['firmenlogoaktiv'])); $this->app->Tpl->Set('ARTIKELSUCHEKURZTEXT' , $this->parseCheckbox($data[0]['artikel_suche_kurztext'])); $this->app->Tpl->Set('ARTIKELSUCHEVARIANTEVON' , $this->parseCheckbox($data[0]['artikel_suche_variante_von'])); $this->app->Tpl->Set('ARTIKEL_FREITEXT1_SUCHE' , $this->parseCheckbox($data[0]['artikel_freitext1_suche'])); $this->app->Tpl->Set('ADRESSE_FREITEXT1_SUCHE' , $this->parseCheckbox($data[0]['adresse_freitext1_suche'])); $this->app->Tpl->Set('PARAMETERUNDFREIFELDER' , $this->parseCheckbox($data[0]['parameterundfreifelder'])); $this->app->Tpl->Set('ARTIKEL_ARTIKELNUMMER_SUCHE' , $this->parseCheckbox($data[0]['artikel_artikelnummer_suche'])); for($in = 1; $in <= 40; $in++){ $this->app->Tpl->Set('FREIFELD'.$in , $data[0]['freifeld'.$in]); } for($in = 1; $in <= 20; $in++){ $this->app->Tpl->Set('PROJEKTFREIFELD'.$in , $data[0]['projektfreifeld'.$in]); } $this->app->Tpl->Set('STANDARD_DATENSAETZE_DATATABLES' , $data[0]['standard_datensaetze_datatables']); $this->app->Tpl->Set('STEUERSATZNORMAL' , $data[0]['steuersatz_normal']); $this->app->Tpl->Set('STEUERSATZERMAESSIGT' , $data[0]['steuersatz_ermaessigt']); $this->app->Tpl->Set('WAEHRUNG' , $data[0]['waehrung']); $this->app->Tpl->Set('LIZENZ' , $data[0]['lizenz']); $this->app->Tpl->Set('SCHLUESSEL' , $data[0]['schluessel']); $this->app->Tpl->Set('BRANCH' , $data[0]['branch']); $this->app->Tpl->Set('VERSION' , $data[0]['version']); $this->app->Tpl->Set('BOXAUSRICHTUNG' , $data[0]['boxausrichtung']); $this->app->Tpl->Set('FOOTERBREITE1' , $data[0]['footer_breite1']); $this->app->Tpl->Set('FOOTERBREITE2' , $data[0]['footer_breite2']); $this->app->Tpl->Set('FOOTERBREITE3' , $data[0]['footer_breite3']); $this->app->Tpl->Set('FOOTERBREITE4' , $data[0]['footer_breite4']); $this->app->Tpl->Set('WARNUNG_DOPPELTE_NUMMERN' , $this->parseCheckbox($data[0]['warnung_doppelte_nummern'])); $this->app->Tpl->Set('WARENEINGANG_ZWISCHENLAGER' , $this->parseCheckbox($data[0]['wareneingang_zwischenlager'])); //Formatierung $this->app->Tpl->Set('BARCODE' , $this->parseCheckbox($data[0]['barcode'])); $this->app->Tpl->Set('SCHRIFTGROESSE' , ($data[0]['schriftgroesse'])); $this->app->Tpl->Set('BETREFFSZEILE' , ($data[0]['betreffszeile'])); $this->app->Tpl->Set('DOKUMENTENTEXT' , ($data[0]['dokumententext'])); $this->app->Tpl->Set('TABELLENBESCHRIFTUNG' , ($data[0]['tabellenbeschriftung'])); $this->app->Tpl->Set('TABELLENINHALT' , ($data[0]['tabelleninhalt'])); $this->app->Tpl->Set('ZEILENUNTERTEXT' , ($data[0]['zeilenuntertext'])); $this->app->Tpl->Set('FREITEXT' , ($data[0]['freitext'])); $this->app->Tpl->Set('BRIEFTEXT' , ($data[0]['brieftext'])); $this->app->Tpl->Set('INFOBOX' , ($data[0]['infobox'])); $this->app->Tpl->Set('SPALTENBREITE' , ($data[0]['spaltenbreite'])); $this->app->Tpl->Set('ABSTANDADRESSZEILEOBEN' , ($data[0]['abstand_adresszeileoben'])); $this->app->Tpl->Set('ABSTANDBOXRECHTSOBEN' , ($data[0]['abstand_boxrechtsoben'])); $this->app->Tpl->Set('ABSTANDBOXRECHTSOBENLR' , ($data[0]['abstand_boxrechtsoben_lr'])); $this->app->Tpl->Set('ABSTANDBETREFFZEILEOBEN' , ($data[0]['abstand_betreffzeileoben'])); $this->app->Tpl->Set('ABSTANDARTIKELTABELLEOBEN' , ($data[0]['abstand_artikeltabelleoben'])); $this->app->Tpl->Set('ABSTANDNAMEBESCHREIBUNG' , ($data[0]['abstand_name_beschreibung'])); $this->app->Tpl->Set('ARTIKELEINHEITSTANDARD' , ($data[0]['artikeleinheit_standard'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BEARBEITER' , ($data[0]['auftrag_bezeichnung_bearbeiter'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_VERTRIEB' , ($data[0]['auftrag_bezeichnung_vertrieb'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BESTELLNUMMER' , ($data[0]['auftrag_bezeichnung_bestellnummer'])); $this->app->Tpl->Set('BEZEICHNUNGKUNDENNUMMER' , ($data[0]['bezeichnungkundennummer'])); // Footer $this->app->Tpl->Set('FOOTER00' , $data[0]['footer_0_0']); $this->app->Tpl->Set('FOOTER01' , $data[0]['footer_0_1']); $this->app->Tpl->Set('FOOTER02' , $data[0]['footer_0_2']); $this->app->Tpl->Set('FOOTER03' , $data[0]['footer_0_3']); $this->app->Tpl->Set('FOOTER04' , $data[0]['footer_0_4']); $this->app->Tpl->Set('FOOTER05' , $data[0]['footer_0_5']); $this->app->Tpl->Set('FOOTER10' , $data[0]['footer_1_0']); $this->app->Tpl->Set('FOOTER11' , $data[0]['footer_1_1']); $this->app->Tpl->Set('FOOTER12' , $data[0]['footer_1_2']); $this->app->Tpl->Set('FOOTER13' , $data[0]['footer_1_3']); $this->app->Tpl->Set('FOOTER14' , $data[0]['footer_1_4']); $this->app->Tpl->Set('FOOTER15' , $data[0]['footer_1_5']); $this->app->Tpl->Set('FOOTER20' , $data[0]['footer_2_0']); $this->app->Tpl->Set('FOOTER21' , $data[0]['footer_2_1']); $this->app->Tpl->Set('FOOTER22' , $data[0]['footer_2_2']); $this->app->Tpl->Set('FOOTER23' , $data[0]['footer_2_3']); $this->app->Tpl->Set('FOOTER24' , $data[0]['footer_2_4']); $this->app->Tpl->Set('FOOTER25' , $data[0]['footer_2_5']); $this->app->Tpl->Set('FOOTER30' , $data[0]['footer_3_0']); $this->app->Tpl->Set('FOOTER31' , $data[0]['footer_3_1']); $this->app->Tpl->Set('FOOTER32' , $data[0]['footer_3_2']); $this->app->Tpl->Set('FOOTER33' , $data[0]['footer_3_3']); $this->app->Tpl->Set('FOOTER34' , $data[0]['footer_3_4']); $this->app->Tpl->Set('FOOTER35' , $data[0]['footer_3_5']); $this->app->Tpl->Set('RECHNUNG_HEADER' , $data[0]['rechnung_header']); $this->app->Tpl->Set('LIEFERSCHEIN_HEADER' , $data[0]['lieferschein_header']); $this->app->Tpl->Set('GUTSCHRIFT_HEADER' , $data[0]['gutschrift_header']); $this->app->Tpl->Set('ANGEBOT_HEADER' , $data[0]['angebot_header']); $this->app->Tpl->Set('AUFTRAG_HEADER' , $data[0]['auftrag_header']); $this->app->Tpl->Set('BESTELLUNG_HEADER' , $data[0]['bestellung_header']); $this->app->Tpl->Set('ARBEITSNACHWEIS_HEADER' , $data[0]['arbeitsnachweis_header']); $this->app->Tpl->Set('PROVISIONSGUTSCHRIFT_HEADER' , $data[0]['provisionsgutschrift_header']); $this->app->Tpl->Set('PROFORMARECHNUNG_HEADER' , $data[0]['proformarechnung_header']); $this->app->Tpl->Set('RECHNUNG_FOOTER' , $data[0]['rechnung_footer']); $this->app->Tpl->Set('LIEFERSCHEIN_FOOTER' , $data[0]['lieferschein_footer']); $this->app->Tpl->Set('GUTSCHRIFT_FOOTER' , $data[0]['gutschrift_footer']); $this->app->Tpl->Set('ANGEBOT_FOOTER' , $data[0]['angebot_footer']); $this->app->Tpl->Set('AUFTRAG_FOOTER' , $data[0]['auftrag_footer']); $this->app->Tpl->Set('BESTELLUNG_FOOTER' , $data[0]['bestellung_footer']); $this->app->Tpl->Set('ARBEITSNACHWEIS_FOOTER' , $data[0]['arbeitsnachweis_footer']); $this->app->Tpl->Set('PROVISIONSGUTSCHRIFT_FOOTER' , $data[0]['provisionsgutschrift_footer']); $this->app->Tpl->Set('PROFORMARECHNUNG_FOOTER' , $data[0]['proformarechnung_footer']); $this->app->Tpl->Set('EU_LIEFERUNG_VERMERK' , $data[0]['eu_lieferung_vermerk']); $this->app->Tpl->Set('EXPORT_LIEFERUNG_VERMERK' , $data[0]['export_lieferung_vermerk']); $this->app->Tpl->Set('STANDARDVERSANDDRUCKER' , $this->app->erp->GetSelectDrucker($data[0]['standardversanddrucker'])); $this->app->Tpl->Set('STANDARDETIKETTENDRUCKER' , $this->app->erp->GetSelectEtikettenDrucker($data[0]['standardetikettendrucker'])); $this->app->Tpl->Set('ETIKETTENDRUCKERWARENEINGANG' , $this->app->erp->GetSelectEtikettenDrucker($data[0]['etikettendrucker_wareneingang'])); $this->app->Tpl->Set('AUFGABEN_BONDRUCKER' , $this->app->erp->GetSelectBonDrucker($data[0]['aufgaben_bondrucker'])); $this->app->Tpl->Set('SPRACHEBEVORZUGEN', $this->languageSelectOptions($this->getPreferredLanguage())); $stichwoerter = $this->app->erp->getDateiTypen('artikel'); foreach ($stichwoerter as $stichwort){ $selected = ''; if ($stichwort['wert'] === $data[0]['wareneingangbildtypvorauswahl']){ $selected = 'selected'; } $this->app->Tpl->Add('WARENEINGANBILDTYPVORAUSWAHL',''); } $scanVerhalten = [ 'nurseriennummern' => 'Nur Seriennummern erfassen', 'erstseriennummern' => 'Erst Seriennummern dann Bemerkungen erfassen', 'abwechselnd' => 'Seriennummern und Bemerkungen abwechselnd erfassen']; foreach ($scanVerhalten as $verhalten => $bezeichnung){ $selected = ''; if ($verhalten === $data[0]['wareneingangscanverhalten']){ $selected = 'selected'; } $this->app->Tpl->Add('WARENEINGANGSCANVERHALTENAUSWAHL',""); } $this->app->Tpl->Set('FOOTERSICHTBAR' , $this->parseCheckbox($data[0]['footersichtbar'])); $this->app->Tpl->Set('BRIEFPAPIER2VORHANDEN' , $this->parseCheckbox($data[0]['briefpapier2vorhanden'])); $this->app->Tpl->Set('ANGEBOT_OHNEBRIEFPAPIER' , $this->parseCheckbox($data[0]['angebot_ohnebriefpapier'])); $this->app->Tpl->Set('AUFTRAG_OHNEBRIEFPAPIER' , $this->parseCheckbox($data[0]['auftrag_ohnebriefpapier'])); $this->app->Tpl->Set('RECHNUNG_OHNEBRIEFPAPIER' , $this->parseCheckbox($data[0]['rechnung_ohnebriefpapier'])); $this->app->Tpl->Set('LIEFERSCHEIN_OHNEBRIEFPAPIER' , $this->parseCheckbox($data[0]['lieferschein_ohnebriefpapier'])); $this->app->Tpl->Set('GUTSCHRIFT_OHNEBRIEFPAPIER' , $this->parseCheckbox($data[0]['gutschrift_ohnebriefpapier'])); $this->app->Tpl->Set('BESTELLUNG_OHNEBRIEFPAPIER' , $this->parseCheckbox($data[0]['bestellung_ohnebriefpapier'])); $this->app->Tpl->Set('ARBEITSNACHWEIS_OHNEBRIEFPAPIER' , $this->parseCheckbox($data[0]['arbeitsnachweis_ohnebriefpapier'])); $this->app->Tpl->Set('EXTERNEREINKAUF' , $this->parseCheckbox($data[0]['externereinkauf'])); $this->app->Tpl->Set('PROJEKTNUMMERIMDOKUMENT' , $this->parseCheckbox($data[0]['projektnummerimdokument'])); $this->app->Tpl->Set('MAILANSTELLESMTP' , $this->parseCheckbox($data[0]['mailanstellesmtp'])); $this->app->Tpl->Set('HERSTELLERNUMMERIMDOKUMENT' , $this->parseCheckbox($data[0]['herstellernummerimdokument'])); $this->app->Tpl->Set('ARTIKELEINHEIT' , $this->parseCheckbox($data[0]['artikeleinheit'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BEARBEITER' , $data[0]['auftrag_bezeichnung_bearbeiter']); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_VETRIEB' , $data[0]['auftrag_bezeichnung_vertrieb']); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BESTELLNUMMER' , $data[0]['auftrag_bezeichnung_bestellnummer']); $this->app->Tpl->Set('BEZEICHNUNGKUNDENNUMMER' , $data[0]['bezeichnungkundennummer']); $this->app->Tpl->Set('STANDARDMARGE' , $data[0]['standardmarge']); $this->app->Tpl->Set('SEITEVONSICHTBAR' , $this->parseCheckbox($data[0]['seite_von_sichtbar'])); $this->app->Tpl->Set('SEITEVONAUSRICHTUNG' , $data[0]['seite_von_ausrichtung']); $this->app->Tpl->Set('SCHRIFTART' , $data[0]['schriftart']); $this->app->Tpl->Set('FIRMENFARBEHELL',$data[0]['firmenfarbehell']); $this->app->Tpl->Set('FIRMENFARBEDUNKEL',$data[0]['firmenfarbedunkel']); $this->app->Tpl->Set('FIRMENFARBEGANZDUNKEL',$data[0]['firmenfarbeganzdunkel']); $this->app->Tpl->Set('NAVIGATIONFARBE',$data[0]['navigationfarbe']); $this->app->Tpl->Set('NAVIGATIONFARBESCHRIFT',$data[0]['navigationfarbeschrift']); $this->app->Tpl->Set('TABSNAVIGATIONFARBE',$data[0]['tabsnavigationfarbe']); $this->app->Tpl->Set('TABSNAVIGATIONFARBESCHRIFT',$data[0]['tabsnavigationfarbeschrift']); $this->app->Tpl->Set('UNTERNAVIGATIONFARBE',$data[0]['unternavigationfarbe']); $this->app->Tpl->Set('UNTERNAVIGATIONFARBESCHRIFT',$data[0]['unternavigationfarbeschrift']); $this->app->Tpl->Set('ZAHLUNG_RECHNUNG' , $this->parseCheckbox($data[0]['zahlung_rechnung'])); $this->app->Tpl->Set('ZAHLUNG_VORKASSE' , $this->parseCheckbox($data[0]['zahlung_vorkasse'])); $this->app->Tpl->Set('ZAHLUNG_NACHNAHME' , $this->parseCheckbox($data[0]['zahlung_nachnahme'])); $this->app->Tpl->Set('ZAHLUNG_LASTSCHRIFT' , $this->parseCheckbox($data[0]['zahlung_lastschrift'])); $this->app->Tpl->Set('ZAHLUNG_BAR' , $this->parseCheckbox($data[0]['zahlung_bar'])); $this->app->Tpl->Set('ZAHLUNG_KREDITKARTE' , $this->parseCheckbox($data[0]['zahlung_kreditkarte'])); $this->app->Tpl->Set('ZAHLUNG_PAYPAL' , $this->parseCheckbox($data[0]['zahlung_paypal'])); $this->app->Tpl->Set('ZAHLUNG_AMAZON' , $this->parseCheckbox($data[0]['zahlung_amazon'])); $this->app->Tpl->Set('ZAHLUNG_RATENZAHLUNG' , $this->parseCheckbox($data[0]['zahlung_ratenzahlung'])); $this->app->Tpl->Set('KLEINUNTERNEHMER' , $this->parseCheckbox($data[0]['kleinunternehmer'])); $this->app->Tpl->Set('SCHNELLANLEGEN' , $this->parseCheckbox($data[0]['schnellanlegen'])); $this->app->Tpl->Set('BESTELLVORSCHLAGSGROESSERNULL' , $this->parseCheckbox($data[0]['bestellvorschlaggroessernull'])); $this->app->Tpl->Set('IMMERNETTORECHNUNGEN' , $this->parseCheckbox($data[0]['immernettorechnungen'])); $this->app->Tpl->Set('ZAHLUNG_RECHNUNG_SOFORT_DE', $data[0]['zahlung_rechnung_sofort_de']); $this->app->Tpl->Set('ZAHLUNG_RECHNUNG_DE', $data[0]['zahlung_rechnung_de']); $this->app->Tpl->Set('STEUER_POSITIONEN_EXPORT', $data[0]['steuer_positionen_export']); $fields = $this->app->erp->GetFirmaFields(); foreach($fields as $key) { $this->app->Tpl->Set(strtoupper($key), $data[0][$key]); if(in_array($key,array('begrenzenanzahl_belege','begrenzenanzahl_artikeltabelle','begrenzenanzahl_adressetabelle'))) { if(empty($data[0][$key])) { $this->app->Tpl->Set('VOR'.strtoupper($key),''); } } } $fields = null; for($ki = 1; $ki <= 40; $ki++) { $fields[]='freifeld'.$ki.'typ'; $fields[]='freifeld'.$ki.'spalte'; $fields[]='freifeld'.$ki.'sort'; } for($ki = 1; $ki <= 20; $ki++) { $fields[]='projektfreifeld'.$ki.'typ'; $fields[]='projektfreifeld'.$ki.'spalte'; $fields[]='projektfreifeld'.$ki.'sort'; $fields[]='projektfreifeld'.$ki.'tabelle'; $fields[]='projektfreifeld'.$ki.'breite'; } for($ki = 1; $ki <= 20; $ki++) { $fields[]='adressefreifeld'.$ki; $fields[]='adressefreifeld'.$ki.'sort'; } foreach($fields as $key) { $this->app->Tpl->Set(strtoupper($key), $data[0][$key]); } $tmp = null; $belege = array('an','ab','re','gs','ls','be','pr','pa','pd'); foreach($belege as $value) { for($i=1;$i<=40;$i++) { $tmp[] = 'freifeld' . $i . $value; } } foreach($tmp as $key) { $this->app->Tpl->Set(strtoupper($key), $this->parseCheckbox($data[0][$key])); } $fields_checkbox = $this->app->erp->GetFirmaFieldsCheckbox(); foreach($fields_checkbox as $key) { $this->app->Tpl->Set(strtoupper($key), $this->parseCheckbox($data[0][$key])); } $this->app->Tpl->Set('VERSANDART', $this->app->erp->GetSelectAsso($this->app->erp->GetVersandartAuftrag(),$data[0]['versandart'])); $this->app->Tpl->Set('ZAHLUNGSWEISE', $this->app->erp->GetSelectAsso($this->app->erp->GetZahlungsweise(),$data[0]['zahlungsweise'])); $this->app->Tpl->Set('ZAHLUNGSWEISELIEFERANT', $this->app->erp->GetSelectAsso($this->app->erp->GetZahlungsweise(),$data[0]['zahlungsweiselieferant'])); $this->app->Tpl->Set('WAEHRUNG', $this->app->erp->GetSelectAsso( $this->app->erp->GetWaehrung(),(string)$data[0]['waehrung'] === '' ? 'EUR' : $data[0]['waehrung']) ); $this->app->Tpl->Set('ZAHLUNG_VORKASSE_DE', $data[0]['zahlung_vorkasse_de']); $this->app->Tpl->Set('ZAHLUNG_NACHNAHME_DE', $data[0]['zahlung_nachnahme_de']); $this->app->Tpl->Set('ZAHLUNG_BAR_DE', $data[0]['zahlung_bar_de']); $this->app->Tpl->Set('ZAHLUNG_PAYPAL_DE', $data[0]['zahlung_paypal_de']); $this->app->Tpl->Set('ZAHLUNG_LASTSCHRIFT_DE', $data[0]['zahlung_lastschrift_de']); $this->app->Tpl->Set('ZAHLUNG_KREDITKARTE_DE', $data[0]['zahlung_kreditkarte_de']); $this->app->Tpl->Set('ZAHLUNG_AMAZON_DE', $data[0]['zahlung_amazon_de']); $this->app->Tpl->Set('ZAHLUNG_RATENZAHLUNG_DE', $data[0]['zahlung_ratenzahlung_de']); $this->app->Tpl->Set('ZAHLUNGSZIELTAGE', $data[0]['zahlungszieltage']); $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTO', $data[0]['zahlungszieltageskonto']); $this->app->Tpl->Set('ZAHLUNGSZIELSKONTO', $data[0]['zahlungszielskonto']); $this->app->Tpl->Set('WARENEINGANG_KAMERA_WAAGE', $this->parseCheckbox($data[0]['wareneingang_kamera_waage'])); $this->app->Tpl->Set('LAYOUT_ICONBAR', $this->parseCheckbox($data[0]['layout_iconbar'])); $this->app->Tpl->Set('NEXT_ANGEBOT' , $data[0]['next_angebot']); $this->app->Tpl->Set('NEXT_AUFTRAG' , $data[0]['next_auftrag']); $this->app->Tpl->Set('NEXT_LIEFERSCHEIN' , $data[0]['next_lieferschein']); $this->app->Tpl->Set('NEXT_RETOURE' , $data[0]['next_retoure']); $this->app->Tpl->Set('NEXT_RECHNUNG' , $data[0]['next_rechnung']); $this->app->Tpl->Set('NEXT_GUTSCHRIFT' , $data[0]['next_gutschrift']); $this->app->Tpl->Set('NEXT_BESTELLUNG' , $data[0]['next_bestellung']); $this->app->Tpl->Set('NEXT_ARBEITSNACHWEIS' , $data[0]['next_arbeitsnachweis']); $this->app->Tpl->Set('NEXT_KUNDENNUMMER' , $data[0]['next_kundennummer']); $this->app->Tpl->Set('NEXT_PROJEKTNUMMER' , $data[0]['next_projektnummer']); $this->app->Tpl->Set('NEXT_LIEFERANTENNUMMER' , $data[0]['next_lieferantennummer']); $this->app->Tpl->Set('NEXT_MITARBEITERNUMMER' , $data[0]['next_mitarbeiternummer']); $this->app->Tpl->Set('NEXT_ARTIKELNUMMER' , $data[0]['next_artikelnummer']); $this->app->Tpl->Set('NEXT_WAREN' , $data[0]['next_waren']); $this->app->Tpl->Set('NEXT_SONSTIGES' , $data[0]['next_sonstiges']); $this->app->Tpl->Set('NEXT_PRODUKTION' , $data[0]['next_produktion']); $this->app->Tpl->Set('NEXT_REISEKOSTEN', $data[0]['next_reisekosten']); $this->app->Tpl->Set('NEXT_PROFORMARECHNUNG', $data[0]['next_proformarechnung']); $this->app->Tpl->Set('NEXT_ANFRAGE' , $data[0]['next_anfrage']); $this->app->Tpl->Set('NEXT_PREISANFRAGE' , $data[0]['next_preisanfrage']); $this->app->Tpl->Set('NEXT_VERBINDLICHKEIT', $data[0]['next_verbindlichkeit']); $this->app->Tpl->Set('NEXT_LIEFERANTENGUTSCHRIFT', $data[0]['next_lieferantengutschrift']); $this->app->Tpl->Set('NEXT_RECEIPTDOCUMENT', $data[0]['next_receiptdocument']); //Briefpapier Hintergrund if($data[0]['hintergrund']==='logo') { $this->app->Tpl->Set('HINTERGRUNDLOGO', "checked"); $this->app->Tpl->Set('HINTERGRUNDLOGOTEXT', "Logo herunterladen"); $this->app->Tpl->Set('HINTERGRUNDTEXT', "Logo (ansehen)"); } else if($data[0]['hintergrund']==='briefpapier') { $this->app->Tpl->Set('HINTERGRUNDBRIEFPAPIER', "checked"); $this->app->Tpl->Set('HINTERGRUNDBRIEFPAPIERTEXT', "PDF herunterladen"); $this->app->Tpl->Set('HINTERGRUNDTEXT', "PDF (ansehen)"); } else { $this->app->Tpl->Set('HINTERGRUNDKEIN', "checked"); $this->app->Tpl->Set('HINTERGRUNDTEXT', "Kein"); } if ((int)$data[0]['briefpapier2vorhanden'] === 1) { $this->app->Tpl->Set('HINTERGRUNDBRIEFPAPIER2TEXT', "PDF herunterladen"); } // Signatur $this->app->Tpl->Set('SIGNATUR' , base64_decode($data[0]['signatur'])); $this->app->Tpl->Set('EMAIL', $this->app->erp->GetSelectEmail($data[0]['email'])); $this->app->Tpl->Set('ABSENDERNAME' , $data[0]['absendername']); $this->app->Tpl->Set('BCC1' , $data[0]['bcc1']); $this->app->Tpl->Set('BCC2' , $data[0]['bcc2']); $this->app->Tpl->Set('BCC3' , $data[0]['bcc3']); $this->app->Tpl->Set('FIRMENFARBE' , $data[0]['firmenfarbe']); $this->app->Tpl->Set('NAME' , $data[0]['name']); $this->app->Tpl->Set('STRASSE' , $data[0]['strasse']); $this->app->Tpl->Set('PLZ' , $data[0]['plz']); $this->app->Tpl->Set('ORT' , $data[0]['ort']); $this->app->Tpl->Set('STEUERNUMMER' , $data[0]['steuernummer']); $data[0]['projekt'] = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id='{$data[0]['projekt']}' LIMIT 1"); $this->app->Tpl->Set('PROJEKT' , $data[0]['projekt']); $this->app->Tpl->Set('STANDARDVERSANDDRUCKER' , $this->app->erp->GetSelectDrucker($data[0]['standardversanddrucker'])); $this->app->Tpl->Set('STANDARDETIKETTENDRUCKER' , $this->app->erp->GetSelectEtikettenDrucker($data[0]['standardetikettendrucker'])); $this->app->Tpl->Set('ETIKETTENDRUCKERWARENEINGANG' , $this->app->erp->GetSelectEtikettenDrucker($data[0]['etikettendrucker_wareneingang'])); $this->app->Tpl->Set('AUFGABEN_BONDRUCKER' , $this->app->erp->GetSelectBonDrucker($data[0]['aufgaben_bondrucker'])); if($this->app->Conf->WFcloud==true) { $this->app->Tpl->Set('LIZENZ',"Cloud Lizenz"); $this->app->Tpl->Set('SCHLUESSEL',"Cloud Schluessel"); } $freifeldtyp = array('einzeilig'=>'einzeilig','mehrzeilig'=>'mehrzeilig','datum'=>'Datum','checkbox' => 'Checkbox','select'=>'Selectfeld'); $adressefreifeldspalten = array('0'=>'keine','1'=>'1','2'=>'2'); $projektfreifeldspalten = array('0'=>'keine','1'=>'1'); for($i = 1; $i <= 40; $i++) { $fftyp = ""; $ffspalte =""; foreach($freifeldtyp as $k => $v) { $fftyp .= ''; } foreach($adressefreifeldspalten as $k => $v) { $ffspalte .= ''; } $tr = 'Freifeld '.$i.': '; $tr .=''; $this->app->Tpl->Add('ARTIKELFREIFELDER',$tr); } $artikelzusatzfelder = $this->app->erp->getZusatzfelderArtikel(); $adressezusatzfelder = $this->app->erp->getZusatzfelderAdresse(); $auftragzusatzfelder = $this->app->erp->getZusatzfelderAuftrag(); $rechnungzusatzfelder = $this->app->erp->getZusatzfelderRechnung(); $lieferscheinzusatzfelder = $this->app->erp->getZusatzfelderLieferschein(); $produktionzusatzfelder = $this->app->erp->getZusatzfelderProduktion(); $bestellungzusatzfelder = $this->app->erp->getZusatzfelderBestellung(); for($i = 1; $i <= 5; $i++) { foreach($artikelzusatzfelder as $k => $v) { $this->app->Tpl->Add('SELARTIKELTABELLEZUSATZ'.$i,''); } foreach($adressezusatzfelder as $k => $v) { $this->app->Tpl->Add('SELADRESSETABELLEZUSATZ'.$i,''); } foreach($auftragzusatzfelder as $k => $v) { $this->app->Tpl->Add('SELAUFTRAGTABELLEZUSATZ'.$i,''); } foreach($rechnungzusatzfelder as $k => $v) { $this->app->Tpl->Add('SELRECHNUNGTABELLEZUSATZ'.$i,''); } foreach($lieferscheinzusatzfelder as $k => $v) { $this->app->Tpl->Add('SELLIEFERSCHEINTABELLEZUSATZ'.$i,''); } foreach($produktionzusatzfelder as $k => $v) { $this->app->Tpl->Add('SELPRODUKTIONTABELLEZUSATZ'.$i,''); } foreach($bestellungzusatzfelder as $k => $v) { $this->app->Tpl->Add('SELBESTELLUNGTABELLEZUSATZ'.$i,''); } } for($i = 1; $i <= 20; $i++) { foreach($freifeldtyp as $k => $v) { $this->app->Tpl->Add('PROJEKTFREIFELD'.$i.'TYP',''); } foreach($projektfreifeldspalten as $k => $v) { $this->app->Tpl->Add('PROJEKTFREIFELD'.$i.'SPALTE',''); } } for($i = 1; $i <= 20; $i++) { foreach($freifeldtyp as $k => $v) { $this->app->Tpl->Add('ADRESSEFREIFELD'.$i.'TYP',''); } foreach($adressefreifeldspalten as $k => $v) { $this->app->Tpl->Add('ADRESSEFREIFELD'.$i.'SPALTE',''); } } $produktionsverhalten = $data[0]['produktionsverhalten']; $produktionsverhaltenarr['explodieren'] = '{|Unterstücklisten auflösen|}'; $produktionsverhaltenarr['ersteebene'] = '{|Unterstücklisten nicht auflösen|}'; if($produktionsverhalten === 'unterproduktionen' || $this->app->erp->ModulVorhanden('unterproduktionen')) { $produktionsverhaltenarr['unterproduktionen'] = '{|Unterproduktionen anlegen|}'; } foreach($produktionsverhaltenarr as $k => $v) { $this->app->Tpl->Add('PRODUKTIONSVERHALTEN',''); } if(!empty($data[0]['taxfromdoctypesettings'])) { $this->app->Tpl->Set('OPTIONTAXFROMDOCTYPESETTINGS', ' selected="selected" '); } // Fibu $this->app->Tpl->Set('FIBU_BUCHUNGEN_STARTDATUM', $this->app->erp->ReplaceDatum(false,$data[0]['fibu_buchungen_startdatum'],false)); $this->app->Tpl->Set('RECHNUNG_SKONTO_KONTORAHMEN', $this->app->erp->ReplaceKontorahmen(false,$data[0]['rechnung_skonto_kontorahmen'])); } } /** * @param array $data */ function fillForm($data) { //Brief Absender $this->app->Tpl->Set('ABSENDER' , $data['absender']); $this->app->Tpl->Set('SICHTBAR' , $this->parseCheckbox($data['sichtbar'])); $this->app->Tpl->Set('RECHNUNG_GUTSCHRIFT_ANSPRECHPARTNER' , $this->parseCheckbox($data['rechnung_gutschrift_ansprechpartner'])); $this->app->Tpl->Set('KNICKFALZ' , $this->parseCheckbox($data['knickfalz'])); $this->app->Tpl->Set('STANDARDAUFLOESUNG' , $this->parseCheckbox($data['standardaufloesung'])); $this->app->Tpl->Set('ARTIKELSUCHEKURZTEXT' , $this->parseCheckbox($data['artikel_suche_kurztext'])); $this->app->Tpl->Set('ARTIKELSUCHEVARIANTEVON' , $this->parseCheckbox($data['artikel_suche_variante_von'])); $this->app->Tpl->Set('ADRESSE_FREITEXT1_SUCHE' , $this->parseCheckbox($data['adresse_freitext1_suche'])); $this->app->Tpl->Set('ADRESSE_FREITEXT1_SUCHE' , $this->parseCheckbox($data['adresse_freitext1_suche'])); $this->app->Tpl->Set('PARAMETERUNDFREIFELDER' , $this->parseCheckbox($data['parameterundfreifelder'])); for($in = 1; $in <= 40; $in++) { $this->app->Tpl->Set('FREIFELD'.$in , $data['freifeld'.$in]); } for($in = 1; $in <= 20; $in++) { $this->app->Tpl->Set('PROJEKTFREIFELD'.$in , $data['projektfreifeld'.$in]); } $this->app->Tpl->Set('STANDARD_DATENSAETZE_DATATABLES' , $data['standard_datensaetze_datatables']); $this->app->Tpl->Set('STEUERSATZNORMAL' , $data['steuersatz_normal']); $this->app->Tpl->Set('STEUERSATZERMAESSIGT' , $data['steuersatz_ermaessigt']); $this->app->Tpl->Set('LIZENZ' , $data['lizenz']); $this->app->Tpl->Set('SCHLUESSEL' , $data['schluessel']); $this->app->Tpl->Set('BRANCH' , $data['branch']); $this->app->Tpl->Set('VERSION' , $data['version']); $this->app->Tpl->Set('WARNUNG_DOPPELTE_NUMMERN' , $this->parseCheckbox($data['warnung_doppelte_nummern'])); $this->app->Tpl->Set('WARENEINGANG_ZWISCHENLAGER' , $this->parseCheckbox($data['wareneingang_zwischenlager'])); $this->app->Tpl->Set('BOXAUSRICHTUNG' , $data['boxausrichtung']); $this->app->Tpl->Set('FOOTERBREITE1' , $data['footer_breite1']); $this->app->Tpl->Set('FOOTERBREITE2' , $data['footer_breite2']); $this->app->Tpl->Set('FOOTERBREITE3' , $data['footer_breite3']); $this->app->Tpl->Set('FOOTERBREITE4' , $data['footer_breite4']); //Formatierung $this->app->Tpl->Set('BARCODE' , $this->parseCheckbox($data['barcode'])); $this->app->Tpl->Set('SCHRIFTGROESSE' , ($data['schriftgroesse'])); $this->app->Tpl->Set('BETREFFSZEILE' , ($data['betreffszeile'])); $this->app->Tpl->Set('DOKUMENTENTEXT' , ($data['dokumententext'])); $this->app->Tpl->Set('TABELLENBESCHRIFTUNG' , ($data['tabellenbeschriftung'])); $this->app->Tpl->Set('TABELLENINHALT' , ($data['tabelleninhalt'])); $this->app->Tpl->Set('ZEILENUNTERTEXT' , ($data['zeilenuntertext'])); $this->app->Tpl->Set('FREITEXT' , ($data['freitext'])); $this->app->Tpl->Set('BRIFTEXT' , ($data['brieftext'])); $this->app->Tpl->Set('INFOBOX' , ($data['infobox'])); $this->app->Tpl->Set('SPALTENBREITE' , ($data['spaltenbreite'])); $this->app->Tpl->Set('ABSTANDADRESSZEILEOBEN' , ($data['abstand_adresszeileoben'])); $this->app->Tpl->Set('ABSTANDBOXRECHTSOBEN' , ($data['abstand_boxrechtsoben'])); $this->app->Tpl->Set('ABSTANDBOXRECHTSOBENLR' , ($data['abstand_boxrechtsoben_lr'])); $this->app->Tpl->Set('ABSTANDBETREFFZEILEOBEN' , ($data['abstand_betreffzeileoben'])); $this->app->Tpl->Set('ABSTANDARTIKELTABELLEOBEN' , ($data['abstand_artikeltabelleoben'])); $this->app->Tpl->Set('ABSTANDNAMEBESCHREIBUNG' , ($data['abstand_name_beschreibung'])); $this->app->Tpl->Set('ARTIKELEINHEIT_STANDARD' , ($data['artikeleinheit_standard'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BEARBEITER', ($data['auftrag_bezeichnung_bearbeiter'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_VERTRIEB', ($data['auftrag_bezeichnung_vertrieb'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BESTELLNUMMER', ($data['auftrag_bezeichnung_bestellnummer'])); $this->app->Tpl->Set('BEZEICHNUNGKUNDENNUMMER', ($data['bezeichnungkundennummer'])); //Footer for($x=0; $x < 4; $x++) { for ($y = 0; $y < 6; $y++) { $this->app->Tpl->Set('FOOTER'.$x.$y, $data['footer'][$x][$y]); } } $this->app->Tpl->Set('FOOTERSICHTBAR' , $this->parseCheckbox($data['footersichtbar'])); $this->app->Tpl->Set('STANDARDAUFLOESUNG' , $this->parseCheckbox($data['standardaufloesung'])); $this->app->Tpl->Set('BRIEFPAPIER2VORHANDEN' , $this->parseCheckbox($data['briefpapier2vorhanden'])); $this->app->Tpl->Set('SEITEVONSICHTBAR' , $this->parseCheckbox($data['seite_von_sichtbar'])); $this->app->Tpl->Set('SEITEVONAUSRICHTUNG' , $data['seite_von_ausrichtung']); $this->app->Tpl->Set('ANGEBOT_OHNEBRIEFPAPIER' , $this->parseCheckbox($data['angebot_ohnebriefpapier'])); $this->app->Tpl->Set('AUFTRAG_OHNEBRIEFPAPIER' , $this->parseCheckbox($data['auftrag_ohnebriefpapier'])); $this->app->Tpl->Set('RECHNUNG_OHNEBRIEFPAPIER' , $this->parseCheckbox($data['rechnung_ohnebriefpapier'])); $this->app->Tpl->Set('LIEFERSCHEIN_OHNEBRIEFPAPIER' , $this->parseCheckbox($data['lieferschein_ohnebriefpapier'])); $this->app->Tpl->Set('GUTSCHRIFT_OHNEBRIEFPAPIER' , $this->parseCheckbox($data['gutschrift_ohnebriefpapier'])); $this->app->Tpl->Set('BESTELLUNG_OHNEBRIEFPAPIER' , $this->parseCheckbox($data['bestellung_ohnebriefpapier'])); $this->app->Tpl->Set('ARBEITSNACHWEIS_OHNEBRIEFPAPIER' , $this->parseCheckbox($data['arbeitsnachweis_ohnebriefpapier'])); $this->app->Tpl->Set('EXTERNEREINKAUF' , $this->parseCheckbox($data['externereinkauf'])); $this->app->Tpl->Set('PROJEKTNUMMERIMDOKUMENT' , $this->parseCheckbox($data['projektnummerimdokument'])); $this->app->Tpl->Set('MAILANSTELLESMTP' , $this->parseCheckbox($data['mailanstellesmtp'])); $this->app->Tpl->Set('HERSTELLERNUMMERIMDOKUMENT' , $this->parseCheckbox($data['herstellernummerimdokument'])); $this->app->Tpl->Set('ARTIKELEINHEIT' , $this->parseCheckbox($data['artikeleinheit'])); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BEARBEITER' , $data['auftrag_bezeichnung_bearbeiter']); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_VERTRIEB' , $data['auftrag_bezeichnung_vertrieb']); $this->app->Tpl->Set('AUFTRAG_BEZEICHNUNG_BESTELLNUMMER' , $data['auftrag_bezeichnung_bestellnummer']); $this->app->Tpl->Set('BEZEICHNUNGNUMMER' , $data['bezeichnungkundennummer']); $this->app->Tpl->Set('STANDARDMARGE' , $data['standardmarge']); $this->app->Tpl->Set('STANDARDVERSANDDRUCKER' , $this->app->erp->GetSelectDrucker($data['standardversanddrucker'])); $this->app->Tpl->Set('STANDARDETIKETTENDRUCKER' , $this->app->erp->GetSelectEtikettenDrucker($data['standardetikettendrucker'])); $this->app->Tpl->Set('ETIKETTENDRUCKERWARENEINGANG' , $this->app->erp->GetSelectEtikettenDrucker($data['etikettendrucker_wareneingang'])); $this->app->Tpl->Set('AUFGABEN_BONDRUCKER' , $this->app->erp->GetSelectBonDrucker($data['aufgaben_bondrucker'])); $this->app->Tpl->Set('SCHRIFTART' , $data['schriftart']); $this->app->Tpl->Set('FIRMENFARBEHELL',$data['firmenfarbehell']); $this->app->Tpl->Set('FIRMENFARBEDUNKEL',$data['firmenfarbedunkel']); $this->app->Tpl->Set('FIRMENFARBEGANZDUNKEL',$data['firmenfarbeganzdunkel']); $this->app->Tpl->Set('NAVIGATIONFARBE',$data['navigationfarbe']); $this->app->Tpl->Set('NAVIGATIONFARBESCHRIFT',$data['navigationfarbeschrift']); $this->app->Tpl->Set('TABSNAVIGATIONFARBE',$data['tabsnavigationfarbe']); $this->app->Tpl->Set('TABSNAVIGATIONFARBESCHRIFT',$data['tabsnavigationfarbeschrift']); $this->app->Tpl->Set('UNTERNAVIGATIONFARBE',$data['unternavigationfarbe']); $this->app->Tpl->Set('UNTERNAVIGATIONFARBESCHRIFT',$data['unternavigationfarbeschrift']); $this->app->Tpl->Set('ZAHLUNG_RECHNUNG' , $this->parseCheckbox($data['zahlung_rechnung'])); $this->app->Tpl->Set('ZAHLUNG_VORKASSE' , $this->parseCheckbox($data['zahlung_vorkasse'])); $this->app->Tpl->Set('ZAHLUNG_NACHNAHME' , $this->parseCheckbox($data['zahlung_nachnahme'])); $this->app->Tpl->Set('ZAHLUNG_LASTSCHRIFT' , $this->parseCheckbox($data['zahlung_lastschrift'])); $this->app->Tpl->Set('ZAHLUNG_BAR' , $this->parseCheckbox($data['zahlung_bar'])); $this->app->Tpl->Set('ZAHLUNG_KREDITKARTE' , $this->parseCheckbox($data['zahlung_kreditkarte'])); $this->app->Tpl->Set('ZAHLUNG_PAYPAL' , $this->parseCheckbox($data['zahlung_paypal'])); $this->app->Tpl->Set('ZAHLUNG_AMAZON' , $this->parseCheckbox($data['zahlung_amazon'])); $this->app->Tpl->Set('ZAHLUNG_RATENZAHLUNG' , $this->parseCheckbox($data['zahlung_ratenzahlung'])); $this->app->Tpl->Set('KLEINUNTERNEHMER' , $this->parseCheckbox($data['kleinunternehmer'])); $this->app->Tpl->Set('STEUER_POSITIONEN_EXPORT' , $this->parseCheckbox($data['steuer_positionen_export'])); $this->app->Tpl->Set('SCHNELLANLEGEN' , $this->parseCheckbox($data['schnellanlegen'])); $this->app->Tpl->Set('BESTELLVORSCHLAGSGROESSERNULL' , $this->parseCheckbox($data['bestellvorschlaggroessernull'])); $this->app->Tpl->Set('IMMERNETTORECHNUNGEN' , $this->parseCheckbox($data['immernettorechnungen'])); $this->app->Tpl->Set('ZAHLUNG_RECHNUNG_SOFORT_DE', $data['zahlung_rechnung_sofort_de']); $this->app->Tpl->Set('ZAHLUNG_RECHNUNG_DE', $data['zahlung_rechnung_de']); $fields = $this->app->erp->GetFirmaFields(); foreach($fields as $key) { $this->app->Tpl->Set(strtoupper($key), $data[$key]); } $fields_checkbox = $this->app->erp->GetFirmaFieldsCheckbox(); foreach($fields_checkbox as $key) { $this->app->Tpl->Set(strtoupper($key), $this->parseCheckbox($data[$key])); } $this->app->Tpl->Set('ZAHLUNG_VORKASSE_DE', $data['zahlung_vorkasse_de']); $this->app->Tpl->Set('ZAHLUNG_NACHNAHME_DE', $data['zahlung_nachnahme_de']); $this->app->Tpl->Set('ZAHLUNG_LASTSCHRIFT_DE', $data['zahlung_lastschrift_de']); $this->app->Tpl->Set('ZAHLUNG_AMAZON_DE', $data['zahlung_amazon_de']); $this->app->Tpl->Set('ZAHLUNG_BAR_DE', $data['zahlung_bar_de']); $this->app->Tpl->Set('ZAHLUNG_PAYPAL_DE', $data['zahlung_paypal_de']); $this->app->Tpl->Set('ZAHLUNG_KREDITKARTE_DE', $data['zahlung_kreditkarte_de']); $this->app->Tpl->Set('ZAHLUNG_RATENZAHLUNG_DE', $data['zahlung_ratenzahlung_de']); $this->app->Tpl->Set('ZAHLUNGSZIELTAGE', $data['zahlungszieltage']); $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTO', $data['zahlungszieltageskonto']); $this->app->Tpl->Set('ZAHLUNGSZIELSKONTO', $data['zahlungszielskonto']); $this->app->Tpl->Set('VERSANDART', $this->app->erp->GetSelectAsso($this->app->erp->GetVersandartAuftrag(),$data['versandart'])); $this->app->Tpl->Set('ZAHLUNGSWEISE', $this->app->erp->GetSelectAsso($this->app->erp->GetZahlungsweise(),$data['zahlungsweise'])); $this->app->Tpl->Set('ZAHLUNGSWEISELIEFERANT', $this->app->erp->GetSelectAsso($this->app->erp->GetZahlungsweise(),$data['zahlungsweiselieferant'])); $this->app->Tpl->Set('RECHNUNG_HEADER' , $data['rechnung_header']); $this->app->Tpl->Set('LIEFERSCHEIN_HEADER' , $data['lieferschein_header']); $this->app->Tpl->Set('GUTSCHRIFT_HEADER' , $data['gutschrift_header']); $this->app->Tpl->Set('ANGEBOT_HEADER' , $data['angebot_header']); $this->app->Tpl->Set('AUFTRAG_HEADER' , $data['auftrag_header']); $this->app->Tpl->Set('BESTELLUNG_HEADER' , $data['bestellung_header']); $this->app->Tpl->Set('ARBEITSNACHWEIS_HEADER' , $data['arbeitsnachweis_header']); $this->app->Tpl->Set('PROVISIONSGUTSCHRIFT_HEADER' , $data['provisionsgutschrift_header']); $this->app->Tpl->Set('PROFORMARECHNUNG_HEADER' , $data['proformarechnung_header']); $this->app->Tpl->Set('RECHNUNG_FOOTER' , $data['rechnung_footer']); $this->app->Tpl->Set('LIEFERSCHEIN_FOOTER' , $data['lieferschein_footer']); $this->app->Tpl->Set('GUTSCHRIFT_FOOTER' , $data['gutschrift_footer']); $this->app->Tpl->Set('ANGEBOT_FOOTER' , $data['angebot_footer']); $this->app->Tpl->Set('AUFTRAG_FOOTER' , $data['auftrag_footer']); $this->app->Tpl->Set('BESTELLUNG_FOOTER' , $data['bestellung_footer']); $this->app->Tpl->Set('ARBEITSNACHWEIS_FOOTER' , $data['arbeitsnachweis_footer']); $this->app->Tpl->Set('PROVISIONSGUTSCHRIFT_FOOTER' , $data['provisionsgutschrift_footer']); $this->app->Tpl->Set('PROFORMARECHNUNG_FOOTER' , $data['proformarechnung_footer']); $this->app->Tpl->Set('EU_LIEFERUNG_VERMERK' , $data['eu_lieferung_vermerk']); $this->app->Tpl->Set('EXPORT_LIEFERUNG_VERMERK' , $data['export_lieferung_vermerk']); $this->app->Tpl->Set('WARENEINGANG_KAMERA_WAAGE' , $this->parseCheckbox($data['wareneingang_kamera_waage'])); $this->app->Tpl->Set('LAYOUT_ICONBAR' , $this->parseCheckbox($data['layout_iconbar'])); $this->app->Tpl->Set('NEXT_ANGEBOT' , ($data['next_angebot'])); $this->app->Tpl->Set('NEXT_AUFTRAG' , ($data['next_auftrag'])); $this->app->Tpl->Set('NEXT_RECHNUNG' , ($data['next_rechnung'])); $this->app->Tpl->Set('NEXT_LIEFERSCHEIN' , ($data['next_lieferschein'])); $this->app->Tpl->Set('NEXT_RETOURE' , ($data['next_retoure'])); $this->app->Tpl->Set('NEXT_BESTELLUNG' , ($data['next_bestellung'])); $this->app->Tpl->Set('NEXT_ARBEITSNACHWEIS' , ($data['next_arbeitsnachweis'])); $this->app->Tpl->Set('NEXT_GUTSCHRIFT' , ($data['next_gutschrift'])); $this->app->Tpl->Set('NEXT_KUNDENNUMMER' , ($data['next_kundennummer'])); $this->app->Tpl->Set('NEXT_PROJEKTNUMMER' , ($data['next_projektnummer'])); $this->app->Tpl->Set('NEXT_LIEFERANTENNUMMER' , ($data['next_lieferantennummer'])); $this->app->Tpl->Set('NEXT_MITARBEITERNUMMER' , ($data['next_mitarbeiternummer'])); $this->app->Tpl->Set('NEXT_ARTIKELNUMMER' , ($data['next_artikelnummer'])); $this->app->Tpl->Set('NEXT_WAREN' , ($data['next_waren'])); $this->app->Tpl->Set('NEXT_SONSTIGES' , ($data['next_sonstiges'])); $this->app->Tpl->Set('NEXT_PRODUKTION' , ($data['next_produktion'])); $this->app->Tpl->Set('NEXT_REISEKOSTEN' , ($data['next_reisekosten'])); $this->app->Tpl->Set('NEXT_PROFORMARECHNUNG' , ($data['next_proformarechnung'])); $this->app->Tpl->Set('NEXT_ANFRAGE' , ($data['next_anfrage'])); $this->app->Tpl->Set('NEXT_PREISANFRAGE' , ($data['next_preisanfrage'])); $this->app->Tpl->Set('NEXT_VERBINDLICHKEIT', ($data['next_verbindlichkeit'])); $this->app->Tpl->Set('NEXT_LIEFERANTENGUTSCHRIFT', ($data['next_lieferantengutschrift'])); $this->app->Tpl->Set('NEXT_RECEIPTDOCUMENT', ($data['next_receiptdocument'])); //Briefpapier Hintergrund if($data['hintergrund']==='logo') { $this->app->Tpl->Set('HINTERGRUNDLOGO', "checked"); $this->app->Tpl->Set('HINTERGRUNDTEXT', "Logo"); } else if($data['hintergrund']==='briefpapier'){ $this->app->Tpl->Set('HINTERGRUNDBRIEFPAPIER', "checked"); $this->app->Tpl->Set('HINTERGRUNDTEXT', "Briefpapier"); } else{ $this->app->Tpl->Set('HINTERGRUNDKEIN', "checked"); } //Versand E-Mail $this->app->Tpl->Set('BENUTZERNAME' , $data['benutzername']); $this->app->Tpl->Set('PASSWORT' , $data['passwort']); $this->app->Tpl->Set('HOST' , $data['host']); $this->app->Tpl->Set('PORT' , $data['port']); if($data['mailssl']=="2") $this->app->Tpl->Set('SSL' ,"selected"); else if($data['mailssl']=="1") $this->app->Tpl->Set('TLS' ,"selected"); // Signatur $this->app->Tpl->Set('SIGNATUR' , base64_decode($data['signatur'])); $this->app->Tpl->Set('EMAIL' , $data['email']); $this->app->Tpl->Set('ABSENDERNAME' , $data['absendername']); $this->app->Tpl->Set('BCC1' , $data['bcc1']); $this->app->Tpl->Set('BCC2' , $data['bcc2']); $this->app->Tpl->Set('BCC3' , $data['bcc3']); $this->app->Tpl->Set('FIRMENFARBE' , $data['firmenfarbe']); $this->app->Tpl->Set('NAME' , $data['name']); $this->app->Tpl->Set('STRASSE' , $data['strasse']); $this->app->Tpl->Set('PLZ' , $data['plz']); $this->app->Tpl->Set('ORT' , $data['ort']); $this->app->Tpl->Set('STEUERNUMMER' , $data['steuernummer']); } /** * @return array */ function getPostData() { $data = array(); // Brief Absender $data['taxfromdoctypesettings'] = $this->app->Secure->GetPOST('taxfromdoctypesettings'); $data['absender'] = $this->app->Secure->GetPOST("absender"); $data['sichtbar'] = $this->parseCheckbox($this->app->Secure->GetPOST("sichtbar")); $data['rechnung_gutschrift_ansprechpartner'] = $this->parseCheckbox($this->app->Secure->GetPOST("rechnung_gutschrift_ansprechpartner")); $data['artikel_suche_kurztext'] = $this->parseCheckbox($this->app->Secure->GetPOST("artikel_suche_kurztext")); $data['artikel_suche_variante_von'] = $this->parseCheckbox($this->app->Secure->GetPOST("artikel_suche_variante_von")); $data['artikel_freitext1_suche'] = $this->parseCheckbox($this->app->Secure->GetPOST("artikel_freitext1_suche")); $data['adresse_freitext1_suche'] = $this->parseCheckbox($this->app->Secure->GetPOST("adresse_freitext1_suche")); $data['artikel_artikelnummer_suche'] = $this->parseCheckbox($this->app->Secure->GetPOST("artikel_artikelnummer_suche")); $data['parameterundfreifelder'] = $this->parseCheckbox($this->app->Secure->GetPOST("parameterundfreifelder")); for($in = 1; $in <= 40; $in++) { $data['freifeld'.$in] = $this->app->Secure->GetPOST("freifeld".$in); } for($in = 1; $in <= 20; $in++) { $data['projektfreifeld'.$in] = $this->app->Secure->GetPOST("projektfreifeld".$in); } $data['standard_datensaetze_datatables'] = $this->app->Secure->GetPOST("standard_datensaetze_datatables"); $data['steuersatz_normal'] = $this->app->Secure->GetPOST("steuersatz_normal"); $data['steuersatz_ermaessigt'] = $this->app->Secure->GetPOST("steuersatz_ermaessigt"); $data['waehrung'] = $this->app->Secure->GetPOST("waehrung"); $data['lizenz'] = $this->app->Secure->GetPOST("lizenz"); $data['schluessel'] = $this->app->Secure->GetPOST("schluessel"); $data['branch'] = $this->app->Secure->GetPOST("branch"); $data['boxausrichtung'] = $this->app->Secure->GetPOST("boxausrichtung"); $data['footer_breite1'] = $this->app->Secure->GetPOST("footer_breite1"); $data['footer_breite2'] = $this->app->Secure->GetPOST("footer_breite2"); $data['footer_breite3'] = $this->app->Secure->GetPOST("footer_breite3"); $data['footer_breite4'] = $this->app->Secure->GetPOST("footer_breite4"); // Formatierung $data['barcode'] = $this->parseCheckbox($this->app->Secure->GetPOST("barcode")); $data['schriftgroesse'] = ($this->app->Secure->GetPOST("schriftgroesse")); $data['betreffszeile'] = ($this->app->Secure->GetPOST("betreffszeile")); $data['dokumententext'] = ($this->app->Secure->GetPOST("dokumententext")); $data['tabellenbeschriftung'] = ($this->app->Secure->GetPOST("tabellenbeschriftung")); $data['tabelleninhalt'] = ($this->app->Secure->GetPOST("tabelleninhalt")); $data['zeilenuntertext'] = ($this->app->Secure->GetPOST("zeilenuntertext")); $data['freitext'] = ($this->app->Secure->GetPOST("freitext")); $data['brieftext'] = ($this->app->Secure->GetPOST("brieftext")); $data['infobox'] = ($this->app->Secure->GetPOST("infobox")); $data['spaltenbreite'] = ($this->app->Secure->GetPOST("spaltenbreite")); $data['abstand_adresszeileoben'] = $this->app->Secure->GetPOST("abstand_adresszeileoben"); $data['abstand_boxrechtsoben'] = $this->app->Secure->GetPOST("abstand_boxrechtsoben"); $data['abstand_boxrechtsoben_lr'] = $this->app->Secure->GetPOST("abstand_boxrechtsoben_lr"); $data['abstand_betreffzeileoben'] = $this->app->Secure->GetPOST("abstand_betreffzeileoben"); $data['abstand_artikeltabelleoben'] = $this->app->Secure->GetPOST("abstand_artikeltabelleoben"); $data['abstand_name_beschreibung'] = $this->app->Secure->GetPOST("abstand_name_beschreibung"); $data['artikeleinheit_standard'] = $this->app->Secure->GetPOST("artikeleinheit_standard"); $data['auftrag_bezeichnung_bearbeiter'] = $this->app->Secure->GetPOST("auftrag_bezeichnung_bearbeiter"); $data['auftrag_bezeichnung_vertrieb'] = $this->app->Secure->GetPOST("auftrag_bezeichnung_vertrieb"); $data['auftrag_bezeichnung_bestellnummer'] = $this->app->Secure->GetPOST("auftrag_bezeichnung_bestellnummer"); $data['bezeichnungkundennummer'] = $this->app->Secure->GetPOST("bezeichnungkundennummer"); // Footer $data['footer'] = $this->app->Secure->GetPOST("footer"); $data['footersichtbar'] = $this->parseCheckbox($this->app->Secure->GetPOST("footersichtbar")); $data['briefpapier2vorhanden'] = $this->parseCheckbox($this->app->Secure->GetPOST("briefpapier2vorhanden")); $data['seite_von_sichtbar'] = $this->parseCheckbox($this->app->Secure->GetPOST("seite_von_sichtbar")); $data['seite_von_ausrichtung'] = $this->app->Secure->GetPOST("seite_von_ausrichtung"); $data['angebot_ohnebriefpapier'] = $this->parseCheckbox($this->app->Secure->GetPOST("angebot_ohnebriefpapier")); $data['auftrag_ohnebriefpapier'] = $this->parseCheckbox($this->app->Secure->GetPOST("auftrag_ohnebriefpapier")); $data['rechnung_ohnebriefpapier'] = $this->parseCheckbox($this->app->Secure->GetPOST("rechnung_ohnebriefpapier")); $data['lieferschein_ohnebriefpapier'] = $this->parseCheckbox($this->app->Secure->GetPOST("lieferschein_ohnebriefpapier")); $data['gutschrift_ohnebriefpapier'] = $this->parseCheckbox($this->app->Secure->GetPOST("gutschrift_ohnebriefpapier")); $data['bestellung_ohnebriefpapier'] = $this->parseCheckbox($this->app->Secure->GetPOST("bestellung_ohnebriefpapier")); $data['arbeitsnachweis_ohnebriefpapier'] = $this->parseCheckbox($this->app->Secure->GetPOST("arbeitsnachweis_ohnebriefpapier")); $data['externereinkauf'] = $this->parseCheckbox($this->app->Secure->GetPOST("externereinkauf")); $data['projektnummerimdokument'] = $this->parseCheckbox($this->app->Secure->GetPOST("projektnummerimdokument")); $data['mailanstellesmtp'] = $this->parseCheckbox($this->app->Secure->GetPOST("mailanstellesmtp")); $data['herstellernummerimdokument'] = $this->parseCheckbox($this->app->Secure->GetPOST("herstellernummerimdokument")); $data['artikeleinheit'] = $this->parseCheckbox($this->app->Secure->GetPOST("artikeleinheit")); $data['standardmarge'] = $this->app->Secure->GetPOST("standardmarge"); $data['auftrag_bezeichnung_bearbeiter'] = $this->app->Secure->GetPOST("auftrag_bezeichnung_bearbeiter"); $data['auftrag_bezeichnung_vertrieb'] = $this->app->Secure->GetPOST("auftrag_bezeichnung_vertrieb"); $data['bezeichnungkundennummer'] = $this->app->Secure->GetPOST("bezeichnungkundennummer"); $data['auftrag_bezeichnung_bestellnummer'] = $this->app->Secure->GetPOST("auftrag_bezeichnung_bestellnummer"); $data['schriftart'] = $this->app->Secure->GetPOST("schriftart"); $fields_checkbox = $this->app->erp->GetFirmaFieldsCheckbox(); foreach($fields_checkbox as $key=>$value) { $data[$value] = $this->parseCheckbox($this->app->Secure->GetPOST($value)); } $fields = $this->app->erp->GetFirmaFields(); foreach($fields as $key) { $data[$key] = $this->app->Secure->GetPOST($key); } $data['rechnung_header'] = $this->app->Secure->GetPOST("rechnung_header"); $data['rechnung_footer'] = $this->app->Secure->GetPOST("rechnung_footer"); $data['angebot_header'] = $this->app->Secure->GetPOST("angebot_header"); $data['angebot_footer'] = $this->app->Secure->GetPOST("angebot_footer"); $data['auftrag_header'] = $this->app->Secure->GetPOST("auftrag_header"); $data['auftrag_footer'] = $this->app->Secure->GetPOST("auftrag_footer"); $data['lieferschein_header'] = $this->app->Secure->GetPOST("lieferschein_header"); $data['lieferschein_footer'] = $this->app->Secure->GetPOST("lieferschein_footer"); $data['bestellung_header'] = $this->app->Secure->GetPOST("bestellung_header"); $data['arbeitsnachweis_header'] = $this->app->Secure->GetPOST("arbeitsnachweis_header"); $data['bestellung_footer'] = $this->app->Secure->GetPOST("bestellung_footer"); $data['arbeitsnachweis_footer'] = $this->app->Secure->GetPOST("arbeitsnachweis_footer"); $data['gutschrift_header'] = $this->app->Secure->GetPOST("gutschrift_header"); $data['gutschrift_footer'] = $this->app->Secure->GetPOST("gutschrift_footer"); $data['provisionsgutschrift_header'] = $this->app->Secure->GetPOST("provisionsgutschrift_header"); $data['provisionsgutschrift_footer'] = $this->app->Secure->GetPOST("provisionsgutschrift_footer"); $data['proformarechnung_header'] = $this->app->Secure->GetPOST("proformarechnung_header"); $data['proformarechnung_footer'] = $this->app->Secure->GetPOST("proformarechnung_footer"); $data['eu_lieferung_vermerk'] = $this->app->Secure->GetPOST("eu_lieferung_vermerk"); $data['export_lieferung_vermerk'] = $this->app->Secure->GetPOST("export_lieferung_vermerk"); // Briefpapier Hintergrund $data['logo'] = $this->app->Secure->GetPOST("logo"); $data['briefpapier'] = $this->app->Secure->GetPOST("briefpapier"); $data['hintergrund'] = $this->app->Secure->GetPOST("hintergrund"); // Versand E-Mail $data['benutzername'] = $this->app->Secure->GetPOST("benutzername"); $data['passwort'] = $this->app->Secure->GetPOST("passwort"); $data['host'] = $this->app->Secure->GetPOST("host"); $data['port'] = $this->app->Secure->GetPOST("port"); $data['mailssl'] = $this->app->Secure->GetPOST("mailssl"); // Signatur $data['signatur'] = base64_encode($this->app->Secure->POST["signatur"]); $data['email'] = ($this->app->Secure->POST["email"]); $data['absendername'] = ($this->app->Secure->POST["absendername"]); $data['bcc1'] = ($this->app->Secure->POST["bcc1"]); $data['bcc2'] = ($this->app->Secure->POST["bcc2"]); $data['bcc3'] = ($this->app->Secure->POST["bcc3"]); $data['name'] = ($this->app->Secure->POST["name"]); $data['firmenfarbe'] = ($this->app->Secure->POST["firmenfarbe"]); $data['strasse'] = ($this->app->Secure->POST["strasse"]); $data['plz'] = ($this->app->Secure->POST["plz"]); $data['ort'] = ($this->app->Secure->POST["ort"]); $data['steuernummer'] = ($this->app->Secure->POST["steuernummer"]); $data['projekt'] = ($this->app->Secure->POST["projekt"]); $data['standardversanddrucker'] = ($this->app->Secure->POST["standardversanddrucker"]); $data['standardetikettendrucker'] = ($this->app->Secure->POST["standardetikettendrucker"]); $data['etikettendrucker_wareneingang'] = ($this->app->Secure->POST["etikettendrucker_wareneingang"]); $data['aufgaben_bondrucker'] = ($this->app->Secure->POST["aufgaben_bondrucker"]); $data['wareneingang_kamera_waage'] =$this->parseCheckbox ($this->app->Secure->POST["wareneingang_kamera_waage"]); $data['layout_iconbar'] =$this->parseCheckbox ($this->app->Secure->POST["layout_iconbar"]); $data['next_angebot'] = ($this->app->Secure->POST["next_angebot"]); $data['next_auftrag'] = ($this->app->Secure->POST["next_auftrag"]); $data['next_lieferschein'] = ($this->app->Secure->POST["next_lieferschein"]); $data['next_retoure'] = ($this->app->Secure->POST["next_retoure"]); $data['next_rechnung'] = ($this->app->Secure->POST["next_rechnung"]); $data['next_bestellung'] = ($this->app->Secure->POST["next_bestellung"]); $data['next_arbeitsnachweis'] = ($this->app->Secure->POST["next_arbeitsnachweis"]); $data['next_gutschrift'] = ($this->app->Secure->POST["next_gutschrift"]); $data['next_kundennummer'] = ($this->app->Secure->POST["next_kundennummer"]); $data['next_lieferantennummer'] = ($this->app->Secure->POST["next_lieferantennummer"]); $data['next_mitarbeiternummer'] = ($this->app->Secure->POST["next_mitarbeiternummer"]); $data['next_artikelnummer'] = ($this->app->Secure->POST["next_artikelnummer"]); $data['next_projektnummer'] = ($this->app->Secure->POST["next_projektnummer"]); $data['next_waren'] = ($this->app->Secure->POST["next_waren"]); $data['next_sonstiges'] = ($this->app->Secure->POST["next_sonstiges"]); $data['next_produktion'] = ($this->app->Secure->POST["next_produktion"]); $data['next_reisekosten'] = ($this->app->Secure->POST["next_reisekosten"]); $data['next_proformarechnung'] = ($this->app->Secure->POST["next_proformarechnung"]); $data['next_anfrage'] = ($this->app->Secure->POST["next_anfrage"]); $data['next_preisanfrage'] = ($this->app->Secure->POST["next_preisanfrage"]); $data['next_verbindlichkeit'] = ($this->app->Secure->POST["next_verbindlichkeit"]); $data['next_lieferantengutschrift'] = ($this->app->Secure->POST["next_lieferantengutschrift"]); $data['produktionsverhalten'] = $this->app->Secure->POST["produktionsverhalten"]; $data['sprachebevorzugen'] = ($this->app->Secure->POST["sprachebevorzugen"]); // Buchhaltung export datev $data['buchhaltung_berater'] = ($this->app->Secure->POST["buchhaltung_berater"]); $data['buchhaltung_mandant'] = ($this->app->Secure->POST["buchhaltung_mandant"]); $data['buchhaltung_wj_beginn'] = ($this->app->Secure->POST["buchhaltung_wj_beginn"]); $data['buchhaltung_sachkontenlaenge'] = ($this->app->Secure->POST["buchhaltung_sachkontenlaenge"]); $data['fibu_buchungen_startdatum'] = $this->app->erp->ReplaceDatum(true,$this->app->Secure->POST["fibu_buchungen_startdatum"],false); $data['rechnung_skonto_kontorahmen'] = $this->app->erp->ReplaceKontorahmen(true,$this->app->Secure->POST["rechnung_skonto_kontorahmen"]); return $data; } function parseCheckBox($checkbox) { if($checkbox=='0'){ return ''; } if($checkbox=='1'){ return 'checked'; } if($checkbox==='on'){ return 1; } if($checkbox==''){ return 0; } return null; } function FirmendatenBriefpapiervorlage() { $this->app->erp->FirmendatenVorlage(); $this->app->Location->execute('index.php?module=firmendaten&action=edit#tabs-3'); } function FirmendatenLayout() { $cmd = $this->app->Secure->GetGET('cmd'); switch($cmd) { case 'hell': $this->app->erp->FirmendatenSet("firmenfarbehell","#42B8C4"); $this->app->erp->FirmendatenSet("firmenfarbedunkel","#2F9099"); $this->app->erp->FirmendatenSet("iconset_dunkel",''); break; case 'dunkel': $this->app->erp->FirmendatenSet("firmenfarbehell","#3B3B3B"); $this->app->erp->FirmendatenSet("firmenfarbedunkel","#fff"); $this->app->erp->FirmendatenSet("iconset_dunkel",'1'); break; case 'dunkelblau': $this->app->erp->FirmendatenSet("firmenfarbehell","#014085"); $this->app->erp->FirmendatenSet("firmenfarbedunkel","#3A6CAB"); $this->app->erp->FirmendatenSet("iconset_dunkel",''); break; case 'grau': $this->app->erp->FirmendatenSet("firmenfarbedunkel","#6D6D6F"); $this->app->erp->FirmendatenSet("firmenfarbehell","#018FA3"); $this->app->erp->FirmendatenSet("iconset_dunkel",''); break; } $this->app->Location->execute('index.php?module=firmendaten&action=edit#tabs-9'); } /** * @param string $fontName * @param array $files * * @throws RuntimeException * * @return void */ protected function HandleFontUpload($fontName, $files) { $uploadDir = dirname(__DIR__) . '/lib/pdf/font/unifont/'; $this->CheckFontName($fontName); $this->CheckFontUploadFiles($files); $this->CheckFontUploadDirectory($uploadDir); $this->MoveUploadedFontFiles($fontName, $uploadDir, $files['tmp_name']); } /** * @param string $fontName * * @throws RuntimeException * * @return void */ protected function CheckFontName($fontName) { $reservedFontNames = ['Courier','Helvetica','Times']; if(empty($fontName)){ throw new RuntimeException('Sie müssen eine Bezeichnung für die Schriftart angeben.'); } if(preg_match('#[^a-zA-Z0-9_-]#', $fontName) === 1){ throw new RuntimeException( 'Die Schriftbezeichnung enthält ungültige Zeichen. Es sind nur Buchstaben, Zahlen, Unterstriche und Minus erlaubt.' ); } if (in_array($fontName, $reservedFontNames, true)) { throw new RuntimeException(sprintf( 'Die Schriftbezeichnung "%s" ist reserviert. Folgende Bezeichnungen können nicht gewählt werden: %s', $fontName, implode(', ', $reservedFontNames) )); } } /** * @param array $file * * @throws RuntimeException * * @return void */ protected function CheckFontUploadFiles($files) { $types = ['normal','kursiv','fett','fettkursiv']; foreach ($types as $type) { // Dateigröße prüfen if((int)$files['size'][$type] <= 0){ throw new RuntimeException(sprintf( 'Sie müssen alle Schriftschnitte angeben. Für den Typ "%s" wurde keine Datei angegeben.', $type )); } // Upload-Fehler prüfen if($files['error'][$type] > 0){ throw new RuntimeException(sprintf( 'Eine Schriftdatei konnte nicht verarbeitet werden: [%s] %s', strtoupper($type), $this->TranslateUploadErrorCodeToMessage($files['error'][$type]) )); } // Mimetype prüfen // Gültig für TTF: 'application/x-font-ttf', 'application/x-font-truetype' und 'application/octet-stream' $mimeType = $files['type'][$type]; $mimeCheck = preg_match('#^(application|font).*(ttf|truetype|octet\-stream)#i', $mimeType, $matches); if($mimeCheck === 0){ throw new RuntimeException(sprintf( 'Es werden nur TTF-Schriftarten unterstüzt. Die Datei für den Schriftschnitt "%s" ist von Typ "%s".', $type, $mimeType )); } } } /** * @param int $code * * @return string */ protected function TranslateUploadErrorCodeToMessage($code) { switch ((int)$code) { case UPLOAD_ERR_INI_SIZE: $message = "Der Upload überschreitet die 'upload_max_filesize' Einstellung der in php.ini."; break; case UPLOAD_ERR_FORM_SIZE: $message = "Der Upload überschreitet die MAX_FILE_SIZE Einstellung des HTML-Formulars."; break; case UPLOAD_ERR_PARTIAL: $message = "Die Datei wurde nicht vollständig übertragen."; break; case UPLOAD_ERR_NO_FILE: $message = "Es wurde keine Datei ausgewählt."; break; case UPLOAD_ERR_NO_TMP_DIR: $message = "Temporärer Ordner fehlt."; break; case UPLOAD_ERR_CANT_WRITE: $message = "Datei konnte nicht abgespeichert werden."; break; case UPLOAD_ERR_EXTENSION: $message = "Der Upload wurde durch eine PHP-Erweiterung gestoppt."; break; default: $message = "Unbekannter Upload-Fehler."; break; } return $message; } /** * @param string $dir * * @throws RuntimeException Wenn Verzeichnis nicht existent oder nicht beschreibbar * * @return void */ protected function CheckFontUploadDirectory($dir) { $dir = realpath($dir); if(!is_dir($dir)){ throw new RuntimeException(sprintf('Das Upload-Verzeichnis für Schriftarten "%s" existiert nicht.', $dir)); } $tempName = $dir . '/' . uniqid('FONTUPLOADTEST', false); $handle = @fopen($tempName, 'wb'); @fwrite($handle, 'FONTUPLOADTEST'); if(!is_file($tempName)){ throw new RuntimeException(sprintf( 'Upload-Verzeichnis für Schriftarten "%s" ist nicht beschreibbar. Bitte passen Sie die Schreibrechte an.', $dir )); } @fclose($handle); @unlink($tempName); } /** * @param string $fontName * @param string $uploadDir * @param array $fileTemps * * @throws RuntimeException * * @return void */ protected function MoveUploadedFontFiles($fontName, $uploadDir, $fileTemps) { $uploadDir = realpath($uploadDir); $basePath = $uploadDir . '/' . $fontName ; $targetPath = ''; foreach ($fileTemps as $type => $tmpPath) { switch ($type) { case 'normal': $targetPath = $basePath . '.ttf'; break; case 'kursiv': $targetPath = $basePath . 'I.ttf'; break; case 'fett': $targetPath = $basePath . 'B.ttf'; break; case 'fettkursiv': $targetPath = $basePath . 'BI.ttf'; break; } if (!is_file($tmpPath)) { throw new RuntimeException(sprintf( 'Schriftart-Upload fehlgeschlagen. Temp-Datei "%s" für Typ "%s" wurde nicht gefunden.', $tmpPath, $type )); } @move_uploaded_file($tmpPath, $targetPath); if (!is_file($targetPath)) { throw new RuntimeException(sprintf( 'Schriftart-Upload fehlgeschlagen. Hochgeladene Datei für Typ "%s" konnte nicht ans Ziel "%s" verschoben werden.', $targetPath, $type )); } } } /** * Sprache in firmendaten_werte und user->sprachebevorzugen speichern * @param $language */ private function savePreferredLanguage($language){ /* THIS NEEDS TO BE REIMPLEMENTED $lang = $this->app->erp->Firmendaten('preferredLanguage'); if($lang != $language){ $this->app->erp->FirmendatenSet('preferredLanguage',$language); $this->app->DB->Update("UPDATE `user` SET sprachebevorzugen = '".$language."'"); } */ } /** * Bevorzugte Sprache aus firmendaten_werte * @return string Sprache */ private function getPreferredLanguage(){ $lang = $this->app->erp->Firmendaten('preferredLanguage'); if(!empty($lang)) { return $lang; } // $this->app->erp->AddNeuenFirmendatenWert('preferredLanguage','varchar','64','','deutsch','deutsch',0,0); return 'deutsch'; } /** * Liefert einen String aus HTML-Optionen zurück * @param string $select Wert aus der Datenbank * @return string */ private function languageSelectOptions($select='deutsch'){ $out = ''; $sprachen = $this->getLanguages(); foreach($sprachen as $sprache) { $selected = (($select==$sprache) ? 'selected' : ''); $out .= ""; } return $out; } /** * Liefert einen Array aus Strings zurück. Immer mindestens 'deutsch' enthalten * @return array */ private function getLanguages(){ $sprachen[] = 'deutsch'; $folder = dirname(dirname(__DIR__ )).'/languages'; if(is_dir($folder)) { $handle = opendir($folder); if($handle) { while($file = readdir($handle)) { if($file[0] !== '.') { if(is_dir($folder.'/'.$file) && (file_exists($folder.'/'.$file.'/variablen.php')|| file_exists($folder.'/'.$file.'/variablen_custom.php'))) { if($file === 'german') { $file = 'deutsch'; } if(!in_array($file, $sprachen)) { $sprachen[] = $file; } } } } closedir($handle); } } return $sprachen; } /** * @return array */ protected function getDocuments() { $documents = [ 'offer' => 'Angebot', 'order' => 'Auftrag', 'invoice' => 'Rechnung', 'credit_note' => 'Gutschrift', 'delivery_note' => 'Lieferschein', 'suppliers_order' => 'Bestellung' ]; if($this->app->erp->ModulVorhanden('retoure')) { $documents['return_order'] = 'Retoure'; } return $documents; } public function Install() { $this->app->erp->CheckTable('document_customization_infoblock'); $this->app->erp->CheckColumn('keyword', 'VARCHAR(32)','document_customization_infoblock',"NOT NULL DEFAULT ''"); $this->app->erp->CheckColumn('doctype','VARCHAR(32)', 'document_customization_infoblock',"NOT NULL DEFAULT ''"); $this->app->erp->CheckColumn('fontstyle','VARCHAR(2)', 'document_customization_infoblock',"NOT NULL DEFAULT ''"); $this->app->erp->CheckColumn('alignment','VARCHAR(2)', 'document_customization_infoblock',"NOT NULL DEFAULT ''"); $this->app->erp->CheckColumn('content','TEXT', 'document_customization_infoblock'); $this->app->erp->CheckColumn('project_id','INT(11)', 'document_customization_infoblock','NOT NULL DEFAULT 0'); $this->app->erp->CheckColumn('active','TINYINT(1)', 'document_customization_infoblock','NOT NULL DEFAULT 0'); $this->app->erp->CheckTable('document_customization_infoblock_translation'); $this->app->erp->CheckColumn('document_customization_infoblock_id','INT(11)','document_customization_infoblock_translation','NOT NULL DEFAULT 0'); $this->app->erp->CheckColumn('language_code','VARCHAR(2)','document_customization_infoblock_translation',"NOT NULL DEFAULT ''"); $this->app->erp->CheckColumn('content','TEXT', 'document_customization_infoblock_translation'); $this->app->erp->CheckColumn('active','TINYINT(1)', 'document_customization_infoblock_translation','NOT NULL DEFAULT 0'); $this->app->erp->CheckColumn('fontstyle','VARCHAR(2)', 'document_customization_infoblock_translation',"NOT NULL DEFAULT ''"); $this->app->erp->CheckColumn('alignment','VARCHAR(2)', 'document_customization_infoblock_translation',"NOT NULL DEFAULT ''"); $this->app->erp->CheckIndex('document_customization_infoblock_translation','document_customization_infoblock_id'); } /** * @param string $payment * @param bool $withInactive * * @return bool */ public function isPaymentActive($payment, $withInactive = false) { if($withInactive) { return $this->app->DB->Select( sprintf( "SELECT `id` FROM `zahlungsweisen` WHERE `type` = '%s' LIMIT 1", $this->app->DB->real_escape_string($payment) ) ) > 0; } return $this->app->DB->Select( sprintf( "SELECT `id` FROM `zahlungsweisen` WHERE `type` = '%s' AND `aktiv` = 1 AND `projekt` = 0 LIMIT 1", $this->app->DB->real_escape_string($payment) ) ) > 0; } /** * @return array */ public function getNotInstalledPayments() { $payments = array_keys($this->payments); $installedPayments = $this->app->DB->SelectFirstCols( "SELECT DISTINCT `type` FROM `zahlungsweisen` WHERE `type` <> ''" ); return array_diff($payments, $installedPayments); } /** * @param string $payment * @param bool $onlyNew * * @return int */ public function checkPaymentModule($payment, $onlyNew = false) { if(empty($this->payments[$payment])) { return 0; } $description = $this->payments[$payment]; if($this->isPaymentActive($payment, $onlyNew)) { return 0; } $this->app->DB->Insert( sprintf( "INSERT INTO `zahlungsweisen` (`type`, `aktiv`, `projekt`, `bezeichnung`, `freitext`) VALUES ('%s', 1, 0, '%s','%s')", $this->app->DB->real_escape_string($payment), $this->app->DB->real_escape_string($description), $this->app->DB->real_escape_string($this->app->erp->Firmendaten('zahlung_'.$payment.'_de')) ) ); $id = (int)$this->app->DB->GetInsertID(); if($payment === 'vorkasse') { $this->app->DB->Update( sprintf( "UPDATE `zahlungsweisen` SET `verhalten` = 'vorkasse' WHERE `id` = %d", $id ) ); } elseif($payment === 'lastschrift') { $this->app->DB->Update( sprintf( "UPDATE `zahlungsweisen` SET `verhalten` = 'lastschrift' WHERE `id` = %d", $id ) ); } $translations = $this->app->DB->SelectArr( sprintf( "SELECT * FROM `uebersetzung` WHERE `label` = 'zahlung_%s_de'", $this->app->DB->real_escape_string($payment) ) ); if(empty($translations)) { return $id; } foreach($translations as $translation) { $this->app->DB->Insert( sprintf( "INSERT INTO `uebersetzung` (`label`, `beschriftung`, `sprache`, `original`) VALUES ('%s','%s','%s','%s') ", 'zahlungsweise_freitext_'.$id, $this->app->DB->real_escape_string($translation['beschriftung']), $this->app->DB->real_escape_string($translation['sprache']), $this->app->DB->real_escape_string($translation['original']) ) ); } return $id; } /** * @param bool $onlyNew */ public function checkPaymentModules($onlyNew = false) { foreach($this->payments as $payment => $description) { $this->checkPaymentModule($payment, $onlyNew); } } public function documentSettings() { $cmd = $this->app->Secure->GetGET('cmd'); $this->FirmendatenMenu(); $this->Install(); /** @var \Xentral\Modules\Company\Service\DocumentCustomizationService $service */ $service = $this->app->Container->get('DocumentCustomizationService'); $documents = $this->getDocuments(); if($cmd === 'loadtranslation') { $language = $this->app->Secure->GetPOST('language'); $parent = $this->app->Secure->GetPOST('parent_id'); $ret = $service->getTranslationByCustomizationInfoBlockId($language, $parent); if(empty($ret)) { $ret = ['id' => 0, 'active' => 1, 'content' => '', 'fontstyle' => '']; } header('Content-Type: application/json'); echo json_encode($ret); $this->app->ExitXentral(); } if($cmd === 'savetranslation') { $alignment = $this->app->Secure->GetPOST('alignment'); $language = $this->app->Secure->GetPOST('language'); $content = $this->app->Secure->GetPOST('content','','',true); $active = (int)$this->app->Secure->GetPOST('active'); $parent = (int)$this->app->Secure->GetPOST('parent_id'); $fontstyle = $this->app->Secure->GetPOST('fontstyle'); $ret = ['status' => 1]; try{ $service->saveTranslation($parent, $language, $content, $active, $fontstyle, $alignment); } catch(Exception $e) { $ret['status'] = 0; } header('Content-Type: application/json'); echo json_encode($ret); $this->app->ExitXentral(); } if($cmd === 'savedocument') { $doctype = $this->app->Secure->GetPOST('doctype'); $content = $this->app->Secure->GetPOST('content','','',true); $active = (int)$this->app->Secure->GetPOST('active'); $fontStyle = $this->app->Secure->GetPOST('fontstyle'); $alignment = $this->app->Secure->GetPOST('alignment'); $project = $this->app->Secure->GetPOST('project'); $projecId = $this->app->erp->ReplaceProjekt(1, $project, 1); $id = $this->app->Secure->GetPOST('id'); $ret = ['status' => 0]; $error = ''; if($doctype === ''){ $error .= 'Bitte Dokument ausfüllen'; } if($error !== ''){ $ret['statusText'] = $error; echo json_encode($ret); $this->app->ExitXentral(); } try { if (empty($id)) { $service->createBlock('corr', $doctype, $content, $fontStyle, $projecId, $active, $alignment); } else { $service->updateInfoBlock($id, $doctype, $content, $fontStyle, $projecId, $active, $alignment); } $ret['status'] = 1; } catch(Exception $e) { } header('Content-Type: application/json'); echo json_encode($ret); $this->app->ExitXentral(); } if($cmd === 'loaddocument') { $id = $this->app->Secure->GetPOST('id'); $ret = $service->getBlock($id); $ret['project'] = $this->app->erp->ReplaceProjekt(0, $ret['project_id'], 0); if(empty($ret)) { $ret = ['id' => 0, 'content' => '', 'doctype' => '', 'project' => '', 'active' => 0, 'alignment' => '']; } header('Content-Type: application/json'); echo json_encode($ret); $this->app->ExitXentral(); } if($cmd === 'changestatus') { $ids = !empty($this->app->Secure->POST['ids'])? $this->app->Secure->POST['ids']:null; $action = $this->app->Secure->GetPOST('action'); $ret = ['status' => 0]; $activate = $action === 'activate'; $deactivate = $action === 'deactivate'; if(!empty($ids) && ($activate || $deactivate)) { $ret['status'] = 1; foreach($ids as $id) { $this->app->DB->Update( sprintf( 'UPDATE document_customization_infoblock SET active = %d WHERE id = %d', $activate?1:0, (int)$id ) ); } } header('Content-Type: application/json'); echo json_encode($ret); $this->app->ExitXentral(); } if($cmd === 'copyinfoblock') { $id = $this->app->Secure->GetPOST('id'); $ret = ['status' => 0]; try { $service->copy($id); $ret['status'] = 1; } catch (Exception $e) { } header('Content-Type: application/json'); echo json_encode($ret); $this->app->ExitXentral(); } if($cmd === 'deleteinfoblock') { $id = $this->app->Secure->GetPOST('id'); $ret = ['status' => 0]; try { $service->delete($id); $ret['status'] = 1; } catch(Exception $e) { } header('Content-Type: application/json'); echo json_encode($ret); $this->app->ExitXentral(); } if($this->app->Secure->GetPOST('save')) { foreach($documents as $document => $coumentName) { $content = $this->app->Secure->GetPOST($document.'_content','','',true); $service->saveBlock( 'corr', $document, $content, $this->app->Secure->GetPOST($document.'_fontstyle'), $this->app->Secure->GetPOST($document.'_active') ); } } $data = []; $fontoptions = [ '' => 'normal', 'f' => 'fett', 'i' => 'kursiv', 'fi' => 'fett und kursiv' ]; $alignments = [ '' => 'Standard', 'll' => 'L L', 'lr' => 'L R', 'cc' => 'C C' ]; $previewArr = []; $previewArr[] = [ 'value' => 'ANFRAGENUMMER', 'label' => 'Anfragenummer', 'doc_types' => ['offer'] ]; $previewArr[] = [ 'value' => 'ANGEBOTSNUMMER', 'label' => 'Angebotsnummer', 'doc_types' => ['order', 'offer'] ]; $previewArr[] = [ 'value' => 'AUFTRAGSNUMMER', 'label' => 'Auftragsnummer', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'return_order'] ]; $previewArr[] = [ 'value' => 'BEARBEITER', 'label' => 'Bearbeiter', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'return_order'] ]; $previewArr[] = [ 'value' => 'BEARBEITEREMAIL', 'label' => 'Bearbeiter E-Mail', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'return_order'] ]; $previewArr[] = [ 'value' => 'BEARBEITERTELEFON', 'label' => 'Bearbeiter Telefon', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'return_order'] ]; $previewArr[] = [ 'value' => 'BESTELLNUMMER', 'label' => 'Bestellnummer', 'doc_types' => ['suppliers_order'] ]; $previewArr[] = [ 'value' => 'DATUM', 'label' => 'Datum', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'suppliers_order', 'return_order'] ]; $previewArr[] = [ 'value' => 'EINKAEUFER', 'label' => 'Einkäufer', 'doc_types' => ['suppliers_order'] ]; $previewArr[] = [ 'value' => 'EMAIL', 'label' => 'Email aus Beleg', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'return_order'] ]; $previewArr[] = [ 'value' => 'GUTSCHRIFTSNUMMER', 'label' => 'Gutschriftsnummer', 'doc_types' => ['credit_note'] ]; $previewArr[] = [ 'value' => 'IHREBESTELLNUMMER', 'label' => 'Ihre Bestellnummer', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'suppliers_order', 'return_order'] ]; $previewArr[] = [ 'value' => 'KUNDENNUMMER', 'label' => 'Kundennummer', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'return_order'] ]; $previewArr[] = [ 'value' => 'LIEFERANTENNUMMER', 'label' => 'Lieferantennummer', 'doc_types' => ['suppliers_order'] ]; $previewArr[] = [ 'value' => 'LIEFERSCHEINDATUM', 'label' => 'Lieferscheindatum', 'doc_types' => ['invoice', 'credit_note', 'return_order'] ]; $previewArr[] = [ 'value' => 'LIEFERSCHEINNUMMER', 'label' => 'Lieferscheinnummer', 'doc_types' => ['invoice', 'delivery_note', 'credit_note', 'return_order'] ]; $previewArr[] = [ 'value' => 'RECHNUNGSDATUM', 'label' => 'Rechnungsdatum', 'doc_types' => ['credit_note'] ]; $previewArr[] = [ 'value' => 'RECHNUNGSNUMMER', 'label' => 'Rechnungsnummer', 'doc_types' => ['invoice', 'credit_note'] ]; $previewArr[] = [ 'value' => 'RETOURENNUMMER', 'label' => 'Retourennummer', 'doc_types' => ['return_order'] ]; $previewArr[] = [ 'value' => 'PROJEKT', 'label' => 'Projekt', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'suppliers_order', 'return_order'] ]; $previewArr[] = [ 'value' => 'TELEFON', 'label' => 'Telefon aus Beleg', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'return_order'] ]; $previewArr[] = [ 'value' => 'TRACKINGNUMMER', 'label' => 'Trackingnummer', 'doc_types' => ['delivery_note'] ]; $previewArr[] = [ 'value' => 'KUNDENNUMMER', 'label' => 'Unsere Kundennummer', 'doc_types' => ['suppliers_order'] ]; $previewArr[] = [ 'value' => 'VERTRIEB', 'label' => 'Vertrieb', 'doc_types' => ['invoice', 'order', 'delivery_note', 'credit_note', 'offer', 'return_order'] ]; $languages = []; $languageArr = $this->app->DB->SelectArr( "SELECT * FROM sprachen WHERE aktiv = 1 AND iso <> '' ORDER BY bezeichnung_de" ); if(!empty($languageArr)) { foreach($languageArr as $languageRow) { $languages[$languageRow['iso']] = $languageRow['bezeichnung_de']; } } $element = [ 'document' => $document, 'active' => !empty($block['active'])?'1':'', 'fontstyle' => !empty($block['fontstyle'])?$block['fontstyle']:'', 'content' => !empty($block['content'])?$block['content']:'', 'name' => ucfirst($coumentName), 'preview' => $previewArr ]; /*foreach($documents as $document => $coumentName) { $block = $service->getBlock('corr', $document); $element = [ 'document' => $document, 'active' => !empty($block['active'])?'1':'', 'fontstyle' => !empty($block['fontstyle'])?$block['fontstyle']:'', 'content' => !empty($block['content'])?$block['content']:'', 'name' => ucfirst($coumentName), 'preview' => $previewArr ]; if(in_array($document, ['angebot','auftrag','rechnung','gutschrift','proformarechnung','lieferschein','retoure'])) { $element['preview']['KUNDENNUMMER'] = 'Kundennummer'; } if(in_array($document, ['anfrage','bestellung'])) { $element['preview']['LIEFERANTENNUMMER'] = 'Lieferantennummer'; } switch($document) { case 'offer': $element['preview']['ANGEBOTSNUMMER'] = 'Angebotsnummer'; break; case 'order': $element['preview']['AUFTRAGSNUMMER'] = 'Auftragsnummer'; break; case 'invoice': $element['preview']['RECHNUNGSNUMMER'] = 'Rechnungsnummer'; break; case 'credit_note': $element['preview']['GUTSCHRIFTSNUMMER'] = 'Gutschriftsnummer'; break; case 'suppliers_order': $element['preview']['BESTELLNUMMER'] = 'Bestellnummer'; break; } $data[] = $element; }*/ $this->app->YUI->TableSearch('TAB1', 'company_document_setting','show','','',basename(__FILE__), __CLASS__); $datatable = $this->app->Tpl->Parse('', 'emptytab.tpl', true); $this->app->Tpl->Set('TAB1', ''); $this->tmpl = $this->app->Container->get('Template'); $this->tmpl->setDefaultNamespace('Modules/Company'); $this->tmpl->assign('fontoptions', $fontoptions); $this->tmpl->assign('alignments', $alignments); //$this->tmpl->assign('documents', $data); $this->tmpl->assign('languages', $languages); $this->tmpl->assign('datatable', $datatable); $this->tmpl->assign('doctypearr', $documents); $this->tmpl->assign('documentarr', $element); $table = $this->tmpl->fetch('document_settings.tpl'); $this->app->YUI->AutoComplete('document_project', 'projektname', 1); $this->app->Tpl->Add('TAB1', $table); //$this->app->Tpl->Set('TAB1', $ret); $this->app->Tpl->Parse('PAGE','tabview.tpl'); } /** * @return int */ public function getMaxTrackingMailToSend() { $limit = (int)$this->app->erp->Firmendaten('versandmails_max'); $isSet = $this->app->erp->GetKonfiguration('firmendaten_versandmails_max_gesetzt'); if(!$isSet) { if(!$limit) { $limit = 100; $this->app->erp->FirmendatenSet('versandmails_max', $limit); } $this->app->erp->SetKonfigurationValue('firmendaten_versandmails_max_gesetzt',1); } return $limit; } /** * @return int */ public function getMaxAutoOrderSend() { $limit = (int)$this->app->erp->Firmendaten('autoversand_maxauftraege'); $isSet = $this->app->erp->GetKonfiguration('firmendaten_autoversand_maxauftraege_gesetzt'); if(!$isSet) { if(!$limit) { $limit = 100; $this->app->erp->FirmendatenSet('autoversand_maxauftraege', $limit); } $this->app->erp->SetKonfigurationValue('firmendaten_autoversand_maxauftraege_gesetzt',1); } return $limit; } }