2015-03-03 09:25:30 +00:00
|
|
|
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
2014-01-02 06:17:23 +00:00
|
|
|
// License: GNU General Public License v3. See license.txt
|
|
|
|
|
2014-02-14 10:17:51 +00:00
|
|
|
frappe.provide("erpnext.utils");
|
2014-05-28 07:19:20 +00:00
|
|
|
erpnext.utils.get_party_details = function(frm, method, args, callback) {
|
2014-01-28 12:13:10 +00:00
|
|
|
if(!method) {
|
2014-02-03 10:44:56 +00:00
|
|
|
method = "erpnext.accounts.party.get_party_details";
|
2014-01-28 12:13:10 +00:00
|
|
|
}
|
|
|
|
if(!args) {
|
2015-10-19 11:02:24 +00:00
|
|
|
if(frm.doctype != "Purchase Order" && frm.doc.customer) {
|
2014-04-23 13:45:15 +00:00
|
|
|
args = {
|
2014-02-03 10:44:56 +00:00
|
|
|
party: frm.doc.customer,
|
|
|
|
party_type: "Customer",
|
2014-01-29 09:56:04 +00:00
|
|
|
price_list: frm.doc.selling_price_list
|
|
|
|
};
|
2014-04-23 13:45:15 +00:00
|
|
|
} else if(frm.doc.supplier) {
|
|
|
|
args = {
|
2014-02-03 10:44:56 +00:00
|
|
|
party: frm.doc.supplier,
|
|
|
|
party_type: "Supplier",
|
2014-01-29 09:56:04 +00:00
|
|
|
price_list: frm.doc.buying_price_list
|
|
|
|
};
|
2014-01-28 12:13:10 +00:00
|
|
|
}
|
2015-10-12 10:53:51 +00:00
|
|
|
|
|
|
|
if (args) {
|
2015-10-26 12:10:31 +00:00
|
|
|
args.posting_date = frm.doc.posting_date || frm.doc.transaction_date;
|
2015-10-12 10:53:51 +00:00
|
|
|
}
|
2014-01-28 12:13:10 +00:00
|
|
|
}
|
2014-04-23 13:45:15 +00:00
|
|
|
if(!args) return;
|
2015-10-23 10:40:56 +00:00
|
|
|
|
|
|
|
if(frappe.meta.get_docfield(frm.doc.doctype, "taxes")) {
|
|
|
|
if(!erpnext.utils.validate_mandatory(frm, "Posting/Transaction Date",
|
|
|
|
args.posting_date, args.party_type=="Customer" ? "customer": "supplier")) return;
|
|
|
|
}
|
|
|
|
|
2014-02-03 10:44:56 +00:00
|
|
|
args.currency = frm.doc.currency;
|
|
|
|
args.company = frm.doc.company;
|
2014-06-18 11:10:27 +00:00
|
|
|
args.doctype = frm.doc.doctype;
|
2014-02-14 10:17:51 +00:00
|
|
|
frappe.call({
|
2014-01-02 06:17:23 +00:00
|
|
|
method: method,
|
|
|
|
args: args,
|
|
|
|
callback: function(r) {
|
|
|
|
if(r.message) {
|
2014-01-28 12:13:10 +00:00
|
|
|
frm.updating_party_details = true;
|
2014-01-02 06:17:23 +00:00
|
|
|
frm.set_value(r.message);
|
2014-01-28 12:13:10 +00:00
|
|
|
frm.updating_party_details = false;
|
2014-05-30 06:13:00 +00:00
|
|
|
if(callback) callback();
|
2014-01-02 06:17:23 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2014-02-19 12:13:24 +00:00
|
|
|
erpnext.utils.get_address_display = function(frm, address_field, display_field) {
|
2014-01-28 12:13:10 +00:00
|
|
|
if(frm.updating_party_details) return;
|
2015-08-26 05:11:31 +00:00
|
|
|
|
2014-01-28 12:13:10 +00:00
|
|
|
if(!address_field) {
|
|
|
|
if(frm.doc.customer) {
|
|
|
|
address_field = "customer_address";
|
2014-02-19 12:13:24 +00:00
|
|
|
} else if(frm.doc.supplier) {
|
2014-01-28 12:13:10 +00:00
|
|
|
address_field = "supplier_address";
|
2014-02-19 12:13:24 +00:00
|
|
|
} else return;
|
2014-04-23 13:45:15 +00:00
|
|
|
}
|
2015-08-26 05:11:31 +00:00
|
|
|
|
2014-02-19 12:13:24 +00:00
|
|
|
if(!display_field) display_field = "address_display";
|
2014-01-29 14:21:36 +00:00
|
|
|
if(frm.doc[address_field]) {
|
2014-02-14 10:17:51 +00:00
|
|
|
frappe.call({
|
2014-01-29 14:21:36 +00:00
|
|
|
method: "erpnext.utilities.doctype.address.address.get_address_display",
|
2014-02-19 12:13:24 +00:00
|
|
|
args: {"address_dict": frm.doc[address_field] },
|
2014-01-29 14:21:36 +00:00
|
|
|
callback: function(r) {
|
2015-08-26 05:11:31 +00:00
|
|
|
if(r.message){
|
2014-02-19 12:13:24 +00:00
|
|
|
frm.set_value(display_field, r.message)
|
2015-08-26 05:11:31 +00:00
|
|
|
}
|
2015-10-23 10:40:56 +00:00
|
|
|
|
|
|
|
if(frappe.meta.get_docfield(frm.doc.doctype, "taxes")) {
|
|
|
|
if(!erpnext.utils.validate_mandatory(frm, "Customer/Supplier",
|
|
|
|
frm.doc.customer || frm.doc.supplier, address_field)) return;
|
|
|
|
|
|
|
|
if(!erpnext.utils.validate_mandatory(frm, "Posting/Transaction Date",
|
|
|
|
frm.doc.posting_date || frm.doc.transaction_date, address_field)) return;
|
|
|
|
} else return;
|
|
|
|
|
2015-08-26 05:11:31 +00:00
|
|
|
frappe.call({
|
|
|
|
method: "erpnext.accounts.party.set_taxes",
|
|
|
|
args: {
|
|
|
|
"party": frm.doc.customer || frm.doc.supplier,
|
|
|
|
"party_type": (frm.doc.customer ? "Customer" : "Supplier"),
|
|
|
|
"posting_date": frm.doc.posting_date || frm.doc.transaction_date,
|
|
|
|
"company": frm.doc.company,
|
|
|
|
"billing_address": ((frm.doc.customer) ? (frm.doc.customer_address) : (frm.doc.supplier_address)),
|
|
|
|
"shipping_address": frm.doc.shipping_address_name
|
|
|
|
},
|
|
|
|
callback: function(r) {
|
|
|
|
if(r.message){
|
|
|
|
frm.set_value("taxes_and_charges", r.message)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2014-01-29 14:21:36 +00:00
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
2014-01-02 06:17:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
erpnext.utils.get_contact_details = function(frm) {
|
2014-01-28 12:13:10 +00:00
|
|
|
if(frm.updating_party_details) return;
|
2014-04-23 13:45:15 +00:00
|
|
|
|
2014-02-19 12:13:24 +00:00
|
|
|
if(frm.doc["contact_person"]) {
|
2014-02-14 10:17:51 +00:00
|
|
|
frappe.call({
|
2014-01-29 14:21:36 +00:00
|
|
|
method: "erpnext.utilities.doctype.contact.contact.get_contact_details",
|
|
|
|
args: {contact: frm.doc.contact_person },
|
|
|
|
callback: function(r) {
|
|
|
|
if(r.message)
|
|
|
|
frm.set_value(r.message);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
2014-04-23 13:45:15 +00:00
|
|
|
}
|
2015-10-23 10:40:56 +00:00
|
|
|
|
|
|
|
erpnext.utils.validate_mandatory = function(frm, label, value, trigger_on) {
|
|
|
|
if(!value) {
|
|
|
|
frm.doc[trigger_on] = "";
|
|
|
|
refresh_field(trigger_on);
|
|
|
|
frappe.msgprint(__("Please enter {0} first", [label]));
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|