blob: 6233f05d8b3c250dc15325ecd31e6f78a3aa1b88 [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() {
Rushabh Mehta532eedf2016-05-19 18:22:49 +053023
24
Anand Doshi99100a42013-07-04 17:13:53 +053025 var me = this;
Anand Doshibd67e872014-04-11 16:51:27 +053026
Anand Doshif3096132013-05-21 19:35:06 +053027 this.frm.add_fetch("sales_partner", "commission_rate", "commission_rate");
Anand Doshibd67e872014-04-11 16:51:27 +053028
Rushabh Mehtab92087c2017-01-13 18:53:11 +053029 $.each([["customer", "customer"],
Anand Doshibd67e872014-04-11 16:51:27 +053030 ["lead", "lead"]],
Anand Doshid5d39ac2013-07-29 13:28:37 +053031 function(i, opts) {
Anand Doshibd67e872014-04-11 16:51:27 +053032 if(me.frm.fields_dict[opts[0]])
Anand Doshid5d39ac2013-07-29 13:28:37 +053033 me.frm.set_query(opts[0], erpnext.queries[opts[1]]);
34 });
Anand Doshibd67e872014-04-11 16:51:27 +053035
Rushabh Mehtab92087c2017-01-13 18:53:11 +053036 me.frm.set_query('contact_person', erpnext.queries.contact_query);
37 me.frm.set_query('customer_address', erpnext.queries.address_query);
38 me.frm.set_query('shipping_address_name', erpnext.queries.address_query);
39
Akhilesh Darjee4f721562014-01-29 16:31:38 +053040 if(this.frm.fields_dict.taxes_and_charges) {
41 this.frm.set_query("taxes_and_charges", function() {
Saurabhf52dc072013-07-10 13:07:49 +053042 return {
43 filters: [
Rushabh Mehtaab1ed012015-05-08 11:08:48 +053044 ['Sales Taxes and Charges Template', 'company', '=', me.frm.doc.company],
45 ['Sales Taxes and Charges Template', 'docstatus', '!=', 2]
Saurabhf52dc072013-07-10 13:07:49 +053046 ]
47 }
Anand Doshi99100a42013-07-04 17:13:53 +053048 });
49 }
Anand Doshi99100a42013-07-04 17:13:53 +053050
Rushabh Mehta4a404e92013-08-09 18:11:35 +053051 if(this.frm.fields_dict.selling_price_list) {
52 this.frm.set_query("selling_price_list", function() {
Nabin Haitdc15b4f2014-01-20 16:48:49 +053053 return { filters: { selling: 1 } };
Anand Doshi720a01a2013-07-26 11:32:02 +053054 });
Anand Doshi720a01a2013-07-26 11:32:02 +053055 }
Anand Doshibd67e872014-04-11 16:51:27 +053056
Nabin Haitdd38a262014-12-26 13:15:21 +053057 if(!this.frm.fields_dict["items"]) {
Anand Doshi99100a42013-07-04 17:13:53 +053058 return;
59 }
Anand Doshibd67e872014-04-11 16:51:27 +053060
Nabin Haitdd38a262014-12-26 13:15:21 +053061 if(this.frm.fields_dict["items"].grid.get_field('item_code')) {
62 this.frm.set_query("item_code", "items", function() {
Anand Doshi9b496142013-07-11 19:13:58 +053063 return {
Rushabh Mehtad973c162016-08-16 11:32:08 +053064 query: "erpnext.controllers.queries.item_query",
65 filters: {'is_sales_item': 1}
Anand Doshi9b496142013-07-11 19:13:58 +053066 }
Anand Doshi99100a42013-07-04 17:13:53 +053067 });
68 }
Anand Doshibd67e872014-04-11 16:51:27 +053069
Rushabh Mehta698c0402016-11-22 23:16:40 +053070 if(this.frm.fields_dict["packed_items"] &&
71 this.frm.fields_dict["packed_items"].grid.get_field('batch_no')) {
Rohit Waghchauree887e922016-11-18 12:16:22 +053072 this.frm.set_query("batch_no", "packed_items", function(doc, cdt, cdn) {
73 return me.set_query_for_batch(doc, cdt, cdn)
74 });
75 }
Rohit Waghchauree887e922016-11-18 12:16:22 +053076 },
77
Anand Doshic4a54fe2013-08-01 18:19:51 +053078 refresh: function() {
79 this._super();
Rushabh Mehtab92087c2017-01-13 18:53:11 +053080
Rushabh Mehta8d39fd92017-01-16 13:06:07 +053081 frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
Rushabh Mehtab92087c2017-01-13 18:53:11 +053082
Anand Doshibd67e872014-04-11 16:51:27 +053083 this.frm.toggle_display("customer_name",
Akhilesh Darjee5ce1b8b2013-12-09 16:29:04 +053084 (this.frm.doc.customer_name && this.frm.doc.customer_name!==this.frm.doc.customer));
Nabin Haite7d15362014-12-25 16:01:55 +053085 if(this.frm.fields_dict.packed_items) {
86 var packing_list_exists = (this.frm.doc.packed_items || []).length;
Anand Doshic4a54fe2013-08-01 18:19:51 +053087 this.frm.toggle_display("packing_list", packing_list_exists ? true : false);
88 }
Nabin Hait2029ea92015-04-16 17:55:35 +053089 this.toggle_editable_price_list_rate();
Rushabh Mehta8aded132013-07-04 12:50:52 +053090 },
Anand Doshibd67e872014-04-11 16:51:27 +053091
Anand Doshi3543f302013-05-24 19:25:01 +053092 customer: function() {
Nabin Haita3dd72a2014-05-28 12:49:20 +053093 var me = this;
94 erpnext.utils.get_party_details(this.frm, null, null, function(){me.apply_pricing_rule()});
Anand Doshi3543f302013-05-24 19:25:01 +053095 },
Anand Doshibd67e872014-04-11 16:51:27 +053096
Nabin Haita279d782013-07-15 13:04:33 +053097 customer_address: function() {
Rushabh Mehtab09d9da2014-01-02 11:47:23 +053098 erpnext.utils.get_address_display(this.frm, "customer_address");
Nabin Haita279d782013-07-15 13:04:33 +053099 },
Anand Doshibd67e872014-04-11 16:51:27 +0530100
Nabin Hait9d1f0772014-02-19 17:43:24 +0530101 shipping_address_name: function() {
102 erpnext.utils.get_address_display(this.frm, "shipping_address_name", "shipping_address");
103 },
Anand Doshibd67e872014-04-11 16:51:27 +0530104
Nabin Haita3dd72a2014-05-28 12:49:20 +0530105 sales_partner: function() {
106 this.apply_pricing_rule();
107 },
108
109 campaign: function() {
110 this.apply_pricing_rule();
111 },
112
Rushabh Mehta4a404e92013-08-09 18:11:35 +0530113 selling_price_list: function() {
Anand Doshidffec8f2014-07-01 17:45:15 +0530114 this.apply_price_list();
Anand Doshif3096132013-05-21 19:35:06 +0530115 },
Anand Doshibd67e872014-04-11 16:51:27 +0530116
Nabin Haita7f757a2014-02-10 17:54:04 +0530117 price_list_rate: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530118 var item = frappe.get_doc(cdt, cdn);
Rushabh Mehta793ba6b2014-02-14 15:47:51 +0530119 frappe.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
Anand Doshibd67e872014-04-11 16:51:27 +0530120
mbauskara52472c2016-03-05 15:10:25 +0530121 // check if child doctype is Sales Order Item/Qutation Item and calculate the rate
122 if(in_list(["Quotation Item", "Sales Order Item", "Delivery Note Item", "Sales Invoice Item"]), cdt)
Rohit Waghchaure6087fe12016-04-09 14:31:09 +0530123 this.apply_pricing_rule_on_item(item);
mbauskara52472c2016-03-05 15:10:25 +0530124 else
125 item.rate = flt(item.price_list_rate * (1 - item.discount_percentage / 100.0),
126 precision("rate", item));
127
Anand Doshif3096132013-05-21 19:35:06 +0530128 this.calculate_taxes_and_totals();
129 },
Anand Doshibd67e872014-04-11 16:51:27 +0530130
Nabin Haita7f757a2014-02-10 17:54:04 +0530131 discount_percentage: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530132 var item = frappe.get_doc(cdt, cdn);
Nabin Haita7f757a2014-02-10 17:54:04 +0530133 if(!item.price_list_rate) {
134 item.discount_percentage = 0.0;
Anand Doshi923d41d2013-05-28 17:23:36 +0530135 } else {
Nabin Haita7f757a2014-02-10 17:54:04 +0530136 this.price_list_rate(doc, cdt, cdn);
Anand Doshi923d41d2013-05-28 17:23:36 +0530137 }
Saurabh5ada14b2016-02-26 18:02:55 +0530138 this.set_gross_profit(item);
Anand Doshif3096132013-05-21 19:35:06 +0530139 },
Anand Doshibd67e872014-04-11 16:51:27 +0530140
Anand Doshif3096132013-05-21 19:35:06 +0530141 commission_rate: function() {
142 this.calculate_commission();
143 refresh_field("total_commission");
144 },
Anand Doshibd67e872014-04-11 16:51:27 +0530145
Anand Doshif3096132013-05-21 19:35:06 +0530146 total_commission: function() {
Nabin Hait5690be12015-02-12 16:09:11 +0530147 if(this.frm.doc.base_net_total) {
148 frappe.model.round_floats_in(this.frm.doc, ["base_net_total", "total_commission"]);
Anand Doshibd67e872014-04-11 16:51:27 +0530149
Nabin Hait5690be12015-02-12 16:09:11 +0530150 if(this.frm.doc.base_net_total < this.frm.doc.total_commission) {
Pratik Vyasb52618c2014-04-14 16:25:30 +0530151 var msg = (__("[Error]") + " " +
152 __(frappe.meta.get_label(this.frm.doc.doctype, "total_commission",
Anand Doshibd67e872014-04-11 16:51:27 +0530153 this.frm.doc.name)) + " > " +
Nabin Hait5690be12015-02-12 16:09:11 +0530154 __(frappe.meta.get_label(this.frm.doc.doctype, "base_net_total", this.frm.doc.name)));
Anand Doshif3096132013-05-21 19:35:06 +0530155 msgprint(msg);
156 throw msg;
157 }
Anand Doshibd67e872014-04-11 16:51:27 +0530158
159 this.frm.set_value("commission_rate",
Nabin Hait5690be12015-02-12 16:09:11 +0530160 flt(this.frm.doc.total_commission * 100.0 / this.frm.doc.base_net_total));
Anand Doshif3096132013-05-21 19:35:06 +0530161 }
162 },
Anand Doshibd67e872014-04-11 16:51:27 +0530163
Anand Doshif3096132013-05-21 19:35:06 +0530164 allocated_percentage: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530165 var sales_person = frappe.get_doc(cdt, cdn);
Anand Doshibd67e872014-04-11 16:51:27 +0530166
Anand Doshif3096132013-05-21 19:35:06 +0530167 if(sales_person.allocated_percentage) {
168 sales_person.allocated_percentage = flt(sales_person.allocated_percentage,
169 precision("allocated_percentage", sales_person));
Nabin Hait5690be12015-02-12 16:09:11 +0530170 sales_person.allocated_amount = flt(this.frm.doc.base_net_total *
Anand Doshibd67e872014-04-11 16:51:27 +0530171 sales_person.allocated_percentage / 100.0,
Anand Doshif3096132013-05-21 19:35:06 +0530172 precision("allocated_amount", sales_person));
173
174 refresh_field(["allocated_percentage", "allocated_amount"], sales_person.name,
175 sales_person.parentfield);
176 }
177 },
Anand Doshibd67e872014-04-11 16:51:27 +0530178
Anand Doshifc777182013-05-27 19:29:07 +0530179 warehouse: function(doc, cdt, cdn) {
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530180 var me = this;
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530181 var item = frappe.get_doc(cdt, cdn);
Rushabh Mehtabe2ee182016-04-29 17:22:42 +0530182
Anand Doshi1dc95ed2013-07-23 13:36:38 +0530183 if(item.item_code && item.warehouse) {
Anand Doshi1fac2a92013-07-29 19:30:39 +0530184 return this.frm.call({
Kanchan Chauhanaf0d6372016-11-13 21:19:09 +0530185 method: "erpnext.stock.get_item_details.get_bin_details_and_serial_nos",
Anand Doshifc777182013-05-27 19:29:07 +0530186 child: item,
187 args: {
188 item_code: item.item_code,
Anand Doshi1dc95ed2013-07-23 13:36:38 +0530189 warehouse: item.warehouse,
Kanchan Chauhan5a980ac2017-02-10 14:27:11 +0530190 stock_qty: item.stock_qty,
Nabin Hait1d90b412016-12-24 10:42:23 +0530191 serial_no: item.serial_no || ""
Anand Doshifc777182013-05-27 19:29:07 +0530192 },
Saurabhd3135532016-02-25 18:59:20 +0530193 callback:function(r){
194 if (inList(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
195 me.batch_no(doc, cdt, cdn);
196 }
197 }
Anand Doshifc777182013-05-27 19:29:07 +0530198 });
199 }
200 },
Anand Doshibd67e872014-04-11 16:51:27 +0530201
Anand Doshi33fe8672013-08-02 12:39:10 +0530202 toggle_editable_price_list_rate: function() {
Nabin Haitdd38a262014-12-26 13:15:21 +0530203 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 +0530204 var editable_price_list_rate = cint(frappe.defaults.get_default("editable_price_list_rate"));
Anand Doshibd67e872014-04-11 16:51:27 +0530205
Anand Doshi33fe8672013-08-02 12:39:10 +0530206 if(df && editable_price_list_rate) {
207 df.read_only = 0;
208 }
209 },
Anand Doshibd67e872014-04-11 16:51:27 +0530210
Anand Doshif3096132013-05-21 19:35:06 +0530211 calculate_commission: function() {
Anand Doshi923d41d2013-05-28 17:23:36 +0530212 if(this.frm.fields_dict.commission_rate) {
213 if(this.frm.doc.commission_rate > 100) {
Pratik Vyasb52618c2014-04-14 16:25:30 +0530214 var msg = __(frappe.meta.get_label(this.frm.doc.doctype, "commission_rate", this.frm.doc.name)) +
215 " " + __("cannot be greater than 100");
Anand Doshi923d41d2013-05-28 17:23:36 +0530216 msgprint(msg);
217 throw msg;
218 }
Anand Doshibd67e872014-04-11 16:51:27 +0530219
Nabin Hait5690be12015-02-12 16:09:11 +0530220 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 +0530221 precision("total_commission"));
222 }
Anand Doshif3096132013-05-21 19:35:06 +0530223 },
Anand Doshibd67e872014-04-11 16:51:27 +0530224
Anand Doshif3096132013-05-21 19:35:06 +0530225 calculate_contribution: function() {
Anand Doshi2168e392013-05-23 19:25:08 +0530226 var me = this;
Rushabh Mehtaaa355af2014-03-26 18:24:30 +0530227 $.each(this.frm.doc.doctype.sales_team || [], function(i, sales_person) {
Rushabh Mehta793ba6b2014-02-14 15:47:51 +0530228 frappe.model.round_floats_in(sales_person);
Anand Doshif3096132013-05-21 19:35:06 +0530229 if(sales_person.allocated_percentage) {
230 sales_person.allocated_amount = flt(
Nabin Hait5690be12015-02-12 16:09:11 +0530231 me.frm.doc.base_net_total * sales_person.allocated_percentage / 100.0,
Anand Doshif3096132013-05-21 19:35:06 +0530232 precision("allocated_amount", sales_person));
233 }
234 });
235 },
Anand Doshibd67e872014-04-11 16:51:27 +0530236
Anand Doshicefccb92013-07-15 18:28:14 +0530237 shipping_rule: function() {
238 var me = this;
239 if(this.frm.doc.shipping_rule) {
Anand Doshi1fac2a92013-07-29 19:30:39 +0530240 return this.frm.call({
Anand Doshicefccb92013-07-15 18:28:14 +0530241 doc: this.frm.doc,
242 method: "apply_shipping_rule",
243 callback: function(r) {
244 if(!r.exc) {
245 me.calculate_taxes_and_totals();
246 }
247 }
248 })
249 }
250 },
Anand Doshibd67e872014-04-11 16:51:27 +0530251
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530252 batch_no: function(doc, cdt, cdn) {
253 var me = this;
254 var item = frappe.get_doc(cdt, cdn);
Nabin Hait2ed71ba2015-03-20 15:06:30 +0530255
Sambhaji Kolatea4fa96c2015-03-30 16:04:55 +0530256 if(item.warehouse && item.item_code && item.batch_no) {
Sambhaji Kolatefeff40a2015-03-11 11:50:28 +0530257 return this.frm.call({
258 method: "erpnext.stock.get_item_details.get_batch_qty",
259 child: item,
260 args: {
261 "batch_no": item.batch_no,
262 "warehouse": item.warehouse,
263 "item_code": item.item_code
264 },
265 "fieldname": "actual_batch_qty"
266 });
267 }
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530268 },
269
Anand Doshi2168e392013-05-23 19:25:08 +0530270 set_dynamic_labels: function() {
Anand Doshi61a2f682013-06-21 17:55:31 +0530271 this._super();
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530272 this.set_product_bundle_help(this.frm.doc);
Nabin Hait0b157552014-06-24 17:02:45 +0530273 },
274
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530275 set_product_bundle_help: function(doc) {
Nabin Hait0b157552014-06-24 17:02:45 +0530276 if(!cur_frm.fields_dict.packing_list) return;
Nabin Haite7d15362014-12-25 16:01:55 +0530277 if ((doc.packed_items || []).length) {
Nabin Hait0b157552014-06-24 17:02:45 +0530278 $(cur_frm.fields_dict.packing_list.row.wrapper).toggle(true);
279
280 if (inList(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
281 help_msg = "<div class='alert alert-warning'>" +
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530282 __("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 +0530283 "</div>";
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530284 frappe.meta.get_docfield(doc.doctype, 'product_bundle_help', doc.name).options = help_msg;
Nabin Hait0b157552014-06-24 17:02:45 +0530285 }
286 } else {
287 $(cur_frm.fields_dict.packing_list.row.wrapper).toggle(false);
288 if (inList(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530289 frappe.meta.get_docfield(doc.doctype, 'product_bundle_help', doc.name).options = '';
Nabin Hait0b157552014-06-24 17:02:45 +0530290 }
291 }
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530292 refresh_field('product_bundle_help');
Saurabheba7aa42015-12-16 09:57:59 +0530293 },
Anand Doshi01de9452016-01-26 16:22:50 +0530294
Saurabheba7aa42015-12-16 09:57:59 +0530295 make_payment_request: function() {
Saurabheba7aa42015-12-16 09:57:59 +0530296 frappe.call({
297 method:"erpnext.accounts.doctype.payment_request.payment_request.make_payment_request",
298 args: {
299 "dt": cur_frm.doc.doctype,
300 "dn": cur_frm.doc.name,
Saurabhb109ee92015-12-16 20:48:40 +0530301 "recipient_id": cur_frm.doc.contact_email
Saurabheba7aa42015-12-16 09:57:59 +0530302 },
303 callback: function(r) {
Saurabhcb98d9e2015-12-17 09:48:44 +0530304 if(!r.exc){
Saurabh3ba22672015-12-21 18:24:49 +0530305 var doc = frappe.model.sync(r.message);
Saurabh3ba22672015-12-21 18:24:49 +0530306 frappe.set_route("Form", r.message.doctype, r.message.name);
Saurabhcb98d9e2015-12-17 09:48:44 +0530307 }
Saurabheba7aa42015-12-16 09:57:59 +0530308 }
309 })
mbauskar1e9c1642016-01-18 16:21:25 +0530310 },
mbauskar1e428ae2016-01-19 19:52:22 +0530311
mbauskara52472c2016-03-05 15:10:25 +0530312 margin_rate_or_amount: function(doc, cdt, cdn) {
mbauskar1e9c1642016-01-18 16:21:25 +0530313 // calculated the revised total margin and rate on margin rate changes
314 item = locals[cdt][cdn];
Rohit Waghchaure6087fe12016-04-09 14:31:09 +0530315 this.apply_pricing_rule_on_item(item)
mbauskara52472c2016-03-05 15:10:25 +0530316 this.calculate_taxes_and_totals();
mbauskar1e9c1642016-01-18 16:21:25 +0530317 cur_frm.refresh_fields();
318 },
mbauskar1e428ae2016-01-19 19:52:22 +0530319
mbauskara52472c2016-03-05 15:10:25 +0530320 margin_type: function(doc, cdt, cdn){
mbauskar1e9c1642016-01-18 16:21:25 +0530321 // calculate the revised total margin and rate on margin type changes
322 item = locals[cdt][cdn];
Nabin Haite72c98d2017-05-24 09:01:44 +0530323 if(!item.margin_type) {
324 frappe.model.set_value(cdt, cdn, "margin_rate_or_amount", 0);
325 } else {
326 this.apply_pricing_rule_on_item(item, doc,cdt, cdn)
327 this.calculate_taxes_and_totals();
328 cur_frm.refresh_fields();
329 }
Nabin Haitcfc6bb12012-07-11 13:14:52 +0530330 }
Nabin Hait0b157552014-06-24 17:02:45 +0530331});
Anand Doshi43f087c2014-08-26 14:25:53 +0530332
Neil Trini Lasrado6e343e22016-03-09 17:02:59 +0530333frappe.ui.form.on(cur_frm.doctype,"project", function(frm) {
Nabin Hait10b155a2014-10-23 13:18:59 +0530334 if(in_list(["Delivery Note", "Sales Invoice"], frm.doc.doctype)) {
Rushabh Mehta532eedf2016-05-19 18:22:49 +0530335 if(frm.doc.project) {
336 frappe.call({
337 method:'erpnext.projects.doctype.project.project.get_cost_center_name' ,
338 args: { project: frm.doc.project },
339 callback: function(r, rt) {
340 if(!r.exc) {
341 $.each(frm.doc["items"] || [], function(i, row) {
342 if(r.message) {
343 frappe.model.set_value(row.doctype, row.name, "cost_center", r.message);
344 msgprint(__("Cost Center For Item with Item Code '"+row.item_name+"' has been Changed to "+ r.message));
345 }
346 })
347 }
Nabin Hait10b155a2014-10-23 13:18:59 +0530348 }
Rushabh Mehta532eedf2016-05-19 18:22:49 +0530349 })
350 }
Nabin Hait10b155a2014-10-23 13:18:59 +0530351 }
Kanchan Chauhanaf0d6372016-11-13 21:19:09 +0530352})