From 81aa8a075676f5b2d74f6be33e73b42e1722f38b Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 13 Jul 2011 13:53:06 +0530 Subject: [PATCH] added loan and loan installment --- accounts/doctype/loan/__init__.py | 0 accounts/doctype/loan/loan.js | 18 ++++++++++++++++++ accounts/doctype/loan/loan.py | 13 +++++++++++++ accounts/doctype/loan/test_loan.py | 17 +++++++++++++++++ accounts/doctype/loan_installment/__init__.py | 0 5 files changed, 48 insertions(+) create mode 100644 accounts/doctype/loan/__init__.py create mode 100644 accounts/doctype/loan/loan.js create mode 100644 accounts/doctype/loan/loan.py create mode 100644 accounts/doctype/loan/test_loan.py create mode 100644 accounts/doctype/loan_installment/__init__.py diff --git a/accounts/doctype/loan/__init__.py b/accounts/doctype/loan/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/accounts/doctype/loan/loan.js b/accounts/doctype/loan/loan.js new file mode 100644 index 0000000000..37e49dc857 --- /dev/null +++ b/accounts/doctype/loan/loan.js @@ -0,0 +1,18 @@ +$.extend(cur_frm.cscript, { + Generate: function(doc, dt, dn) { + cur_frm.cscript.clear_installments(doc); + for(var i=0; i< doc.no_of_installments; i++) { + d = LocalDB.add_child(doc, 'Loan Installment', 'installments'); + d.amount = doc.loan_amount / doc.no_of_installments; + d.due_date = dateutil.add_months(doc.start_date, i+1); + } + cur_frm.refresh(); + }, + clear_installments: function(doc) { + $.each(getchildren('Loan Installment', doc.name, 'installments', 'Loan'), + function(i, d) { + LocalDB.delete_doc('Loan Installment', d.name); + } + ) + } +}) \ No newline at end of file diff --git a/accounts/doctype/loan/loan.py b/accounts/doctype/loan/loan.py new file mode 100644 index 0000000000..4a6427dffa --- /dev/null +++ b/accounts/doctype/loan/loan.py @@ -0,0 +1,13 @@ +import webnotes +from webnotes.model.doc import make_autoname, Document + +class DocType: + def __init__(self, doc, doclist): + self.doc, self.doclist = doc, doclist + + def autoname(self): + """ + Create Loan Id using naming_series pattern + """ + self.doc.name = make_autoname(self.doc.naming_series+ '.#####') + diff --git a/accounts/doctype/loan/test_loan.py b/accounts/doctype/loan/test_loan.py new file mode 100644 index 0000000000..4e72559d6e --- /dev/null +++ b/accounts/doctype/loan/test_loan.py @@ -0,0 +1,17 @@ +import unittest +import webnotes +from webnotes.model.code import get_obj + +class TestScheduleGeneartion(unittest.TestCase): + def setUp(self): + webnotes.conn.begin() + # create a mock loan + self.loan = get_obj('Loan', 'LOAN00001') + + def test_generation(self): + "test the genaration of loan installments" + self.loan.generate() + self.assertEqual(self.loan.get_installment_total(), self.loan.doc.loan_amount) + + def tearDown(self): + webnotes.conn.rollback() diff --git a/accounts/doctype/loan_installment/__init__.py b/accounts/doctype/loan_installment/__init__.py new file mode 100644 index 0000000000..e69de29bb2