def test_save_loan_entity_deposit_draft_then_date(self): """ Does draft loan_entity_deposit and then change date """ test_account = Account.objects.create(name='Test Account', currency=CURRENCY_CUC) test_balance = test_account.balance test_loan_entity = LoanEntity.objects.create(name='Test Loan Entity') test_date1 = timezone.now() test_amount = 100 test_status = STATUS_DRAFT loan_entity_deposit = LoanEntityDeposit(date=test_date1, account=test_account, amount=test_amount, loan_entity=test_loan_entity, status=test_status) loan_entity_deposit = FinanceService.save_loan_entity_deposit( user=self.test_user, loan_entity_deposit=loan_entity_deposit) test_name1 = loan_entity_deposit.name # account balance unchanged self.assertAccount(test_account=test_account, test_balance=test_balance) # document data auto filled self.assertDocument(loan_entity_deposit, DOC_TYPE_LOAN_ENTITY_DEPOSIT, test_account.currency) # one finantial history created finantials = loan_entity_deposit.finantialdocumenthistory_set self.assertEqual(finantials.count(), 1) # finantial history info finantial = finantials.first() self.assertFinantialHistory(test_finantial_history=finantial, test_document=loan_entity_deposit, test_user=self.test_user, test_old_status=None, test_new_status=test_status) # no accounting history created accountings = loan_entity_deposit.accountingdocumenthistory_set self.assertEqual(accountings.count(), 0) test_date2 = test_date1 - timedelta(days=5) loan_entity_deposit.date = test_date2 loan_entity_deposit = FinanceService.save_loan_entity_deposit( user=self.test_user, loan_entity_deposit=loan_entity_deposit) test_name2 = loan_entity_deposit.name # name changed self.assertNotEqual(test_name1, test_name2) # account balance unchanged self.assertAccount(test_account=test_account, test_balance=test_balance) # document data auto filled self.assertDocument(loan_entity_deposit, DOC_TYPE_LOAN_ENTITY_DEPOSIT, test_account.currency) # no finantial history created finantials = loan_entity_deposit.finantialdocumenthistory_set self.assertEqual(finantials.count(), 1) # no accounting history created accountings = loan_entity_deposit.accountingdocumenthistory_set self.assertEqual(accountings.count(), 0)
def test_save_loan_entity_deposit_ready_then_date(self): """ Does ready loan_entity_deposit and then change to draft """ test_account = Account.objects.create(name='Test Account', currency=CURRENCY_CUC) test_balance = test_account.balance test_loan_entity = LoanEntity.objects.create(name='Test Loan Entity') test_date1 = timezone.now() test_amount = 100 test_status = STATUS_READY loan_entity_deposit = LoanEntityDeposit(date=test_date1, account=test_account, amount=test_amount, loan_entity=test_loan_entity, status=test_status) loan_entity_deposit = FinanceService.save_loan_entity_deposit( user=self.test_user, loan_entity_deposit=loan_entity_deposit) test_name1 = loan_entity_deposit.name # entity credit incremented self.assertLoanEntityCurrencyCreditAmount(loan_entity=test_loan_entity, currency=CURRENCY_CUC, amount=test_amount) # account balance incremented self.assertAccount(test_account=test_account, test_balance=test_balance + test_amount) # document data auto filled self.assertDocument(loan_entity_deposit, DOC_TYPE_LOAN_ENTITY_DEPOSIT, test_account.currency) # one finantial history created finantials = loan_entity_deposit.finantialdocumenthistory_set self.assertEqual(finantials.count(), 1) # finantial history info finantial = finantials.first() self.assertFinantialHistory(test_finantial_history=finantial, test_document=loan_entity_deposit, test_user=self.test_user, test_old_status=None, test_new_status=test_status) # one accounting history created accountings = loan_entity_deposit.accountingdocumenthistory_set self.assertEqual(accountings.count(), 1) # accounting history info accounting = accountings.first() operation = Operation.objects.get(pk=accounting.operation_id) # one movement created movements = operation.operationmovement_set self.assertEqual(movements.count(), 1) # movement info movement = movements.first() self.assertMovement(test_movement=movement, test_account=test_account, test_movement_type=MOVEMENT_TYPE_INPUT, test_amount=test_amount) test_date2 = test_date1 - timedelta(days=5) loan_entity_deposit.date = test_date2 loan_entity_deposit = FinanceService.save_loan_entity_deposit( user=self.test_user, loan_entity_deposit=loan_entity_deposit) test_name2 = loan_entity_deposit.name # name changed self.assertNotEqual(test_name1, test_name2) # entity credit unchanged self.assertLoanEntityCurrencyCreditAmount(loan_entity=test_loan_entity, currency=CURRENCY_CUC, amount=test_amount) # account balance remains changed self.assertAccount(test_account=test_account, test_balance=test_balance + test_amount) # document data auto filled self.assertDocument(loan_entity_deposit, DOC_TYPE_LOAN_ENTITY_DEPOSIT, test_account.currency) # same finantial history finantials = loan_entity_deposit.finantialdocumenthistory_set self.assertEqual(finantials.count(), 1) # same accounting history accountings = loan_entity_deposit.accountingdocumenthistory_set self.assertEqual(accountings.count(), 1)