Пример #1
0
    def saveDebt(self, serializedFormValues):
        from tuition.utils.manager import AppManager
        from tuition.tools.forms import DebtForm
        from tuition.tools.models import Debt, Expenses

        modelsToPut = []
        savedExpenseKey = None
        savedDebtKey = None
        form = DebtForm(data=serializedFormValues)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        if form.is_valid():
            dictToSave = {
                'user': loggedInEmployee.key(),
                'type': form.cleaned_data['type'],
                'amount': form.cleaned_data['amount'],
                'incurredDate': form.cleaned_data['incurredDate'],
                'returnDate': form.cleaned_data['returnDate'],
                'expenseOfMonth': form.cleaned_data['expenseOfMonth'],
                'hasReturned': form.cleaned_data['hasReturned'],
                'comments': form.cleaned_data['comments']
            }
            newDebt = Debt(**dictToSave)
            modelsToPut.append(newDebt)

            if form.cleaned_data['hasReturned']:
                dictToSave = {
                    'user': loggedInEmployee.key(),
                    'type': 'Debt Return',
                    'amount': newDebt.amount,
                    'dateOfExpense': form.cleaned_data['expenseOfMonth'],
                    'comments': ''
                }
                newExpense = Expenses(**dictToSave)
                modelsToPut.append(newExpense)

            if len(modelsToPut) > 1:
                savedDebtKey, savedExpenseKey = db.put(modelsToPut)
            elif len(modelsToPut) == 1:
                savedDebtKey = db.put(modelsToPut)
            return self.respond(isSaved=True,
                                savedDebtKey=str(savedDebtKey),
                                savedExpenseKey=str(savedExpenseKey),
                                savedDebt=newDebt.toDict)
        else:
            return self.respond(isSaved=False, errors=form.errors)
Пример #2
0
    def saveAnExpense(self, serializedFormValues):
        from tuition.utils.manager import AppManager
        from tuition.tools.forms import ExpenseForm
        from tuition.tools.models import Expenses

        form = ExpenseForm(data=serializedFormValues)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        if form.is_valid():
            dictToSave = {
                'user': loggedInEmployee.key(),
                'type': form.cleaned_data['type'],
                'amount': form.cleaned_data['amount'],
                'dateOfExpense': form.cleaned_data['dateOfExpense'],
                'comments': form.cleaned_data['comments']
            }
            newExpense = Expenses(**dictToSave)
            return self.respond(isSaved=True,
                                savedExpenseKey=str(db.put(newExpense)))
        else:
            return self.respond(isSaved=False, errors=form.errors)
Пример #3
0
    def markDebtReturn(self, serializedFormValues):
        from tuition.tools.models import Expenses, Debt
        from tuition.tools.forms import DebtReturnForm
        from tuition.utils.manager import AppManager

        modelsToPut = []
        form = DebtReturnForm(data=serializedFormValues)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        debt = Debt.get(serializedFormValues['key'])
        form.debtIncurredDate = debt.incurredDate
        if form.is_valid() and not debt.hasReturned:
            dictToSave = {
                'expenseOfMonth': form.cleaned_data['markAsExpense'],
                'hasReturned': True
            }
            for key, value in dictToSave.iteritems():
                setattr(debt, key, value)
            modelsToPut.append(debt)
            # we need to mark it as an expense of the given date.
            dictToSave = {
                'user': loggedInEmployee.key(),
                'type': 'Debt Return',
                'amount': debt.amount,
                'dateOfExpense': form.cleaned_data['markAsExpense'],
                'comments': form.cleaned_data['returnComments']
            }
            expense = Expenses(**dictToSave)
            modelsToPut.append(expense)
            savedDebtKey, savedExpenseKey = db.put(modelsToPut)
            return self.respond(isSaved=True,
                                savedDebtKey=str(savedDebtKey),
                                savedExpenseKey=str(savedExpenseKey),
                                savedDebt=debt.toDict)
        else:
            return self.respond(isSaved=False,
                                errors=form.errors,
                                debtAlreadyReturned=debt.hasReturned)