From e60f4560d16856d184304eb4f1aa11129cb989cc Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 4 Apr 2013 14:00:56 +0530 Subject: [PATCH 01/11] [supplier] [fix] on_trash sql syntax fix --- buying/doctype/supplier/supplier.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py index 6658db3135..0137504b30 100644 --- a/buying/doctype/supplier/supplier.py +++ b/buying/doctype/supplier/supplier.py @@ -142,11 +142,11 @@ class DocType(TransactionBase): return '' def delete_supplier_address(self): - for rec in sql("select * from `tabAddress` where supplier='%s'" %(self.doc.name), as_dict=1): + for rec in sql("select * from `tabAddress` where supplier=%s", (self.doc.name,), as_dict=1): sql("delete from `tabAddress` where name=%s",(rec['name'])) def delete_supplier_contact(self): - for rec in sql("select * from `tabContact` where supplier='%s'" %(self.doc.name), as_dict=1): + for rec in sql("select * from `tabContact` where supplier=%s", (self.doc.name,), as_dict=1): sql("delete from `tabContact` where name=%s",(rec['name'])) def delete_supplier_communication(self): From a8d8abc670ef0c367f7f3fc38c8c56bf4676cbff Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 4 Apr 2013 15:31:03 +0530 Subject: [PATCH 02/11] small fixes in item --- stock/doctype/item/item.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py index 43bae2c9e7..2a2fa58471 100644 --- a/stock/doctype/item/item.py +++ b/stock/doctype/item/item.py @@ -40,7 +40,7 @@ class DocType(DocListController): self.update_website() bin = sql("select stock_uom from `tabBin` where item_code = '%s' " % self.doc.item_code) - if bin and cstr(bin[0][0]) != cstr(self.doc.stock_uom): + if bin and cstr(bin[0][0]) and cstr(bin[0][0]) != cstr(self.doc.stock_uom): msgprint("Please Update Stock UOM with the help of Stock UOM Replace Utility.") raise Exception check_list = [] From 1a738f72f4430ab508b654a0c7592647539d6fd0 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 4 Apr 2013 16:34:51 +0530 Subject: [PATCH 03/11] match condition added in daily time log summary report --- .../daily_time_log_summary.js | 4 ++-- .../daily_time_log_summary.py | 23 +++++++++++++------ .../stock_reconciliation.js | 2 +- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.js b/projects/report/daily_time_log_summary/daily_time_log_summary.js index 8147676704..ba87d0d2f7 100644 --- a/projects/report/daily_time_log_summary/daily_time_log_summary.js +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.js @@ -3,13 +3,13 @@ wn.query_reports["Daily Time Log Summary"] = { { "fieldname":"from_date", "label": "From Date", - "fieldtype": "Datetime", + "fieldtype": "Date", "default": wn.datetime.get_today() }, { "fieldname":"to_date", "label": "To Date", - "fieldtype": "Datetime", + "fieldtype": "Date", "default": wn.datetime.get_today() }, ] diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.py b/projects/report/daily_time_log_summary/daily_time_log_summary.py index 0309977a8c..eec5444952 100644 --- a/projects/report/daily_time_log_summary/daily_time_log_summary.py +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.py @@ -2,7 +2,11 @@ from __future__ import unicode_literals import webnotes def execute(filters=None): - if not filters: filters = {} + if not filters: + filters = {} + elif filters.get("to_date"): + filters["to_date"] = filters.get("to_date") + "24:00:00" + columns = ["Employee::150", "From Datetime::120", "To Datetime::120", "Hours::70", "Task::150", "Project:Link/Project:120", "Status::70"] @@ -10,19 +14,19 @@ def execute(filters=None): conditions = build_conditions(filters) time_logs = webnotes.conn.sql("""select * from `tabTime Log` - where docstatus < 2 %s order by owner asc""" % (conditions,), filters, as_dict=1) - - data = [] - profiles = [time_logs[0].owner] + where docstatus < 2 %s order by owner asc""" % (conditions, ), filters, as_dict=1) + + data = [] + if time_logs: + profiles = [time_logs[0].owner] for tl in time_logs: - if tl.owner not in profiles: profiles.append(tl.owner) data.append([]) data.append([profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours, - tl.task, tl.project, tl.status]) + tl.task, tl.project, tl.status]) return columns, data @@ -42,5 +46,10 @@ def build_conditions(filters): conditions += " and from_time >= %(from_date)s" if filters.get("to_date"): conditions += " and to_time <= %(to_date)s" + + from webnotes.widgets.reportview import build_match_conditions + match_conditions = build_match_conditions("Time Log") + if match_conditions: + conditions += " and %s" % match_conditions return conditions \ No newline at end of file diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js index b723061d74..3938661eaf 100644 --- a/stock/doctype/stock_reconciliation/stock_reconciliation.js +++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js @@ -67,7 +67,7 @@ erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({ attach the modified file."); } } else if(this.frm.doc.docstatus == 1) { - this.frm.set_intro("Cancelling this Stock Reconciliation will nullify it's effect."); + this.frm.set_intro("Cancelling this Stock Reconciliation will nullify its effect."); this.show_stock_ledger(); } else { this.frm.set_intro(""); From 93b4e4d90c9e3abe5ef8c98f2a4c4fca9981eb20 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 5 Apr 2013 11:11:14 +0530 Subject: [PATCH 04/11] [JV] added letter head field in jv --- .../journal_voucher/journal_voucher.txt | 104 +++++++++++++----- 1 file changed, 78 insertions(+), 26 deletions(-) diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt index dc857c8ce1..471b9f233a 100644 --- a/accounts/doctype/journal_voucher/journal_voucher.txt +++ b/accounts/doctype/journal_voucher/journal_voucher.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-07 12:35:57", + "creation": "2013-03-25 10:53:52", "docstatus": 0, - "modified": "2013-03-21 13:02:27", + "modified": "2013-04-05 11:10:35", "modified_by": "Administrator", "owner": "Administrator" }, @@ -24,9 +24,6 @@ "permlevel": 0 }, { - "amend": 1, - "cancel": 1, - "create": 1, "doctype": "DocPerm", "name": "__common__", "parent": "Journal Voucher", @@ -34,9 +31,7 @@ "parenttype": "DocType", "permlevel": 0, "read": 1, - "report": 1, - "submit": 1, - "write": 1 + "report": 1 }, { "doctype": "DocType", @@ -47,6 +42,7 @@ "fieldname": "column_break0", "fieldtype": "Column Break", "oldfieldtype": "Column Break", + "read_only": 0, "width": "50%" }, { @@ -60,6 +56,7 @@ "oldfieldtype": "Select", "options": "JV", "print_hide": 1, + "read_only": 0, "reqd": 1 }, { @@ -73,6 +70,7 @@ "oldfieldtype": "Select", "options": "\nJournal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher", "print_hide": 0, + "read_only": 0, "search_index": 1 }, { @@ -80,6 +78,7 @@ "fieldname": "column_break1", "fieldtype": "Column Break", "oldfieldtype": "Column Break", + "read_only": 0, "width": "50%" }, { @@ -93,6 +92,7 @@ "no_copy": 1, "oldfieldname": "posting_date", "oldfieldtype": "Date", + "read_only": 0, "reqd": 1, "search_index": 1 }, @@ -102,7 +102,8 @@ "fieldtype": "Section Break", "label": "Journal Entries", "oldfieldtype": "Section Break", - "options": "Simple" + "options": "Simple", + "read_only": 0 }, { "allow_on_submit": 1, @@ -113,13 +114,15 @@ "oldfieldname": "entries", "oldfieldtype": "Table", "options": "Journal Voucher Detail", - "print_hide": 0 + "print_hide": 0, + "read_only": 0 }, { "doctype": "DocField", "fieldname": "section_break99", "fieldtype": "Section Break", - "options": "Simple" + "options": "Simple", + "read_only": 0 }, { "doctype": "DocField", @@ -149,7 +152,8 @@ { "doctype": "DocField", "fieldname": "column_break99", - "fieldtype": "Column Break" + "fieldtype": "Column Break", + "read_only": 0 }, { "doctype": "DocField", @@ -168,13 +172,15 @@ "fieldname": "get_balance", "fieldtype": "Button", "label": "Make Difference Entry", - "oldfieldtype": "Button" + "oldfieldtype": "Button", + "read_only": 0 }, { "doctype": "DocField", "fieldname": "reference", "fieldtype": "Section Break", - "label": "Reference" + "label": "Reference", + "read_only": 0 }, { "description": "eg. Cheque Number", @@ -187,6 +193,7 @@ "no_copy": 1, "oldfieldname": "cheque_no", "oldfieldtype": "Data", + "read_only": 0, "search_index": 1 }, { @@ -196,7 +203,8 @@ "label": "Reference Date", "no_copy": 1, "oldfieldname": "cheque_date", - "oldfieldtype": "Date" + "oldfieldtype": "Date", + "read_only": 0 }, { "doctype": "DocField", @@ -214,7 +222,8 @@ { "doctype": "DocField", "fieldname": "column_break98", - "fieldtype": "Column Break" + "fieldtype": "Column Break", + "read_only": 0 }, { "doctype": "DocField", @@ -224,7 +233,8 @@ "label": "User Remark", "no_copy": 1, "oldfieldname": "user_remark", - "oldfieldtype": "Small Text" + "oldfieldtype": "Small Text", + "read_only": 0 }, { "description": "User Remark will be added to Auto Remark", @@ -247,7 +257,8 @@ "label": "Bill No", "oldfieldname": "bill_no", "oldfieldtype": "Data", - "print_hide": 1 + "print_hide": 1, + "read_only": 0 }, { "doctype": "DocField", @@ -256,7 +267,8 @@ "label": "Bill Date", "oldfieldname": "bill_date", "oldfieldtype": "Date", - "print_hide": 1 + "print_hide": 1, + "read_only": 0 }, { "doctype": "DocField", @@ -265,20 +277,23 @@ "label": "Due Date", "oldfieldname": "due_date", "oldfieldtype": "Date", - "print_hide": 0 + "print_hide": 0, + "read_only": 0 }, { "doctype": "DocField", "fieldname": "addtional_info", "fieldtype": "Section Break", "label": "More Info", - "oldfieldtype": "Section Break" + "oldfieldtype": "Section Break", + "read_only": 0 }, { "doctype": "DocField", "fieldname": "column_break2", "fieldtype": "Column Break", "oldfieldtype": "Column Break", + "read_only": 0, "width": "50%" }, { @@ -293,6 +308,7 @@ "oldfieldtype": "Select", "options": "No\nYes", "print_hide": 1, + "read_only": 0, "search_index": 1 }, { @@ -304,7 +320,8 @@ "no_copy": 0, "oldfieldname": "aging_date", "oldfieldtype": "Date", - "print_hide": 1 + "print_hide": 1, + "read_only": 0 }, { "default": "Accounts Receivable", @@ -315,6 +332,7 @@ "label": "Write Off Based On", "options": "Accounts Receivable\nAccounts Payable", "print_hide": 1, + "read_only": 0, "report_hide": 1 }, { @@ -325,6 +343,7 @@ "label": "Write Off Amount <=", "options": "Company:company:default_currency", "print_hide": 1, + "read_only": 0, "report_hide": 1 }, { @@ -334,13 +353,22 @@ "fieldtype": "Button", "label": "Get Outstanding Invoices", "options": "get_outstanding_invoices", - "print_hide": 1 + "print_hide": 1, + "read_only": 0 + }, + { + "doctype": "DocField", + "fieldname": "letter_head", + "fieldtype": "Link", + "label": "Letter Head", + "options": "Letter Head" }, { "doctype": "DocField", "fieldname": "column_break3", "fieldtype": "Column Break", "oldfieldtype": "Column Break", + "read_only": 0, "width": "50%" }, { @@ -351,6 +379,7 @@ "label": "Pay To / Recd From", "no_copy": 1, "print_hide": 0, + "read_only": 0, "report_hide": 1 }, { @@ -386,6 +415,7 @@ "oldfieldtype": "Select", "options": "link:Fiscal Year", "print_hide": 1, + "read_only": 0, "reqd": 1, "search_index": 1 }, @@ -399,6 +429,7 @@ "oldfieldtype": "Link", "options": "Company", "print_hide": 1, + "read_only": 0, "reqd": 1, "search_index": 1 }, @@ -413,6 +444,7 @@ "oldfieldtype": "Link", "options": "Print Heading", "print_hide": 1, + "read_only": 0, "report_hide": 1 }, { @@ -436,7 +468,8 @@ "no_copy": 1, "oldfieldname": "amendment_date", "oldfieldtype": "Date", - "print_hide": 1 + "print_hide": 1, + "read_only": 0 }, { "doctype": "DocField", @@ -450,11 +483,30 @@ "read_only": 1 }, { + "amend": 1, + "cancel": 1, + "create": 1, "doctype": "DocPerm", - "role": "Accounts Manager" + "role": "Accounts User", + "submit": 1, + "write": 1 }, { + "amend": 1, + "cancel": 1, + "create": 1, "doctype": "DocPerm", - "role": "Accounts User" + "role": "Accounts Manager", + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "role": "Auditor", + "submit": 0, + "write": 0 } ] \ No newline at end of file From 86a8d01ce9b5f2f79ba77656c1406bf6524087db Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 5 Apr 2013 12:12:39 +0530 Subject: [PATCH 05/11] [column addition][daily time log summary] time log id, activity type and task subject column added --- .../daily_time_log_summary.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.py b/projects/report/daily_time_log_summary/daily_time_log_summary.py index eec5444952..22e48077b5 100644 --- a/projects/report/daily_time_log_summary/daily_time_log_summary.py +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.py @@ -7,10 +7,12 @@ def execute(filters=None): elif filters.get("to_date"): filters["to_date"] = filters.get("to_date") + "24:00:00" - columns = ["Employee::150", "From Datetime::120", "To Datetime::120", "Hours::70", "Task::150", - "Project:Link/Project:120", "Status::70"] + columns = ["Time Log:Link/Time Log:120", "Employee::150", "From Datetime::140", + "To Datetime::140", "Hours::70", "Activity Type::120", "Task:Link/Task:150", + "Task Subject::180", "Project:Link/Project:120", "Status::70"] profile_map = get_profile_map() + task_map = get_task_map() conditions = build_conditions(filters) time_logs = webnotes.conn.sql("""select * from `tabTime Log` @@ -25,8 +27,8 @@ def execute(filters=None): profiles.append(tl.owner) data.append([]) - data.append([profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours, - tl.task, tl.project, tl.status]) + data.append([tl.name, profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours, + tl.activity_type, tl.task, task_map.get(tl.task), tl.project, tl.status]) return columns, data @@ -40,6 +42,14 @@ def get_profile_map(): return profile_map +def get_task_map(): + tasks = webnotes.conn.sql("""select name, subject from tabTask""", as_dict=1) + task_map = {} + for t in tasks: + task_map.setdefault(t.name, []).append(t.subject) + + return task_map + def build_conditions(filters): conditions = "" if filters.get("from_date"): From 38e63266778ab6178afe3925c5d49b9345ef0fbc Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 5 Apr 2013 14:47:42 +0530 Subject: [PATCH 06/11] [Item][Validation] if sle exists, soem fields can not be changed --- stock/doctype/item/item.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py index 2a2fa58471..b579195fe1 100644 --- a/stock/doctype/item/item.py +++ b/stock/doctype/item/item.py @@ -181,7 +181,8 @@ class DocType(DocListController): self.check_item_tax() self.validate_barcode() self.check_non_asset_warehouse() - + self.cant_change() + if cstr(self.doc.is_manufactured_item) == "No": self.doc.is_pro_applicable = "No" @@ -242,3 +243,15 @@ class DocType(DocListController): if self.doc.slideshow: from website.helpers.slideshow import get_slideshow get_slideshow(self) + + def cant_change(self): + vals = webnotes.conn.get_value("Item", self.doc.name, + ["has_serial_no", "is_stock_item", "valuation_method"], as_dict=True) + + if (vals.has_serial_no != self.doc.has_serial_no or + vals.is_stock_item != self.doc.is_stock_item or + vals.valuation_method != self.doc.valuation_method): + if self.check_if_sle_exists(): + webnotes.msgprint(_("As there are existing stock transactions for this item, \ + you can not change the values of 'Has Serial No', 'Is Stock Item' and \ + 'Valuation Method'"), raise_exception=1) \ No newline at end of file From 0f0bc3892dcf028ce89118d3bd0b71764c2a7135 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 5 Apr 2013 15:08:08 +0530 Subject: [PATCH 07/11] [packing slip] [fix] removed console log --- stock/doctype/packing_slip/packing_slip.js | 1 - 1 file changed, 1 deletion(-) diff --git a/stock/doctype/packing_slip/packing_slip.js b/stock/doctype/packing_slip/packing_slip.js index e9396d9edc..93fae94154 100644 --- a/stock/doctype/packing_slip/packing_slip.js +++ b/stock/doctype/packing_slip/packing_slip.js @@ -35,7 +35,6 @@ cur_frm.add_fetch("item_code", "net_weight", "net_weight"); cur_frm.add_fetch("item_code", "weight_uom", "weight_uom"); cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) { - console.log(make_doclist(cdt, cdn)); if(doc.delivery_note && doc.__islocal) { var ps_detail = getchildren('Packing Slip Item', doc.name, 'item_details'); if(!(flt(ps_detail.net_weight) && cstr(ps_detail.weight_uom))) { From 5d4758b3e6a12fcc39e71a88d5f6558f51a3feae Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Sat, 6 Apr 2013 08:20:21 +0530 Subject: [PATCH 08/11] [validation] fixes in item --- stock/doctype/item/item.py | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py index b579195fe1..0fc7875156 100644 --- a/stock/doctype/item/item.py +++ b/stock/doctype/item/item.py @@ -194,9 +194,7 @@ class DocType(DocListController): if self.doc.name: self.old_page_name = webnotes.conn.get_value('Item', self.doc.name, 'page_name') - - self.validate_is_stock_item() - + def check_non_asset_warehouse(self): if self.doc.is_asset_item == "Yes": existing_qty = sql("select t1.warehouse, t1.actual_qty from tabBin t1, tabWarehouse t2 where t1.item_code=%s and (t2.warehouse_type!='Fixed Asset' or t2.warehouse_type is null) and t1.warehouse=t2.name and t1.actual_qty > 0", self.doc.name) @@ -216,14 +214,6 @@ class DocType(DocListController): } return ret - def validate_is_stock_item(self): - if not self.doc.fields.get("__islocal"): - if webnotes.conn.get_value("Item", self.doc.name, "is_stock_item")=="Yes" and \ - ((not self.doc.is_stock_item) or self.doc.is_stock_item == "No"): - if self.check_if_sle_exists() == "exists": - webnotes.msgprint(self.meta.get_label("is_stock_item") + ": " - + _("""Cannot change to Yes. Reason: Stock Ledger Entries exist for""") - + """ "%s" """ % self.doc.name, raise_exception=True) def check_if_sle_exists(self): sle = sql("select name from `tabStock Ledger Entry` where item_code = %s and ifnull(is_cancelled, 'No') = 'No'", self.doc.name) @@ -245,13 +235,14 @@ class DocType(DocListController): get_slideshow(self) def cant_change(self): - vals = webnotes.conn.get_value("Item", self.doc.name, - ["has_serial_no", "is_stock_item", "valuation_method"], as_dict=True) + if not self.doc.fields.get("__islocal"): + vals = webnotes.conn.get_value("Item", self.doc.name, + ["has_serial_no", "is_stock_item", "valuation_method"], as_dict=True) - if (vals.has_serial_no != self.doc.has_serial_no or - vals.is_stock_item != self.doc.is_stock_item or - vals.valuation_method != self.doc.valuation_method): - if self.check_if_sle_exists(): - webnotes.msgprint(_("As there are existing stock transactions for this item, \ - you can not change the values of 'Has Serial No', 'Is Stock Item' and \ - 'Valuation Method'"), raise_exception=1) \ No newline at end of file + if vals and (vals.has_serial_no != self.doc.has_serial_no or + vals.is_stock_item != self.doc.is_stock_item or + vals.valuation_method != self.doc.valuation_method): + if self.check_if_sle_exists(): + webnotes.msgprint(_("As there are existing stock transactions for this \ + item, you can not change the values of 'Has Serial No', \ + 'Is Stock Item' and 'Valuation Method'"), raise_exception=1) \ No newline at end of file From b72af39331d1f1355a081b1bf0b3d17444efb669 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Sat, 6 Apr 2013 08:20:35 +0530 Subject: [PATCH 09/11] fixes in packing slip --- .../Delivery Note-Packing Slip.txt | 67 ++++++++++--------- stock/doctype/packing_slip/packing_slip.js | 3 +- stock/doctype/packing_slip/packing_slip.py | 1 + stock/doctype/packing_slip/packing_slip.txt | 53 ++++++++++----- .../packing_slip_item/packing_slip_item.txt | 16 ++++- 5 files changed, 88 insertions(+), 52 deletions(-) diff --git a/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt b/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt index 6459a0b89e..79b17c2e10 100644 --- a/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt +++ b/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt @@ -1,71 +1,78 @@ [ { - "owner": "Administrator", + "creation": "2012-02-02 11:50:33", "docstatus": 0, - "creation": "2012-02-22 15:45:56", + "modified": "2013-04-05 16:08:22", "modified_by": "Administrator", - "modified": "2012-02-22 15:45:56" + "owner": "Administrator" }, { - "name": "__common__", - "parent": "Delivery Note-Packing Slip", "doctype": "Table Mapper Detail", - "parenttype": "DocType Mapper", - "parentfield": "table_mapper_details" - }, - { "name": "__common__", "parent": "Delivery Note-Packing Slip", + "parentfield": "table_mapper_details", + "parenttype": "DocType Mapper" + }, + { "doctype": "Field Mapper Detail", - "parenttype": "DocType Mapper", - "parentfield": "field_mapper_details" - }, - { "name": "__common__", - "to_doctype": "Packing Slip", - "module": "Stock", + "parent": "Delivery Note-Packing Slip", + "parentfield": "field_mapper_details", + "parenttype": "DocType Mapper" + }, + { "doctype": "DocType Mapper", + "from_doctype": "Delivery Note", + "module": "Stock", + "name": "__common__", "ref_doc_submitted": 0, - "from_doctype": "Delivery Note" + "to_doctype": "Packing Slip" }, { - "name": "Delivery Note-Packing Slip", - "doctype": "DocType Mapper" + "doctype": "DocType Mapper", + "name": "Delivery Note-Packing Slip" }, { + "doctype": "Field Mapper Detail", + "from_field": "name", "map": "Yes", "match_id": 0, - "to_field": "delivery_note", - "doctype": "Field Mapper Detail", - "from_field": "name" + "to_field": "delivery_note" }, { + "doctype": "Field Mapper Detail", + "from_field": "qty", "map": "No", "match_id": 1, - "to_field": "qty", - "doctype": "Field Mapper Detail", - "from_field": "qty" + "to_field": "qty" }, { + "doctype": "Field Mapper Detail", + "from_field": "naming_series", "map": "No", "match_id": 0, - "to_field": "naming_series", - "doctype": "Field Mapper Detail", - "from_field": "naming_series" + "to_field": "naming_series" + }, + { + "doctype": "Field Mapper Detail", + "from_field": "name", + "map": "Yes", + "match_id": 1, + "to_field": "dn_detail" }, { - "match_id": 0, "doctype": "Table Mapper Detail", "from_table": "Delivery Note", + "match_id": 0, "to_table": "Packing Slip", "validation_logic": "docstatus=0" }, { - "match_id": 1, - "to_field": "item_details", "doctype": "Table Mapper Detail", "from_field": "delivery_note_details", "from_table": "Delivery Note Item", + "match_id": 1, + "to_field": "item_details", "to_table": "Packing Slip Item", "validation_logic": "IFNULL(packed_qty, 0) < IFNULL(qty, 0)" } diff --git a/stock/doctype/packing_slip/packing_slip.js b/stock/doctype/packing_slip/packing_slip.js index e9396d9edc..4c20289af9 100644 --- a/stock/doctype/packing_slip/packing_slip.js +++ b/stock/doctype/packing_slip/packing_slip.js @@ -35,7 +35,6 @@ cur_frm.add_fetch("item_code", "net_weight", "net_weight"); cur_frm.add_fetch("item_code", "weight_uom", "weight_uom"); cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) { - console.log(make_doclist(cdt, cdn)); if(doc.delivery_note && doc.__islocal) { var ps_detail = getchildren('Packing Slip Item', doc.name, 'item_details'); if(!(flt(ps_detail.net_weight) && cstr(ps_detail.weight_uom))) { @@ -100,7 +99,7 @@ cur_frm.cscript.validate_calculate_item_details = function(doc) { cur_frm.cscript.validate_duplicate_items = function(doc, ps_detail) { for(var i=0; i Date: Sun, 7 Apr 2013 10:19:18 +0530 Subject: [PATCH 10/11] [patches] [fix] reload docperm --- patches/patch_list.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/patch_list.py b/patches/patch_list.py index 0b7092c76d..181d6352ed 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -17,6 +17,7 @@ from __future__ import unicode_literals patch_list = [ "execute:webnotes.reload_doc('core', 'doctype', 'docfield')", + "execute:webnotes.reload_doc('core', 'doctype', 'docperm') # 2013-04-07", "execute:webnotes.reload_doc('core', 'doctype', 'report')", "execute:webnotes.reload_doc('core', 'doctype', 'doctype')", "patches.mar_2012.so_rv_mapper_fix", @@ -234,6 +235,5 @@ patch_list = [ 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Classic") # 2013-04-02', 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Modern") # 2013-04-02', 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-04-02', - "execute:webnotes.delete_doc('Search Criteria', 'time_log_summary')" - + "execute:webnotes.delete_doc('Search Criteria', 'time_log_summary')", ] \ No newline at end of file From a477d418438aee51135f03788d25229ffb598b61 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 8 Apr 2013 12:39:11 +0530 Subject: [PATCH 11/11] [aii] some fixes --- .../doctype/sales_invoice/sales_invoice.js | 16 +++-- setup/doctype/company/company.js | 67 ++++++++++--------- stock/doctype/delivery_note/delivery_note.js | 51 +++++++------- stock/doctype/stock_entry/stock_entry.js | 2 +- .../stock_reconciliation.js | 19 +++--- 5 files changed, 81 insertions(+), 74 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 9532a54087..cd33a076d0 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -362,13 +362,15 @@ cur_frm.set_query("income_account", "entries", function(doc) { }) // expense account -cur_frm.fields_dict['entries'].grid.get_field('expense_account').get_query = function(doc) { - return { - "query": "accounts.utils.get_account_list", - "filters": { - "is_pl_account": "Yes", - "debit_or_credit": "Debit", - "company": doc.company +if (sys_defaults.auto_inventory_accounting) { + cur_frm.fields_dict['entries'].grid.get_field('expense_account').get_query = function(doc) { + return { + "query": "accounts.utils.get_account_list", + "filters": { + "is_pl_account": "Yes", + "debit_or_credit": "Debit", + "company": doc.company + } } } } diff --git a/setup/doctype/company/company.js b/setup/doctype/company/company.js index 5e78b79cd8..4682724532 100644 --- a/setup/doctype/company/company.js +++ b/setup/doctype/company/company.js @@ -63,49 +63,50 @@ cur_frm.fields_dict.payables_group.get_query = function(doc) { return 'SELECT `tabAccount`.name FROM `tabAccount` WHERE `tabAccount`.company = "'+doc.name+'" AND `tabAccount`.group_or_ledger = "Group" AND `tabAccount`.docstatus != 2 AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name LIMIT 50'; } - -cur_frm.fields_dict["stock_in_hand_account"].get_query = function(doc) { - return { - "query": "accounts.utils.get_account_list", - "filters": { - "is_pl_account": "No", - "debit_or_credit": "Debit", - "company": doc.name +if (sys_defaults.auto_inventory_accounting) { + cur_frm.fields_dict["stock_in_hand_account"].get_query = function(doc) { + return { + "query": "accounts.utils.get_account_list", + "filters": { + "is_pl_account": "No", + "debit_or_credit": "Debit", + "company": doc.name + } } } -} -cur_frm.fields_dict["stock_adjustment_account"].get_query = function(doc) { - return { - "query": "accounts.utils.get_account_list", - "filters": { - "is_pl_account": "Yes", - "debit_or_credit": "Debit", - "company": doc.name + cur_frm.fields_dict["stock_adjustment_account"].get_query = function(doc) { + return { + "query": "accounts.utils.get_account_list", + "filters": { + "is_pl_account": "Yes", + "debit_or_credit": "Debit", + "company": doc.name + } } } -} -cur_frm.fields_dict["expenses_included_in_valuation"].get_query = - cur_frm.fields_dict["stock_adjustment_account"].get_query; + cur_frm.fields_dict["expenses_included_in_valuation"].get_query = + cur_frm.fields_dict["stock_adjustment_account"].get_query; -cur_frm.fields_dict["stock_delivered_but_not_billed"].get_query = - cur_frm.fields_dict["stock_in_hand_account"].get_query; + cur_frm.fields_dict["stock_delivered_but_not_billed"].get_query = + cur_frm.fields_dict["stock_in_hand_account"].get_query; -cur_frm.fields_dict["stock_received_but_not_billed"].get_query = function(doc) { - return { - "query": "accounts.utils.get_account_list", - "filters": { - "is_pl_account": "No", - "debit_or_credit": "Credit", - "company": doc.name + cur_frm.fields_dict["stock_received_but_not_billed"].get_query = function(doc) { + return { + "query": "accounts.utils.get_account_list", + "filters": { + "is_pl_account": "No", + "debit_or_credit": "Credit", + "company": doc.name + } } } -} -cur_frm.fields_dict["stock_adjustment_cost_center"].get_query = function(doc) { - return { - "query": "accounts.utils.get_cost_center_list", - "filters": {"company": doc.name} + cur_frm.fields_dict["stock_adjustment_cost_center"].get_query = function(doc) { + return { + "query": "accounts.utils.get_cost_center_list", + "filters": {"company": doc.name} + } } } \ No newline at end of file diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js index 61df6b0464..4589024d72 100644 --- a/stock/doctype/delivery_note/delivery_note.js +++ b/stock/doctype/delivery_note/delivery_note.js @@ -310,33 +310,36 @@ 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; +if (sys_defaults.auto_inventory_accounting) { + + 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 { + "query": "accounts.utils.get_account_list", + "filters": { + "is_pl_account": "Yes", + "debit_or_credit": "Debit", + "company": doc.company + } } } - 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 { - "query": "accounts.utils.get_account_list", - "filters": { - "is_pl_account": "Yes", - "debit_or_credit": "Debit", - "company": doc.company + // cost center + cur_frm.fields_dict.delivery_note_details.grid.get_field("cost_center").get_query = function(doc) { + return { + query: "accounts.utils.get_cost_center_list", + filters: { company_name: doc.company} } } -} - -// cost center -cur_frm.fields_dict.delivery_note_details.grid.get_field("cost_center").get_query = function(doc) { - return { - query: "accounts.utils.get_cost_center_list", - filters: { company_name: doc.company} - } } \ No newline at end of file diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js index 3e21207eaa..1f4aafa9e5 100644 --- a/stock/doctype/stock_entry/stock_entry.js +++ b/stock/doctype/stock_entry/stock_entry.js @@ -77,7 +77,7 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({ }; if (sys_defaults.auto_inventory_accounting) { - this.frm.add_fetch("company", "expense_adjustment_account", "stock_adjustment_account"); + this.frm.add_fetch("company", "stock_adjustment_account", "expense_adjustment_account"); this.frm.fields_dict["expense_adjustment_account"].get_query = function() { return { diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js index 3938661eaf..cf6821ebd5 100644 --- a/stock/doctype/stock_reconciliation/stock_reconciliation.js +++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js @@ -41,16 +41,17 @@ erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({ setup: function() { var me = this; + if (sys_defaults.auto_inventory_accounting) { + this.frm.add_fetch("company", "stock_adjustment_account", "expense_account"); - this.frm.add_fetch("company", "expense_account", "stock_adjustment_account"); - - this.frm.fields_dict["expense_account"].get_query = function() { - return { - "query": "accounts.utils.get_account_list", - "filters": { - "is_pl_account": "Yes", - "debit_or_credit": "Debit", - "company": me.frm.doc.company + this.frm.fields_dict["expense_account"].get_query = function() { + return { + "query": "accounts.utils.get_account_list", + "filters": { + "is_pl_account": "Yes", + "debit_or_credit": "Debit", + "company": me.frm.doc.company + } } } }