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/IB1.pm

package Application::IB;

use strict;
use Algorithm::Diff;
use Data::Dumper;

our $slash = "/";

#*****************************************************************

sub new {

   my $class        = shift;
   my $self         = {};
   $self->{'NAME'}  = shift;
   if (ref($class)) {
      my $obj = $class;
      $class  = ref($obj);
      $self->{'PARENT'} = $obj;
   }
   bless($self,$class);
   return($self);
   
}

#*****************************************************************

sub subfibu {  #  to overload

   my $self = shift;
   my $o; my $file; my @ee;

   if (!($self->{'FIBU'})) {
      $self->{'FIBU'} = [];
      opendir(DDIR,$self->{'NAME'});
      while (0 == 0) {
         $o = readdir(DDIR);
         last if (!$o);
         next if ($o =~ /^\./);
         next if ($o !~ /^(.*)\.kto$/);
         $file = $1;
         push(@ee,$file);
      }
      closedir(DIR);
      foreach $o (sort @ee) {
         push(@{$self->{'FIBU'}},$self->new($self->{'NAME'}."-".$o));
      }
   }
   return($self->{'FIBU'});
   
}

#*****************************************************************

sub buchungen {

   my $self = shift;
   my $text = shift;
   
   if ($text) {
      $self->{'BUCHLIST'} = $text;
      open(FFILE,">".$self->{'NAME'}.".kto");
      print FFILE $self->{'NAME'} . "\n";
      print FFILE $self->{'BUCHLIST'};
      print FFILE $self->{'KONTLIST'};
      close(FFILE);
      return($text);
   }
   
   open(FFILE,"<".$self->{'NAME'}.".kto");
   $text = join("",<FFILE>);
   close(FFILE);
   
   $text =~ s/^(.*?)\n//s;
   $text =~ s/(\d\d\d\d\d\d\d\d+) +(\S+) +(\S+) +(\S+) +(.+?) */$1,$2,$3,$4,$5\|/g;
   $text =~ s/(.*?),\-(.*?),(.*?),(.*?),(.+) */$1,$2,$4,$3,$5/g;
   $self->{'BUCHLIST'} = $text;
   $self->{'KONTLIST'} = "";
   if ($text =~ /^(.*)\|(.*?)\n(.*)$/s) {
      $self->{'BUCHLIST'} = $1 . $2 . "\n";
      $self->{'KONTLIST'} = $3;
      $self->{'BUCHLIST'} =~ s/\|//gs;
   }
   
   return($self->{'BUCHLIST'});
   
}

#******************************************************************

sub konten {

   my $self = shift;
   my $text = shift;
   if ($text) {
      $self->{'KONTLIST'} = $text;
   }
   return($self->{'KONTLIST'});
   
}
      
#******************************************************************

sub dump { 1; }

#******************************************************************

sub ch_kto {

   my $self  = shift;
   my $list0 = shift;
   my $list  = shift;
   
   my ($dellist,$addlist) = $self->compute_diff($list0,$list);
   
   $self->change_buchung($dellist,$addlist);
   
}


#******************************************************************
 
sub compute_diff {   #  compute a diff for changing the Buchungs-Liste

   my $self   = shift;
   my $list0  = shift;
   my $list   = shift;
   
   $list0 = [ sort { $self->sortbuchung($a) cmp $self->sortbuchung($b) }
                split(/\n/,$list0) ];
   $list  = [ sort { $self->sortbuchung($a) cmp $self->sortbuchung($b) }
                split(/\n/,$list) ];
   
   my $addlist = "";
   my $dellist = "";
   my $o; my $o1;
   
#   print Dumper ( Algorithm::Diff::diff( $list0,$list ) );  exit;
   
   foreach $o ( Algorithm::Diff::diff( $list0,$list ) ) {
      foreach $o1 (@$o) {
         if ($o1->[0] eq "+") {
            $addlist = $addlist . $o1->[2] . "\n";
         } else {
            $dellist = $dellist . $o1->[2] . "\n";
         }
      }
   }
  
   return($dellist,$addlist);

}

#*****************************************************************

sub change_buchung {

   my $self    = shift;
   my $dellist = shift;
   my $addlist = shift;

   return("") if (!$dellist and !$addlist);

   my $o    =  "," . $self->{'NAME'} . ":";
   $dellist =~ s/$o//g;
   $addlist =~ s/$o//g;
   
   my $newbuch = "";
   $newbuch = $self->buchungen();

   if ($dellist) {
      $o = $dellist;
      $o =~ s/(.*)\:(.*)//g;
      $o =~ s/(\n+)/\|/gs;
      $o = "(" . $o . ")";
      $newbuch =~ s/$o//gs;
      $newbuch =~ s/\n+/\n/gs;
   }
   
   if ($addlist) {
      $newbuch = $self->buchungen() if (!$newbuch);
      $newbuch = join("\n", sort { $self->sortbuchung($a) cmp $self->sortbuchung($b) }
                     split(/\n/,$newbuch.$addlist) ) . "\n";
   }      

   $dellist =~ s/(\d\d\d\d\d\d\d\d),(.*),([^\:]+),([^\:]+),(.*)//g;
   $addlist =~ s/(\d\d\d\d\d\d\d\d),(.*),([^\:]+),([^\:]+),(.*)//g;

#   $self->{'PARENT'}->change_buchung($dellist,$addlist);

   $self->buchungen($newbuch);

}

#**************************************************************************

sub sortbuchung {

   my $self = shift;
   my $text = shift;
   
   $text =~ /^(.*?),(.*?),(.*?),(.*?),(.*)$/;
 
   my $erg   = $5;
   my $kto1  = $3;
   my $kto2  = $4;
   my $datum = $1;
   
   $erg    =~ s/[äöüÄÖÜß]/X/g;
   if ($erg =~ s/^\d(.*?)\((.*)\)$/$2/s) {  #  Umsatzsteuerbehandlung
      $erg = substr($erg,0,22) . "ZZZZZZZZZZZZZZZZZZZZZZZZZ";
   } else {
      $erg = substr($erg,0,22) . "AAAAAAAAAAAAAAAAAAAAAAAAA";
   }
   $erg = substr($erg,0,23);

   if    ($erg =~ /^Brutto-Lohn/)                  { $erg = "01" . $erg; }
   elsif ($erg =~ /^(LST|Lohnsteuer)/)             { $erg = "02" . $erg; }
   elsif ($erg =~ /^(KST|Kirchensteuer)/)          { $erg = "03" . $erg; }
   elsif ($erg =~ /^Soli/)                         { $erg = "04" . $erg; }
   elsif ($erg =~ /^KV-Beitrag/)                   { $erg = "05" . $erg; }
   elsif ($erg =~ /^PV-Beitrag/)                   { $erg = "06" . $erg; }
   elsif ($erg =~ /^RV-Beitrag/)                   { $erg = "07" . $erg; }
   elsif ($erg =~ /^AV-Beitrag/)                   { $erg = "08" . $erg; }
   elsif ($erg =~ /^A.-Anteil KV/)                 { $erg = "10" . $erg; }
   elsif ($erg =~ /^A.-Anteil ZU/)                 { $erg = "11" . $erg; }
   elsif ($erg =~ /^A.-Anteil RV/)                 { $erg = "12" . $erg; }
   elsif ($erg =~ /^A.-Anteil PV/)                 { $erg = "13" . $erg; }
   elsif ($erg =~ /^A.-Anteil KI/)                 { $erg = "14" . $erg; }
   elsif ($erg =~ /^A.-Anteil AV/)                 { $erg = "15" . $erg; }
   elsif ($erg =~ /^A.-Anteil ST/)                 { $erg = "16" . $erg; }
   elsif ($erg =~ /^A.-Anteil Umlage 1/)           { $erg = "17" . $erg; }
   elsif ($erg =~ /^A.-Anteil Umlage 2/)           { $erg = "18" . $erg; }
   elsif ($erg =~ /^A.-Anteil Inso/)               { $erg = "19" . $erg; }
   else { $erg = "00" . $erg; }
  
   my $o1 = $kto1;
   my $o2 = $kto2;
   if (($o1 cmp $o2) > 0) {
      $o1 = $kto2;
      $o2 = $kto1;
   }

   $erg = $datum . $erg . substr($o1."                                      ",0,20) .
                             substr($o2."                                      ",0,20);

# if (-f "xxx.xxx") { print " $erg\n"; sleep 1; }               
   return($erg);
   
}

#**************************************************************************

sub viewkonto {

   my $self = shift;
   my $kto  = shift;
   my $text = $self->viewkonto1($kto);
   $text    = $text . $self->{'PARENT'}->viewkonto2($kto,"") if ($self->{'PARENT'});
   $text    = $text . $self->viewkonto3($kto);
   
   $text    = [ sort { $self->sortbuchung($a) cmp $self->sortbuchung($b) }
                split(/\n/,$text) ];

   return(join("\n",@$text) . "\n");

}   


#**************************************************************************

#  Look in kto and in sub fibus

sub viewkonto1 {

   my $self  = shift;
   my $kto   = shift;

#   my $interval = "";
#   if ($kto =~ /^(.*)\-([123456789ABCEZDV])$/) {
#      $kto      = $1;
#      $interval = $2;
#   }

   my $buch = [ split(/\n/,$self->buchungen()) ];
   my $o    = "," . $kto;
   $buch    = join("\n",grep(/$o/,@$buch));
   
}

#**************************************************************************

sub viewkonto2 {  #  searching above

   my $self = shift;
   my $kto  = shift;
   my $buch = shift;
   $buch    = $self->{'NAME'} . "-" . $buch;
   $kto     = $self->{'NAME'} . "-" . $kto;
   
   my $text = $self->viewkonto1($kto);
   $text =~ s/(.*?),(.*?),(.*?),(.*)/$1,$buch\:$2,$buch\:$3,$4/g;
   $text =~ s/,$buch\:$buch//g;
   
   if ($self->{'PARENT'}) {
      $text = $text . $self->{'PARENT'}->viewkonto2($kto,$buch);
   }
   
   return($text);
   
}

#**************************************************************************

sub viewkonto3 {  #  searching underneath

   my $self = shift;
   my $kto  = shift;
   
   print "KK: $self $kto $self->{'NAME'}\n";

   my $fibu; my $name; my $text;
   foreach $fibu (@{$self->subfibu()}) {
      $name = $fibu->{'NAME'};
print "NAME: $name  $kto $fibu\n"; sleep 1;
      if ($kto =~ s/^$name\-//) {
         $text = $fibu->viewkonto1($kto);
print "TT $text $fibu->{'NAME'} " . $fibu->buchungen()  ."\n"; sleep 20;
         $text =~ s/(.*?),(.*?),(.*?),(.*)/$1,$name\-$2,$name\-$3,$4/g;
         return($text . $self->viewkonto3($kto));
      }
   }
   return("");
   
}

#************************************************************

sub to_kto {

   my $self = shift;
   my $kto  = shift;
   
   my $buch1 = "";
   my $o;
#   foreach $o (@$buch) {
#      next if ($o !~ /^(.*?),(\-*)(.*?),(.*?),(.*?),(.*)$/);
#      if ($2) {
#         $sum = sprintf("%10.8f",$sum-$3);
#         $o   = "$1,$3,$5,$4,$sum,$6";
#      } else {
#         $sum = sprintf("%10.8f",$sum+$3);
#         $o   = "$1,$3,$4,$5,$sum,$6";
#      }
#      $buch1 = $buch1 . $o . "\n";
#   }
   
   return($buch1);
   
}

#********************************************************************************


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