
| Current Path : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/Application/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/Application/ZFibuRules.old |
package Application::ZFibuRules;
use strict;
use Data::Dumper;
our $buchhaltung; our $konto; our $bdatum; our $betrag; our $kto1;
our $kto2; our $rem; our $bdatum1; our $betrag1; our $kto11;
our $kto21; our $rem1; our $zeile; our $jahr;
sub chkto_gmbh {
my $self = shift;
if ($konto =~ /^10-7500-cgabriel/ and $kto2 eq "13-9999") {
if ($rem =~ /(Taxi|Fahrt|Fahrpreis|Reisek)/) { $kto21 = "13-6670"; }
elsif ($rem =~ /(Buero|Büro).*(Copy)/) { $kto21 = "13-6630"; }
elsif ($rem =~ /(Buero|Büro)/) { $kto21 = "13-6815"; }
elsif ($rem =~ /(Benzin)/) { $kto21 = "13-6530"; }
elsif ($rem =~ /(Bewirtung)/) { $kto21 = "13-6640"; }
elsif ($rem =~ /ppq.*(Hotel|Pension)/) { $kto21 = "13-6681"; $rem1 = $rem . ", Frühstück"}
elsif ($rem =~ /pmq.*(Hotel|Pension)/) { $kto21 = "13-6680"; }
elsif ($rem =~ /DB /) { $kto21 = "13-6670"; }
elsif ($rem =~ /Copy(.*)Factory/) { $kto21 = "13-9210"; }
else { $kto21 = "13-6300"; }
}
elsif ($konto =~ /^10-1202/ and $kto2 eq "13-9999") {
if ($rem =~ /MIETZAHL/) { $kto21 = "13-6310"; }
elsif ($rem =~ /BILDKOSTEN/) { $kto21 = "13-6430"; }
elsif ($rem =~ /GEZ/) { $kto21 = "13-6122"; }
elsif ($rem =~ /3013400/) { $kto21 = "13-6670"; $rem1 = "qq" . $rem; }
elsif ($rem =~ /FAHRSCHEIN.*DB.*VERTRIEB/) { $kto21 = "13-6670"; }
elsif ($rem =~ /brechnung/) { $kto21 = "13-6855"; }
elsif ($rem =~ /JARMILIA ENGEWALD/) { $kto21 = "10-1512-zahlung"; }
elsif ($rem =~ /AUSLAGEN(.*?)CHRISTIANE +CSENGERY/) { $kto21 = "10-7500-ccsengery"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)CHRISTIANE +CSENGERY/) { $kto21 = "10-1500-AN-ccsengery-ZAHL"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)KLECKOW/) { $kto21 = "10-1500-AN-jkleckow-ZAHL"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)RJASANOW/) { $kto21 = "10-1500-AN-arjasanow-ZAHL"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)DOMINIK DIENL/) { $kto21 = "10-1500-AN-ddienlin-ZAHL"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)HERRSCHEL/) { $kto21 = "10-1500-AN-mherrschel-ZAHL"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)PARFUSS/) { $kto21 = "10-1500-AN-hparfuss-ZAHL"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)PERIC/) { $kto21 = "10-1500-AN-dperic-ZAHL"; }
elsif ($rem =~ /(LOHN|GEHALT|VERGUETUNG)(.*?)FRIEDRICHS/) { $kto21 = "10-1500-AN-jfriedrichs-ZAHL"; }
elsif ($rem =~ /DOMINIK DIENL/) { $kto21 = "10-7500-ddienlin"; }
elsif ($rem =~ /CSENGERY/) { $kto21 = "10-7500-ccsengery"; }
elsif ($rem =~ /JUNGBLUT/) { $kto21 = "10-7500-tjungblut"; }
elsif ($rem =~ /3103207/) { $kto21 = "10-7500-cgabriel"; }
elsif ($rem =~ /HLIFSLOHN/) { $kto21 = "10-1500-AN-jengewald-ZAHL"; }
elsif ($rem =~ /1105722230/) { $kto21 = "10-2080-Strom"; }
elsif ($rem =~ /PRIVATKONTO GESELL/) { $kto21 = "10-7500-cgabriel"; }
elsif ($rem =~ /Hays/) { $kto21 = "10-7000-hays"; }
elsif ($rem =~ /EBC FRANKFURT/) { $kto21 = "10-2090-zahlung"; }
elsif ($rem =~ /STHREE/) { $kto21 = "10-7000-progressive"; }
elsif ($rem =~ /OEL-VORAUS/) { $kto21 = "10-2080-Oel"; }
elsif ($rem =~ /RUNDFUNK/) { $kto21 = "13-6122"; }
elsif ($rem =~ /IT110/) { $kto21 = "13-5200"; }
elsif ($rem =~ /STRATO/) { $kto21 = "13-6350"; $rem1 = "qq" . $rem;}
elsif ($rem =~ /SIPGATE/) { $kto21 = "13-6350"; $rem1 = "qq" . $rem;}
elsif ($rem =~ /LOHNST(.*?)(\d+)/) { $kto21 = "10-1380-$2-zahlung"; }
elsif ($rem =~ /LKST\.RK(.*?)(\d+)/) { $kto21 = "10-1385-$2-zahlung"; }
elsif ($rem =~ /UMS\.ST(.*?)(\d+)/) { $kto21 = "10-1310-$2"; }
elsif ($rem =~ /BACHMANN/) { $kto21 = "13-6825"; $rem1 = "qq" . $rem;}
elsif ($rem =~ /VHV /) { $kto21 = "13-6530"; }
elsif ($rem =~ /FLYERMEYER/) { $kto21 = "13-6600"; }
elsif ($rem =~ /MINIJOB-ZENTRALE/) { $kto21 = "10-1500-AN-jengewald"; }
elsif ($rem =~ /CULTURAL/) { $kto21 = "13-9210"; }
elsif ($rem =~ /I[fF]T- *KONZER/) { $kto21 = "13-9210"; }
elsif ($rem =~ /10.12.2011 +KONZERTE/) { $kto21 = "10-7500-klangkonzepte"; }
elsif ($rem =~ /KONZERTE/) { $kto21 = "13-9210"; }
elsif ($rem =~ /BUNDESKASSE/) { $kto21 = "13-6430"; }
elsif ($rem =~ /WOLF +AM +BAHNHOF/) { $kto21 = "13-6430"; }
elsif ($rem =~ /14993475/ and $rem =~ /KNAPP/) { $kto21 = "10-1512-zahlung"; }
elsif ($rem =~ /14993475/ and $rem =~ /BKK +VBU/) { $kto21 = "10-1513-zahlung"; }
elsif ($rem =~ /14993475/ and $rem =~ /AOK +BAYER/) { $kto21 = "10-1514-zahlung"; }
elsif ($rem =~ /14993475/ and $rem =~ /MOBIL +OIL/) { $kto21 = "10-1515-zahlung"; }
elsif ($rem =~ /14993475/ and $rem =~ /SIEMENS(.*?)BKK/) { $kto21 = "10-1516-zahlung"; }
elsif ($rem =~ /14993475/ and $rem =~ /TECHNIKER/) { $kto21 = "10-1517-zahlung"; }
elsif ($rem =~ /14993475/ and $rem =~ /BARMER +GEK/) { $kto21 = "10-1518-zahlung"; }
}
}
#******************************************************************************************
sub chkto_privat {
my $self = shift;
my $o;
if ($konto =~ /^10-1200/ and $kto2 eq "13-9999") {
if ($rem =~ /HAFTPFLICHT/) { $kto21 = "13-Versich-VHV"; }
elsif ($rem =~ /VOTH/) { $kto21 = "13-Sonstig"; }
elsif ($rem =~ /ELA JUNGBLUT DAU/) { $kto21 = "10-1299-1208"; }
elsif ($rem =~ /76030080/ and $rem =~ /200031185/) { $kto21 = "10-1299-1203"; }
elsif ($rem =~ /37040044/ and $rem =~ /1515527/) { $kto21 = "10-1299-1208"; }
elsif ($rem =~ /VODAFONE(.*)10132/) { $kto21 = "13-Tel-FU"; }
elsif ($rem =~ /VODAFONE(.*)10274/) { $kto21 = "13-Tel-HE"; }
elsif ($rem =~ /E-PLUS SERVICE/) { $kto21 = "13-Tel-B1"; }
elsif ($rem =~ /LEONARD GEORGE/) { $kto21 = "13-Leonard"; }
elsif ($rem =~ /OELKONTO/) { $kto21 = "10-2010-Oel"; }
elsif ($rem =~ /SAMPSON(.*?)UNTERMIETVERTRAG/) { $kto21 = "10-2070-Miete"; }
elsif ($rem =~ /INFRA(.*)GMBH/) { $kto21 = "10-2010-infra"; }
elsif ($rem =~ /STORCH MIETKTO/) { $kto21 = "10-2010-Miete"; }
elsif ($rem =~ /Abschluss Zinsen/) { $kto21 = "13-Sonstig-Zinsen"; }
elsif ($rem =~ /Kontoführung/) { $kto21 = "13-Kto"; }
elsif ($rem =~ /CHRISTIAN GABRIEL DAU AN200031185/) { $kto21 = "10-1299-1203"; }
elsif ($rem =~ /CHRISTIAN GABRIEL DAU AN0200031185/) { $kto21 = "10-1299-1203"; }
elsif ($rem =~ /DAK 0616080/) { $kto21 = "13-DAK"; }
elsif ($rem =~ /TECHNOLOGI ET/) { $kto21 = "12-089"; }
elsif ($rem =~ /KOWIS/) { $kto21 = "13-Anwalt"; }
elsif ($rem =~ /AWENDER/) { $kto21 = "10-2020-Miete"; }
elsif ($rem =~ /VOLKER GABRIEL/) { $kto21 = "13-Volker"; }
elsif ($rem =~ /FAHRGASTRECHTE/) { $kto21 = "13-Fahrtk"; }
elsif ($rem =~ /SPD/) { $kto21 = "13-Verein-SPD"; }
elsif ($rem =~ /^GA NR/) { $kto21 = "10-1000"; }
elsif ($rem =~ /IKEA/) { $kto21 = "13-Wohnung"; }
elsif ($rem =~ /RUNDFUNKANST/) { $kto21 = "10-1213-N"; }
elsif ($rem =~ /(IHR PLATZ|IDEE CREATIV|DROGERIE|ROSSMANN|ALNATURA)/) { $kto21 = "13-xrogerie"; }
elsif ($rem =~ /(REWE|TENGELMANN|EDEKA|IHR LIDL|FRISTO)/) { $kto21 = "13-Lebensm"; }
elsif ($rem =~ /(ARAL)/) { $kto21 = "13-Benzin"; }
elsif ($rem =~ /(ORSAY|ZERO FILIALE|NI-KI|GINA +TRIKOT|TAKKO)/)
{ $kto21 = "13-Kleidung"; }
elsif ($rem =~ /(ESPRIT|DANKE FAMILA|AMIANDO|BON PRIX|TK MAXX|DEICHMANN|STREET ONE)/)
{ $kto21 = "13-Kleidung"; }
}
if ($konto =~ /^10-1203/ and $kto2 eq "13-9999") {
if ($rem =~ /Lastschrift(.*)VISA/) { $kto21 = "10-1000"; }
elsif ($rem =~ /GABRIEL(.*)TRANSFER VISA/) { $kto21 = "10-1299-1200"; }
elsif ($rem =~ /STAATSTHEATER BAYERN/) { $kto21 = "13-Kultur"; }
elsif ($rem =~ /(Gebühren|Abschluss)/) { $kto21 = "13-Kto"; }
elsif ($rem =~ /JAZZ STUDIO/) { $kto21 = "13-Verein-Jazzstudio"; }
}
if ($konto =~ /^10-1208/ and $kto2 eq "13-9999") {
if ($rem =~ /FITNESS FIRST/) { $kto21 = "13-D-FITNESS"; }
elsif ($rem =~ /RICHARD WAGNER/) { $kto21 = "13-D-xivers"; }
elsif ($rem =~ /SATURN/) { $kto21 = "13-D-xivers"; }
elsif ($rem =~ /GA NR/) { $kto21 = "10-1009"; }
elsif ($rem =~ /DR.CHRISTIAN GABRIEL/) { $kto21 = "10-1299-1200"; }
elsif ($rem =~ /DEUTSCHE BAHN/) { $kto21 = "13-D-Fahrtk"; }
elsif ($rem =~ /GERMANWINGS/) { $kto21 = "13-D-Fahrtk"; }
elsif ($rem =~ /DB VERTRIEB/) { $kto21 = "13-D-Fahrtk"; }
elsif ($rem =~ /(ORSAY|ZERO FILIALE|NI-KI|GINA +TRIKOT)/)
{ $kto21 = "13-Kleidung"; }
elsif ($rem =~ /(ESPRIT|DANKE FAMILA|AMIANDO|BON PRIX|TK MAXX|DEICHMANN|STREET ONE)/)
{ $kto21 = "13-Kleidung"; }
elsif ($rem =~ /KAUFHOF/) { $kto21 = "13-D-Kleidung"; }
elsif ($rem =~ /KARSTADT/) { $kto21 = "13-D-Kleidung"; }
elsif ($rem =~ /H(.*?)M(.*?)SAGT VIELEN DANK/) { $kto21 = "13-D-Kleidung"; }
elsif ($rem =~ /C\.A\.L\./) { $kto21 = "13-D-Kleidung"; }
elsif ($rem =~ /LUDWIG/) { $kto21 = "13-D-Kleidung"; }
elsif ($rem =~ /MIETE CRANACHSTR/) { $kto21 = "10-2060-Miete"; }
elsif ($rem =~ /Abschluss Zinsen/) { $kto21 = "13-Sonstig-Zinsen"; }
elsif ($rem =~ /MOBILCOM-DEBITEL/) { $kto21 = "13-Tel-DE"; }
elsif ($rem =~ /O2 SAGT DANKE/) { $kto21 = "13-Tel-O2"; }
elsif ($rem =~ /(REWE|TENGELMANN|EDEKA|IHR LIDL)/) { $kto21 = "13-D-Lebensm"; }
elsif ($rem =~ /STUDENTENWERK/) { $kto21 = "13-D-Lebensm"; }
elsif ($rem =~ /(IHR PLATZ|IDEE CREATIV|DROGERIE|ROSSMANN|ALNATURA)/) { $kto21 = "13-D-xrogerie"; }
elsif ($rem =~ /ALNATURA/) { $kto21 = "13-D-xrogerie"; }
elsif ($rem =~ /APOTHEKE/) { $kto21 = "13-D-Gesundh"; }
elsif ($rem =~ /MARGA RAFFELT/) { $kto21 = "13-D-Gesundh"; }
elsif ($rem =~ /THALIA BOUVIER/) { $kto21 = "13-D-Buecher"; }
elsif ($rem =~ /BUCH/) { $kto21 = "13-D-Buecher"; }
elsif ($rem =~ /RHEINENERGIE/) { $kto21 = "10-2060-Strom"; }
elsif ($rem =~ /RESTAUR/) { $kto21 = "13-D-Restaur"; }
elsif ($rem =~ /VINOTHEK/) { $kto21 = "13-D-Restaur"; }
elsif ($rem =~ /WEINLOKAL/) { $kto21 = "13-D-Restaur"; }
elsif ($rem =~ /AMAZON/) { $kto21 = "13-D-Tontraeger"; $rem = "\@\@" . $rem; }
elsif ($rem =~ /DANIELA JUNGBLUT DOSPAT/) { $kto21 = "10-1299-1207"; }
elsif ($rem =~ /Kontoführung/) { $kto21 = "13-D-Kto"; }
elsif ($rem =~ /DAK 3479/) { $kto21 = "13-D-DAK"; }
elsif ($rem =~ /HOTEL/) { $kto21 = "13-D-Hotel"; }
elsif ($rem =~ /(HONORAR|BUEHNEN +MUENSTER)/) { $kto21 = "12-094"; $rem = "\@\@" . $rem; }
}
if ($konto =~ /^10-1207/ and $kto2 eq "13-9999") {
if ($rem =~ /TRANSFER/) { $kto21 = "10-1299-1208"; }
if ($rem =~ /SEPA-Gutschrift DANIELA JUNGBLUT/) { $kto21 = "10-1299-1208"; }
elsif ($rem =~ /UPC/) {
$bdatum =~ /^\d\d(\d\d\d\d)/;
$o = sprintf("%04u",$1-1);
if ($o =~ /0$/) { $o = sprintf("%04u",$o-88); }
$kto21 = "13-Tel-WI"; }
elsif ($rem =~ /Strom/) { $kto21 = "10-2020-Wienstrom"; }
elsif ($rem =~ /Wien Energie/i) { $kto21 = "10-2020-Wienstrom"; }
elsif ($rem =~ /Miete /) { $kto21 = "10-2020-Miete"; }
elsif ($rem =~ /Mietsaldo/) { $kto21 = "10-2020-Miete"; }
elsif ($rem =~ /BK Abrechnung/) { $kto21 = "10-2020-Miete"; }
elsif ($rem =~ /Rosa Awender/) { $kto21 = "10-2020-Miete"; }
elsif ($rem =~ /zinsen/) { $kto21 = "13-D-Kto"; }
elsif ($rem =~ /ertragst/) { $kto21 = "13-D-Kto"; }
elsif ($rem =~ /sspesen/) { $kto21 = "13-D-Kto"; }
elsif ($rem =~ /blehnung/) { $kto21 = "13-D-Kto"; }
}
}
#******************************************************************************************
sub new {
my $class = shift;
my $self = {};
bless($self,$class);
# Allgemeine Saetze:
$self->{1500}->{2007} = { QQRV => 19.9, QQAV => 4.2, QQPV => 1.7 };
$self->{1500}->{2008} = { QQRV => 19.9, QQAV => 3.3, QQPV => 1.7 };
$self->{1500}->{200807} = { QQRV => 19.9, QQAV => 3.3, QQPV => 1.95 };
$self->{1500}->{200808} = { QQRV => 19.9, QQAV => 3.3, QQPV => 1.95 };
$self->{1500}->{200809} = { QQRV => 19.9, QQAV => 3.3, QQPV => 1.95 };
$self->{1500}->{200810} = { QQRV => 19.9, QQAV => 3.3, QQPV => 1.95 };
$self->{1500}->{200811} = { QQRV => 19.9, QQAV => 3.3, QQPV => 1.95 };
$self->{1500}->{200812} = { QQRV => 19.9, QQAV => 3.3, QQPV => 1.95 };
$self->{1500}->{2009} = { QQRV => 19.9, QQAV => 2.8, QQPV => 1.95 };
$self->{1500}->{2010} = { QQRV => 19.9, QQAV => 2.8, QQPV => 1.95 };
$self->{1500}->{2011} = { QQRV => 19.9, QQAV => 3.0, QQPV => 1.95 };
$self->{1500}->{2012} = { QQRV => 19.6, QQAV => 3.0, QQPV => 1.95 };
# DAK Fuerth:
$self->{1510}->{2007} = { QQKV => 14.5, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.2, ARU2 => 0.18, ARU3 => 0.0 };
$self->{1510}->{2008} = { QQKV => 14.5, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.2, ARU2 => 0.15, ARU3 => 0.0 };
$self->{1510}->{2009} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.8, ARU2 => 0.20, ARU3 => 0.1 };
$self->{1510}->{2010} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.2, ARU2 => 0.18, ARU3 => 0.0 };
$self->{1510}->{2011} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.2, ARU2 => 0.18, ARU3 => 0.0 };
$self->{1510}->{2012} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.2, ARU2 => 0.18, ARU3 => 0.0 };
# Minijob-Zentrale:
$self->{1512}->{2007} = { ARKV => 13, ARRV => 15, ARRP => -19.9, ARU1 => 0.1, ARU2 => 0, ARU3 => 0, ARST => 2, ARPL => -25 };
$self->{1512}->{2008} = { ARKV => 13, ARRV => 15, ARRP => -19.9, ARU1 => 0.1, ARU2 => 0, ARU3 => 0, ARST => 2, ARPL => -25 };
$self->{1512}->{2009} = { ARKV => 13, ARRV => 15, ARRP => -19.9, ARU1 => 0.6, ARU2 => 0.07, ARU3 => 0.1, ARST => 2, ARPL => -25 };
$self->{1512}->{2010} = { ARKV => 13, ARRV => 15, ARRP => -19.9, ARU1 => 0.6, ARU2 => 0.07, ARU3 => 0.41, ARST => 2, ARPL => -25 };
$self->{1512}->{2011} = { ARKV => 13, ARRV => 15, ARRP => -19.9, ARU1 => 0.6, ARU2 => 0.14, ARU3 => 0, ARST => 2, ARPL => -25 };
$self->{1512}->{2012} = { ARKV => 13, ARRV => 15, ARRP => -19.9, ARU1 => 0.7, ARU2 => 0.14, ARU3 => 0.04, ARST => 2, ARPL => -25 };
# BKK futur:
$self->{1513}->{2007} = { QQKV => 13.9, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.6, ARU2 => 0.1, ARU3 => 0.0 };
$self->{1513}->{2008} = { QQKV => 14.1, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.2, ARU2 => 0.1, ARU3 => 0.0 };
# AOK Bayern:
$self->{1514}->{2011} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.6, ARU2 => 0.39, ARU3 => 0.0 };
$self->{1514}->{2012} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.6, ARU2 => 0.39, ARU3 => 0.04 };
# BKK Mobil Oil:
$self->{1515}->{2011} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 3.5, ARU2 => 0.36, ARU3 => 0.0 };
$self->{1515}->{2012} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 3.5, ARU2 => 0.36, ARU3 => 0.04 };
# BKK Siemens: ermaessigetr Beitrag f. Hans Parfuss
$self->{1516}->{2011} = { QQKV => 14.0, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.35, ARU2 => 0.21, ARU3 => 0.0 };
$self->{1516}->{2012} = { QQKV => 14.0, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.35, ARU2 => 0.28, ARU3 => 0.04 };
# Techniker KK:
$self->{1517}->{2011} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.7, ARU2 => 0.3, ARU3 => 0.0 };
$self->{1517}->{2012} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 2.1, ARU2 => 0.39, ARU3 => 0.04 };
# Barmer GEK:
$self->{1518}->{2008} = { QQKV => 14.4, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.0, ARU2 => 0.15, ARU3 => 0.0 };
$self->{1518}->{2009} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.4, ARU2 => 0.22, ARU3 => 0.1 };
$self->{1518}->{2010} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.6, ARU2 => 0.1, ARU3 => 0.0 };
$self->{1518}->{2011} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.7, ARU2 => 0.33, ARU3 => 0.0 };
$self->{1518}->{2012} = { QQKV => 14.6, ANZU => -0.9, ANKI => -0.25, ARU1 => 1.7, ARU2 => 0.33, ARU3 => 0.04 };
# Angestellte:
my $a1512 = [0,1512,"-ARPV","-ANPV","-ARAV","-ANAV"]; # 400 Euro-Job
my $b1512 = [0,1512,"-ARPV","-ANPV","-ARAV","-ANAV","-ARKV","-ANKV","-ARRV","-ANRV",
"-ARU1","-ARU2","-ARU3","-ARST","ARPL"]; # kurzfristige Beschaeftigung
$self->{'PERSON'}->{etoo}->{2} = $b1512;
$self->{'PERSON'}->{jclaussnitzer}->{2} = $b1512;
$self->{'PERSON'}->{klaewer}->{2} = [0,1510,"ANZU","ANKI"]; # DAK Fuerth
$self->{'PERSON'}->{ckettner}->{2} = [0,1515,"ANZU","ANKI"]; # BKK Mobil Oil
$self->{'PERSON'}->{tjungblut}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{tjungblut}->{200810} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tjungblut}->{200811} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tjungblut}->{200812} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tjungblut}->{2009} = $a1512; # Knappschaft Essen
# $self->{'PERSON'}->{tjungblut}->{2009} = [9,1510,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"];
$self->{'PERSON'}->{tfelder}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{tfelder}->{200806} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200807} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200808} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200809} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200810} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200811} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200812} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200901} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{tfelder}->{200902} = [9,1510,"ANZU","ANKI"]; # DAK
$self->{'PERSON'}->{jengewald}->{2} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{arjasanow}->{2007} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{arjasanow}->{2008} = $b1512; # Knappschaft Essen
# $self->{'PERSON'}->{arjasanow}->{200810} = [9,1518,"ANZU"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200811} = [9,1518,"ANZU"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200812} = [9,1518,"ANZU"]; # Barmer EK normal
$self->{'PERSON'}->{arjasanow}->{200810} = [9,1518,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; # Barmer EK, Werkstudent
$self->{'PERSON'}->{arjasanow}->{200811} = [9,1518,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; # Barmer EK, Werkstudent
$self->{'PERSON'}->{arjasanow}->{200812} = [9,1518,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; # Barmer EK, Werkstudent
# $self->{'PERSON'}->{arjasanow}->{200901} = $b1512; # Knappschaft Essen kurzfristig
$self->{'PERSON'}->{arjasanow}->{2009} = [9,1518,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; # Barmer EK, Werkstudent
# $self->{'PERSON'}->{arjasanow}->{200901} = [9,1518,"ANZU"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200902} = [9,1518,"ANZU"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200903} = [9,1518,"ANZU"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200904} = [9,1518,"ANZU"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200905} = [9,1518,"ANZU","ANKI"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200906} = [9,1518,"ANZU","ANKI"]; # Barmer EK normal
# $self->{'PERSON'}->{arjasanow}->{200907} = [9,1518,"ANZU","ANKI"]; # Barmer EK normal
$self->{'PERSON'}->{arjasanow}->{2010} = [9,1518,"ANZU","ANKI"]; # Barmer EK normal
$self->{'PERSON'}->{arjasanow}->{2011} = [9,1518,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; # Barmer EK
$self->{'PERSON'}->{arjasanow}->{2012} = [9,1518,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; # Barmer EK
$self->{'PERSON'}->{jkoch}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{wkapraun}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{dblaesche}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{wsarhan}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{mweber}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{hzaazou}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{stockbauer}->{2} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{oppenl}->{200710} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{oppenl}->{200711} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{oppenl}->{2} = [8,1513,"ANZU","ANKI"]; # BKK futur
$self->{'PERSON'}->{tkinzl}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{tkinzl}->{200810} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{tkinzl}->{200811} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{tkinzl}->{200812} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{jkaiser}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{klangschwager}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{ashawky}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{hmaamoun}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{ukrohn}->{2} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{sgeier}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{cnawrot}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{hmaamoun}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{jschuladen}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{tkinzl}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{mtruemper}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{dkullick}->{2} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{srodenberg}->{2} = $b1512; # Knappschaft Essen
$self->{'PERSON'}->{jengewald}->{2} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{ddienlin}->{2011} = $a1512; # Knappschaft Essen
$self->{'PERSON'}->{ddienlin}->{201111} = [0,1514,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; #
$self->{'PERSON'}->{ddienlin}->{201112} = [0,1514,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; #
$self->{'PERSON'}->{ddienlin}->{2012} = [0,1514,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; #
$self->{'PERSON'}->{ccsengery}->{2} = $a1512; #
$self->{'PERSON'}->{dperic}->{2} = [8,1517,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; #
$self->{'PERSON'}->{hparfuss}->{2} = [0,1516,"-ANRV","-ANAV","ANZU","ANKI"]; # BKK Siemens
$self->{'PERSON'}->{jfriedrichs}->{2} = $a1512; #
$self->{'PERSON'}->{mherrschel}->{2} = $a1512; #
$self->{'PERSON'}->{jkleckow}->{2} = [0,1515,"-ARKV","-ARPV","-ARAV","-ANKV","-ANPV","-ANAV"]; #
$self->{'PERSON'}->{cgabriel}->{2} = [8,1518]; #
return($self);
}
#***********************************************************************************
sub run {
my $self = shift;
my $file = shift;
open(FFILE,"<".$file);
my $text = join("",<FFILE>);
close(FFILE);
return(0) if ($text !~ /^(.*?)\, +Konto +(.*?) +\(/);
$buchhaltung = $1;
$konto = $2;
if ($buchhaltung =~ /(\d\d\d\d)$/) {
$jahr = $1;
}
my $o = ""; my $rule = ""; my $o1;
# Parsen der Rohdaten:
if ($konto eq "10-1202") { $rule = 'kto/sync_sparkasse_ift_' . $jahr; }
if ($konto eq "10-1200") { $rule = 'kto/sync_commerzbank_christian_' . $jahr; }
if ($konto eq "10-1208") { $rule = 'kto/sync_commerzbank_dani_' . $jahr; }
if ($konto eq "10-1207") { $rule = 'kto/sync_sparkasse_dornbirn_' . $jahr; }
if ($konto eq "10-1203") { $rule = 'kto/sync_consors_' . $jahr; }
if ($konto eq "10-7500-cgabriel") { $rule = 'kto/sync_kasse_ift_' . $jahr; }
if ($konto eq "10-1500") { $o = "---INSERT---\n"; }
# if ($konto eq "10-1500") { $rule = 'kto/sync_sozialversicherung_' . $jahr; }
foreach $o1 ("","a","b","c","d","e","f","g","h","i","j","k",
"_01","_02","_03","_04","_05","_06","_07","_08","_09","_10","_11","_12") {
next if (!(-f("$rule$o1.csv")));
system("xcv1 utf $rule$o1.csv");
open(FFILE,"<$rule$o1.csv");
$o = $o . "\n" . join("",<FFILE>);
close(FFILE);
}
$o =~ s/
//gs;
#print "XXX: $o\n"; sleep 10;
if ($text =~ s/ADDUST//g) {
$text =~ s/ qq/ \+\+qq/gs;
$text =~ s/ qw/ \+\-qw/gs;
while ($text =~ s/\n([^\n]*?)(7|19) v\.H\.([^\n]*?)\(([^\n]*?)\)([^\n]*?)\n/\n/gs) { 1; }
open(FFILE,">".$file);
print FFILE $text;
close(FFILE);
return(1);
}
return(0) if ($text !~ s/RULE/$o/); # Einsetzen der Rohdaten in das Konto
if ($konto eq "10-1202") { $text = $self->render_sparkasse($text); }
if ($konto eq "10-1200") { $text = $self->render_commerzbank($text); }
if ($konto eq "10-1208") { $text = $self->render_commerzbank($text); }
if ($konto eq "10-1207") { $text = $self->render_dornbirn($text); }
if ($konto eq "10-1203") { $text = $self->render_consors($text); }
if ($konto eq "10-7500-cgabriel") { $text = $self->render_kasse(0,$text); }
if ($konto eq "10-1500") { $text = $self->render_beitraege($text); }
# Zuordnen der Konten:
my $text1 = "";
foreach $o (split(/\n/,$text)) {
if ($o =~ /(\d\d\d\d\d\d\d\d) +(\-?\d+\.\d\d) +(.*?) +(.*?) +(\-?\d+\.\d\d) +(.*?)$/) {
$bdatum = $1;
$betrag = $2;
$kto1 = $3;
$kto2 = $4;
$rem = $6;
$zeile = $o;
$o = $self->chkto();
}
$text1 = $text1 . $o . "\n";
}
$text = "";
my $b = {};
foreach $o (reverse split(/\n/,$text1)) {
if ($o =~ /^(\d\d\d\d\d\d\d\d) +(\-?\d+\.\d\d) +(.*?) +(.*?) +(\-?\d+\.\d\d) +(.*?)\s*$/) {
$bdatum = $1;
$betrag = $2;
$kto1 = $3;
$kto2 = $4;
$rem = $6;
$zeile = $o;
$rem =~ s/^\s*(.*?)\s*$/$1/;
# $rem =~ s/^qq//;
if ($rem =~ /^Saldovortrag/) {
$text = $o . "\n" . $text;
} else {
if ($kto1 =~ /^\-/) {
$kto1 = $konto . $kto1;
}
$b->{"$bdatum $kto1 $betrag $rem"} = $zeile; # Schluessel zum Identifizieren der Buchungen
$text = "---INSERT---\n" . $text;
}
} else {
$text = $o . "\n" . $text;
}
}
$text1 = "";
# open(FFILE,">yyy.txt");
foreach $o (sort keys %$b) {
#print FFILE "XX: $o --\n";
$text1 = $text1 . $b->{$o} . "\n";
}
# close(FFILE);
$text =~ s/---INSERT---/$text1/;
$text =~ s/---INSERT---\n//gs;
open(FFILE,">".$file);
print FFILE $text;
close(FFILE);
}
#*******************************************************************************************
sub render_kasse {
my $self = shift;
my $mode = shift;
my $text = shift;
my $o; my $o1; my $o2; my $o3; my @ee; my $zeile; my $zeile1;
my $text1 = "";
while ($text =~ s/\n(\d\d\d\d\d\d\d\d\;.*?)\n/\n---INSERT---\n/s) {
$o = $1;
$o =~ s/[\,\; ]+$//;
$o =~ s/\"\;\"/ /gs;
$o =~ s/\"//gs;
$o =~ s/\;\+\+/\;qq/;
$o =~ s/\;\+\-/\;qw/;
next if ($o !~ /^(\d\d\d\d\d\d\d\d)\;(.*?)\;(.*)$/);
$o1 = $1; $o2 = $2; $o3 = $3;
$o2 =~ s/,/\./;
if ($mode == 1) {
1;
} else {
$text1 = $text1 . "$o1 -$o2 10-7500-cgabriel 13-9999 0.00 $o3\n";
}
}
$text =~ s/\n---INSERT---\n/$text1/s;
$text =~ s/---INSERT---\n//gs;
return($text);
}
#*******************************************************************************************
sub render_dornbirn {
my $self = shift;
my $text = shift;
my $o; my $o1; my @ee; my $zeile; my $zeile1;
my $text1 = "";
while ($text =~ s/\n\"(.*?)\"\n/\n---INSERT---\n/s) {
$o = $1;
$o =~ s/\"\;\"/ /gs;
$o =~ s/\"//gs;
next if ($o =~ /^\*/);
next if ($o !~ /^(.*?)\s+(\d\d)\.(\d\d)\.(\d\d\d\d)\s+(.+)\,(\d+)/);
next if ("$5.$6" eq "0.00");
$o1 = "$4$3$2 $5.$6 - 13-9999 0.00 $1\n";
$text1 = $text1 . $o1;
}
$text =~ s/\n---INSERT---\n/$text1/s;
$text =~ s/---INSERT---\n//gs;
return($text);
}
#*******************************************************************************************
sub render_consors {
my $self = shift;
my $text = shift;
my $o; my $o1; my @ee; my $zeile; my $zeile1;
my $text1 = "\n";
while ($text =~ s/\n(\d\d\.\d\d\.\d\d\d\d\;.*?)\n/\n---INSERT---\n/s) {
$o = $1;
@ee = split(/\;/,$o);
$ee[5] =~ s/\.//gs;
$ee[5] =~ s/\,/./gs;
$ee[5] =~ s/\+//gs;
$ee[4] = $ee[2] . " " . $ee[3] . " " . $ee[4];
$ee[0] =~ s/^(\d+)\.(\d+)\.(\d+)$/$3$2$1/;
$ee[1] =~ /^(.*)\.(.*)$/;
$zeile1 = $ee[0] . " " . $ee[5] . " - " . "13-9999" . " 0.00 " . $ee[4] . "\n";
$text1 = $text1 . $zeile1;
}
$text =~ s/\n---INSERT---\n/$text1/s;
$text =~ s/---INSERT---\n//gs;
return($text);
}
#*******************************************************************************************
sub render_sparkasse {
my $self = shift;
my $text = shift;
my $o; my $o1; my @ee; my $zeile; my $zeile1;
my $text1 = "\n";
while ($text =~ s/\n\"(.*?)\"\n/\n---INSERT---\n/s) {
$text1 = $text1 . $1 . "\n";
}
$text1 =~ s/\"//gs;
while ($text1 =~ s/\n(.*?)\;LASTSCHRIFT(.*?)(218\/129)(.*?)(UMS\.ST|LOHNST|LKST\.RK) +(.*?)(\d+) +([\d\.]+,\d+)/\n$1\;LASTSCHRIFT$2$3$4/) {
$text1 = $text1 . $1 . ";LASTSCHRIFT" . $2 . $3 . $4 . $5 . " " . $6 . $7 .
";FINANZAMT FUERTH;76201500;76000000;-"."---BETRAG---;EUR;Umsatz gebucht\n";
$o1 = $8;
$o1 =~ s/\.//gs;
$text1 =~ s/---BETRAG---/$o1/;
}
# print $text1; exit;
my $text2 = "\n";
foreach $zeile (split(/\n/,$text1)) {
next if ($zeile =~ /\;STEUERNR\. +218\/129\/10296 +\;/);
@ee = split(/\;/,$zeile);
$ee[8] =~ s/\,/./gs;
next if ($ee[8] * 1 == 0);
$ee[4] = $ee[3] . " " . $ee[4] . " " . $ee[5] . " " . $ee[6] . " " . $ee[7];
next if ($ee[2] !~ /^(.*)\.(.*)\.(.*)$/);
$zeile1 = "20" . $3 . $2 . $1 . " " . $ee[8] . " - " . "13-9999" . " 0.00 " . $ee[4] . "\n";
print $zeile . "\n";
# next if (substr($zeile,0,4) ne $jahr);
$text2 = $text2 . $zeile1;
}
$text =~ s/\n---INSERT---\n/$text2/s;
$text =~ s/---INSERT---\n//gs;
return($text);
}
#*******************************************************************************************
sub render_commerzbank {
my $self = shift;
my $text = shift;
my $o; my $o1; my @ee; my $zeile; my $zeile1; my $text2; my $zaehler; my $o2; my $o3;
my $text1 = "";
if ($text =~ s/^(.*?)(\<html\>.*\<\/html>)(.*)$/$1---INSERT---\n$3/s) {
$text1 = $2;
}
while ($text1 =~ s/^(.*)(\<title\>commerzbanking.*?Zeitpunkt des letzten)(.*)$/$1\n$3/s) { 1; }
$text1 =~ s/\<br\>/ /gsi;
$zaehler = 0;
my $text2 = "\n";
while ($text1 =~ s/tablehead1\"\>(.+?)\<\/span//) {
$o = $1;
$zaehler = $zaehler + 1;
if ($zaehler == 1) {
$o1 = $o;
$o1 =~ s/^(\d+)\.(\d+)\.(\d+)/$3$2$1/;
}
elsif ($zaehler == 2) {
$o2 = $o;
$o2 =~ s/\<BR\>/ /g;
}
elsif ($zaehler == 3) {
$zaehler = 0;
if ($text1 =~ s/class\=\"(green|red|number)\"\>(.+?)\<\/span//s) {
$o3 = $2;
$o3 =~ s/\.//gs;
$o3 =~ s/\+//gs;
$o3 =~ s/\,/\./gs;
if ($o3 =~ s/\-//gs) { $o3 = "-" . $o3; }
}
$zeile = $o1 . " " . $o3 . " - " . "13-9999" . " 0.00 " . $o2 . "\n";
$text2 = $text2 . $zeile;
}
}
$text =~ s/\n---INSERT---\n/$text2/s;
return($text);
}
#*******************************************************************************************
sub render_beitraege {
my $self = shift;
my $text1 = shift;
my $jahr1; my $monat1; my $tag1; my $datum1; my $betrag; my $person; my $kasse;
my $anteile; my $art; my $o1; my $o2; my $o3; my $betrag9;
my $faktor = { 2007 => 0.7673, 2008 => 0.7732,
2009 => 0.7472, 2010 => 0.7585,
2011 => 0.7435, 2012 => 0.7491 }; # Gleitzonenfaktor
my $text = "";
foreach $zeile (split(/\n/,$text1)) {
next if ($zeile =~ /^\d\d\d\d\d\d\d\d/ and
$zeile !~ /(Saldovortrag|Korrektur)/ and
$zeile !~ /\-(LOHN|LOHNG|SOND|ZAHL|LST)/);
$text = $text . $zeile . "\n";
}
$text1 = "\n";
foreach $zeile (split(/\n/,$text)) {
#print "ZZ: $zeile\n"; sleep 1;
next if ($zeile !~ /^(\d\d\d\d)(\d\d)(\d\d) +(\S+) +(\-AN\-)([a-z]+)\-(LOHN|LOHNG|LST) /);
#print " -->: $zeile\n"; sleep 1;
$jahr1 = $1;
$monat1 = $2;
$tag1 = $3;
$datum1 = $1 . $2 . $3;
$betrag = $4;
$person = $6;
$art = $7;
$betrag = (-0.01) * $betrag;
$kasse = $self->{'PERSON'}->{$person}->{2};
if ($self->{'PERSON'}->{$person}->{$jahr1}) { $kasse = $self->{'PERSON'}->{$person}->{$jahr1}; }
if ($self->{'PERSON'}->{$person}->{$jahr1.$monat1}) { $kasse = $self->{'PERSON'}->{$person}->{$jahr1.$monat1}; }
if (!$kasse) { print "Krankenkasse fehlt fuer $person\n"; sleep 5; }
$kasse = [@$kasse];
if ($art eq "LST") { # Berechnung der abgeleiteten Betraege fuer Soli und KiSteuer
$jahr1 = substr($jahr1,2);
$o1 = -5.5 * $betrag - 0.004999; # Soli
if (abs($betrag) < 0.81) { $o1 = 0; }
$o2 = (-1) * $kasse->[0] * $betrag - 0.004999; # Kirchensteuer
$text1 = $text1 . "$datum1 " . sprintf("%8.2f",$o1) . " -AN-" . $person .
"-SZ 10-1381-$jahr1-AN-$person 0.00 Soli\n";
$text1 = $text1 . "$datum1 " . sprintf("%8.2f",$o2) . " -AN-" . $person .
"-KS 10-1385-$jahr1-AN-$person 0.00 Kirchensteuer\n" if ($kasse->[0] > 0);
}
next if ($art eq "LST");
shift(@$kasse);
$o1 = $self->{1500}->{$jahr1}; # Allgemeine Anteile berechnen
if ($self->{1500}->{$jahr1.$monat1}) {
$o1 = $self->{1500}->{$jahr1.$monat1};
}
$o2 = $self->{$kasse->[0]}->{$jahr1}; # Saetze der Kassen:
if ($self->{$kasse->[0]}->{$jahr1.$monat1}) {
$o2 = $self->{$kasse->[0]}->{$jahr1.$monat1};
}
$anteile = {%$o1,%$o2};
foreach $o1 (keys %$anteile) {
if ($o1 =~ /^QQ/) {
if ( $anteile->{'AR'.substr($o1,2,2)} == 0
and $anteile->{'AN'.substr($o1,2,2)} == 0 ) {
$anteile->{'AN'.substr($o1,2,2)} = $anteile->{$o1}/2;
$anteile->{'AR'.substr($o1,2,2)} = $anteile->{$o1}/2;
}
# else {
delete ($anteile->{$o1});
# }
}
}
foreach $o1 (@$kasse) {
if ($o1 =~ s/^\-//) { delete ($anteile->{$o1}); # explizit abgezogene Anteile
$o1 =~ s/AR/QQ/; delete ($anteile->{$o1}); } # print "QQ: $o1\n"; sleep 1;}
elsif ($anteile->{$o1} < 0) { $anteile->{$o1} = (-1) * $anteile->{$o1}; } # explizit gegebene Anteile
}
my $ankv; my $anpv;
foreach $o1 (keys %$anteile) {
if ($o1 =~ /^ARPL$/) { $o2 = "10-" . "1380" . "-" . substr($jahr1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^(AR|QQ)/){ $o2 = "10-" . $kasse->[0] . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^ANLS$/) { $o2 = "10-" . "1380" . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^ANSZ$/) { $o2 = "10-" . "1381" . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^ANKS$/) { $o2 = "10-" . "1385" . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^AN/) { $o2 = "10-" . $kasse->[0] . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
$o2 =~ s/QQ/AR/;
$o3 = $anteile->{$o1} * $betrag + 0.00001;
next if ($o3 < 0);
# if ($o1 =~ s/^QQ//) {
# $o3 = $o3 - ($anteile->{"AN".$o1} * $betrag); # - 0.000001;
# $o3 = $o3; # + 0.004998 if ($o1 !~ /(ZU|KI)/); # Korrektur wg. Rundungsfehlern
# $o1 = "AR" . $o1;
# }
# Gleitzone:
# print "BB: $betrag $person $o1\n"; sleep 1;
if ($art eq "LOHNG") {
if ($betrag > 0 and $betrag < 8 and $o1 =~ /^(ANRV|ANPV|ANAV|ANKV|ANKI|ANZU|ARU1|ARU2|ARU3)/) {
$betrag9 = ($faktor->{$jahr} * 400) + (2 - $faktor->{$jahr}) * (100*$betrag - 400);
if ($betrag < 4) {
$betrag9 = ($faktor->{$jahr}) * 100 * $betrag;
}
# print "II: $betrag9 $betrag\n"; sleep 1;
if ($o1 =~ /^(ANKI|ANZU|ARU1|ARU2|ARU3)$/) {
$o3 = $o3 - $o3 * 1 * (1 - $betrag9/(100*$betrag));
} else {
$o3 = $o3 - $o3 * 2 * (1 - $betrag9/(100*$betrag));
}
}
}
if ($o1 =~ /(ANZU|ANKV)/) {
if ($ankv) { $o1 = "ANKV"; $o3 = $o3 + $ankv; $ankv = 0; }
else { $ankv = $o3; next; }
}
if ($o1 =~ /(ANKI|ANPV)/) {
if ($anpv) { $o1 = "ANPV"; $o3 = $o3 + $anpv; $anpv = 0; }
else { $anpv = $o3; next; }
}
$text1 = $text1 . $datum1 . " " . sprintf("%8.6f",$o3);
if ($o1 eq "ARPL") {
$text1 = $text1 . " -PL-" . $person;
} else {
$text1 = $text1 . " -" . substr($o1,0,2) . "-" . $person . "-" . substr($o1,2);
}
$text1 = $text1 . " " . $o2 . " 0.00 " . substr($o1,0,2) . "-Anteil ";
$o2 = substr($o1,2);
if ($o2 eq "U1") { $o2 = "Umlage 1"; }
elsif ($o2 eq "U2") { $o2 = "Umlage 2"; }
elsif ($o2 eq "U3") { $o2 = "Insolvenz-Umlage"; }
elsif ($o2 eq "LS") { $o2 = "Lohnsteuer"; }
elsif ($o2 eq "SZ") { $o2 = "Soli"; }
elsif ($o2 eq "KS") { $o2 = "Kirchensteuer"; }
elsif ($o2 eq "PL") { $o2 = "Pauschale Lohnsteuer"; }
$text1 = $text1 . $o2 . "\n";
}
}
$text =~ s/\n---INSERT---\n/$text1/s;
$text =~ s/---INSERT---\n//gs;
return($text);
}
#*******************************************************************************************
sub render_lohn {
my $self = shift;
my $text = shift;
my $o; my $o1; my @ee; my $zeile; my $zeile1; my $b; my $entry1;
my $datum; my $jahr1; my $person; my $betrag; my $kasse; my $entry;
my $k = {};
$k->{klaewer} = "1510"; # DAK Fuerth
$k->{ckettner} = "1515"; # BKK Mobil Oil
$k->{tjungblut} = "1512"; # Knappschaft Essen
$k->{tfelder} = "1512"; # Knappschaft Essen
$k->{jengewald} = "1512"; # Knappschaft Essen
$k->{arjasanow} = "1518"; # Barmer EK
$k->{jkoch} = "1512"; # Knappschaft Essen
$k->{wkapraun} = "1512"; # Knappschaft Essen
$k->{dblaesche} = "1512"; # Knappschaft Essen
$k->{wsarhan} = "1512"; # Knappschaft Essen
$k->{mweber} = "1512"; # Knappschaft Essen
$k->{hzaazou} = "1512"; # Knappschaft Essen
$k->{stockbauer} = "1512"; # Knappschaft Essen
$k->{oppenl} = "1513"; # BKK futur
$k->{tkinzl} = "1512"; # Knappschaft Essen
$k->{jkaiser} = "1512"; # Knappschaft Essen
$k->{klangschwager} = "1512"; # Knappschaft Essen
$k->{ashawky} = "1512"; # Knappschaft Essen
$k->{hmaamoun} = "1512"; # Knappschaft Essen
$k->{ukrohn} = "1512"; # Knappschaft Essen
$k->{cnawrot} = "1512"; # Knappschaft Essen
$k->{hmaamoun} = "1512"; # Knappschaft Essen
$k->{jschuladen} = "1512"; # Knappschaft Essen
$k->{tkinzl} = "1512"; # Knappschaft Essen
$k->{mtruemper} = "1512"; # Knappschaft Essen
$k->{dkullick} = "1512"; # Knappschaft Essen
$k->{srodenberg} = "1512"; # Knappschaft Essen
$k->{jengewald} = "1512"; # Knappschaft Essen
$k->{ddienlin} = "1514"; # AOK Bayern
$k->{ccsengery} = "1599"; #
$k->{dperic} = "1517"; # Techniker KK
$k->{hparfuss} = "1516"; # BKK Siemens
$k->{jfriedrichs} = "1599"; #
$k->{mherrschel} = "1599"; #
$k->{jkleckow} = "1515"; # BKK Mobil Oil
my $text1 = "\n";
while ($text =~ s/\n(\d\d\d\d\d\d [a-z].*?)\n/\n---INSERT---\n/s) {
$text1 = $text1 . $1 . "\n";
}
my $text2 = "\n";
foreach $zeile (split(/\n/,$text1)) {
next if ($zeile !~ /^(\d\d)(\d\d)(\d\d) +(\S+) +(.*)$/);
$datum = $1 . $2 . $3;
$jahr1 = $2;
$person = $4;
$betrag = $5;
$b = {};
$kasse = $k->{$person} || "1599";
$o1 = 1;
while ($betrag =~ s/([A-Z]+)\: *([p0-9\.]+)//) {
$b->{$1} = $2;
}
foreach $o (keys %$b) {
if ($b->{$o} == 0) { delete($b->{$o}); next; }
if ($o ne "L" and $o ne "LP") { $o1 = 0; }
}
if ($o1) { if (!($b->{'LP'})) { $b->{'LP'} = "p"; } }
if ($b->{'LP'} eq "p") { $b->{'LP'} = 0.25 * $b->{'L'}; }
foreach $o (keys %$b) {
$b->{$o} = sprintf("%3.2f",$b->{$o});
$entry = $datum . "15 " if ($o eq "L");
$entry = $datum . "15 " if ($o ne "L");
$entry = $entry . "-" if ($o eq "L" or $o eq "S");
$entry = $entry . $b->{$o} . " ";
$entry1 = "";
$entry1 = $entry . "10-1500-$person-LOHN 13-6000-$person 0.00 Brutto-Lohn" if ($o eq "L");
$entry1 = $entry . "10-1500-$person-SOND 13-6000-$person 0.00 Sonderzahlung" if ($o eq "S");
$entry1 = $entry . "10-1500-$person-LST 10-1380-$jahr1-$person 0.00 Lohnsteuer" if ($o eq "LST");
$entry1 = $entry . "10-1500-$person-KST 10-1385-$jahr1-$person 0.00 Kirchensteuer" if ($o eq "KST");
$entry1 = $entry . "10-1500-$person-SZ 10-1381-$jahr1-$person 0.00 Soli" if ($o eq "SZ");
$entry1 = $entry . "10-1500-$person-KV 10-$kasse-$person 0.00 KV-Beitrag" if ($o eq "KV");
$entry1 = $entry . "10-1500-$person-PV 10-$kasse-$person 0.00 PV-Beitrag" if ($o eq "PV");
$entry1 = $entry . "10-1500-$person-RV 10-$kasse-$person 0.00 RV-Beitrag" if ($o eq "RV");
$entry1 = $entry . "10-1500-$person-AV 10-$kasse-$person 0.00 AV-Beitrag" if ($o eq "AV");
$entry1 = $entry . "13-6010-$person 10-$kasse-$person 0.00 SV AG-Anteil" if ($o eq "AG");
$entry1 = $entry . "13-6011-$person 10-1380-$jahr1-$person 0.00 Pauschale Lohnsteuer" if ($o eq "LP");
$text2 = $text2 . $entry1 . "\n" if ($entry1);
}
}
$text =~ s/\n---INSERT---\n/$text2/s;
$text =~ s/---INSERT---\n//gs;
return($text);
}
#*******************************************************************************************
sub chkto {
my $self = shift;
$bdatum1 = "";
$betrag1 = "";
$kto11 = "";
$kto21 = "";
$rem1 = "";
if ($buchhaltung =~ /^gmbh/) { $self->chkto_gmbh(); }
if ($buchhaltung =~ /^privat/) { $self->chkto_privat(); }
if ($bdatum1) { $bdatum = $bdatum1; $zeile = ""; }
if ($betrag1) { $betrag = $betrag1; $zeile = ""; }
if ($kto11) { $kto1 = $kto11; $zeile = ""; }
if ($kto21) { $kto2 = $kto21; $zeile = ""; }
if ($rem1) { $rem = $rem1; $zeile = ""; }
$zeile = "$bdatum $betrag $kto1 $kto2 0.00 $rem" if (!$zeile);
return($zeile);
}
1;