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