
| 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/IfTRenderer.pm |
package Application::IfTRenderer;
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 new { return({},shift) }
#*******************************************************************************************
sub render_kasse {
my $self = shift;
my $text = shift;
my $mode = shift;
my $person = shift;
my $o; my $o1; my $o2; my $o3; my @ee; my $zeile; my $zeile1; my $p1;
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/,/\./;
$o2 = sprintf("%3.2f",$o2);
$p1 = "cgabriel";
if ($o3 =~ /(mherrschel|tjungblut|arjasanow|ccsengery|ddienlin)/) {
$p1 = $1;
} else {
$p1 = "mherrschel" if ($o3 =~ /Copy/);
}
# print "XX: $person $p1 $o3\n"; sleep 1;
next if ($p1 ne $person);
if ($mode == 1) {
1;
} else {
$text1 = $text1 . "$o1 -"."$o2 - 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);
my $nr = $#ee;
$ee[$nr] =~ s/\.//gs;
$ee[$nr] =~ s/\,/./gs;
$ee[$nr] =~ s/\+//gs;
$ee[4] = join(" ",@ee[2..($nr-1)]);
$ee[0] =~ s/^(\d+)\.(\d+)\.(\d+)$/$3$2$1/;
$ee[1] =~ /^(.*)\.(.*)$/;
$zeile1 = $ee[0] . " " . $ee[$nr] . " - " . "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; # Betrag
next if ($ee[8] * 1 == 0);
$ee[4] = $ee[3] . " " . $ee[4] . " " . $ee[5] . " " . $ee[6] . " " . $ee[7]; # Bemerkungsfeld
next if ($ee[2] !~ /^(.*)\.(.*)\.(.*)$/); # Datumsfeld
$zeile1 = "20" . $3 . $2 . $1 . " " . $ee[8] . "...T...-...T..." . "13-9999" .
"...T...0.00...T..." . $ee[4] . "\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_schillai_pinnow {
my $self = shift;
my $text = shift;
my $o; my $o1; my @ee; my $zeile; my $zeile1;
my $text1 = "\n";
$text =~ s/\n\"(.*?)\n/\n/gs;
while ($text =~ s/\n(\d+,\d+\;\"[^\n]*?)\"\n/\n---INSERT---\n/s) {
$text1 = $text1 . $1 . "\n";
}
my $text2 = "\n";
foreach $zeile (split(/\n/,$text1)) {
@ee = split(/\;/,$zeile);
$ee[6] =~ s/\,/./gs; # Betrag
# next if ($ee[6] * 1 == 0);
$ee[13] = $ee[12] . " " . $ee[13] . " " . $ee[14] . " " . $ee[15] . " " . $ee[16] .
" " . $ee[29] . " " . $ee[30] . " " . $ee[31] . " " . $ee[32];
$ee[13] = $ee[13] . ", von Kto " . $ee[2] . "-" . $ee[3] . ", " . $ee[4] if ($ee[2] =~ /[^\"]/); # Bemerkungsfeld
$ee[13] =~ s/\&/u./g;
$ee[13] =~ s/\"//g;
$ee[13] =~ s/ +/ /g;
$ee[13] =~ s/\-\-+/\--/g;
# print "Z: $ee[26]\n";
next if ($ee[26] !~ /^(.*)\.(.*)\.\d\d(.*)$/); # Datumsfeld
$zeile1 = "20" . $3 . sprintf("%02u",$2) .
sprintf("%02u",$1) . " " . $ee[6] . "...T...-...T..." . "13-9999" .
"...T...0.00...T..." . $ee[13] . "\n";
next if ($zeile1 =~ /Information zur Abrechnung/);
next if ($zeile1 =~ /brechnung.*Kontostand/);
# 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_abschreibungen {
my $self = shift;
my $text = shift;
my $o; my $o1; my $position; my $restwert;
my $jh; my $year; my $year1; my $anschaffung; my $halbjahr;
my $afazeitraum; my $schon_abgeschrieben; my $kaufwert;
my $abschreibung; my $anteil; my $restanteil; my $year0;
my $text1 = "";
if ($text =~ /^(.*?)(\d\d)(\d\d)/) {
$jh = $2; # Jahrhundert
$year = $3; # Jahr
$year1 = $year + 1;
$year0 = sprintf("%4u",$jh * 100 + $year - 1);
} else {
return($text);
}
while ($text =~ s/\n$year0([^\n]*?)\n/\n/s) { 1; }
# while ($text =~ s/\n$jh$year([^\n]*?)Abschreibung \(([^\n]*?)\n/\n/s) { 1; }
# print "TT: $year0 $text\n"; sleep 30;
while ($text =~ s/\n10\-0201\-(\S+) +(\-?\d+\.\d+)//s) {
$position = $1;
$restwert = $2;
$o1 = "";
$o1 = $jh . $year . "0101 0.00 -"."$position 11-1805 0.00 Saldovortrag\n"
if ($position =~ /^(\d\d)(\d)\_1\_(.*)$/ and $text =~ /$position/);
while ($text =~ s/\n10\-0201\-$position +(\-?\d+\.\d+)//s) {
$o = $1;
$o1 = $jh . $year . "0101 0.00 -"."$position 11-1805 0.00 Saldovortrag\n" if ($o > 0);
if ($o < $restwert) {
$restwert = $o;
}
}
if ($restwert <= 0) {
while ($text =~ s/\n$jh$year([^\n]*?) \-$position ([^\n]*?)Saldovortrag([^\n]*?)\n/\n/s) { 1; }
}
if ($text !~ /$jh$year([^\n]*?) \-$position ([^\n]*) Saldovortrag/) {
$text1 = $text1 . $o1;
}
# if ($position =~ /8.*sammel/) { print "RRR: $restwert \n"; sleep 30 }
if ($text =~ s/\n(\d\d)(\d\d)12\d\d +(\-?\d+\.\d+) +\-$position +\S+ +\d+\.\d+ +Abschreibung(.*?)\n/\n/s) {
$restwert = $3 - $restwert;
$restwert = (-1) * $restwert;
$year1 = $year + 1;
}
if ($position =~ /^(\d\d)(.)\_(\d+)\_(.*)$/) {
$anschaffung = $1;
$halbjahr = $2;
$afazeitraum = $3;
# if ($halbjahr < 3) { $halbjahr = 0 } else { $halbjahr = 0.5 }
if ($halbjahr eq "A") { $halbjahr = 10; }
if ($halbjahr eq "B") { $halbjahr = 11; }
if ($halbjahr eq "C") { $halbjahr = 12; }
$halbjahr = ($halbjahr - 1) / 12;
$anschaffung = $anschaffung + $halbjahr; # Monat der Anschaffung
if ($anschaffung > $year1) { $year1 = $year1 + 100 }
$schon_abgeschrieben = ($year1 - $anschaffung - 1);
if ($schon_abgeschrieben < 0) { $schon_abgeschrieben = 0 }
$restanteil = sprintf("%3.2f",$afazeitraum - $schon_abgeschrieben);
$restanteil =~ s/^(.*?)(0*)$/$1/;
$restanteil =~ s/^(.*?)\.$/$1/;
if ($restanteil > 0 and $restwert > 0) {
$kaufwert = $restwert * $afazeitraum / $restanteil;
$kaufwert = sprintf("%3.2f",$kaufwert);
$anteil = "1"; # abzuschreibender Anteil
if ($year1 - $anschaffung < 1 and $afazeitraum > 1) { $anteil = (1 - $halbjahr) }
$abschreibung = sprintf("%3.2f", -$anteil * $kaufwert / $afazeitraum);
if ($restwert + $abschreibung < 1) { $abschreibung = - $restwert }
$anteil = sprintf("%3.2f",$anteil);
$anteil =~ s/^(.*?)(0*)$/$1/;
$anteil =~ s/^(.*?)\.$/$1/;
$text1 = $text1 . $jh . $year . "1231 "."$abschreibung -"."$position 13-6540 0.00 Abschreibung ($anteil".
"/" . "$afazeitraum von $restanteil"."/"."$afazeitraum, $kaufwert EUR)\n";
}
# print "$position $anschaffung $halbjahr $restwert $year1 $schon_abgeschrieben $kaufwert $abschreibung\n"; sleep 3;
}
}
# print $text . $text1; sleep 30;
$text = $text . $text1;
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|XAR|XPL)/);
$text = $text . $zeile . "\n";
}
$text1 = "\n";
foreach $zeile (split(/\n/,$text)) {
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 11-1381-$jahr1-AN-$person 0.00 Soli\n";
$text1 = $text1 . "$datum1 " . sprintf("%8.2f",$o2) . " -AN-" . $person .
"-KS 11-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 = "11-" . "1380" . "-" . substr($jahr1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^(AR|QQ)/){ $o2 = "11-" . $kasse->[0] . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^ANLS$/) { $o2 = "11-" . "1380" . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^ANSZ$/) { $o2 = "11-" . "1381" . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^ANKS$/) { $o2 = "11-" . "1385" . "-" . substr($o1,2) . "-" . substr($o1,0,2) . "-" . $person; }
elsif ($o1 =~ /^AN/) { $o2 = "11-" . $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 . "11-1500-$person-LOHN 13-6000-$person 0.00 Brutto-Lohn" if ($o eq "L");
$entry1 = $entry . "11-1500-$person-SOND 13-6000-$person 0.00 Sonderzahlung" if ($o eq "S");
$entry1 = $entry . "11-1500-$person-LST 11-1380-$jahr1-$person 0.00 Lohnsteuer" if ($o eq "LST");
$entry1 = $entry . "11-1500-$person-KST 11-1385-$jahr1-$person 0.00 Kirchensteuer" if ($o eq "KST");
$entry1 = $entry . "11-1500-$person-SZ 11-1381-$jahr1-$person 0.00 Soli" if ($o eq "SZ");
$entry1 = $entry . "11-1500-$person-KV 11-$kasse-$person 0.00 KV-Beitrag" if ($o eq "KV");
$entry1 = $entry . "11-1500-$person-PV 11-$kasse-$person 0.00 PV-Beitrag" if ($o eq "PV");
$entry1 = $entry . "11-1500-$person-RV 11-$kasse-$person 0.00 RV-Beitrag" if ($o eq "RV");
$entry1 = $entry . "11-1500-$person-AV 11-$kasse-$person 0.00 AV-Beitrag" if ($o eq "AV");
$entry1 = $entry . "13-6010-$person 11-$kasse-$person 0.00 SV AG-Anteil" if ($o eq "AG");
$entry1 = $entry . "13-6011-$person 11-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 render_infokto {
my $self = shift;
my $text = shift;
return("") if ($text !~ /gmbh(\d\d\d\d)/);
my $jahr = $1;
$text = <<'TEXT_ENDE';
XXXMM28 0.00 57-05-xxx1-Vor-07 79-1450 136282.43 1Vorsteuer__7vH {gmbhXXX:11-1571-xxx2}
XXXMM28 0.00 57-05-xxx1-Vor-19 79-1450 136282.43 2Vorsteuer_19vH {gmbhXXX:11-1575-xxx2}
XXXMM28 0.00 57-05-xxx1-Ums-07 79-1450 136282.43 3Umsatzsteuer__7vH {gmbhXXX:11-1771-xxx2}
XXXMM28 0.00 57-05-xxx1-Ums-19 79-1450 136282.43 4Umsatzsteuer_19vH {gmbhXXX:11-1775-xxx2}
TEXT_ENDE
my $text1 = <<'TEXT_ENDE';
57-05-xxx1 UMSATZSTEUERVORANMELDUNG_xxx3 0.00
57-05-xxx1-Vor Vorsteuer__xxx3 0.00
57-05-xxx1-Vor-07 Vorsteuer__7vH_xxx3 0.00
57-05-xxx1-Vor-19 Vorsteuer_19vH_xxx3 0.00
57-05-xxx1-Ums Umsatzsteuer__xxx3 0.00
57-05-xxx1-Ums-07 Umsatzsteuer__7vH_xxx3 0.00
57-05-xxx1-Ums-19 Umsatzsteuer_19vH_xxx3 0.00
TEXT_ENDE
my $o; my $s1; my $t1; my $o1; my $o2; my $o3; my $t2;
my $t = "";
my $s = "";
foreach $o (1,2,3,4,5,6,7,8,9,10,11,12) {
$t1 = $text;
$s1 = $text1;
$o1 = sprintf("%02u",$o);
$o2 = sprintf("%1u",$o);
if ($o2 == 10) { $o2 = "A"; }
if ($o2 == 11) { $o2 = "B"; }
if ($o2 == 12) { $o2 = "C"; }
$o3 = "";
if ($o == 1) { $o3 = "Januar"; }
if ($o == 2) { $o3 = "Februar"; }
if ($o == 3) { $o3 = "Maerz"; }
if ($o == 4) { $o3 = "April"; }
if ($o == 5) { $o3 = "Mai"; }
if ($o == 6) { $o3 = "Juni"; }
if ($o == 7) { $o3 = "Juli"; }
if ($o == 8) { $o3 = "August"; }
if ($o == 9) { $o3 = "September"; }
if ($o == 10) { $o3 = "Oktober"; }
if ($o == 11) { $o3 = "November"; }
if ($o == 12) { $o3 = "Dezember"; }
$t1 =~ s/xxx1/$o1/g;
$t1 =~ s/xxx2/$o2/g;
$t1 =~ s/xxx3/$o3/g;
$t1 =~ s/MM/$o1/g;
$s1 =~ s/MM/$o1/g;
$s1 =~ s/xxx3/$o3/g;
$s1 =~ s/xxx1/$o1/g;
$s1 =~ s/xxx2/$o2/g;
$t = $t . $t1;
$s = $s . $s1;
}
my $t0 = <<'TEXT_ENDE';
gmbh2007, Konto 57 (zur_Information)
XXX1231 0.00 57-01-0201 79-1400 0.00 100_Anlagen {gmbhXXX:10-0201}
XXX1231 0.00 57-01-1155 79-1400 0.00 102_Forderungen {gmbhXXX:10-7000}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-1202}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-1222}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-1232}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-1241}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-1242}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-1280}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-1281}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-2080}
XXX1231 0.00 57-01-1200 79-1400 0.00 104_Bankkonten {gmbhXXX:10-2081}
XXX1231 0.00 57-02-1300 79-1400 0.00 110_Kapitalruecklage {-(gmbhXXX:11-1805)}
XXX1231 0.00 57-02-1310 79-1400 0.00 112_Jahresueberschuss {gmbhXXX:15-1200}
XXX1231 0.00 57-02-1320 79-1400 0.00 114_Verbindlichkeiten {-(gmbhXXX:11)}
XXX1231 0.00 57-02-1320 79-1400 0.00 114_Verbindlichkeiten {-(gmbhXXX:15-1200)}
XXX1231 0.00 57-02-1320 79-1400 0.00 114_Verbindlichkeiten {gmbhXXX:11-1805}
XXX1232 0.00 57-03-1800 79-1410 0.00 120_Anfangsbestand {-(gmbhXXX:11-1805)}
XXX1232 0.00 57-03-1810 79-1410 0.00 122_Gewinn_vor_Steuern {-(gmbhXXX:11-9000)}
XXX1232 0.00 57-03-1813 79-1410 0.00 123_Koerperschaftsteuer {-(gmbhXXX:14-7603)}
XXX1232 0.00 57-03-1814 79-1410 0.00 124_Gewerbesteuer {-(gmbhXXX:14-7610)}
XXX1233 0.00 57-03-1815 79-1410 0.00 125_Ausschuettung {-(gmbhXXX:11-9002)}
XXX1232 0.00 57-03-1816 79-1410 0.00 126_Quellensteuer {-(gmbhXXX:14-7632)}
TEXT_ENDE
$text = $t0 . $t . "\n" . <<'TEXT_ENDE' . $t2;
57 zur_Information 0.00
57-01 Jahresabschluss_Summe_Aktiva 0.00
57-01-0201 A_II_Anlagen 0.00
57-01-1155 B_II_Forderungen 0.00
57-01-1200 B_IV_Bankkonten 0.00
57-02 Jahresabschluss_Summe_Passiva 0.00
57-02-1300 A_II_Kapitalruecklage__Anfangsbestand 0.00
57-02-1310 A_V_Jahres_ueberschuss_fehlbetrag 0.00
57-02-1320 C_Verbindlichkeiten 0.00
57-03 Endbestand 0.00
57-03-1800 Anfangsbestand 0.00
57-03-1810 Gewinn_vor_Steuern 0.00
57-03-1813 Koerperschaftsteuer 0.00
57-03-1814 Gewerbesteuer 0.00
57-03-1815 Ausschuettung 0.00
57-03-1816 Quellensteuer 0.00
57-03-1820 Endbestand 0.00
TEXT_ENDE
$text =~ s/XXX/$jahr/gs;
return($text);
}
1;