fixed conflict

This commit is contained in:
Nabin Hait 2013-04-08 12:44:57 +05:30
commit 2b61f6142a
15 changed files with 301 additions and 178 deletions

View File

@ -1,8 +1,8 @@
[ [
{ {
"creation": "2013-03-07 12:35:57", "creation": "2013-03-25 10:53:52",
"docstatus": 0, "docstatus": 0,
"modified": "2013-03-21 13:02:27", "modified": "2013-04-05 11:10:35",
"modified_by": "Administrator", "modified_by": "Administrator",
"owner": "Administrator" "owner": "Administrator"
}, },
@ -24,9 +24,6 @@
"permlevel": 0 "permlevel": 0
}, },
{ {
"amend": 1,
"cancel": 1,
"create": 1,
"doctype": "DocPerm", "doctype": "DocPerm",
"name": "__common__", "name": "__common__",
"parent": "Journal Voucher", "parent": "Journal Voucher",
@ -34,9 +31,7 @@
"parenttype": "DocType", "parenttype": "DocType",
"permlevel": 0, "permlevel": 0,
"read": 1, "read": 1,
"report": 1, "report": 1
"submit": 1,
"write": 1
}, },
{ {
"doctype": "DocType", "doctype": "DocType",
@ -47,6 +42,7 @@
"fieldname": "column_break0", "fieldname": "column_break0",
"fieldtype": "Column Break", "fieldtype": "Column Break",
"oldfieldtype": "Column Break", "oldfieldtype": "Column Break",
"read_only": 0,
"width": "50%" "width": "50%"
}, },
{ {
@ -60,6 +56,7 @@
"oldfieldtype": "Select", "oldfieldtype": "Select",
"options": "JV", "options": "JV",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"reqd": 1 "reqd": 1
}, },
{ {
@ -73,6 +70,7 @@
"oldfieldtype": "Select", "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",
"print_hide": 0, "print_hide": 0,
"read_only": 0,
"search_index": 1 "search_index": 1
}, },
{ {
@ -80,6 +78,7 @@
"fieldname": "column_break1", "fieldname": "column_break1",
"fieldtype": "Column Break", "fieldtype": "Column Break",
"oldfieldtype": "Column Break", "oldfieldtype": "Column Break",
"read_only": 0,
"width": "50%" "width": "50%"
}, },
{ {
@ -93,6 +92,7 @@
"no_copy": 1, "no_copy": 1,
"oldfieldname": "posting_date", "oldfieldname": "posting_date",
"oldfieldtype": "Date", "oldfieldtype": "Date",
"read_only": 0,
"reqd": 1, "reqd": 1,
"search_index": 1 "search_index": 1
}, },
@ -102,7 +102,8 @@
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Journal Entries", "label": "Journal Entries",
"oldfieldtype": "Section Break", "oldfieldtype": "Section Break",
"options": "Simple" "options": "Simple",
"read_only": 0
}, },
{ {
"allow_on_submit": 1, "allow_on_submit": 1,
@ -113,13 +114,15 @@
"oldfieldname": "entries", "oldfieldname": "entries",
"oldfieldtype": "Table", "oldfieldtype": "Table",
"options": "Journal Voucher Detail", "options": "Journal Voucher Detail",
"print_hide": 0 "print_hide": 0,
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "section_break99", "fieldname": "section_break99",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"options": "Simple" "options": "Simple",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -149,7 +152,8 @@
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break99", "fieldname": "column_break99",
"fieldtype": "Column Break" "fieldtype": "Column Break",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -168,13 +172,15 @@
"fieldname": "get_balance", "fieldname": "get_balance",
"fieldtype": "Button", "fieldtype": "Button",
"label": "Make Difference Entry", "label": "Make Difference Entry",
"oldfieldtype": "Button" "oldfieldtype": "Button",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "reference", "fieldname": "reference",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Reference" "label": "Reference",
"read_only": 0
}, },
{ {
"description": "eg. Cheque Number", "description": "eg. Cheque Number",
@ -187,6 +193,7 @@
"no_copy": 1, "no_copy": 1,
"oldfieldname": "cheque_no", "oldfieldname": "cheque_no",
"oldfieldtype": "Data", "oldfieldtype": "Data",
"read_only": 0,
"search_index": 1 "search_index": 1
}, },
{ {
@ -196,7 +203,8 @@
"label": "Reference Date", "label": "Reference Date",
"no_copy": 1, "no_copy": 1,
"oldfieldname": "cheque_date", "oldfieldname": "cheque_date",
"oldfieldtype": "Date" "oldfieldtype": "Date",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -214,7 +222,8 @@
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break98", "fieldname": "column_break98",
"fieldtype": "Column Break" "fieldtype": "Column Break",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -224,7 +233,8 @@
"label": "User Remark", "label": "User Remark",
"no_copy": 1, "no_copy": 1,
"oldfieldname": "user_remark", "oldfieldname": "user_remark",
"oldfieldtype": "Small Text" "oldfieldtype": "Small Text",
"read_only": 0
}, },
{ {
"description": "User Remark will be added to Auto Remark", "description": "User Remark will be added to Auto Remark",
@ -247,7 +257,8 @@
"label": "Bill No", "label": "Bill No",
"oldfieldname": "bill_no", "oldfieldname": "bill_no",
"oldfieldtype": "Data", "oldfieldtype": "Data",
"print_hide": 1 "print_hide": 1,
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -256,7 +267,8 @@
"label": "Bill Date", "label": "Bill Date",
"oldfieldname": "bill_date", "oldfieldname": "bill_date",
"oldfieldtype": "Date", "oldfieldtype": "Date",
"print_hide": 1 "print_hide": 1,
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -265,20 +277,23 @@
"label": "Due Date", "label": "Due Date",
"oldfieldname": "due_date", "oldfieldname": "due_date",
"oldfieldtype": "Date", "oldfieldtype": "Date",
"print_hide": 0 "print_hide": 0,
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "addtional_info", "fieldname": "addtional_info",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "More Info", "label": "More Info",
"oldfieldtype": "Section Break" "oldfieldtype": "Section Break",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break2", "fieldname": "column_break2",
"fieldtype": "Column Break", "fieldtype": "Column Break",
"oldfieldtype": "Column Break", "oldfieldtype": "Column Break",
"read_only": 0,
"width": "50%" "width": "50%"
}, },
{ {
@ -293,6 +308,7 @@
"oldfieldtype": "Select", "oldfieldtype": "Select",
"options": "No\nYes", "options": "No\nYes",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"search_index": 1 "search_index": 1
}, },
{ {
@ -304,7 +320,8 @@
"no_copy": 0, "no_copy": 0,
"oldfieldname": "aging_date", "oldfieldname": "aging_date",
"oldfieldtype": "Date", "oldfieldtype": "Date",
"print_hide": 1 "print_hide": 1,
"read_only": 0
}, },
{ {
"default": "Accounts Receivable", "default": "Accounts Receivable",
@ -315,6 +332,7 @@
"label": "Write Off Based On", "label": "Write Off Based On",
"options": "Accounts Receivable\nAccounts Payable", "options": "Accounts Receivable\nAccounts Payable",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"report_hide": 1 "report_hide": 1
}, },
{ {
@ -325,6 +343,7 @@
"label": "Write Off Amount <=", "label": "Write Off Amount <=",
"options": "Company:company:default_currency", "options": "Company:company:default_currency",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"report_hide": 1 "report_hide": 1
}, },
{ {
@ -334,13 +353,22 @@
"fieldtype": "Button", "fieldtype": "Button",
"label": "Get Outstanding Invoices", "label": "Get Outstanding Invoices",
"options": "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", "doctype": "DocField",
"fieldname": "column_break3", "fieldname": "column_break3",
"fieldtype": "Column Break", "fieldtype": "Column Break",
"oldfieldtype": "Column Break", "oldfieldtype": "Column Break",
"read_only": 0,
"width": "50%" "width": "50%"
}, },
{ {
@ -351,6 +379,7 @@
"label": "Pay To / Recd From", "label": "Pay To / Recd From",
"no_copy": 1, "no_copy": 1,
"print_hide": 0, "print_hide": 0,
"read_only": 0,
"report_hide": 1 "report_hide": 1
}, },
{ {
@ -386,6 +415,7 @@
"oldfieldtype": "Select", "oldfieldtype": "Select",
"options": "link:Fiscal Year", "options": "link:Fiscal Year",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"reqd": 1, "reqd": 1,
"search_index": 1 "search_index": 1
}, },
@ -399,6 +429,7 @@
"oldfieldtype": "Link", "oldfieldtype": "Link",
"options": "Company", "options": "Company",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"reqd": 1, "reqd": 1,
"search_index": 1 "search_index": 1
}, },
@ -413,6 +444,7 @@
"oldfieldtype": "Link", "oldfieldtype": "Link",
"options": "Print Heading", "options": "Print Heading",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"report_hide": 1 "report_hide": 1
}, },
{ {
@ -436,7 +468,8 @@
"no_copy": 1, "no_copy": 1,
"oldfieldname": "amendment_date", "oldfieldname": "amendment_date",
"oldfieldtype": "Date", "oldfieldtype": "Date",
"print_hide": 1 "print_hide": 1,
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -450,11 +483,30 @@
"read_only": 1 "read_only": 1
}, },
{ {
"amend": 1,
"cancel": 1,
"create": 1,
"doctype": "DocPerm", "doctype": "DocPerm",
"role": "Accounts Manager" "role": "Accounts User",
"submit": 1,
"write": 1
}, },
{ {
"amend": 1,
"cancel": 1,
"create": 1,
"doctype": "DocPerm", "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
} }
] ]

View File

@ -363,13 +363,15 @@ cur_frm.set_query("income_account", "entries", function(doc) {
}) })
// expense account // expense account
cur_frm.fields_dict['entries'].grid.get_field('expense_account').get_query = function(doc) { if (sys_defaults.auto_inventory_accounting) {
return { cur_frm.fields_dict['entries'].grid.get_field('expense_account').get_query = function(doc) {
"query": "accounts.utils.get_account_list", return {
"filters": { "query": "accounts.utils.get_account_list",
"is_pl_account": "Yes", "filters": {
"debit_or_credit": "Debit", "is_pl_account": "Yes",
"company": doc.company "debit_or_credit": "Debit",
"company": doc.company
}
} }
} }
} }

View File

@ -142,11 +142,11 @@ class DocType(TransactionBase):
return '' return ''
def delete_supplier_address(self): 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'])) sql("delete from `tabAddress` where name=%s",(rec['name']))
def delete_supplier_contact(self): 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'])) sql("delete from `tabContact` where name=%s",(rec['name']))
def delete_supplier_communication(self): def delete_supplier_communication(self):

View File

@ -17,6 +17,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
patch_list = [ patch_list = [
"execute:webnotes.reload_doc('core', 'doctype', 'docfield')", "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', 'report')",
"execute:webnotes.reload_doc('core', 'doctype', 'doctype')", "execute:webnotes.reload_doc('core', 'doctype', 'doctype')",
"patches.mar_2012.so_rv_mapper_fix", "patches.mar_2012.so_rv_mapper_fix",
@ -237,6 +238,10 @@ patch_list = [
'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Classic") # 2013-04-02', '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 Modern") # 2013-04-02',
'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-04-02', 'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-04-02',
<<<<<<< HEAD
"patches.april_2013.p04_reverse_modules_list", "patches.april_2013.p04_reverse_modules_list",
"execute:webnotes.delete_doc('Search Criteria', 'time_log_summary')" "execute:webnotes.delete_doc('Search Criteria', 'time_log_summary')"
=======
"execute:webnotes.delete_doc('Search Criteria', 'time_log_summary')",
>>>>>>> master
] ]

View File

@ -3,13 +3,13 @@ wn.query_reports["Daily Time Log Summary"] = {
{ {
"fieldname":"from_date", "fieldname":"from_date",
"label": "From Date", "label": "From Date",
"fieldtype": "Datetime", "fieldtype": "Date",
"default": wn.datetime.get_today() "default": wn.datetime.get_today()
}, },
{ {
"fieldname":"to_date", "fieldname":"to_date",
"label": "To Date", "label": "To Date",
"fieldtype": "Datetime", "fieldtype": "Date",
"default": wn.datetime.get_today() "default": wn.datetime.get_today()
}, },
] ]

View File

@ -2,27 +2,33 @@ from __future__ import unicode_literals
import webnotes import webnotes
def execute(filters=None): def execute(filters=None):
if not filters: filters = {} if not filters:
columns = ["Employee::150", "From Datetime::120", "To Datetime::120", "Hours::70", "Task::150", filters = {}
"Project:Link/Project:120", "Status::70"] elif filters.get("to_date"):
filters["to_date"] = filters.get("to_date") + "24:00:00"
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() profile_map = get_profile_map()
task_map = get_task_map()
conditions = build_conditions(filters) conditions = build_conditions(filters)
time_logs = webnotes.conn.sql("""select * from `tabTime Log` time_logs = webnotes.conn.sql("""select * from `tabTime Log`
where docstatus < 2 %s order by owner asc""" % (conditions,), filters, as_dict=1) where docstatus < 2 %s order by owner asc""" % (conditions, ), filters, as_dict=1)
data = [] data = []
profiles = [time_logs[0].owner] if time_logs:
profiles = [time_logs[0].owner]
for tl in time_logs: for tl in time_logs:
if tl.owner not in profiles: if tl.owner not in profiles:
profiles.append(tl.owner) profiles.append(tl.owner)
data.append([]) data.append([])
data.append([profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours, data.append([tl.name, profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours,
tl.task, tl.project, tl.status]) tl.activity_type, tl.task, task_map.get(tl.task), tl.project, tl.status])
return columns, data return columns, data
@ -36,6 +42,14 @@ def get_profile_map():
return 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): def build_conditions(filters):
conditions = "" conditions = ""
if filters.get("from_date"): if filters.get("from_date"):
@ -43,4 +57,9 @@ def build_conditions(filters):
if filters.get("to_date"): if filters.get("to_date"):
conditions += " and to_time <= %(to_date)s" 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 return conditions

View File

@ -63,46 +63,47 @@ 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'; 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';
} }
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_in_hand_account"].get_query = function(doc) { cur_frm.fields_dict["stock_adjustment_account"].get_query = function(doc) {
return { return {
"query": "accounts.utils.get_account_list", "query": "accounts.utils.get_account_list",
"filters": { "filters": {
"is_pl_account": "No", "is_pl_account": "Yes",
"debit_or_credit": "Debit", "debit_or_credit": "Debit",
"company": doc.name "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["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_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["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_name": doc.name}
}
}

View File

@ -1,71 +1,78 @@
[ [
{ {
"owner": "Administrator", "creation": "2012-02-02 11:50:33",
"docstatus": 0, "docstatus": 0,
"creation": "2012-02-22 15:45:56", "modified": "2013-04-05 16:08:22",
"modified_by": "Administrator", "modified_by": "Administrator",
"modified": "2012-02-22 15:45:56" "owner": "Administrator"
}, },
{ {
"name": "__common__",
"parent": "Delivery Note-Packing Slip",
"doctype": "Table Mapper Detail", "doctype": "Table Mapper Detail",
"parenttype": "DocType Mapper",
"parentfield": "table_mapper_details"
},
{
"name": "__common__", "name": "__common__",
"parent": "Delivery Note-Packing Slip", "parent": "Delivery Note-Packing Slip",
"parentfield": "table_mapper_details",
"parenttype": "DocType Mapper"
},
{
"doctype": "Field Mapper Detail", "doctype": "Field Mapper Detail",
"parenttype": "DocType Mapper",
"parentfield": "field_mapper_details"
},
{
"name": "__common__", "name": "__common__",
"to_doctype": "Packing Slip", "parent": "Delivery Note-Packing Slip",
"module": "Stock", "parentfield": "field_mapper_details",
"parenttype": "DocType Mapper"
},
{
"doctype": "DocType Mapper", "doctype": "DocType Mapper",
"from_doctype": "Delivery Note",
"module": "Stock",
"name": "__common__",
"ref_doc_submitted": 0, "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", "map": "Yes",
"match_id": 0, "match_id": 0,
"to_field": "delivery_note", "to_field": "delivery_note"
"doctype": "Field Mapper Detail",
"from_field": "name"
}, },
{ {
"doctype": "Field Mapper Detail",
"from_field": "qty",
"map": "No", "map": "No",
"match_id": 1, "match_id": 1,
"to_field": "qty", "to_field": "qty"
"doctype": "Field Mapper Detail",
"from_field": "qty"
}, },
{ {
"doctype": "Field Mapper Detail",
"from_field": "naming_series",
"map": "No", "map": "No",
"match_id": 0, "match_id": 0,
"to_field": "naming_series", "to_field": "naming_series"
"doctype": "Field Mapper Detail", },
"from_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", "doctype": "Table Mapper Detail",
"from_table": "Delivery Note", "from_table": "Delivery Note",
"match_id": 0,
"to_table": "Packing Slip", "to_table": "Packing Slip",
"validation_logic": "docstatus=0" "validation_logic": "docstatus=0"
}, },
{ {
"match_id": 1,
"to_field": "item_details",
"doctype": "Table Mapper Detail", "doctype": "Table Mapper Detail",
"from_field": "delivery_note_details", "from_field": "delivery_note_details",
"from_table": "Delivery Note Item", "from_table": "Delivery Note Item",
"match_id": 1,
"to_field": "item_details",
"to_table": "Packing Slip Item", "to_table": "Packing Slip Item",
"validation_logic": "IFNULL(packed_qty, 0) < IFNULL(qty, 0)" "validation_logic": "IFNULL(packed_qty, 0) < IFNULL(qty, 0)"
} }

View File

@ -315,33 +315,36 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
} }
} }
cur_frm.cscript.expense_account = function(doc, cdt, cdn){ if (sys_defaults.auto_inventory_accounting) {
var d = locals[cdt][cdn];
if(d.expense_account) { cur_frm.cscript.expense_account = function(doc, cdt, cdn){
var cl = getchildren('Delivery Note Item', doc.name, cur_frm.cscript.fname, doc.doctype); var d = locals[cdt][cdn];
for(var i = 0; i < cl.length; i++){ if(d.expense_account) {
if(!cl[i].expense_account) cl[i].expense_account = 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 // cost center
cur_frm.fields_dict['delivery_note_details'].grid.get_field('expense_account').get_query = function(doc) { cur_frm.fields_dict.delivery_note_details.grid.get_field("cost_center").get_query = function(doc) {
return { return {
"query": "accounts.utils.get_account_list", query: "accounts.utils.get_cost_center_list",
"filters": { filters: { company_name: doc.company}
"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}
}
}

View File

@ -40,7 +40,7 @@ class DocType(DocListController):
self.update_website() self.update_website()
bin = sql("select stock_uom from `tabBin` where item_code = '%s' " % self.doc.item_code) 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.") msgprint("Please Update Stock UOM with the help of Stock UOM Replace Utility.")
raise Exception raise Exception
check_list = [] check_list = []
@ -181,6 +181,7 @@ class DocType(DocListController):
self.check_item_tax() self.check_item_tax()
self.validate_barcode() self.validate_barcode()
self.check_non_asset_warehouse() self.check_non_asset_warehouse()
self.cant_change()
if cstr(self.doc.is_manufactured_item) == "No": if cstr(self.doc.is_manufactured_item) == "No":
self.doc.is_pro_applicable = "No" self.doc.is_pro_applicable = "No"
@ -194,8 +195,6 @@ class DocType(DocListController):
if self.doc.name: if self.doc.name:
self.old_page_name = webnotes.conn.get_value('Item', self.doc.name, 'page_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): def check_non_asset_warehouse(self):
if self.doc.is_asset_item == "Yes": 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) 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)
@ -215,14 +214,6 @@ class DocType(DocListController):
} }
return ret 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): 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) sle = sql("select name from `tabStock Ledger Entry` where item_code = %s and ifnull(is_cancelled, 'No') = 'No'", self.doc.name)
@ -242,3 +233,16 @@ class DocType(DocListController):
if self.doc.slideshow: if self.doc.slideshow:
from website.helpers.slideshow import get_slideshow from website.helpers.slideshow import get_slideshow
get_slideshow(self) get_slideshow(self)
def cant_change(self):
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 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)

View File

@ -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.add_fetch("item_code", "weight_uom", "weight_uom");
cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) { cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
console.log(make_doclist(cdt, cdn));
if(doc.delivery_note && doc.__islocal) { if(doc.delivery_note && doc.__islocal) {
var ps_detail = getchildren('Packing Slip Item', doc.name, 'item_details'); var ps_detail = getchildren('Packing Slip Item', doc.name, 'item_details');
if(!(flt(ps_detail.net_weight) && cstr(ps_detail.weight_uom))) { 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) { cur_frm.cscript.validate_duplicate_items = function(doc, ps_detail) {
for(var i=0; i<ps_detail.length; i++) { for(var i=0; i<ps_detail.length; i++) {
for(var j=0; j<ps_detail.length; j++) { for(var j=0; j<ps_detail.length; j++) {
if(i!=j && ps_detail[i].item_code==ps_detail[j].item_code) { if(i!=j && ps_detail[i].dn_detail && ps_detail[i].dn_detail==ps_detail[j].dn_detail) {
msgprint("You have entered duplicate items. Please rectify and try again."); msgprint("You have entered duplicate items. Please rectify and try again.");
validated = false; validated = false;
return; return;

View File

@ -128,6 +128,7 @@ class DocType:
""" """
item['recommended_qty'] = (flt(item['qty']) - flt(item['packed_qty'])) / no_of_cases item['recommended_qty'] = (flt(item['qty']) - flt(item['packed_qty'])) / no_of_cases
item['specified_qty'] = flt(ps_item_qty[item['item_code']]) item['specified_qty'] = flt(ps_item_qty[item['item_code']])
if not item['packed_qty']: item['packed_qty'] = 0
webnotes.msgprint(""" webnotes.msgprint("""
Invalid Quantity specified (%(specified_qty)s %(stock_uom)s). Invalid Quantity specified (%(specified_qty)s %(stock_uom)s).

View File

@ -1,8 +1,8 @@
[ [
{ {
"creation": "2013-01-10 16:34:28", "creation": "2013-03-07 18:50:31",
"docstatus": 0, "docstatus": 0,
"modified": "2013-01-22 14:56:40", "modified": "2013-04-05 15:40:59",
"modified_by": "Administrator", "modified_by": "Administrator",
"owner": "Administrator" "owner": "Administrator"
}, },
@ -48,12 +48,14 @@
"doctype": "DocField", "doctype": "DocField",
"fieldname": "packing_slip_details", "fieldname": "packing_slip_details",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Packing Slip Items" "label": "Packing Slip Items",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break0", "fieldname": "column_break0",
"fieldtype": "Column Break" "fieldtype": "Column Break",
"read_only": 0
}, },
{ {
"description": "Indicates that the package is a part of this delivery", "description": "Indicates that the package is a part of this delivery",
@ -62,12 +64,14 @@
"fieldtype": "Link", "fieldtype": "Link",
"label": "Delivery Note", "label": "Delivery Note",
"options": "Delivery Note", "options": "Delivery Note",
"read_only": 0,
"reqd": 1 "reqd": 1
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break1", "fieldname": "column_break1",
"fieldtype": "Column Break" "fieldtype": "Column Break",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -77,17 +81,20 @@
"no_copy": 0, "no_copy": 0,
"options": "PS", "options": "PS",
"print_hide": 1, "print_hide": 1,
"read_only": 0,
"reqd": 1 "reqd": 1
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "section_break0", "fieldname": "section_break0",
"fieldtype": "Section Break" "fieldtype": "Section Break",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break2", "fieldname": "column_break2",
"fieldtype": "Column Break" "fieldtype": "Column Break",
"read_only": 0
}, },
{ {
"description": "Identification of the package for the delivery (for print)", "description": "Identification of the package for the delivery (for print)",
@ -96,13 +103,15 @@
"fieldtype": "Data", "fieldtype": "Data",
"label": "From Package No.", "label": "From Package No.",
"no_copy": 1, "no_copy": 1,
"read_only": 0,
"reqd": 1, "reqd": 1,
"width": "50px" "width": "50px"
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break3", "fieldname": "column_break3",
"fieldtype": "Column Break" "fieldtype": "Column Break",
"read_only": 0
}, },
{ {
"description": "If more than one package of the same type (for print)", "description": "If more than one package of the same type (for print)",
@ -111,26 +120,30 @@
"fieldtype": "Data", "fieldtype": "Data",
"label": "To Package No.", "label": "To Package No.",
"no_copy": 1, "no_copy": 1,
"read_only": 0,
"width": "50px" "width": "50px"
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "package_item_details", "fieldname": "package_item_details",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Package Item Details" "label": "Package Item Details",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "item_details", "fieldname": "item_details",
"fieldtype": "Table", "fieldtype": "Table",
"label": "Items", "label": "Items",
"options": "Packing Slip Item" "options": "Packing Slip Item",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "package_weight_details", "fieldname": "package_weight_details",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Package Weight Details" "label": "Package Weight Details",
"read_only": 0
}, },
{ {
"description": "The net weight of this package. (calculated automatically as sum of net weight of items)", "description": "The net weight of this package. (calculated automatically as sum of net weight of items)",
@ -144,15 +157,17 @@
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "net_weight_uom", "fieldname": "net_weight_uom",
"fieldtype": "Data", "fieldtype": "Link",
"label": "Net Weight UOM", "label": "Net Weight UOM",
"no_copy": 1, "no_copy": 1,
"options": "UOM",
"read_only": 1 "read_only": 1
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "column_break4", "fieldname": "column_break4",
"fieldtype": "Column Break" "fieldtype": "Column Break",
"read_only": 0
}, },
{ {
"description": "The gross weight of the package. Usually net weight + packaging material weight. (for print)", "description": "The gross weight of the package. Usually net weight + packaging material weight. (for print)",
@ -160,7 +175,8 @@
"fieldname": "gross_weight_pkg", "fieldname": "gross_weight_pkg",
"fieldtype": "Float", "fieldtype": "Float",
"label": "Gross Weight", "label": "Gross Weight",
"no_copy": 1 "no_copy": 1,
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -168,13 +184,15 @@
"fieldtype": "Link", "fieldtype": "Link",
"label": "Gross Weight UOM", "label": "Gross Weight UOM",
"no_copy": 1, "no_copy": 1,
"options": "UOM" "options": "UOM",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
"fieldname": "misc_details", "fieldname": "misc_details",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Misc Details" "label": "Misc Details",
"read_only": 0
}, },
{ {
"doctype": "DocField", "doctype": "DocField",
@ -194,7 +212,8 @@
"fieldtype": "Date", "fieldtype": "Date",
"label": "Amendment Date", "label": "Amendment Date",
"no_copy": 1, "no_copy": 1,
"print_hide": 1 "print_hide": 1,
"read_only": 0
}, },
{ {
"doctype": "DocPerm", "doctype": "DocPerm",

View File

@ -1,8 +1,8 @@
[ [
{ {
"creation": "2013-02-22 01:28:02", "creation": "2013-03-07 11:42:59",
"docstatus": 0, "docstatus": 0,
"modified": "2013-03-07 07:03:26", "modified": "2013-04-05 16:06:40",
"modified_by": "Administrator", "modified_by": "Administrator",
"owner": "Administrator" "owner": "Administrator"
}, },
@ -32,6 +32,7 @@
"label": "Item Code", "label": "Item Code",
"options": "Item", "options": "Item",
"print_width": "100px", "print_width": "100px",
"read_only": 0,
"reqd": 1, "reqd": 1,
"width": "100px" "width": "100px"
}, },
@ -50,6 +51,7 @@
"fieldtype": "Float", "fieldtype": "Float",
"label": "Quantity", "label": "Quantity",
"print_width": "100px", "print_width": "100px",
"read_only": 0,
"reqd": 1, "reqd": 1,
"width": "100px" "width": "100px"
}, },
@ -85,6 +87,14 @@
"doctype": "DocField", "doctype": "DocField",
"fieldname": "page_break", "fieldname": "page_break",
"fieldtype": "Check", "fieldtype": "Check",
"label": "Page Break" "label": "Page Break",
"read_only": 0
},
{
"doctype": "DocField",
"fieldname": "dn_detail",
"fieldtype": "Data",
"hidden": 1,
"label": "DN Detail"
} }
] ]

View File

@ -41,16 +41,17 @@ erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({
setup: function() { setup: function() {
var me = this; var me = this;
if (sys_defaults.auto_inventory_accounting) {
this.frm.add_fetch("company", "stock_adjustment_account", "expense_account");
this.frm.add_fetch("company", "stock_adjustment_account", "expense_account"); this.frm.fields_dict["expense_account"].get_query = function() {
return {
this.frm.fields_dict["expense_account"].get_query = function() { "query": "accounts.utils.get_account_list",
return { "filters": {
"query": "accounts.utils.get_account_list", "is_pl_account": "Yes",
"filters": { "debit_or_credit": "Debit",
"is_pl_account": "Yes", "company": me.frm.doc.company
"debit_or_credit": "Debit", }
"company": me.frm.doc.company
} }
} }
} }
@ -67,7 +68,7 @@ erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({
attach the modified file."); attach the modified file.");
} }
} else if(this.frm.doc.docstatus == 1) { } 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(); this.show_stock_ledger();
} else { } else {
this.frm.set_intro(""); this.frm.set_intro("");