Exemplo n.º 1
0
 def may_account(self):
     may_account = []
     from cashflow import dauth
     for permission in dauth.get_permissions(self.user):
         if permission.startswith("accounting-"):
             may_account.append(permission[len("accounting-"):].lower())
     return may_account
Exemplo n.º 2
0
def expense_overview(request):
    if request.method == 'GET':
        if len(dauth.get_permissions(request.user)) > 0:
            return render(
                request, 'expenses/expense_list.html',
                {'expenses': models.Expense.objects.order_by('-id').all()})
    else:
        raise Http404()
Exemplo n.º 3
0
def user_list(request):
    if request.method == 'GET':
        if len(dauth.get_permissions(request.user)) > 0:
            return render(
                request, 'expenses/user_list.html',
                {'users': models.Profile.objects.order_by('-id').all()})
    else:
        raise Http404()
Exemplo n.º 4
0
 def may_attest(self, expense_part=None):
     may_attest = []
     for permission in dauth.get_permissions(self.user):
         if permission.startswith("attest-"):
             may_attest.append(permission[len("attest-"):].lower())
     if expense_part is None:
         return may_attest
     return expense_part.committee_name.lower() in may_attest
Exemplo n.º 5
0
 def may_attest(self, expense_part=None):
     may_attest = []
     for permission in dauth.get_permissions(self.user):
         if permission.startswith("attest-"):
             may_attest.append(permission[len("attest-"):].lower())
     if expense_part is None:
         return may_attest
     return expense_part.committee_name.lower() in may_attest
Exemplo n.º 6
0
 def may_delete_invoice(self, invoice):
     if invoice is None or invoice.is_payed():
         return False
     if 'attest-firmatecknare' in dauth.get_permissions(self.user):
         return True
     if invoice.owner.user.username == self.user.username:
         return True
     if all([self.may_attest(invoice_part) for invoice_part in invoice.invoicepart_set.all()]):
         return True
     return False
Exemplo n.º 7
0
 def may_delete(self, expense):
     if expense.reimbursement:
         return False
     if 'attest-firmatecknare' in dauth.get_permissions(self.user) and expense is not None:
         return True
     if expense.owner.user.username == self.user.username:
         return True
     for expense_part in expense.expensepart_set.all():
         if self.may_attest(expense_part):
             return True
     return False
Exemplo n.º 8
0
    def may_account(self, expense=None, invoice=None):
        if 'accounting-*' in dauth.get_permissions(self.user) and (expense is not None or invoice is not None):
            return True

        may_account = []
        for permission in dauth.get_permissions(self.user):
            if permission.startswith("accounting-"):
                may_account.append(permission[len("accounting-"):].lower())
        if expense is None and invoice is None:
            return may_account

        if expense is not None:
            for ep in expense.expensepart_set.all():
                if ep.committee_name.lower() in may_account:
                    return True
        else:
            for ip in invoice.invoicepart_set.all():
                if ip.committee_name.lower() in may_account:
                    return True
        return False
Exemplo n.º 9
0
    def may_account(self, expense=None, invoice=None):
        if '*' in dauth.get_permissions(self.user) and (expense is not None or invoice is not None):
            return True

        may_account = []
        for permission in dauth.get_permissions(self.user):
            if permission.startswith("accounting-"):
                may_account.append(permission[len("accounting-"):].lower())
        if expense is None and invoice is None:
            return may_account

        if expense is not None:
            for ep in expense.expensepart_set.all():
                if ep.committee_name.lower() in may_account:
                    return True
        else:
            for ip in invoice.invoicepart_set.all():
                if ip.committee_name.lower() in may_account:
                    return True
        return False
Exemplo n.º 10
0
def attested_expenses(request):
    if 'attest-firmatecknare' not in dauth.get_permissions(request.user):
        return HttpResponseForbidden("Du har inte rättigheter att se det här")

    expense_data = ExpensePart.objects \
    .filter(attested_by__isnull=False) \
    .filter(expense__created_date__year = str(datetime.now().year)) \
    .values('committee_name', 'cost_centre_name', 'budget_line_name', 'expense__verification') \
    .annotate(amount=Sum('amount'))

    invoice_data = InvoicePart.objects \
    .filter(attested_by__isnull=False) \
    .filter(invoice__created_date__year = str(datetime.now().year)) \
    .values('committee_name', 'cost_centre_name', 'budget_line_name', 'invoice__verification') \
    .annotate(amount=Sum('amount'))

    return JsonResponse({'invoices': list(invoice_data), 'expenses': list(expense_data)})
Exemplo n.º 11
0
def budget_overview(request):
    if request.method == 'GET':
        cost_centres = budgetModels.CostCentre.objects.order_by('name')
        budget_lines = budgetModels.BudgetLine.objects.order_by('name')
        expense_parts = models.ExpensePart.objects
        committees = {}
        for committee in budgetModels.Committee.objects.filter(
                id=55).order_by('name'):
            committees[committee.id] = {
                'name': committee.name,
                'cost_centres': {}
            }

            for cost_centre in cost_centres:
                committees[committee.id]['cost_centres'][cost_centre.id] = {
                    'name': cost_centre.name,
                    'budget_lines': {}
                }

                for budget_line in budget_lines:
                    committees[committee.id]['cost_centres'][
                        cost_centre.id]['budget_lines'][budget_line.id] = {
                            'name':
                            budget_line.name,
                            'amount':
                            float(budget_line.amount),
                            'spent':
                            float(
                                expense_parts.filter(
                                    budget_line=budget_line.id).aggregate(
                                        Sum('amount'))['amount__sum'] or 0)
                        }

        if len(dauth.get_permissions(request.user)) > 0:
            return render(request, 'budget/overview.html',
                          {'committees': committees})
    else:
        raise Http404()
Exemplo n.º 12
0
 def may_pay(self):
     from cashflow import dauth
     return 'pay' in dauth.get_permissions(self.user)
Exemplo n.º 13
0
 def may_confirm(self):
     return 'confirm' in dauth.get_permissions(self.user)
Exemplo n.º 14
0
 def may_pay(self):
     return 'pay' in dauth.get_permissions(self.user)
Exemplo n.º 15
0
 def may_confirm(self):
     return 'confirm' in dauth.get_permissions(self.user)
Exemplo n.º 16
0
 def may_pay(self):
     return 'pay' in dauth.get_permissions(self.user)