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
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