diff --git a/data/master.sql.gz b/data/master.sql.gz index f3eaf3488a8..9f2ed7f0d47 100644 Binary files a/data/master.sql.gz and b/data/master.sql.gz differ diff --git a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js index ca79387e3d3..41722d57f78 100644 --- a/erpnext/accounts/doctype/payable_voucher/payable_voucher.js +++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js @@ -66,7 +66,7 @@ cur_frm.cscript.supplier = function(doc,dt,dn) { get_server_fields('get_default_values', args, 'entries', doc, el[i].doctype, el[i].name, 1); } } - cur_frm.cscript.calc_total(doc); + cur_frm.cscript.calc_amount(doc, 1); } if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1,callback); diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js index 12b57d94546..c2b478e8e23 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.js @@ -18,6 +18,8 @@ cur_frm.cscript.onload = function(doc,dt,dn) { if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()}); if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()}); if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()}); + if(!doc.currency && sys_defaults.currency) set_multiple(cdt,cdn,{currency:sys_defaults.currency}); + if(!doc.price_list_currency) set_multiple(cdt, cdn, {price_list_currency: doc.currency, plc_conversion_rate: 1}); //for previously created sales invoice, set required field related to pos if(doc.is_pos ==1) cur_frm.cscript.is_pos(doc, dt, dn); @@ -234,13 +236,6 @@ cur_frm.cscript.is_opening = function(doc, dt, dn) { /* **************************** TRIGGERS ********************************** */ - - -// Posting Date -// ------------ -//cur_frm.cscript.posting_date = cur_frm.cscript.debit_to; - - // Get Items based on SO or DN Selected cur_frm.cscript['Get Items'] = function(doc, dt, dn) { var callback = function(r,rt) { diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py index 57d8c55facc..9e4baa18ca7 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -164,6 +164,10 @@ class DocType(TransactionBase): ret['actual_qty']= actual_qty and flt(actual_qty[0][0]) or 0 return ret + # Fetch ref rate from item master as per selected price list + def get_adj_percent(self, arg=''): + get_obj('Sales Common').get_adj_percent(self) + # Get tax rate if account type is tax # ------------------------------------ @@ -516,7 +520,7 @@ class DocType(TransactionBase): if stock_item[0]['is_stock_item'] == "Yes": # Reduce actual qty from warehouse self.make_sl_entry( d, d.warehouse, - flt(d.qty) , 0, update_stock) - get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values) + get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values, self.doc.amended_from and 'Yes' or 'No') #-------------------POS Stock Updatation Part---------------------------------------------- diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt index eedb01c5dd5..497c99febe4 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:18', 'docstatus': 0, - 'modified': '2011-12-08 16:28:22', + 'modified': '2011-12-20 18:23:36', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,7 +21,7 @@ # These values are common for all DocType { - '_last_update': '1323341785', + '_last_update': '1324367593', 'change_log': '1. Change in pull_details method dt.-26-06-2009', 'colour': 'White:FFF', 'default_print_format': 'Standard', @@ -34,7 +34,7 @@ 'server_code_error': ' ', 'show_in_menu': 0, 'subject': 'To %(customer_name)s worth %(currency)s %(grand_total_export)s due on %(due_date)s | %(outstanding_amount)s outstanding', - 'version': 388 + 'version': 391 }, # These values are common for all DocFormat @@ -470,42 +470,26 @@ # DocField { 'colour': 'White:FFF', - 'description': 'Select Items from Sales Order', + 'description': 'Select the currency in which price list is maintained', 'doctype': 'DocField', - 'fieldname': 'sales_order_main', - 'fieldtype': 'Link', - 'label': 'Sales Order', - 'oldfieldname': 'sales_order_main', - 'oldfieldtype': 'Link', - 'options': 'Sales Order', + 'fieldname': 'price_list_currency', + 'fieldtype': 'Select', + 'label': 'Price List Currency', + 'options': 'link:Currency', 'permlevel': 0, - 'print_hide': 1 + 'reqd': 1 }, # DocField { 'colour': 'White:FFF', - 'description': 'Select Items from Delivery Note', + 'description': 'Rate at which Price list currency is converted to your currency', 'doctype': 'DocField', - 'fieldname': 'delivery_note_main', - 'fieldtype': 'Link', - 'label': 'Delivery Note', - 'oldfieldname': 'delivery_note_main', - 'oldfieldtype': 'Link', - 'options': 'Delivery Note', + 'fieldname': 'plc_conversion_rate', + 'fieldtype': 'Currency', + 'label': 'Price List Currency Conversion Rate', 'permlevel': 0, - 'print_hide': 1 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldtype': 'Button', - 'label': 'Get Items', - 'oldfieldtype': 'Button', - 'permlevel': 0, - 'print_hide': 1, - 'trigger': 'Client' + 'reqd': 1 }, # DocField @@ -544,6 +528,47 @@ 'reqd': 1 }, + # DocField + { + 'colour': 'White:FFF', + 'description': 'Select Items from Sales Order', + 'doctype': 'DocField', + 'fieldname': 'sales_order_main', + 'fieldtype': 'Link', + 'label': 'Sales Order', + 'oldfieldname': 'sales_order_main', + 'oldfieldtype': 'Link', + 'options': 'Sales Order', + 'permlevel': 0, + 'print_hide': 1 + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Select Items from Delivery Note', + 'doctype': 'DocField', + 'fieldname': 'delivery_note_main', + 'fieldtype': 'Link', + 'label': 'Delivery Note', + 'oldfieldname': 'delivery_note_main', + 'oldfieldtype': 'Link', + 'options': 'Delivery Note', + 'permlevel': 0, + 'print_hide': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Get Items', + 'oldfieldtype': 'Button', + 'permlevel': 0, + 'print_hide': 1, + 'trigger': 'Client' + }, + # DocField { 'doctype': 'DocField', diff --git a/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js b/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js index 9222997e9a2..d9735b61f35 100644 --- a/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js +++ b/erpnext/buying/doctype/purchase_other_charges/purchase_other_charges.js @@ -111,15 +111,14 @@ cur_frm.cscript.row_id = function(doc, cdt, cdn) { /*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/ cur_frm.fields_dict['purchase_tax_details'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) { - return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable" or (tabAccount.is_pl_account = "Yes" and tabAccount.debit_or_credit = "Debit")) AND tabAccount.name LIKE "%s"' + return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable" or (tabAccount.is_pl_account = "Yes" and tabAccount.debit_or_credit = "Debit")) AND tabAccount.company = "' + doc.company + '" AND tabAccount.name LIKE "%s"' } -//--------------------filter other charges master company-wise----------------------------------------- -/* -cur_frm.fields_dict.charge.get_query = function(doc) { - return 'SELECT DISTINCT `tabOther Charges`.name FROM `tabOther Charges` WHERE `tabOther Charges`.company = "'+doc.company+'" AND `tabOther Charges`.company is not NULL AND `tabOther Charges`.docstatus !=2 AND `tabOther Charges`.name LIKE "%s" ORDER BY `tabOther Charges`.name LIMIT 50'; + +cur_frm.fields_dict['purchase_tax_details'].grid.get_field("cost_center").get_query = function(doc) { + return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50'; } -*/ + cur_frm.cscript.account_head = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; diff --git a/erpnext/hr/doctype/attendance/attendance.txt b/erpnext/hr/doctype/attendance/attendance.txt index 4f189b1cdcf..9c795bb6149 100644 --- a/erpnext/hr/doctype/attendance/attendance.txt +++ b/erpnext/hr/doctype/attendance/attendance.txt @@ -5,15 +5,16 @@ { 'creation': '2010-09-23 10:26:03', 'docstatus': 0, - 'modified': '2011-06-27 14:39:08', + 'modified': '2011-12-19 14:11:15', 'modified_by': 'Administrator', 'owner': 'ashwini@webnotestech.com' }, # These values are common for all DocType { - '_last_update': '1308808105', + '_last_update': '1317365120', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Master', 'module': 'HR', @@ -22,7 +23,7 @@ 'section_style': 'Simple', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 74 + 'version': 75 }, # These values are common for all DocField @@ -72,7 +73,6 @@ { 'amend': 0, 'doctype': 'DocPerm', - 'idx': 1, 'role': 'System Manager' }, @@ -80,7 +80,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Attendance Details', 'oldfieldtype': 'Section Break', 'options': 'Simple' @@ -91,7 +90,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 2, 'label': 'Naming Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -106,7 +104,6 @@ 'doctype': 'DocField', 'fieldname': 'employee', 'fieldtype': 'Link', - 'idx': 3, 'in_filter': 1, 'label': 'Employee', 'oldfieldname': 'employee', @@ -122,7 +119,6 @@ 'doctype': 'DocField', 'fieldname': 'employee_name', 'fieldtype': 'Data', - 'idx': 4, 'label': 'Employee Name', 'oldfieldname': 'employee_name', 'oldfieldtype': 'Data' @@ -134,27 +130,14 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 5, 'in_filter': 1, 'label': 'Status', + 'no_copy': 1, 'oldfieldname': 'status', 'oldfieldtype': 'Select', 'options': '\nPresent\nAbsent\nHalf Day', 'reqd': 1, - 'search_index': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'shifts', - 'fieldtype': 'Select', - 'idx': 6, - 'label': 'Shifts', - 'oldfieldname': 'shifts', - 'oldfieldtype': 'Select', - 'options': '\nDay\nNight', - 'reqd': 0 + 'search_index': 1 }, # DocField @@ -164,7 +147,6 @@ 'fieldname': 'leave_type', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 7, 'label': 'Leave Type', 'oldfieldname': 'leave_type', 'oldfieldtype': 'Link', @@ -177,7 +159,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 8, 'oldfieldtype': 'Column Break', 'width': '50%' }, @@ -187,13 +168,12 @@ 'doctype': 'DocField', 'fieldname': 'att_date', 'fieldtype': 'Date', - 'idx': 9, 'in_filter': 1, 'label': 'Attendance Date', 'oldfieldname': 'att_date', 'oldfieldtype': 'Date', 'reqd': 1, - 'search_index': 1 + 'search_index': 0 }, # DocField @@ -201,7 +181,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 10, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -215,7 +194,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Select', - 'idx': 11, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', diff --git a/erpnext/patches/auto_indent.py b/erpnext/patches/auto_indent.py new file mode 100644 index 00000000000..a8488e76347 --- /dev/null +++ b/erpnext/patches/auto_indent.py @@ -0,0 +1,8 @@ +def execute(): + import webnotes + from webnotes.modules.module_manager import reload_doc + reload_doc('setup', 'doctype', 'manage_account') + reload_doc('stock', 'doctype', 'item') + webnotes.conn.sql("delete from `tabDocField` where fieldname='minimum_inventory_level' and parent='item'") + webnotes.conn.sql("update `tabItem` set re_order_level = minimum_inventory_level where ifnull(re_order_level,0) = 0 ") + diff --git a/erpnext/patches/c_form_patch.py b/erpnext/patches/c_form_patch.py index a55768d2b1f..0f8fa22d686 100644 --- a/erpnext/patches/c_form_patch.py +++ b/erpnext/patches/c_form_patch.py @@ -4,7 +4,7 @@ def execute(): reload_doc('accounts', 'doctype', 'receivable_voucher') reload_doc('accounts', 'doctype', 'c_form') - reload_doc('accounts', 'doctype', 'c_form_invoice_details') + reload_doc('accounts', 'doctype', 'c_form_invoice_detail') reload_doc('accounts', 'Module Def', 'Accounts') sql = webnotes.conn.sql diff --git a/erpnext/patches/delivery_billing_status_patch.py b/erpnext/patches/delivery_billing_status_patch.py index 1fcd8bfdda4..7de04b7b929 100644 --- a/erpnext/patches/delivery_billing_status_patch.py +++ b/erpnext/patches/delivery_billing_status_patch.py @@ -49,7 +49,7 @@ def update_status(): sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""") -def run_patch(): +def execute(): update_delivered_billed_qty() update_percent() update_status() diff --git a/erpnext/patches/employeewise_balance_leave_report.py b/erpnext/patches/employeewise_balance_leave_report.py index 6af236484ea..59c59408a1a 100644 --- a/erpnext/patches/employeewise_balance_leave_report.py +++ b/erpnext/patches/employeewise_balance_leave_report.py @@ -6,7 +6,9 @@ """ def execute(): from webnotes.model.doc import Document + from webnotes.modules.module_manager import reload_doc + reload_doc('hr', 'search_criteria', 'employeewise_balance_leave_report') d = Document('Search Criteria', 'employeewise_balance_leave_report') d.criteria_name = 'Employee Leave Balance Report' d.description = 'Employeewise Balance Leave Report' - d.save() \ No newline at end of file + d.save() diff --git a/erpnext/patches/patch.py b/erpnext/patches/patch.py index 7e8a083d4db..4e32c02e2ce 100644 --- a/erpnext/patches/patch.py +++ b/erpnext/patches/patch.py @@ -6,6 +6,7 @@ last_patch = 388 #------------------------------------------- def execute(patch_no): + return import webnotes from webnotes.modules.module_manager import reload_doc diff --git a/erpnext/patches/price_list_patch.py b/erpnext/patches/price_list_patch.py new file mode 100644 index 00000000000..0f485b335cb --- /dev/null +++ b/erpnext/patches/price_list_patch.py @@ -0,0 +1,13 @@ +def execute(): + import webnotes + from webnotes.modules.module_manager import reload_doc + + reload_doc('accounts', 'doctype', 'receivable_voucher') + reload_doc('stock', 'doctype', 'delivery_note') + reload_doc('selling', 'doctype', 'sales_order') + reload_doc('selling', 'doctype', 'quotation') + reload_doc('setup', 'doctype', 'manage_account') + + + for d in ['Receivable Voucher', 'Delivery Note', 'Sales Order', 'Quotation']: + webnotes.conn.sql("update `tab%s` set price_list_currency = currency, plc_conversion_rate = conversion_rate" % d) diff --git a/erpnext/patches/reload_employeewise_balance_leave_report.py b/erpnext/patches/reload_employeewise_balance_leave_report.py new file mode 100644 index 00000000000..b03b44b22b1 --- /dev/null +++ b/erpnext/patches/reload_employeewise_balance_leave_report.py @@ -0,0 +1,4 @@ +def execute(): + import webnotes + from webnotes.modules.module_manager import reload_doc + reload_doc('hr', 'search_criteria', 'employeewise_balance_leave_report') diff --git a/erpnext/patches/remove_page_break_from_defaults.py b/erpnext/patches/remove_page_break_from_defaults.py index b565e93c736..8d842e3b733 100644 --- a/erpnext/patches/remove_page_break_from_defaults.py +++ b/erpnext/patches/remove_page_break_from_defaults.py @@ -1,5 +1,3 @@ def execute(): import webnotes - webnotes.conn.sql("""\ - DELETE FROM `tabDefaultValue` - WHERE parent='Control Panel' AND defkey='page_break'""") + webnotes.conn.sql("""delete from `tabDefaultValue` where defkey in ('page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos', 'purchase_discounts', 'recurring_invoice') and parent = 'Control Panel'""") diff --git a/erpnext/patches/repost_stock.py b/erpnext/patches/repost_stock.py index 680e06f4354..a19494cc5e5 100644 --- a/erpnext/patches/repost_stock.py +++ b/erpnext/patches/repost_stock.py @@ -2,6 +2,7 @@ def execute(): import webnotes sql = webnotes.conn.sql from webnotes.model.code import get_obj + from webnotes.utils import flt # update incoming rate in serial nos sr = sql("""select name, item_code, purchase_document_no from `tabSerial No` diff --git a/erpnext/patches/task_email_notification.py b/erpnext/patches/task_email_notification.py new file mode 100644 index 00000000000..e6a7afa2540 --- /dev/null +++ b/erpnext/patches/task_email_notification.py @@ -0,0 +1,4 @@ +def execute(): + import webnotes + from webnotes.modules.module_manager import reload_doc + reload_doc('projects', 'doctype', 'ticket') diff --git a/erpnext/projects/doctype/project_milestone/project_milestone.txt b/erpnext/projects/doctype/project_milestone/project_milestone.txt index eab533b4f19..6d45a7ca087 100644 --- a/erpnext/projects/doctype/project_milestone/project_milestone.txt +++ b/erpnext/projects/doctype/project_milestone/project_milestone.txt @@ -5,21 +5,22 @@ { 'creation': '2010-08-08 17:09:15', 'docstatus': 0, - 'modified': '2011-01-05 15:24:43', - 'modified_by': 'sneha@webnotestech.com', + 'modified': '2011-12-19 14:11:40', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'istable': 1, 'module': 'Projects', 'name': '__common__', 'section_style': 'Simple', 'server_code_error': ' ', - 'version': 2 + 'version': 4 }, # These values are common for all DocField @@ -43,27 +44,16 @@ 'doctype': 'DocField', 'fieldname': 'milestone_date', 'fieldtype': 'Date', - 'idx': 1, 'label': 'Milestone Date', 'oldfieldname': 'milestone_date', 'oldfieldtype': 'Date' }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'actual_completion_date_', - 'fieldtype': 'Date', - 'idx': 2, - 'label': 'Actual Completion Date ' - }, - # DocField { 'doctype': 'DocField', 'fieldname': 'milestone', 'fieldtype': 'Text', - 'idx': 3, 'label': 'Milestone', 'oldfieldname': 'milestone', 'oldfieldtype': 'Text', @@ -75,8 +65,8 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 4, 'label': 'Status', + 'no_copy': 1, 'oldfieldname': 'status', 'oldfieldtype': 'Select', 'options': 'Pending\nCompleted' diff --git a/erpnext/projects/doctype/ticket/ticket.py b/erpnext/projects/doctype/ticket/ticket.py index baf85e7b301..4d3e988f117 100644 --- a/erpnext/projects/doctype/ticket/ticket.py +++ b/erpnext/projects/doctype/ticket/ticket.py @@ -7,9 +7,9 @@ from webnotes.model.doc import Document, addchild, removechild, getchildren, mak from webnotes.model.doclist import getlist, copy_doclist from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax from webnotes import session, form, is_testing, msgprint, errprint - sql = webnotes.conn.sql set = webnotes.conn.set +get_value = webnotes.conn.get_value # ----------------------------------------------------------------------------------------- @@ -32,7 +32,7 @@ class DocType: return ret def get_allocated_to_name(self): - as_em = sql("select first_name, last_name from `tabProfile` where name=%s",self.doc.allocated_to) + as_em = sql("select first_name, last_name from `tabProfile` where name=%s",str(self.doc.allocated_to)) ret = { 'allocated_to_name' : as_em and (as_em[0][0] + ' ' + as_em[0][1]) or ''} return ret @@ -68,6 +68,13 @@ class DocType: #-------------------------------------------- def on_update(self): + if (self.doc.status =='Open') and (self.doc.task_email_notify==1): + msg2= 'A task %s has been assigned to you by %s on %s
\ + Project:%s
Review Date:%s
Closing Date:%s
Details %s' \ + %(self.doc.name,self.doc.senders_name,self.doc.opening_date,self.doc.project, \ + self.doc.review_date,self.doc.closing_date,self.doc.description) + sendmail(self.doc.allocated_to, sender='automail@webnotestech.com', \ + subject='A task has been assigned', parts=[['text/plain',msg2]]) pass #validate before sending for approval diff --git a/erpnext/projects/doctype/ticket/ticket.txt b/erpnext/projects/doctype/ticket/ticket.txt index e9d5ff02838..cd984aca942 100644 --- a/erpnext/projects/doctype/ticket/ticket.txt +++ b/erpnext/projects/doctype/ticket/ticket.txt @@ -5,17 +5,18 @@ { 'creation': '2011-01-28 17:52:35', 'docstatus': 0, - 'modified': '2010-12-03 10:04:58', + 'modified': '2011-12-21 16:32:30', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1307707462', + '_last_update': '1324394580', 'allow_trash': 1, 'autoname': 'TIC/.####', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Master', 'module': 'Projects', @@ -25,7 +26,7 @@ 'show_in_menu': 0, 'subject': '%(subject)s', 'tag_fields': 'status', - 'version': 245 + 'version': 247 }, # These values are common for all DocField @@ -44,7 +45,8 @@ 'parent': 'Ticket', 'parentfield': 'permissions', 'parenttype': 'DocType', - 'read': 1 + 'read': 1, + 'submit': 0 }, # DocType, Ticket @@ -53,13 +55,23 @@ 'name': 'Ticket' }, + # DocPerm + { + 'amend': 0, + 'cancel': 0, + 'create': 0, + 'doctype': 'DocPerm', + 'permlevel': 1, + 'role': 'Projects User', + 'write': 0 + }, + # DocPerm { 'amend': 1, 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'All', 'write': 1 @@ -67,8 +79,10 @@ # DocPerm { + 'amend': 0, + 'cancel': 0, + 'create': 0, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 1, 'role': 'All', 'write': 0 @@ -80,25 +94,15 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Projects User', 'write': 1 }, - # DocPerm - { - 'doctype': 'DocPerm', - 'idx': 4, - 'permlevel': 1, - 'role': 'Projects User' - }, - # DocField { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Task Details', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -111,7 +115,6 @@ 'doctype': 'DocField', 'fieldname': 'subject', 'fieldtype': 'Data', - 'idx': 2, 'in_filter': 1, 'label': 'Subject', 'oldfieldname': 'subject', @@ -125,8 +128,8 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Status', + 'no_copy': 1, 'oldfieldname': 'status', 'oldfieldtype': 'Select', 'options': 'Open\nPending Review\nClosed\nCancelled', @@ -134,12 +137,20 @@ 'trigger': 'Client' }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'task_email_notify', + 'fieldtype': 'Check', + 'label': 'Sent Mail Notification', + 'permlevel': 0 + }, + # DocField { 'doctype': 'DocField', 'fieldname': 'opening_date', 'fieldtype': 'Date', - 'idx': 4, 'label': 'Creation Date', 'oldfieldname': 'opening_date', 'oldfieldtype': 'Date', @@ -155,7 +166,6 @@ 'fieldname': 'review_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 5, 'label': 'Review Date', 'oldfieldname': 'review_date', 'oldfieldtype': 'Date', @@ -170,7 +180,6 @@ 'fieldname': 'closing_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 6, 'label': 'Closing Date', 'oldfieldname': 'closing_date', 'oldfieldtype': 'Date', @@ -182,7 +191,6 @@ 'doctype': 'DocField', 'fieldname': 'priority', 'fieldtype': 'Select', - 'idx': 7, 'in_filter': 1, 'label': 'Priority', 'oldfieldname': 'priority', @@ -199,7 +207,6 @@ 'doctype': 'DocField', 'fieldname': 'project', 'fieldtype': 'Link', - 'idx': 8, 'label': 'Project', 'oldfieldname': 'project', 'oldfieldtype': 'Link', @@ -214,7 +221,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 9, 'label': 'Customer', 'oldfieldname': 'customer', 'oldfieldtype': 'Link', @@ -228,7 +234,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 10, 'label': 'Customer Name', 'oldfieldname': 'customer_name', 'oldfieldtype': 'Data', @@ -239,7 +244,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 11, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -251,7 +255,6 @@ 'doctype': 'DocField', 'fieldname': 'allocated_to', 'fieldtype': 'Link', - 'idx': 12, 'label': 'Allocated To', 'oldfieldname': 'allocated_to', 'oldfieldtype': 'Link', @@ -266,7 +269,6 @@ 'fieldname': 'allocated_to_name', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 13, 'label': 'Allocated To Name', 'oldfieldname': 'allocated_to_name', 'oldfieldtype': 'Data', @@ -278,7 +280,6 @@ 'doctype': 'DocField', 'fieldname': 'senders_name', 'fieldtype': 'Data', - 'idx': 14, 'in_filter': 1, 'label': 'Raised By', 'oldfieldname': 'senders_name', @@ -293,7 +294,6 @@ 'doctype': 'DocField', 'fieldname': 'senders_email', 'fieldtype': 'Data', - 'idx': 15, 'label': 'Email', 'oldfieldname': 'senders_email', 'oldfieldtype': 'Data', @@ -306,7 +306,6 @@ 'doctype': 'DocField', 'fieldname': 'senders_contact_no', 'fieldtype': 'Data', - 'idx': 16, 'label': 'Senders Contact No', 'oldfieldname': 'senders_contact_no', 'oldfieldtype': 'Data', @@ -318,7 +317,6 @@ 'doctype': 'DocField', 'fieldname': 'senders_company', 'fieldtype': 'Data', - 'idx': 17, 'label': 'Senders Company', 'oldfieldname': 'senders_company', 'oldfieldtype': 'Data', @@ -330,7 +328,6 @@ 'doctype': 'DocField', 'fieldname': 'category', 'fieldtype': 'Link', - 'idx': 18, 'label': 'Category', 'oldfieldname': 'category', 'oldfieldtype': 'Link', @@ -343,7 +340,6 @@ 'doctype': 'DocField', 'fieldname': 'external_or_internal', 'fieldtype': 'Select', - 'idx': 19, 'label': 'External or Internal', 'oldfieldname': 'external_or_internal', 'oldfieldtype': 'Select', @@ -357,7 +353,6 @@ 'fieldname': 'amended_from', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 20, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -373,7 +368,6 @@ 'fieldname': 'amendment_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 21, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -387,7 +381,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 22, 'oldfieldtype': 'Section Break', 'options': 'Simple', 'permlevel': 0 @@ -398,7 +391,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Text Editor', - 'idx': 23, 'label': 'Details', 'oldfieldname': 'description', 'oldfieldtype': 'Text Editor', @@ -414,7 +406,6 @@ 'fieldname': 'first_creation_flag', 'fieldtype': 'Int', 'hidden': 1, - 'idx': 24, 'in_filter': 0, 'label': 'First Creation Flag', 'no_copy': 1, @@ -431,7 +422,6 @@ 'fieldname': 'second_creation_flag', 'fieldtype': 'Int', 'hidden': 1, - 'idx': 25, 'label': 'Second Creation Flag', 'no_copy': 1, 'oldfieldname': 'second_creation_flag', @@ -444,7 +434,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 26, 'label': 'Time and Budget', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -454,7 +443,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 27, 'label': 'Expected', 'oldfieldtype': 'Column Break', 'permlevel': 0, @@ -466,7 +454,6 @@ 'doctype': 'DocField', 'fieldname': 'exp_start_date', 'fieldtype': 'Date', - 'idx': 28, 'label': 'Expected Start Date', 'oldfieldname': 'exp_start_date', 'oldfieldtype': 'Date', @@ -479,7 +466,6 @@ 'doctype': 'DocField', 'fieldname': 'exp_end_date', 'fieldtype': 'Date', - 'idx': 29, 'in_filter': 1, 'label': 'Expected End Date', 'oldfieldname': 'exp_end_date', @@ -494,7 +480,6 @@ 'doctype': 'DocField', 'fieldname': 'exp_total_hrs', 'fieldtype': 'Data', - 'idx': 30, 'label': 'Total Hours (Expected)', 'oldfieldname': 'exp_total_hrs', 'oldfieldtype': 'Data', @@ -507,7 +492,6 @@ 'doctype': 'DocField', 'fieldname': 'allocated_budget', 'fieldtype': 'Currency', - 'idx': 31, 'label': 'Allocated Budget', 'oldfieldname': 'allocated_budget', 'oldfieldtype': 'Currency', @@ -518,7 +502,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 32, 'label': 'Actual', 'oldfieldtype': 'Column Break', 'permlevel': 0, @@ -530,7 +513,6 @@ 'doctype': 'DocField', 'fieldname': 'act_start_date', 'fieldtype': 'Date', - 'idx': 33, 'label': 'Actual Start Date', 'oldfieldname': 'act_start_date', 'oldfieldtype': 'Date', @@ -542,7 +524,6 @@ 'doctype': 'DocField', 'fieldname': 'act_end_date', 'fieldtype': 'Date', - 'idx': 34, 'label': 'Actual End Date', 'oldfieldname': 'act_end_date', 'oldfieldtype': 'Date', @@ -554,7 +535,6 @@ 'doctype': 'DocField', 'fieldname': 'act_total_hrs', 'fieldtype': 'Data', - 'idx': 35, 'label': 'Total Hours (Actual)', 'oldfieldname': 'act_total_hrs', 'oldfieldtype': 'Data', @@ -566,7 +546,6 @@ 'doctype': 'DocField', 'fieldname': 'actual_budget', 'fieldtype': 'Currency', - 'idx': 36, 'label': 'Actual Budget', 'oldfieldname': 'actual_budget', 'oldfieldtype': 'Currency', diff --git a/erpnext/selling/doctype/enquiry/enquiry.txt b/erpnext/selling/doctype/enquiry/enquiry.txt index 260e077bae7..0bf3b7f206b 100644 --- a/erpnext/selling/doctype/enquiry/enquiry.txt +++ b/erpnext/selling/doctype/enquiry/enquiry.txt @@ -5,15 +5,16 @@ { 'creation': '2010-08-08 17:09:00', 'docstatus': 0, - 'modified': '2011-05-12 18:27:46', + 'modified': '2011-12-19 14:11:27', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1305205067', + '_last_update': '1316075905', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Transaction', 'module': 'Selling', @@ -23,7 +24,7 @@ 'server_code_error': ' ', 'show_in_menu': 0, 'subject': 'To %(customer_name)s%(lead_name)s on %(transaction_date)s', - 'version': 586 + 'version': 587 }, # These values are common for all DocField @@ -57,7 +58,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 1, 'role': 'Sales Manager', 'submit': 0, @@ -70,7 +70,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'System Manager', 'submit': 1, @@ -80,7 +79,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 1, 'role': 'System Manager' }, @@ -91,7 +89,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Sales User', 'submit': 1, @@ -104,7 +101,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 1, 'role': 'Sales User', 'submit': 0, @@ -117,7 +113,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 0, 'role': 'Sales Manager', 'submit': 1, @@ -130,7 +125,6 @@ 'description': 'Enter customer enquiry for which you might raise a quotation in future', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -143,7 +137,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 2, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -159,7 +152,6 @@ 'doctype': 'DocField', 'fieldname': 'enquiry_from', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Enquiry From', 'oldfieldname': 'enquiry_from', 'oldfieldtype': 'Select', @@ -178,7 +170,6 @@ 'fieldname': 'customer', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 4, 'in_filter': 1, 'label': 'Customer', 'oldfieldname': 'customer', @@ -187,7 +178,7 @@ 'permlevel': 0, 'print_hide': 1, 'reqd': 0, - 'search_index': 1, + 'search_index': 0, 'trigger': 'Client' }, @@ -196,7 +187,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_address', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Customer Address', 'options': 'Address', @@ -210,7 +200,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_person', 'fieldtype': 'Link', - 'idx': 6, 'in_filter': 1, 'label': 'Contact Person', 'options': 'Contact', @@ -224,7 +213,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 7, 'label': 'Customer Name', 'permlevel': 1, 'print_hide': 0 @@ -236,7 +224,6 @@ 'fieldname': 'lead', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 8, 'in_filter': 1, 'label': 'Lead', 'oldfieldname': 'lead', @@ -244,7 +231,6 @@ 'options': 'Lead', 'permlevel': 0, 'print_hide': 1, - 'search_index': 1, 'trigger': 'Client' }, @@ -254,7 +240,6 @@ 'fieldname': 'lead_name', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 9, 'label': 'Name', 'oldfieldname': 'lead_name', 'oldfieldtype': 'Data', @@ -267,7 +252,6 @@ 'fieldname': 'address_display', 'fieldtype': 'Small Text', 'hidden': 0, - 'idx': 10, 'label': 'Address', 'oldfieldname': 'address', 'oldfieldtype': 'Small Text', @@ -279,7 +263,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 11, 'label': 'Contact', 'permlevel': 1 }, @@ -289,7 +272,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_mobile', 'fieldtype': 'Text', - 'idx': 12, 'label': 'Contact Mobile No', 'permlevel': 1 }, @@ -299,7 +281,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 13, 'label': 'Contact Email', 'permlevel': 1 }, @@ -308,7 +289,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 14, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -321,13 +301,11 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 15, 'label': 'Enquiry Date', 'oldfieldname': 'transaction_date', 'oldfieldtype': 'Date', 'permlevel': 0, 'reqd': 1, - 'search_index': 1, 'width': '50px' }, @@ -337,7 +315,6 @@ 'doctype': 'DocField', 'fieldname': 'enquiry_type', 'fieldtype': 'Select', - 'idx': 16, 'label': 'Enquiry Type', 'oldfieldname': 'enquiry_type', 'oldfieldtype': 'Select', @@ -353,7 +330,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 17, 'label': 'Status', 'no_copy': 1, 'oldfieldname': 'status', @@ -368,7 +344,6 @@ 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 18, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -383,7 +358,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 19, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -400,26 +374,25 @@ 'doctype': 'DocField', 'fieldname': 'territory', 'fieldtype': 'Link', - 'idx': 20, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', 'permlevel': 0, 'print_hide': 1, 'reqd': 1, - 'search_index': 0, + 'search_index': 1, 'trigger': 'Client' }, # DocField { 'colour': 'White:FFF', + 'depends_on': 'eval:doc.enquiry_from=="Customer"', 'description': 'To Manage Customer Groups, click here', 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 21, 'in_filter': 1, 'label': 'Customer Group', 'oldfieldname': 'customer_group', @@ -428,7 +401,7 @@ 'permlevel': 0, 'print_hide': 1, 'reqd': 0, - 'search_index': 0, + 'search_index': 1, 'trigger': 'Client' }, @@ -437,7 +410,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 22, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -450,7 +422,6 @@ 'doctype': 'DocField', 'fieldname': 'enquiry_details', 'fieldtype': 'Table', - 'idx': 23, 'label': 'Enquiry Details', 'oldfieldname': 'enquiry_details', 'oldfieldtype': 'Table', @@ -464,7 +435,6 @@ 'description': 'Filing in Additional Information about the Enquiry will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 24, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -474,7 +444,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 25, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -485,7 +454,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 26, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -494,7 +462,7 @@ 'permlevel': 0, 'print_hide': 1, 'reqd': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -502,7 +470,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 27, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -511,7 +478,7 @@ 'permlevel': 0, 'print_hide': 1, 'reqd': 1, - 'search_index': 0 + 'search_index': 1 }, # DocField @@ -519,7 +486,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 28, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -534,7 +500,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 29, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -549,7 +514,6 @@ 'doctype': 'DocField', 'fieldname': 'order_lost_reason', 'fieldtype': 'Small Text', - 'idx': 30, 'label': 'Order Lost Reason', 'no_copy': 1, 'oldfieldname': 'order_lost_reason', @@ -562,7 +526,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 31, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -575,7 +538,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_by', 'fieldtype': 'Link', - 'idx': 32, 'in_filter': 1, 'label': 'Next Contact By', 'oldfieldname': 'contact_by', @@ -592,7 +554,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_date', 'fieldtype': 'Date', - 'idx': 33, 'label': 'Next Contact Date', 'oldfieldname': 'contact_date', 'oldfieldtype': 'Date', @@ -608,7 +569,6 @@ 'doctype': 'DocField', 'fieldname': 'last_contact_date', 'fieldtype': 'Date', - 'idx': 34, 'label': 'Last Contact Date', 'no_copy': 1, 'oldfieldname': 'last_contact_date', @@ -622,7 +582,6 @@ 'doctype': 'DocField', 'fieldname': 'to_discuss', 'fieldtype': 'Small Text', - 'idx': 35, 'label': 'To Discuss', 'no_copy': 1, 'oldfieldname': 'to_discuss', @@ -636,7 +595,6 @@ 'description': 'Keep a track of communication related to this enquiry which will help for future reference.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 36, 'label': 'Communication History', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -649,7 +607,6 @@ 'doctype': 'DocField', 'fieldname': 'follow_up', 'fieldtype': 'Table', - 'idx': 37, 'label': 'Follow Up', 'oldfieldname': 'follow_up', 'oldfieldtype': 'Table', diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 21eceb9c612..4c205a9f9d6 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -18,7 +18,8 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) { if(!doc.transaction_date) set_multiple(cdt,cdn,{transaction_date:get_today()}); if(!doc.conversion_rate) set_multiple(cdt,cdn,{conversion_rate:'1.00'}); if(!doc.currency && sys_defaults.currency) set_multiple(cdt,cdn,{currency:sys_defaults.currency}); - //if(!doc.price_list_name && sys_defaults.price_list_name) set_multiple(cdt,cdn,{price_list_name:sys_defaults.price_list_name}); + if(!doc.price_list_currency) set_multiple(cdt, cdn, {price_list_currency: doc.currency, plc_conversion_rate: 1}); + if(!doc.company && sys_defaults.company) set_multiple(cdt,cdn,{company:sys_defaults.company}); if(!doc.fiscal_year && sys_defaults.fiscal_year) set_multiple(cdt,cdn,{fiscal_year:sys_defaults.fiscal_year}); @@ -51,7 +52,6 @@ cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){ hide_field(['lead','lead_name','address_display','contact_display','contact_mobile','contact_email','territory']); doc.lead = doc.lead_name = doc.customer = doc.customer_address = doc.contact_person = doc.address_display = doc.contact_display = doc.contact_mobile = doc.contact_email = doc.territory = doc.customer_group = ""; } - //refresh_many(['lead','customer']); } @@ -59,10 +59,6 @@ cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){ //================ hide - unhide fields on basis of quotation to either lead or customer =============================== cur_frm.cscript.quotation_to = function(doc,cdt,cdn){ cur_frm.cscript.lead_cust_show(doc,cdt,cdn); - //doc.customer_address = doc.territory = doc.contact_no = doc.email_id = ""; - //refresh_many(['territory','customer_address','contact_no','email_id']); - //doc.address_display = doc.contact_display = ""; - //refresh_many(['address_display','contact_display']); } @@ -80,31 +76,8 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { if (!doc.docstatus) hide_field(['Update Follow up']); else unhide_field(['Update Follow up']); - //cur_frm.cscript.lead_cust_show(doc,cdt,cdn); } -// ============== Lead and its Details ============================ - -/* -//================ create new contact ============================================================================ -cur_frm.cscript.new_contact = function(){ - tn = createLocal('Contact'); - locals['Contact'][tn].is_customer = 1; - if(doc.customer) locals['Contact'][tn].customer = doc.customer; - loaddoc('Contact', tn); -} -*/ - - -// DOCTYPE TRIGGERS -// ==================================================================================== - -/* -// ***************** Get Contact Person based on customer selected ***************** -cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT `tabContact`.contact_name, `tabContact`.email_id FROM `tabContact` WHERE `tabContact`.is_customer = 1 AND `tabContact`.docstatus != 2 AND `tabContact`.customer = "'+ doc.customer +'" AND `tabContact`.docstatus != 2 AND `tabContact`.contact_name LIKE "%s" ORDER BY `tabContact`.contact_name ASC LIMIT 50'; -} -*/ //customer cur_frm.cscript.customer = function(doc,dt,dn) { @@ -274,14 +247,6 @@ cur_frm.cscript['Get Report'] = function(doc,cdt,cdn) { } - - -/* -//get query select Territory -cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) { - return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY `tabTerritory`.`name` ASC LIMIT 50';} -*/ - //===================== Quotation to validation - either customer or lead mandatory ==================== cur_frm.cscript.quot_to_validate = function(doc,cdt,cdn){ @@ -293,14 +258,11 @@ cur_frm.cscript.quot_to_validate = function(doc,cdt,cdn){ } } else if(doc.quotation_to == 'Customer'){ - if(!doc.customer){ alert("Customer is mandatory."); validated = false; } - } - } //===================validation function ================================= diff --git a/erpnext/selling/doctype/quotation/quotation.txt b/erpnext/selling/doctype/quotation/quotation.txt index 6763c2df254..86b7b5f324e 100644 --- a/erpnext/selling/doctype/quotation/quotation.txt +++ b/erpnext/selling/doctype/quotation/quotation.txt @@ -5,18 +5,19 @@ { 'creation': '2010-08-08 17:09:17', 'docstatus': 0, - 'modified': '2011-06-21 17:17:07', + 'modified': '2011-12-20 14:01:09', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1308741898', + '_last_update': '1322549700', 'allow_attach': 1, 'allow_email': 0, 'allow_trash': 1, 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Transaction', 'hide_toolbar': 0, @@ -31,7 +32,7 @@ 'show_in_menu': 0, 'subject': 'To %(customer_name)s on %(transaction_date)s worth %(currency)s %(grand_total_export)s', 'tag_fields': 'status', - 'version': 596 + 'version': 597 }, # These values are common for all DocField @@ -49,8 +50,7 @@ 'name': '__common__', 'parent': 'Quotation', 'parentfield': 'permissions', - 'parenttype': 'DocType', - 'read': 1 + 'parenttype': 'DocType' }, # DocType, Quotation @@ -59,14 +59,21 @@ 'name': 'Quotation' }, + # DocPerm + { + 'doctype': 'DocPerm', + 'permlevel': 0, + 'role': 'user print' + }, + # DocPerm { 'amend': 0, 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 1, + 'read': 1, 'role': 'Sales Manager', 'submit': 0, 'write': 0 @@ -78,8 +85,8 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, + 'read': 1, 'role': 'Sales Manager', 'submit': 1, 'write': 1 @@ -91,8 +98,8 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, + 'read': 1, 'role': 'Sales User', 'submit': 1, 'write': 1 @@ -104,8 +111,8 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 1, + 'read': 1, 'role': 'Sales User', 'submit': 0, 'write': 0 @@ -114,9 +121,9 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 5, 'match': 'customer_name', 'permlevel': 0, + 'read': 1, 'role': 'Customer' }, @@ -126,8 +133,8 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 0, + 'read': 1, 'role': 'Maintenance Manager', 'submit': 1, 'write': 1 @@ -136,8 +143,8 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 1, + 'read': 1, 'role': 'Maintenance Manager' }, @@ -147,8 +154,8 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 8, 'permlevel': 0, + 'read': 1, 'role': 'Maintenance User', 'submit': 1, 'write': 1 @@ -157,8 +164,8 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 9, 'permlevel': 1, + 'read': 1, 'role': 'Maintenance User' }, @@ -167,7 +174,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -178,7 +184,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'permlevel': 0, 'width': '50%' }, @@ -190,7 +195,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -207,7 +211,6 @@ 'doctype': 'DocField', 'fieldname': 'quotation_to', 'fieldtype': 'Select', - 'idx': 4, 'in_filter': 1, 'label': 'Quotation To', 'oldfieldname': 'quotation_to', @@ -227,7 +230,6 @@ 'fieldname': 'customer', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 5, 'in_filter': 1, 'label': 'Customer', 'oldfieldname': 'customer', @@ -246,7 +248,6 @@ 'fieldname': 'customer_address', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 6, 'in_filter': 1, 'label': 'Customer Address', 'options': 'Address', @@ -262,7 +263,6 @@ 'fieldname': 'contact_person', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 7, 'in_filter': 1, 'label': 'Contact Person', 'oldfieldname': 'contact_person', @@ -279,7 +279,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 8, 'label': 'Name', 'permlevel': 1 }, @@ -291,7 +290,6 @@ 'fieldname': 'lead', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 9, 'in_filter': 1, 'label': 'Lead', 'oldfieldname': 'lead', @@ -308,7 +306,6 @@ 'doctype': 'DocField', 'fieldname': 'lead_name', 'fieldtype': 'Text', - 'idx': 10, 'label': 'Name', 'permlevel': 1 }, @@ -320,7 +317,6 @@ 'fieldname': 'address_display', 'fieldtype': 'Small Text', 'hidden': 0, - 'idx': 11, 'in_filter': 0, 'label': 'Address', 'oldfieldname': 'customer_address', @@ -337,7 +333,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 12, 'in_filter': 0, 'label': 'Contact', 'permlevel': 1, @@ -351,7 +346,6 @@ 'fieldname': 'contact_mobile', 'fieldtype': 'Text', 'hidden': 0, - 'idx': 13, 'label': 'Mobile No', 'permlevel': 1, 'print_hide': 0 @@ -363,7 +357,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 14, 'label': 'Contact Email', 'permlevel': 1, 'print_hide': 1 @@ -374,7 +367,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 15, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -387,7 +379,6 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 16, 'in_filter': 1, 'label': 'Quotation Date', 'no_copy': 1, @@ -405,7 +396,6 @@ 'doctype': 'DocField', 'fieldname': 'order_type', 'fieldtype': 'Select', - 'idx': 17, 'in_filter': 1, 'label': 'Order Type', 'oldfieldname': 'order_type', @@ -425,7 +415,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 18, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -443,7 +432,6 @@ 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 19, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -459,7 +447,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 20, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -477,7 +464,6 @@ 'fieldname': 'enq_no', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 21, 'in_filter': 1, 'label': 'Enquiry No', 'no_copy': 0, @@ -495,7 +481,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 0, - 'idx': 22, 'label': 'Pull Enquiry Detail', 'no_copy': 0, 'oldfieldtype': 'Button', @@ -513,7 +498,6 @@ 'fieldname': 'territory', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 23, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', @@ -530,7 +514,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', - 'idx': 24, 'in_filter': 1, 'label': 'Customer Group', 'oldfieldname': 'customer_group', @@ -548,7 +531,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 25, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -556,18 +538,6 @@ 'search_index': 0 }, - # DocField - { - 'doctype': 'DocField', - 'fieldtype': 'Button', - 'idx': 26, - 'label': 'Clear Table', - 'oldfieldtype': 'Button', - 'options': 'clear_quotation_details', - 'permlevel': 0, - 'print_hide': 1 - }, - # DocField { 'colour': 'White:FFF', @@ -575,7 +545,6 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 27, 'in_filter': 1, 'label': 'Price List', 'oldfieldname': 'price_list_name', @@ -589,11 +558,35 @@ 'width': '100px' }, + # DocField + { + 'colour': 'White:FFF', + 'description': 'Select the currency in which price list is maintained', + 'doctype': 'DocField', + 'fieldname': 'price_list_currency', + 'fieldtype': 'Select', + 'label': 'Price List Currency', + 'options': 'link:Currency', + 'permlevel': 0, + 'reqd': 1 + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Rate at which Price list currency is converted to your currency', + 'doctype': 'DocField', + 'fieldname': 'plc_conversion_rate', + 'fieldtype': 'Currency', + 'label': 'Price List Currency Conversion Rate', + 'permlevel': 0, + 'reqd': 1 + }, + # DocField { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 28, 'permlevel': 0, 'width': '50%' }, @@ -605,7 +598,6 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 29, 'in_filter': 1, 'label': 'Currency', 'oldfieldname': 'currency', @@ -627,7 +619,6 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 30, 'label': 'Currency Conversion Rate', 'oldfieldname': 'conversion_rate', 'oldfieldtype': 'Currency', @@ -638,11 +629,21 @@ 'width': '100px' }, + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Clear Table', + 'oldfieldtype': 'Button', + 'options': 'clear_quotation_details', + 'permlevel': 0, + 'print_hide': 1 + }, + # DocField { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 31, 'options': 'Simple', 'permlevel': 0 }, @@ -655,7 +656,6 @@ 'doctype': 'DocField', 'fieldname': 'quotation_details', 'fieldtype': 'Table', - 'idx': 32, 'label': 'Quotation Details', 'oldfieldname': 'quotation_details', 'oldfieldtype': 'Table', @@ -669,7 +669,6 @@ 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 33, 'label': 'Net Total*', 'no_copy': 0, 'oldfieldname': 'net_total', @@ -684,7 +683,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 34, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -697,7 +695,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 35, 'label': 'Note HTML', 'oldfieldtype': 'HTML', 'options': '
Note : * In Base Currency\n
', @@ -710,7 +707,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 36, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -722,7 +718,6 @@ 'fieldname': 'charge', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 37, 'label': 'Select Charges Master', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -737,7 +732,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 0, - 'idx': 38, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -750,7 +744,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 39, 'label': 'Other Charges', 'oldfieldname': 'other_charges', 'oldfieldtype': 'Table', @@ -763,7 +756,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 40, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -776,7 +768,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges_total', 'fieldtype': 'Currency', - 'idx': 41, 'label': 'Charges Total*', 'oldfieldname': 'other_charges_total', 'oldfieldtype': 'Currency', @@ -789,7 +780,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 42, 'label': 'Grand Total*', 'no_copy': 0, 'oldfieldname': 'grand_total', @@ -804,7 +794,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 43, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0, @@ -815,7 +804,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 44, 'label': 'OT Notes', 'oldfieldtype': 'HTML', 'options': '
Note : * In Base Currency\n
', @@ -828,7 +816,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 45, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -840,7 +827,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 46, 'label': 'Rounded Total', 'no_copy': 0, 'oldfieldname': 'rounded_total', @@ -858,7 +844,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 47, 'label': 'In Words', 'no_copy': 0, 'oldfieldname': 'in_words', @@ -872,7 +857,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 48, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -884,7 +868,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 49, 'label': 'Grand Total (Export)', 'no_copy': 0, 'oldfieldname': 'grand_total_export', @@ -900,7 +883,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 50, 'label': 'Rounded Total (Export)', 'no_copy': 0, 'oldfieldname': 'rounded_total_export', @@ -918,7 +900,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 51, 'label': 'In Words (Export)', 'no_copy': 0, 'oldfieldname': 'in_words_export', @@ -934,7 +915,6 @@ 'description': 'Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a master Term Sheet and use the Template', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 52, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -947,7 +927,6 @@ 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 53, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Select', @@ -961,7 +940,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 54, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -975,7 +953,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 55, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -986,7 +963,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 56, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -999,7 +975,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 57, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -1012,7 +987,6 @@ 'description': 'Filling in additional information about the Quotation will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 58, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1026,7 +1000,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 59, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -1046,7 +1019,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 60, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -1065,7 +1037,6 @@ 'fieldname': 'enq_det', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 61, 'label': 'Enquiry Detail', 'no_copy': 0, 'oldfieldname': 'enq_det', @@ -1082,7 +1053,6 @@ 'fieldname': 'source', 'fieldtype': 'Select', 'hidden': 0, - 'idx': 62, 'label': 'Source', 'no_copy': 0, 'oldfieldname': 'source', @@ -1100,7 +1070,6 @@ 'fieldname': 'campaign', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 63, 'label': 'Campaign', 'no_copy': 0, 'oldfieldname': 'campaign', @@ -1117,7 +1086,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 64, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -1134,7 +1102,6 @@ 'doctype': 'DocField', 'fieldname': 'cancel_reason', 'fieldtype': 'Data', - 'idx': 65, 'label': 'Cancel Reason', 'no_copy': 1, 'oldfieldname': 'cancel_reason', @@ -1150,7 +1117,6 @@ 'doctype': 'DocField', 'fieldname': 'order_lost_reason', 'fieldtype': 'Small Text', - 'idx': 66, 'label': 'Order Lost Reason', 'no_copy': 1, 'oldfieldname': 'order_lost_reason', @@ -1163,7 +1129,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 67, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1176,7 +1141,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_by', 'fieldtype': 'Link', - 'idx': 68, 'label': 'Next Contact By', 'oldfieldname': 'contact_by', 'oldfieldtype': 'Link', @@ -1191,7 +1155,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_date', 'fieldtype': 'Date', - 'idx': 69, 'label': 'Next Contact Date', 'oldfieldname': 'contact_date', 'oldfieldtype': 'Date', @@ -1206,7 +1169,6 @@ 'doctype': 'DocField', 'fieldname': 'last_contact_date', 'fieldtype': 'Date', - 'idx': 70, 'label': 'Last Contact Date', 'no_copy': 1, 'oldfieldname': 'last_contact_date', @@ -1220,7 +1182,6 @@ 'doctype': 'DocField', 'fieldname': 'to_discuss', 'fieldtype': 'Small Text', - 'idx': 71, 'label': 'To Discuss', 'oldfieldname': 'to_discuss', 'oldfieldtype': 'Small Text', @@ -1234,7 +1195,6 @@ 'description': 'Keep a track on communications regarding this Quotation. This will help you remember earlier communications in case the Customer comes back again', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 72, 'label': 'Communication History', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1248,7 +1208,6 @@ 'doctype': 'DocField', 'fieldname': 'follow_up', 'fieldtype': 'Table', - 'idx': 73, 'label': 'Follow up', 'oldfieldname': 'follow_up', 'oldfieldtype': 'Table', @@ -1265,7 +1224,6 @@ 'fieldname': 'file_list', 'fieldtype': 'Small Text', 'hidden': 1, - 'idx': 74, 'label': 'File List', 'no_copy': 1, 'permlevel': 0, diff --git a/erpnext/selling/doctype/sales_common/sales_common.js b/erpnext/selling/doctype/sales_common/sales_common.js index f4b3f0202b4..23e04202f2d 100644 --- a/erpnext/selling/doctype/sales_common/sales_common.js +++ b/erpnext/selling/doctype/sales_common/sales_common.js @@ -19,9 +19,10 @@ cur_frm.cscript.load_taxes = function(doc, cdt, cdn) { // ----------------- // Shipping Address // ----------------- -//cur_frm.add_fetch('ship_det_no', 'shipping_address', 'shipping_address'); -//cur_frm.add_fetch('ship_det_no', 'ship_to', 'ship_to'); + cur_frm.add_fetch('company', 'default_currency', 'currency'); +cur_frm.add_fetch('company', 'default_currency', 'price_list_currency'); + // ============== Customer and its primary contact Details ============================ @@ -59,15 +60,6 @@ cur_frm.cscript.CGHelp = function(doc,dt,dn){ loadpage('Sales Browser',call_back); } -/* -// ============= Customer's Contact Person Details ===================================== -cur_frm.cscript.contact_person = function(doc, cdt, cdn) { - var callback = function(){ - refresh_many(['contact_no','email_id','customer_mobile_no','customer_address']); - } - get_server_fields('get_contact_details','','',doc, cdt, cdn, 1, callback); -} -*/ // TRIGGERS FOR CALCULATIONS // ===================================================================================================== @@ -77,10 +69,17 @@ cur_frm.cscript.currency = function(doc, cdt, cdn) { cur_frm.cscript.price_list_name(doc, cdt, cdn); } +cur_frm.cscript.price_list_currency = cur_frm.cscript.currency; +cur_frm.cscript.conversion_rate = cur_frm.cscript.currency; +cur_frm.cscript.plc_conversion_rate = cur_frm.cscript.currency; + + + // ******************** PRICE LIST ****************************** cur_frm.cscript.price_list_name = function(doc, cdt, cdn) { var fname = cur_frm.cscript.fname; - if(doc.price_list_name && doc.currency) { + var cl = getchildren(cur_frm.cscript.tname, doc.name, cur_frm.cscript.fname); + if(doc.price_list_name && doc.currency && doc.price_list_currency && doc.conversion_rate && doc.plc_conversion_rate && cl.length) { $c_obj(make_doclist(doc.doctype, doc.name), 'get_adj_percent', '', function(r, rt) { refresh_field(fname); @@ -92,8 +91,6 @@ cur_frm.cscript.price_list_name = function(doc, cdt, cdn) { } -// ******************* CONVERSION RATE *************************** -cur_frm.cscript.conversion_rate = function(doc, cdt, cdn) { cur_frm.cscript.recalc(doc, 3);/*cur_frm.cscript.price_list_name(doc, cdt, cdn);*/ } // ******************** ITEM CODE ******************************** cur_frm.fields_dict[cur_frm.cscript.fname].grid.get_field("item_code").get_query = function(doc, cdt, cdn) { @@ -104,7 +101,6 @@ cur_frm.fields_dict[cur_frm.cscript.fname].grid.get_field("item_code").get_query } - cur_frm.cscript.item_code = function(doc, cdt, cdn) { var fname = cur_frm.cscript.fname; var d = locals[cdt][cdn]; @@ -125,6 +121,7 @@ cur_frm.cscript.item_code = function(doc, cdt, cdn) { } } + // *********************** QUANTITY *************************** cur_frm.cscript.qty = function(doc, cdt, cdn) { cur_frm.cscript.recalc(doc, 1); } @@ -154,6 +151,8 @@ cur_frm.cscript.basic_rate = function(doc, cdt, cdn) { // ************************ EXPORT RATE ************************* cur_frm.cscript.export_rate = function(doc,cdt,cdn) { cur_frm.cscript.recalc(doc, 3);} + + // ************* GET OTHER CHARGES BASED ON COMPANY ************* cur_frm.fields_dict.charge.get_query = function(doc) { return 'SELECT DISTINCT `tabOther Charges`.name FROM `tabOther Charges` WHERE `tabOther Charges`.company = "'+doc.company+'" AND `tabOther Charges`.company is not NULL AND `tabOther Charges`.docstatus != 2 AND `tabOther Charges`.%(key)s LIKE "%s" ORDER BY `tabOther Charges`.name LIMIT 50'; @@ -176,6 +175,7 @@ cur_frm.cscript.recalc = function(doc, n) { var other_fname = cur_frm.cscript.other_fname; if(!flt(doc.conversion_rate)) { doc.conversion_rate = 1; refresh_field('conversion_rate'); } + if(!flt(doc.plc_conversion_rate)) { doc.plc_conversion_rate = 1; refresh_field('plc_conversion_rate'); } if(n > 0) cur_frm.cscript.update_fname_table(doc , tname , fname , n); // updates all values in table (i.e. amount, export amount, net total etc.) @@ -367,7 +367,7 @@ cur_frm.cscript.update_fname_table = function(doc , tname , fname , n) { set_multiple(tname, cl[i].name, {'basic_rate': flt(flt(cl[i].export_rate) * flt(doc.conversion_rate))}, fname); set_multiple(tname, cl[i].name, {'amount' : flt(flt(cl[i].basic_rate) * flt(cl[i].qty)), 'export_amount': flt(flt(cl[i].export_rate) * flt(cl[i].qty))}, fname); if(cl[i].ref_rate > 0) - set_multiple(tname, cl[i].name, {'adj_rate': 100 - flt(flt(cl[i].export_rate) * 100 / flt(cl[i].ref_rate)), 'base_ref_rate': flt(flt(cl[i].ref_rate) * flt(doc.conversion_rate)) }, fname); + set_multiple(tname, cl[i].name, {'adj_rate': 100 - flt(flt(cl[i].export_rate) * 100 / flt(cl[i].ref_rate)), 'base_ref_rate': flt(flt(cl[i].ref_rate) * flt(doc.conversion_rate)) }, fname); } net_total += flt(flt(cl[i].qty) * flt(cl[i].basic_rate)); } diff --git a/erpnext/selling/doctype/sales_common/sales_common.py b/erpnext/selling/doctype/sales_common/sales_common.py index 78454ee7a88..ea9ffe99be3 100644 --- a/erpnext/selling/doctype/sales_common/sales_common.py +++ b/erpnext/selling/doctype/sales_common/sales_common.py @@ -135,32 +135,31 @@ class DocType(TransactionBase): 'batch_no' : '' } if(obj.doc.price_list_name and item): #this is done to fetch the changed BASIC RATE and REF RATE based on PRICE LIST - ref_rate = self.get_ref_rate(item_code, obj.doc.price_list_name, obj.doc.currency) - ret['ref_rate'] = flt(ref_rate) - ret['export_rate'] = flt(ref_rate) - ret['base_ref_rate'] = flt(ref_rate) * flt(obj.doc.conversion_rate) - ret['basic_rate'] = flt(ref_rate) * flt(obj.doc.conversion_rate) - - if obj.doc.doctype == 'Receivable Voucher': - return ret - + base_ref_rate = self.get_ref_rate(item_code, obj.doc.price_list_name, obj.doc.price_list_currency, obj.doc.plc_conversion_rate) + ret['ref_rate'] = flt(base_ref_rate)/flt(obj.doc.conversion_rate) + ret['export_rate'] = flt(base_ref_rate)/flt(obj.doc.conversion_rate) + ret['base_ref_rate'] = flt(base_ref_rate) + ret['basic_rate'] = flt(base_ref_rate) + return ret # ***************** Get Ref rate as entered in Item Master ******************** - def get_ref_rate(self, item_code, price_list_name, currency): - ref_rate = sql("select ref_rate from `tabRef Rate Detail` where parent = %s and price_list_name = %s and ref_currency = %s", (item_code, price_list_name, currency)) - return ref_rate and ref_rate[0][0] or 0 + def get_ref_rate(self, item_code, price_list_name, price_list_currency, plc_conv_rate): + ref_rate = sql("select ref_rate from `tabRef Rate Detail` where parent = %s and price_list_name = %s and ref_currency = %s", (item_code, price_list_name, price_list_currency)) + base_ref_rate = ref_rate and flt(ref_rate[0][0]) * flt(plc_conv_rate) or 0 + return base_ref_rate - # ****** Re-calculates Basic Rate & amount based on Price List Selected ****** + # ****** Re-cancellculates Basic Rate & amount based on Price List Selected ****** def get_adj_percent(self, obj): for d in getlist(obj.doclist, obj.fname): - ref_rate = self.get_ref_rate(d.item_code,obj.doc.price_list_name,obj.doc.currency) + base_ref_rate = self.get_ref_rate(d.item_code, obj.doc.price_list_name, obj.doc.price_list_currency, obj.doc.plc_conversion_rate) d.adj_rate = 0 - d.ref_rate = flt(ref_rate) - d.basic_rate = flt(ref_rate) * flt(obj.doc.conversion_rate) - d.base_ref_rate = flt(ref_rate) * flt(obj.doc.conversion_rate) - d.export_rate = flt(ref_rate) + d.ref_rate = flt(base_ref_rate)/flt(obj.doc.conversion_rate) + d.basic_rate = flt(base_ref_rate) + d.base_ref_rate = flt(base_ref_rate) + d.export_rate = flt(base_ref_rate)/flt(obj.doc.conversion_rate) + # Load Default Taxes # ==================== @@ -268,9 +267,12 @@ class DocType(TransactionBase): msgprint('Message: Please enter default currency in Company Master') raise Exception if (obj.doc.currency == default_currency and flt(obj.doc.conversion_rate) != 1.00) or not obj.doc.conversion_rate or (obj.doc.currency != default_currency and flt(obj.doc.conversion_rate) == 1.00): - msgprint("Please Enter Appropriate Conversion Rate.") - raise Exception + msgprint("Please Enter Appropriate Conversion Rate for Customer's Currency to Base Currency (%s --> %s)" % (obj.doc.currency, default_currency), raise_exception = 1) + if (obj.doc.price_list_currency == default_currency and flt(obj.doc.plc_conversion_rate) != 1.00) or not obj.doc.plc_conversion_rate or (obj.doc.price_list_currency != default_currency and flt(obj.doc.plc_conversion_rate) == 1.00): + msgprint("Please Enter Appropriate Conversion Rate for Price List Currency to Base Currency ( (%s --> %s)" % (obj.doc.price_list_currency, default_currency), raise_exception = 1) + + # Get Tax rate if account type is TAX # ========================================================================= diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index e684bed1bfa..949abcd037c 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -16,6 +16,7 @@ $import(SMS Control) cur_frm.cscript.onload = function(doc, cdt, cdn) { if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'}); if(!doc.transaction_date) set_multiple(cdt,cdn,{transaction_date:get_today()}); + if(!doc.price_list_currency) set_multiple(cdt, cdn, {price_list_currency: doc.currency, plc_conversion_rate: 1}); // load default charges if(doc.__islocal){ diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index ca5af7ae662..72245ebb941 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -446,7 +446,7 @@ class DocType(TransactionBase): if not d[0]: msgprint("Message: Please enter Reserved Warehouse for item %s as it is stock item."% d[1]) raise Exception - bin = get_obj('Warehouse', d[0]).update_bin( 0, flt(update_stock) * flt(d[2]), 0, 0, 0, d[1], self.doc.transaction_date) + bin = get_obj('Warehouse', d[0]).update_bin( 0, flt(update_stock) * flt(d[2]), 0, 0, 0, d[1], self.doc.transaction_date,doc_type=self.doc.doctype,doc_name=self.doc.name, is_amended = (self.doc.amended_from and 'Yes' or 'No')) # Gets Items from packing list #================================= diff --git a/erpnext/selling/doctype/sales_order/sales_order.txt b/erpnext/selling/doctype/sales_order/sales_order.txt index 98833d17ce7..d59f236e5b2 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.txt +++ b/erpnext/selling/doctype/sales_order/sales_order.txt @@ -5,15 +5,17 @@ { 'creation': '2010-08-08 17:09:21', 'docstatus': 0, - 'modified': '2011-08-09 17:06:09', + 'modified': '2011-12-20 12:55:02', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1311621379', + '_last_update': '1324295218', + 'allow_attach': 0, 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Transaction', 'is_transaction_doc': 1, @@ -27,7 +29,7 @@ 'show_in_menu': 0, 'subject': 'From %(customer_name)s on %(transaction_date)s worth %(currency)s %(grand_total_export)s | %(per_delivered)s% delivered | %(per_billed)s% billed', 'tag_fields': 'delivery_status,billing_status', - 'version': 597 + 'version': 608 }, # These values are common for all DocField @@ -58,7 +60,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'Production Manager' }, @@ -69,7 +70,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 1, 'role': 'Sales Manager', 'submit': 0, @@ -82,7 +82,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Sales Manager', 'submit': 1, @@ -95,7 +94,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Sales User', 'submit': 1, @@ -108,7 +106,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 1, 'role': 'Sales User', 'submit': 0, @@ -118,7 +115,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 6, 'match': 'customer_name', 'permlevel': 0, 'role': 'Customer' @@ -127,7 +123,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 2, 'role': 'Accounts User', 'write': 1 @@ -139,7 +134,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 8, 'permlevel': 0, 'role': 'Maintenance Manager', 'submit': 1, @@ -149,7 +143,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 9, 'permlevel': 1, 'role': 'Maintenance Manager' }, @@ -160,7 +153,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 10, 'permlevel': 0, 'role': 'Maintenance User', 'submit': 1, @@ -170,7 +162,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 11, 'permlevel': 1, 'role': 'Maintenance User' }, @@ -180,7 +171,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -191,7 +181,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'in_filter': 0, 'oldfieldtype': 'Column Break', 'permlevel': 0, @@ -206,7 +195,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -224,7 +212,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 4, 'in_filter': 1, 'label': 'Customer', 'oldfieldname': 'customer', @@ -243,7 +230,6 @@ 'fieldname': 'customer_address', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 5, 'in_filter': 1, 'label': 'Customer Address', 'options': 'Address', @@ -256,7 +242,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_person', 'fieldtype': 'Link', - 'idx': 6, 'in_filter': 1, 'label': 'Contact Person', 'options': 'Contact', @@ -269,7 +254,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 7, 'label': 'Name', 'permlevel': 1 }, @@ -279,7 +263,6 @@ 'doctype': 'DocField', 'fieldname': 'address_display', 'fieldtype': 'Small Text', - 'idx': 8, 'label': 'Address', 'permlevel': 1 }, @@ -289,7 +272,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 9, 'label': 'Contact', 'permlevel': 1 }, @@ -299,7 +281,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_mobile', 'fieldtype': 'Text', - 'idx': 10, 'label': 'Mobile No', 'permlevel': 1 }, @@ -309,7 +290,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 11, 'label': 'Contact Email', 'permlevel': 1, 'print_hide': 1 @@ -320,7 +300,6 @@ 'doctype': 'DocField', 'fieldname': 'territory', 'fieldtype': 'Link', - 'idx': 12, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', @@ -336,7 +315,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', - 'idx': 13, 'in_filter': 1, 'label': 'Customer Group', 'options': 'Customer Group', @@ -354,7 +332,6 @@ 'fieldname': 'po_no', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 14, 'label': 'P.O. No', 'oldfieldname': 'po_no', 'oldfieldtype': 'Data', @@ -370,7 +347,6 @@ 'fieldname': 'po_date', 'fieldtype': 'Date', 'hidden': 0, - 'idx': 15, 'label': 'P.O. Date', 'oldfieldname': 'po_date', 'oldfieldtype': 'Date', @@ -384,7 +360,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 16, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -397,7 +372,6 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 17, 'in_filter': 1, 'label': 'Sales Order Date', 'no_copy': 1, @@ -416,7 +390,6 @@ 'doctype': 'DocField', 'fieldname': 'order_type', 'fieldtype': 'Select', - 'idx': 18, 'label': 'Order Type', 'oldfieldname': 'order_type', 'oldfieldtype': 'Select', @@ -431,7 +404,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 19, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -452,7 +424,6 @@ 'fieldname': 'delivery_date', 'fieldtype': 'Date', 'hidden': 0, - 'idx': 20, 'in_filter': 1, 'label': 'Expected Delivery Date', 'oldfieldname': 'delivery_date', @@ -471,7 +442,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 21, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -490,7 +460,6 @@ 'doctype': 'DocField', 'fieldname': 'per_delivered', 'fieldtype': 'Currency', - 'idx': 22, 'in_filter': 1, 'label': '% Delivered', 'no_copy': 1, @@ -509,7 +478,6 @@ 'doctype': 'DocField', 'fieldname': 'per_billed', 'fieldtype': 'Currency', - 'idx': 23, 'in_filter': 1, 'label': '% Amount Billed', 'no_copy': 1, @@ -526,7 +494,6 @@ 'fieldname': 'amended_from', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 24, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -544,7 +511,6 @@ 'fieldname': 'amendment_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 25, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -560,7 +526,6 @@ 'fieldname': 'shipping_address_name', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 26, 'in_filter': 1, 'label': 'Shipping Address Name', 'options': 'Address', @@ -573,7 +538,6 @@ 'doctype': 'DocField', 'fieldname': 'shipping_address', 'fieldtype': 'Small Text', - 'idx': 27, 'in_filter': 0, 'label': 'Shipping Address', 'permlevel': 1, @@ -585,73 +549,11 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 28, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0 }, - # DocField - { - 'colour': 'White:FFF', - 'description': 'Quotation no against which this Sales Order is made ', - 'doctype': 'DocField', - 'fieldname': 'quotation_no', - 'fieldtype': 'Link', - 'idx': 29, - 'in_filter': 1, - 'label': 'Quotation No', - 'no_copy': 0, - 'oldfieldname': 'quotation_no', - 'oldfieldtype': 'Link', - 'options': 'Quotation', - 'permlevel': 0, - 'print_hide': 1, - 'search_index': 1, - 'trigger': 'Client', - 'width': '150px' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'vehicle_detail', - 'fieldtype': 'Small Text', - 'idx': 30, - 'label': 'Vehicle Detail', - 'permlevel': 0 - }, - - # DocField - { - 'colour': 'White:FFF', - 'doctype': 'DocField', - 'fieldname': 'quotation_date', - 'fieldtype': 'Date', - 'hidden': 1, - 'idx': 31, - 'label': 'Quotation Date', - 'no_copy': 0, - 'oldfieldname': 'quotation_date', - 'oldfieldtype': 'Date', - 'permlevel': 1, - 'print_hide': 1, - 'reqd': 0, - 'width': '100px' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldtype': 'Button', - 'idx': 32, - 'label': 'Pull Quotation Details', - 'oldfieldtype': 'Button', - 'options': 'pull_quotation_details', - 'permlevel': 0, - 'print_hide': 1 - }, - # DocField { 'colour': 'White:FFF', @@ -659,7 +561,6 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 33, 'label': 'Price List', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', @@ -671,11 +572,34 @@ 'width': '100px' }, + # DocField + { + 'description': 'Select the currency in which price list is maintained', + 'doctype': 'DocField', + 'fieldname': 'price_list_currency', + 'fieldtype': 'Select', + 'label': 'Price List Currency', + 'options': 'link:Currency', + 'permlevel': 0, + 'reqd': 1 + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Rate at which Price list currency is converted to your currency', + 'doctype': 'DocField', + 'fieldname': 'plc_conversion_rate', + 'fieldtype': 'Currency', + 'label': 'Price List Currency Conversion Rate', + 'permlevel': 0, + 'reqd': 1 + }, + # DocField { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 34, 'permlevel': 0, 'width': '50%' }, @@ -687,8 +611,7 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 35, - 'label': 'Currency', + 'label': "Customer's Currency", 'oldfieldname': 'currency', 'oldfieldtype': 'Select', 'options': 'link:Currency', @@ -706,7 +629,6 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 36, 'label': 'Conversion Rate', 'oldfieldname': 'conversion_rate', 'oldfieldtype': 'Currency', @@ -717,11 +639,58 @@ 'width': '100px' }, + # DocField + { + 'colour': 'White:FFF', + 'description': 'Quotation no against which this Sales Order is made ', + 'doctype': 'DocField', + 'fieldname': 'quotation_no', + 'fieldtype': 'Link', + 'in_filter': 1, + 'label': 'Quotation No', + 'no_copy': 0, + 'oldfieldname': 'quotation_no', + 'oldfieldtype': 'Link', + 'options': 'Quotation', + 'permlevel': 0, + 'print_hide': 1, + 'search_index': 1, + 'trigger': 'Client', + 'width': '150px' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldname': 'quotation_date', + 'fieldtype': 'Date', + 'hidden': 1, + 'label': 'Quotation Date', + 'no_copy': 0, + 'oldfieldname': 'quotation_date', + 'oldfieldtype': 'Date', + 'permlevel': 1, + 'print_hide': 1, + 'reqd': 0, + 'width': '100px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Pull Quotation Details', + 'oldfieldtype': 'Button', + 'options': 'pull_quotation_details', + 'permlevel': 0, + 'print_hide': 1 + }, + # DocField { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 37, 'permlevel': 0 }, @@ -732,7 +701,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_order_details', 'fieldtype': 'Table', - 'idx': 38, 'label': 'Sales Order Details', 'oldfieldname': 'sales_order_details', 'oldfieldtype': 'Table', @@ -746,7 +714,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 39, 'label': 'Clear Table', 'oldfieldtype': 'Button', 'options': 'clear_sales_order_details', @@ -758,7 +725,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 40, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -772,7 +738,6 @@ 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 41, 'label': 'Net Total*', 'oldfieldname': 'net_total', 'oldfieldtype': 'Currency', @@ -787,7 +752,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 42, 'label': 'Note1', 'oldfieldtype': 'HTML', 'options': 'NOTE : * In Base Currency', @@ -800,7 +764,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 43, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -812,7 +775,6 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 44, 'label': 'Select Charges Master', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -825,7 +787,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 45, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -837,7 +798,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 46, 'label': 'Other Charges', 'oldfieldname': 'other_charges', 'oldfieldtype': 'Table', @@ -849,7 +809,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 47, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -862,7 +821,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges_total', 'fieldtype': 'Currency', - 'idx': 48, 'label': 'Charges Total*', 'oldfieldname': 'other_charges_total', 'oldfieldtype': 'Currency', @@ -876,7 +834,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 49, 'label': 'Grand Total*', 'oldfieldname': 'grand_total', 'oldfieldtype': 'Currency', @@ -890,7 +847,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 50, 'label': 'OT Notes', 'oldfieldtype': 'HTML', 'options': 'NOTE : * In Base Currency', @@ -902,7 +858,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 51, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0, @@ -914,7 +869,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 52, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -926,7 +880,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 53, 'label': 'Rounded Total', 'oldfieldname': 'rounded_total', 'oldfieldtype': 'Currency', @@ -942,7 +895,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 54, 'label': 'In Words', 'oldfieldname': 'in_words', 'oldfieldtype': 'Data', @@ -955,7 +907,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 55, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -967,7 +918,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 56, 'label': 'Grand Total (Export)', 'oldfieldname': 'grand_total_export', 'oldfieldtype': 'Currency', @@ -982,7 +932,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 57, 'label': 'Rounded Total (Export)', 'oldfieldname': 'rounded_total_export', 'oldfieldtype': 'Currency', @@ -998,7 +947,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 58, 'label': 'In Words (Export)', 'oldfieldname': 'in_words_export', 'oldfieldtype': 'Data', @@ -1012,7 +960,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 59, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1024,7 +971,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 60, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -1038,7 +984,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 61, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -1050,7 +995,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 62, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -1063,7 +1007,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 63, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -1077,7 +1020,6 @@ 'description': 'Filling in additional information about the Sales Order will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 64, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1088,7 +1030,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 65, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1101,7 +1042,6 @@ 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 66, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Select', @@ -1117,7 +1057,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 67, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -1136,7 +1075,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 68, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -1156,7 +1094,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 69, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -1171,7 +1108,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 70, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1184,7 +1120,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 71, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -1200,7 +1135,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 72, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -1215,7 +1149,6 @@ 'doctype': 'DocField', 'fieldname': 'note', 'fieldtype': 'Text', - 'idx': 73, 'label': 'Note', 'oldfieldname': 'note', 'oldfieldtype': 'Text', @@ -1230,7 +1163,6 @@ 'doctype': 'DocField', 'fieldname': 'cancel_reason', 'fieldtype': 'Data', - 'idx': 74, 'label': 'Cancel Reason', 'no_column': 0, 'no_copy': 1, @@ -1246,7 +1178,6 @@ 'fieldname': 'delivery_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 75, 'label': 'Delivery Status', 'no_column': 0, 'no_copy': 1, @@ -1261,7 +1192,6 @@ 'fieldname': 'billing_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 76, 'label': 'Billing Status', 'no_column': 0, 'no_copy': 1, @@ -1277,7 +1207,6 @@ 'doctype': 'DocField', 'fieldtype': 'Section Break', 'hidden': 0, - 'idx': 77, 'label': 'Packing List', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1290,7 +1219,6 @@ 'doctype': 'DocField', 'fieldname': 'packing_details', 'fieldtype': 'Table', - 'idx': 78, 'label': 'Packing Details', 'oldfieldname': 'packing_details', 'oldfieldtype': 'Table', @@ -1303,7 +1231,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 79, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1317,7 +1244,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 80, 'in_filter': 1, 'label': 'Sales Partner', 'oldfieldname': 'sales_partner', @@ -1335,7 +1261,6 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 81, 'label': 'Commission Rate', 'oldfieldname': 'commission_rate', 'oldfieldtype': 'Currency', @@ -1350,7 +1275,6 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 82, 'label': 'Total Commission', 'oldfieldname': 'total_commission', 'oldfieldtype': 'Currency', @@ -1364,7 +1288,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 83, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1378,7 +1301,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 84, 'label': 'Repair Sales Order', 'oldfieldtype': 'Button', 'options': 'repair_sales_order', diff --git a/erpnext/setup/doctype/customer_group/customer_group.py b/erpnext/setup/doctype/customer_group/customer_group.py index ae74797c7c3..4537876cf40 100644 --- a/erpnext/setup/doctype/customer_group/customer_group.py +++ b/erpnext/setup/doctype/customer_group/customer_group.py @@ -39,7 +39,5 @@ class DocType: def validate(self): - r = sql("select name from `tabCustomer Group` where name = '%s' and docstatus = 2"%(self.doc.customer_group_name)) - if r: - msgprint("%s record is trashed. To untrash please go to Setup & click on Trash."%(self.doc.customer_group_name)) - raise Exception \ No newline at end of file + if sql("select name from `tabCustomer Group` where name = %s and docstatus = 2", (self.doc.customer_group_name)): + msgprint("%s record is trashed. To untrash please go to Setup & click on Trash."%(self.doc.customer_group_name), raise_exception = 1) diff --git a/erpnext/setup/doctype/manage_account/manage_account.py b/erpnext/setup/doctype/manage_account/manage_account.py index 651794fa16e..5dd2d060457 100644 --- a/erpnext/setup/doctype/manage_account/manage_account.py +++ b/erpnext/setup/doctype/manage_account/manage_account.py @@ -43,6 +43,7 @@ class DocType: ['company',self.doc.default_company], ['currency',self.doc.default_currency], ['price_list_name',self.doc.default_price_list], + ['price_list_currency', self.doc.default_price_list_currency], ['item_group',self.doc.default_item_group], ['customer_group',self.doc.default_customer_group], ['cust_master_name',self.doc.cust_master_name], diff --git a/erpnext/setup/doctype/manage_account/manage_account.txt b/erpnext/setup/doctype/manage_account/manage_account.txt index 21306cf8023..8a156a06d10 100644 --- a/erpnext/setup/doctype/manage_account/manage_account.txt +++ b/erpnext/setup/doctype/manage_account/manage_account.txt @@ -5,18 +5,20 @@ { 'creation': '2010-08-08 17:09:09', 'docstatus': 0, - 'modified': '2011-12-14 15:08:22', + 'modified': '2011-12-21 13:22:33', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1323855454', + + '_last_update': '1323855502', 'allow_copy': 1, 'allow_email': 1, 'allow_print': 1, 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'hide_toolbar': 0, 'in_create': 1, @@ -27,7 +29,7 @@ 'section_style': 'Tabbed', 'server_code_error': ' ', 'show_in_menu': 1, - 'version': 516 + 'version': 515 }, # These values are common for all DocField @@ -239,6 +241,15 @@ # DocField { + 'doctype': 'DocField', + 'fieldname': 'auto_indent', + 'fieldtype': 'Check', + 'label': 'Raise Indent when stock reaches re-order level' + }, + + # DocField + { + 'default': '1', 'doctype': 'DocField', 'fieldtype': 'Column Break', 'width': '50%' @@ -322,7 +333,7 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'label': 'Acccount Info', + 'label': 'Account Info', 'options': '
For more accounting defaults, Open Company
' }, @@ -378,6 +389,13 @@ 'options': 'To manage Territory, click here' }, + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'width': '50%' + }, + # DocField { 'doctype': 'DocField', @@ -390,8 +408,10 @@ # DocField { 'doctype': 'DocField', - 'fieldtype': 'Column Break', - 'width': '50%' + 'fieldname': 'default_price_list_currency', + 'fieldtype': 'Link', + 'label': 'Default Price List Currency', + 'options': 'Currency' }, # DocField @@ -490,4 +510,4 @@ 'label': 'Employee Records to be created by ', 'options': '\nNaming Series\nEmployee Number' } -] \ No newline at end of file +] diff --git a/erpnext/setup/doctype/other_charges/other_charges.js b/erpnext/setup/doctype/other_charges/other_charges.js index 3d0b3244c45..4c154f529e1 100644 --- a/erpnext/setup/doctype/other_charges/other_charges.js +++ b/erpnext/setup/doctype/other_charges/other_charges.js @@ -93,12 +93,10 @@ cur_frm.fields_dict['other_charges'].grid.get_field("account_head").get_query = return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type = "Tax" OR tabAccount.account_type = "Chargeable") AND tabAccount.company = "'+doc.company+'" AND tabAccount.name LIKE "%s"' } -//--------------------filter other charges master company-wise----------------------------------------- -/* -cur_frm.fields_dict.charge.get_query = function(doc) { - return 'SELECT DISTINCT `tabOther Charges`.name FROM `tabOther Charges` WHERE `tabOther Charges`.company = "'+doc.company+'" AND `tabOther Charges`.company is not NULL AND `tabOther Charges`.name LIKE "%s" ORDER BY `tabOther Charges`.name LIMIT 50'; +cur_frm.fields_dict['other_charges'].grid.get_field("cost_center_other_charges").get_query = function(doc) { + return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50'; } -*/ + cur_frm.cscript.account_head = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py index bb1101ea3fa..881a176ceba 100644 --- a/erpnext/stock/doctype/bin/bin.py +++ b/erpnext/stock/doctype/bin/bin.py @@ -1,11 +1,18 @@ # Please edit this list and import only required elements import webnotes -from webnotes.utils import cint, cstr, flt, nowdate -from webnotes.model.code import get_obj -from webnotes import msgprint +from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add +from webnotes.model import db_exists +from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType +from webnotes.model.doclist import getlist, copy_doclist +from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax +from webnotes import session, form, is_testing, msgprint, errprint +set = webnotes.conn.set sql = webnotes.conn.sql +get_value = webnotes.conn.get_value + + # ----------------------------------------------------------------------------------------- @@ -18,9 +25,9 @@ class DocType: # ------------- # stock update # ------------- - def update_stock(self, actual_qty=0, reserved_qty=0, ordered_qty=0, indented_qty=0, planned_qty=0, dt=None, sle_id='', posting_time='', serial_no = '', is_cancelled = 'No'): - - if not dt: dt = nowdate() + def update_stock(self, actual_qty=0, reserved_qty=0, ordered_qty=0, indented_qty=0, planned_qty=0, dt=None, sle_id='', posting_time='', serial_no = '', is_cancelled = 'No',doc_type='',doc_name='',is_amended='No'): + if not dt: + dt = nowdate() # update the stock values (for current quantities) self.doc.actual_qty = flt(self.doc.actual_qty) + flt(actual_qty) self.doc.ordered_qty = flt(self.doc.ordered_qty) + flt(ordered_qty) @@ -28,9 +35,9 @@ class DocType: self.doc.indented_qty = flt(self.doc.indented_qty) + flt(indented_qty) self.doc.planned_qty = flt(self.doc.planned_qty) + flt(planned_qty) self.doc.projected_qty = flt(self.doc.actual_qty) + flt(self.doc.ordered_qty) + flt(self.doc.indented_qty) + flt(self.doc.planned_qty) - flt(self.doc.reserved_qty) - self.doc.save() - + if(( flt(actual_qty)<0 or flt(reserved_qty)>0 )and is_cancelled == 'No' and is_amended=='No'): + self.reorder_item(doc_type,doc_name) if actual_qty: # check actual qty with total number of serial no @@ -299,13 +306,54 @@ class DocType: # item re-order # ------------- - def reorder_item(self): - #check if re-order is required - projected_qty = flt(self.doc.actual_qty) + flt(self.doc.indented_qty) + flt(self.doc.ordered_qty) - item_reorder_level = sql("select reorder_level from `%sItem` where name = '%s'" % (self.prefix, self.doc.item_code))[0][0] or 0 - if flt(item_reorder_level) > flt(projected_qty): - msgprint("Item: " + self.doc.item_code + " is to be re-ordered. Indent raised (Not Implemented).") - + def reorder_item(self,doc_type,doc_name): + msgprint(get_value('Manage Account', None, 'auto_indent')) + if get_value('Manage Account', None, 'auto_indent'): + #check if re-order is required + indent_detail_fields = sql("select re_order_level,item_name,description,brand,item_group,lead_time_days,min_order_qty,email_notify from tabItem where item_code = %s",(self.doc.item_code),as_dict=1) + i = indent_detail_fields[0] + item_reorder_level = i['re_order_level'] or 0 + if ((flt(item_reorder_level) > flt(self.doc.projected_qty)) and item_reorder_level) : + self.reorder_indent(i,item_reorder_level,doc_type,doc_name,email_notify=i['email_notify']) + + + # Re order Auto Intent Generation + def reorder_indent(self,i,item_reorder_level,doc_type,doc_name,email_notify=1): + indent = Document('Indent') + indent.transaction_date = nowdate() + indent.naming_series = 'IDT' + indent.company = get_defaults()['company'] + indent.fiscal_year = get_defaults()['fiscal_year'] + indent.remark = "This is an auto generated Indent. It was raised because the projected quantity has fallen below the minimum re-order level when %s %s was created"%(doc_type,doc_name) + indent.save(1) + indent_obj = get_obj('Indent',indent.name,with_children=1) + indent_details_child = addchild(indent_obj.doc,'indent_details','Indent Detail',0) + indent_details_child.item_code = self.doc.item_code + indent_details_child.uom = self.doc.stock_uom + indent_details_child.warehouse = self.doc.warehouse + indent_details_child.schedule_date= add_days(nowdate(),i['lead_time_days']) + indent_details_child.item_name = i['item_name'] + indent_details_child.description = i['description'] + indent_details_child.item_group = i['item_group'] + if (i['min_order_qty'] < ( flt(item_reorder_level)-flt(self.doc.projected_qty) )): + indent_details_child.qty =flt(flt(item_reorder_level)-flt(self.doc.projected_qty)) + else: + indent_details_child.qty = i['min_order_qty'] + indent_details_child.brand = i['brand'] + indent_details_child.save() + indent_obj = get_obj('Indent',indent.name,with_children=1) + indent_obj.validate() + set(indent_obj.doc,'docstatus',1) + indent_obj.on_submit() + msgprint("Item: " + self.doc.item_code + " is to be re-ordered. Indent %s raised.Was generated from %s %s"%(indent.name,doc_type, doc_name )) + if(email_notify): + send_email_notification(doc_type,doc_name) + + def send_email_notification(self,doc_type,doc_name): + email_list=[d for d in sql("select parent from tabUserRole where role in ('Purchase Manager','Material Manager') ")] + msg1='An Indent has been raised for item %s: %s on %s '%(doc_type, doc_name, nowdate()) + sendmail(email_list, sender='automail@webnotestech.com', \ + subject='Auto Indent Generation Notification', parts=[['text/plain',msg1]]) # validate def validate(self): self.validate_mandatory() diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js index 823eca499f6..8f9fa6d8222 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.js +++ b/erpnext/stock/doctype/delivery_note/delivery_note.js @@ -15,6 +15,7 @@ cur_frm.cscript.onload = function(doc, dt, dn) { if(!doc.transaction_date) set_multiple(dt,dn,{transaction_date:get_today()}); if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()}); if(doc.__islocal && doc.customer) cur_frm.cscript.pull_item_details_onload(doc,dt,dn); + if(!doc.price_list_currency) set_multiple(cdt, cdn, {price_list_currency: doc.currency, plc_conversion_rate: 1}); if(!doc.posting_time) doc.posting_time = wn.datetime.get_cur_time() diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index ea8c648b748..93f72df512c 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -374,8 +374,7 @@ class DocType(TransactionBase): # if prevdoc_doctype = "Sales Order" if d[3] < 0 : # Reduce Reserved Qty from warehouse - bin = get_obj('Warehouse', d[0]).update_bin(0, flt(update_stock) * flt(d[3]), 0, 0, 0, d[1], self.doc.transaction_date) - + bin = get_obj('Warehouse', d[0]).update_bin(0, flt(update_stock) * flt(d[3]), 0, 0, 0, d[1], self.doc.transaction_date,doc_type=self.doc.doctype,doc_name=self.doc.name, is_amended = (self.doc.amended_from and 'Yes' or 'No')) # Reduce actual qty from warehouse self.make_sl_entry(d, d[0], - flt(d[2]) , 0, update_stock) get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values) diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt index 8109af5c4e6..dc905f569d9 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.txt +++ b/erpnext/stock/doctype/delivery_note/delivery_note.txt @@ -5,7 +5,7 @@ { 'creation': '2011-04-18 15:58:20', 'docstatus': 0, - 'modified': '2011-10-18 13:57:23', + 'modified': '2011-12-20 13:23:33', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,7 +21,7 @@ # These values are common for all DocType { - '_last_update': '1318321312', + '_last_update': '1324367019', 'colour': 'White:FFF', 'default_print_format': 'Standard', 'doctype': 'DocType', @@ -37,7 +37,7 @@ 'show_in_menu': 0, 'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed', 'tag_fields': 'billing_status', - 'version': 454 + 'version': 459 }, # These values are common for all DocFormat @@ -130,7 +130,8 @@ { 'doctype': 'DocPerm', 'permlevel': 1, - 'role': 'All' + 'role': 'All', + 'write': 0 }, # DocPerm @@ -539,34 +540,6 @@ 'permlevel': 0 }, - # DocField - { - 'colour': 'White:FFF', - 'description': 'You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.', - 'doctype': 'DocField', - 'fieldname': 'sales_order_no', - 'fieldtype': 'Link', - 'label': 'Sales Order No', - 'no_copy': 0, - 'oldfieldname': 'sales_order_no', - 'oldfieldtype': 'Link', - 'options': 'Sales Order', - 'permlevel': 0, - 'print_hide': 0 - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldtype': 'Button', - 'hidden': 0, - 'label': 'Get Items', - 'oldfieldtype': 'Button', - 'options': 'pull_sales_order_details', - 'permlevel': 0, - 'print_hide': 1 - }, - # DocField { 'colour': 'White:FFF', @@ -584,6 +557,31 @@ 'trigger': 'Client' }, + # DocField + { + 'colour': 'White:FFF', + 'description': 'Select the currency in which price list is maintained', + 'doctype': 'DocField', + 'fieldname': 'price_list_currency', + 'fieldtype': 'Select', + 'label': 'Price List Currency', + 'options': 'link:Currency', + 'permlevel': 0, + 'reqd': 1 + }, + + # DocField + { + 'colour': 'White:FFF', + 'description': 'Rate at which Price list currency is converted to your currency', + 'doctype': 'DocField', + 'fieldname': 'plc_conversion_rate', + 'fieldtype': 'Currency', + 'label': 'Price List Currency Conversion Rate', + 'permlevel': 0, + 'reqd': 1 + }, + # DocField { 'doctype': 'DocField', @@ -625,6 +623,34 @@ 'reqd': 1 }, + # DocField + { + 'colour': 'White:FFF', + 'description': 'You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.', + 'doctype': 'DocField', + 'fieldname': 'sales_order_no', + 'fieldtype': 'Link', + 'label': 'Sales Order No', + 'no_copy': 0, + 'oldfieldname': 'sales_order_no', + 'oldfieldtype': 'Link', + 'options': 'Sales Order', + 'permlevel': 0, + 'print_hide': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'hidden': 0, + 'label': 'Get Items', + 'oldfieldtype': 'Button', + 'options': 'pull_sales_order_details', + 'permlevel': 0, + 'print_hide': 1 + }, + # DocField { 'doctype': 'DocField', diff --git a/erpnext/stock/doctype/item/item.txt b/erpnext/stock/doctype/item/item.txt index 0d20f7b5311..c670700e0c3 100644 --- a/erpnext/stock/doctype/item/item.txt +++ b/erpnext/stock/doctype/item/item.txt @@ -5,18 +5,19 @@ { 'creation': '2010-08-08 17:09:05', 'docstatus': 0, - 'modified': '2011-08-18 13:03:31', + 'modified': '2011-12-20 11:15:42', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1313651083', + '_last_update': '1323333040', 'allow_attach': 1, 'allow_trash': 1, 'autoname': 'field:item_code', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Master', 'max_attachments': 1, @@ -28,7 +29,7 @@ 'show_in_menu': 0, 'subject': '%(item_name)s', 'tag_fields': 'item_group', - 'version': 161 + 'version': 162 }, # These values are common for all DocField @@ -62,7 +63,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 1, 'role': 'Material Manager', 'submit': 0, @@ -75,7 +75,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Material Manager', 'submit': 0, @@ -88,7 +87,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 1, 'role': 'Material User', 'submit': 0, @@ -101,7 +99,6 @@ 'cancel': 0, 'create': 0, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Material User', 'submit': 0, @@ -113,7 +110,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 0, 'role': 'Material Master Manager', 'write': 1 @@ -123,7 +119,6 @@ { 'create': 0, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 1, 'role': 'Material Master Manager', 'write': 0 @@ -134,7 +129,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 0, 'role': 'System Manager', 'write': 1 @@ -143,7 +137,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 8, 'permlevel': 1, 'role': 'System Manager' }, @@ -152,7 +145,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Item', 'no_copy': 0, 'oldfieldtype': 'Section Break', @@ -164,7 +156,6 @@ 'doctype': 'DocField', 'fieldname': 'trash_reason', 'fieldtype': 'Small Text', - 'idx': 2, 'label': 'Trash Reason', 'oldfieldname': 'trash_reason', 'oldfieldtype': 'Small Text', @@ -178,7 +169,6 @@ 'doctype': 'DocField', 'fieldname': 'item_code', 'fieldtype': 'Data', - 'idx': 3, 'in_filter': 0, 'label': 'Item Code', 'oldfieldname': 'item_code', @@ -193,7 +183,6 @@ 'doctype': 'DocField', 'fieldname': 'item_name', 'fieldtype': 'Data', - 'idx': 4, 'in_filter': 1, 'label': 'Item Name', 'oldfieldname': 'item_name', @@ -210,7 +199,6 @@ 'doctype': 'DocField', 'fieldname': 'item_group', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Item Group', 'oldfieldname': 'item_group', @@ -224,7 +212,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 6, 'label': 'IGHelp', 'oldfieldtype': 'HTML', 'options': 'To manage Item Group, click here', @@ -237,7 +224,6 @@ 'fieldname': 'brand', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 7, 'label': 'Brand', 'oldfieldname': 'brand', 'oldfieldtype': 'Link', @@ -251,7 +237,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 8, 'permlevel': 0 }, @@ -260,7 +245,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Text', - 'idx': 9, 'in_filter': 0, 'label': 'Description', 'oldfieldname': 'description', @@ -276,7 +260,6 @@ 'doctype': 'DocField', 'fieldname': 'description_html', 'fieldtype': 'Text', - 'idx': 10, 'label': 'Description HTML', 'permlevel': 0 }, @@ -287,7 +270,6 @@ 'description': 'Generates HTML to include image (1st attachment) in the description', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 11, 'label': 'Add Image', 'permlevel': 0 }, @@ -296,7 +278,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 12, 'label': 'Inventory', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -309,7 +290,6 @@ 'doctype': 'DocField', 'fieldname': 'stock_uom', 'fieldtype': 'Link', - 'idx': 13, 'label': 'Default UoM', 'oldfieldname': 'stock_uom', 'oldfieldtype': 'Link', @@ -326,7 +306,6 @@ 'doctype': 'DocField', 'fieldname': 'is_stock_item', 'fieldtype': 'Select', - 'idx': 14, 'label': 'Is Stock Item', 'oldfieldname': 'is_stock_item', 'oldfieldtype': 'Select', @@ -340,7 +319,6 @@ 'doctype': 'DocField', 'fieldname': 'valuation_method', 'fieldtype': 'Select', - 'idx': 15, 'label': 'Valuation Method', 'oldfieldname': 'valuation_method', 'oldfieldtype': 'Select', @@ -353,7 +331,6 @@ 'doctype': 'DocField', 'fieldname': 'default_warehouse', 'fieldtype': 'Link', - 'idx': 16, 'label': 'Default Warehouse', 'oldfieldname': 'default_warehouse', 'oldfieldtype': 'Link', @@ -368,7 +345,6 @@ 'doctype': 'DocField', 'fieldname': 'tolerance', 'fieldtype': 'Currency', - 'idx': 17, 'label': 'Allowance Percent', 'oldfieldname': 'tolerance', 'oldfieldtype': 'Currency', @@ -380,7 +356,6 @@ 'doctype': 'DocField', 'fieldname': 're_order_level', 'fieldtype': 'Currency', - 'idx': 18, 'label': 'Re-Order Level', 'oldfieldname': 're_order_level', 'oldfieldtype': 'Currency', @@ -389,18 +364,11 @@ # DocField { - 'colour': 'White:FFF', - 'default': '0.00', - 'description': 'If stock level for this item has reached the minimum inventory level, system will prompt you to raise an Indent (Purchase Requisition).', 'doctype': 'DocField', - 'fieldname': 'minimum_inventory_level', - 'fieldtype': 'Currency', - 'idx': 19, - 'label': 'Minimum Inventory Level', - 'oldfieldname': 'minimum_inventory_level', - 'oldfieldtype': 'Currency', - 'permlevel': 0, - 'reqd': 0 + 'fieldname': 'email_notify', + 'fieldtype': 'Check', + 'label': 'Send Email Notification when stock reaches re-order level', + 'permlevel': 0 }, # DocField @@ -412,7 +380,6 @@ 'fieldname': 'min_order_qty', 'fieldtype': 'Currency', 'hidden': 0, - 'idx': 20, 'label': 'Minimum Order Qty', 'oldfieldname': 'min_order_qty', 'oldfieldtype': 'Currency', @@ -423,7 +390,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 21, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -437,7 +403,6 @@ 'doctype': 'DocField', 'fieldname': 'is_asset_item', 'fieldtype': 'Select', - 'idx': 22, 'label': 'Is Asset Item', 'oldfieldname': 'is_asset_item', 'oldfieldtype': 'Select', @@ -453,7 +418,6 @@ 'doctype': 'DocField', 'fieldname': 'has_batch_no', 'fieldtype': 'Select', - 'idx': 23, 'label': 'Has Batch No', 'oldfieldname': 'has_batch_no', 'oldfieldtype': 'Select', @@ -470,7 +434,6 @@ 'doctype': 'DocField', 'fieldname': 'has_serial_no', 'fieldtype': 'Select', - 'idx': 24, 'in_filter': 1, 'label': 'Has Serial No', 'oldfieldname': 'has_serial_no', @@ -485,7 +448,6 @@ 'doctype': 'DocField', 'fieldname': 'warranty_period', 'fieldtype': 'Data', - 'idx': 25, 'label': 'Warranty Period (in days)', 'oldfieldname': 'warranty_period', 'oldfieldtype': 'Data', @@ -497,7 +459,6 @@ 'doctype': 'DocField', 'fieldname': 'end_of_life', 'fieldtype': 'Date', - 'idx': 26, 'label': 'End of Life', 'oldfieldname': 'end_of_life', 'oldfieldtype': 'Date', @@ -509,7 +470,6 @@ 'doctype': 'DocField', 'fieldname': 'nett_weight', 'fieldtype': 'Float', - 'idx': 27, 'label': 'Nett Weight', 'permlevel': 0 }, @@ -519,7 +479,6 @@ 'doctype': 'DocField', 'fieldname': 'gross_weight', 'fieldtype': 'Float', - 'idx': 28, 'label': 'Gross Weight', 'permlevel': 0 }, @@ -529,7 +488,6 @@ 'doctype': 'DocField', 'fieldname': 'weight_uom', 'fieldtype': 'Link', - 'idx': 29, 'label': 'Weight UOM', 'options': 'UOM', 'permlevel': 0 @@ -540,7 +498,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 30, 'label': 'Purchase Details', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -554,7 +511,6 @@ 'doctype': 'DocField', 'fieldname': 'is_purchase_item', 'fieldtype': 'Select', - 'idx': 31, 'label': 'Is Purchase Item', 'oldfieldname': 'is_purchase_item', 'oldfieldtype': 'Select', @@ -570,7 +526,6 @@ 'doctype': 'DocField', 'fieldname': 'lead_time_days', 'fieldtype': 'Int', - 'idx': 32, 'label': 'Lead Time Days', 'no_copy': 1, 'oldfieldname': 'lead_time_days', @@ -585,7 +540,6 @@ 'doctype': 'DocField', 'fieldname': 'purchase_account', 'fieldtype': 'Link', - 'idx': 33, 'label': 'Default Expense Account', 'oldfieldname': 'purchase_account', 'oldfieldtype': 'Link', @@ -601,7 +555,6 @@ 'doctype': 'DocField', 'fieldname': 'cost_center', 'fieldtype': 'Link', - 'idx': 34, 'label': 'Default Cost Center', 'oldfieldname': 'cost_center', 'oldfieldtype': 'Link', @@ -616,7 +569,6 @@ 'doctype': 'DocField', 'fieldname': 'buying_cost', 'fieldtype': 'Currency', - 'idx': 35, 'label': 'Buying Cost', 'no_copy': 1, 'oldfieldname': 'buying_cost', @@ -630,7 +582,6 @@ 'doctype': 'DocField', 'fieldname': 'last_purchase_rate', 'fieldtype': 'Currency', - 'idx': 36, 'label': 'Last Purchase Rate', 'no_copy': 1, 'oldfieldname': 'last_purchase_rate', @@ -643,7 +594,6 @@ 'doctype': 'DocField', 'fieldname': 'standard_rate', 'fieldtype': 'Currency', - 'idx': 37, 'label': 'Standard Rate', 'oldfieldname': 'standard_rate', 'oldfieldtype': 'Currency', @@ -654,7 +604,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 38, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -665,7 +614,6 @@ 'doctype': 'DocField', 'fieldname': 'uom_conversion_details', 'fieldtype': 'Table', - 'idx': 39, 'label': 'UOM Conversion Details', 'oldfieldname': 'uom_conversion_details', 'oldfieldtype': 'Table', @@ -677,7 +625,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 40, 'label': 'Sales Details', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -691,7 +638,6 @@ 'doctype': 'DocField', 'fieldname': 'is_sales_item', 'fieldtype': 'Select', - 'idx': 41, 'in_filter': 1, 'label': 'Is Sales Item', 'oldfieldname': 'is_sales_item', @@ -709,7 +655,6 @@ 'doctype': 'DocField', 'fieldname': 'is_service_item', 'fieldtype': 'Select', - 'idx': 42, 'in_filter': 1, 'label': 'Is Service Item', 'oldfieldname': 'is_service_item', @@ -727,7 +672,6 @@ 'doctype': 'DocField', 'fieldname': 'is_sample_item', 'fieldtype': 'Select', - 'idx': 43, 'label': 'Allow Samples', 'oldfieldname': 'is_sample_item', 'oldfieldtype': 'Select', @@ -741,7 +685,6 @@ 'doctype': 'DocField', 'fieldname': 'max_discount', 'fieldtype': 'Currency', - 'idx': 44, 'label': 'Max Discount (%)', 'oldfieldname': 'max_discount', 'oldfieldtype': 'Currency', @@ -753,7 +696,6 @@ 'doctype': 'DocField', 'fieldname': 'default_income_account', 'fieldtype': 'Link', - 'idx': 45, 'label': 'Default Income Account', 'options': 'Account', 'permlevel': 0 @@ -764,7 +706,6 @@ 'doctype': 'DocField', 'fieldname': 'default_sales_cost_center', 'fieldtype': 'Link', - 'idx': 46, 'label': 'Cost Center', 'options': 'Cost Center', 'permlevel': 0 @@ -776,7 +717,6 @@ 'fieldname': 'sales_rate', 'fieldtype': 'Currency', 'hidden': 1, - 'idx': 47, 'label': 'Sales Rate', 'oldfieldname': 'sales_rate', 'oldfieldtype': 'Currency', @@ -787,7 +727,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 48, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -800,7 +739,6 @@ 'doctype': 'DocField', 'fieldname': 'ref_rate_details', 'fieldtype': 'Table', - 'idx': 49, 'label': 'Ref Rate Details', 'oldfieldname': 'ref_rate_details', 'oldfieldtype': 'Table', @@ -814,7 +752,6 @@ 'doctype': 'DocField', 'fieldname': 'item_customer_details', 'fieldtype': 'Table', - 'idx': 50, 'label': 'Customer Codes', 'options': 'Item Customer Detail', 'permlevel': 0 @@ -824,7 +761,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 51, 'label': 'Item Tax', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -835,7 +771,6 @@ 'doctype': 'DocField', 'fieldname': 'item_tax', 'fieldtype': 'Table', - 'idx': 52, 'label': 'Item Tax1', 'oldfieldname': 'item_tax', 'oldfieldtype': 'Table', @@ -847,7 +782,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 53, 'label': 'Inspection Criteria', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -859,7 +793,6 @@ 'doctype': 'DocField', 'fieldname': 'inspection_required', 'fieldtype': 'Select', - 'idx': 54, 'label': 'Inspection Required', 'no_copy': 0, 'oldfieldname': 'inspection_required', @@ -874,7 +807,6 @@ 'doctype': 'DocField', 'fieldname': 'item_specification_details', 'fieldtype': 'Table', - 'idx': 55, 'label': 'Item Specification Detail', 'oldfieldname': 'item_specification_details', 'oldfieldtype': 'Table', @@ -886,7 +818,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 56, 'label': 'Manufacturing', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -900,7 +831,6 @@ 'doctype': 'DocField', 'fieldname': 'is_manufactured_item', 'fieldtype': 'Select', - 'idx': 57, 'label': 'Allow Bill of Materials', 'oldfieldname': 'is_manufactured_item', 'oldfieldtype': 'Select', @@ -915,7 +845,6 @@ 'doctype': 'DocField', 'fieldname': 'default_bom', 'fieldtype': 'Link', - 'idx': 58, 'label': 'Default BOM', 'no_copy': 1, 'oldfieldname': 'default_bom', @@ -932,7 +861,6 @@ 'doctype': 'DocField', 'fieldname': 'is_pro_applicable', 'fieldtype': 'Select', - 'idx': 59, 'label': 'Allow Production Order', 'oldfieldname': 'is_pro_applicable', 'oldfieldtype': 'Select', @@ -949,7 +877,6 @@ 'doctype': 'DocField', 'fieldname': 'is_sub_contracted_item', 'fieldtype': 'Select', - 'idx': 60, 'label': 'Is Sub Contracted Item', 'oldfieldname': 'is_sub_contracted_item', 'oldfieldtype': 'Select', @@ -964,8 +891,8 @@ 'fieldname': 'file_list', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 61, 'label': 'File List', + 'no_copy': 1, 'permlevel': 0, 'print_hide': 1 }, @@ -976,7 +903,6 @@ 'fieldname': 'customer_code', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 62, 'in_filter': 1, 'label': 'Customer Code', 'no_copy': 1, diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 208dd288f45..9eeb11f0d62 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -245,7 +245,7 @@ class DocType: self.add_to_values(d, cstr(d.s_warehouse), -flt(d.transfer_qty), is_cancelled) if cstr(d.t_warehouse): self.add_to_values(d, cstr(d.t_warehouse), flt(d.transfer_qty), is_cancelled) - get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values) + get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values, self.doc.amended_from and 'Yes' or 'No') def validate_for_production_order(self, pro_obj): diff --git a/erpnext/stock/doctype/stock_ledger/stock_ledger.py b/erpnext/stock/doctype/stock_ledger/stock_ledger.py index 0970b780568..f22d2c20a40 100644 --- a/erpnext/stock/doctype/stock_ledger/stock_ledger.py +++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py @@ -207,7 +207,7 @@ class DocType: # ------------- # update stock # ------------- - def update_stock(self, values): + def update_stock(self, values, is_amended = 'No'): for v in values: sle_id, serial_nos = '', '' @@ -224,7 +224,7 @@ class DocType: if v["actual_qty"]: sle_id = self.make_entry(v) - get_obj('Warehouse', v["warehouse"]).update_bin(flt(v["actual_qty"]), 0, 0, 0, 0, v["item_code"], v["posting_date"], sle_id, v["posting_time"], '', v["is_cancelled"]) + get_obj('Warehouse', v["warehouse"]).update_bin(flt(v["actual_qty"]), 0, 0, 0, 0, v["item_code"], v["posting_date"], sle_id, v["posting_time"], '', v["is_cancelled"],v["voucher_type"],v["voucher_no"], is_amended) # ----------- diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py index 0b099fdce11..b9d560a4f46 100644 --- a/erpnext/stock/doctype/warehouse/warehouse.py +++ b/erpnext/stock/doctype/warehouse/warehouse.py @@ -52,12 +52,12 @@ class DocType: # update bin # ---------- - def update_bin(self, actual_qty, reserved_qty, ordered_qty, indented_qty, planned_qty, item_code, dt, sle_id = '',posting_time = '', serial_no = '', is_cancelled = 'No'): + def update_bin(self, actual_qty, reserved_qty, ordered_qty, indented_qty, planned_qty, item_code, dt, sle_id = '',posting_time = '', serial_no = '', is_cancelled = 'No',doc_type='',doc_name='',is_amended='No'): self.validate_asset(item_code) it_det = get_value('Item', item_code, 'is_stock_item') if it_det and it_det == 'Yes': bin = self.get_bin(item_code) - bin.update_stock(actual_qty, reserved_qty, ordered_qty, indented_qty, planned_qty, dt, sle_id, posting_time, serial_no, is_cancelled) + bin.update_stock(actual_qty, reserved_qty, ordered_qty, indented_qty, planned_qty, dt, sle_id, posting_time, serial_no, is_cancelled,doc_type,doc_name,is_amended) return bin else: msgprint("[Stock Update] Ignored %s since it is not a stock item" % item_code) diff --git a/erpnext/utilities/doctype/contact/contact.txt b/erpnext/utilities/doctype/contact/contact.txt index 43fa4d7f974..e5a6757ba74 100644 --- a/erpnext/utilities/doctype/contact/contact.txt +++ b/erpnext/utilities/doctype/contact/contact.txt @@ -5,16 +5,17 @@ { 'creation': '2010-08-08 17:08:55', 'docstatus': 0, - 'modified': '2011-05-26 11:00:36', + 'modified': '2011-12-19 14:11:08', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1306307671', + '_last_update': '1316075905', 'allow_trash': 1, 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Master', 'in_create': 0, @@ -25,7 +26,7 @@ 'server_code_error': ' ', 'show_in_menu': 0, 'subject': '%(first_name)s %(last_name)s - Email: %(email_id)s | Contact: %(phone)s | Mobile: %(mobile_no)s', - 'version': 242 + 'version': 243 }, # These values are common for all DocField @@ -56,7 +57,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'Sales User' }, @@ -64,7 +64,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Purchase User' }, @@ -75,7 +74,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Sales Master Manager', 'submit': 0, @@ -85,7 +83,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 1, 'role': 'All', 'write': 1 @@ -94,7 +91,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 2, 'role': 'All' }, @@ -104,7 +100,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 0, 'role': 'Purchase Master Manager', 'write': 1 @@ -115,7 +110,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 0, 'role': 'System Manager', 'write': 1 @@ -126,7 +120,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Contact Details', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -136,7 +129,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -147,7 +139,6 @@ 'doctype': 'DocField', 'fieldname': 'first_name', 'fieldtype': 'Data', - 'idx': 3, 'label': 'First Name', 'oldfieldname': 'first_name', 'oldfieldtype': 'Data', @@ -160,7 +151,6 @@ 'doctype': 'DocField', 'fieldname': 'last_name', 'fieldtype': 'Data', - 'idx': 4, 'label': 'Last Name', 'oldfieldname': 'last_name', 'oldfieldtype': 'Data', @@ -174,7 +164,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 5, 'label': 'Customer', 'oldfieldname': 'customer', 'oldfieldtype': 'Link', @@ -191,7 +180,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 6, 'label': 'Customer Name', 'permlevel': 1 }, @@ -203,7 +191,6 @@ 'doctype': 'DocField', 'fieldname': 'supplier', 'fieldtype': 'Link', - 'idx': 7, 'label': 'Supplier', 'options': 'Supplier', 'permlevel': 0, @@ -218,7 +205,6 @@ 'doctype': 'DocField', 'fieldname': 'supplier_name', 'fieldtype': 'Data', - 'idx': 8, 'label': 'Supplier Name', 'permlevel': 1 }, @@ -230,7 +216,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 9, 'label': 'Sales Partner', 'options': 'Sales Partner', 'permlevel': 0 @@ -244,7 +229,6 @@ 'doctype': 'DocField', 'fieldname': 'is_primary_contact', 'fieldtype': 'Check', - 'idx': 10, 'label': 'Is Primary Contact', 'oldfieldname': 'is_primary_contact', 'oldfieldtype': 'Select', @@ -255,7 +239,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 11, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -266,7 +249,6 @@ 'doctype': 'DocField', 'fieldname': 'email_id', 'fieldtype': 'Data', - 'idx': 12, 'label': 'Email Id', 'oldfieldname': 'email_id', 'oldfieldtype': 'Data', @@ -279,7 +261,6 @@ 'doctype': 'DocField', 'fieldname': 'phone', 'fieldtype': 'Data', - 'idx': 13, 'label': 'Phone', 'oldfieldname': 'contact_no', 'oldfieldtype': 'Data', @@ -292,7 +273,6 @@ 'doctype': 'DocField', 'fieldname': 'mobile_no', 'fieldtype': 'Data', - 'idx': 14, 'label': 'Mobile No', 'oldfieldname': 'mobile_no', 'oldfieldtype': 'Data', @@ -306,7 +286,6 @@ 'doctype': 'DocField', 'fieldname': 'department', 'fieldtype': 'Data', - 'idx': 15, 'label': 'Department', 'options': 'Suggest', 'permlevel': 0 @@ -319,7 +298,6 @@ 'doctype': 'DocField', 'fieldname': 'designation', 'fieldtype': 'Data', - 'idx': 16, 'label': 'Designation', 'options': 'Suggest', 'permlevel': 0 @@ -330,7 +308,6 @@ 'doctype': 'DocField', 'fieldname': 'trash_reason', 'fieldtype': 'Small Text', - 'idx': 17, 'label': 'Trash Reason', 'oldfieldname': 'trash_reason', 'oldfieldtype': 'Small Text',