blob: 6abe559c10f545c4678e3785579ca03f60923f9b [file] [log] [blame]
Anand Doshi885e0742015-03-03 14:55:30 +05301// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
Rushabh Mehtae67d1fb2013-08-05 14:59:54 +05302// License: GNU General Public License v3. See license.txt
Rushabh Mehta3966f1d2012-02-23 12:35:32 +05303
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +05304
Nabin Hait613d0812015-02-23 11:58:15 +05305cur_frm.cscript.tax_table = "Sales Taxes and Charges";
Rushabh Mehta621283c2016-04-21 19:00:34 +05306{% include 'erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.js' %}
Nabin Hait613d0812015-02-23 11:58:15 +05307
Rushabh Mehtab09d9da2014-01-02 11:47:23 +05308
Rushabh Mehtae10cf022014-09-12 13:09:41 +05309cur_frm.email_field = "contact_email";
10
Rushabh Mehtabe2ee182016-04-29 17:22:42 +053011frappe.provide("erpnext.selling");
Anand Doshi3543f302013-05-24 19:25:01 +053012erpnext.selling.SellingController = erpnext.TransactionController.extend({
Rushabh Mehta532eedf2016-05-19 18:22:49 +053013 setup: function() {
14 this._super();
Rushabh Mehta532eedf2016-05-19 18:22:49 +053015 },
16
Anand Doshi9b496142013-07-11 19:13:58 +053017 onload: function() {
18 this._super();
Anand Doshi9b496142013-07-11 19:13:58 +053019 this.setup_queries();
20 },
Anand Doshibd67e872014-04-11 16:51:27 +053021
Anand Doshi9b496142013-07-11 19:13:58 +053022 setup_queries: function() {
Anand Doshi99100a42013-07-04 17:13:53 +053023 var me = this;
Anand Doshibd67e872014-04-11 16:51:27 +053024
Anand Doshif3096132013-05-21 19:35:06 +053025 this.frm.add_fetch("sales_partner", "commission_rate", "commission_rate");
Anand Doshibd67e872014-04-11 16:51:27 +053026
Rushabh Mehtab92087c2017-01-13 18:53:11 +053027 $.each([["customer", "customer"],
Anand Doshibd67e872014-04-11 16:51:27 +053028 ["lead", "lead"]],
Anand Doshid5d39ac2013-07-29 13:28:37 +053029 function(i, opts) {
Anand Doshibd67e872014-04-11 16:51:27 +053030 if(me.frm.fields_dict[opts[0]])
Anand Doshid5d39ac2013-07-29 13:28:37 +053031 me.frm.set_query(opts[0], erpnext.queries[opts[1]]);
32 });
Anand Doshibd67e872014-04-11 16:51:27 +053033
Rushabh Mehtab92087c2017-01-13 18:53:11 +053034 me.frm.set_query('contact_person', erpnext.queries.contact_query);
35 me.frm.set_query('customer_address', erpnext.queries.address_query);
36 me.frm.set_query('shipping_address_name', erpnext.queries.address_query);
37
Akhilesh Darjee4f721562014-01-29 16:31:38 +053038 if(this.frm.fields_dict.taxes_and_charges) {
39 this.frm.set_query("taxes_and_charges", function() {
Saurabhf52dc072013-07-10 13:07:49 +053040 return {
41 filters: [
Rushabh Mehtaab1ed012015-05-08 11:08:48 +053042 ['Sales Taxes and Charges Template', 'company', '=', me.frm.doc.company],
43 ['Sales Taxes and Charges Template', 'docstatus', '!=', 2]
Saurabhf52dc072013-07-10 13:07:49 +053044 ]
45 }
Anand Doshi99100a42013-07-04 17:13:53 +053046 });
47 }
Anand Doshi99100a42013-07-04 17:13:53 +053048
Rushabh Mehta4a404e92013-08-09 18:11:35 +053049 if(this.frm.fields_dict.selling_price_list) {
50 this.frm.set_query("selling_price_list", function() {
Nabin Haitdc15b4f2014-01-20 16:48:49 +053051 return { filters: { selling: 1 } };
Anand Doshi720a01a2013-07-26 11:32:02 +053052 });
Anand Doshi720a01a2013-07-26 11:32:02 +053053 }
Anand Doshibd67e872014-04-11 16:51:27 +053054
Nabin Haitdd38a262014-12-26 13:15:21 +053055 if(!this.frm.fields_dict["items"]) {
Anand Doshi99100a42013-07-04 17:13:53 +053056 return;
57 }
Anand Doshibd67e872014-04-11 16:51:27 +053058
Nabin Haitdd38a262014-12-26 13:15:21 +053059 if(this.frm.fields_dict["items"].grid.get_field('item_code')) {
60 this.frm.set_query("item_code", "items", function() {
Anand Doshi9b496142013-07-11 19:13:58 +053061 return {
Rushabh Mehtad973c162016-08-16 11:32:08 +053062 query: "erpnext.controllers.queries.item_query",
63 filters: {'is_sales_item': 1}
Anand Doshi9b496142013-07-11 19:13:58 +053064 }
Anand Doshi99100a42013-07-04 17:13:53 +053065 });
66 }
Anand Doshibd67e872014-04-11 16:51:27 +053067
Rushabh Mehta698c0402016-11-22 23:16:40 +053068 if(this.frm.fields_dict["packed_items"] &&
69 this.frm.fields_dict["packed_items"].grid.get_field('batch_no')) {
Rohit Waghchauree887e922016-11-18 12:16:22 +053070 this.frm.set_query("batch_no", "packed_items", function(doc, cdt, cdn) {
71 return me.set_query_for_batch(doc, cdt, cdn)
72 });
73 }
Rohit Waghchauree887e922016-11-18 12:16:22 +053074 },
75
Anand Doshic4a54fe2013-08-01 18:19:51 +053076 refresh: function() {
77 this._super();
Rushabh Mehtab92087c2017-01-13 18:53:11 +053078
Rushabh Mehta8d39fd92017-01-16 13:06:07 +053079 frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
Rushabh Mehtab92087c2017-01-13 18:53:11 +053080
Anand Doshibd67e872014-04-11 16:51:27 +053081 this.frm.toggle_display("customer_name",
Akhilesh Darjee5ce1b8b2013-12-09 16:29:04 +053082 (this.frm.doc.customer_name && this.frm.doc.customer_name!==this.frm.doc.customer));
Nabin Haite7d15362014-12-25 16:01:55 +053083 if(this.frm.fields_dict.packed_items) {
84 var packing_list_exists = (this.frm.doc.packed_items || []).length;
Anand Doshic4a54fe2013-08-01 18:19:51 +053085 this.frm.toggle_display("packing_list", packing_list_exists ? true : false);
86 }
Nabin Hait2029ea92015-04-16 17:55:35 +053087 this.toggle_editable_price_list_rate();
Rushabh Mehta8aded132013-07-04 12:50:52 +053088 },
Anand Doshibd67e872014-04-11 16:51:27 +053089
Anand Doshi3543f302013-05-24 19:25:01 +053090 customer: function() {
Nabin Haita3dd72a2014-05-28 12:49:20 +053091 var me = this;
92 erpnext.utils.get_party_details(this.frm, null, null, function(){me.apply_pricing_rule()});
Anand Doshi3543f302013-05-24 19:25:01 +053093 },
Anand Doshibd67e872014-04-11 16:51:27 +053094
Nabin Haita279d782013-07-15 13:04:33 +053095 customer_address: function() {
Rushabh Mehtab09d9da2014-01-02 11:47:23 +053096 erpnext.utils.get_address_display(this.frm, "customer_address");
Nabin Haita279d782013-07-15 13:04:33 +053097 },
Anand Doshibd67e872014-04-11 16:51:27 +053098
Nabin Hait9d1f0772014-02-19 17:43:24 +053099 shipping_address_name: function() {
100 erpnext.utils.get_address_display(this.frm, "shipping_address_name", "shipping_address");
101 },
Anand Doshibd67e872014-04-11 16:51:27 +0530102
Nabin Haita3dd72a2014-05-28 12:49:20 +0530103 sales_partner: function() {
104 this.apply_pricing_rule();
105 },
106
107 campaign: function() {
108 this.apply_pricing_rule();
109 },
110
Rushabh Mehta4a404e92013-08-09 18:11:35 +0530111 selling_price_list: function() {
Anand Doshidffec8f2014-07-01 17:45:15 +0530112 this.apply_price_list();
Anand Doshif3096132013-05-21 19:35:06 +0530113 },
Anand Doshibd67e872014-04-11 16:51:27 +0530114
Nabin Haita7f757a2014-02-10 17:54:04 +0530115 price_list_rate: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530116 var item = frappe.get_doc(cdt, cdn);
Rushabh Mehta793ba6b2014-02-14 15:47:51 +0530117 frappe.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
Anand Doshibd67e872014-04-11 16:51:27 +0530118
mbauskara52472c2016-03-05 15:10:25 +0530119 // check if child doctype is Sales Order Item/Qutation Item and calculate the rate
120 if(in_list(["Quotation Item", "Sales Order Item", "Delivery Note Item", "Sales Invoice Item"]), cdt)
Rohit Waghchaure6087fe12016-04-09 14:31:09 +0530121 this.apply_pricing_rule_on_item(item);
mbauskara52472c2016-03-05 15:10:25 +0530122 else
123 item.rate = flt(item.price_list_rate * (1 - item.discount_percentage / 100.0),
124 precision("rate", item));
125
Anand Doshif3096132013-05-21 19:35:06 +0530126 this.calculate_taxes_and_totals();
127 },
Anand Doshibd67e872014-04-11 16:51:27 +0530128
Nabin Haita7f757a2014-02-10 17:54:04 +0530129 discount_percentage: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530130 var item = frappe.get_doc(cdt, cdn);
Nabin Haita7f757a2014-02-10 17:54:04 +0530131 if(!item.price_list_rate) {
132 item.discount_percentage = 0.0;
Anand Doshi923d41d2013-05-28 17:23:36 +0530133 } else {
Nabin Haita7f757a2014-02-10 17:54:04 +0530134 this.price_list_rate(doc, cdt, cdn);
Anand Doshi923d41d2013-05-28 17:23:36 +0530135 }
Saurabh5ada14b2016-02-26 18:02:55 +0530136 this.set_gross_profit(item);
Anand Doshif3096132013-05-21 19:35:06 +0530137 },
Anand Doshibd67e872014-04-11 16:51:27 +0530138
Anand Doshif3096132013-05-21 19:35:06 +0530139 commission_rate: function() {
140 this.calculate_commission();
141 refresh_field("total_commission");
142 },
Anand Doshibd67e872014-04-11 16:51:27 +0530143
Anand Doshif3096132013-05-21 19:35:06 +0530144 total_commission: function() {
Nabin Hait5690be12015-02-12 16:09:11 +0530145 if(this.frm.doc.base_net_total) {
146 frappe.model.round_floats_in(this.frm.doc, ["base_net_total", "total_commission"]);
Anand Doshibd67e872014-04-11 16:51:27 +0530147
Nabin Hait5690be12015-02-12 16:09:11 +0530148 if(this.frm.doc.base_net_total < this.frm.doc.total_commission) {
Pratik Vyasb52618c2014-04-14 16:25:30 +0530149 var msg = (__("[Error]") + " " +
150 __(frappe.meta.get_label(this.frm.doc.doctype, "total_commission",
Anand Doshibd67e872014-04-11 16:51:27 +0530151 this.frm.doc.name)) + " > " +
Nabin Hait5690be12015-02-12 16:09:11 +0530152 __(frappe.meta.get_label(this.frm.doc.doctype, "base_net_total", this.frm.doc.name)));
Faris Ansariab74ca72017-05-30 12:54:42 +0530153 frappe.msgprint(msg);
Anand Doshif3096132013-05-21 19:35:06 +0530154 throw msg;
155 }
Anand Doshibd67e872014-04-11 16:51:27 +0530156
157 this.frm.set_value("commission_rate",
Nabin Hait5690be12015-02-12 16:09:11 +0530158 flt(this.frm.doc.total_commission * 100.0 / this.frm.doc.base_net_total));
Anand Doshif3096132013-05-21 19:35:06 +0530159 }
160 },
Anand Doshibd67e872014-04-11 16:51:27 +0530161
Anand Doshif3096132013-05-21 19:35:06 +0530162 allocated_percentage: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530163 var sales_person = frappe.get_doc(cdt, cdn);
Anand Doshibd67e872014-04-11 16:51:27 +0530164
Anand Doshif3096132013-05-21 19:35:06 +0530165 if(sales_person.allocated_percentage) {
166 sales_person.allocated_percentage = flt(sales_person.allocated_percentage,
167 precision("allocated_percentage", sales_person));
Nabin Hait5690be12015-02-12 16:09:11 +0530168 sales_person.allocated_amount = flt(this.frm.doc.base_net_total *
Anand Doshibd67e872014-04-11 16:51:27 +0530169 sales_person.allocated_percentage / 100.0,
Anand Doshif3096132013-05-21 19:35:06 +0530170 precision("allocated_amount", sales_person));
171
172 refresh_field(["allocated_percentage", "allocated_amount"], sales_person.name,
173 sales_person.parentfield);
174 }
175 },
Anand Doshibd67e872014-04-11 16:51:27 +0530176
Anand Doshifc777182013-05-27 19:29:07 +0530177 warehouse: function(doc, cdt, cdn) {
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530178 var me = this;
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530179 var item = frappe.get_doc(cdt, cdn);
Rushabh Mehtabe2ee182016-04-29 17:22:42 +0530180
Anand Doshi1dc95ed2013-07-23 13:36:38 +0530181 if(item.item_code && item.warehouse) {
Anand Doshi1fac2a92013-07-29 19:30:39 +0530182 return this.frm.call({
Kanchan Chauhanaf0d6372016-11-13 21:19:09 +0530183 method: "erpnext.stock.get_item_details.get_bin_details_and_serial_nos",
Anand Doshifc777182013-05-27 19:29:07 +0530184 child: item,
185 args: {
186 item_code: item.item_code,
Anand Doshi1dc95ed2013-07-23 13:36:38 +0530187 warehouse: item.warehouse,
Kanchan Chauhan5a980ac2017-02-10 14:27:11 +0530188 stock_qty: item.stock_qty,
Nabin Hait1d90b412016-12-24 10:42:23 +0530189 serial_no: item.serial_no || ""
Anand Doshifc777182013-05-27 19:29:07 +0530190 },
Saurabhd3135532016-02-25 18:59:20 +0530191 callback:function(r){
Faris Ansariab74ca72017-05-30 12:54:42 +0530192 if (in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
Saurabhd3135532016-02-25 18:59:20 +0530193 me.batch_no(doc, cdt, cdn);
194 }
195 }
Anand Doshifc777182013-05-27 19:29:07 +0530196 });
197 }
198 },
Anand Doshibd67e872014-04-11 16:51:27 +0530199
Anand Doshi33fe8672013-08-02 12:39:10 +0530200 toggle_editable_price_list_rate: function() {
Nabin Haitdd38a262014-12-26 13:15:21 +0530201 var df = frappe.meta.get_docfield(this.frm.doc.doctype + " Item", "price_list_rate", this.frm.doc.name);
Rushabh Mehta793ba6b2014-02-14 15:47:51 +0530202 var editable_price_list_rate = cint(frappe.defaults.get_default("editable_price_list_rate"));
Anand Doshibd67e872014-04-11 16:51:27 +0530203
Anand Doshi33fe8672013-08-02 12:39:10 +0530204 if(df && editable_price_list_rate) {
205 df.read_only = 0;
206 }
207 },
Anand Doshibd67e872014-04-11 16:51:27 +0530208
Anand Doshif3096132013-05-21 19:35:06 +0530209 calculate_commission: function() {
Anand Doshi923d41d2013-05-28 17:23:36 +0530210 if(this.frm.fields_dict.commission_rate) {
211 if(this.frm.doc.commission_rate > 100) {
Pratik Vyasb52618c2014-04-14 16:25:30 +0530212 var msg = __(frappe.meta.get_label(this.frm.doc.doctype, "commission_rate", this.frm.doc.name)) +
213 " " + __("cannot be greater than 100");
Faris Ansariab74ca72017-05-30 12:54:42 +0530214 frappe.msgprint(msg);
Anand Doshi923d41d2013-05-28 17:23:36 +0530215 throw msg;
216 }
Anand Doshibd67e872014-04-11 16:51:27 +0530217
Nabin Hait5690be12015-02-12 16:09:11 +0530218 this.frm.doc.total_commission = flt(this.frm.doc.base_net_total * this.frm.doc.commission_rate / 100.0,
Anand Doshi923d41d2013-05-28 17:23:36 +0530219 precision("total_commission"));
220 }
Anand Doshif3096132013-05-21 19:35:06 +0530221 },
Anand Doshibd67e872014-04-11 16:51:27 +0530222
Anand Doshif3096132013-05-21 19:35:06 +0530223 calculate_contribution: function() {
Anand Doshi2168e392013-05-23 19:25:08 +0530224 var me = this;
Rushabh Mehtaaa355af2014-03-26 18:24:30 +0530225 $.each(this.frm.doc.doctype.sales_team || [], function(i, sales_person) {
Faris Ansariab74ca72017-05-30 12:54:42 +0530226 frappe.model.round_floats_in(sales_person);
227 if(sales_person.allocated_percentage) {
228 sales_person.allocated_amount = flt(
229 me.frm.doc.base_net_total * sales_person.allocated_percentage / 100.0,
230 precision("allocated_amount", sales_person));
231 }
232 });
Anand Doshif3096132013-05-21 19:35:06 +0530233 },
Anand Doshibd67e872014-04-11 16:51:27 +0530234
Anand Doshicefccb92013-07-15 18:28:14 +0530235 shipping_rule: function() {
236 var me = this;
237 if(this.frm.doc.shipping_rule) {
Anand Doshi1fac2a92013-07-29 19:30:39 +0530238 return this.frm.call({
Anand Doshicefccb92013-07-15 18:28:14 +0530239 doc: this.frm.doc,
240 method: "apply_shipping_rule",
241 callback: function(r) {
242 if(!r.exc) {
243 me.calculate_taxes_and_totals();
244 }
245 }
246 })
247 }
248 },
Anand Doshibd67e872014-04-11 16:51:27 +0530249
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530250 batch_no: function(doc, cdt, cdn) {
251 var me = this;
252 var item = frappe.get_doc(cdt, cdn);
Nabin Hait2ed71ba2015-03-20 15:06:30 +0530253
Sambhaji Kolatea4fa96c2015-03-30 16:04:55 +0530254 if(item.warehouse && item.item_code && item.batch_no) {
Faris Ansariab74ca72017-05-30 12:54:42 +0530255 return this.frm.call({
256 method: "erpnext.stock.get_item_details.get_batch_qty",
257 child: item,
258 args: {
259 "batch_no": item.batch_no,
260 "warehouse": item.warehouse,
261 "item_code": item.item_code
262 },
263 "fieldname": "actual_batch_qty"
264 });
Sambhaji Kolatefeff40a2015-03-11 11:50:28 +0530265 }
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530266 },
267
Anand Doshi2168e392013-05-23 19:25:08 +0530268 set_dynamic_labels: function() {
Anand Doshi61a2f682013-06-21 17:55:31 +0530269 this._super();
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530270 this.set_product_bundle_help(this.frm.doc);
Nabin Hait0b157552014-06-24 17:02:45 +0530271 },
272
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530273 set_product_bundle_help: function(doc) {
Nabin Hait0b157552014-06-24 17:02:45 +0530274 if(!cur_frm.fields_dict.packing_list) return;
Nabin Haite7d15362014-12-25 16:01:55 +0530275 if ((doc.packed_items || []).length) {
Nabin Hait0b157552014-06-24 17:02:45 +0530276 $(cur_frm.fields_dict.packing_list.row.wrapper).toggle(true);
277
Faris Ansariab74ca72017-05-30 12:54:42 +0530278 if (in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
279 var help_msg = "<div class='alert alert-warning'>" +
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530280 __("For 'Product Bundle' items, Warehouse, Serial No and Batch No will be considered from the 'Packing List' table. If Warehouse and Batch No are same for all packing items for any 'Product Bundle' item, those values can be entered in the main Item table, values will be copied to 'Packing List' table.")+
Nabin Hait0b157552014-06-24 17:02:45 +0530281 "</div>";
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530282 frappe.meta.get_docfield(doc.doctype, 'product_bundle_help', doc.name).options = help_msg;
Nabin Hait0b157552014-06-24 17:02:45 +0530283 }
284 } else {
285 $(cur_frm.fields_dict.packing_list.row.wrapper).toggle(false);
Faris Ansariab74ca72017-05-30 12:54:42 +0530286 if (in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530287 frappe.meta.get_docfield(doc.doctype, 'product_bundle_help', doc.name).options = '';
Nabin Hait0b157552014-06-24 17:02:45 +0530288 }
289 }
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530290 refresh_field('product_bundle_help');
Saurabheba7aa42015-12-16 09:57:59 +0530291 },
Anand Doshi01de9452016-01-26 16:22:50 +0530292
Saurabheba7aa42015-12-16 09:57:59 +0530293 make_payment_request: function() {
Saurabheba7aa42015-12-16 09:57:59 +0530294 frappe.call({
295 method:"erpnext.accounts.doctype.payment_request.payment_request.make_payment_request",
296 args: {
297 "dt": cur_frm.doc.doctype,
298 "dn": cur_frm.doc.name,
Saurabhb109ee92015-12-16 20:48:40 +0530299 "recipient_id": cur_frm.doc.contact_email
Saurabheba7aa42015-12-16 09:57:59 +0530300 },
301 callback: function(r) {
Saurabhcb98d9e2015-12-17 09:48:44 +0530302 if(!r.exc){
Saurabh3ba22672015-12-21 18:24:49 +0530303 var doc = frappe.model.sync(r.message);
Saurabh3ba22672015-12-21 18:24:49 +0530304 frappe.set_route("Form", r.message.doctype, r.message.name);
Saurabhcb98d9e2015-12-17 09:48:44 +0530305 }
Saurabheba7aa42015-12-16 09:57:59 +0530306 }
307 })
mbauskar1e9c1642016-01-18 16:21:25 +0530308 },
mbauskar1e428ae2016-01-19 19:52:22 +0530309
mbauskara52472c2016-03-05 15:10:25 +0530310 margin_rate_or_amount: function(doc, cdt, cdn) {
mbauskar1e9c1642016-01-18 16:21:25 +0530311 // calculated the revised total margin and rate on margin rate changes
Faris Ansariab74ca72017-05-30 12:54:42 +0530312 var item = locals[cdt][cdn];
Rohit Waghchaure6087fe12016-04-09 14:31:09 +0530313 this.apply_pricing_rule_on_item(item)
mbauskara52472c2016-03-05 15:10:25 +0530314 this.calculate_taxes_and_totals();
mbauskar1e9c1642016-01-18 16:21:25 +0530315 cur_frm.refresh_fields();
316 },
mbauskar1e428ae2016-01-19 19:52:22 +0530317
mbauskara52472c2016-03-05 15:10:25 +0530318 margin_type: function(doc, cdt, cdn){
mbauskar1e9c1642016-01-18 16:21:25 +0530319 // calculate the revised total margin and rate on margin type changes
Faris Ansariab74ca72017-05-30 12:54:42 +0530320 var item = locals[cdt][cdn];
Nabin Haite72c98d2017-05-24 09:01:44 +0530321 if(!item.margin_type) {
322 frappe.model.set_value(cdt, cdn, "margin_rate_or_amount", 0);
323 } else {
324 this.apply_pricing_rule_on_item(item, doc,cdt, cdn)
325 this.calculate_taxes_and_totals();
326 cur_frm.refresh_fields();
327 }
Nabin Haitcfc6bb12012-07-11 13:14:52 +0530328 }
Nabin Hait0b157552014-06-24 17:02:45 +0530329});
Anand Doshi43f087c2014-08-26 14:25:53 +0530330
Neil Trini Lasrado6e343e22016-03-09 17:02:59 +0530331frappe.ui.form.on(cur_frm.doctype,"project", function(frm) {
Nabin Hait10b155a2014-10-23 13:18:59 +0530332 if(in_list(["Delivery Note", "Sales Invoice"], frm.doc.doctype)) {
Rushabh Mehta532eedf2016-05-19 18:22:49 +0530333 if(frm.doc.project) {
334 frappe.call({
335 method:'erpnext.projects.doctype.project.project.get_cost_center_name' ,
336 args: { project: frm.doc.project },
337 callback: function(r, rt) {
338 if(!r.exc) {
339 $.each(frm.doc["items"] || [], function(i, row) {
340 if(r.message) {
341 frappe.model.set_value(row.doctype, row.name, "cost_center", r.message);
Faris Ansariab74ca72017-05-30 12:54:42 +0530342 frappe.msgprint(__("Cost Center For Item with Item Code '"+row.item_name+"' has been Changed to "+ r.message));
Rushabh Mehta532eedf2016-05-19 18:22:49 +0530343 }
344 })
345 }
Nabin Hait10b155a2014-10-23 13:18:59 +0530346 }
Rushabh Mehta532eedf2016-05-19 18:22:49 +0530347 })
348 }
Nabin Hait10b155a2014-10-23 13:18:59 +0530349 }
Kanchan Chauhanaf0d6372016-11-13 21:19:09 +0530350})