2021-05-21 08:49:41 +02:00
< ? php
error_reporting ( E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_STRICT );
//error_reporting(0);
include_once ( dirname ( __FILE__ ) . " /../conf/main.conf.php " );
include_once ( dirname ( __FILE__ ) . " /../phpwf/plugins/class.mysql.php " );
include_once ( dirname ( __FILE__ ) . " /../phpwf/plugins/class.secure.php " );
include_once ( dirname ( __FILE__ ) . " /../phpwf/plugins/class.user.php " );
include_once ( dirname ( __FILE__ ) . " /../www/lib/imap.inc.php " );
include_once ( dirname ( __FILE__ ) . " /../www/lib/class.erpapi.php " );
if ( is_file ( dirname ( __FILE__ ) . " /../www/lib/class.erpapi_custom.php " ))
include_once ( dirname ( __FILE__ ) . " /../www/lib/class.erpapi_custom.php " );
include_once ( dirname ( __FILE__ ) . " /../www/lib/class.httpclient.php " );
$aes = '' ;
$phpversion = ( String ) phpversion ();
2022-06-01 21:14:27 +02:00
if ( $phpversion [ 0 ] == '7' && ( int ) $phpversion [ 2 ] > 0 ) $aes = '2' ;
2021-05-21 08:49:41 +02:00
if ( $aes == 2 && is_file ( dirname ( __FILE__ ) . " /../www/lib/class.aes " . $aes . " .php " ))
{
include_once ( dirname ( __FILE__ ) . " /../www/lib/class.aes " . $aes . " .php " );
} else
include_once ( dirname ( __FILE__ ) . " /../www/lib/class.aes.php " );
include_once ( dirname ( __FILE__ ) . " /../www/lib/class.remote.php " );
//include_once(dirname(__FILE__)."/coface_log.php");
//include_once(dirname(__FILE__)."/coface_io.php");
if ( is_file ( " objectapi/mysql/_gen/object.gen.artikel.php " ))
include_once ( " objectapi/mysql/_gen/object.gen.artikel.php " );
else
include_once ( dirname ( __FILE__ ) . " /../www/objectapi/mysql/_gen/object.gen.artikel.php " );
if ( is_file ( " objectapi/mysql/_gen/object.gen.adresse.php " ))
include_once ( " objectapi/mysql/_gen/object.gen.adresse.php " );
else
include_once ( dirname ( __FILE__ ) . " /../www/objectapi/mysql/_gen/object.gen.adresse.php " );
if ( is_file ( " objectapi/mysql/_gen/object.gen.auftrag_position.php " ))
include_once ( " objectapi/mysql/_gen/object.gen.auftrag_position.php " );
else
include_once ( dirname ( __FILE__ ) . " /../www/objectapi/mysql/_gen/object.gen.auftrag_position.php " );
if ( is_file ( " objectapi/mysql/_gen/object.gen.auftrag.php " ))
include_once ( " objectapi/mysql/_gen/object.gen.auftrag.php " );
else
include_once ( dirname ( __FILE__ ) . " /../www/objectapi/mysql/_gen/object.gen.auftrag.php " );
if ( is_file ( " objectapi/mysql/_gen/object.gen.lager_platz_inhalt.php " ))
include_once ( " objectapi/mysql/_gen/object.gen.lager_platz_inhalt.php " );
else
include_once ( dirname ( __FILE__ ) . " /../www/objectapi/mysql/_gen/object.gen.lager_platz_inhalt.php " );
if ( is_file ( " objectapi/mysql/_gen/object.gen.verkaufspreise.php " ))
include_once ( " objectapi/mysql/_gen/object.gen.verkaufspreise.php " );
else
include_once ( dirname ( __FILE__ ) . " /../www/objectapi/mysql/_gen/object.gen.verkaufspreise.php " );
class coface_Daten
{
public $Struktur ;
public $Daten ;
public function istGleich ( & $Datensatz )
{
foreach ( $this -> Daten as $k => $v )
{
if ( $v )
{
if ( false !== ( $val = $Datensatz -> GetDataByName ( $k )))
{
if ( $val != $v )
{
//echo $val." <> ".$v;
return false ;
}
} else {
echo " no val: " . $v . " \r \n " ;
return false ;
}
}
}
foreach ( $Datensatz -> Daten as $k => $v )
{
if ( $v )
{
if ( false !== ( $val = $this -> GetDataByName ( $k )))
{
if ( $val != $v )
{
//echo $val." <> ".$v;
return false ;
}
} else
{
echo " no val: " . $v . " \r \n " ;
return false ;
}
}
}
return true ;
}
public function getByName ( $name )
{
if ( ! $this -> Struktur ) return false ;
foreach ( $this -> Struktur as $k => $v )
{
if ( $v [ 1 ] == strtoupper ( $name )) return $v ;
}
return false ;
}
public function getByNr ( $nr )
{
if ( isset ( $this -> Struktur [ $nr ])) return $this -> Struktur [ $nr ];
return false ;
}
protected function KeineSonderzeichen ( $text )
{
$text = str_replace ( " ä " , " ae " , $text );
$text = str_replace ( " Ä " , " Ae " , $text );
$text = str_replace ( " ö " , " oe " , $text );
$text = str_replace ( " Ö " , " Oe " , $text );
$text = str_replace ( " ü " , " ue " , $text );
$text = str_replace ( " Ü " , " Ue " , $text );
$text = str_replace ( " ß " , " ss " , $text );
$text = str_replace ( " & " , " u " , $text );
$text = preg_replace ( '#[^-_.A-Za-z0-9]' , '' , $text );
return $text ;
}
public function GetDataByName ( $name )
{
if ( isset ( $this -> Daten [ $name ])) return $this -> Daten [ $name ];
return false ;
}
public function FillFromArray ( & $arr )
{
foreach ( $this -> Struktur as $k => $v )
{
if ( isset ( $arr [ $v [ 1 ]]) && ! is_null ( $arr [ $v [ 1 ]]))
{
if ( ! $this -> FillData ( $v [ 1 ], $arr [ $v [ 1 ]]))
{
return false ;
}
}
}
if ( $this -> getByName ( 'FLNUM' ) !== false && isset ( $arr [ 'FLNUM' ]) && isset ( $this -> FLNUM )) $this -> FLNUM = ( int ) $arr [ 'FLNUM' ];
return true ;
}
public function FillData ( $name , $wert )
{
$wert = str_replace ( 'NONBLOCKINGZERO' , '' , $wert );
if (( $name == 'DBCOTRY' || $name == 'DBLANG' ) && ! $wert ) $wert = 'DE' ;
$wert = html_entity_decode ( $wert );
$name = trim ( strtoupper ( $name ));
$found = false ;
foreach ( $this -> Struktur as $k => $v )
{
if ( $v [ 1 ] == $name ) $found = $k ;
}
if ( ! $found ) return false ;
if ( substr ( $this -> Struktur [ $found ][ 3 ], 0 , 1 ) == 'A' )
{
if ( strpos ( $this -> Struktur [ $found ][ 3 ], 'Sonerzeichen' ) !== false ) $wert = $this -> KeineSonderzeichen ( $wert );
$this -> Daten [ $name ] = mb_substr ( $wert , 0 , $this -> Struktur [ $found ][ 2 ], 'UTF-8' );
return true ;
} elseif ( substr ( $this -> Struktur [ $found ][ 3 ], 0 , 1 ) == 'N' ){
$wert = str_replace ( ',' , '.' , $wert );
if ( ! is_numeric ( $wert )) return false ;
if ( $this -> Struktur [ $found ][ 3 ] == 'N' )
{
$wert = ( int ) $wert ;
if ( $wert < 0 ) return false ;
if ( $wert >= pow ( 10 , $this -> Struktur [ $found ][ 2 ])) return false ;
$this -> Daten [ $name ] = $wert ;
return true ;
}
$vz = false ;
if ( $vzpos = strpos ( $this -> Struktur [ $found ][ 3 ], 'VZ+' ))
{
$vz = true ;
$Str = substr ( $this -> Struktur [ $found ][ 3 ], $vzpos + 3 );
} else {
$Str = $this -> Struktur [ $found ][ 3 ];
if ( $KPos = strpos ( $Str , '(' )) $Str = substr ( $Str , $KPos + 1 );
}
if ( $Kpos = strrpos ( $Str , ')' )) $Str = substr ( $Str , 0 , $Kpos );
$Komma = false ;
if ( strpos ( $Str , ',' )) $Komma = true ;
$Nachkomma = 0 ;
if ( $Komma )
{
$Stellen = preg_split ( " /,/ " , $Str );
if ( isset ( $Stellen [ 1 ])) $Nachkomma = $Stellen [ 1 ];
$vorkomma = $Stellen [ 0 ];
} else {
$vorkomma = ( int ) $Str ;
}
if ( ! $vz ){
if ( $wert < 0 )
{
return false ;
}
}
$wert = round ( $wert , $Nachkomma );
if ( round ( abs ( $wert )) >= pow ( 10 , $vorkomma ))
{
return false ;
}
$this -> Daten [ $name ] = $wert ;
return true ;
} elseif ( substr ( $this -> Struktur [ $found ][ 3 ], 0 , 10 ) == 'TT.MM.JJJJ' ){
if ( $wert == '0000-00-00' )
{
$this -> Daten [ $name ] = null ;
} else {
if ( strpos ( $wert , '.' ))
{
$werta = preg_split ( " / \ ./ " , $wert );
if ( count ( $werta ) == 3 )
{
$this -> Daten [ $name ] = $werta [ 2 ] . '' . $werta [ 1 ] . '' . $werta [ 0 ];
return true ;
}
}
if ( false === ( $ts = strtotime ( $wert )))
{
if ( strpos ( $wert , '-' ))
{
$werta = preg_split ( " / \ -/ " , $wert );
if ( count ( $werta ) == 3 )
{
$this -> Daten [ $name ] = str_replace ( '-' , '' , $wert );
return true ;
} else return false ;
}
return false ;
}
$this -> Daten [ $name ] = date ( " Ymd " , $ts );
}
return true ;
}
if ( isset ( $this -> Struktur [ $name ]))
{
if ( $this -> Struktur )
$this -> Daten [ $name ] = $wert ;
return true ;
}
return false ;
}
function genFeldnamenzeile ()
{
$erg = '' ;
foreach ( $this -> Struktur as $k => $v )
{
if ( $erg != '' ) $erg .= ';' ;
$erg .= '"' . $v [ 1 ] . '"' ;
}
return $erg ;
}
function genDatenZeile ()
{
$erg = '' ;
foreach ( $this -> Struktur as $k => $v )
{
if ( $erg != '' ) $erg .= ';' ;
$erg .= '"' ;
if ( isset ( $this -> Daten [ $v [ 1 ]]))
{
if ( substr ( $v [ 3 ], 0 , 1 ) == 'N' )
{
if ( $v [ 3 ] == 'N' )
{
$wert = str_replace ( '.' , ',' , $this -> Daten [ $v [ 1 ]]);
//$erg .= (strlen($wert)< $v[2]?str_repeat('0',$v[2]-strlen($wert)):'').$wert;
$erg .= $wert ;
} else {
$erg .= str_replace ( '.' , ',' , $this -> Daten [ $v [ 1 ]]);
}
} else {
$erg .= $this -> Daten [ $v [ 1 ]];
}
}
$erg .= '"' ;
}
return $erg ;
}
function pruefe ()
{
foreach ( $this -> Struktur as $k => $v )
{
if ( $v [ 4 ] == 'M' )
{
if ( ! isset ( $this -> Daten [ $v [ 1 ]])) return false ;
if ( $this -> Daten [ $v [ 1 ]] == '' ) return false ;
}
}
return true ;
}
}
class coface_OP_Kopf extends coface_Daten
{
function __construct () {
$this -> Struktur [ 1 ] = array ( 1 => 'FLNUM' , 2 => 6 , 3 => 'N' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 2 ] = array ( 1 => 'FLDATE' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 3 ] = array ( 1 => 'CLNAME1' , 2 => 35 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 4 ] = array ( 1 => 'CLNAME2' , 2 => 35 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 5 ] = array ( 1 => 'CLPLACE' , 2 => 35 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 6 ] = array ( 1 => 'CLZIP' , 2 => 10 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 7 ] = array ( 1 => 'CLSTREET' , 2 => 35 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 8 ] = array ( 1 => 'CLNR' , 2 => 10 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 9 ] = array ( 1 => 'FLBELANZ' , 2 => 8 , 3 => 'N' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 10 ] = array ( 1 => 'FLBELSUM' , 2 => 20 , 3 => 'N (VZ+16,2)' , 4 => 'M' , 5 => '' , 6 => '' );
}
}
class coface_OP_Daten extends coface_Daten
{
var $FLNUM ;
function __construct ( $FLNUM = 0 ) {
$this -> FLNUM = $FLNUM ;
$this -> Struktur [ 1 ] = array ( 1 => 'OPCLNR' , 2 => 10 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 2 ] = array ( 1 => 'OPDBNR' , 2 => 15 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 3 ] = array ( 1 => 'OPITMTYP' , 2 => 5 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 4 ] = array ( 1 => 'OPITMNR' , 2 => 20 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 5 ] = array ( 1 => 'OPITMNRREF' , 2 => 20 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 6 ] = array ( 1 => 'OPITMDTL' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 7 ] = array ( 1 => 'OPITMDAT' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 8 ] = array ( 1 => 'OPITMDTD' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 9 ] = array ( 1 => 'OPAMT' , 2 => 22 , 3 => 'N (VZ+18,2)' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 10 ] = array ( 1 => 'OPCUR' , 2 => 3 , 3 => 'A' , 4 => '' , 5 => 'M' , 6 => '' );
$this -> Struktur [ 11 ] = array ( 1 => 'OPAMTMN' , 2 => 22 , 3 => 'N (VZ+18,2)' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 12 ] = array ( 1 => 'OPCURMN' , 2 => 3 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 13 ] = array ( 1 => 'OPITMDLV' , 2 => 1 , 3 => 'N' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 14 ] = array ( 1 => 'OPITMTAX' , 2 => 3 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 15 ] = array ( 1 => 'OPITMDY1' , 2 => 3 , 3 => 'N' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 16 ] = array ( 1 => 'OPITMRD1' , 2 => 6 , 3 => 'N (3,2)' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 17 ] = array ( 1 => 'OPITMDY2' , 2 => 3 , 3 => 'N' , 4 => '' , 5 => 'K' , 6 => '' );
$this -> Struktur [ 18 ] = array ( 1 => 'OPITMRD2' , 2 => 6 , 3 => 'N (3,2)' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 19 ] = array ( 1 => 'OPITMDY3' , 2 => 3 , 3 => 'N' , 4 => '' , 5 => 'K' , 6 => '' );
$this -> Struktur [ 20 ] = array ( 1 => 'OPITMTXT' , 2 => 254 , 3 => 'A' , 4 => '' , 5 => 'K' , 6 => '' );
}
}
class coface_DB_Kopf extends coface_Daten
{
function __construct () {
$this -> Struktur [ 1 ] = array ( 1 => 'FLNUM' , 2 => 6 , 3 => 'N' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 2 ] = array ( 1 => 'FLDATE' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 3 ] = array ( 1 => 'CLNAME1' , 2 => 35 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 4 ] = array ( 1 => 'CLNAME2' , 2 => 35 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 5 ] = array ( 1 => 'CPLACE' , 2 => 35 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 6 ] = array ( 1 => 'CLZIP' , 2 => 10 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 7 ] = array ( 1 => 'CLSTREET' , 2 => 35 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 8 ] = array ( 1 => 'CLNR' , 2 => 10 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 9 ] = array ( 1 => 'FLITNR' , 2 => 8 , 3 => 'N' , 4 => 'M' , 5 => '' , 6 => '' );
}
}
class coface_DB_Daten extends coface_Daten
{
var $FLNUM ;
function __construct ( $FLNUM = 0 ) {
$this -> FLNUM = $FLNUM ;
$this -> Struktur [ 1 ] = array ( 1 => 'DBCLNR' , 2 => 10 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 2 ] = array ( 1 => 'DBNR' , 2 => 15 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 3 ] = array ( 1 => 'DBNRZE' , 2 => 15 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 4 ] = array ( 1 => 'DBNAME1' , 2 => 40 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 5 ] = array ( 1 => 'DBNAME2' , 2 => 40 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 6 ] = array ( 1 => 'DBKEY' , 2 => 10 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 7 ] = array ( 1 => 'DBSTREET' , 2 => 46 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 8 ] = array ( 1 => 'DBSTREETNR' , 2 => 6 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 9 ] = array ( 1 => 'DBZIP' , 2 => 12 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 10 ] = array ( 1 => 'DBPLACE' , 2 => 30 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 11 ] = array ( 1 => 'DBCOTRY' , 2 => 2 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 12 ] = array ( 1 => 'DBPOBOX' , 2 => 12 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 13 ] = array ( 1 => 'DBPOZIP' , 2 => 12 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 14 ] = array ( 1 => 'DBPOCO' , 2 => 12 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 15 ] = array ( 1 => 'DBLANG' , 2 => 2 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 16 ] = array ( 1 => 'DBCONTAC' , 2 => 40 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 17 ] = array ( 1 => 'DBTEL' , 2 => 24 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 18 ] = array ( 1 => 'DBTELEXT' , 2 => 6 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 19 ] = array ( 1 => 'DBFAX' , 2 => 24 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 20 ] = array ( 1 => 'DBFAXEXT' , 2 => 6 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 21 ] = array ( 1 => 'DBEMAIL' , 2 => 70 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 22 ] = array ( 1 => 'DBVATID' , 2 => 14 , 3 => 'A (keine Sonderzeichen)' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 23 ] = array ( 1 => 'DBPAYCON' , 2 => 10 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 24 ] = array ( 1 => 'DBITTRM' , 2 => 3 , 3 => 'N' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 25 ] = array ( 1 => 'DBLITYP' , 2 => 1 , 3 => 'A' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 26 ] = array ( 1 => 'DBLIMIT' , 2 => 26 , 3 => 'N (23,2)' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 27 ] = array ( 1 => 'DBCURLMT' , 2 => 3 , 3 => 'A' , 4 => '' , 5 => 'M' , 6 => '' );
$this -> Struktur [ 28 ] = array ( 1 => 'DBDALIEFF' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 29 ] = array ( 1 => 'DBDALITO' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'M' , 5 => '' , 6 => '' );
$this -> Struktur [ 30 ] = array ( 1 => 'DBLIMITS' , 2 => 26 , 3 => 'N (23,2)' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 31 ] = array ( 1 => 'DBCURRS' , 2 => 3 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 32 ] = array ( 1 => 'DBDALISEFF' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 33 ] = array ( 1 => 'DBDALISTO' , 2 => 10 , 3 => 'TT.MM.JJJJ' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 34 ] = array ( 1 => 'DBNRCO' , 2 => 9 , 3 => 'A (keine Sonderzeichen)' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 35 ] = array ( 1 => 'DBCINR' , 2 => 12 , 3 => 'A (keine Sonderzeichen)' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 36 ] = array ( 1 => 'DBFLGEX' , 2 => 1 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
$this -> Struktur [ 37 ] = array ( 1 => 'DBREMARKS' , 2 => 254 , 3 => 'A' , 4 => 'K' , 5 => '' , 6 => '' );
}
}
class coface_gen_DB
{
var $app ;
function __construct ( & $app )
{
$this -> app = $app ;
}
function Insert ( $datensatz )
{
$classname = get_class ( $datensatz );
if ( ! $classname ) return false ;
if ( ! class_exists ( $classname )){
//echo "Klasse existiert nicht";
return false ;
}
if ( ! isset ( $datensatz -> Struktur ))
{
//echo "Struktur existiert nicht";
return false ;
}
$sql = " insert into " . $classname . " ( " ;
$first = true ;
foreach ( $datensatz -> Struktur as $k => $v )
{
if ( ! $first ) $sql .= " , " ;
$first = false ;
$sql .= $v [ 1 ];
}
if ( isset ( $datensatz -> FLNUM ))
{
$sql .= ', FLNUM' ;
}
$sql .= " ) values ( " ;
$first = true ;
foreach ( $datensatz -> Struktur as $k => $v )
{
if ( ! $first ) $sql .= " , " ;
$first = false ;
if ( isset ( $datensatz -> Daten [ $v [ 1 ]]))
{
if ( substr ( $datensatz -> Struktur [ $k ][ 3 ], 0 , 1 ) == 'A' )
{
$sql .= " ' " . $datensatz -> Daten [ $v [ 1 ]] . " ' " ;
} elseif ( substr ( $datensatz -> Struktur [ $k ][ 3 ], 0 , 1 ) == 'N' ){
if ( $datensatz -> Struktur [ $k ][ 3 ] == 'N' )
{
$sql .= ( int ) $datensatz -> Daten [ $v [ 1 ]];
} else {
$vz = false ;
if ( $vzpos = strpos ( $datensatz -> Struktur [ $k ][ 3 ], 'VZ+' ))
{
$vz = true ;
$Str = substr ( $datensatz -> Struktur [ $k ][ 3 ], $vzpos + 3 );
} else {
$Str = $datensatz -> Struktur [ $k ][ 3 ];
if ( $KPos = strpos ( $Str , '(' )) $Str = substr ( $Str , $KPos + 1 );
}
if ( $Kpos = strrpos ( $Str , ')' )) $Str = substr ( $Str , 0 , $Kpos );
$Komma = false ;
if ( strpos ( $Str , ',' )) $Komma = true ;
$Nachkomma = 0 ;
if ( $Komma )
{
$Stellen = preg_split ( " /,/ " , $Str );
if ( isset ( $Stellen [ 1 ])) $Nachkomma = $Stellen [ 1 ];
$vorkomma = $Stellen [ 0 ];
} else {
$vorkomma = ( int ) $Str ;
}
if ( $Nachkomma )
{
$sql .= ( float ) $datensatz -> Daten [ $v [ 1 ]];
} else {
$sql .= ( int ) $datensatz -> Daten [ $v [ 1 ]];
}
}
} elseif ( substr ( $datensatz -> Struktur [ $k ][ 3 ], 0 , 10 ) == 'TT.MM.JJJJ' ){
if ( strpos ( $datensatz -> Daten [ $v [ 1 ]], '.' ))
{
$arr = preg_split ( " / \ ./ " , $datensatz -> Daten [ $v [ 1 ]]);
$sql .= " ' " . $arr [ 2 ] . '-' . $arr [ 1 ] . '-' . $arr [ 0 ] . " ' " ;
} else {
$sql .= " ' " . $datensatz -> Daten [ $v [ 1 ]] . " ' " ;
}
}
} else {
$sql .= " NULL " ;
}
}
if ( isset ( $datensatz -> FLNUM ))
{
$sql .= ', ' . ( $datensatz -> FLNUM ? ( int ) $datensatz -> FLNUM : 'NULL' );
}
$sql .= " ) " ;
return $sql ;
}
function genCreate ( $classname )
{
if ( ! class_exists ( $classname )){
echo " Klasse existiert nicht " ;
return false ;
}
$tmp = new $classname ();
if ( ! isset ( $tmp -> Struktur ))
{
echo " Struktur existiert nicht " ;
return false ;
}
$sql = " create table " . $classname . " (
id int ( 11 ) NOT NULL AUTO_INCREMENT ,
" ;
foreach ( $tmp -> Struktur as $k => $v )
{
$sql .= $v [ 1 ] . " " ;
if ( substr ( $tmp -> Struktur [ $k ][ 3 ], 0 , 1 ) == 'A' )
{
$sql .= " varchar( " . $tmp -> Struktur [ $k ][ 2 ] . " ) " ;
} elseif ( substr ( $tmp -> Struktur [ $k ][ 3 ], 0 , 1 ) == 'N' ){
if ( $tmp -> Struktur [ $k ][ 3 ] == 'N' )
{
$sql .= " int(15) " ;
} else {
$vz = false ;
if ( $vzpos = strpos ( $tmp -> Struktur [ $k ][ 3 ], 'VZ+' ))
{
$vz = true ;
$Str = substr ( $tmp -> Struktur [ $k ][ 3 ], $vzpos + 3 );
} else {
$Str = $tmp -> Struktur [ $k ][ 3 ];
if ( $KPos = strpos ( $Str , '(' )) $Str = substr ( $Str , $KPos + 1 );
}
if ( $Kpos = strrpos ( $Str , ')' )) $Str = substr ( $Str , 0 , $Kpos );
$Komma = false ;
if ( strpos ( $Str , ',' )) $Komma = true ;
$Nachkomma = 0 ;
if ( $Komma )
{
$Stellen = preg_split ( " /,/ " , $Str );
if ( isset ( $Stellen [ 1 ])) $Nachkomma = $Stellen [ 1 ];
$vorkomma = $Stellen [ 0 ];
} else {
$vorkomma = ( int ) $Str ;
}
if ( $Nachkomma )
{
$sql .= " decimal( " . (( int ) $Nachkomma + ( int ) $vorkomma ) . " , " . (( int ) $Nachkomma ) . " ) " ;
} else {
$sql .= " int(15) " ;
}
}
} elseif ( substr ( $tmp -> Struktur [ $k ][ 3 ], 0 , 10 ) == 'TT.MM.JJJJ' ){
$sql .= " date " ;
}
$sql .= " DEFAULT NULL, \r \n " ;
}
if ( strpos ( $classname , 'Daten' ) !== false ) $sql .= " FLNUM int(11) DEFAULT NULL, " ;
$sql .= " PRIMARY KEY (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 ; " ;
return $sql ;
}
}
class cofaceConfig
{
public static $Kundennummer = '2099/001' ;
public static $ExcelRoh = 'Entwickler.xlt' ;
public static $kvoid = 1 ;
public static $FTPServer = '' ;
public static $FTPPort = null ;
public static $FTPUser = null ;
public static $FTPPW = null ;
public static $Folder = 'coface/' ;
public function init ()
{
if ( strpos ( self :: $ExcelRoh , dirname ( __FILE__ )) === false ) self :: $ExcelRoh = dirname ( __FILE__ ) . '/' . self :: $ExcelRoh ;
if ( strpos ( self :: $Folder , dirname ( __FILE__ )) === false ) self :: $Folder = dirname ( __FILE__ ) . '/' . self :: $Folder ;
}
}
cofaceConfig :: init ();
class app_t {
var $DB ;
var $User ;
var $erp ;
}
if ( ! isset ( $app )){
$app = new app_t ();
$conf = new Config ();
$app -> Conf = & $conf ;
$app -> User = new User ( $app );
$app -> DB = new DB ( $conf -> WFdbhost , $conf -> WFdbname , $conf -> WFdbuser , $conf -> WFdbpass , null , $conf -> WFdbport );
$erp = new erpAPI ( $app );
$app -> erp = $erp ;
$remote = new Remote ( $app );
}
//$tmpgenDB = new coface_gen_DB($app);
/* echo $tmpgenDB -> genCreate ( " coface_OP_Kopf " );
echo $tmpgenDB -> genCreate ( " coface_OP_Daten " );
echo $tmpgenDB -> genCreate ( " coface_DB_Kopf " );
echo $tmpgenDB -> genCreate ( " coface_DB_Daten " );
echo " \r \n " ; */
//$tmp = new coface_DB_Daten();
//$tmp->FillData("DBCLNR","ABCDEFGH");
//$tmp->FillData("DBLIMIT", 5.2);
//echo $tmpgenDB->Insert($tmp);
//echo "\r\n";
//$job->maxlinesperfile = 3000;
/* if ( isset ( $argv [ 1 ]) && strpos ( $argv [ 1 ], 'file=' ) !== false )
{
$log = new coface_log ( $app );
$job = new cofaceIOJob ( $app , $log );
print_r ( $job -> getFileInfo ( str_replace ( 'file=' , '' , $argv [ 1 ])));
} elseif ( isset ( $_GET [ 'file' ]) ){
$log = new coface_log ( $app );
$job = new cofaceIOJob ( $app , $log );
print_r ( $job -> getFileInfo ( $_GET [ 'file' ]));
} else {
if ( isset ( $argv [ 1 ]) && strpos ( $argv [ 1 ], 'runall' ) !== false || isset ( $_GET [ 'runall' ]) || ( isset ( $_GET [ 'cmd' ]) && $_GET [ 'cmd' ] == 'runall' ))
{
$log = new coface_log ( $app );
$job = new cofaceIOJob ( $app , $log );
$job -> runAll ();
}
}
*/
function cmp ( $a , $b )
{
return strcasecmp ( $a , $b );
}
if ( isset ( $argv [ 1 ]) && $argv [ 1 ] == 'all' )
{
$tmp = new WaWisioncoface ( $app );
echo $tmp -> getAll ();
echo $tmp -> Hochladen ();
print_r ( $tmp -> error );
}
if ( isset ( $argv [ 1 ]) && $argv [ 1 ] == 'export' )
{
$sammlung = new coface_Sammlung ( $app );
//$tmp = new WaWisioncoface($app);
echo $sammlung -> lastDateinummer ();
$sammlung -> Export ();
$sammlung -> Hochladen ();
}
if ( isset ( $argv [ 1 ]) && is_file ( $argv [ 1 ]))
{
$tmp = new WaWisioncoface ( $app );
$tmp -> ImportEdison ( $argv [ 1 ]);
$tmp -> Hochladen ();
}
class WaWisioncoface
{
var $app ;
var $sammlung ;
var $error ;
function __construct ( & $app )
{
$this -> app = $app ;
}
public function Hochladen ()
{
if ( $this -> sammlung -> Hochladen ()) return true ;
if ( $this -> sammlung -> error ) $this -> error [] = $this -> sammlung -> error ;
return false ;
}
function ImportEdison ( $datei )
{
$this -> sammlung = new coface_Sammlung ( $this -> app );
$DBs = false ;
$OPs = false ;
if ( strrpos ( $datei , '/' ) === false )
{
$datei = dirname ( __FILE__ ) . '/' . $datei ;
}
if ( ! file_exists ( $datei )) return false ;
if ( $fh = fopen ( $datei , 'r' ))
{
if ( $header = fgetcsv ( $fh , 0 , " ; " ) !== FALSE )
{
$i = 0 ;
while (( $data = fgetcsv ( $fh , 0 , " ; " , '"' )) !== FALSE ) {
$i ++ ;
//if($i % 1000 = 0)echo ".";
if ( isset ( $data [ 10 ])){
$betrag = round (( float ) str_replace ( " , " , " . " , trim ( $data [ 10 ])), 2 );
$belegdatum = $data [ 2 ];
$belegnummer = $data [ 3 ];
$kundennummer = $data [ 1 ];
if ( ! isset ( $DBs [ $kundennummer ])) $DBs [ $kundennummer ] = true ;
$belegnummer = str_replace ( " NR " , '' , $belegnummer );
$belegnummer = str_replace ( " . " , '' , $belegnummer );
$tmp [ 'belegnummer' ] = trim ( $belegnummer );
$tmp [ 'betrag' ] = $betrag ;
$tmp [ 'buchungstext' ] = trim ( $data [ 11 ]);
$status = $data [ 15 ];
$mahnbar = trim ( $data [ 16 ]) == 'nicht mahnbar' ? 0 : 1 ;
$mahnstufe = $data [ 8 ];
$tmp [ 'status' ] = $status ;
$tmp [ 'mahnbar' ] = $mahnbar ;
$tmp [ 'mahnstufe' ] = $mahnstufe ;
if ( ! isset ( $OPs [ $kundennummer ])) $OPs [ $kundennummer ] = false ;
$OPs [ $kundennummer ][] = $tmp ;
unset ( $tmp );
/*
if ( $betrag > 0 )
{
$belegnummer1 = trim ( $data [ 3 ]);
if ( $belegnummer1 )
{
$rechnungid = $this -> app -> DB -> Select ( " select id from rechnung where belegnr like ' " . addslashes ( $belegnummer1 ) . " ' limit 1 " );
if ( $rechnungid )
{
echo " offene Rechnung: " . $rechnungid . " " . $belegnummer1 . " " . $betrag . " \r \n " ;
$this -> app -> DB -> Update ( " update rechnung set zahlungssstatus = 'offen' where id = " . $rechnungid );
} else {
echo " offene Rechnung nicht gefunden: " . $belegnummer1 . " " . $betrag . " \r \n " ;
}
}
} */
}
}
fclose ( $fh );
$anzdb = 0 ;
$anzgr0 = 0 ;
$anzadr = 0 ;
$anzops = 0 ;
if ( isset ( $DBs ) && is_array ( $DBs ))
{
foreach ( $DBs as $k => $v )
{
$anzdb ++ ;
if ( isset ( $OPs [ $k ]) && is_array ( $OPs [ $k ]))
{
$adresse = $this -> app -> DB -> select ( " SELECT id from adresse where kundennummer like ' " . $k . " ' limit 1 " );
if ( $adresse )
{
$anzadr ++ ;
$gesamtoffen = 0 ;
$rechnungsnr = '' ;
echo " \r \n " . $k . " count: " . count ( $OPs [ $k ]) . " - " ;
foreach ( $OPs [ $k ] as $k2 => $v2 )
{
$anzops ++ ;
//echo $v2['betrag']." ";
echo $v2 [ 'belegnummer' ] . " " ;
if ( $v2 [ 'belegnummer' ] && ( int ) $v2 [ 'belegnummer' ] . " " == $v2 [ 'belegnummer' ] && substr ( $v2 [ 'belegnummer' ], 0 , 1 ) == '4' ) $rechnungsnr = $v2 [ 'belegnummer' ];
$gesamtoffen += $v2 [ 'betrag' ];
}
echo " Betrag: " . $gesamtoffen . " Rnr: " . $rechnungsnr ;
if ( $gesamtoffen > 0 && $rechnungsnr )
{
echo $gesamtoffen ;
$rechnung = $this -> app -> DB -> SelectArr ( " SELECT * from rechnung where belegnr = ' " . $rechnungsnr . " ' limit 1 " );
if ( $rechnung )
{
$rechnung = reset ( $rechnung );
$DB = new coface_DB ();
if ( ! $rechnung [ 'kundennummer' ]) $rechnung [ 'kundennummer' ] = $k ;
$DB -> SetAdr ( $rechnung );
$this -> sammlung -> addDB ( $DB );
$Rechnungen = false ;
$kombEinzahlungen = false ;
foreach ( $OPs [ $k ] as $k2 => $v2 )
{
$isrechnung = false ;
$isgutschrift = false ;
if ( $v2 [ 'belegnummer' ] && is_numeric ( $v2 [ 'belegnummer' ]) && substr ( $v2 [ 'belegnummer' ], 0 , 1 ) == '4' )
{
$tmprechnung = $this -> app -> DB -> SelectArr ( " SELECT * from rechnung where belegnr = ' " . $v2 [ 'belegnummer' ] . " ' limit 1 " );
if ( $tmprechnung )
{
$isrechnung = true ;
if ( ! isset ( $Rechnungen [ $v2 [ 'belegnummer' ]])) $Rechnungen [ $v2 [ 'belegnummer' ]] = false ;
$Rechnungen [ $v2 [ 'belegnummer' ]][] = $v2 ;
}
//Rechnung
} elseif ( $v2 [ 'belegnummer' ] && is_numeric ( $v2 [ 'belegnummer' ]) && substr ( $v2 [ 'belegnummer' ], 0 , 1 ) == '9' )
{
//Gutschrift
$tmpgutschrift = $this -> app -> DB -> SelectArr ( " SELECT adresse, rechnungid from gutschrift where belegnr = ' " . $v2 [ 'belegnummer' ] . " ' limit 1 " );
if ( $tmpgutschrift )
{
$tmpgutschrift = reset ( $tmpgutschrift );
if ( $tmpgutschrift [ 'rechnungid' ])
{
$rechnungsnrg = $this -> app -> DB -> Select ( " SELECT belegnr where id = " . $tmpgutschrift [ 'rechnungid' ] . " limit 1 " );
if ( $rechnungsnrg )
{
$Rechnungen [ $rechnungsnrg ][] = $v2 ;
$isgutschrift = true ;
} else {
if ( ! isset ( $Rechnungen [ 'unbekannteGS' ])) $Rechnungen [ 'unbekannteGS' ] = false ;
$Rechnungen [ 'unbekannteGS' ][] = $v2 ;
$isgutschrift = true ;
}
} else {
if ( ! isset ( $Rechnungen [ 'unbekannteGS' ])) $Rechnungen [ 'unbekannteGS' ] = false ;
$Rechnungen [ 'unbekannteGS' ][] = $v2 ;
$isgutschrift = true ;
}
}
}
if ( ! isgutschrift && ! isrechnung )
{
$split = preg_split ( '/,/' , $v2 [ 'buchungstext' ]);
if ( is_array ( $split ))
{
foreach ( $split as $k3 => $v3 )
{
$split2 = preg_split ( '/:/' , $v3 );
{
if ( is_array ( $split2 ))
{
if ( isset ( $split2 [ 1 ]))
{
if ( is_numeric ( trim ( $split2 [ 1 ])) && substr ( trim ( $split2 [ 1 ]), 0 , 1 ) == '4' )
{
$rechnungsnrg = $this -> app -> DB -> Select ( " SELECT * from rechnung where belegnr = " . trim ( $split2 [ 1 ]) . " limit 1 " );
if ( $rechnugsnrg )
{
if ( ! isset ( $kombEinzahlungen [ $k2 ])) $kombEinzahlungen [ $k2 ] = false ;
$kombEinzahlungen [ $k2 ][] = $rechnungsnrg ;
} else {
}
}
} else {
if ( is_numeric ( trim ( $split2 [ 0 ])) && substr ( trim ( $split2 [ 0 ]), 0 , 1 ) == '4' )
{
$rechnungsnrg = $this -> app -> DB -> Select ( " SELECT * from rechnung where belegnr = " . trim ( $split2 [ 0 ]) . " limit 1 " );
if ( $rechnugsnrg )
{
if ( ! isset ( $kombEinzahlungen [ $k2 ])) $kombEinzahlungen [ $k2 ] = false ;
$kombEinzahlungen [ $k2 ][] = $rechnungsnrg ;
} else {
}
}
}
}
}
}
if ( ! isset ( $kombEinzahlungen [ $k2 ]))
{
if ( ! isset ( $Rechnungen [ 'unbekannt' ])) $Rechnungen [ 'unbekannt' ] = false ;
$Rechnungen [ 'unbekannt' ][] = $v2 ;
}
}
}
}
if ( isset ( $Rechnungen ) && $Rechnungen && ! isset ( $Rechnungen [ 'unbekannt' ]) && ! isset ( $Rechnungen [ 'unbekannteGS' ]))
{
echo " . " ;
foreach ( $Rechnungen as $k4 => $v4 )
{
if ( $k4 != 'unbekannt' && $k4 != 'unbekannteGS' ){
if ( is_array ( $v4 ))
{
$gesbetrag = 0 ;
foreach ( $v4 as $k5 => $v5 )
{
$gesbetrag += $v5 [ 'betrag' ];
}
if ( $gesbetrag > 0 )
{
/*
if ( isset ( $kombEinzahlungen ))
{
foreach ( $kombEinzahlungen as $k6 => $v6 )
{
foreach ( $v6 as $k7 => $v7 )
{
if ( $v7 [ 'belegnr' ] == $k4 )
{
if ( $OPs [ $k ][ $k6 ][ 'betrag' ] >= $gesbetrag )
{
} else {
}
}
}
}
} */
foreach ( $v4 as $k5 => $v5 )
{
if ( substr ( $v5 [ 'belegnummer' ], 0 , 1 ) == '4' )
{
if ( $v5 [ 'betrag' ] > 0 )
{
$OP = new coface_OP ();
$OP -> SetBelegnummer ( $v5 [ 'belegnummer' ]);
$OP -> SetBelegnummerRef ( $v5 [ 'belegnummer' ]);
$OP -> DebitorenRechnung ();
$OP -> SetData ( $rechnung );
$OP -> SetBelegdatum ( $v5 [ 'belegdatum' ]);
if ( $v5 [ 'mahnstufe' ]) $OP -> SetMahnstufe ( $v5 [ 'mahnstufe' ]);
$OP -> SetBetrag ( $v5 [ 'betrag' ]);
$OP -> SetBelegdatum ( $rechnung [ 'datum' ]);
if ( $rechnung [ 'versendet_am' ] && $rechnung [ 'versendet_am' ] != '0000-00-00' ) $OP -> SetLieferdatum ( $rechnung [ 'versendet_am' ]);
$OP -> SetFaelligkeitsdatum ( date ( 'Y-m-d' , strtotime ( $rechnung [ 'datum' ]) + 86400 * ( int ) $rechnung [ 'zahlungszieltage' ]));
$this -> sammlung -> addOP ( $OP );
} else {
$OP = new coface_OP ();
$OP -> SetBelegnummer ( $v5 [ 'belegnummer' ]);
$OP -> SetBelegnummerRef ( $v5 [ 'belegnummer' ]);
$OP -> SetData ( $rechnung );
if ( $v5 [ 'mahnstufe' ]) $OP -> SetMahnstufe ( $v5 [ 'mahnstufe' ]);
$OP -> DebitorenZahlung ();
$OP -> SetBelegdatum ( $rechnung [ 'datum' ]);
if ( $rechnung [ 'versendet_am' ] && $rechnung [ 'versendet_am' ] != '0000-00-00' ) $OP -> SetLieferdatum ( $rechnung [ 'versendet_am' ]);
$OP -> SetFaelligkeitsdatum ( date ( 'Y-m-d' , strtotime ( $rechnung [ 'datum' ]) + 86400 * ( int ) $rechnung [ 'zahlungszieltage' ]));
$OP -> SetBetrag ( $v5 [ 'betrag' ]);
}
} elseif ( substr ( $v5 [ 'belegnummer' ], 0 , 1 ) == '9' )
{
$OP = new coface_OP ();
$OP -> DebitorenGutschrift ();
$OP -> SetBelegnummer ( $v5 [ 'belegnummer' ]);
$OP -> SetBelegnummerRef ( $k4 );
$OP -> SetData ( $rechnung );
if ( $v5 [ 'mahnstufe' ]) $OP -> SetMahnstufe ( $v5 [ 'mahnstufe' ]);
$OP -> SetBelegdatum ( $rechnung [ 'datum' ]);
if ( $rechnung [ 'versendet_am' ] && $rechnung [ 'versendet_am' ] != '0000-00-00' ) $OP -> SetLieferdatum ( $rechnung [ 'versendet_am' ]);
$OP -> SetFaelligkeitsdatum ( date ( 'Y-m-d' , strtotime ( $rechnung [ 'datum' ]) + 86400 * ( int ) $rechnung [ 'zahlungszieltage' ]));
$OP -> SetBetrag ( $v5 [ 'betrag' ]);
$this -> sammlung -> addOP ( $OP );
}
}
}
}
}
}
}
$anzgr0 ++ ;
} else {
echo " SELECT * from rechnung where belegnr = ' " . $rechnungsnr . " ' limit 1 \r \n " ;
}
}
}
}
}
$this -> sammlung -> SpeichernInDB ();
$this -> sammlung -> Export ();
}
die ( " Anzahl: " . $anzdb . " " . $anzgr0 . " " . $anzadr . " " . $anzops );
}
$OP = new coface_OP ();
$DB = new coface_DB ();
$OP -> SetBelegnummer ( $rechnung [ 'belegnr' ]);
$OP -> SetBelegnummerRef ( $rechnung [ 'belegnr' ]);
$DB -> SetAdr ( $rechnung );
$OP -> SetData ( $rechnung );
$OP -> SetBelegdatum ( $rechnung [ 'datum' ]);
/*
$OP = new coface_OP ();
$DB = new coface_DB ();
$OP -> SetBelegnummer ( $rechnung [ 'belegnr' ]);
$OP -> SetBelegnummerRef ( $rechnung [ 'belegnr' ]);
$DB -> SetAdr ( $rechnung );
$OP -> SetData ( $rechnung );
$OP -> SetBelegdatum ( $rechnung [ 'datum' ]);
if ( $rechnung [ 'versendet_am' ] && $rechnung [ 'versendet_am' ] != '0000-00-00' ) $OP -> SetLieferdatum ( $rechnung [ 'versendet_am' ]);
$OP -> SetFaelligkeitsdatum ( date ( 'Y-m-d' , strtotime ( $rechnung [ 'datum' ]) + 86400 * ( int ) $rechnung [ 'zahlungszieltage' ]));
switch ( $rechnung [ 'mahnwesen' ])
{
case 'mahnung1' :
$OP -> SetMahnstufe ( 1 );
break ;
case 'mahnung2' :
$OP -> SetMahnstufe ( 2 );
break ;
case 'mahnung3' :
$OP -> SetMahnstufe ( 3 );
break ;
}
if ( $rechnung [ 'zahlungszielskonto' ])
{
$OP -> SetSkonto ( $rechnung [ 'zahlungszieltageskonto' ], $rechnung [ 'zahlungszielskonto' ]);
}
if ( isset ( $corechnungen ) && isset ( $corechnungen [ $rechnung [ 'belegnr' ]]))
{
//Alte Rechnung nehmen und verrechnen
}
if ( $rechnung [ 'status' ] == 'storniert' )
{
//$this->Create
$OP -> StornoRechnung ();
} else {
if ( $rechnung [ 'ist' ] != $rechnung [ 'soll' ])
{
$OP -> SetBetrag ( $rechnung [ 'soll' ] - $rechnung [ 'ist' ]);
}
if ( $rechnung [ 'ist' ] > 0 ) $OP -> Restposten ();
}
$this -> sammlung -> addDB ( $DB );
$this -> sammlung -> addOP ( $OP );
*/
return true ;
} else return false ;
}
public function getAll ()
{
$this -> sammlung = new coface_Sammlung ( $this -> app );
//inner join auftrag.a on r.auftrag = a.belegnr
$rechnungen_akt = $this -> app -> DB -> SelectArr ( " select r.*, g.id as gid, g.belegnr as gbelegnr, g.ist as gist, g.soll as gsoll from rechnung r left join gutschrift g on r.id = g.rechnungid where (r.zahlungsstatus = 'offen' or (r.zahlungsstatus = 'bezahlt' and r.ist <> r.soll and r.ist <> r.soll - r.soll * r.zahlungszielskonto / 100)) and (r.status = 'versendet' or r.status = 'storniert') and r.belegnr <> '' order by belegnr limit 1000 " );
$lastOP = $this -> app -> DB -> Select ( " select max(FLNUM) from coface_OP_Daten " );
if ( $lastOP )
{
$cofaceversendete_rechnungen = $this -> app -> DB -> SelectArr ( " select r.*, c.* from rechnung r inner join coface_OP_Daten c on r.belegnr = c.OPITMNR where c.FLNUM = " . $lastOP . " order by belegnr " );
if ( $cofaceversendete_rechnungen )
{
foreach ( $cofaceversendete_rechnungen as $k => $v )
{
$corechnungen [ $v [ 'belegnr' ]] = $v ;
}
unset ( $cofaceversendete_rechnungen );
}
$cofaceversendete_gutschriften = $this -> app -> DB -> SelectArr ( " select r.*, g.id as gid, g.belegnr as gbelegnr, g.ist as gist, g.soll as gsoll from rechnung r inner join gutschrift g on r.id = g.rechnungid inner join coface_OP_Daten on g.belegnr = c.OPITMNR where c.FLNUM = " . $lastOP . " order by belegnr " );
if ( $cofaceversendete_gutschriften )
{
foreach ( $cofaceversendete_gutschriften as $k => $v )
{
$cogutschriften [ $v [ 'gbelegnr' ]] = $v ;
}
unset ( $cofaceversendete_gutschriften );
}
$OPSaldo_alt = $this -> app -> DB -> Select ( " select sum(OPAMTMN) from coface_OP_Daten where FLNUM = " . $lastOP );
} else {
echo " Keine alten Daten \r \n " ;
$OPSaldo_alt = 0 ;
}
//$zahlungen_akt = $this->app->DB->SelectArr("select ke.*, k.iban, k.swift from kontoauszuege_zahlungseingang ke inner join kontoauszuege ka on ke.kontoauszug = ka.id inner join konten k on ka.konto = k.id order by ke.datum");
if ( $rechnungen_akt || isset ( $corechnungen ))
{
echo " akt Rechnungen \r \n " ;
if ( $rechnungen_akt )
{
$letztebelegnr = '' ;
$altrechnung = false ;
foreach ( $rechnungen_akt as $k => $rechnung )
{
echo " . " ;
if ( $letztebelegnr != $rechnung [ 'belegnr' ])
{
$letztebelegnr = $rechnung [ 'belegnr' ];
$gleichenr = false ;
} else {
$gleichenr = true ;
}
if ( ! $gleichenr ){
$OP = new coface_OP ();
$DB = new coface_DB ();
$OP -> SetBelegnummer ( $rechnung [ 'belegnr' ]);
$OP -> SetBelegnummerRef ( $rechnung [ 'belegnr' ]);
$DB -> SetAdr ( $rechnung );
$OP -> SetData ( $rechnung );
$OP -> SetBelegdatum ( $rechnung [ 'datum' ]);
if ( $rechnung [ 'versendet_am' ] && $rechnung [ 'versendet_am' ] != '0000-00-00' ) $OP -> SetLieferdatum ( $rechnung [ 'versendet_am' ]);
$OP -> SetFaelligkeitsdatum ( date ( 'Y-m-d' , strtotime ( $rechnung [ 'datum' ]) + 86400 * ( int ) $rechnung [ 'zahlungszieltage' ]));
switch ( $rechnung [ 'mahnwesen' ])
{
case 'mahnung1' :
$OP -> SetMahnstufe ( 1 );
break ;
case 'mahnung2' :
$OP -> SetMahnstufe ( 2 );
break ;
case 'mahnung3' :
$OP -> SetMahnstufe ( 3 );
break ;
}
if ( $rechnung [ 'zahlungszielskonto' ])
{
$OP -> SetSkonto ( $rechnung [ 'zahlungszieltageskonto' ], $rechnung [ 'zahlungszielskonto' ]);
}
if ( isset ( $corechnungen ) && isset ( $corechnungen [ $rechnung [ 'belegnr' ]]))
{
//Alte Rechnung nehmen und verrechnen
}
if ( $rechnung [ 'status' ] == 'storniert' )
{
//$this->Create
$OP -> StornoRechnung ();
} else {
if ( $rechnung [ 'ist' ] != $rechnung [ 'soll' ])
{
$OP -> SetBetrag ( $rechnung [ 'soll' ] - $rechnung [ 'ist' ]);
}
if ( $rechnung [ 'ist' ] > 0 ) $OP -> Restposten ();
}
$this -> sammlung -> addDB ( $DB );
$this -> sammlung -> addOP ( $OP );
}
if ( ! is_null ( $rechnung [ 'gsoll' ]) && $rechnung [ 'gbelegnr' ])
{
$OP = new coface_OP ();
$DB = new coface_DB ();
$OP -> SetBelegnummerRef ( $rechnung [ 'belegnr' ]);
$OP -> SetBelegnummer ( $rechnung [ 'gbelegnr' ]);
$DB -> SetAdr ( $rechnung );
$OP -> SetData ( $rechnung );
$OP -> SetBelegdatum ( $rechnung [ 'datum' ]);
if ( $rechnung [ 'versendet_am' ] && $rechnung [ 'versendet_am' ] != '0000-00-00' ) $OP -> SetLieferdatum ( $rechnung [ 'versendet_am' ]);
$OP -> SetFaelligkeitsdatum ( date ( 'Y-m-d' , strtotime ( $rechnung [ 'datum' ]) + 86400 * ( int ) $rechnung [ 'zahlungszieltage' ]));
switch ( $rechnung [ 'mahnwesen' ])
{
case 'mahnung1' :
$OP -> SetMahnstufe ( 1 );
break ;
case 'mahnung2' :
$OP -> SetMahnstufe ( 2 );
break ;
case 'mahnung3' :
$OP -> SetMahnstufe ( 3 );
break ;
}
if ( $rechnung [ 'zahlungszielskonto' ])
{
$OP -> SetSkonto ( $rechnung [ 'zahlungszieltageskonto' ], $rechnung [ 'zahlungszielskonto' ]);
}
$OP -> DebitorenGutschrift ();
$OP -> SetBetrag ( $rechnung [ 'gsoll' ]);
$this -> sammlung -> addDB ( $DB );
$this -> sammlung -> addOP ( $OP );
}
$altrechnung = $rechnung ;
}
}
$this -> sammlung -> SpeichernInDB ();
$this -> sammlung -> Export ();
return true ;
} else {
echo " leer " ;
return false ;
}
}
}
/*
$foobar = new coface_export ( $app );
echo " \r \n " ;
echo $foobar -> genEntwickler ();
echo " \r \n " ; */
class coface_export
{
private $dateinummer ;
private $OPHeader ;
private $OPDaten ;
private $DBHeader ;
private $DBDaten ;
private $OPDatenalt ;
private $DBDatenalt ;
private $Dateinamen ;
private $app ;
private $Folder ;
private $Entwicklerdateiid ;
private $DateinameOP ;
private $DateinameDB ;
private $DateinameEntwickler ;
public $error ;
function __construct ( & $app )
{
$this -> app = $app ;
$this -> OPHeader = new coface_OP_Kopf ();
$this -> OPHeader -> FillData ( 'FLBELANZ' , 0 );
$this -> OPHeader -> FillData ( 'FLBELSUM' , 0 );
$this -> DBHeader = new coface_DB_Kopf ();
$this -> DBHeader -> FillData ( 'FLITNR' , 0 );
$this -> Folder = cofaceConfig :: $Folder ;
if ( is_null ( $this -> Folder )) $this -> Folder = dirname ( __FILE__ ) . '/' ;
if ( $firmendaten = $this -> app -> DB -> SelectArr ( " select name, strasse, plz, ort from firmendaten limit 1 " )) $firmendaten = reset ( $firmendaten );
if ( $firmendaten )
{
$this -> OPHeader -> FillData ( 'CLNAME1' , $firmendaten [ 'name' ]);
$this -> OPHeader -> FillData ( 'CLZIP' , $firmendaten [ 'plz' ]);
$this -> OPHeader -> FillData ( 'CLPLACE' , $firmendaten [ 'ort' ]);
$this -> OPHeader -> FillData ( 'CLSTREET' , $firmendaten [ 'strasse' ]);
$this -> OPHeader -> FillData ( 'CLNR' , cofaceConfig :: $Kundennummer );
$this -> DBHeader -> FillData ( 'CLNAME1' , $firmendaten [ 'name' ]);
$this -> DBHeader -> FillData ( 'CLZIP' , $firmendaten [ 'plz' ]);
$this -> DBHeader -> FillData ( 'CLPLACE' , $firmendaten [ 'ort' ]);
$this -> DBHeader -> FillData ( 'CLSTREET' , $firmendaten [ 'strasse' ]);
$this -> DBHeader -> FillData ( 'CLNR' , cofaceConfig :: $Kundennummer );
}
}
function getFromDB ( $dateinummer , $alt = false )
{
if ( ! $alt )
{
$this -> dateinummer = ( int ) $dateinummer ;
$this -> Entwicklerdateiid = $this -> app -> DB -> Select ( " Select dateiid from coface_dateien where FLNUM = " . ( int ) $dateinummer );
}
$sql = " Select * from coface_OP_Daten where FLNUM = " . ( int ) $dateinummer . " order by OPITMNR " ;
if ( $query = $this -> app -> DB -> Query ( $sql ))
{
while ( $row = $this -> app -> DB -> Fetch_Array ( $query ))
{
$tmp = new coface_OP_Daten ();
if ( $tmp -> FillFromArray ( $row ))
{
$this -> addOP ( $tmp , $alt );
} else {
$this -> error [] = " OP Daten fehlerhaft " ;
}
}
} else {
$this -> error [] = " Fehler beim Laden der OP Daten " ;
}
$sql = " Select * from coface_DB_Daten where FLNUM = " . ( int ) $dateinummer . " order by DBNR " ;
if ( $query = $this -> app -> DB -> Query ( $sql ))
{
while ( $row = $this -> app -> DB -> Fetch_Array ( $query ))
{
$tmp = new coface_DB_Daten ();
if ( $tmp -> FillFromArray ( $row ))
{
$this -> addDB ( $tmp , $alt );
} else {
$this -> error [] = " DB Daten fehlerhaft " ;
}
}
} else {
$this -> error [] = " Fehler beim Laden der DB_Daten " ;
}
}
function genDiff ()
{
}
function addOP ( & $datensatz , $alt = false )
{
if ( ! $alt )
{
$this -> OPDaten [] = $datensatz ;
$this -> OPHeader -> FillData ( 'FLBELANZ' , $this -> OPHeader -> GetDataByName ( 'FLBELANZ' ) + 1 );
$this -> OPHeader -> FillData ( 'FLBELSUM' , $this -> OPHeader -> GetDataByName ( 'FLBELSUM' ) + $datensatz -> GetDataByName ( 'OPAMT' ));
} else {
$this -> OPDatenalt [] = $datensatz ;
}
}
function addDB ( & $datensatz , $alt = false )
{
if ( ! $alt )
{
$this -> DBDaten [] = $datensatz ;
$this -> DBHeader -> FillData ( 'FLITNR' , $this -> DBHeader -> GetDataByName ( 'FLITNR' ) + 1 );
} else {
$this -> DBDatenalt [] = $datensatz ;
}
}
function setEntwicklerDateiId ( $val )
{
$this -> Entwicklerdateiid = ( int ) $val ;
}
function genEntwickler ()
{
//if(!$this->dateinummer)return false;
$tmp = $this -> app -> erp -> GetTMP () . md5 ( mt_rand ()) . '.xls' ;
$path = str_replace ( basename ( $_SERVER [ 'SCRIPT_FILENAME' ]), " " , $_SERVER [ 'SCRIPT_FILENAME' ]);
$path = $path . " ../userdata/dms/ " ;
$path = $path . $this -> app -> Conf -> WFdbname ;
while ( file_exists ( $tmp ))
{
$tmp = $this -> app -> erp -> GetTMP () . md5 ( mt_rand ()) . '.xls' ;
}
$xls = new coface_excel ();
//TODO Füllen
$xls -> save ( $tmp );
if ( file_exists ( $tmp ))
{
$fileid = $this -> app -> erp -> CreateDatei ( $this -> app -> erp -> Dateinamen ( 'Entwickler_' . date ( 'Ymd' ) . '.xls' ), " Entwickler " . date ( 'd.m.Y' ), " " , " " , $tmp , $this -> app -> User -> GetName (), false , $path );
$this -> Entwicklerdateiid = $fileid ;
$this -> app -> erp -> AddDateiStichwort ( $fileid , " Entwickler " , " coface " , $this -> dateinummer );
@ unlink ( $tmp );
return true ;
} else return false ;
return $tmp ;
}
function genDateien ()
{
if ( ! is_array ( $this -> OPDaten ) || count ( $this -> OPDaten ) < 1 )
{
echo " OPDaten leer " ;
$this -> error [] = " OPDaten leer " ;
return false ;
}
if ( ! is_array ( $this -> DBDaten ) || count ( $this -> DBDaten ) < 1 )
{
$this -> error [] = " DBDaten leer " ;
return false ;
}
if ( $this -> dateinummer )
{
$FLNUM = $this -> dateinummer ;
} else {
$FLNUM = $this -> app -> DB -> Select ( " Select max(FLNUM) from coface_OP_Kopf " );
}
if ( ! $FLNUM ) $FLNUM = 1 ;
$this -> dateinummer = $FLNUM ;
/* if ( ! $this -> Entwicklerdateiid )
{
$this -> Entwicklerdateiid = $this -> DB -> Select ( " select datei from datei_stichwoerter where objekt = 'coface' and subjekt = 'Entwickler' and parameter = " . ( int ) $this -> dateinummer );
}
if ( ! $this -> Entwicklerdateiid )
{
$this -> error [] = " Keine Entwicklerdatei " ;
return false ;
} */
$this -> DBHeader -> FillData ( 'FLNUM' , $FLNUM );
$this -> OPHeader -> FillData ( 'FLNUM' , $FLNUM );
$this -> DBHeader -> FillData ( 'FLDATE' , date ( 'd.m.Y' ));
$this -> OPHeader -> FillData ( 'FLDATE' , date ( 'd.m.Y' ));
$sumop = 0 ;
foreach ( $this -> OPDaten as $key => $val )
{
if ( $wert = $val -> GetDataByName ( 'OPAMTMN' )) $sumop += $wert ;
}
$this -> OPHeader -> FillData ( 'FLBELSUM' , $sumop );
$DateinameOP = $this -> Folder . 'OP_' . str_replace ( '/' , '' , cofaceConfig :: $Kundennummer ) . '_EUR_' . date ( 'Ymd' ) . '.csv' ;
$DateinameDB = $this -> Folder . 'DB_' . str_replace ( '/' , '' , cofaceConfig :: $Kundennummer ) . '_EUR_' . date ( 'Ymd' ) . '.csv' ;
//$DateinameEntwickler = $this->Folder.'Entwickler.xls';
/* if ( file_exists ( $DateinameOP ) || file_exists ( $DateinameDB ) || file_exists ( $DateinameEntwickler ))
{
$this -> error [] = " Datei(en) existiert/en bereits " ;
return false ;
} */
//OP
if ( $fh = fopen ( $DateinameOP , 'w' ))
{
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $this -> OPHeader -> genFeldnamenzeile () . " \r \n " ));
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $this -> OPHeader -> genDatenZeile () . " \r \n " ));
$first = true ;
foreach ( $this -> OPDaten as $k => $v )
{
if ( $first )
{
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $v -> genFeldnamenzeile () . " \r \n " ));
}
$first = false ;
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $v -> genDatenZeile () . " \r \n " ));
}
fclose ( $fh );
$this -> DateinameOP = $DateinameOP ;
echo $DateinameOP ;
} else return false ;
//DB
if ( $fh = fopen ( $DateinameDB , 'w' ))
{
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $this -> DBHeader -> genFeldnamenzeile () . " \r \n " ));
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $this -> DBHeader -> genDatenZeile () . " \r \n " ));
$first = true ;
foreach ( $this -> DBDaten as $k => $v )
{
if ( $first )
{
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $v -> genFeldnamenzeile () . " \r \n " ));
}
$first = false ;
fputs ( $fh , iconv ( 'utf8' , 'ISO-8859-1' , $v -> genDatenZeile () . " \r \n " ));
}
fclose ( $fh );
$this -> DateinameDB = $DateinameDB ;
echo $DateinameDB ;
} else return false ;
//Entwickler
if ( $quelle = $this -> app -> erp -> GetDateiPfad ( $this -> Entwicklerdateiid ))
{
if ( @ copy ( $quelle , $DateinameEntwickler )) $this -> DateinameEntwickler = $DateinameEntwickler ;
}
return true ;
}
function Hochladen ()
{
if ( ! $this -> dateinummer ) return false ;
if ( ! $this -> DateinameDB || ! file_exists ( $this -> DateinameDB )) return false ;
if ( ! $this -> DateinameOP || ! file_exists ( $this -> DateinameOP )) return false ;
if ( ! $this -> DateinameEntwickler || ! file_exists ( $this -> DateinameEntwickler )) return false ;
$ftp = new coface_SFTP ( $this -> app );
if ( ! $ftp -> connect ()) return false ;
if ( $ftp -> uploadFile ( $this -> DateinameDB )
&& $ftp -> uploadFile ( $this -> DateinameOP )
&& $ftp -> uploadFile ( $this -> DateinameEntwickler ))
{
return $this -> app -> DB -> Update ( " update coface_dateien set status = 'gesendet' where FLNUM = " . ( int ) $this -> dateinummer );
}
return false ;
}
}
/*
$ftp = new coface_SFTP ( $app );
if ( $ftp -> connect ())
{
echo " OK \r \n " ;
print_r ( $ftp -> getFilesOnServer ());
echo $ftp -> uploadFile ( dirname ( __FILE__ ) . '/Entwickler.xlt' );
} else {
echo " failed \r \n " ;
} */
class coface_SFTP
{
private $app ;
private $connection ;
private $sftp ;
function __construct ( & $app )
{
$this -> app = $app ;
}
function connect ( $server = '192.168.0.26' , $username = 'root' , $pw = 'G25yw3bEsp' , $port = 22 )
{
if ( false === ( $this -> connection = ssh2_connect ( $server , $port ))) return false ;
if ( ! ssh2_auth_password ( $this -> connection , $username , $pw )) return false ;
if ( false === ( $sftp = ssh2_sftp ( $this -> connection ))) return false ;
return true ;
}
function uploadFile ( $datei )
{
$ziel = basename ( $datei );
echo " Lade hoch: " . $datei . " \r \n " ;
return ssh2_scp_send ( $this -> connection , $datei , $ziel , 0644 );
}
function getFilesOnServer ()
{
$stream = ssh2_exec ( $this -> connection , 'ls -l' );
stream_set_blocking ( $stream , true );
// Whichever of the two below commands is listed first will receive its appropriate output. The second command receives nothing
$erg = stream_get_contents ( $stream );
// Close the streams
fclose ( $stream );
$erga = explode ( " \n " , $erg );
foreach ( $erga as $k => $v )
{
$l [ $k ] = preg_split ( " /[ \ s,]+/ " , $v );
if ( strpos ( $l [ $k ][ 7 ], ':' ) === false )
{
$t = strtotime ( $l [ $k ][ 6 ] . ' ' . $l [ $k ][ 5 ] . ' ' . $l [ $k ][ 7 ]);
}
else
{
$t = strtotime ( $l [ $k ][ 6 ] . ' ' . $l [ $k ][ 5 ] . ' ' . date ( " Y " ) . ' ' . $l [ $k ][ 7 ]);
}
$datei [ 'filename' ] = trim ( $l [ $k ][ 8 ]);
$datei [ 'ftptime' ] = $t ;
$datei [ 'filesize' ] = trim ( $l [ $k ][ 4 ]);
if ( $datei [ 'filename' ] != '' ) $ergliste [] = $datei ;
}
if ( ! isset ( $ergliste )) return false ;
return $ergliste ;
}
}
class coface_Sammlung
{
private $DBs ;
private $OPs ;
private $app ;
private $genDB ;
private $newDateinummer ;
private $export ;
private $ftp ;
public $error ;
function __construct ( & $app )
{
$this -> app = $app ;
}
function addOP ( $OP )
{
$this -> OPs [] = $OP -> Data ;
}
function addDB ( $DB )
{
$found = false ;
if ( is_array ( $this -> DBs ) && count ( $this -> DBs ) > 0 )
{
foreach ( $this -> DBs as $k => $v )
{
if ( $DB -> Data -> istGleich ( $v )) $found = true ;
}
}
if ( ! $found ) $this -> DBs [] = $DB -> Data ;
}
function SpeichernInDB ()
{
if ( ! is_array ( $this -> DBs ) || ! is_array ( $this -> OPs )) return false ;
if ( count ( $this -> DBs ) < 1 || count ( $this -> OPs ) < 1 ) return false ;
$this -> newDateinummer = 1 + ( int ) $this -> app -> DB -> Select ( " select max(FLNUM) from coface_dateien " );
$this -> genDB = new coface_gen_DB ( $this -> app );
if ( ! $this -> app -> DB -> Insert ( " insert into coface_dateien (FLNUM) values ( " . $this -> newDateinummer . " ) " )) return false ;
foreach ( $this -> OPs as $k => $OP )
{
$OP -> FLNUM = $this -> newDateinummer ;
//echo $this->genDB->Insert($OP)."\r\n";
$this -> app -> DB -> Insert ( $this -> genDB -> Insert ( $OP ));
}
foreach ( $this -> DBs as $k => $DB )
{
$DB -> FLNUM = $this -> newDateinummer ;
//echo $this->genDB->Insert($DB)."\r\n";
$this -> app -> DB -> Insert ( $this -> genDB -> Insert ( $DB ));
}
}
function lastDateinummer ()
{
return $this -> newDateinummer = ( int ) $this -> app -> DB -> Select ( " select max(FLNUM) from coface_dateien " );
}
function Export ()
{
echo " new export \r \n " ;
$this -> export = new coface_export ( $this -> app );
echo " getFromDB \r \n " ;
$this -> export -> getFromDB ( $this -> newDateinummer );
//alte Daten
$alt = $this -> app -> DB -> Select ( " select max(FLNUM) from coface_dateien where status 'gesendet' " );
if ( $alt ) $this -> export -> getFromDB ( $alt , true );
$this -> export -> genEntwickler ();
}
function Hochladen ()
{
echo " Hochladen " ;
if ( ! $this -> export )
{
$this -> error [] = " Export nicht geladen " ;
return false ;
}
if ( ! $this -> export -> genDateien ())
{
if ( $this -> export -> error ) $this -> error [] = $this -> export -> error ;
$this -> error [] = " Fehler beim generieren von Dateien " ;
return false ;
}
if ( $this -> export -> Hochladen ()) return true ;
$this -> error [] = " Fehler beim Hochladen " ;
return false ;
}
}
class coface_DB
{
public $Data ;
function __construct ()
{
$this -> Data = new coface_DB_Daten ();
$this -> Data -> FillData ( 'DBCOTRY' , 'DE' );
$this -> Data -> FillData ( 'DBLANG' , 'DE' );
$this -> Data -> FillData ( 'DBCLNR' , cofaceConfig :: $Kundennummer );
$this -> Data -> FillData ( 'DBLITYP' , '0' );
$this -> Data -> FillData ( 'DBLIMIT' , 0 );
$this -> Data -> FillData ( 'DBCURLMT' , 'EUR' );
$this -> Data -> FillData ( 'DBDALIEFF' , '01.01.2000' );
$this -> Data -> FillData ( 'DBDALITO' , '31.12.2099' );
}
function SetAdr ( $val )
{
if ( ! is_array ( $val )) return false ;
if ( isset ( $val [ 'name' ])) $this -> Data -> FillData ( 'DBNAME1' , $val [ 'name' ]);
if ( isset ( $val [ 'ansprechpartner' ])) $this -> Data -> FillData ( 'DBCONTAC' , $val [ 'ansprechpartner' ]);
if ( isset ( $val [ 'strasse' ])) $this -> Data -> FillData ( 'DBSTREET' , $val [ 'strasse' ]);
if ( isset ( $val [ 'plz' ])) $this -> Data -> FillData ( 'DBZIP' , $val [ 'plz' ]);
if ( isset ( $val [ 'ort' ])) $this -> Data -> FillData ( 'DBPLACE' , $val [ 'ort' ]);
if ( isset ( $val [ 'kundennummer' ])) $this -> Data -> FillData ( 'DBNR' , $val [ 'kundennummer' ]);
if ( isset ( $val [ 'kundennummer' ])) $this -> Data -> FillData ( 'DBNRZE' , $val [ 'kundennummer' ]);
if ( isset ( $val [ 'land' ])) $this -> Data -> FillData ( 'DBCOTRY' , $val [ 'land' ]);
}
function SetLimitUnbekannt ( $val )
{
$this -> Data -> FillData ( 'DBLITYP' , '2' );
$this -> Data -> FillData ( 'DBLIMIT' ,( float ) $val );
}
function SetLimitBekannt ( $val )
{
$this -> Data -> FillData ( 'DBLITYP' , '1' );
$this -> Data -> FillData ( 'DBLIMIT' ,( float ) $val );
}
}
class coface_OP
{
public $Data ;
function __construct ()
{
$this -> Data = new coface_OP_Daten ();
$this -> Data -> FillData ( 'OPCLNR' , cofaceConfig :: $Kundennummer );
$this -> Data -> FillData ( 'OPITMTYP' , 'DR' );
$this -> Data -> FillData ( 'OPCUR' , 'EUR' );
$this -> Data -> FillData ( 'OPCURMN' , 'EUR' );
}
public function SetBelegnummer ( $val )
{
$this -> Data -> FillData ( 'OPITMNR' , $val );
}
public function SetBelegnummerRef ( $val )
{
$this -> Data -> FillData ( 'OPITMNRREF' , $val );
}
public function SetData ( $val )
{
if ( isset ( $val [ 'kundennummer' ])) $this -> Data -> FillData ( 'OPDBNR' , $val [ 'kundennummer' ]);
}
public function SetLieferdatum ( $val )
{
$this -> Data -> FillData ( 'OPITMDTL' , $val );
}
public function SetBelegdatum ( $val )
{
$this -> Data -> FillData ( 'OPITMDAT' , $val );
if ( ! $this -> Data -> GetDataByName ( 'OPITMDTL' )) $this -> Data -> FillData ( 'OPITMDTL' , $val );
}
public function SetFaelligkeitsdatum ( $val )
{
$this -> Data -> FillData ( 'OPITMDTD' , $val );
}
public function SetMahnstufe ( $val )
{
$this -> Data -> FillData ( 'OPITMDLV' , ( int ) $val );
}
public function SetSkonto ( $Tage , $val )
{
$this -> Data -> FillData ( 'OPITMDY1' , ( int ) $Tage );
$this -> Data -> FillData ( 'OPITMRD1' , ( float ) $val );
}
public function SetSkonto2 ( $Tage , $val )
{
$this -> Data -> FillData ( 'OPITMDY2' , ( int ) $Tage );
$this -> Data -> FillData ( 'OPITMRD2' , ( float ) $val );
}
public function SetSkonto3 ( $Tage , $val = 0 )
{
$this -> Data -> FillData ( 'OPITMDY3' , ( int ) $Tage );
}
public function SetText ( $val )
{
$this -> Data -> FillData ( 'OPITMTXT' , ( $val ));
}
public function SetBetrag ( $val )
{
$val = ( float ) $val ;
switch ( $this -> Data -> GetDataByName ( 'OPITMTYP' ))
{
case 'DR' :
case 'SG' :
case 'WS' :
if ( $val < 0 ) $val = - $val ;
break ;
case 'DG' :
case 'DZ' :
case 'SR' :
if ( $val > 0 ) $val = - $val ;
break ;
}
$this -> Data -> FillData ( 'OPAMT' , $val );
$this -> Data -> FillData ( 'OPAMTMN' , $val );
}
public function DebitorenRechnung ()
{
$this -> Data -> FillData ( 'OPITMTYP' , 'DR' );
}
public function DebitorenGutschrift ()
{
$this -> Data -> FillData ( 'OPITMTYP' , 'DG' );
}
public function DebitorenZahlung ()
{
$this -> Data -> FillData ( 'OPITMTYP' , 'DZ' );
}
public function StornoRechnung ()
{
$this -> Data -> FillData ( 'OPITMTYP' , 'SR' );
}
public function StornoGutschrift ()
{
$this -> Data -> FillData ( 'OPITMTYP' , 'SG' );
}
public function Restposten ()
{
$this -> Data -> FillData ( 'OPITMTYP' , 'RP' );
}
public function Warenstreit ()
{
$this -> Data -> FillData ( 'OPITMTYP' , 'WS' );
}
}
if ( isset ( $argv [ 1 ]) && strpos ( strtoupper ( $argv [ 1 ]), 'EXCELTEST' ) !== false )
{
$xlt = new coface_excel ( 'Entwickler2.xlt' );
/*
$nr = $xlt -> AddPage ( " Test " );
if ( $nr )
{
if ( $xlt -> AddElement ( $nr , 'A1' , 'moo' ))
{
$xlt -> save ( 'EXCELTEST.xls' );
}
} */
$xlt -> InsertJournal ( " RE-Journal " , " Debitor " , " Debitor-Nr. " , " 1234 " , " 05.05.2015 " , " 30.07.2015 " , " 10.00 " );
$xlt -> InsertJournal ( " RE-Journal " , " Debitor " , " Debitor-Nr. " , " 1234 " , " 05.05.2015 " , " 30.07.2015 " , " 10.00 " );
$xlt -> InsertJournal ( " RE-Journal " , " Debitor " , " Debitor-Nr. " , " 1234 " , " 05.05.2015 " , " 30.07.2015 " , " 10.00 " );
$xlt -> InsertJournal ( " RE-Journal " , " Debitor " , " Debitor-Nr. " , " 1234 " , " 05.05.2015 " , " 30.07.2015 " , " 10.00 " );
$xlt -> AddZahlungseingang ( 'Musterbank' , " Debitor " , " 05.05.2015 " , " 123456 " , '980.00' , '20.00' , '1000.00' );
$xlt -> AddZahlungseingang ( 'Musterbank' , " Debitor 2 " , " 05.05.2015 " , " 123456 " , '80.00' , '20.00' , '100.00' );
$xlt -> AddZahlungseingang ( 'Musterbank' , " Debitor 3 " , " 05.05.2015 " , " 123456 " , '1980.00' , '20.00' , '2000.00' );
$xlt -> save ( 'EXCELTEST2.xls' );
}
if ( isset ( $argv [ 1 ]) && strpos ( strtoupper ( $argv [ 1 ]), 'EDISON' ) !== false )
{
$tmp = new WaWisioncoface ( $app );
$tmp -> ImportEdison ( " OPListe_31.05.2015.csv " );
}
/*
$xlt = new coface_excel ();
$xlt -> AnzahlGutschriften = 1 ;
$xlt -> GemGutschriften = 'ABC' ;
$xlt -> SaldoGutschriften = 12.10 ;
$xlt -> Absender =
" Firma ABC
Muster Str . 5
86343 Königsbrunn " ;
$xlt -> save ( 'bla.xls' );
*/
class coface_excel
{
public $Datum ;
public $KundenNr ;
public $Ansprechpartner = " " ;
public $Absender = " " ;
public $OPSaldoalt = 0 ;
public $DatumOP = " " ;
public $AnzahlRechnungen = 0 ;
public $AnzahlStornoRechnungen = 0 ;
public $AnzahlGutschriften = 0 ;
public $AnzahlStornoGutschriften = 0 ;
public $AnzahlRestposten = 0 ;
public $AnzahlStornoRestposten = 0 ;
public $GemRechnungen = " " ;
public $GemStornoRechnungen = " " ;
public $GemGutschriften = " " ;
public $GemStornoGutschriften = " " ;
public $GemRestposten = " " ;
public $GemStornoRestposten = " " ;
public $SaldoRechnungen = 0 ;
public $SaldoStornoRechnungen = 0 ;
public $SaldoGutschriften = 0 ;
public $SaldoStornoGutschriften = 0 ;
public $SaldoRestposten = 0 ;
public $SaldoStornoRestposten = 0 ;
public $AnzahlZahlungseingaenge = 0 ;
public $Netto = 0 ;
public $Abzuege = 0 ;
public $Brutto = 0 ;
public $OPSaldoNeu = 0 ;
public $eigenenHausbankkonto = 0 ;
public $CFKonto = 0 ;
private $anz ;
function __construct ( $Excelfile = null )
{
require_once dirname ( __FILE__ ) . " /PHPExcel.php " ;
$this -> KundenNr = cofaceConfig :: $Kundennummer ;
$this -> Datum = date ( " d.m.Y " );
$this -> DatumOP = date ( " d.m.Y " );
$this -> _oPHPExcel = new PHPExcel ();
$this -> _oExcelReader = new PHPExcel_Reader_Excel5 ();
$this -> _oExcelReader -> setReadDataOnly ( false );
if ( is_null ( $Excelfile ))
{
$this -> _oPHPExcel = $this -> _oExcelReader -> load ( cofaceConfig :: $ExcelRoh );
} else {
$this -> _oPHPExcel = $this -> _oExcelReader -> load ( $Excelfile );
}
if ( $this -> _oPHPExcel -> getSheetCount () > 1 )
{
for ( $i = 1 ; $i < $this -> _oPHPExcel -> getSheetCount (); $i ++ )
{
$this -> _oPHPExcel -> setActiveSheetIndex ( $i );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A5' , 'Kunden-Nr. ' . cofaceConfig :: $Kundennummer );
if ( $i == $this -> _oPHPExcel -> getSheetCount () - 1 )
{
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G7' , date ( " d.m.Y " ));
} else {
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'F7' , date ( " d.m.Y " ));
}
}
}
}
function InsertJournalNr ( $Sheetname , $Journalnr )
{
if ( $nr && $Sheetname )
{
if ( $this -> _oPHPExcel -> sheetNameExists ( $Sheetname ))
{
if ( ! isset ( $this -> anz [ $Sheetname ])) $this -> anz [ $Sheetname ] = 0 ;
$this -> anz [ $Sheetname ] ++ ;
$nr = $this -> _oPHPExcel -> getIndex ( $this -> _oPHPExcel -> getSheetByName ( $Sheetname ));
if ( $nr )
{
$this -> _oPHPExcel -> setActiveSheetIndex ( $nr );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D7' , $Journalnr );
}
}
}
}
//TO Kundenname
function InsertJournal ( $Sheetname , $Debitor , $DebitorNr , $Belegnummer , $Belegdatum , $Faelligkeitsdatum , $Betrag )
{
if ( $this -> _oPHPExcel -> sheetNameExists ( $Sheetname ))
{
if ( ! isset ( $this -> anz [ $Sheetname ])) $this -> anz [ $Sheetname ] = 0 ;
$this -> anz [ $Sheetname ] ++ ;
$nr = $this -> _oPHPExcel -> getIndex ( $this -> _oPHPExcel -> getSheetByName ( $Sheetname ));
if ( $nr )
{
$this -> _oPHPExcel -> setActiveSheetIndex ( $nr );
if ( $this -> anz [ $Sheetname ] > 2 )
{
$this -> _oPHPExcel -> getActiveSheet () -> insertNewRowBefore ( $this -> anz [ $Sheetname ] + 9 , 1 );
}
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A' . ( $this -> anz [ $Sheetname ] + 9 ), $Debitor );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'B' . ( $this -> anz [ $Sheetname ] + 9 ), $DebitorNr );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'C' . ( $this -> anz [ $Sheetname ] + 9 ), $Belegnummer );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D' . ( $this -> anz [ $Sheetname ] + 9 ), $Belegdatum );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'E' . ( $this -> anz [ $Sheetname ] + 9 ), $Faelligkeitsdatum );
if ( $this -> anz [ $Sheetname ] > 1 ) $this -> _oPHPExcel -> getActiveSheet () -> duplicateStyle ( $this -> _oPHPExcel -> getActiveSheet () -> getStyle ( 'F10' ), 'F' . ( $this -> anz [ $Sheetname ] + 9 ));
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'F' . ( $this -> anz [ $Sheetname ] + 9 ), $Betrag );
//echo 'F'.($this->anz[$Sheetname]+9).' '.$Betrag. ' F'.($this->anz[$Sheetname]+($this->anz[$Sheetname] > 2?-1:0)+11)." ".'=Summe(F10:F'.($this->anz[$Sheetname]+($this->anz[$Sheetname] > 2?-1:0)+10).')'."\r\n";
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'F' . ( $this -> anz [ $Sheetname ] + ( $this -> anz [ $Sheetname ] > 2 ? - 1 : 0 ) + 11 ), '=SUM(F10:F' . ( $this -> anz [ $Sheetname ] + ( $this -> anz [ $Sheetname ] > 2 ? - 1 : 0 ) + 10 ) . ')' );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'F' . ( $this -> anz [ $Sheetname ] + ( $this -> anz [ $Sheetname ] > 2 ? - 1 : 0 ) + 12 ), '' );
switch ( $Sheetname )
{
case 'RE-Journal' :
$this -> AnzahlRechnungen = $this -> anz [ $Sheetname ];
$this -> GemRechnungen = $Sheetname ;
$this -> SaldoRechnungen += $Betrag ;
break ;
case 'RG-Storno Journal' :
$this -> AnzahlStornoRechnungen = $this -> anz [ $Sheetname ];
$this -> GemStornoRechnungen = $Sheetname ;
$this -> SaldoStornoRechnungen += $Betrag ;
break ;
case 'GS-Journal' :
$this -> AnzahlGutschriften = $this -> anz [ $Sheetname ];
$this -> GemGutschriften = $Sheetname ;
$this -> SaldoGutschriften += $Betrag ;
break ;
case 'GS-Storno Journal' :
$this -> AnzahlStornoGutschriften = $this -> anz [ $Sheetname ];
$this -> GemStornoGutschriften = $Sheetname ;
$this -> SaldoStornoGutschriften += $Betrag ;
break ;
case 'Restposten' :
$this -> AnzahlRestpostenn = $this -> anz [ $Sheetname ];
$this -> GemRestposten = $Sheetname ;
$this -> SaldoRestposten += $Betrag ;
break ;
case 'Restposten Storno Journal' :
$this -> AnzahlStornoRestposten = $this -> anz [ $Sheetname ];
$this -> GemStornoRestposten = $Sheetname ;
$this -> SaldoStornoRestposten += $Betrag ;
break ;
}
}
}
}
function AddZahlungseingang ( $Bank , $Debitor , $BelegDatumAuszug , $Belegnummer , $Netto , $Abzuege , $Brutto )
{
if ( $this -> _oPHPExcel -> sheetNameExists ( 'ZE-Journal' ))
{
if ( ! isset ( $this -> anz [ 'ZE-Journal' ])) $this -> anz [ 'ZE-Journal' ] = 0 ;
$this -> anz [ 'ZE-Journal' ] ++ ;
$nr = $this -> _oPHPExcel -> getIndex ( $this -> _oPHPExcel -> getSheetByName ( 'ZE-Journal' ));
if ( $nr )
{
$this -> _oPHPExcel -> setActiveSheetIndex ( $nr );
if ( $this -> anz [ 'ZE-Journal' ] > 2 )
{
$this -> _oPHPExcel -> getActiveSheet () -> insertNewRowBefore ( $this -> anz [ 'ZE-Journal' ] + 9 , 1 );
}
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A' . ( $this -> anz [ 'ZE-Journal' ] + 9 ), $Bank );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'B' . ( $this -> anz [ 'ZE-Journal' ] + 9 ), $Debitor );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'C' . ( $this -> anz [ 'ZE-Journal' ] + 9 ), $BelegDatumAuszug );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D' . ( $this -> anz [ 'ZE-Journal' ] + 9 ), $Belegnummer );
if ( $this -> anz [ 'ZE-Journal' ] > 1 ) $this -> _oPHPExcel -> getActiveSheet () -> duplicateStyle ( $this -> _oPHPExcel -> getActiveSheet () -> getStyle ( 'E10' ), 'E' . ( $this -> anz [ 'ZE-Journal' ] + 9 ));
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'E' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 11 ), '=SUM(E10:E' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 10 ) . ')' );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'E' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 12 ), '' );
if ( $this -> anz [ 'ZE-Journal' ] > 1 ) $this -> _oPHPExcel -> getActiveSheet () -> duplicateStyle ( $this -> _oPHPExcel -> getActiveSheet () -> getStyle ( 'F10' ), 'F' . ( $this -> anz [ 'ZE-Journal' ] + 9 ));
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'F' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 11 ), '=SUM(F10:F' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 10 ) . ')' );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'F' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 12 ), '' );
if ( $this -> anz [ 'ZE-Journal' ] > 1 ) $this -> _oPHPExcel -> getActiveSheet () -> duplicateStyle ( $this -> _oPHPExcel -> getActiveSheet () -> getStyle ( 'G10' ), 'G' . ( $this -> anz [ 'ZE-Journal' ] + 9 ));
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 11 ), '=SUM(G10:G' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 10 ) . ')' );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G' . ( $this -> anz [ 'ZE-Journal' ] + ( $this -> anz [ 'ZE-Journal' ] > 2 ? - 1 : 0 ) + 12 ), '' );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'E' . ( $this -> anz [ 'ZE-Journal' ] + 9 ), $Netto );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'F' . ( $this -> anz [ 'ZE-Journal' ] + 9 ), $Abzuege );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G' . ( $this -> anz [ 'ZE-Journal' ] + 9 ), $Brutto );
$this -> AnzahlZahlungseingaenge = $htis -> anz [ 'ZE-Journal' ];
$this -> Netto += $Netto ;
$this -> Abzuege += $Abzuege ;
$this -> Brutto += $Brutto ;
}
}
}
function removeUnusedSheets ()
{
$toremove = array ();
if ( ! isset ( $this -> anz ) || ! isset ( $this -> anz [ 'RE-Journal' ]) || $this -> anz [ 'RE-Journal' ]) $toremove [ 'RE-Journal' ] = true ;
if ( ! isset ( $this -> anz ) || ! isset ( $this -> anz [ 'RG-Storno Journal' ]) || $this -> anz [ 'RG-Storno Journal' ]) $toremove [ 'RG-Storno Journal' ] = true ;
if ( ! isset ( $this -> anz ) || ! isset ( $this -> anz [ 'GS-Journal' ]) || $this -> anz [ 'GS-Journal' ]) $toremove [ 'GS-Journal' ] = true ;
if ( ! isset ( $this -> anz ) || ! isset ( $this -> anz [ 'GS-Storno Journal' ]) || $this -> anz [ 'GS-Storno Journal' ]) $toremove [ 'GS-Storno Journall' ] = true ;
if ( ! isset ( $this -> anz ) || ! isset ( $this -> anz [ 'Restposten' ]) || $this -> anz [ 'Restposten' ]) $toremove [ 'Restposten' ] = true ;
if ( ! isset ( $this -> anz ) || ! isset ( $this -> anz [ 'Restposten Storno Journal' ]) || $this -> anz [ 'Restposten Storno Journal' ]) $toremove [ 'Restposten Storno Journal' ] = true ;
if ( count ( $toremove ) > 0 )
{
foreach ( $toremove as $Sheetname => $val )
{
if ( $key )
{
if ( $this -> _oPHPExcel -> sheetNameExists ( $Sheetname ))
{
$nr = $this -> _oPHPExcel -> getIndex ( $this -> _oPHPExcel -> getSheetByName ( $Sheetname ));
if ( $nr )
{
$this -> _oPHPExcel -> removeSheetByIndex ( $nr );
}
}
}
}
}
}
function AddPage ( $name )
{
$tmp = $this -> _oPHPExcel -> createSheet ();
$tmp -> setTitle ( $name );
return $this -> _oPHPExcel -> getIndex ( $tmp );
}
function AddElement ( $nr , $Zelle , $val )
{
if ( ! $this -> _oPHPExcel ) return false ;
$n = preg_match_all ( " /([A-Za-z]+)( \ d+)/ " , $Zelle , $treffer );
if ( ! $n ) return false ;
if ( count ( $treffer ) < 3 ) return false ;
if ( ! isset ( $treffer [ 0 ][ 0 ]) ||! isset ( $treffer [ 1 ][ 0 ]) ||! isset ( $treffer [ 2 ][ 0 ])) return false ;
if ( strlen ( $treffer [ 1 ][ 0 ]) > 2 ) return false ;
if ( $treffer [ 2 ][ 0 ] < 1 ) return false ;
if ( $this -> _oPHPExcel -> getSheetCount () > $nr )
{ $this -> _oPHPExcel -> setActiveSheetIndex ( $nr );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( $Zelle , $val );
return true ;
} else {
return false ;
}
}
function save ( $filename )
{
if ( strpos ( $filename , '/' ) === false ){
if ( ! is_null ( cofaceConfig :: $Folder ))
{
$filename = cofaceConfig :: $Folder . $filename ;
} else {
$filename = dirname ( __FILE__ ) . '/' . $filename ;
}
}
$this -> _oPHPExcel -> setActiveSheetIndex ( 0 );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G5' , $this -> KundenNr );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A6' , 'z. H. ' . $this -> Ansprechpartner );
if (( $this -> Absender ))
{
$Zeilen = explode ( " \n " , $this -> Absender );
for ( $i = 0 ; $i < 6 ; $i ++ )
{
if ( isset ( $Zeilen [ $i ])) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'E' . ( 6 + $i ), trim ( $Zeilen [ $i ]));
}
}
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G12' , $this -> Datum );
$this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D24' , $this -> DatumOP );
if ( $this -> OPSaldoalt ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G21' , $this -> OPSaldoalt );
if ( $this -> AnzahlRechnungen ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A27' , $this -> AnzahlRechnungen );
if ( $this -> AnzahlStornoRechnungen ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A28' , $this -> AnzahlStornoRechnungen );
if ( $this -> AnzahlGutschriften ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A29' , $this -> AnzahlGutschriften );
if ( $this -> AnzahlStornoGutschriften ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A30' , $this -> AnzahlStornoGutschriften );
if ( $this -> AnzahlRestposten ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A31' , $this -> AnzahlRestposten );
if ( $this -> AnzahlStornoRestposten ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A32' , $this -> AnzahlStornoRestposten );
if ( $this -> GemRechnungen ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D27' , $this -> GemRechnungen );
if ( $this -> GemStornoRechnungen ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D28' , $this -> GemStornoRechnungen );
if ( $this -> GemGutschriften ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D29' , $this -> GemGutschriften );
if ( $this -> GemStornoGutschriften ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D30' , $this -> GemStornoGutschriften );
if ( $this -> GemRestposten ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D31' , $this -> GemRestposten );
if ( $this -> GemStornoRestposten ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D32' , $this -> GemStornoRestposten );
if ( $this -> SaldoRechnungen ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G27' , $this -> SaldoRechnungen );
if ( $this -> SaldoStornoRechnungen ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G28' , $this -> SaldoStornoRechnungen );
if ( $this -> SaldoGutschriften ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G29' , $this -> SaldoGutschriften );
if ( $this -> SaldoStornoGutschriften ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G30' , $this -> SaldoStornoGutschriften );
if ( $this -> SaldoRestposten ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G31' , $this -> SaldoRestposten );
if ( $this -> SaldoStornoRestposten ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G32' , $this -> SaldoStornoRestposten );
if ( $this -> AnzahlZahlungseingaenge ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'A34' , $this -> AnzahlZahlungseingaenge );
if ( $this -> Netto ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D35' , $this -> Netto );
if ( $this -> Abzuege ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D36' , $this -> Abzuege );
if ( $this -> Brutto ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G37' , $this -> Brutto );
if ( $this -> OPSaldoNeu ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'G38' , $this -> OPSaldoNeu );
if ( $this -> eigenenHausbankkonto ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D42' , $this -> eigenenHausbankkonto );
if ( $this -> CFKonto ) $this -> _oPHPExcel -> getActiveSheet () -> SetCellValue ( 'D43' , $this -> CFKonto );
$this -> removeUnusedSheets ();
$objWriter = new PHPExcel_Writer_Excel5 ( $this -> _oPHPExcel );
$objWriter -> save ( $filename );
}
}
?>