Implemented the Auto JV posting upon Loan Installment posting
diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt
index 43ec614..c40be8f 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.txt
+++ b/accounts/doctype/journal_voucher/journal_voucher.txt
@@ -5,23 +5,14 @@
{
'creation': '2010-08-08 17:09:06',
'docstatus': 0,
- 'modified': '2011-04-06 14:41:47',
+ 'modified': '2011-07-15 14:37:05',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
- # These values are common for all DocField
- {
- 'doctype': 'DocField',
- 'name': '__common__',
- 'parent': 'Journal Voucher',
- 'parentfield': 'fields',
- 'parenttype': 'DocType'
- },
-
# These values are common for all DocType
{
- '_last_update': '1305714002',
+ '_last_update': '1310533805',
'colour': 'White:FFF',
'doctype': 'DocType',
'module': 'Accounts',
@@ -32,15 +23,15 @@
'show_in_menu': 0,
'subject': ' ',
'tag_fields': 'voucher_type',
- 'version': 307
+ 'version': 308
},
- # These values are common for all DocFormat
+ # These values are common for all DocField
{
- 'doctype': 'DocFormat',
+ 'doctype': 'DocField',
'name': '__common__',
'parent': 'Journal Voucher',
- 'parentfield': 'formats',
+ 'parentfield': 'fields',
'parenttype': 'DocType'
},
@@ -112,20 +103,6 @@
'write': 0
},
- # DocFormat
- {
- 'doctype': 'DocFormat',
- 'format': 'Payment Receipt Voucher',
- 'idx': 1
- },
-
- # DocFormat
- {
- 'doctype': 'DocFormat',
- 'format': 'Cheque Printing Format',
- 'idx': 2
- },
-
# DocField
{
'doctype': 'DocField',
@@ -167,7 +144,7 @@
'label': 'Voucher Type',
'oldfieldname': 'voucher_type',
'oldfieldtype': 'Select',
- 'options': '\nJournal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher',
+ 'options': '\nJournal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher\nLoan Receipt',
'permlevel': 0,
'print_hide': 0,
'search_index': 1
diff --git a/accounts/doctype/loan/loan.js b/accounts/doctype/loan/loan.js
index d4e063d..a26df3f 100644
--- a/accounts/doctype/loan/loan.js
+++ b/accounts/doctype/loan/loan.js
@@ -13,9 +13,10 @@
},
hide_show_buttons: function(doc) {
if(doc.docstatus==0) {
- hide_field('Installment Reciept'); show_field('Generate');
+ hide_field('Installment Reciept');// show_field('Generate');
} else if (doc.docstatus==1) {
- show_field('Installment Reciept'); hide_field('Generate');
+// show_field('Installment Reciept');
+hide_field('Generate');
}
},
clear_installments: function(doc) {
@@ -30,17 +31,19 @@
width: 500,
title: 'Add a new payment installment',
fields: [
- {fieldtype:'Data', label:'Check Number', fieldname:'check_number', reqd:1},
- {fieldtype:'Date', label:'Check Date', fieldname:'check_date', reqd:1},
+ {fieldtype:'Data', label:'Cheque Number', fieldname:'cheque_number', reqd:1},
+ {fieldtype:'Date', label:'Cheque Date', fieldname:'cheque_date', reqd:1},
+ {fieldtype:'Link', label:'Bank Account', fieldname:'bank_account', reqd:1, options:'Account'},
{fieldtype:'Button', label:'Update',fieldname:'update'}
]
})
d.show();
d.fields_dict.update.input.onclick = function() {
var data = d.get_values();
+
if(data) {
- $c_obj()
+ $c_obj(make_doclist(dt,dn),'loan_post',data,function(){cur_frm.refresh(); d.hide();});
}
}
}
-})
\ No newline at end of file
+})
diff --git a/accounts/doctype/loan/loan.py b/accounts/doctype/loan/loan.py
index 4a6427d..adddbc5 100644
--- a/accounts/doctype/loan/loan.py
+++ b/accounts/doctype/loan/loan.py
@@ -1,5 +1,9 @@
import webnotes
-from webnotes.model.doc import make_autoname, Document
+from webnotes.model.doc import make_autoname, Document, addchild
+from webnotes import msgprint
+from webnotes.utils import get_defaults
+import json
+sql = webnotes.conn.sql
class DocType:
def __init__(self, doc, doclist):
@@ -10,4 +14,38 @@
Create Loan Id using naming_series pattern
"""
self.doc.name = make_autoname(self.doc.naming_series+ '.#####')
+
+ def loan_post(self, args):
+ """
+ Posts the loan receipt into Journal Voucher
+ """
+ data = json.loads(args)
+
+ jv = Document('Journal Voucher')
+ jv.voucher_type = 'Loan Receipt'
+ jv.naming_series = 'JV'
+ jv.voucher_date = data.get('cheque_date')
+ jv.posting_date = data.get('cheque_date')
+ jv.cheque_no = data.get('cheque_number')
+ jv.cheque_date = data.get('cheque_date')
+ jv.fiscal_year = get_defaults()['fiscal_year'] # To be modified to take care
+ jv.company = get_defaults()['company']
+
+ jv.save(1)
+
+ next_inst = sql("select amount,name from `tabLoan Installment` where parent=%s and ifnull(cheque_number,'')='' order by due_date limit 1",self.doc.name)
+ jc = addchild(jv,'entries','Journal Voucher Detail',0)
+ jc.account = data.get('bank_account')
+ jc.debit = next_inst[0][0]
+ jc.save()
+
+ jc = addchild(jv,'entries','Journal Voucher Detail',0)
+ jc.account = self.doc.account
+ jc.credit = next_inst[0][0]
+ jc.save()
+
+ sql("update `tabLoan Installment` set cheque_number=%s, cheque_date=%s, jv_number=%s where name=%s",(data.get('cheque_number'),data.get('cheque_date'),jv.name,next_inst[0][1]))
+
+ self.doclist = [Document(d.doctype, d.name) for d in self.doclist]
+
diff --git a/accounts/doctype/loan/loan.txt b/accounts/doctype/loan/loan.txt
index df93612..3be82fb 100644
--- a/accounts/doctype/loan/loan.txt
+++ b/accounts/doctype/loan/loan.txt
@@ -5,21 +5,21 @@
{
'creation': '2011-07-15 10:35:26',
'docstatus': 0,
- 'modified': '2011-07-15 10:35:26',
+ 'modified': '2011-07-15 15:51:10',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
# These values are common for all DocType
{
- '_last_update': '1310622631',
+ '_last_update': '1310706327',
'colour': 'White:FFF',
'doctype': 'DocType',
'module': 'Accounts',
'name': '__common__',
'section_style': 'Simple',
'show_in_menu': 0,
- 'version': 11
+ 'version': 12
},
# These values are common for all DocField
@@ -34,19 +34,13 @@
# These values are common for all DocPerm
{
- 'cancel': 1,
- 'create': 1,
'doctype': 'DocPerm',
- 'idx': 1,
'name': '__common__',
'parent': 'Loan',
'parentfield': 'permissions',
'parenttype': 'DocType',
- 'permlevel': 0,
'read': 1,
- 'role': 'Accounts User',
- 'submit': 1,
- 'write': 1
+ 'role': 'Accounts User'
},
# DocType, Loan
@@ -57,7 +51,20 @@
# DocPerm
{
- 'doctype': 'DocPerm'
+ 'cancel': 1,
+ 'create': 1,
+ 'doctype': 'DocPerm',
+ 'idx': 1,
+ 'permlevel': 0,
+ 'submit': 1,
+ 'write': 1
+ },
+
+ # DocPerm
+ {
+ 'doctype': 'DocPerm',
+ 'idx': 2,
+ 'permlevel': 1
},
# DocField
diff --git a/accounts/doctype/loan_installment/loan_installment.txt b/accounts/doctype/loan_installment/loan_installment.txt
index bdb8bb3..f729e34 100644
--- a/accounts/doctype/loan_installment/loan_installment.txt
+++ b/accounts/doctype/loan_installment/loan_installment.txt
@@ -5,7 +5,7 @@
{
'creation': '2011-07-15 10:36:42',
'docstatus': 0,
- 'modified': '2011-07-15 10:36:42',
+ 'modified': '2011-07-15 15:48:34',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -19,7 +19,7 @@
'name': '__common__',
'section_style': 'Simple',
'show_in_menu': 0,
- 'version': 1
+ 'version': 4
},
# These values are common for all DocField
@@ -28,8 +28,7 @@
'name': '__common__',
'parent': 'Loan Installment',
'parentfield': 'fields',
- 'parenttype': 'DocType',
- 'permlevel': 0
+ 'parenttype': 'DocType'
},
# DocType, Loan Installment
@@ -44,7 +43,8 @@
'fieldname': 'amount',
'fieldtype': 'Currency',
'idx': 1,
- 'label': 'Amount'
+ 'label': 'Amount',
+ 'permlevel': 0
},
# DocField
@@ -53,25 +53,28 @@
'fieldname': 'due_date',
'fieldtype': 'Date',
'idx': 2,
- 'label': 'Due Date'
+ 'label': 'Due Date',
+ 'permlevel': 0
},
# DocField
{
'doctype': 'DocField',
- 'fieldname': 'check_number',
- 'fieldtype': 'Int',
+ 'fieldname': 'cheque_number',
+ 'fieldtype': 'Data',
'idx': 3,
- 'label': 'Check Number'
+ 'label': 'Cheque Number',
+ 'permlevel': 0
},
# DocField
{
'doctype': 'DocField',
- 'fieldname': 'check_date',
+ 'fieldname': 'cheque_date',
'fieldtype': 'Date',
'idx': 4,
- 'label': 'Check Date'
+ 'label': 'Cheque Date',
+ 'permlevel': 0
},
# DocField
@@ -80,7 +83,8 @@
'fieldname': 'deposit_date',
'fieldtype': 'Date',
'idx': 5,
- 'label': 'Deposit Date'
+ 'label': 'Deposit Date',
+ 'permlevel': 0
},
# DocField
@@ -89,6 +93,19 @@
'fieldname': 'realized_date',
'fieldtype': 'Date',
'idx': 6,
- 'label': 'Realized Date'
+ 'label': 'Realized Date',
+ 'permlevel': 0
+ },
+
+ # DocField
+ {
+ 'doctype': 'DocField',
+ 'fieldname': 'jv_number',
+ 'fieldtype': 'Link',
+ 'hidden': 0,
+ 'idx': 7,
+ 'label': 'JV Number',
+ 'options': 'Journal Voucher',
+ 'permlevel': 1
}
]
\ No newline at end of file