app=&$app; $this->app->ActionHandlerInit($this); $this->app->ActionHandler("list","KorrespondenzList"); $this->app->ActionHandler("create","KorrespondenzCreate"); $this->app->ActionHandler("edit","KorrespondenzEdit"); $this->app->ActionHandler("pdf","KorrespondenzPDF"); $this->app->ActionHandler("send","KorrespondenzSend"); $this->app->ActionHandler("delete","KorrespondenzDelete"); $this->app->DefaultActionHandler("edit"); $this->app->ActionHandlerListen($app); } function KorrespondenzCreate() { $post = $this->SaveInput(); // PDF if($post['pdf']!='') { $this->CreatePDF($post); } // Save if($post['save']!='') { $insert = $this->CreateDokument($post); if(is_numeric($insert) && $insert>0) { header("Location: ./index.php?module=korrespondenz&action=edit&id=$insert"); exit; }else $this->app->Tpl->Set('MESSAGE', '
Das Dokument konnte nicht erstellt werden
'); } // Send if($post['send']!='') { $insert = $this->CreateDokument($post); if(is_numeric($insert) && $insert>0) { header("Location: ./index.php?module=korrespondenz&action=send&id=$insert"); exit; }else $this->app->Tpl->Set('MESSAGE', '
Das Dokument konnte nicht erstellt werden
'); } // Prefill Form if($post['prefill']=='') { $post['von'] = $this->app->User->GetName(); $post['firma'] = $this->app->DB->Select('SELECT absender FROM firmendaten WHERE firma="'.$this->app->User->GetFirma().'" LIMIT 1'); $post['datum'] = date("d.m.Y"); $userdata = $this->app->DB->SelectArr("SELECT * FROM adresse WHERE id='{$post['user']}' LIMIT 1"); if(is_array($userdata) && (!empty($userdata)?count($userdata):0)>0) { $vorname = ''; if(($userdata[0]['typ']=='herr' || $userdata[0]['typ']=='frau') && $userdata[0]['vorname']!='') $vorname = "{$userdata[0]['vorname']} "; $post['an'] = $vorname.$userdata[0]['name']; $post['ansprechpartner'] = $userdata[0]['ansprechpartner']; $post['email_an'] = $userdata[0]['email']; $post['adresse'] = $userdata[0]['strasse']; $post['plz'] = $userdata[0]['plz']; $post['ort'] = $userdata[0]['ort']; $post['land'] = $userdata[0]['land']; $post['firma_an'] = $this->app->DB->Select("SELECT name FROM firma WHERE id='{$userdata[0]['firma_an']}' LIMIT 1"); } $post['prefill'] = '1'; } $this->LoadInput($post); $this->app->BuildNavigation=false; $this->app->YUI->AutoComplete('ansprechpartner', 'adressename'); $this->app->Tpl->Parse('PAGE', 'korrespondenz_create.tpl'); } function KorrespondenzEdit() { $post = $this->SaveInput(); // PDF if($post['pdf']!='' && is_numeric($post['id'])) { $this->UpdateDokument($post); header("Location: ./index.php?module=korrespondenz&action=pdf&id={$post['id']}"); exit; } // Save if($post['save']!='' && is_numeric($post['id'])) { $this->UpdateDokument($post); } // Send if($post['send']!='' && is_numeric($post['id'])) { $this->UpdateDokument($post); header("Location: ./index.php?module=korrespondenz&action=send&id={$post['id']}"); exit; } if(is_numeric($post['id'])) { $data = $this->app->DB->SelectArr("SELECT * FROM dokumente WHERE id='{$post['id']}' LIMIT 1"); $postdata = $this->ConvertFromDB($data); } $this->LoadInput($postdata); $this->app->BuildNavigation=false; $this->app->YUI->AutoComplete('ansprechpartner', 'adressename'); $this->app->Tpl->Parse('PAGE', 'korrespondenz_create.tpl'); } function KorrespondenzSend() { $this->app->BuildNavigation=false; $id = $this->app->Secure->GetGET('id'); $data = $this->ConvertFromDB($this->app->DB->SelectArr("SELECT * FROM dokumente WHERE id='$id' LIMIT 1")); $data['adresse_to'] = $this->app->DB->Select("SELECT adresse_to FROM dokumente WHERE id='$id' LIMIT 1"); $projekt = $this->app->DB->Select("SELECT projekt FROM adresse WHERE id='".$data['adresse_to']."' LIMIT 1"); switch($data['art']) { case 'email': if($this->app->erp->MailSend($data['email'],$data['von'],$data['email_an'],$data['to'],$data['betreff'],$data['content'],'',$projekt)=='1'){ $this->app->Tpl->Set('PAGE',"
Die E-Mail wurde erfolgreich versendet.
"); $this->app->DB->Update("UPDATE dokumente SET sent='1' WHERE id='$id' LIMIT 1"); } else $this->app->Tpl->Set('PAGE',"
Die E-Mail wurde erfolgreich versendet.
"); break; case 'mail': $korrespondenz = $this->CreatePDF($data, false); $this->app->printer->Drucken($data['mail'],$korrespondenz); $this->app->DB->Update("UPDATE dokumente SET sent='1' WHERE id='$id' LIMIT 1"); unlink($korrespondenz); $this->app->Tpl->Set('PAGE',"
Das Dokument wurde an den Drucker übertragen
"); break; case 'fax': $korrespondenz = $this->CreatePDF($data, false); $this->app->printer->Drucken($data['fax'],$korrespondenz); $this->app->DB->Update("UPDATE dokumente SET sent='1' WHERE id='$id' LIMIT 1"); unlink($korrespondenz); $this->app->Tpl->Set('PAGE',"
Das Dokument wurde an das Fax übertragen
"); break; } } function KorrespondenzDelete() { $id = $this->app->Secure->GetGET('id'); if(is_numeric($id)) $this->app->DB->Update("UPDATE dokumente SET deleted='1' WHERE id='$id' LIMIT 1"); header("Location: {$_SERVER['HTTP_REFERER']}"); exit; } function KorrespondenzPdf() { $id = $this->app->Secure->GetGET('id'); $data = $this->ConvertFromDB($this->app->DB->SelectArr("SELECT * FROM dokumente WHERE id='$id' LIMIT 1")); $this->CreatePDF($data); } function CreatePDF($data, $display=true) { $korrespondenz = new KorrespondenzPDF($this->app); $korrespondenz->SetBetreff($this->app->erp->ReadyForPDF($data['betreff'])); $korrespondenz->SetDetail('Datum', $data['datum']); $korrespondenz->SetDetail('Bearbeiter', $this->app->erp->ReadyForPDF($data['von'])); $korrespondenz->setRecipient(array($this->app->erp->ReadyForPDF($data['firma_an']), $this->app->erp->ReadyForPDF($data['an']), '', $this->app->erp->ReadyForPDF($data['adresse']), $data['plz'],$this->app->erp->ReadyForPDF($data['ort']) ,$data['land'])); $korrespondenz->setLetterDetails(array($this->app->erp->ReadyForPDF($data['betreff']),str_replace('\r\n',"\n\n",$this->app->erp->ReadyForPDF($data['content'])))); $korrespondenz->setAbsender($data['firma']); $korrespondenz->Create(); if($display) $korrespondenz->displayDocument(); else return $korrespondenz->displayTMP(); } function UpdateDokument($data) { $datum = $this->app->String->Convert($data['datum'],"%1.%2.%3","%3-%2-%1"); $this->app->DB->Update("UPDATE dokumente SET von='{$data['von']}', firma='{$data['firma']}', ansprechpartner='{$data['ansprechpartner']}',an='{$data['an']}', email_an='{$data['email_an']}', firma_an='{$data['firma_an']}', adresse='{$data['adresse']}', plz='{$data['plz']}', ort='{$data['ort']}', land='{$data['land']}', datum='$datum', betreff='{$data['betreff']}', content='{$data['content']}', signatur='{$data['signatur']}', send_as='{$data['art']}', email='{$data['email']}', printer='{$data['mail']}', fax='{$data['fax']}' WHERE id='{$data['id']}' LIMIT 1"); } function CreateDokument($data) { $adresse = $this->app->User->GetAdresse(); $datum = $this->app->String->Convert($data['datum'],"%1.%2.%3","%3-%2-%1"); $this->app->DB->Insert("INSERT INTO dokumente (adresse_from,adresse_to,typ,von,firma,ansprechpartner,an,email_an,firma_an,adresse,plz,ort,land,datum,betreff,content,signatur,send_as,email, printer,fax,created) VALUES ('$adresse','{$data['user']}','brieffax','{$data['von']}','{$data['firma']}','{$data['ansprechpartner']}','{$data['an']}','{$data['email_an']}', '{$data['firma_an']}','{$data['adresse']}', '{$data['plz']}','{$data['ort']}','{$data['land']}','$datum','{$data['betreff']}','{$data['content']}','{$data['signatur']}','{$data['art']}','{$data['email']}', '{$data['mail']}','{$data['fax']}',NOW())"); return $this->app->DB->GetInsertID(); } function DruckerSelect($selected='') { if($selected=="") $selected = $this->app->DB->Select("SELECT standarddrucker FROM user WHERE id='".$this->app->User->GetID()."' LIMIT 1"); $drucker = $this->app->DB->SelectArr("SELECT id, name FROM drucker WHERE firma='".$this->app->User->GetFirma()."' AND aktiv='1'"); for($i=0;$i<(!empty($drucker)?count($drucker):0);$i++) { if($drucker[$i]['id']==$selected) $mark="selected"; else $mark=""; $out .=""; } return $out; } function ConvertFromDB($db) { $data = array(); $data['von'] = $db[0]['von']; $data['firma'] = $db[0]['firma']; $data['ansprechpartner'] = $db[0]['ansprechpartner']; $data['an'] = $db[0]['an']; $data['email_an'] = $db[0]['email_an']; $data['firma_an'] = $db[0]['firma_an']; $data['adresse'] = $db[0]['adresse']; $data['plz'] = $db[0]['plz']; $data['ort'] = $db[0]['ort']; $data['land'] = $db[0]['land']; $data['datum'] = $this->app->String->Convert($db[0]['datum'],"%1-%2-%3","%3.%2.%1"); $data['betreff'] = $db[0]['betreff']; $data['content'] = $db[0]['content']; $data['signatur'] = $db[0]['signatur']; $data['art'] = $db[0]['send_as']; $data['email'] = $db[0]['email']; $data['mail'] = $db[0]['printer']; $data['fax'] = $db[0]['fax']; return $data; } function SaveInput() { $data = array(); $data['id'] = $this->app->Secure->GetGET('id'); $data['user'] = $this->app->Secure->GetGET('user'); $data['von'] = $this->app->Secure->GetPOST('von'); $data['firma'] = $this->app->Secure->GetPOST('firma'); $data['ansprechpartner'] = $this->app->Secure->GetPOST('ansprechpartner'); $data['an'] = $this->app->Secure->GetPOST('an'); $data['email_an'] = $this->app->Secure->GetPOST('email_an'); $data['firma_an'] = $this->app->Secure->GetPOST('firma_an'); $data['adresse'] = $this->app->Secure->GetPOST('adresse'); $data['plz'] = $this->app->Secure->GetPOST('plz'); $data['ort'] = $this->app->Secure->GetPOST('ort'); $data['land'] = $this->app->Secure->GetPOST('land'); $data['datum'] = $this->app->Secure->GetPOST('datum'); $data['betreff'] = $this->app->Secure->GetPOST('betreff'); $data['content'] = $this->app->Secure->GetPOST('content'); $data['signatur'] = $this->app->Secure->GetPOST('signatur'); $data['art'] = $this->app->Secure->GetPOST('art'); $data['email'] = $this->app->Secure->GetPOST('email'); $data['mail'] = $this->app->Secure->GetPOST('mail'); $data['fax'] = $this->app->Secure->GetPOST('fax'); $data['prefill'] = $this->app->Secure->GetPOST('prefill'); $data['pdf'] = $this->app->Secure->GetPOST('pdf'); $data['save'] = $this->app->Secure->GetPOST('save'); $data['send'] = $this->app->Secure->GetPOST('send'); return $data; } function LoadInput($data) { $this->app->Tpl->Set('VON', $data['von']); $this->app->Tpl->Set('FIRMA', $data['firma']); $this->app->Tpl->Set('ANSPRECHPARTNER', $data['ansprechpartner']); $this->app->Tpl->Set('AN', $data['an']); $this->app->Tpl->Set('EMAILAN', $data['email_an']); $this->app->Tpl->Set('FIRMAAN', $data['firma_an']); $this->app->Tpl->Set('ADRESSE', $data['adresse']); $this->app->Tpl->Set('PLZ', $data['plz']); $this->app->Tpl->Set('ORT', $data['ort']); $this->app->Tpl->Set('LAND', $data['land']); $this->app->Tpl->Set('DATUM', $data['datum']); $this->app->Tpl->Set('BETREFF', $data['betreff']); $this->app->Tpl->Set('CONTENT', $data['content']); if($data['signatur']=='0') $this->app->Tpl->Set('SIGNATURNO', 'checked'); else $this->app->Tpl->Set('SIGNATURYES', 'checked'); if($data['art']=='mail') $this->app->Tpl->Set('ARTMAIL', 'checked'); else if($data['art']=='fax') $this->app->Tpl->Set('ARTFAX', 'checked'); else $this->app->Tpl->Set('ARTMAIL', 'checked'); $this->app->Tpl->Set('EMAILSELECT', $this->app->erp->GetSelectEmail($data['email'])); $this->app->Tpl->Set('DRUCKERSELECT', $this->DruckerSelect($data['mail'])); $this->app->Tpl->Set('FAXSELECT', $this->DruckerSelect($data['fax'])); $this->app->Tpl->Set('PREFILL', $data['prefill']); $this->app->YUI->AutoComplete('an', 'adressename'); } } ?>