예제 #1
0
 def import_rules(self, csv_file):
     tt_id = -1
     mtt = ''
     for l in csv_file:
         if len(l.rstrip()) > 0:
             r = l.split(';')
             print r
             if r[0] == 'TT':
                 if len(r) == 6 and r[5].rstrip() != '':
                     try:
                         tt = Tehingutyyp.objects.get(id=int(r[5].rstrip()))
                         tt.kirjeldus = r[1]
                         tt.reatyyp = int(r[2])
                         tt.tunnus = r[3]
                         tt.triger = r[4]
                         Kontokasutus.objects.all().filter(tehingutyyp=tt).delete()
                     except:
                         tts = Tehingutyyp.objects.all().filter(kirjeldus=r[1])
                         for t in tts:
                             Kontokasutus.objects.all().filter(tehingutyyp=t).delete()
                             t.delete()
                         tt = Tehingutyyp(kirjeldus=r[1], reatyyp=int(r[2]), tunnus=r[3], triger=r[4])
                 else:
                     tts = Tehingutyyp.objects.all().filter(kirjeldus=r[1])
                     for t in tts:
                         Kontokasutus.objects.all().filter(tehingutyyp=t).delete()
                         t.delete()
                     tt = Tehingutyyp(kirjeldus=r[1], reatyyp=int(r[2]), tunnus=r[3], triger=r[4])
                 tt.save()
                 tt_id = tt.id
                 mtt = tt
             elif r[0] == 'KK' and tt_id > 0:    
                 k = Konto.objects.get(pk=r[1])
                 Kontokasutus.objects.create(tehingutyyp=mtt, konto=k, on_deebet=(r[2]=='D'), valem=r[3].rstrip())
     return True
예제 #2
0
 def import_ledger(self, csv_file):
     t_id = -1
     mt = None
     for l in csv_file:
         if len(l.rstrip()) > 0:
             r = l.split(';')
             print r
             if r[0] == 'T': # tehing
                 if len(r) == 8 and r[2].rstrip() != '':
                     t = None
                     try:
                         pr = Pearaamat.objects.get(aasta=int(r[1]))
                     except:
                         pr = Pearaamat()
                         pr.aasta = int(r[1])
                         pr.on_avatud = False
                         pr.save()
                     try:
                         tt = Tehingutyyp.objects.get(kirjeldus=r[2])
                     except:
                         tt = Tehingutyyp()
                         tt.kirjeldus = r[2]
                         tt.save()
                     try:
                         d = r[5].split('.')
                         vkpv = date(int(d[2]), int(d[1]), int(d[0]))
                         d = r[4].split('.')
                         tkpv = date(int(d[2]), int(d[1]), int(d[0]))
                         t = Tehing.objects.get(pearaamat=pr, tehingutyyp=tt, maksepaev=vkpv, sisu=r[3])
                         t.tehingupaev = tkpv
                         t.on_manual = r[6] == 'M'
                         Kanne.objects.all().filter(tehing=t).delete()
                     except:
                         t = Tehing(pearaamat=pr, tehingutyyp=tt, sisu=r[3], tehingupaev=tkpv, maksepaev=vkpv, on_manual=(r[6]=='M'))
                     finally:
                         t.save()
                         t_id = t.id
                         mt = t
             elif r[0] == 'K' and t_id > 0: # kanne    
                 k = Konto.objects.get(pk=r[1])
                 Kanne.objects.create(tehing=mt, konto=k, on_deebet=(r[2]=='D'), summa=float(r[3]), on_manual=(r[4]=='M'))
     return True