def test_total_outstanding_more_than_allowed(self):
     create_test_loanee(
         customer_name="_Test Loanee 1",
         date_of_retirement="2018-12-12",
         net_salary_amount=3000.0,
     )
     create_test_loan(
         skip_dependencies=True,
         posting_date="2017-12-01",
         loan_principal=6000.0,
         recovery_amount=600.0,
     )
     disbursement = frappe.get_doc({
         "doctype": "Microfinance Disbursement",
         "loan": "_TEST LOAN",
         "posting_date": "2017-12-02",
         "amount": 6000.0,
         "mode_of_payment": "Cash",
     })
     disbursement.insert()
     disbursement.submit()
     with self.assertRaises(frappe.exceptions.ValidationError):
         create_test_loan(
             skip_dependencies=True,
             loan_no="_Test Loan Another",
             posting_date="2018-02-12",
             loan_principal=6000.0,
             recovery_amount=700.0,
         )
     disbursement.cancel()
     frappe.delete_doc("Microfinance Disbursement",
                       name=disbursement.name,
                       force=True)
Exemplo n.º 2
0
 def test_total_outstanding_more_than_allowed(self):
     create_test_loanee(
         customer_name='_Test Loanee 1',
         date_of_retirement='2018-12-12',
         net_salary_amount=3000.0,
     )
     create_test_loan(
         skip_dependencies=True,
         posting_date='2017-12-01',
         loan_principal=6000.0,
         recovery_amount=600.0,
     )
     disbursement = frappe.get_doc({
         'doctype': 'Microfinance Disbursement',
         'loan': '_TEST LOAN',
         'posting_date': '2017-12-02',
         'amount': 6000.0,
         'mode_of_payment': 'Cash',
     })
     disbursement.insert()
     disbursement.submit()
     with self.assertRaises(frappe.exceptions.ValidationError):
         create_test_loan(
             skip_dependencies=True,
             loan_no='_Test Loan Another',
             posting_date='2018-02-12',
             loan_principal=6000.0,
             recovery_amount=700.0,
         )
     disbursement.cancel()
     frappe.delete_doc('Microfinance Disbursement',
                       name=disbursement.name,
                       force=True)
 def test_recovery_less_than_allowed(self):
     create_test_loanee(
         customer_name="_Test Loanee 1",
         date_of_retirement="2018-12-12",
         net_salary_amount=3000.0,
     )
     with self.assertRaises(frappe.exceptions.ValidationError):
         create_test_loan(
             skip_dependencies=True,
             posting_date="2017-12-01",
             loan_principal=11000.0,
             recovery_amount=999.0,
         )
 def test_raises_when_validation_fails_on_update(self):
     create_test_loanee(
         customer_name="_Test Loanee 1",
         date_of_retirement="2018-12-12",
         net_salary_amount=3000.0,
     )
     loan = create_test_loan(
         skip_dependencies=True,
         posting_date="2017-12-01",
         loan_principal=10000.0,
         recovery_amount=1500.0,
     )
     with self.assertRaises(frappe.exceptions.ValidationError):
         loan.update({"loan_principal": 11001.0})
         loan.save()
def create_test_loan(**kwargs):
    args = frappe._dict(kwargs)
    if not args.skip_dependencies:
        create_test_loanee(customer_name=args.customer or "_Test Loanee 1")
    doc = frappe.new_doc("Microfinance Loan")
    doc.update({
        "loan_no": args.loan_no or "_Test Loan",
        "customer": args.customer or "_Test Loanee 1",
        "posting_date": args.posting_date or "2017-08-19",
        "company": args.company or "_Test Company",
        "loan_plan": args.loan_plan or "_Test Loan Plan Basic",
        "loan_principal": args.loan_principal or 100000.0,
        "recovery_amount": args.recovery_amount or 2000.0,
    })
    if not args.do_not_insert:
        doc.insert()
        if not args.do_not_submit:
            doc.submit()
    return doc
Exemplo n.º 6
0
def create_test_loan(**kwargs):
    args = frappe._dict(kwargs)
    if not args.skip_dependencies:
        create_test_loanee(customer_name=args.customer or '_Test Loanee 1')
    doc = frappe.new_doc('Microfinance Loan')
    doc.update({
        'loan_no': args.loan_no or '_Test Loan',
        'customer': args.customer or '_Test Loanee 1',
        'posting_date': args.posting_date or '2017-08-19',
        'company': args.company or '_Test Company',
        'loan_plan': args.loan_plan or '_Test Loan Plan Basic',
        'loan_principal': args.loan_principal or 100000.0,
        'recovery_amount': args.recovery_amount or 2000.0,
    })
    if not args.do_not_insert:
        doc.insert()
        if not args.do_not_submit:
            doc.submit()
    return doc