Exemplo n.º 1
0
def upload_data_budget(request):
    
    template = dict()
    
    if request.method == 'POST':
        
        form = UploadDataForm(request.POST, request.FILES)
        if form.is_valid():             
            
            directory = MEDIA_ROOT + "/test_data/" + request.FILES["file"].name
            
            reader = csv.reader(open(directory))
            
            for r in reader:
                budget = Budget()
                budget.position = Position.objects.get(name=r[0])
                budget.term = r[1]
                budget.year = r[2]
                budget.stream = r[3]
                if r[4] == "TRUE":
                    budget.approved = True
                budget.creator = request.user
                budget.start_date = start_date(int(budget.year), budget.term)
                budget.end_date = end_date(int(budget.year), budget.term)
                budget.save()

                
            
        return HttpResponseRedirect(reverse('budget_view_budgets'))
    else:
        form = UploadDataForm()
    
    template['form'] = form
    
    return render_to_response('budget/upload_budget.htm',template, context_instance=RequestContext(request))    
Exemplo n.º 2
0
 def setUp(self):
     """
     Add some transactions to a VirtualAcct.
     """
     user = User(username = '******', email = '*****@*****.**')
     user.save()
     profile = UserProfile(user = user)
     profile.save()
     budget = Budget(owner = profile, period_budget_amount = '100.00')
     year = Year()
     year.save()
     budget.period_length = year
     budget.save()
     
     category = Category(owner = profile, name = 'test', budget = budget)
     category.save()
     
     self.acct = RealAcct(owner = profile)
     self.acct.save()
     self.vacct = VirtualAcct(owner = profile, real_acct = self.acct, parent_budget = budget)
     self.vacct.save()
     
     self.txn_1 = RealTxn(value = '110.00', category = category, real_acct = self.acct)
     self.txn_1.save()
     self.vtxn_1 = VirtualTxn(value = '90.00', real_txn = self.txn_1, virtual_acct = self.vacct)
     self.vtxn_1.save()
     self.vtxn_2 = VirtualTxn(value = '20.00', real_txn = self.txn_1, virtual_acct = self.vacct)
     self.vtxn_2.save()
Exemplo n.º 3
0
 def test_periodlength_inheritance(self):
     """
     See if having PeriodLength as not abstract will call PeriodLength
     methods or subclass methods
     """
     user = User(username = '******', email = '*****@*****.**')
     user.save()
     profile = UserProfile(user = user)
     profile.save()
     budget = Budget(owner = profile, period_budget_amount = '100.00')
     year = Year()
     year.save()
     budget.period_length = year
     budget.save()
     length = budget.period_length
     assert(length.__unicode__() == 'Year PeriodLength')
Exemplo n.º 4
0
def post_budget(request):
    if Budget.objects.last():
        budget_info = Budget.objects.last()
    else:
        budgetform = BudgetForm()

    if request.user.username:
        if request.method == "POST":
            author = Budget(author=request.user)
            budgetform = BudgetForm(request.POST, instance=author)
            if budgetform.is_valid():
                author.save()
                return redirect("/profile/")

            else:
                budgetform = BudgetForm(instance=budget_info)

            return render(request, 'expenses.html', {'budgetform': budgetform})
Exemplo n.º 5
0
def addbudget(request):
	page_data = {"add_budget_form" : add_budget}
	if request.method == 'POST':
		add_budget_form = add_budget(request.POST)
		if(add_budget_form.is_valid()):
			desc = add_budget_form.cleaned_data["Description"]
			act = add_budget_form.cleaned_data["Actual"]
			pred = add_budget_form.cleaned_data["Projected"]
			chois = add_budget_form.cleaned_data["Category"]
			sel_category = BudgetCategory.objects.filter(id=chois).get()
			budget = Budget()
			budget.Username = request.user
			budget.Description = desc
			budget.Projected = pred
			budget.Actual = act
			budget.Category = sel_category
			budget.save()
			page_data = fillpagedata(request.user)
			return render(request, 'budget/budget.html', {"dat": page_data, "data":calculate(request.user)})
	return render(request, 'budget/addbudget.html', context=page_data)
Exemplo n.º 6
0
def add_transaction_ajax(request):
    result = {}
    user = request.user
    trans = Transaction()
    budgets = Budget.objects.filter(Q(owner=user) | Q(coowners=user))
    categories = Budget.objects.filter(Q(owner=user) | Q(coowners=user))

    trans.budget_name = request.POST.get('budget', '')
    trans.budget_id = request.POST.get('budget_id', 0)
    trans.category_name = request.POST.get('category', '')
    trans.category_id = request.POST.get('category_id', 0)
    trans.money = request.POST.get('money', '')
    trans.owner = user.username

    if trans.budget_id and \
        not budgets.filter(id=trans.budget_id).count():
            trans.budget_id = 0
    if trans.category_id and \
        not categories.filter(id=trans.category_id).count():
            trans.category_id = 0

    if not trans.budget_id and trans.budget_name:
        trans.budget_id = get_similar(budgets, trans.budget_name)
        if not trans.budget_id:
            budget = Budget(owner=user, name=trans.budget_name)
            budget.save()
            trans.budget_id = budget.id

    if not trans.category_id and trans.category_name:
        trans.category_id = get_similar(categories, trans.category_name)
        if not trans.category_id:
            category = Category(owner=user, name=trans.category_name)
            category.save()
            trans.category_id = category.id

    trans.save_transaction()
    result['posted'] = True
    return HttpResponse(result, mimetype = 'application/javascript')