OpenXE/www/pages/geschaeftsbrief_vorlagen.php
2021-05-21 08:49:41 +02:00

342 lines
12 KiB
PHP

<?php
/*
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
*
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
*
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
* to obtain the text of the corresponding license version.
*
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/
?>
<?php
include ("_gen/geschaeftsbrief_vorlagen.php");
class Geschaeftsbrief_vorlagen extends GenGeschaeftsbrief_vorlagen {
/** @var Application $app */
var $app;
/**
* Geschaeftsbrief_vorlagen constructor.
*
* @param Application $app
* @param bool $intern
*/
public function __construct($app, $intern = false) {
//parent::GenGeschaeftsbrief_vorlagen($app);
$this->app=$app;
if($intern) {
return;
}
$this->app->ActionHandlerInit($this);
$this->app->ActionHandler("create","Geschaeftsbrief_vorlagenCreate");
$this->app->ActionHandler("edit","Geschaeftsbrief_vorlagenEdit");
$this->app->ActionHandler("delete","Geschaeftsbrief_vorlagenDelete");
$this->app->ActionHandler("list","Geschaeftsbrief_vorlagenList");
$this->app->ActionHandler("dateien","Geschaeftsbrief_vorlagenDateien");
//$this->app->ActionHandler("copy", "Geschaeftsbrief_vorlagenCopy");
$this->app->ActionHandler("copyedit", "Geschaeftsbrief_vorlagenCopyEdit");
$this->app->ActionHandler("copysave", "Geschaeftsbrief_vorlagenCopySave");
$this->app->ActionHandlerListen($app);
}
function Geschaeftsbrief_vorlagenDelete()
{
$id = $this->app->Secure->GetGET("id");
if(is_numeric($id))
{
$this->app->DB->Delete("DELETE FROM geschaeftsbrief_vorlagen WHERE id='$id'");
}
$this->Geschaeftsbrief_vorlagenList();
}
function Geschaeftsbrief_vorlagenCreate()
{
$this->Geschaeftsbrief_vorlagenMenu();
parent::Geschaeftsbrief_vorlagenCreate();
}
function Geschaeftsbrief_vorlagenList()
{
$this->Geschaeftsbrief_vorlagenMenu();
//parent::Geschaeftsbrief_vorlagenList();
$this->app->YUI->TableSearch("TAB1","geschaeftsbrief_vorlagenlist");
$this->app->YUI->AutoComplete("editprojekt", "projektname", 1);
//MIT EDITOR PASST FORMATIERUNG VOM TEXT NICHT MEHR
$this->app->YUI->CkEditor("edittext","internal");
$sprachenOptions = $this->app->erp->GetSprachenSelect();
foreach($sprachenOptions as $k => $v)$this->app->Tpl->Add('SELSPRACHEN','<option value="'.$k.'">'.$v.'</option>');
$this->app->YUI->AutoComplete("projekt", "projektname", 1);
$this->app->YUI->CkEditor("text", "internal");
$this->app->YUI->DateiPopup('DATEIENPOPUP','geschaeftsbrief_vorlagen','#e_id',array(
'openbuttontarget'=>'DATEIBUTTON'
,'frompopup'=>'editGeschaeftsbriefvorlage','afteropen'=>'AFTERPOPUPOPEN'
));
$this->app->Tpl->Parse('PAGE', "geschaeftsbrief_vorlagen_list.tpl");
}
function Geschaeftsbrief_vorlagenMenu()
{
$this->app->erp->Headlines('Dokumenten Vorlagen');
$this->app->erp->MenuEintrag("index.php?module=geschaeftsbrief_vorlagen&action=list","&Uuml;bersicht");
$this->app->erp->MenuEintrag("Geschaeftsbrief_vorlagenEdit(0)","Neuer Eintrag");
if($this->app->Secure->GetGET("action")==="list"){
$this->app->erp->MenuEintrag("index.php?module=einstellungen&action=list", "Zur&uuml;ck zur &Uuml;bersicht");
}
else{
$this->app->erp->MenuEintrag("index.php?module=geschaeftsbrief_vorlagen&action=list", "Zur&uuml;ck zur &Uuml;bersicht");
}
}
function Geschaeftsbrief_vorlagenPopup()
{
// $this->app->Tpl->Parse("PAGE","geschaeftsbrief_vorlagen_popup.tpl");
}
/*function Geschaeftsbrief_vorlagenEdit()
{
$this->Geschaeftsbrief_vorlageMenu();
parent::Geschaeftsbrief_vorlagenEdit();
}*/
function Geschaeftsbrief_vorlagenEdit()
{
$this->Geschaeftsbrief_vorlageMenu();
if($this->app->Secure->GetGET('cmd')=='popupedit'){
$eid = (int)$this->app->Secure->GetPOST('id');
$data = $this->app->DB->SelectArr("SELECT id, sprache, betreff, text, subjekt, projekt FROM geschaeftsbrief_vorlagen WHERE id = '$eid' LIMIT 1");
if($data){
$data = reset($data);
if($data['projekt'] > 0){
$projektname = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id = '".$data['projekt']."' LIMIT 1");
$data['projekt'] = $projektname;
}else{
$data['projekt'] = '';
}
}else{
$data['id'] = '0';
$data['sprache'] = 'deutsch';
$data['betreff'] = '';
$data['text'] = '';
$data['subjekt'] = '';
$data['projekt'] = '';
}
echo json_encode($data);
$this->app->ExitXentral();
}
if($this->app->Secure->GetGET('cmd')==='popupsave'){
$eid = $this->app->Secure->GetPOST('eid');
$esprache = trim($this->app->Secure->GetPOST('esprache'));
$ebetreff = trim($this->app->Secure->GetPOST('ebetreff'));
$etext = trim($this->app->Secure->GetPOST('etext'));
$esubjekt = trim($this->app->Secure->GetPOST('esubjekt'));
$eprojekt = trim($this->app->Secure->GetPOST('eprojekt'));
$error = "";
if($esubjekt == ""){
$error .= "Typf"."\n";
}
if($eprojekt != ""){
$projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung = '$eprojekt' LIMIT 1");
if($projektid != ""){
$eprojekt = $projektid;
}else{
$error .= "Kein gültiges Projekt"."\n";
}
}else{
$eprojekt = 0;
}
if($error == ''){
if($eid > 0){
$this->app->DB->Update("UPDATE geschaeftsbrief_vorlagen SET sprache = '$esprache', betreff = '$ebetreff', text = '$etext', subjekt = '$esubjekt', projekt = '$eprojekt' WHERE id = '$eid'");
echo json_encode(array('status'=>1));
$this->app->ExitXentral();
}
$this->app->DB->Insert("INSERT INTO geschaeftsbrief_vorlagen (sprache, betreff, text, subjekt, projekt, firma) VALUES ('$esprache', '$ebetreff', '$etext', '$esubjekt', '$eprojekt', 1)");
echo json_encode(array('status'=>1));
$this->app->ExitXentral();
}
echo json_encode(array('status'=>0,'statusText'=>$error));
$this->app->ExitXentral();
}
$this->app->Tpl->Parse('PAGE',"geschaeftsbrief_vorlagen_popup.tpl");
}
function Geschaeftsbrief_vorlageMenu() {
$id = $this->app->Secure->GetGET("id");
$this->app->erp->MenuEintrag("index.php?module=geschaeftsbrief_vorlagen&action=edit&id=$id","Details");
$anzahldateien = $this->app->erp->AnzahlDateien("geschaeftsbrief_vorlagen",$id);
if($anzahldateien > 0) {
$anzahldateien = ' ('.$anzahldateien.')';
} else {
$anzahldateien='';
}
$this->app->erp->MenuEintrag("index.php?module=geschaeftsbrief_vorlagen&action=dateien&id=$id","Dateien".$anzahldateien);
$this->app->erp->MenuEintrag("index.php?module=geschaeftsbrief_vorlagen&action=list","Zur&uuml;ck zur &Uuml;bersicht");
}
function Geschaeftsbrief_vorlagenDateien()
{
$id = $this->app->Secure->GetGET("id");
$subjekt = $this->app->DB->Select("SELECT subjekt FROM geschaeftsbrief_vorlagen WHERE id='$id' LIMIT 1");
$this->Geschaeftsbrief_vorlageMenu();
$this->app->Tpl->Add('UEBERSCHRIFT'," (Dateien)");
$this->app->YUI->DateiUpload('PAGE',"geschaeftsbrief_vorlagen",$id);
}
function Geschaeftsbrief_vorlagenCopyEdit()
{
//$id = (int)$this->app->Secure->GetGET('id');
if($this->app->Secure->GetGET('cmd')==='get'){
$id = (int)$this->app->Secure->GetPOST('id');
$data = $this->app->DB->SelectArr("SELECT id, subjekt, sprache, betreff, text, projekt FROM geschaeftsbrief_vorlagen WHERE id = '$id' LIMIT 1");
if($data){
$data = reset($data);
if($data['projekt'] > 0){
$projektabkuerzung = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id = '".$data['projekt']."' LIMIT 1");
$data['projekt'] = $projektabkuerzung;
}else{
$data['projekt'] = "Standard Vorlage / ohne Projekt";
}
}
if(!$this->app->erp->isHTML($data['text'])){
$data['text'] = nl2br($data['text']);
}
echo json_encode($data);
$this->app->ExitXentral();
}
}
function Geschaeftsbrief_vorlagenCopySave(){
$id = (int)$this->app->Secure->GetPOST('id');
$subjekt = $this->app->Secure->GetPOST('subjekt');
$sprache = $this->app->Secure->GetPOST('sprache');
$projekt = $this->app->Secure->GetPOST('projekt');
$betreff = $this->app->Secure->GetPOST('betreff');
$text = $this->app->Secure->GetPOST('text');
$dateien = $this->app->Secure->GetPOST('dateien');
$error = '';
if($id == '' || $id <= 0){
$id = 0;
}
if($dateien == '' || $dateien <= 0){
$dateien = 0;
}
if($subjekt == ''){
$error .= "Typf"."\n";
}
if($error != ''){
echo json_encode(array('status'=>0,'statusText'=>$error));
$this->app->ExitXentral();
}
$data = array($id, $sprache, $projekt, $betreff, $text, $dateien, $subjekt);
$this->Geschaeftsbrief_vorlagenCopy($data, true);
echo json_encode(array('status'=>1));
$this->app->ExitXentral();
}
function Geschaeftsbrief_vorlagenCopy($data = null, $return = false)
{
$id = $data[0];
$sprache = $data[1];
$projekt = $data[2];
$betreff = $data[3];
$text = $data[4];
$dateien = $data[5];
$subjekt = $data[6];
$this->app->DB->MysqlCopyRow("geschaeftsbrief_vorlagen","id",$id);
$idnew = $this->app->DB->GetInsertID();
if($sprache == "DE"){
$sprache = "deutsch";
}elseif($sprache == "EN"){
$sprache = "englisch";
}
if($projekt != ""){
$projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung = '$projekt' LIMIT 1");
}else{
$projektid = 0;
}
$this->app->DB->Update("UPDATE geschaeftsbrief_vorlagen SET sprache = '$sprache', betreff = '$betreff', text = '$text', subjekt = '$subjekt', projekt = '$projektid' WHERE id = '$idnew' LIMIT 1");
if($dateien == 1){
$dateien = $this->app->DB->SelectArr("SELECT DISTINCT datei FROM datei_stichwoerter WHERE parameter = '$id' AND objekt = 'geschaeftsbrief_vorlagen'");
$datei_stichwoerter = $this->app->DB->SelectArr("SELECT id,datei FROM datei_stichwoerter WHERE parameter = '$id' AND objekt = 'geschaeftsbrief_vorlagen'");
if($dateien){
foreach($dateien as $datei){
$titel = $this->app->DB->Select("SELECT titel FROM datei WHERE id='".$datei['datei']."' LIMIT 1");
$beschreibung = $this->app->DB->Select("SELECT beschreibung FROM datei WHERE id='".$datei['datei']."' LIMIT 1");
$nummer = $this->app->DB->Select("SELECT nummer FROM datei WHERE id='".$datei['datei']."' LIMIT 1");
$name = $this->app->DB->Select("SELECT dateiname FROM datei_version WHERE datei='".$this->app->DB->real_escape_string($datei['datei'])."' ORDER by version DESC LIMIT 1");
$ersteller = $this->app->User->GetName();
$tmpnewdateiid = $this->app->erp->CreateDatei($name,$titel,$beschreibung,$nummer,$this->app->erp->GetDateiPfad($datei['datei']),$ersteller);
$datei_mapping[$datei['datei']] = $tmpnewdateiid;
}
}
if($datei_stichwoerter){
foreach($datei_stichwoerter as $datei){
$neuesstichwort = $this->app->DB->MysqlCopyRow("datei_stichwoerter", "id", $datei['id']);
$newdatei = $datei_mapping[$datei['datei']];
$this->app->DB->Update("UPDATE datei_stichwoerter SET datei='$newdatei', parameter = '$idnew', objekt = 'geschaeftsbrief_vorlagen' WHERE id = '$neuesstichwort' LIMIT 1");
}
}
}
if($return) {
return $idnew;
}
$msg = $this->app->erp->base64_url_encode("<div class=error>Sie befinden sich in der neuen Kopie der Vorlage.</div>");
$this->app->Location->execute("index.php?module=geschaeftsbrief_vorlagen&action=edit&msg=$msg&id=".$idnew);
}
}