Changeset 52c3467 for treasury/vouchers


Ignore:
Timestamp:
Jan 22, 2010, 4:56:19 AM (16 years ago)
Author:
Alex Dehnert <adehnert@…>
Branches:
master, client
Children:
31bd056
Parents:
e64b195
git-author:
Alex Dehnert <adehnert@…> (01/22/10 04:56:19)
git-committer:
Alex Dehnert <adehnert@…> (01/22/10 04:56:19)
Message:

Add transaction support (WIP)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • treasury/vouchers/import_budget.py

    r7874f6a r52c3467  
    44import subprocess
    55import vouchers.models
    6 from vouchers.models import BudgetArea
    7 from vouchers.models import coerce_full_email
     6import finance_core.models
     7from finance_core.models import BudgetArea
     8from finance_core.models import coerce_full_email
     9from finance_core.models import Transaction
     10from finance_core.models import get_layer_by_name, layer_num
     11from decimal import *
    812
    913columns = ['comm_name','priority','expense_type','start_date','end_date','project','item_name','desc','people','count','costitem','subtotal','per_person','email_list']
     
    1418    reader = csv.reader(infile)
    1519    for comm in reader:
    16         email_list,chair_list,name,prefer_chair,area = comm
     20        email_list,chair_list,name,prefer_chair,area,account = comm
    1721        if prefer_chair=='yes': prefer_chair = True
    1822        else: prefer_chair = False
    19         committees[email_list] = { 'email_list': email_list, 'chair_list': chair_list, 'name': name, 'prefer_chair':prefer_chair, 'area':area}
     23        committees[email_list] = { 'email_list': email_list, 'chair_list': chair_list, 'name': name, 'prefer_chair':prefer_chair, 'area':area, 'account':account}
    2024    return committees
    2125
     
    6064    for comm in committees.values():
    6165        parent = parents[comm['area']]
    62         parent.add_child(
    63             name=comm['name'],
    64             owner=coerce_full_email(comm['chair_list']),
    65             interested=coerce_full_email(comm['email_list']),
    66             use_owner=comm['prefer_chair'],
    67             always=True,
    68         )
     66        if len(parent.get_children().filter(name=comm['name'])) > 0:
     67            pass
     68        else:
     69            parent.add_child(
     70                name=comm['name'],
     71                owner=coerce_full_email(comm['chair_list']),
     72                interested=coerce_full_email(comm['email_list']),
     73                use_owner=comm['prefer_chair'],
     74                always=True,
     75            )
    6976    return (depth+1, )
    7077
     78budget_layer = layer_num(get_layer_by_name('budget'))
    7179def do_process_rows(committees, budget, term, depth):
    7280    reader = csv.reader(budget)
     
    105113            else: line_item_obj = line_items[0]
    106114            line_item_obj.mark_used(term)
     115            amount = Decimal(subtotal.replace('$', '').replace(',', ''))
     116            finance_core.models.make_transfer(
     117                item_name, amount, budget_layer,
     118                term, budget_source, line_item_obj, desc=desc)
     119
    107120
    108121def main(committees_file, budget_file, term_name, ):
Note: See TracChangeset for help on using the changeset viewer.