blob: 88ef61e29d3f7ad5c4b77782277036b9ddae977a [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 Mehta009378e2015-05-06 22:59:00 +05306{% include 'accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.js' %}
Nabin Hait613d0812015-02-23 11:58:15 +05307
Rushabh Mehta793ba6b2014-02-14 15:47:51 +05308frappe.provide("erpnext.selling");
Nabin Haitb4a3dfa2015-01-22 17:13:13 +05309frappe.require("assets/erpnext/js/controllers/transaction.js");
Rushabh Mehtab09d9da2014-01-02 11:47:23 +053010
Rushabh Mehtae10cf022014-09-12 13:09:41 +053011cur_frm.email_field = "contact_email";
12
Anand Doshi3543f302013-05-24 19:25:01 +053013erpnext.selling.SellingController = erpnext.TransactionController.extend({
Anand Doshi9b496142013-07-11 19:13:58 +053014 onload: function() {
15 this._super();
Anand Doshi9b496142013-07-11 19:13:58 +053016 this.setup_queries();
17 },
Anand Doshibd67e872014-04-11 16:51:27 +053018
Anand Doshi9b496142013-07-11 19:13:58 +053019 setup_queries: function() {
Anand Doshi99100a42013-07-04 17:13:53 +053020 var me = this;
Anand Doshibd67e872014-04-11 16:51:27 +053021
Anand Doshif3096132013-05-21 19:35:06 +053022 this.frm.add_fetch("sales_partner", "commission_rate", "commission_rate");
Anand Doshibd67e872014-04-11 16:51:27 +053023
24 $.each([["customer_address", "customer_filter"],
Anand Doshid5d39ac2013-07-29 13:28:37 +053025 ["shipping_address_name", "customer_filter"],
Anand Doshibd67e872014-04-11 16:51:27 +053026 ["contact_person", "customer_filter"],
27 ["customer", "customer"],
28 ["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
Akhilesh Darjee4f721562014-01-29 16:31:38 +053034 if(this.frm.fields_dict.taxes_and_charges) {
35 this.frm.set_query("taxes_and_charges", function() {
Saurabhf52dc072013-07-10 13:07:49 +053036 return {
37 filters: [
Rushabh Mehtaab1ed012015-05-08 11:08:48 +053038 ['Sales Taxes and Charges Template', 'company', '=', me.frm.doc.company],
39 ['Sales Taxes and Charges Template', 'docstatus', '!=', 2]
Saurabhf52dc072013-07-10 13:07:49 +053040 ]
41 }
Anand Doshi99100a42013-07-04 17:13:53 +053042 });
43 }
Anand Doshi99100a42013-07-04 17:13:53 +053044
Rushabh Mehta4a404e92013-08-09 18:11:35 +053045 if(this.frm.fields_dict.selling_price_list) {
46 this.frm.set_query("selling_price_list", function() {
Nabin Haitdc15b4f2014-01-20 16:48:49 +053047 return { filters: { selling: 1 } };
Anand Doshi720a01a2013-07-26 11:32:02 +053048 });
Anand Doshi720a01a2013-07-26 11:32:02 +053049 }
Anand Doshibd67e872014-04-11 16:51:27 +053050
Nabin Haitdd38a262014-12-26 13:15:21 +053051 if(!this.frm.fields_dict["items"]) {
Anand Doshi99100a42013-07-04 17:13:53 +053052 return;
53 }
Anand Doshibd67e872014-04-11 16:51:27 +053054
Nabin Haitdd38a262014-12-26 13:15:21 +053055 if(this.frm.fields_dict["items"].grid.get_field('item_code')) {
56 this.frm.set_query("item_code", "items", function() {
Anand Doshi9b496142013-07-11 19:13:58 +053057 return {
Rushabh Mehta6de403f2013-12-13 14:10:14 +053058 query: "erpnext.controllers.queries.item_query",
Anand Doshi9b496142013-07-11 19:13:58 +053059 filters: (me.frm.doc.order_type === "Maintenance" ?
60 {'is_service_item': 'Yes'}:
61 {'is_sales_item': 'Yes' })
62 }
Anand Doshi99100a42013-07-04 17:13:53 +053063 });
64 }
Anand Doshibd67e872014-04-11 16:51:27 +053065
Nabin Haitdd38a262014-12-26 13:15:21 +053066 if(this.frm.fields_dict["items"].grid.get_field('batch_no')) {
67 this.frm.set_query("batch_no", "items", function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +053068 var item = frappe.get_doc(cdt, cdn);
Anand Doshi99100a42013-07-04 17:13:53 +053069 if(!item.item_code) {
Pratik Vyasb52618c2014-04-14 16:25:30 +053070 frappe.throw(__("Please enter Item Code to get batch no"));
Anand Doshi99100a42013-07-04 17:13:53 +053071 } else {
Nabin Haitd1fd1e22013-10-18 12:29:11 +053072 filters = {
73 'item_code': item.item_code,
Neil Trini Lasradoebb60f52015-07-08 14:36:09 +053074 'posting_date': me.frm.doc.posting_date || nowdate(),
Nabin Haitd1fd1e22013-10-18 12:29:11 +053075 }
76 if(item.warehouse) filters["warehouse"] = item.warehouse
Anand Doshibd67e872014-04-11 16:51:27 +053077
Nabin Haitd1fd1e22013-10-18 12:29:11 +053078 return {
Akhilesh Darjee4f721562014-01-29 16:31:38 +053079 query : "erpnext.controllers.queries.get_batch_no",
Nabin Haitd1fd1e22013-10-18 12:29:11 +053080 filters: filters
Anand Doshi99100a42013-07-04 17:13:53 +053081 }
82 }
83 });
84 }
Anand Doshibd67e872014-04-11 16:51:27 +053085
Anand Doshied698922013-07-23 15:16:50 +053086 if(this.frm.fields_dict.sales_team && this.frm.fields_dict.sales_team.grid.get_field("sales_person")) {
Anand Doshid5d39ac2013-07-29 13:28:37 +053087 this.frm.set_query("sales_person", "sales_team", erpnext.queries.not_a_group_filter);
Anand Doshied698922013-07-23 15:16:50 +053088 }
Anand Doshi1dde46a2013-05-15 21:15:57 +053089 },
Anand Doshibd67e872014-04-11 16:51:27 +053090
Anand Doshic4a54fe2013-08-01 18:19:51 +053091 refresh: function() {
92 this._super();
Anand Doshibd67e872014-04-11 16:51:27 +053093 this.frm.toggle_display("customer_name",
Akhilesh Darjee5ce1b8b2013-12-09 16:29:04 +053094 (this.frm.doc.customer_name && this.frm.doc.customer_name!==this.frm.doc.customer));
Nabin Haite7d15362014-12-25 16:01:55 +053095 if(this.frm.fields_dict.packed_items) {
96 var packing_list_exists = (this.frm.doc.packed_items || []).length;
Anand Doshic4a54fe2013-08-01 18:19:51 +053097 this.frm.toggle_display("packing_list", packing_list_exists ? true : false);
98 }
Nabin Hait2029ea92015-04-16 17:55:35 +053099 this.toggle_editable_price_list_rate();
Rushabh Mehta8aded132013-07-04 12:50:52 +0530100 },
Anand Doshibd67e872014-04-11 16:51:27 +0530101
Anand Doshi3543f302013-05-24 19:25:01 +0530102 customer: function() {
Nabin Haita3dd72a2014-05-28 12:49:20 +0530103 var me = this;
104 erpnext.utils.get_party_details(this.frm, null, null, function(){me.apply_pricing_rule()});
Anand Doshi3543f302013-05-24 19:25:01 +0530105 },
Anand Doshibd67e872014-04-11 16:51:27 +0530106
Nabin Haita279d782013-07-15 13:04:33 +0530107 customer_address: function() {
Rushabh Mehtab09d9da2014-01-02 11:47:23 +0530108 erpnext.utils.get_address_display(this.frm, "customer_address");
Nabin Haita279d782013-07-15 13:04:33 +0530109 },
Anand Doshibd67e872014-04-11 16:51:27 +0530110
Nabin Hait9d1f0772014-02-19 17:43:24 +0530111 shipping_address_name: function() {
112 erpnext.utils.get_address_display(this.frm, "shipping_address_name", "shipping_address");
113 },
Anand Doshibd67e872014-04-11 16:51:27 +0530114
Nabin Haita279d782013-07-15 13:04:33 +0530115 contact_person: function() {
Rushabh Mehtab09d9da2014-01-02 11:47:23 +0530116 erpnext.utils.get_contact_details(this.frm);
Nabin Haita279d782013-07-15 13:04:33 +0530117 },
Anand Doshibd67e872014-04-11 16:51:27 +0530118
Nabin Haita3dd72a2014-05-28 12:49:20 +0530119 sales_partner: function() {
120 this.apply_pricing_rule();
121 },
122
123 campaign: function() {
124 this.apply_pricing_rule();
125 },
126
Rushabh Mehta4a404e92013-08-09 18:11:35 +0530127 selling_price_list: function() {
Anand Doshidffec8f2014-07-01 17:45:15 +0530128 this.apply_price_list();
Anand Doshif3096132013-05-21 19:35:06 +0530129 },
Anand Doshibd67e872014-04-11 16:51:27 +0530130
Nabin Haita7f757a2014-02-10 17:54:04 +0530131 price_list_rate: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530132 var item = frappe.get_doc(cdt, cdn);
Rushabh Mehta793ba6b2014-02-14 15:47:51 +0530133 frappe.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
Anand Doshibd67e872014-04-11 16:51:27 +0530134
Nabin Hait7979f7e2014-02-10 18:26:49 +0530135 item.rate = flt(item.price_list_rate * (1 - item.discount_percentage / 100.0),
136 precision("rate", item));
Anand Doshibd67e872014-04-11 16:51:27 +0530137
Anand Doshif3096132013-05-21 19:35:06 +0530138 this.calculate_taxes_and_totals();
139 },
Anand Doshibd67e872014-04-11 16:51:27 +0530140
Nabin Haita7f757a2014-02-10 17:54:04 +0530141 discount_percentage: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530142 var item = frappe.get_doc(cdt, cdn);
Nabin Haita7f757a2014-02-10 17:54:04 +0530143 if(!item.price_list_rate) {
144 item.discount_percentage = 0.0;
Anand Doshi923d41d2013-05-28 17:23:36 +0530145 } else {
Nabin Haita7f757a2014-02-10 17:54:04 +0530146 this.price_list_rate(doc, cdt, cdn);
Anand Doshi923d41d2013-05-28 17:23:36 +0530147 }
Anand Doshif3096132013-05-21 19:35:06 +0530148 },
Anand Doshibd67e872014-04-11 16:51:27 +0530149
Anand Doshif3096132013-05-21 19:35:06 +0530150 commission_rate: function() {
151 this.calculate_commission();
152 refresh_field("total_commission");
153 },
Anand Doshibd67e872014-04-11 16:51:27 +0530154
Anand Doshif3096132013-05-21 19:35:06 +0530155 total_commission: function() {
Nabin Hait5690be12015-02-12 16:09:11 +0530156 if(this.frm.doc.base_net_total) {
157 frappe.model.round_floats_in(this.frm.doc, ["base_net_total", "total_commission"]);
Anand Doshibd67e872014-04-11 16:51:27 +0530158
Nabin Hait5690be12015-02-12 16:09:11 +0530159 if(this.frm.doc.base_net_total < this.frm.doc.total_commission) {
Pratik Vyasb52618c2014-04-14 16:25:30 +0530160 var msg = (__("[Error]") + " " +
161 __(frappe.meta.get_label(this.frm.doc.doctype, "total_commission",
Anand Doshibd67e872014-04-11 16:51:27 +0530162 this.frm.doc.name)) + " > " +
Nabin Hait5690be12015-02-12 16:09:11 +0530163 __(frappe.meta.get_label(this.frm.doc.doctype, "base_net_total", this.frm.doc.name)));
Anand Doshif3096132013-05-21 19:35:06 +0530164 msgprint(msg);
165 throw msg;
166 }
Anand Doshibd67e872014-04-11 16:51:27 +0530167
168 this.frm.set_value("commission_rate",
Nabin Hait5690be12015-02-12 16:09:11 +0530169 flt(this.frm.doc.total_commission * 100.0 / this.frm.doc.base_net_total));
Anand Doshif3096132013-05-21 19:35:06 +0530170 }
171 },
Anand Doshibd67e872014-04-11 16:51:27 +0530172
Anand Doshif3096132013-05-21 19:35:06 +0530173 allocated_percentage: function(doc, cdt, cdn) {
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530174 var sales_person = frappe.get_doc(cdt, cdn);
Anand Doshibd67e872014-04-11 16:51:27 +0530175
Anand Doshif3096132013-05-21 19:35:06 +0530176 if(sales_person.allocated_percentage) {
177 sales_person.allocated_percentage = flt(sales_person.allocated_percentage,
178 precision("allocated_percentage", sales_person));
Nabin Hait5690be12015-02-12 16:09:11 +0530179 sales_person.allocated_amount = flt(this.frm.doc.base_net_total *
Anand Doshibd67e872014-04-11 16:51:27 +0530180 sales_person.allocated_percentage / 100.0,
Anand Doshif3096132013-05-21 19:35:06 +0530181 precision("allocated_amount", sales_person));
182
183 refresh_field(["allocated_percentage", "allocated_amount"], sales_person.name,
184 sales_person.parentfield);
185 }
186 },
Anand Doshibd67e872014-04-11 16:51:27 +0530187
Anand Doshifc777182013-05-27 19:29:07 +0530188 warehouse: function(doc, cdt, cdn) {
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530189 var me = this;
190 this.batch_no(doc, cdt, cdn);
Rushabh Mehta66d52b52014-03-27 14:17:33 +0530191 var item = frappe.get_doc(cdt, cdn);
Anand Doshi1dc95ed2013-07-23 13:36:38 +0530192 if(item.item_code && item.warehouse) {
Anand Doshi1fac2a92013-07-29 19:30:39 +0530193 return this.frm.call({
Nabin Hait0984f222014-05-30 19:10:12 +0530194 method: "erpnext.stock.get_item_details.get_available_qty",
Anand Doshifc777182013-05-27 19:29:07 +0530195 child: item,
196 args: {
197 item_code: item.item_code,
Anand Doshi1dc95ed2013-07-23 13:36:38 +0530198 warehouse: item.warehouse,
Anand Doshifc777182013-05-27 19:29:07 +0530199 },
200 });
201 }
202 },
Anand Doshibd67e872014-04-11 16:51:27 +0530203
Anand Doshi33fe8672013-08-02 12:39:10 +0530204 toggle_editable_price_list_rate: function() {
Nabin Haitdd38a262014-12-26 13:15:21 +0530205 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 +0530206 var editable_price_list_rate = cint(frappe.defaults.get_default("editable_price_list_rate"));
Anand Doshibd67e872014-04-11 16:51:27 +0530207
Anand Doshi33fe8672013-08-02 12:39:10 +0530208 if(df && editable_price_list_rate) {
209 df.read_only = 0;
210 }
211 },
Anand Doshibd67e872014-04-11 16:51:27 +0530212
Anand Doshi652bc072014-04-16 15:21:46 +0530213 calculate_outstanding_amount: function(update_paid_amount) {
Anand Doshibd67e872014-04-11 16:51:27 +0530214 // NOTE:
Akhilesh Darjee38e8f982013-09-05 12:59:33 +0530215 // paid_amount and write_off_amount is only for POS Invoice
Anand Doshi923d41d2013-05-28 17:23:36 +0530216 // total_advance is only for non POS Invoice
Anand Doshi29ea5d02013-07-05 17:23:14 +0530217 if(this.frm.doc.doctype == "Sales Invoice" && this.frm.doc.docstatus==0) {
Nabin Hait5690be12015-02-12 16:09:11 +0530218 frappe.model.round_floats_in(this.frm.doc, ["base_grand_total", "total_advance", "write_off_amount",
Nabin Hait54106802014-03-13 17:26:41 +0530219 "paid_amount"]);
Nabin Hait5690be12015-02-12 16:09:11 +0530220 var total_amount_to_pay = this.frm.doc.base_grand_total - this.frm.doc.write_off_amount
Nabin Hait54106802014-03-13 17:26:41 +0530221 - this.frm.doc.total_advance;
Nabin Hait0c9d4222014-03-25 19:35:41 +0530222 if(this.frm.doc.is_pos) {
Anand Doshi652bc072014-04-16 15:21:46 +0530223 if(!this.frm.doc.paid_amount || update_paid_amount===undefined || update_paid_amount) {
224 this.frm.doc.paid_amount = flt(total_amount_to_pay);
Anand Doshi50d7e8c2015-01-06 17:14:13 +0530225 this.frm.refresh_field("paid_amount");
Anand Doshi652bc072014-04-16 15:21:46 +0530226 }
Nabin Hait0c9d4222014-03-25 19:35:41 +0530227 } else {
228 this.frm.doc.paid_amount = 0
Anand Doshi50d7e8c2015-01-06 17:14:13 +0530229 this.frm.refresh_field("paid_amount");
Nabin Hait0c9d4222014-03-25 19:35:41 +0530230 }
Nabin Hait482ffac2014-03-13 16:32:43 +0530231
Anand Doshibd67e872014-04-11 16:51:27 +0530232 this.frm.set_value("outstanding_amount", flt(total_amount_to_pay
Nabin Hait54106802014-03-13 17:26:41 +0530233 - this.frm.doc.paid_amount, precision("outstanding_amount")));
Anand Doshifc777182013-05-27 19:29:07 +0530234 }
235 },
Anand Doshibd67e872014-04-11 16:51:27 +0530236
Anand Doshif3096132013-05-21 19:35:06 +0530237 calculate_commission: function() {
Anand Doshi923d41d2013-05-28 17:23:36 +0530238 if(this.frm.fields_dict.commission_rate) {
239 if(this.frm.doc.commission_rate > 100) {
Pratik Vyasb52618c2014-04-14 16:25:30 +0530240 var msg = __(frappe.meta.get_label(this.frm.doc.doctype, "commission_rate", this.frm.doc.name)) +
241 " " + __("cannot be greater than 100");
Anand Doshi923d41d2013-05-28 17:23:36 +0530242 msgprint(msg);
243 throw msg;
244 }
Anand Doshibd67e872014-04-11 16:51:27 +0530245
Nabin Hait5690be12015-02-12 16:09:11 +0530246 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 +0530247 precision("total_commission"));
248 }
Anand Doshif3096132013-05-21 19:35:06 +0530249 },
Anand Doshibd67e872014-04-11 16:51:27 +0530250
Anand Doshif3096132013-05-21 19:35:06 +0530251 calculate_contribution: function() {
Anand Doshi2168e392013-05-23 19:25:08 +0530252 var me = this;
Rushabh Mehtaaa355af2014-03-26 18:24:30 +0530253 $.each(this.frm.doc.doctype.sales_team || [], function(i, sales_person) {
Rushabh Mehta793ba6b2014-02-14 15:47:51 +0530254 frappe.model.round_floats_in(sales_person);
Anand Doshif3096132013-05-21 19:35:06 +0530255 if(sales_person.allocated_percentage) {
256 sales_person.allocated_amount = flt(
Nabin Hait5690be12015-02-12 16:09:11 +0530257 me.frm.doc.base_net_total * sales_person.allocated_percentage / 100.0,
Anand Doshif3096132013-05-21 19:35:06 +0530258 precision("allocated_amount", sales_person));
259 }
260 });
261 },
Anand Doshibd67e872014-04-11 16:51:27 +0530262
Anand Doshicefccb92013-07-15 18:28:14 +0530263 shipping_rule: function() {
264 var me = this;
265 if(this.frm.doc.shipping_rule) {
Anand Doshi1fac2a92013-07-29 19:30:39 +0530266 return this.frm.call({
Anand Doshicefccb92013-07-15 18:28:14 +0530267 doc: this.frm.doc,
268 method: "apply_shipping_rule",
269 callback: function(r) {
270 if(!r.exc) {
271 me.calculate_taxes_and_totals();
272 }
273 }
274 })
275 }
276 },
Anand Doshibd67e872014-04-11 16:51:27 +0530277
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530278 batch_no: function(doc, cdt, cdn) {
279 var me = this;
280 var item = frappe.get_doc(cdt, cdn);
Nabin Hait2ed71ba2015-03-20 15:06:30 +0530281
Sambhaji Kolatea4fa96c2015-03-30 16:04:55 +0530282 if(item.warehouse && item.item_code && item.batch_no) {
Sambhaji Kolatefeff40a2015-03-11 11:50:28 +0530283 return this.frm.call({
284 method: "erpnext.stock.get_item_details.get_batch_qty",
285 child: item,
286 args: {
287 "batch_no": item.batch_no,
288 "warehouse": item.warehouse,
289 "item_code": item.item_code
290 },
291 "fieldname": "actual_batch_qty"
292 });
293 }
Sambhaji Kolate98dbccd2015-03-10 15:04:28 +0530294 },
295
Anand Doshi2168e392013-05-23 19:25:08 +0530296 set_dynamic_labels: function() {
Anand Doshi61a2f682013-06-21 17:55:31 +0530297 this._super();
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530298 this.set_product_bundle_help(this.frm.doc);
Nabin Hait0b157552014-06-24 17:02:45 +0530299 },
300
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530301 set_product_bundle_help: function(doc) {
Nabin Hait0b157552014-06-24 17:02:45 +0530302 if(!cur_frm.fields_dict.packing_list) return;
Nabin Haite7d15362014-12-25 16:01:55 +0530303 if ((doc.packed_items || []).length) {
Nabin Hait0b157552014-06-24 17:02:45 +0530304 $(cur_frm.fields_dict.packing_list.row.wrapper).toggle(true);
305
306 if (inList(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
307 help_msg = "<div class='alert alert-warning'>" +
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530308 __("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 +0530309 "</div>";
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530310 frappe.meta.get_docfield(doc.doctype, 'product_bundle_help', doc.name).options = help_msg;
Nabin Hait0b157552014-06-24 17:02:45 +0530311 }
312 } else {
313 $(cur_frm.fields_dict.packing_list.row.wrapper).toggle(false);
314 if (inList(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530315 frappe.meta.get_docfield(doc.doctype, 'product_bundle_help', doc.name).options = '';
Nabin Hait0b157552014-06-24 17:02:45 +0530316 }
317 }
Neil Trini Lasradoed8cecb2015-07-07 13:59:23 +0530318 refresh_field('product_bundle_help');
Nabin Haitcfc6bb12012-07-11 13:14:52 +0530319 }
Nabin Hait0b157552014-06-24 17:02:45 +0530320});
Anand Doshi43f087c2014-08-26 14:25:53 +0530321
322frappe.ui.form.on(cur_frm.doctype,"project_name", function(frm) {
Nabin Hait10b155a2014-10-23 13:18:59 +0530323 if(in_list(["Delivery Note", "Sales Invoice"], frm.doc.doctype)) {
324 frappe.call({
325 method:'erpnext.projects.doctype.project.project.get_cost_center_name' ,
326 args: { project_name: frm.doc.project_name },
327 callback: function(r, rt) {
328 if(!r.exc) {
Nabin Haitdd38a262014-12-26 13:15:21 +0530329 $.each(frm.doc["items"] || [], function(i, row) {
Neil Trini Lasrado6fc28212014-10-28 14:36:26 +0530330 frappe.model.set_value(row.doctype, row.name, "cost_center", r.message);
331 msgprint(__("Cost Center For Item with Item Code '"+row.item_name+"' has been Changed to "+ r.message));
Nabin Hait10b155a2014-10-23 13:18:59 +0530332 })
333 }
Anand Doshi43f087c2014-08-26 14:25:53 +0530334 }
Nabin Hait10b155a2014-10-23 13:18:59 +0530335 })
336 }
Anand Doshi43f087c2014-08-26 14:25:53 +0530337})