From b3b335c89e37da972222f2b668582189a24b6ee1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 26 Mar 2013 15:03:13 +0530 Subject: [PATCH 1/4] fixes: make payment entry from sales invoice --- .../doctype/sales_invoice/sales_invoice.js | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 5cc09a0c10..31a7ce8de0 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -307,35 +307,27 @@ cur_frm.cscript['Make Delivery Note'] = function() { ); } - - -// Make Bank Voucher Button -// ------------------------- -cur_frm.cscript.make_bank_voucher = function(doc, dt, dn) { - $c('accounts.get_default_bank_account', { company: cur_frm.doc.company }, function(r, rt) { - if(!r.exc) { - cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message); +cur_frm.cscript.make_bank_voucher = function() { + wn.call({ + method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account", + args: { + "company": cur_frm.doc.company, + "voucher_type": "Bank Voucher" + }, + callback: function(r) { + cur_frm.cscript.make_jv(cur_frm.doc, null, null, r.message); } }); } - -/* ***************************** Get Query Functions ************************** */ - -// Debit To -// --------- cur_frm.fields_dict.debit_to.get_query = function(doc) { return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"' } -// Cash/bank account -//------------------ cur_frm.fields_dict.cash_bank_account.get_query = function(doc) { return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"' } -// Write off account -//------------------ cur_frm.fields_dict.write_off_account.get_query = function(doc) { return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"' } @@ -488,8 +480,9 @@ cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) { // credit to bank var d1 = wn.model.add_child(jv, 'Journal Voucher Detail', 'entries'); - d1.account = bank_account; + d1.account = bank_account.account; d1.debit = doc.outstanding_amount; + d1.balance = bank_account.balance; loaddoc('Journal Voucher', jv.name); } From 495db08104d6fc00e66dea58d88d96f71e4f6f29 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 26 Mar 2013 15:24:56 +0530 Subject: [PATCH 2/4] copy expense account to all row if entered in one --- accounts/doctype/sales_invoice/sales_invoice.js | 17 ++++++++++------- stock/doctype/delivery_note/delivery_note.js | 11 +++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 31a7ce8de0..9532a54087 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -421,17 +421,24 @@ cur_frm.fields_dict.delivery_note_main.get_query = function(doc) { cur_frm.cscript.income_account = function(doc, cdt, cdn){ + cur_frm.cscript.copy_account_in_all_row(doc, cdt, cdn, "income_account"); +} + +cur_frm.cscript.expense_account = function(doc, cdt, cdn){ + cur_frm.cscript.copy_account_in_all_row(doc, cdt, cdn, "expense_account"); +} + +cur_frm.cscript.copy_account_in_all_row = function(doc, cdt, cdn, fieldname) { var d = locals[cdt][cdn]; - if(d.income_account){ + if(d[fieldname]){ var cl = getchildren('Sales Invoice Item', doc.name, cur_frm.cscript.fname, doc.doctype); for(var i = 0; i < cl.length; i++){ - if(!cl[i].income_account) cl[i].income_account = d.income_account; + if(!cl[i][fieldname]) cl[i][fieldname] = d[fieldname]; } } refresh_field(cur_frm.cscript.fname); } - cur_frm.cscript.cost_center = function(doc, cdt, cdn){ var d = locals[cdt][cdn]; if(d.cost_center){ @@ -443,10 +450,6 @@ cur_frm.cscript.cost_center = function(doc, cdt, cdn){ refresh_field(cur_frm.cscript.fname); } -/* **************************************** Utility Functions *************************************** */ - -// Details Calculation -// -------------------- cur_frm.cscript.calc_adjustment_amount = function(doc,cdt,cdn) { var doc = locals[doc.doctype][doc.name]; var el = getchildren('Sales Invoice Advance',doc.name,'advance_adjustment_details'); diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js index c7feb1b88e..61df6b0464 100644 --- a/stock/doctype/delivery_note/delivery_note.js +++ b/stock/doctype/delivery_note/delivery_note.js @@ -310,6 +310,17 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) { } } +cur_frm.cscript.expense_account = function(doc, cdt, cdn){ + var d = locals[cdt][cdn]; + if(d.expense_account) { + var cl = getchildren('Delivery Note Item', doc.name, cur_frm.cscript.fname, doc.doctype); + for(var i = 0; i < cl.length; i++){ + if(!cl[i].expense_account) cl[i].expense_account = d.expense_account; + } + } + refresh_field(cur_frm.cscript.fname); +} + // expense account cur_frm.fields_dict['delivery_note_details'].grid.get_field('expense_account').get_query = function(doc) { return { From 7483485ac06a3d1b3d08a4f682dceb05d118533b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 26 Mar 2013 15:43:18 +0530 Subject: [PATCH 3/4] fixes: fetching from pos setting --- accounts/doctype/sales_invoice/sales_invoice.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index a8f76856e2..246dadad32 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -318,9 +318,8 @@ class DocType(SellingController): @property def pos_details(self): if not hasattr(self, "_pos_details"): - dtl = webnotes.conn.sql("""select income_account, warehouse, cost_center, - expense_account from `tabPOS Setting` where user = %s and company = %s""", - (webnotes.session['user'], self.doc.company), as_dict=1) + dtl = webnotes.conn.sql("""select * from `tabPOS Setting` where user = %s + and company = %s""", (webnotes.session['user'], self.doc.company), as_dict=1) if not dtl: dtl = webnotes.conn.sql("""select income_account, warehouse, cost_center, expense_account from `tabPOS Setting` where ifnull(user,'') = '' From 19da7b8bdf7ff636c13bf6d0112baf2221961ca2 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 26 Mar 2013 15:47:46 +0530 Subject: [PATCH 4/4] fixes: fetching from pos setting --- accounts/doctype/sales_invoice/sales_invoice.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index 246dadad32..9b17fc0e61 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -321,9 +321,8 @@ class DocType(SellingController): dtl = webnotes.conn.sql("""select * from `tabPOS Setting` where user = %s and company = %s""", (webnotes.session['user'], self.doc.company), as_dict=1) if not dtl: - dtl = webnotes.conn.sql("""select income_account, warehouse, cost_center, - expense_account from `tabPOS Setting` where ifnull(user,'') = '' - and company = %s""", self.doc.company, as_dict=1) + dtl = webnotes.conn.sql("""select * from `tabPOS Setting` + where ifnull(user,'') = '' and company = %s""", self.doc.company, as_dict=1) self._pos_details = dtl return self._pos_details