2021-05-21 08:49:41 +02:00
< ? 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
class Bundesstaaten {
/** @var erpooSystem $app */
var $app ;
static function TableSearch ( & $app , $name , $erlaubtevars )
{
// in dieses switch alle lokalen Tabellen (diese Live Tabellen mit Suche etc.) für dieses Modul
switch ( $name )
{
case " bundesstaaten_list " :
$allowed [ 'bundesstaaten' ] = array ( 'list' );
$heading = array ( 'Land' , 'ISO' , 'Bundesstaat' , 'Aktiv' , 'Menü' );
$width = array ( '20%' , '10%' , '60%' , '10%' , '1%' );
$findcols = array ( 'l.bezeichnung_de' , 'b.iso' , 'b.bundesstaat' , " if(b.aktiv, 'ja', '-') " , 'b.id' );
$searchsql = array ( 'l.bezeichnung_de' , 'b.iso' , 'b.bundesstaat' );
$defaultorder = 1 ;
$defaultorderdesc = 0 ;
$menu = " <table cellpadding=0 cellspacing=0> " ;
$menu .= " <tr> " ;
$menu .= " <td nowrap> " ;
$menu .= '<a href="javascript:;" onclick="BundesstaatenEdit(%value%);">' ;
$menu .= " <img src= \" themes/ { $app -> Conf -> WFconf [ 'defaulttheme' ] } /images/edit.svg \" border= \" 0 \" > " ;
$menu .= " </a> " ;
$menu .= '<a href="javascript:;" onclick="BundesstaatenDelete(%value%);">' ;
$menu .= " <img src= \" themes/ { $app -> Conf -> WFconf [ 'defaulttheme' ] } /images/delete.svg \" border= \" 0 \" > " ;
$menu .= " </a> " ;
$menu .= " </td> " ;
$menu .= " </tr> " ;
$menu .= " </table> " ;
$finaktiv = $app -> YUI -> TableSearchFilter ( $name , 5 , 'inaktiv' , '0' , 0 , 'checkbox' );
$subwhere = '' ;
if ( $finaktiv == 0 ){
$subwhere .= ' AND b.aktiv = 1' ;
}
$where = " b.id > 0 " . $subwhere ;
$sql = " SELECT SQL_CALC_FOUND_ROWS b.id, l.bezeichnung_de, b.iso, b.bundesstaat, if(b.aktiv, 'ja', '-') as aktiv, b.id FROM bundesstaaten b LEFT JOIN laender l ON b.land = l.iso " ;
$count = " SELECT count(b.id) FROM bundesstaaten b WHERE $where " ;
break ;
}
$erg = [];
foreach ( $erlaubtevars as $k => $v )
{
if ( isset ( $$v )) $erg [ $v ] = $$v ;
}
return $erg ;
}
function __construct ( $app , $intern = false ) {
$this -> app = $app ;
if ( $intern ) return ;
$this -> app -> ActionHandlerInit ( $this );
// ab hier alle Action Handler definieren die das Modul hat
$this -> app -> ActionHandler ( " list " , " BundesstaatenList " );
$this -> app -> ActionHandler ( " edit " , " BundesstaatenEdit " );
$this -> app -> ActionHandler ( " save " , " BundesstaatenSave " );
$this -> app -> ActionHandler ( " delete " , " BundesstaatenDelete " );
$this -> app -> ActionHandlerListen ( $app );
$this -> Install ();
}
function Install (){
$this -> app -> erp -> CheckTable ( " bundesstaaten " );
$this -> app -> erp -> CheckColumn ( " id " , " int(11) " , " bundesstaaten " , " NOT NULL AUTO_INCREMENT " );
$this -> app -> erp -> CheckColumn ( " land " , " varchar(255) " , " bundesstaaten " , " NOT NULL " );
$this -> app -> erp -> CheckColumn ( " iso " , " varchar(255) " , " bundesstaaten " , " NOT NULL " );
$this -> app -> erp -> CheckColumn ( " bundesstaat " , " varchar(255) " , " bundesstaaten " , " NOT NULL " );
$this -> app -> erp -> CheckColumn ( " aktiv " , " int(11) " , " bundesstaaten " , " NOT NULL DEFAULT 0 " );
}
/**
* @ param $target
* @ param $landid
* @ param $bundeslandid
* @ param string $valueland
* @ param string $valuebundesland
* @ param bool $disabled
*/
function BundeslaenderSelect ( $target , $landid , $bundeslandid , $valueland = '' , $valuebundesland = '' , $disabled = false )
{
if ( $valueland == '' ) $valueland = $this -> app -> erp -> Firmendaten ( 'land' );
$arr = $this -> app -> DB -> SelectArr ( " SELECT * FROM bundesstaaten WHERE land <> '' AND iso <> '' AND ( aktiv = 1 OR (land = ' $valueland ' AND iso = ' $valuebundesland ')) ORDER BY land, bundesstaat " );
$this -> app -> Tpl -> Add ( $target , '<select id="' . $bundeslandid . '" name="' . $bundeslandid . '"' . ( $disabled ? ' disabled="disabled" ' : '' ) . '><option value=""></option>' );
if ( $arr )
{
foreach ( $arr as $i => $v )
{
if ( $v [ 'land' ] == $valueland )
{
$this -> app -> Tpl -> Add ( $target , '<option value="' . $v [ 'iso' ] . '"' . ( $v [ 'iso' ] == $valuebundesland ? ' selected="selected" ' : '' ) . '>' . htmlspecialchars ( $v [ 'bundesstaat' ]) . '</option>' );
}
}
}
$this -> app -> Tpl -> Add ( $target , '</select>' );
$this -> app -> Tpl -> Add ( $target , '<script type="text/javascript">' );
if ( $arr )
{
$this -> app -> Tpl -> Add ( $target , " \r \n var bundeslaender $bundeslandid = new Array(); \r \n " );
$i = 0 ;
foreach ( $arr as $i => $v )
{
$this -> app -> Tpl -> Add ( $target , " \r \n bundeslaender $bundeslandid " . " [ " . $i . " ] = new Object(); \r \n " );
$this -> app -> Tpl -> Add ( $target , " \r \n bundeslaender $bundeslandid " . " [ " . $i . " ].land = ' " . htmlspecialchars ( $v [ 'land' ]) . " '; \r \n " );
$this -> app -> Tpl -> Add ( $target , " \r \n bundeslaender $bundeslandid " . " [ " . $i . " ].iso = ' " . htmlspecialchars ( $v [ 'iso' ]) . " '; \r \n " );
$this -> app -> Tpl -> Add ( $target , " \r \n bundeslaender $bundeslandid " . " [ " . $i . " ].bundesstaat = ' " . htmlspecialchars ( $v [ 'bundesstaat' ]) . " '; \r \n " );
$i ++ ;
}
}
$this -> app -> Tpl -> Add ( $target , '
$ ( document ) . ready ( function () {
$ ( \ 'select[name="' . $landid . ' " ] \ ').on( \ 'change \ ', function() {
var landsel = $ ( this ) . val ();
var bundeslandel = $ ( \ '#' . $bundeslandid . ' \ ' );
var bundeslandval = $ ( bundeslandel ) . val ();
$ ( bundeslandel ) . html ( \ ' < option value = " " ></ option > \ ' );
$ ( bundeslaender '.$bundeslandid.' ) . each ( function ( k , v ){
if ( landsel == v . land )
{
$ ( bundeslandel ) . html ( $ ( bundeslandel ) . html () + \ ' < option value = " \ '+v.iso+ \ ' " > \ ' + v . bundesstaat + \ ' </ option > \ ' );
}
});
$ ( bundeslaender '.$bundeslandid.' ) . val ( bundeslandval );
});
});
</ script > ' );
}
function BundesstaatenMenu ()
{
$this -> app -> erp -> MenuEintrag ( " index.php?module=bundesstaaten&action=list " , " Zurück zur Übersicht " );
$this -> app -> erp -> MenuEintrag ( " index.php?module=bundesstaaten&action=list " , " Details " );
$this -> app -> erp -> MenuEintrag ( " BundesstaatenEdit(0) " , " Neuer Eintrag " );
}
/**
* @ param string $needle
* @ param $haystack
* @ param bool $strict
* @ return bool
*/
function in_array_r ( $needle , $haystack , $strict = false ){
foreach ( $haystack as $item ){
if (( $strict ? $item === $needle : $item == $needle ) || ( is_array ( $item ) && $this -> in_array_r ( $needle , $item , $strict ))){
return true ;
}
}
return false ;
}
function BundesstaatenList ()
{
$this -> BundesstaatenMenu ();
$this -> app -> Tpl -> Set ( " KURZUEBERSCHRIFT " , " Bundesstaaten " );
$bundesstaatende = $this -> app -> erp -> GetSelectStaatenliste ( 'DE' );
$bundesstaatendedb = $this -> app -> DB -> SelectArr ( " SELECT bundesstaat, iso FROM bundesstaaten WHERE land = 'DE' " );
$fehlende = array ();
foreach ( $bundesstaatende as $key => $value ){
if ( $this -> in_array_r ( $value , $bundesstaatendedb )){
} else {
$fehlende [ $key ] = $value ;
}
}
$bundesstaatenat = $this -> app -> erp -> GetSelectStaatenliste ( 'AT' );
$bundesstaatenatdb = $this -> app -> DB -> SelectArr ( " SELECT bundesstaat, iso FROM bundesstaaten WHERE land = 'AT' " );
$fehlenat = array ();
foreach ( $bundesstaatenat as $key => $value ){
if ( $this -> in_array_r ( $value , $bundesstaatenatdb )){
} else {
$fehlenat [ $key ] = $value ;
}
}
$bundesstaatench = $this -> app -> erp -> GetSelectStaatenliste ( 'CH' );
$bundesstaatenchdb = $this -> app -> DB -> SelectArr ( " SELECT bundesstaat, iso FROM bundesstaaten WHERE land = 'CH' " );
$fehlench = array ();
foreach ( $bundesstaatench as $key => $value ){
if ( $this -> in_array_r ( $value , $bundesstaatenchdb )){
} else {
$fehlench [ $key ] = $value ;
}
}
$bundesstaatenus = $this -> app -> erp -> GetSelectStaatenliste ( 'US' );
$bundesstaatenusdb = $this -> app -> DB -> SelectArr ( " SELECT bundesstaat, iso FROM bundesstaaten WHERE land = 'US' " );
$fehlenus = array ();
foreach ( $bundesstaatenus as $key => $value ){
if ( $this -> in_array_r ( $value , $bundesstaatenusdb )){
} else {
$fehlenus [ $key ] = $value ;
}
}
$bundesstaatenca = $this -> app -> erp -> GetSelectStaatenliste ( 'CA' );
$bundesstaatencadb = $this -> app -> DB -> SelectArr ( " SELECT bundesstaat, iso FROM bundesstaaten WHERE land = 'CA' " );
$fehlenca = array ();
foreach ( $bundesstaatenca as $key => $value ){
if ( $this -> in_array_r ( $value , $bundesstaatencadb )){
} else {
$fehlenca [ $key ] = $value ;
}
}
2022-06-10 11:28:28 +02:00
$anzahlfehlen = ( ! empty ( $fehlende ) ? count ( $fehlende ) : 0 ) + ( ! empty ( $fehlenat ) ? count ( $fehlenat ) : 0 ) + ( ! empty ( $fehlench ) ? count ( $fehlench ) : 0 ) + ( ! empty ( $fehlenus ) ? count ( $fehlenus ) : 0 ) + ( ! empty ( $fehlenca ) ? count ( $fehlenca ) : 0 );
2021-05-21 08:49:41 +02:00
if ( $anzahlfehlen > 0 ){
if ( $anzahlfehlen == 1 ){
$info = " Es steht " . $anzahlfehlen . " neuer Bundesstaaten Eintrag in Xentral zur Verfügung. " ;
} else {
$info = " Es stehen " . $anzahlfehlen . " neue Bundesstaaten Einträge in Xentral zur Verfügung. " ;
}
$nachladebutton = " <input type='submit' name='nachladen' id='nachladen' value='Jetzt nachladen'> " ;
$info .= $nachladebutton ;
$this -> app -> Tpl -> Set ( 'MESSAGE' , " <div class= \" info \" > $info </div> " );
}
$nachladen = $this -> app -> Secure -> GetPOST ( " nachladen " );
if ( $nachladen != " " ){
2022-06-10 11:28:28 +02:00
if (( ! empty ( $fehlende ) ? count ( $fehlende ) : 0 ) > 0 ){
2021-05-21 08:49:41 +02:00
foreach ( $fehlende as $key => $value ){
$this -> app -> DB -> Insert ( " INSERT INTO bundesstaaten (land, iso, bundesstaat, aktiv) VALUES ('DE', ' $key ', ' $value ', 1) " );
}
}
2022-06-10 11:28:28 +02:00
if (( ! empty ( $fehlenat ) ? count ( $fehlenat ) : 0 ) > 0 ){
2021-05-21 08:49:41 +02:00
foreach ( $fehlenat as $key => $value ){
$this -> app -> DB -> Insert ( " INSERT INTO bundesstaaten (land, iso, bundesstaat, aktiv) VALUES ('AT', ' $key ', ' $value ', 1) " );
}
}
2022-06-10 11:28:28 +02:00
if (( ! empty ( $fehlench ) ? count ( $fehlench ) : 0 ) > 0 ){
2021-05-21 08:49:41 +02:00
foreach ( $fehlench as $key => $value ){
$this -> app -> DB -> Insert ( " INSERT INTO bundesstaaten (land, iso, bundesstaat, aktiv) VALUES ('CH', ' $key ', ' $value ', 1) " );
}
}
2022-06-10 11:28:28 +02:00
if (( ! empty ( $fehlenus ) ? count ( $fehlenus ) : 0 ) > 0 ){
2021-05-21 08:49:41 +02:00
foreach ( $fehlenus as $key => $value ){
$this -> app -> DB -> Insert ( " INSERT INTO bundesstaaten (land, iso, bundesstaat, aktiv) VALUES ('US', ' $key ', ' $value ', 1) " );
}
}
2022-06-10 11:28:28 +02:00
if (( ! empty ( $fehlenca ) ? count ( $fehlenca ) : 0 ) > 0 ){
2021-05-21 08:49:41 +02:00
foreach ( $fehlenca as $key => $value ){
$this -> app -> DB -> Insert ( " INSERT INTO bundesstaaten (land, iso, bundesstaat, aktiv) VALUES ('CA', ' $key ', ' $value ', 1) " );
}
}
header ( " Location:index.php?module=bundesstaaten&action=list " );
exit ;
}
$laenderanzahl = $this -> app -> DB -> Select ( " SELECT COUNT(id) FROM laender " );
//if($laenderanzahl <= 0){
$select = '' ;
$laender = $this -> app -> erp -> GetSelectLaenderliste ();
foreach ( $laender as $key => $value ){
if ( trim ( $key ) != " " && trim ( $key ) != " 0 " ){
$select .= " <option value=' " . $key . " '> " . htmlspecialchars ( $value ) . " </option> " ;
}
}
//}else{
//$laender = $this->app->DB->SelectArr("SELECT iso, bezeichnung_de FROM laender");
//foreach($laender as $key=>$value){
//$select .= "<option value='".$value['iso']."'>".$value['bezeichnung_de']."</option>";
//}
$this -> app -> Tpl -> Add ( " LAENDER " , $select );
//}
$this -> app -> YUI -> TableSearch ( 'TAB1' , 'bundesstaaten_list' , " show " , " " , " " , basename ( __FILE__ ), __CLASS__ );
$this -> app -> Tpl -> Parse ( " PAGE " , " bundesstaaten_list.tpl " );
}
function BundesstaatenEdit ()
{
if ( $this -> app -> Secure -> GetGET ( 'cmd' ) == 'get' ){
$id = ( int ) $this -> app -> Secure -> GetPOST ( 'id' );
$data = $this -> app -> DB -> SelectArr ( " SELECT b.id, b.land, b.iso, b.bundesstaat, b.aktiv FROM bundesstaaten b WHERE b.id = ' $id ' LIMIT 1 " );
if ( $data ){
$data = reset ( $data );
} else {
$data [ 'id' ] = 0 ;
$data [ 'land' ] = '' ;
$data [ 'iso' ] = '' ;
$data [ 'bundesstaat' ] = '' ;
$data [ 'aktiv' ] = 1 ;
}
echo json_encode ( $data );
exit ;
}
$this -> app -> Tpl -> Parse ( 'PAGE' , " bundesstaaten_list.tpl " );
}
function BundesstaatenSave ()
{
$id = ( int ) $this -> app -> Secure -> GetPOST ( 'id' );
$land = trim ( $this -> app -> Secure -> GetPOST ( 'land' ));
$iso = trim ( $this -> app -> Secure -> GetPOST ( 'iso' ));
$bundesstaat = trim ( $this -> app -> Secure -> GetPOST ( 'bundesstaat' ));
$aktiv = $this -> app -> Secure -> GetPOST ( 'aktiv' );
$error = " " ;
if ( $land == " " ){
$error .= " Bitte Land ausfüllen \n " ;
}
if ( $iso == " " ){
$error .= " Bitte ISO-Code ausfüllen " . " \n " ;
}
if ( strlen ( $iso ) > 2 ){
$error .= " Bitte 2-stelligen ISO-Code für den Bundesstaat ausfüllen " . " \n " ;
}
if ( $bundesstaat == " " ){
$error .= " Bitte Bundesstaat ausfüllen " . " \n " ;
}
if ( $land != " " && $bundesstaat != " " ){
$isovorhanden = $this -> app -> DB -> Select ( " SELECT id FROM bundesstaaten WHERE land = ' $land ' AND iso = ' $iso ' AND id != ' $id ' LIMIT 1 " );
if ( $isovorhanden != " " ){
$error .= " Es gibt diesen ISO-Code bereits für dieses Land " . " \n " ;
} else {
$schonvorhanden = $this -> app -> DB -> Select ( " SELECT id FROM bundesstaaten WHERE land = ' $land ' AND iso = ' $iso ' AND bundesstaat = ' $bundesstaat ' AND id != ' $id ' LIMIT 1 " );
if ( $schonvorhanden != " " ){
$error .= " Diesen Eintrag gibt es bereits " . " \n " ;
}
}
}
if ( $error == " " ){
if ( $id ){
$this -> app -> DB -> Update ( " UPDATE bundesstaaten SET land = ' $land ', iso = ' $iso ', bundesstaat = ' $bundesstaat ', aktiv = ' $aktiv ' WHERE id = ' $id ' " );
echo json_encode ( array ( 'status' => 1 ));
exit ;
} else {
$this -> app -> DB -> Insert ( " INSERT INTO bundesstaaten (land, iso, bundesstaat, aktiv) VALUES (' $land ', ' $iso ', ' $bundesstaat ', ' $aktiv ') " );
echo json_encode ( array ( 'status' => 1 ));
exit ;
}
} else {
echo json_encode ( array ( 'status' => 0 , 'statusText' => $error ));
exit ;
}
}
function BundesstaatenDelete ()
{
$id = ( int ) $this -> app -> Secure -> GetPOST ( 'id' );
if ( $id )
$this -> app -> DB -> Update ( " DELETE FROM bundesstaaten WHERE id = ' $id ' " );
echo json_encode ( array ( 'status' => 1 ));
exit ;
}
}