Make pricing rule from Supplier and Customer Doc (#15533)
* Make pricing rule from Supplier and Customer Doc * Make sure the "+" button also works the same way as the "Make" button
This commit is contained in:
@@ -116,6 +116,18 @@ frappe.ui.form.on('Pricing Rule', {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onload: function(frm) {
|
||||||
|
if(frm.doc.__islocal && !frm.doc.applicable_for && (frm.doc.customer || frm.doc.supplier)) {
|
||||||
|
if(frm.doc.customer) {
|
||||||
|
frm.doc.applicable_for = "Customer";
|
||||||
|
frm.doc.selling = 1
|
||||||
|
} else {
|
||||||
|
frm.doc.applicable_for = "Supplier";
|
||||||
|
frm.doc.buying = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
refresh: function(frm) {
|
refresh: function(frm) {
|
||||||
var help_content =
|
var help_content =
|
||||||
`<table class="table table-bordered" style="background-color: #f9f9f9;">
|
`<table class="table table-bordered" style="background-color: #f9f9f9;">
|
||||||
|
|||||||
@@ -384,3 +384,13 @@ def set_transaction_type(args):
|
|||||||
args.transaction_type = "selling"
|
args.transaction_type = "selling"
|
||||||
else:
|
else:
|
||||||
args.transaction_type = "buying"
|
args.transaction_type = "buying"
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def make_pricing_rule(doctype, docname):
|
||||||
|
doc = frappe.new_doc("Pricing Rule")
|
||||||
|
doc.applicable_for = doctype
|
||||||
|
doc.set(frappe.scrub(doctype), docname)
|
||||||
|
doc.selling = 1 if doctype == "Customer" else 0
|
||||||
|
doc.buying = 1 if doctype == "Supplier" else 0
|
||||||
|
|
||||||
|
return doc
|
||||||
@@ -49,6 +49,10 @@ frappe.ui.form.on("Supplier", {
|
|||||||
erpnext.utils.make_bank_account(frm.doc.doctype, frm.doc.name);
|
erpnext.utils.make_bank_account(frm.doc.doctype, frm.doc.name);
|
||||||
}, __("Make"));
|
}, __("Make"));
|
||||||
|
|
||||||
|
frm.add_custom_button(__('Pricing Rule'), function () {
|
||||||
|
erpnext.utils.make_pricing_rule(frm.doc.doctype, frm.doc.name);
|
||||||
|
}, __("Make"));
|
||||||
|
|
||||||
// indicators
|
// indicators
|
||||||
erpnext.utils.set_party_dashboard_indicators(frm);
|
erpnext.utils.set_party_dashboard_indicators(frm);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ def get_data():
|
|||||||
{
|
{
|
||||||
'label': _('Orders'),
|
'label': _('Orders'),
|
||||||
'items': ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice']
|
'items': ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'label': _('Pricing'),
|
||||||
|
'items': ['Pricing Rule']
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -173,6 +173,20 @@ $.extend(erpnext.utils, {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
make_pricing_rule: function(doctype, docname) {
|
||||||
|
frappe.call({
|
||||||
|
method: "erpnext.accounts.doctype.pricing_rule.pricing_rule.make_pricing_rule",
|
||||||
|
args: {
|
||||||
|
doctype: doctype,
|
||||||
|
docname: docname
|
||||||
|
},
|
||||||
|
callback: function(r) {
|
||||||
|
var doclist = frappe.model.sync(r.message);
|
||||||
|
frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the first row of a given child table is empty
|
* Checks if the first row of a given child table is empty
|
||||||
* @param child_table - Child table Doctype
|
* @param child_table - Child table Doctype
|
||||||
|
|||||||
@@ -106,6 +106,10 @@ frappe.ui.form.on("Customer", {
|
|||||||
frappe.set_route('query-report', 'Accounts Receivable', {customer:frm.doc.name});
|
frappe.set_route('query-report', 'Accounts Receivable', {customer:frm.doc.name});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
frm.add_custom_button(__('Pricing Rule'), function () {
|
||||||
|
erpnext.utils.make_pricing_rule(frm.doc.doctype, frm.doc.name);
|
||||||
|
}, __("Make"));
|
||||||
|
|
||||||
// indicator
|
// indicator
|
||||||
erpnext.utils.set_party_dashboard_indicators(frm);
|
erpnext.utils.set_party_dashboard_indicators(frm);
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ def get_data():
|
|||||||
{
|
{
|
||||||
'label': _('Projects'),
|
'label': _('Projects'),
|
||||||
'items': ['Project']
|
'items': ['Project']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'label': _('Pricing'),
|
||||||
|
'items': ['Pricing Rule']
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user