diff --git a/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt b/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt index d72c847850..5aefa812f8 100644 --- a/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt +++ b/accounts/Print Format/Sales Invoice Classic/Sales Invoice Classic.txt @@ -1,17 +1,18 @@ [ { - "creation": "2013-02-01 14:16:04", + "creation": "2013-04-19 13:30:27", "docstatus": 0, - "modified": "2013-02-26 11:11:20", + "modified": "2013-05-28 17:19:38", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Sales Invoice", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Accounts", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt b/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt index 97c50fd6df..2f6251c07b 100644 --- a/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt +++ b/accounts/Print Format/Sales Invoice Modern/Sales Invoice Modern.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-05-15 18:39:02", + "creation": "2013-04-19 13:30:27", "docstatus": 0, - "modified": "2013-02-26 11:10:58", + "modified": "2013-05-28 17:19:52", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Sales Invoice", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Accounts", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt b/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt index 6be83d45d1..b00b3d85f5 100644 --- a/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt +++ b/accounts/Print Format/Sales Invoice Spartan/Sales Invoice Spartan.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-05-15 18:39:02", + "creation": "2013-04-19 13:30:27", "docstatus": 0, - "modified": "2013-02-26 11:11:40", + "modified": "2013-05-28 17:19:22", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Sales Invoice", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Accounts", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js index b714a901c5..c6a787e50a 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -18,16 +18,11 @@ cur_frm.cscript.tname = "Purchase Invoice Item"; cur_frm.cscript.fname = "entries"; cur_frm.cscript.other_fname = "purchase_tax_details"; +wn.provide("erpnext.accounts"); wn.require('app/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js'); wn.require('app/buying/doctype/purchase_common/purchase_common.js'); -wn.provide("erpnext.accounts"); erpnext.accounts.PurchaseInvoiceController = erpnext.buying.BuyingController.extend({ - setup: function() { - this._super(); - - }, - onload: function() { this._super(); @@ -44,13 +39,13 @@ erpnext.accounts.PurchaseInvoiceController = erpnext.buying.BuyingController.ext // Show / Hide button if(doc.docstatus==1 && doc.outstanding_amount > 0) - cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher); + this.frm.add_custom_button('Make Payment Entry', this.make_bank_voucher); if(doc.docstatus==1) { - cur_frm.add_custom_button('View Ledger', cur_frm.cscript.view_ledger_entry); + this.frm.add_custom_button('View Ledger', this.view_ledger_entry); } - cur_frm.cscript.is_opening(doc); + this.is_opening(doc); }, credit_to: function() { @@ -63,13 +58,13 @@ erpnext.accounts.PurchaseInvoiceController = erpnext.buying.BuyingController.ext }, allocated_amount: function() { - this.calculate_total_advance(); + this.calculate_total_advance("Purchase Invoice", "advance_allocation_details"); this.frm.refresh_fields(); - }, + } }); // for backward compatibility: combine new and previous states -$.extend(cur_frm.cscript, new erpnext.buying.PurchaseInvoiceController({frm: cur_frm})); +$.extend(cur_frm.cscript, new erpnext.accounts.PurchaseInvoiceController({frm: cur_frm})); cur_frm.cscript.supplier_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py index 7e18041c8d..59e66b57db 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -92,7 +92,7 @@ class DocType(BuyingController): return ret def set_supplier_defaults(self): - # TODO cleanup these methods + self.doc.fields.update(self.get_cust()) self.doc.fields.update(self.get_credit_to()) super(DocType, self).set_supplier_defaults() diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt index 283c612371..4647fd235d 100755 --- a/accounts/doctype/purchase_invoice/purchase_invoice.txt +++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-05-07 13:50:30", + "creation": "2013-05-21 16:16:39", "docstatus": 0, - "modified": "2013-05-13 11:12:56", + "modified": "2013-05-28 12:18:35", "modified_by": "Administrator", "owner": "Administrator" }, @@ -89,10 +89,11 @@ "read_only": 0 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "supplier_name", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "in_list_view": 1, "label": "Name", "oldfieldname": "supplier_name", @@ -100,34 +101,38 @@ "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Address", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Contact", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -392,6 +397,7 @@ "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_section", "fieldtype": "Section Break", @@ -399,7 +405,6 @@ "read_only": 0 }, { - "depends_on": "eval:doc.supplier", "doctype": "DocField", "fieldname": "supplier_address", "fieldtype": "Link", @@ -415,7 +420,6 @@ "width": "50%" }, { - "depends_on": "eval:doc.supplier", "doctype": "DocField", "fieldname": "contact_person", "fieldtype": "Link", diff --git a/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt b/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt index 619aed1954..d6d2a92b7a 100644 --- a/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt +++ b/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-04-19 11:00:06", + "creation": "2013-05-21 16:16:04", "docstatus": 0, - "modified": "2013-05-07 11:23:56", + "modified": "2013-05-28 12:02:02", "modified_by": "Administrator", "owner": "Administrator" }, @@ -101,7 +101,7 @@ "oldfieldname": "tax_amount", "oldfieldtype": "Currency", "options": "Company:company:default_currency", - "read_only": 0, + "read_only": 1, "reqd": 0 }, { @@ -159,35 +159,5 @@ "print_hide": 1, "read_only": 0, "search_index": 0 - }, - { - "description": "Cheating Field\nPlease do not delete ", - "doctype": "DocField", - "fieldname": "total_tax_amount", - "fieldtype": "Currency", - "hidden": 1, - "label": "Total +Tax", - "no_copy": 1, - "oldfieldname": "total_tax_amount", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "print_hide": 1, - "read_only": 0, - "report_hide": 1 - }, - { - "description": "Cheating Field\nPlease do not delete ", - "doctype": "DocField", - "fieldname": "total_amount", - "fieldtype": "Currency", - "hidden": 1, - "label": "Tax Amount", - "no_copy": 1, - "oldfieldname": "total_amount", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "print_hide": 1, - "read_only": 0, - "report_hide": 1 } ] \ No newline at end of file diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 10853ea1f6..105d350bb2 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -79,23 +79,19 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte }, allocated_amount: function() { - this.calculate_total_advance(); + this.calculate_total_advance("Sales Invoice", "advance_adjustment_details"); this.frm.refresh_fields(); }, write_off_outstanding_amount_automatically: function() { if(cint(this.frm.doc.write_off_outstanding_amount_automatically)) { wn.model.round_floats_in(this.frm.doc, ["grand_total", "paid_amount"]); + // this will make outstanding amount 0 this.frm.set_value("write_off_amount", flt(this.frm.doc.grand_total - this.frm.doc.paid_amount), precision("write_off_amount")); } this.frm.runclientscript("write_off_amount"); - - // TODO doubt? - // if write off amount = grand total - paid amount - // then why is outstanding amount = grand total - write off amount - paid amount - advance - // when write off amount already is grand total - paid amount! }, write_off_amount: function() { @@ -137,8 +133,6 @@ cur_frm.cscript.hide_fields = function(doc, cdt, cdn) { for(f in item_flds_pos) cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_pos[f], false); } - cur_frm.toggle_display("contact_section", doc.customer); - // India related fields var cp = wn.control_panel; if (cp.country == 'India') unhide_field(['c_form_applicable', 'c_form_no']); diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt index 8b114e7ffb..8390be92a1 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.txt +++ b/accounts/doctype/sales_invoice/sales_invoice.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-05-21 16:16:41", + "creation": "2013-05-24 19:29:05", "docstatus": 0, - "modified": "2013-05-21 18:25:07", + "modified": "2013-05-28 12:43:23", "modified_by": "Administrator", "owner": "Administrator" }, @@ -120,10 +120,11 @@ "read_only": 0 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "customer_name", "fieldtype": "Data", - "hidden": 1, + "hidden": 0, "in_list_view": 1, "label": "Name", "oldfieldname": "customer_name", @@ -131,34 +132,38 @@ "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Address", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Contact", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -748,6 +753,7 @@ "read_only": 0 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_section", "fieldtype": "Section Break", diff --git a/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt b/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt index 55a41a9345..ba9f90724a 100644 --- a/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt +++ b/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-02-22 01:27:41", + "creation": "2013-04-24 11:39:32", "docstatus": 0, - "modified": "2013-04-17 14:05:50", + "modified": "2013-05-28 11:59:02", "modified_by": "Administrator", "owner": "Administrator" }, @@ -85,6 +85,7 @@ "oldfieldname": "tax_amount", "oldfieldtype": "Currency", "options": "Company:company:default_currency", + "read_only": 1, "reqd": 0 }, { @@ -128,34 +129,6 @@ "print_hide": 1, "search_index": 1 }, - { - "description": "Cheating Field\nPlease do not delete ", - "doctype": "DocField", - "fieldname": "total_tax_amount", - "fieldtype": "Currency", - "hidden": 1, - "label": "Total Tax Amount", - "no_copy": 1, - "oldfieldname": "total_tax_amount", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "print_hide": 1, - "report_hide": 1 - }, - { - "description": "Cheating Field\nPlease do not delete ", - "doctype": "DocField", - "fieldname": "total_amount", - "fieldtype": "Currency", - "hidden": 1, - "label": "Total Amount", - "no_copy": 1, - "oldfieldname": "total_amount", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "print_hide": 1, - "report_hide": 1 - }, { "allow_on_submit": 0, "description": "If checked, the tax amount will be considered as already included in the Print Rate / Print Amount", diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js index 65b44c3d8c..f0f38671f5 100644 --- a/buying/doctype/purchase_common/purchase_common.js +++ b/buying/doctype/purchase_common/purchase_common.js @@ -53,10 +53,6 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ }); }, - validate: function() { - this.calculate_taxes_and_totals(); - }, - supplier: function() { if(this.frm.doc.supplier || this.frm.doc.credit_to) { if(!this.frm.doc.company) { @@ -79,7 +75,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ }); } } - } + }, item_code: function(doc, cdt, cdn) { var me = this; @@ -133,7 +129,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ }, discount_rate: function(doc, cdt, cdn) { - this.import_rate(doc, cdt, cdn); + this.import_ref_rate(doc, cdt, cdn); }, import_rate: function(doc, cdt, cdn) { @@ -159,7 +155,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ child: item, args: { item_code: item.item_code, - uom: item.uom, + uom: item.uom }, callback: function(r) { if(!r.exc) { @@ -178,7 +174,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ conversion_factor: function(doc, cdt, cdn) { if(wn.meta.get_docfield(cdt, "stock_qty", cdn)) { var item = wn.model.get_doc(cdt, cdn); - wn.model.round_floats_in(item, ["qty", "conversion_factor"]) + wn.model.round_floats_in(item, ["qty", "conversion_factor"]); item.stock_qty = flt(item.qty * item.conversion_factor, precision("stock_qty", item)); refresh_field("stock_qty", item.name, item.parentfield); } @@ -192,7 +188,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ child: item, args: { item_code: item.item_code, - warehouse: item.warehouse, + warehouse: item.warehouse } }); } @@ -211,9 +207,16 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ } }, + category: function(doc, cdt, cdn) { + // should be the category field of tax table + if(cdt != doc.doctype) { + this.calculate_taxes_and_totals(); + } + }, + calculate_taxes_and_totals: function() { this._super(); - this.calculate_total_advance(); + this.calculate_total_advance("Purchase Invoice", "advance_allocation_details"); this.frm.refresh_fields(); }, @@ -305,10 +308,6 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ } }, - calculate_total_advance: function() { - this._super("Purchase Invoice", "advance_allocation_details"); - }, - calculate_outstanding_amount: function() { if(this.frm.doc.doctype == "Purchase Invoice" && this.frm.doc.docstatus < 2) { wn.model.round_floats_in(this.frm.doc, ["grand_total", "total_advance", "write_off_amount"]); @@ -331,12 +330,10 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ }, show_item_wise_taxes: function() { - $(this.get_item_wise_taxes_html()) - .appendTo($(this.frm.fields_dict.tax_calculation.wrapper).empty()); - }, - - recalculate: function() { - this.calculate_taxes_and_totals(); + if(this.frm.fields_dict.tax_calculation) { + $(this.get_item_wise_taxes_html()) + .appendTo($(this.frm.fields_dict.tax_calculation.wrapper).empty()); + } }, set_dynamic_labels: function(doc, dt, dn) { @@ -354,7 +351,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ $.each(fields_list, function(i, fname) { var docfield = wn.meta.get_docfield(me.frm.doc.doctype, fname); if(docfield) { - var label = wn._((docfield.label || "")).replace(/\([^\)]*\)/g, ""); + var label = wn._(docfield.label || "").replace(/\([^\)]*\)/g, ""); field_label_map[fname] = label.trim() + " (" + currency + ")"; } }); @@ -383,7 +380,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ this.frm.doc.currency != company_currency); this.frm.toggle_display(["plc_conversion_rate"], - this.frm.price_list_currency != company_currency) + this.frm.price_list_currency != company_currency); // set labels $.each(field_label_map, function(fname, label) { @@ -400,12 +397,12 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ $.each(fields_list, function(i, fname) { var docfield = wn.meta.get_docfield(grid_doctype, fname); if(docfield) { - var label = wn._((docfield.label || "")).replace(/\([^\)]*\)/g, ""); + var label = wn._(docfield.label || "").replace(/\([^\)]*\)/g, ""); field_label_map[grid_doctype + "-" + fname] = label.trim() + " (" + currency + ")"; } }); - } + }; setup_field_label_map(["purchase_rate", "purchase_ref_rate", "amount", "rate"], company_currency, this.fname); @@ -413,7 +410,9 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ setup_field_label_map(["import_rate", "import_ref_rate", "import_amount"], this.frm.doc.currency, this.fname); - setup_field_label_map(["tax_amount", "total"], company_currency, this.other_fname); + if(this.frm.fields_dict[this.other_fname]) { + setup_field_label_map(["tax_amount", "total"], company_currency, this.other_fname); + } if(this.frm.fields_dict["advance_allocation_details"]) { setup_field_label_map(["advance_amount", "allocated_amount"], company_currency, @@ -433,9 +432,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ $.each(field_label_map, function(fname, label) { $wrapper.find('[data-grid-fieldname="'+fname+'"]').text(label); }); - }, - - + } }); // to save previous state of cur_frm.cscript @@ -449,4 +446,4 @@ $.extend(cur_frm.cscript, prev_cscript); var tname = cur_frm.cscript.tname; -var fname = cur_frm.cscript.fname; +var fname = cur_frm.cscript.fname; \ No newline at end of file diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt index 8a56f26e9c..902329b050 100644 --- a/buying/doctype/purchase_order/purchase_order.txt +++ b/buying/doctype/purchase_order/purchase_order.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-25 16:01:24", + "creation": "2013-05-21 16:16:39", "docstatus": 0, - "modified": "2013-02-18 13:37:11", + "modified": "2013-05-28 12:20:33", "modified_by": "Administrator", "owner": "Administrator" }, @@ -65,43 +65,48 @@ "search_index": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "supplier_name", "fieldtype": "Data", - "hidden": 1, + "hidden": 0, "in_list_view": 1, "label": "Name", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Address", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Contact", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -554,6 +559,7 @@ "oldfieldtype": "Text Editor" }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_section", "fieldtype": "Section Break", @@ -808,7 +814,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "", "permlevel": 1, "report": 0, "role": "Material User", @@ -831,7 +836,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "", "permlevel": 1, "report": 0, "role": "Purchase Manager", @@ -854,7 +858,6 @@ "cancel": 1, "create": 1, "doctype": "DocPerm", - "match": "", "permlevel": 0, "report": 1, "role": "Purchase User", @@ -866,7 +869,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "", "permlevel": 1, "role": "All", "submit": 0 diff --git a/buying/doctype/purchase_order_item/purchase_order_item.txt b/buying/doctype/purchase_order_item/purchase_order_item.txt index 01a144a143..5d69fb057d 100755 --- a/buying/doctype/purchase_order_item/purchase_order_item.txt +++ b/buying/doctype/purchase_order_item/purchase_order_item.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-07 11:42:55", + "creation": "2013-05-24 19:29:06", "docstatus": 0, - "modified": "2013-05-22 11:59:52", + "modified": "2013-05-28 12:13:21", "modified_by": "Administrator", "owner": "Administrator" }, @@ -361,7 +361,7 @@ "oldfieldtype": "Currency", "print_hide": 1, "print_width": "100px", - "read_only": 0, + "read_only": 1, "width": "100px" }, { diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/buying/doctype/supplier_quotation/supplier_quotation.txt index dace56a43f..37e0e3c01c 100644 --- a/buying/doctype/supplier_quotation/supplier_quotation.txt +++ b/buying/doctype/supplier_quotation/supplier_quotation.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-25 16:01:25", + "creation": "2013-05-21 16:16:45", "docstatus": 0, - "modified": "2013-02-18 13:40:17", + "modified": "2013-05-28 12:19:41", "modified_by": "Administrator", "owner": "Administrator" }, @@ -65,43 +65,48 @@ "search_index": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "supplier_name", "fieldtype": "Data", - "hidden": 1, + "hidden": 0, "in_list_view": 1, "label": "Name", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Address", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Contact", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -520,6 +525,7 @@ "oldfieldtype": "Text Editor" }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_section", "fieldtype": "Section Break", @@ -723,7 +729,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "", "permlevel": 1, "report": 0, "role": "All", diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py index 1499e0a306..d7c9441e8c 100644 --- a/controllers/accounts_controller.py +++ b/controllers/accounts_controller.py @@ -32,7 +32,7 @@ class AccountsController(TransactionBase): validate_conversion_rate(self.doc.currency, self.doc.conversion_rate, self.meta.get_label("conversion_rate"), self.doc.company) - # self.calculate_taxes_and_totals() + self.calculate_taxes_and_totals() self.validate_value("grand_total", ">=", 0) self.set_total_in_words() @@ -84,9 +84,6 @@ class AccountsController(TransactionBase): def calculate_taxes_and_totals(self): self.doc.conversion_rate = flt(self.doc.conversion_rate) - - # TODO validate conversion rate - self.item_doclist = self.doclist.get({"parentfield": self.fname}) self.tax_doclist = self.doclist.get({"parentfield": self.other_fname}) @@ -264,6 +261,15 @@ class AccountsController(TransactionBase): item.fields[base_field] = flt((flt(item.fields[print_field], self.precision(print_field, item)) * self.doc.conversion_rate), self.precision(base_field, item)) + + def calculate_total_advance(self, parenttype, advance_parentfield): + if self.doc.doctype == parenttype and self.doc.docstatus < 2: + sum_of_allocated_amount = sum([flt(adv.allocated_amount, self.precision("allocated_amount", adv)) + for adv in self.doclist.get({"parentfield": advance_parentfield})]) + + self.doc.total_advance = flt(sum_of_allocated_amount, self.precision("total_advance")) + + self.calculate_outstanding_amount() def get_gl_dict(self, args, cancel=None): """this method populates the common properties of a gl entry record""" diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py index 8313b5409d..303eef3894 100644 --- a/controllers/buying_controller.py +++ b/controllers/buying_controller.py @@ -50,7 +50,7 @@ class BuyingController(StockController): self.set_missing_item_details(get_item_details) def set_supplier_defaults(self): - self.get_default_supplier_address() + self.get_default_supplier_address(self.doc.fields) def get_purchase_tax_details(self): self.doclist = self.doc.clear_table(self.doclist, "purchase_tax_details") @@ -93,7 +93,7 @@ class BuyingController(StockController): def calculate_taxes_and_totals(self): self.other_fname = "purchase_tax_details" super(BuyingController, self).calculate_taxes_and_totals() - self.calculate_outstanding_amount() + self.calculate_total_advance("Purchase Invoice", "advance_allocation_details") def calculate_item_values(self): # hack! - cleaned up in _cleanup() @@ -168,6 +168,10 @@ class BuyingController(StockController): item.purchase_rate = item.rate del item.fields["rate"] + if not self.meta.get_field("item_tax_amount", parentfield=self.fname): + for item in self.item_doclist: + del item.fields["item_tax_amount"] + def set_item_tax_amount(self, item, tax, current_tax_amount): """ item_tax_amount is the total tax amount applied on that item diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py index d5399a4833..3adc639271 100644 --- a/controllers/selling_controller.py +++ b/controllers/selling_controller.py @@ -102,9 +102,9 @@ class SellingController(StockController): super(SellingController, self).calculate_taxes_and_totals() + self.calculate_total_advance("Sales Invoice", "advance_adjustment_details") self.calculate_commission() self.calculate_contribution() - # self.calculate_outstanding_amount() def determine_exclusive_rate(self): if not any((cint(tax.included_in_print_rate) for tax in self.tax_doclist)): @@ -201,15 +201,27 @@ class SellingController(StockController): self.doc.rounded_total = round(self.doc.grand_total) self.doc.rounded_total_export = round(self.doc.grand_total_export) - - def calculate_commission(self): - self.round_floats_in(self.doc, ["net_total", "commission_rate"]) - if self.doc.commission_rate > 100.0: - msgprint(_(self.meta.get_label("commission_rate")) + " " + - _("cannot be greater than 100"), raise_exception=True) - self.doc.total_commission = flt(self.doc.net_total * self.doc.commission_rate / 100.0, - self.precision("total_commission")) + def calculate_outstanding_amount(self): + # NOTE: + # write_off_amount is only for POS Invoice + # total_advance is only for non POS Invoice + if self.doc.doctype == "Sales Invoice" and self.doc.docstatus < 2: + self.round_floats_in(self.doc, ["grand_total", "total_advance", "write_off_amount", + "paid_amount"]) + total_amount_to_pay = self.doc.grand_total - self.doc.write_off_amount + self.doc.outstanding_amount = flt(total_amount_to_pay - self.doc.total_advance - self.doc.paid_amount, + self.precision("outstanding_amount")) + + def calculate_commission(self): + if self.meta.get_field("commission_rate"): + self.round_floats_in(self.doc, ["net_total", "commission_rate"]) + if self.doc.commission_rate > 100.0: + msgprint(_(self.meta.get_label("commission_rate")) + " " + + _("cannot be greater than 100"), raise_exception=True) + + self.doc.total_commission = flt(self.doc.net_total * self.doc.commission_rate / 100.0, + self.precision("total_commission")) def calculate_contribution(self): total = 0.0 diff --git a/patches/may_2013/p01_selling_net_total_export.py b/patches/may_2013/p01_selling_net_total_export.py index 7d4e3463b9..eb6da234ab 100644 --- a/patches/may_2013/p01_selling_net_total_export.py +++ b/patches/may_2013/p01_selling_net_total_export.py @@ -13,17 +13,4 @@ def execute(): for module, doctype in (("Accounts", "Sales Invoice Item"), ("Selling", "Sales Order Item"), ("Selling", "Quotation Item"), ("Stock", "Delivery Note Item")): - if cint(webnotes.conn.get_value("DocField", {"parent": doctype, "fieldname": "ref_rate"}, "read_only")) == 0 and \ - not webnotes.conn.sql("""select name from `tabProperty Setter` where doc_type=%s and doctype_or_field='DocField' - and field_name='ref_rate' and property='read_only'""", doctype): - webnotes.bean({ - "doctype": "Property Setter", - "doc_type": doctype, - "doctype_or_field": "DocField", - "field_name": "ref_rate", - "property": "read_only", - "property_type": "Check", - "value": "0" - }).insert() - webnotes.reload_doc(module, "DocType", doctype) \ No newline at end of file diff --git a/public/js/transaction.js b/public/js/transaction.js index 86fe69a327..1fe412110e 100644 --- a/public/js/transaction.js +++ b/public/js/transaction.js @@ -46,9 +46,7 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ this.frm.clear_custom_buttons(); erpnext.hide_naming_series(); this.show_item_wise_taxes(); - - if(this.frm.fields_dict.currency) - this.currency(); + this.frm.fields_dict.currency ? this.currency() : this.set_dynamic_labels(); }, onload_post_render: function() { @@ -67,6 +65,10 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ } }, + validate: function() { + this.calculate_taxes_and_totals(); + }, + company: function() { if(this.frm.doc.company) { var me = this; @@ -132,6 +134,30 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ this.calculate_taxes_and_totals(); }, + tax_rate: function(doc, cdt, cdn) { + this.calculate_taxes_and_totals(); + }, + + row_id: function(doc, cdt, cdn) { + var tax = wn.model.get_doc(cdt, cdn); + try { + this.validate_on_previous_row(tax); + this.calculate_taxes_and_totals(); + } catch(e) { + tax.row_id = null; + refresh_field("row_id", tax.name, tax.parentfield); + throw e; + } + }, + + recalculate: function() { + this.calculate_taxes_and_totals(); + }, + + recalculate_values: function() { + this.calculate_taxes_and_totals(); + }, + included_in_print_rate: function(doc, cdt, cdn) { var tax = wn.model.get_doc(cdt, cdn); try { @@ -267,14 +293,25 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ }); }, + _validate_before_fetch: function(fieldname) { + var me = this; + if(!me.frm.doc[fieldname]) { + return (wn._("Please specify") + ": " + + wn.meta.get_label(me.frm.doc.doctype, fieldname, me.frm.doc.name) + + ". " + wn._("It is needed to fetch Item Details.")); + } + return null; + }, + validate_company_and_party: function(party_field) { + var me = this; var valid = true; + var msg = ""; $.each(["company", party_field], function(i, fieldname) { - if(!me.frm.doc[fieldname]) { + var msg_for_fieldname = me._validate_before_fetch(fieldname); + if(msg_for_fieldname) { + msgprint(msg_for_fieldname); valid = false; - msgprint(wn._("Please specify") + ": " + - wn.meta.get_label(me.frm.doc.doctype, fieldname, me.frm.doc.name) + - ". " + wn._("It is needed to fetch Item Details.")); } }); return valid; @@ -300,7 +337,7 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ } var company_currency = this.get_company_currency(); - var valid_conversion_rate = conversion_rate ? + var valid_conversion_rate = this.frm.doc.conversion_rate ? ((this.frm.doc.currency == company_currency && this.frm.doc.conversion_rate == 1.0) || (this.frm.doc.currency != company_currency && this.frm.doc.conversion_rate != 1.0)) : false; @@ -323,6 +360,7 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ this.calculate_taxes(); this.calculate_totals(); this._cleanup(); + this.show_item_wise_taxes(); }, diff --git a/selling/Print Format/Quotation Classic/Quotation Classic.txt b/selling/Print Format/Quotation Classic/Quotation Classic.txt index 03a056b18c..0a63309354 100644 --- a/selling/Print Format/Quotation Classic/Quotation Classic.txt +++ b/selling/Print Format/Quotation Classic/Quotation Classic.txt @@ -1,15 +1,15 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:30:51", "docstatus": 0, - "modified": "2013-04-02 18:14:21", + "modified": "2013-05-28 17:17:05", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Quotation", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Selling", "name": "__common__", "print_format_type": "Client", diff --git a/selling/Print Format/Quotation Modern/Quotation Modern.txt b/selling/Print Format/Quotation Modern/Quotation Modern.txt index b7a29bf4c5..0f841aa94d 100644 --- a/selling/Print Format/Quotation Modern/Quotation Modern.txt +++ b/selling/Print Format/Quotation Modern/Quotation Modern.txt @@ -1,15 +1,15 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:30:51", "docstatus": 0, - "modified": "2013-04-02 18:14:05", + "modified": "2013-05-28 17:18:02", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Quotation", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Selling", "name": "__common__", "print_format_type": "Client", diff --git a/selling/Print Format/Quotation Spartan/Quotation Spartan.txt b/selling/Print Format/Quotation Spartan/Quotation Spartan.txt index 3fbf6291c3..d2bfcd0737 100644 --- a/selling/Print Format/Quotation Spartan/Quotation Spartan.txt +++ b/selling/Print Format/Quotation Spartan/Quotation Spartan.txt @@ -1,15 +1,15 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:30:51", "docstatus": 0, - "modified": "2013-04-02 18:13:47", + "modified": "2013-05-28 17:18:38", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Quotation", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Selling", "name": "__common__", "print_format_type": "Client", diff --git a/selling/Print Format/Sales Order Classic/Sales Order Classic.txt b/selling/Print Format/Sales Order Classic/Sales Order Classic.txt index 9415035aaf..28e3af07eb 100644 --- a/selling/Print Format/Sales Order Classic/Sales Order Classic.txt +++ b/selling/Print Format/Sales Order Classic/Sales Order Classic.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:30:51", "docstatus": 0, - "modified": "2013-01-25 17:18:37", + "modified": "2013-05-28 17:20:59", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Sales Order", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Selling", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/selling/Print Format/Sales Order Modern/Sales Order Modern.txt b/selling/Print Format/Sales Order Modern/Sales Order Modern.txt index f222d5bad2..5237068e40 100644 --- a/selling/Print Format/Sales Order Modern/Sales Order Modern.txt +++ b/selling/Print Format/Sales Order Modern/Sales Order Modern.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:30:51", "docstatus": 0, - "modified": "2013-01-25 17:18:20", + "modified": "2013-05-28 17:21:05", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Sales Order", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Selling", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt b/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt index 3db5f05f09..f1f5d921ca 100644 --- a/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt +++ b/selling/Print Format/Sales Order Spartan/Sales Order Spartan.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:30:51", "docstatus": 0, - "modified": "2013-01-25 17:19:08", + "modified": "2013-05-28 17:20:50", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Sales Order", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Selling", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js index db45672b5c..9de9b1686c 100644 --- a/selling/doctype/quotation/quotation.js +++ b/selling/doctype/quotation/quotation.js @@ -51,6 +51,18 @@ erpnext.selling.QuotationController = erpnext.selling.SellingController.extend({ this.frm.toggle_reqd("lead", this.frm.doc.quotation_to == "Lead"); this.frm.toggle_reqd("customer", this.frm.doc.quotation_to == "Customer"); }, + + validate_company_and_party: function(party_field) { + if(this.frm.doc.quotation_to == "Lead") { + return true; + } else if(!this.frm.doc.quotation_to) { + msgprint(wn._("Please select a value for" + " " + wn.meta.get_label(this.frm.doc.doctype, + "quotation_to", this.frm.doc.name))); + return false; + } else { + return this._super(party_field); + } + }, }); // for backward compatibility: combine new and previous states diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt index 3ea87e198a..322be88b6e 100644 --- a/selling/doctype/quotation/quotation.txt +++ b/selling/doctype/quotation/quotation.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-05-22 12:10:46", + "creation": "2013-05-24 19:29:08", "docstatus": 0, - "modified": "2013-05-22 16:55:07", + "modified": "2013-05-28 14:50:59", "modified_by": "Administrator", "owner": "Administrator" }, @@ -78,6 +78,7 @@ "reqd": 1 }, { + "depends_on": "eval:doc.quotation_to == \"Customer\"", "doctype": "DocField", "fieldname": "customer", "fieldtype": "Link", @@ -92,6 +93,7 @@ "search_index": 1 }, { + "depends_on": "eval:doc.quotation_to == \"Lead\"", "doctype": "DocField", "fieldname": "lead", "fieldtype": "Link", @@ -105,19 +107,21 @@ "read_only": 0 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "customer_name", "fieldtype": "Data", - "hidden": 1, + "hidden": 0, "in_list_view": 1, "label": "Customer Name", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "in_filter": 0, "label": "Address", "oldfieldname": "customer_address", @@ -128,29 +132,32 @@ "search_index": 0 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "in_filter": 0, "label": "Contact", "print_hide": 0, "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "print_hide": 0, "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -614,6 +621,7 @@ "read_only": 0 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "col_break98", "fieldtype": "Column Break", @@ -667,6 +675,7 @@ "search_index": 0 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "customer_group", "fieldtype": "Link", @@ -837,19 +846,6 @@ "read_only": 1, "width": "150px" }, - { - "description": "The date at which current entry is corrected in the system.", - "doctype": "DocField", - "fieldname": "amendment_date", - "fieldtype": "Date", - "label": "Amendment Date", - "no_copy": 1, - "oldfieldname": "amendment_date", - "oldfieldtype": "Date", - "print_hide": 1, - "read_only": 0, - "width": "100px" - }, { "doctype": "DocField", "fieldname": "communication_history", @@ -886,23 +882,28 @@ "cancel": 1, "create": 1, "doctype": "DocPerm", - "role": "Sales User", + "role": "Sales Manager", "submit": 1, "write": 1 }, - { - "doctype": "DocPerm", - "role": "Customer" - }, { "amend": 1, "cancel": 1, "create": 1, "doctype": "DocPerm", - "role": "Sales Manager", + "role": "Sales User", "submit": 1, "write": 1 }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "role": "Customer", + "submit": 0, + "write": 0 + }, { "amend": 1, "cancel": 1, diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js index 828d3d3fb8..0b0b3290d7 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -29,29 +29,19 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ this.frm.add_fetch("sales_partner", "commission_rate", "commission_rate"); }, - // 1 onload: function() { this._super(); this.toggle_rounded_total(); - - // TODO set depends_on for customer related fields - }, - - validate: function() { - this.calculate_taxes_and_totals(); - - // TODO calc adjustment amount }, customer: function() { + var me = this; if(this.frm.doc.customer || this.frm.doc.debit_to) { if(!this.frm.doc.company) { this.frm.set_value("customer", null); msgprint(wn._("Please specify Company")); } else { - var me = this; var price_list_name = this.frm.doc.price_list_name; - this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", @@ -59,14 +49,14 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ callback: function(r) { if(!r.exc) { me.frm.refresh_fields(); - if(me.frm.doc.price_list_name !== price_list_name) me.price_list_name(); + (me.frm.doc.price_list_name !== price_list_name) ? + me.price_list_name() : + me.price_list_currency(); } } }); } } - - // TODO hide/unhide related fields }, barcode: function(doc, cdt, cdn) { @@ -127,7 +117,12 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }, adj_rate: function(doc, cdt, cdn) { - this.ref_rate(doc, cdt, cdn); + var item = wn.model.get_doc(cdt, cdn); + if(!item.ref_rate) { + item.adj_rate = 0.0; + } else { + this.ref_rate(doc, cdt, cdn); + } }, export_rate: function(doc, cdt, cdn) { @@ -208,14 +203,11 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ calculate_taxes_and_totals: function() { this._super(); - this.calculate_total_advance(); + this.calculate_total_advance("Sales Invoice", "advance_adjustment_details"); this.calculate_commission(); this.calculate_contribution(); - - // TODO - // outstanding amount - - // check for custom_recalc in custom scripts of server + + // TODO check for custom_recalc in custom scripts of server this.frm.refresh_fields(); }, @@ -325,14 +317,10 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ this.frm.doc.rounded_total_export = Math.round(this.frm.doc.grand_total_export); }, - calculate_total_advance: function() { - this._super("Sales Invoice", "advance_adjustment_details"); - }, - calculate_outstanding_amount: function() { - // TODO - I find this incorrect! - // see TODO of sales invoice.js / write_off_outstanding_amount_automatically - + // NOTE: + // write_off_amount is only for POS Invoice + // total_advance is only for non POS Invoice if(this.frm.doc.doctype == "Sales Invoice" && this.frm.doc.docstatus < 2) { wn.model.round_floats_in(this.frm.doc, ["grand_total", "total_advance", "write_off_amount", "paid_amount"]); @@ -343,15 +331,17 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }, calculate_commission: function() { - if(this.frm.doc.commission_rate > 100) { - var msg = wn._(wn.meta.get_label(this.frm.doc.doctype, "commission_rate", this.frm.doc.name)) + - " " + wn._("cannot be greater than 100"); - msgprint(msg); - throw msg; - } + if(this.frm.fields_dict.commission_rate) { + if(this.frm.doc.commission_rate > 100) { + var msg = wn._(wn.meta.get_label(this.frm.doc.doctype, "commission_rate", this.frm.doc.name)) + + " " + wn._("cannot be greater than 100"); + msgprint(msg); + throw msg; + } - this.frm.doc.total_commission = flt(this.frm.doc.net_total * this.frm.doc.commission_rate / 100.0, - precision("total_commission")); + this.frm.doc.total_commission = flt(this.frm.doc.net_total * this.frm.doc.commission_rate / 100.0, + precision("total_commission")); + } }, calculate_contribution: function() { @@ -373,8 +363,10 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }, show_item_wise_taxes: function() { - $(this.get_item_wise_taxes_html()) - .appendTo($(this.frm.fields_dict.other_charges_calculation.wrapper).empty()); + if(this.frm.fields_dict.other_charges_calculation) { + $(this.get_item_wise_taxes_html()) + .appendTo($(this.frm.fields_dict.other_charges_calculation.wrapper).empty()); + } }, get_charges: function() { @@ -407,7 +399,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ $.each(fields_list, function(i, fname) { var docfield = wn.meta.get_docfield(me.frm.doc.doctype, fname); if(docfield) { - var label = wn._((docfield.label || "")).replace(/\([^\)]*\)/g, ""); + var label = wn._(docfield.label || "").replace(/\([^\)]*\)/g, ""); field_label_map[fname] = label.trim() + " (" + currency + ")"; } }); @@ -452,7 +444,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ $.each(fields_list, function(i, fname) { var docfield = wn.meta.get_docfield(grid_doctype, fname); if(docfield) { - var label = wn._((docfield.label || "")).replace(/\([^\)]*\)/g, ""); + var label = wn._(docfield.label || "").replace(/\([^\)]*\)/g, ""); field_label_map[grid_doctype + "-" + fname] = label.trim() + " (" + currency + ")"; } diff --git a/selling/doctype/sales_order/sales_order.txt b/selling/doctype/sales_order/sales_order.txt index fdf60a21ec..fb5848f8c3 100644 --- a/selling/doctype/sales_order/sales_order.txt +++ b/selling/doctype/sales_order/sales_order.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-05-21 16:16:41", + "creation": "2013-05-24 19:29:08", "docstatus": 0, - "modified": "2013-05-21 18:30:14", + "modified": "2013-05-28 15:05:38", "modified_by": "Administrator", "owner": "Administrator" }, @@ -76,42 +76,47 @@ "search_index": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "customer_name", "fieldtype": "Data", - "hidden": 1, + "hidden": 0, "label": "Name", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Address", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Contact", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -448,7 +453,7 @@ "fieldname": "other_charges_total_export", "fieldtype": "Currency", "label": "Taxes and Charges Total (Export)", - "options": "company", + "options": "currency", "print_hide": 1, "read_only": 1 }, @@ -596,6 +601,7 @@ "print_hide": 0 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_info", "fieldtype": "Section Break", diff --git a/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt b/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt index c5beb65b0d..4f6272d773 100644 --- a/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt +++ b/stock/Print Format/Delivery Note Classic/Delivery Note Classic.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:31:11", "docstatus": 0, - "modified": "2013-01-25 17:19:46", + "modified": "2013-05-28 17:20:31", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Delivery Note", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Stock", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt b/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt index 6993bfdce0..82d2376d04 100644 --- a/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt +++ b/stock/Print Format/Delivery Note Modern/Delivery Note Modern.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:31:11", "docstatus": 0, - "modified": "2013-01-25 17:20:58", + "modified": "2013-05-28 17:20:21", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Delivery Note", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Stock", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt b/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt index 69eb9ff66f..81ecbd29b5 100644 --- a/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt +++ b/stock/Print Format/Delivery Note Spartan/Delivery Note Spartan.txt @@ -1,17 +1,18 @@ [ { - "creation": "2012-04-17 11:29:12", + "creation": "2013-04-19 13:31:11", "docstatus": 0, - "modified": "2013-01-25 17:19:30", + "modified": "2013-05-28 17:20:39", "modified_by": "Administrator", "owner": "Administrator" }, { "doc_type": "Delivery Note", "doctype": "Print Format", - "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", + "html": "\n\n\n\n\n\n\n\n\n\n\n\n
\n\t\n\t\n
\n\n", "module": "Stock", "name": "__common__", + "print_format_type": "Client", "standard": "Yes" }, { diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt index 72c6f47188..4504db047a 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/stock/doctype/delivery_note/delivery_note.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-05-21 16:16:31", + "creation": "2013-05-24 19:29:09", "docstatus": 0, - "modified": "2013-05-21 18:30:32", + "modified": "2013-05-28 12:26:04", "modified_by": "Administrator", "owner": "Administrator" }, @@ -76,10 +76,11 @@ "search_index": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "customer_name", "fieldtype": "Data", - "hidden": 1, + "hidden": 0, "in_list_view": 1, "label": "Customer Name", "read_only": 1 @@ -96,34 +97,38 @@ "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Shipping Address", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Contact", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "read_only": 1 }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -690,6 +695,7 @@ "width": "100px" }, { + "depends_on": "customer", "doctype": "DocField", "fieldname": "contact_info", "fieldtype": "Section Break", diff --git a/stock/doctype/material_request/material_request.js b/stock/doctype/material_request/material_request.js index 881a764975..6c7b2a7b88 100644 --- a/stock/doctype/material_request/material_request.js +++ b/stock/doctype/material_request/material_request.js @@ -17,8 +17,8 @@ cur_frm.cscript.tname = "Material Request Item"; cur_frm.cscript.fname = "indent_details"; -wn.require('app/buying/doctype/purchase_common/purchase_common.js'); wn.require('app/utilities/doctype/sms_control/sms_control.js'); +wn.require('app/buying/doctype/purchase_common/purchase_common.js'); erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.extend({ refresh: function(doc) { @@ -48,13 +48,19 @@ erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.exten cur_frm.toggle_display("sales_order_no", false); cur_frm.fields_dict.indent_details.grid.set_column_disp("sales_order_no", false); } + }, + + validate_company_and_party: function(party_field) { + return true; + }, + + calculate_taxes_and_totals: function() { + return; } }); -var new_cscript = new erpnext.buying.MaterialRequestController({frm: cur_frm}); - // for backward compatibility: combine new and previous states -$.extend(cur_frm.cscript, new_cscript); +$.extend(cur_frm.cscript, new erpnext.buying.MaterialRequestController({frm: cur_frm})); cur_frm.cscript.qty = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt index 350777d95c..4e055dcd54 100755 --- a/stock/doctype/purchase_receipt/purchase_receipt.txt +++ b/stock/doctype/purchase_receipt/purchase_receipt.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-25 16:01:29", + "creation": "2013-05-21 16:16:39", "docstatus": 0, - "modified": "2013-02-02 19:09:37", + "modified": "2013-05-28 12:21:17", "modified_by": "Administrator", "owner": "Administrator" }, @@ -75,43 +75,48 @@ "width": "150px" }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "supplier_name", "fieldtype": "Data", - "hidden": 1, + "hidden": 0, "in_list_view": 1, "label": "Supplier Name", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "address_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Address", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_display", "fieldtype": "Small Text", - "hidden": 1, + "hidden": 0, "label": "Contact", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_mobile", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Mobile No", "read_only": 1 }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_email", "fieldtype": "Text", - "hidden": 1, + "hidden": 0, "label": "Contact Email", "print_hide": 1, "read_only": 1 @@ -569,6 +574,7 @@ "oldfieldtype": "Text Editor" }, { + "depends_on": "supplier", "doctype": "DocField", "fieldname": "contact_section", "fieldtype": "Section Break", @@ -888,7 +894,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "", "permlevel": 1, "report": 0, "role": "Material Manager", @@ -911,7 +916,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "", "permlevel": 1, "report": 0, "role": "Material User", @@ -934,7 +938,6 @@ "cancel": 1, "create": 1, "doctype": "DocPerm", - "match": "", "permlevel": 0, "report": 1, "role": "Purchase User", @@ -946,7 +949,6 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "", "permlevel": 1, "role": "Purchase User", "submit": 0 diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt index 8cef6a3534..9f7d72c071 100755 --- a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt +++ b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-07 11:42:59", + "creation": "2013-05-24 19:29:10", "docstatus": 0, - "modified": "2013-05-22 12:01:08", + "modified": "2013-05-28 12:13:59", "modified_by": "Administrator", "owner": "Administrator" }, @@ -357,7 +357,7 @@ "oldfieldtype": "Currency", "print_hide": 1, "print_width": "100px", - "read_only": 0, + "read_only": 1, "width": "100px" }, { @@ -370,7 +370,7 @@ "oldfieldname": "prevdoc_doctype", "oldfieldtype": "Data", "print_hide": 1, - "read_only": 0 + "read_only": 1 }, { "doctype": "DocField", diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py index f1a06c9bdb..5b716fcc53 100644 --- a/utilities/transaction_base.py +++ b/utilities/transaction_base.py @@ -192,7 +192,8 @@ class TransactionBase(DocListController): # Get Supplier Default Primary Address - first load # ----------------------- def get_default_supplier_address(self, args): - args = load_json(args) + if isinstance(args, basestring): + args = load_json(args) address_text, address_name = self.get_address_text(supplier=args['supplier']) ret = { 'supplier_address' : address_name,