示例#1
0
文件: views.py 项目: nostneji/PDAM
def assettrans_action_handler(request):
    context = {}
    template = 'assettrans_edit.html'
    if request.method == 'POST' and request.POST.has_key('action'):
        if request.POST['action'] == 'Add':
            pk = request.POST['pk']
            v = Vara.objects.get(pk=pk)
            form = VaratehingForm()
            form.vara=v
            context = {'form': form, 'pk': pk, 'ipk': 0}
        elif request.POST['action'] == 'Add_H':
            pk = request.POST['pk']
            summa = request.POST['summa']
            vh = VaraHaldur()
            pr = vh.getActivePR()
            vkpv = date(pr.aasta, 12, 31)
            kogus = vh.getEndCount(pk)
            vh.reprize(pk, vkpv, kogus, summa, 'EUR')
        elif request.POST['action'] == 'Update':
            pk = request.POST['pk']
            ipk = request.POST['ipk']
            doc=Varatehing.objects.get(pk=ipk)
            form = VaratehingForm(instance=doc)
            context = {'form': form, 'pk': pk, 'ipk': ipk}
        elif request.POST['action'] == 'Delete':
            ipk = request.POST['ipk']
            Varatehing.objects.all().filter(pk=ipk).delete()
        elif request.POST['action'] == 'Save':
            pk = request.POST['pk']
            ipk = request.POST['ipk']
            if ipk != '0':
                doc=Varatehing.objects.get(pk=ipk)
                form = VaratehingForm(request.POST, instance=doc)
            else:
                form = VaratehingForm(request.POST)
            if form.is_valid():
                form.save()
            else:
                context = {'form': form, 'pk': pk, 'ipk': ipk}
        elif request.POST['action'] == 'Cancel':
            pass
    if len(context) > 0:
        result = render_to_response(template, context, context_instance=RequestContext(request))
    else:
        result = redirect(assets)
    return result 
示例#2
0
 def import_assets(self, csv_file):
     vh = VaraHaldur()
     vrec = {} # {nimetus, aldsaldo, id}
     trec = [] # (*tehing*)
     v_id = -1
     v = None
     delta = 0
     if self.jooksev_aasta >= 2012:
         delta = 2
     for l in csv_file:
         if len(l.rstrip()) > 0:
             r = l.split(';')
             for i in range(len(r)):
                 r[i] = r[i].strip('\"')
             print r[12+delta], r[12+delta].decode('utf8')
             if len(r) < 17: # vanemat tüüpi formaadiga fail
                 delta = 0
             if r[0] == 'Tehingu ref.': # faili päis
                 pass
             elif r[0].isdigit() and v_id >= 0: # tehingu kirje
                 print '>>> tehing'
                 if float(r[13+delta]) != 0:
                     if re.search('\+',r[1]):
                         tyyp = 'O'
                     elif re.search('-',r[1]):
                         tyyp = 'M'
                     elif re.search('%',r[1]):
                         tyyp = 'H'
                     elif float(r[13+delta]) > 0:
                         tyyp = 'O'
                     elif float(r[13+delta]) < 0:
                         tyyp = 'M'
                     s = r[2].split('.')
                     vkpv = date(int(s[2]), int(s[1]), int(s[0]))
                     summa = float(r[9+delta])
                     valuuta = r[10+delta]
                     kogus = float(r[13+delta])
                     trec.append({u'tüüp':tyyp, 'vkpv':vkpv, 'summa':summa, 'valuuta':valuuta, 'kogus':kogus})
                     print ' * ', trec
             elif r[0] == '' and r[12+delta] == 'Lõppsaldo' and v_id >= 0: # lõppsaldo
                 print '>>> lõpp ', vrec['algsaldo'], ' -> ', r[13+delta]
                 add_vt = False
                 if v_id == 0 and add_vt and float(r[13+delta]) > 0 and float(vrec['algsaldo']) > 0:
                     print 'WARNING: Missing previous data for ', vrec['nimetus'], vrec['algsaldo'], ' -> ', r[13+delta]
                 if v_id > 0:
                     add_vt = True
                 else:
                     for t in trec:
                         add_vt = add_vt or t['vkpv'].year >= self.jooksev_aasta
                 if v_id == 0 and float(vrec['algsaldo']) == 0:
                     lyh = vrec['lyhend'] if vrec['lyhend'] != '' else '?'
                     typ = vrec[u'tüüp'] if vrec[u'tüüp'] != '' else 'A'
                     v = Vara.objects.create(nimetus=vrec['nimetus'], vp_tyyp=typ, lyhend=lyh)
                     v_id = v.id
                     add_vt = True
                 print ' ** ', len(trec)
                 if add_vt: 
                     for t in trec:
                         if t[u'tüüp'] == 'O':
                             vh.buy(v.id, t['vkpv'], t['vkpv'], t['kogus'], t['summa'], t['valuuta'])   
                         elif t[u'tüüp'] == 'M':
                             vh.sell(v.id, t['vkpv'], t['vkpv'], t['kogus'], t['summa'], t['valuuta'])
                         elif t[u'tüüp'] == 'H':
                             vh.reprize(v.id, t['vkpv'], t['kogus'], t['summa'], t['valuuta'])
                 else:
                     print ' # Not added: ', vrec['nimetus']
             elif r[12+delta] == 'Algsaldo': # vara nimetus ja algsaldo
                 print '>>> algus'
                 try:
                     trec = []
                     v = Vara.objects.get(nimetus=r[0])
                     v_id = v.id
                     if r[8] == '':
                         r[8] = v.vp_tyyp
                     if r[10] == '':
                         r[10] = v.lyhend
                     print ' # Found: ', r[0]
                 except:
                     print ' # Not found, will create: ', r[0]
                     v = Vara.objects.create(nimetus=r[0], vp_tyyp=r[8], lyhend=r[10])
                     v_id = v.id
                 vrec = {'nimetus':r[0], 'algsaldo':r[13+delta], 'id':v_id, u'tüüp':r[8], 'lyhend':r[10]}
                 print vrec
                     
     return True