From 0a8a4872307ba2f76eb97192f1066b2ad4cf9e6a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 10 Apr 2012 16:50:23 +0530 Subject: [PATCH 1/8] Update erpnext/stock/doctype/item/item.js --- erpnext/stock/doctype/item/item.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 59235ab0324..f60a5f0e23f 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -41,13 +41,13 @@ cur_frm.fields_dict['default_bom'].get_query = function(doc) { // Expense Account // --------------------------------- cur_frm.fields_dict['purchase_account'].get_query = function(doc){ - return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Debit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50' + return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Debit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50' } // Income Account // -------------------------------- cur_frm.fields_dict['default_income_account'].get_query = function(doc) { - return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Credit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.`account_type` ="Income Account" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50' + return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Credit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.`account_type` ="Income Account" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50' } From af094b9daf37b3fe43aae8ba78941a98b35a8541 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 10 Apr 2012 18:07:36 +0530 Subject: [PATCH 2/8] ledger balance export report in new format --- .../ledger_balance_export.py | 122 ++++++++++++++---- 1 file changed, 94 insertions(+), 28 deletions(-) diff --git a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py index b790d066d4c..88a31f2226c 100755 --- a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py +++ b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py @@ -35,45 +35,111 @@ class DocType: yr = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",dt) return yr and yr[0][0] or '' - # Get gl entries for the period and account - def get_gl_entries(self, lft, rgt): - gle = sql("select t1.posting_date, t1.voucher_type, t1.voucher_no, t1.debit, t1.credit, t1.remarks from `tabGL Entry` t1, `tabAccount` t2 WHERE t1.posting_date >= %s AND t1.posting_date <= %s and ifnull(t1.is_opening, 'No') = 'No' AND t1.account = t2.name AND t2.lft >= %s AND t2.rgt <= %s and ifnull(t1.is_cancelled, 'No') = 'No'", (self.doc.from_date, self.doc.to_date, lft, rgt), as_dict=1) + + def validate_date(self): + """check for from date and to date within same year""" + if not sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day) and %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",(self.doc.from_date, self.doc.to_date)): + msgprint("From Date and To Date must be within same year") + raise Exception + + if not self.doc.from_date or not self.doc.to_date: + msgprint("From Date and To Date is mandatory") + raise Exception + + + def add_header(self): + title = 'Ledger Balances Between ' + getdate(self.doc.from_date).strftime('%d-%m-%Y') + ' and ' + getdate(self.doc.to_date).strftime('%d-%m-%Y') + return [[title], ['Account', 'Opening(Dr)', 'Opening (Cr)', 'Debit', 'Credit', 'Closing(Dr)', 'Closing(Cr)'], ['', '', '', '', '', '', '', 'Posting Date', 'Voucher Type', 'Voucher No', 'Debit', 'Credit', 'Remarks']] + + + + def get_account_subtree(self, acc): + return sql(""" + SELECT + CONCAT(REPEAT(' ', COUNT(parent.name) - (sub_tree.depth + 1)), node.name) as account, + node.lft AS lft, node.rgt AS rgt, + node.debit_or_credit as dr_or_cr, node.group_or_ledger as group_or_ledger, node.is_pl_account as is_pl_account + FROM tabAccount AS node, + tabAccount AS parent, + tabAccount AS sub_parent, + ( + SELECT node.name, (COUNT(parent.name) - 1) AS depth + FROM tabAccount AS node, tabAccount AS parent + WHERE node.lft BETWEEN parent.lft AND parent.rgt + AND node.name = %s + GROUP BY node.name + ORDER BY node.lft + )AS sub_tree + WHERE node.lft BETWEEN parent.lft AND parent.rgt + AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt + AND sub_parent.name = sub_tree.name + GROUP BY node.name + ORDER BY node.lft""", acc, as_dict = 1) + + + + def show_acc_summary(self, glc, acc_det): + from_date_year = self.get_year(add_days(self.doc.from_date, -1)) + to_date_year = self.get_year(self.doc.to_date) + acc = acc_det['account'].strip() + + if from_date_year == to_date_year: + debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(self.doc.from_date, -1), acc_det['dr_or_cr'], acc_det['lft'], acc_det['rgt']) # opening = closing of prev_date + elif acc_det['is_pl_account'] == 'No': # if there is no previous year in system and not pl account + opening = sql("select opening from `tabAccount Balance` where account = %s and period = %s", (acc, to_date_year)) + debit_on_fromdate, credit_on_fromdate, opening = 0, 0, flt(opening[0][0]) + else: # if pl account and there is no previous year in system + debit_on_fromdate, credit_on_fromdate, opening = 0,0,0 + + # closing balance + #-------------------------------- + debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, self.doc.to_date, acc_det['dr_or_cr'], acc_det['lft'], acc_det['rgt']) + + # transaction betn the period + #---------------------------------------- + debit = flt(debit_on_todate) - flt(debit_on_fromdate) + credit = flt(credit_on_todate) - flt(credit_on_fromdate) + + # Debit / Credit + if acc_det['dr_or_cr'] == 'Credit': + opening, closing = -1*opening, -1*closing + + return [acc_det['account'], flt(opening>0 and opening or 0), flt(opening<0 and -opening or 0), + debit, credit, flt(closing>0.01 and closing or 0), flt(closing<-0.01 and -closing or 0)] + + + def show_gl_entries(self, acc): + """Get gl entries for the period and account""" + gle = sql("select posting_date, voucher_type, voucher_no, debit, credit, remarks from `tabGL Entry` WHERE account = %s and posting_date >= %s AND posting_date <= %s and ifnull(is_opening, 'No') = 'No' and ifnull(is_cancelled, 'No') = 'No'", (acc, self.doc.from_date, self.doc.to_date), as_dict=1) entries, dr, cr = [], 0, 0 for d in gle: - dr, cr = dr + flt(d['debit']), cr + flt(d['credit']) - entries.append(['', d['posting_date'], d['voucher_type'], d['voucher_no'], d['debit'], d['credit'], d['remarks']]) - return entries, dr, cr + entries.append(['', '', '', '', '', '', '', d['posting_date'], d['voucher_type'], d['voucher_no'], d['debit'], d['credit'], d['remarks']]) + return entries + + + # Get Report Data def get_report_data(self): - from_date_year = self.get_year(add_days(self.doc.from_date, -1)) - to_date_year = self.get_year(self.doc.to_date) + self.validate_date() + + res = [] + res += self.add_header() - # result initiatlization - header = 'Ledger Balances Between ' + getdate(self.doc.from_date).strftime('%d-%m-%Y') + ' and ' + getdate(self.doc.to_date).strftime('%d-%m-%Y') - res = [[header], ['Account', 'Posting Date', 'Voucher Type', 'Voucher No', 'Debit', 'Credit', 'Remarks']] glc = get_obj('GL Control') for d in getlist(self.doclist, 'ledger_details'): # Fetch acc details - acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt from tabAccount where name = '%s'" % d.account, as_dict=1)[0] + sub_tree = self.get_account_subtree(d.account) - # Opening - opening = glc.get_as_on_balance(d.account, from_date_year, add_days(self.doc.from_date, -1), acc_det['debit_or_credit'], acc_det['lft'], acc_det['rgt'])[2] - if acc_det['debit_or_credit'] == 'Credit': - opening = -1*opening + for acc_det in sub_tree: + acc_summary = self.show_acc_summary(glc, acc_det) + res.append(acc_summary) + + # Show gl entries if account is ledger + if acc_det['group_or_ledger'] == 'Ledger' and (acc_summary[3] or acc_summary[4]): + gle = self.show_gl_entries(acc_det['account'].strip()) + res += gle - # GL Entries - gle, debit, credit = self.get_gl_entries(acc_det['lft'], acc_det['rgt']) - - # Closing - closing = opening + debit - credit - - # Append to result - res.append([d.account]) - res += gle - res.append(['', '', '', 'Total Debit/Credit', debit, credit]) - res.append(['', '', '', 'Opening Balance', opening]) - res.append(['', '', '', 'Closing Balance', closing]) return res From 143291db5be0f9bde64238fffea5e19eadf96401 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Apr 2012 12:04:13 +0530 Subject: [PATCH 3/8] merge with appframe changes --- css/all-app.css | 4 ++++ css/all-web.css | 4 ++++ version.num | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/css/all-app.css b/css/all-app.css index a87b4baa8ed..f13ef939978 100644 --- a/css/all-app.css +++ b/css/all-app.css @@ -203,6 +203,10 @@ div.std-footer-item { overflow: hidden; } +.layout-wrapper-appframe { + padding: 0px; +} + .layout-wrapper-background { background-color: #fafafa !important; padding: 0px; diff --git a/css/all-web.css b/css/all-web.css index 96c24cd607c..c1f10d7917d 100644 --- a/css/all-web.css +++ b/css/all-web.css @@ -203,6 +203,10 @@ div.std-footer-item { overflow: hidden; } +.layout-wrapper-appframe { + padding: 0px; +} + .layout-wrapper-background { background-color: #fafafa !important; padding: 0px; diff --git a/version.num b/version.num index 6c19a26a546..d32d224a227 100644 --- a/version.num +++ b/version.num @@ -1 +1 @@ -1683 +1684 \ No newline at end of file From 7fca9e617d9f6ee598cf02d5b093ce181c7f7c13 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 13 Apr 2012 12:18:06 +0530 Subject: [PATCH 4/8] fixes in global defaults --- css/all-app.css | 4 ++-- .../purchase_in_transit/purchase_in_transit.txt | 8 ++++---- erpnext/setup/doctype/global_defaults/global_defaults.py | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/css/all-app.css b/css/all-app.css index a87b4baa8ed..85bea74aea4 100644 --- a/css/all-app.css +++ b/css/all-app.css @@ -330,7 +330,7 @@ div.notice { div.form-title { /*background-color: #e0eeff;*/ - padding: 5px 19px 15px 19px; + padding: 5px 11px 15px 11px; margin: -15px -15px 0px -15px; border-bottom: 1px solid #eee; } @@ -338,7 +338,7 @@ div.form-title { div.form-section-head { margin: 11px -15px 3px -15px; border-top: 1px solid #ccc; - padding: 11px 23px 0px 23px; + padding: 11px 15px 0px 15px; } div.form-layout-row:first-child .form-section-head { diff --git a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt index 9009ccf7744..e49ea0bf6af 100644 --- a/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt +++ b/erpnext/buying/search_criteria/purchase_in_transit/purchase_in_transit.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2012-04-03 12:49:52', + 'creation': '2012-04-11 13:16:55', 'docstatus': 0, - 'modified': '2012-04-03 12:49:52', + 'modified': '2012-04-13 12:06:15', 'modified_by': u'Administrator', 'owner': u'Administrator' }, @@ -15,13 +15,13 @@ 'add_col': u"`tabPurchase Receipt`.`posting_date` AS 'PR Posting Date'", 'add_cond': u"`tabPurchase Invoice Item`.`purchase_receipt` = `tabPurchase Receipt`.`name`\n`tabPurchase Receipt`.`posting_date` >= '%(pr_posting_date)s'\n`tabPurchase Receipt`.`posting_date` <= '%(pr_posting_date1)s'\n`tabPurchase Receipt`.`posting_date` > `tabPurchase Invoice`.`posting_date`", 'add_tab': u'`tabPurchase Receipt`', - 'columns': u'Purchase Invoice\x01ID,Purchase Invoice\x01Voucher Date,Purchase Invoice\x01Posting Date,Purchase Invoice\x01Credit To,Purchase Invoice Item\x01Rate,Purchase Invoice Item\x01Qty,Purchase Invoice Item\x01Amount,Purchase Invoice Item\x01Pur Order,Purchase Invoice Item\x01Pur Receipt', + 'columns': u'Purchase Invoice\x01ID,Purchase Invoice\x01Posting Date,Purchase Invoice\x01Credit To,Purchase Invoice Item\x01Qty,Purchase Invoice Item\x01Amount,Purchase Invoice Item\x01Pur Order,Purchase Invoice Item\x01Pur Receipt', 'criteria_name': u'Purchase in Transit', 'description': u'List of PR whose posting date is after PV posting date', 'dis_filters': u'`tabPurchase Receipt`.`pr_posting_date`', 'doc_type': u'Purchase Invoice Item', 'doctype': 'Search Criteria', - 'filters': u"{'Purchase Invoice\x01Submitted':1,'Purchase Invoice\x01From Posting Date\x01lower':'2009-04-01','Purchase Invoice\x01To Posting Date\x01upper':'2010-01-11','Purchase Invoice\x01Is Opening':'','Purchase Invoice\x01Fiscal Year':'','Purchase Invoice\x01Company':'','Purchase Receipt\x01From PR Posting Date\x01lower':'2009-04-01','Purchase Receipt\x01To PR Posting Date\x01upper':'2010-01-11'}", + 'filters': u'{"Purchase Invoice\\u0001Submitted":1,"Purchase Invoice\\u0001Is Opening":[""],"Purchase Invoice\\u0001Fiscal Year":[""]}', 'module': u'Buying', 'name': '__common__', 'page_len': 50, diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.py b/erpnext/setup/doctype/global_defaults/global_defaults.py index 15700e89c45..41b3429ec95 100644 --- a/erpnext/setup/doctype/global_defaults/global_defaults.py +++ b/erpnext/setup/doctype/global_defaults/global_defaults.py @@ -56,7 +56,7 @@ class DocType: # update year start date and year end date from fiscal_year ysd = webnotes.conn.sql("""select year_start_date from `tabFiscal Year` - where name=%s""", self.doc.fiscal_year) + where name=%s""", self.doc.current_fiscal_year) ysd = ysd and ysd[0][0] or '' from webnotes.utils import get_first_day, get_last_day @@ -66,4 +66,4 @@ class DocType: get_last_day(get_first_day(ysd,0,11)).strftime('%Y-%m-%d')) def get_defaults(self): - return webnotes.conn.get_defaults() \ No newline at end of file + return webnotes.conn.get_defaults() From b641ed2a1eff0354fb168e3e9b9e1166fc8f8013 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Apr 2012 12:27:56 +0530 Subject: [PATCH 5/8] Added doc_type to JV Print Formats --- .../Cheque Printing Format.txt | 17 +++++++++-------- .../Payment Receipt Voucher.txt | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt b/erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt index aa903116e0a..e3355ec8b82 100755 --- a/erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt +++ b/erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt @@ -3,25 +3,26 @@ # These values are common in all dictionaries { - 'creation': '2011-03-28 15:17:25', + 'creation': '2012-04-11 13:16:56', 'docstatus': 0, - 'modified': '2011-03-28 12:33:24', - 'modified_by': 'umair@iwebnotes.com', - 'owner': 'Administrator' + 'modified': '2012-04-13 12:24:20', + 'modified_by': u'Administrator', + 'owner': u'Administrator' }, # These values are common for all Print Format { + 'doc_type': u'Journal Voucher', 'doctype': 'Print Format', - 'html': '\n
\n



\n
\nPAYMENT ADVICE

\n\n\n\n\n\n\n\n
To :
\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Voucher No :\n\n
Voucher Date :\n\n
Cheque No :\n\n
Cheque Date :\n\n
\n
\n
We are pleased to enclose our cheque in full/part Settlement of your under noted bills
\n
\n\n\n\n\n\n\n\n\n\n\n\n
 Total :\n\n
Narration :\n\n


\n
Prepared By
\n
Authorised Signatory
\n
Received Payment as Above
\n
_____________
\n
A/c Payee
\n
_____________
\n
\n\n
\n
\n\n
\n
\n\n
\n
\n\n
\n
', - 'module': 'Accounts', + 'html': u'\n
\n



\n
\nPAYMENT ADVICE

\n\n\n\n\n\n\n\n
To :
\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Voucher No :\n\n
Voucher Date :\n\n
Cheque No :\n\n
Cheque Date :\n\n
\n
\n
We are pleased to enclose our cheque in full/part Settlement of your under noted bills
\n
\n\n\n\n\n\n\n\n\n\n\n\n
 Total :\n\n
Narration :\n\n


\n
Prepared By
\n
Authorised Signatory
\n
Received Payment as Above
\n
_____________
\n
A/c Payee
\n
_____________
\n
\n\n
\n
\n\n
\n
\n\n
\n
\n\n
\n
', + 'module': u'Accounts', 'name': '__common__', - 'standard': 'Yes' + 'standard': u'Yes' }, # Print Format, Cheque Printing Format { 'doctype': 'Print Format', - 'name': 'Cheque Printing Format' + 'name': u'Cheque Printing Format' } ] \ No newline at end of file diff --git a/erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt b/erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt index 932df2e5d6c..4b56d7256ee 100755 --- a/erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt +++ b/erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt @@ -3,25 +3,26 @@ # These values are common in all dictionaries { - 'creation': '2011-03-28 15:17:25', + 'creation': '2012-04-11 13:16:56', 'docstatus': 0, - 'modified': '2011-03-28 12:31:40', - 'modified_by': 'umair@iwebnotes.com', - 'owner': 'Administrator' + 'modified': '2012-04-13 12:24:59', + 'modified_by': u'Administrator', + 'owner': u'Administrator' }, # These values are common for all Print Format { + 'doc_type': u'Journal Voucher', 'doctype': 'Print Format', - 'html': '
\n

\n

\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
Receipt No.:
Date :
Remark:
Received From:
\n
\n\n

\n

\n
This receipt is issued subject to realization of the Cheque
\n
\n
\n\n\n\n\n

For ,


(Authorised Signatory)
', - 'module': 'Accounts', + 'html': u'
\n

\n

\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n
Receipt No.:
Date :
Remark:
Received From:
\n
\n\n

\n

\n
This receipt is issued subject to realization of the Cheque
\n
\n
\n\n\n\n\n

For ,


(Authorised Signatory)
', + 'module': u'Accounts', 'name': '__common__', - 'standard': 'Yes' + 'standard': u'Yes' }, # Print Format, Payment Receipt Voucher { 'doctype': 'Print Format', - 'name': 'Payment Receipt Voucher' + 'name': u'Payment Receipt Voucher' } ] \ No newline at end of file From 3abe9bd01899f2c76f8bac886bd907233e8fe46f Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Apr 2012 12:36:44 +0530 Subject: [PATCH 6/8] fixes in fieldnames and hide unnecessary fields in jv --- erpnext/accounts/doctype/account/account.js | 6 +- .../journal_voucher/journal_voucher.txt | 60 +++++++++---------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/erpnext/accounts/doctype/account/account.js b/erpnext/accounts/doctype/account/account.js index 640e2a9c225..501ae40720f 100644 --- a/erpnext/accounts/doctype/account/account.js +++ b/erpnext/accounts/doctype/account/account.js @@ -33,9 +33,9 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { // hide India specific fields var cp = wn.control_panel; if(cp.country == 'India') - unhide_field(['pan_number', 'tds_applicable', 'tds_details', 'TDS']); + unhide_field(['pan_number', 'tds_applicable', 'tds_details', 'tds']); else - hide_field(['pan_number', 'tds_applicable', 'tds_details', 'TDS']); + hide_field(['pan_number', 'tds_applicable', 'tds_details', 'tds']); } // Refresh @@ -50,7 +50,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { // Hide/unhide group or ledger // ----------------------------------------- cur_frm.cscript.hide_unhide_group_ledger = function(doc) { - hide_field(['Convert to Group', 'Convert to Ledger']); + hide_field(['convert_to_group', 'convert_to_ledger']); if (cstr(doc.group_or_ledger) == 'Group') unhide_field('convert_to_ledger'); else if (cstr(doc.group_or_ledger) == 'Ledger') unhide_field('convert_to_ledger'); } diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt b/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt index dedd2f916ab..97055f3be02 100644 --- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt +++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2012-03-27 14:35:43', + 'creation': '2012-04-13 11:55:50', 'docstatus': 0, - 'modified': '2012-03-27 14:45:48', + 'modified': '2012-04-13 12:28:24', 'modified_by': u'Administrator', 'owner': u'Administrator' }, @@ -25,7 +25,7 @@ 'show_in_menu': 0, 'subject': u' ', 'tag_fields': u'voucher_type', - 'version': 311 + 'version': 312 }, # These values are common for all DocField @@ -53,30 +53,6 @@ 'name': u'Journal Voucher' }, - # DocPerm - { - 'amend': 1, - 'cancel': 1, - 'create': 1, - 'doctype': u'DocPerm', - 'permlevel': 0, - 'role': u'Accounts User', - 'submit': 1, - 'write': 1 - }, - - # DocPerm - { - 'amend': 0, - 'cancel': 0, - 'create': 0, - 'doctype': u'DocPerm', - 'permlevel': 1, - 'role': u'Accounts User', - 'submit': 0, - 'write': 0 - }, - # DocPerm { 'amend': 0, @@ -101,6 +77,30 @@ 'write': 1 }, + # DocPerm + { + 'amend': 1, + 'cancel': 1, + 'create': 1, + 'doctype': u'DocPerm', + 'permlevel': 0, + 'role': u'Accounts User', + 'submit': 1, + 'write': 1 + }, + + # DocPerm + { + 'amend': 0, + 'cancel': 0, + 'create': 0, + 'doctype': u'DocPerm', + 'permlevel': 1, + 'role': u'Accounts User', + 'submit': 0, + 'write': 0 + }, + # DocField { 'doctype': u'DocField', @@ -526,7 +526,7 @@ 'doctype': u'DocField', 'fieldname': u'pay_to_recd_from', 'fieldtype': u'Data', - 'hidden': 0, + 'hidden': 1, 'label': u'Pay To / Recd From', 'no_copy': 1, 'permlevel': 0, @@ -539,7 +539,7 @@ 'doctype': u'DocField', 'fieldname': u'total_amount', 'fieldtype': u'Data', - 'hidden': 0, + 'hidden': 1, 'label': u'Total Amount', 'no_copy': 1, 'permlevel': 1, @@ -552,7 +552,7 @@ 'doctype': u'DocField', 'fieldname': u'total_amount_in_words', 'fieldtype': u'Data', - 'hidden': 0, + 'hidden': 1, 'label': u'Total Amount in Words', 'no_copy': 1, 'permlevel': 1, From b09b3bc253858d28db0d100c85311c4832cc1118 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 13 Apr 2012 14:13:02 +0530 Subject: [PATCH 7/8] all fields visible if any other custom purpose in stock entry --- .../stock/doctype/stock_entry/stock_entry.js | 6 +- .../stock/doctype/stock_entry/stock_entry.py | 11 +- .../stock/doctype/stock_entry/stock_entry.txt | 140 +++++++++++------- 3 files changed, 96 insertions(+), 61 deletions(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index 07e83edc144..55e7b412367 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -23,7 +23,10 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { var cfn_set_fields = function(doc, cdt, cdn) { lst = ['supplier','supplier_name','supplier_address','customer','customer_name','customer_address']; - hide_field(lst); + if (in_list(['Material Issue', 'Material Transfer', 'Material Receipt', 'Production Order', 'Subcontracting', 'Other'], doc.purpose)) { + hide_field(lst); + } else unhide_field(lst); + if (doc.purpose == 'Production Order' || doc.purpose == 'Other'){ unhide_field('Get Items'); @@ -52,6 +55,7 @@ var cfn_set_fields = function(doc, cdt, cdn) { if(doc.purpose == 'Purchase Return'){ doc.customer=doc.customer_name = doc.customer_address=doc.delivery_note_no=doc.sales_invoice_no=''; unhide_field(['supplier','supplier_name','supplier_address','purchase_receipt_no']); + } else if(doc.purpose == 'Sales Return'){ doc.supplier=doc.supplier_name = doc.supplier_address=doc.purchase_receipt_no=''; diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 96642d0dc2b..a6fbba02b0c 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -31,8 +31,9 @@ in_transaction = webnotes.conn.in_transaction convert_to_lists = webnotes.conn.convert_to_lists # ----------------------------------------------------------------------------------------- +from utilities.transaction_base import TransactionBase -class DocType: +class DocType(TransactionBase): def __init__(self, doc, doclist=[]): self.doc = doc self.doclist = doclist @@ -510,10 +511,11 @@ class DocType: def get_cust_addr(self): - res = sql("select customer_name,address from `tabCustomer` where name = '%s'"%self.doc.customer) + res = sql("select customer_name from `tabCustomer` where name = '%s'"%self.doc.customer) + addr = self.get_address_text(customer = self.doc.customer) ret = { 'customer_name' : res and res[0][0] or '', - 'customer_address' : res and res[0][1] or ''} + 'customer_address' : addr and addr[0] or ''} return ret @@ -530,7 +532,8 @@ class DocType: def get_supp_addr(self): res = sql("select supplier_name,address from `tabSupplier` where name = '%s'"%self.doc.supplier) + addr = self.get_address_text(supplier = self.doc.supplier) ret = { 'supplier_name' : res and res[0][0] or '', - 'supplier_address' : res and res[0][1] or ''} + 'supplier_address' : addr and addr[0] or ''} return ret diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.txt b/erpnext/stock/doctype/stock_entry/stock_entry.txt index 9792fc91c53..54053b74fa3 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.txt +++ b/erpnext/stock/doctype/stock_entry/stock_entry.txt @@ -3,16 +3,16 @@ # These values are common in all dictionaries { - 'creation': '2010-08-08 17:09:25', + 'creation': '2009-05-12 16:46:45', 'docstatus': 0, - 'modified': '2012-03-21 11:00:48', + 'modified': '2012-04-13 14:12:02', 'modified_by': u'Administrator', 'owner': u'Administrator' }, # These values are common for all DocType { - '_last_update': u'1332233897', + '_last_update': u'1334303911', 'allow_attach': 0, 'allow_copy': 0, 'allow_email': 0, @@ -41,7 +41,7 @@ 'subject': u'%(remarks)s', 'tag_fields': u'purpose', 'use_template': 0, - 'version': 259 + 'version': 263 }, # These values are common for all DocField @@ -71,26 +71,26 @@ # DocPerm { - 'amend': 0, - 'cancel': 0, - 'create': 0, + 'amend': 1, + 'cancel': 1, + 'create': 1, 'doctype': u'DocPerm', - 'permlevel': 1, - 'role': u'Material Manager', - 'submit': 0, - 'write': 0 - }, - - # DocPerm - { - 'amend': 0, - 'cancel': 0, - 'create': 0, - 'doctype': u'DocPerm', - 'permlevel': 1, + 'permlevel': 0, 'role': u'Material User', - 'submit': 0, - 'write': 0 + 'submit': 1, + 'write': 1 + }, + + # DocPerm + { + 'amend': 1, + 'cancel': 1, + 'create': 1, + 'doctype': u'DocPerm', + 'permlevel': 0, + 'role': u'Material Manager', + 'submit': 1, + 'write': 1 }, # DocPerm @@ -105,30 +105,6 @@ 'write': 1 }, - # DocPerm - { - 'amend': 0, - 'cancel': 0, - 'create': 0, - 'doctype': u'DocPerm', - 'permlevel': 1, - 'role': u'Production User', - 'submit': 0, - 'write': 0 - }, - - # DocPerm - { - 'amend': 0, - 'cancel': 0, - 'create': 0, - 'doctype': u'DocPerm', - 'permlevel': 2, - 'role': u'Production User', - 'submit': 0, - 'write': 1 - }, - # DocPerm { 'amend': 1, @@ -148,20 +124,25 @@ 'create': 0, 'doctype': u'DocPerm', 'permlevel': 1, - 'role': u'Production Manager', + 'role': u'All', 'submit': 0, 'write': 0 }, # DocPerm { - 'amend': 0, - 'cancel': 0, 'create': 0, + 'doctype': u'DocPerm', + 'permlevel': 2, + 'role': u'Production User', + 'write': 1 + }, + + # DocPerm + { 'doctype': u'DocPerm', 'permlevel': 2, 'role': u'Production Manager', - 'submit': 0, 'write': 1 }, @@ -191,12 +172,13 @@ 'doctype': u'DocField', 'fieldname': u'naming_series', 'fieldtype': u'Select', + 'hidden': 0, 'in_filter': 0, 'label': u'Series', 'no_copy': 1, 'oldfieldname': u'naming_series', 'oldfieldtype': u'Select', - 'options': u'STE', + 'options': u'\nSTE', 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, @@ -211,6 +193,7 @@ 'doctype': u'DocField', 'fieldname': u'amendment_date', 'fieldtype': u'Date', + 'hidden': 0, 'in_filter': 0, 'label': u'Amendment Date', 'no_copy': 1, @@ -219,6 +202,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -229,6 +213,7 @@ 'doctype': u'DocField', 'fieldname': u'purpose', 'fieldtype': u'Select', + 'hidden': 0, 'in_filter': 1, 'label': u'Purpose', 'no_copy': 0, @@ -236,6 +221,7 @@ 'oldfieldtype': u'Select', 'options': u'Material Issue\nMaterial Receipt\nMaterial Transfer\nSales Return\nPurchase Return\nSubcontracting\nProduction Order\nOther', 'permlevel': 0, + 'print_hide': 0, 'report_hide': 0, 'reqd': 1, 'search_index': 0, @@ -259,6 +245,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 1, 'trigger': u'Client' }, @@ -280,6 +267,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 1, 'trigger': u'Client' }, @@ -303,7 +291,7 @@ 'doctype': u'DocField', 'fieldname': u'supplier', 'fieldtype': u'Link', - 'hidden': 1, + 'hidden': 0, 'in_filter': 0, 'label': u'Supplier', 'no_copy': 0, @@ -313,6 +301,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0, 'trigger': u'Client' }, @@ -323,13 +312,16 @@ 'doctype': u'DocField', 'fieldname': u'supplier_name', 'fieldtype': u'Data', + 'hidden': 0, 'in_filter': 0, 'label': u'Supplier Name', 'no_copy': 0, 'oldfieldname': u'supplier_name', 'oldfieldtype': u'Data', 'permlevel': 1, + 'print_hide': 0, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -340,14 +332,16 @@ 'doctype': u'DocField', 'fieldname': u'supplier_address', 'fieldtype': u'Small Text', - 'hidden': 1, + 'hidden': 0, 'in_filter': 0, 'label': u'Supplier Address', 'no_copy': 0, 'oldfieldname': u'supplier_address', 'oldfieldtype': u'Small Text', 'permlevel': 0, + 'print_hide': 0, 'report_hide': 0, + 'reqd': 0, 'search_index': 0, 'trigger': u'Client' }, @@ -359,7 +353,7 @@ 'doctype': u'DocField', 'fieldname': u'customer', 'fieldtype': u'Link', - 'hidden': 1, + 'hidden': 0, 'in_filter': 0, 'label': u'Customer', 'no_copy': 0, @@ -369,6 +363,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0, 'trigger': u'Client' }, @@ -379,14 +374,16 @@ 'doctype': u'DocField', 'fieldname': u'customer_name', 'fieldtype': u'Data', - 'hidden': 1, + 'hidden': 0, 'in_filter': 0, 'label': u'Customer Name', 'no_copy': 0, 'oldfieldname': u'customer_name', 'oldfieldtype': u'Data', 'permlevel': 1, + 'print_hide': 0, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -396,14 +393,16 @@ 'doctype': u'DocField', 'fieldname': u'customer_address', 'fieldtype': u'Small Text', - 'hidden': 1, + 'hidden': 0, 'in_filter': 0, 'label': u'Customer Address', 'no_copy': 0, 'oldfieldname': u'customer_address', 'oldfieldtype': u'Small Text', 'permlevel': 0, + 'print_hide': 0, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -424,6 +423,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0, 'trigger': u'Client' }, @@ -445,6 +445,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 1, 'trigger': u'Client' }, @@ -479,6 +480,7 @@ 'doctype': u'DocField', 'fieldname': u'fg_completed_qty', 'fieldtype': u'Currency', + 'hidden': 0, 'in_filter': 0, 'label': u'FG Completed Qty', 'no_copy': 0, @@ -487,6 +489,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0, 'trigger': u'Client' }, @@ -511,6 +514,7 @@ 'doctype': u'DocField', 'fieldname': u'from_warehouse', 'fieldtype': u'Link', + 'hidden': 0, 'in_filter': 0, 'label': u'Source Warehouse', 'no_copy': 0, @@ -533,6 +537,7 @@ 'doctype': u'DocField', 'fieldname': u'to_warehouse', 'fieldtype': u'Link', + 'hidden': 0, 'in_filter': 0, 'label': u'Target Warehouse', 'no_copy': 0, @@ -576,6 +581,7 @@ 'doctype': u'DocField', 'fieldname': u'transfer_date', 'fieldtype': u'Date', + 'hidden': 0, 'in_filter': 1, 'label': u'Transfer Date', 'no_copy': 1, @@ -595,6 +601,7 @@ 'doctype': u'DocField', 'fieldname': u'posting_date', 'fieldtype': u'Date', + 'hidden': 0, 'in_filter': 1, 'label': u'Posting Date', 'no_copy': 1, @@ -613,6 +620,7 @@ 'doctype': u'DocField', 'fieldname': u'posting_time', 'fieldtype': u'Time', + 'hidden': 0, 'in_filter': 0, 'label': u'Posting Time', 'no_copy': 1, @@ -631,6 +639,7 @@ 'doctype': u'DocField', 'fieldname': u'amended_from', 'fieldtype': u'Link', + 'hidden': 0, 'in_filter': 0, 'label': u'Amended From', 'no_copy': 1, @@ -640,6 +649,7 @@ 'permlevel': 1, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -649,6 +659,7 @@ 'doctype': u'DocField', 'fieldname': u'transporter', 'fieldtype': u'Data', + 'hidden': 0, 'in_filter': 0, 'label': u'Transporter', 'no_copy': 0, @@ -657,6 +668,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -666,6 +678,7 @@ 'doctype': u'DocField', 'fieldname': u'is_excisable_goods', 'fieldtype': u'Select', + 'hidden': 0, 'in_filter': 0, 'label': u'Is Excisable Goods', 'no_copy': 0, @@ -675,6 +688,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -684,6 +698,7 @@ 'doctype': u'DocField', 'fieldname': u'excisable_goods', 'fieldtype': u'Select', + 'hidden': 0, 'in_filter': 0, 'label': u'Excisable Goods', 'no_copy': 0, @@ -693,6 +708,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -712,6 +728,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -721,6 +738,7 @@ 'doctype': u'DocField', 'fieldname': u'remarks', 'fieldtype': u'Text', + 'hidden': 0, 'in_filter': 0, 'label': u'Remarks', 'no_copy': 1, @@ -795,6 +813,7 @@ 'permlevel': 0, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -814,6 +833,7 @@ 'doctype': u'DocField', 'fieldname': u'mtn_details', 'fieldtype': u'Table', + 'hidden': 0, 'in_filter': 0, 'label': u'MTN Details', 'no_copy': 0, @@ -823,6 +843,7 @@ 'permlevel': 0, 'print_hide': 0, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -832,6 +853,7 @@ 'doctype': u'DocField', 'fieldname': u'total_amount', 'fieldtype': u'Currency', + 'hidden': 0, 'in_filter': 0, 'label': u'Total Amount', 'no_copy': 0, @@ -840,6 +862,7 @@ 'permlevel': 1, 'print_hide': 1, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 }, @@ -858,6 +881,7 @@ 'doctype': u'DocField', 'fieldname': u'company', 'fieldtype': u'Link', + 'hidden': 0, 'in_filter': 1, 'label': u'Company', 'no_copy': 0, @@ -877,6 +901,7 @@ 'doctype': u'DocField', 'fieldname': u'fiscal_year', 'fieldtype': u'Select', + 'hidden': 0, 'in_filter': 0, 'label': u'Fiscal Year', 'no_copy': 0, @@ -896,6 +921,7 @@ 'doctype': u'DocField', 'fieldname': u'select_print_heading', 'fieldtype': u'Link', + 'hidden': 0, 'in_filter': 0, 'label': u'Select Print Heading', 'no_copy': 0, @@ -903,7 +929,9 @@ 'oldfieldtype': u'Link', 'options': u'Print Heading', 'permlevel': 0, + 'print_hide': 0, 'report_hide': 0, + 'reqd': 0, 'search_index': 0 } ] \ No newline at end of file From 82c53871c78b00a3f5a8383ea9605ee4bc25b453 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 13 Apr 2012 14:39:04 +0530 Subject: [PATCH 8/8] fixes in se js --- erpnext/stock/doctype/stock_entry/stock_entry.js | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index 55e7b412367..bc6c44d336f 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -17,6 +17,7 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { if (!doc.posting_date) doc.posting_date = dateutil.obj_to_str(new Date()); if (!doc.transfer_date) doc.transfer_date = dateutil.obj_to_str(new Date()); + if(!doc.purpose) set_multiple(cdt, cdn, {purpose:'Material Issue'}); cfn_set_fields(doc, cdt, cdn); }