Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

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
Upload File :
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;

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net