Option to disable fetching last purchase details in Purchase Order (#11573)
* add check for enable/disable last purchase details in Purchase Order * fix tabs
This commit is contained in:
parent
50616da905
commit
e418a5bdc1
@ -182,6 +182,38 @@
|
|||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"allow_bulk_edit": 0,
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"columns": 0,
|
||||||
|
"default": "0",
|
||||||
|
"description": "If enabled, last purchase details of items will not be fetched from previous purchase order or purchase receipt",
|
||||||
|
"fieldname": "disable_fetch_last_purchase_rate",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"ignore_xss_filter": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_global_search": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"in_standard_filter": 0,
|
||||||
|
"label": "Disable Fetching Last Purchase Details in Purchase Order",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"remember_last_selected_value": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"unique": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide_heading": 0,
|
"hide_heading": 0,
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
import json
|
import json
|
||||||
from frappe.utils import cstr, flt
|
from frappe.utils import cstr, flt, cint
|
||||||
from frappe import msgprint, _
|
from frappe import msgprint, _
|
||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
from erpnext.controllers.buying_controller import BuyingController
|
from erpnext.controllers.buying_controller import BuyingController
|
||||||
@ -105,6 +105,7 @@ class PurchaseOrder(BuyingController):
|
|||||||
def get_last_purchase_rate(self):
|
def get_last_purchase_rate(self):
|
||||||
"""get last purchase rates for all items"""
|
"""get last purchase rates for all items"""
|
||||||
|
|
||||||
|
if not cint(frappe.db.get_single_value("Buying Settings", "disable_fetch_last_purchase_rate")):
|
||||||
conversion_rate = flt(self.get('conversion_rate')) or 1.0
|
conversion_rate = flt(self.get('conversion_rate')) or 1.0
|
||||||
|
|
||||||
for d in self.get("items"):
|
for d in self.get("items"):
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
QUnit.module('Buying');
|
QUnit.module('Buying');
|
||||||
|
|
||||||
QUnit.test("test: purchase order with last purchase rate", function(assert) {
|
QUnit.test("test: purchase order with last purchase rate", function(assert) {
|
||||||
assert.expect(5);
|
assert.expect(9);
|
||||||
let done = assert.async();
|
let done = assert.async();
|
||||||
|
|
||||||
frappe.run_serially([
|
frappe.run_serially([
|
||||||
@ -77,9 +77,11 @@ QUnit.test("test: purchase order with last purchase rate", function(assert) {
|
|||||||
// Get the last purchase rate of items
|
// Get the last purchase rate of items
|
||||||
() => {
|
() => {
|
||||||
assert.ok(cur_frm.doc.items[0].last_purchase_rate == 800, "Last purchase rate of item 1 correct");
|
assert.ok(cur_frm.doc.items[0].last_purchase_rate == 800, "Last purchase rate of item 1 correct");
|
||||||
|
assert.ok(cur_frm.doc.items[1].last_purchase_rate != 0);
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
assert.ok(cur_frm.doc.items[1].last_purchase_rate == 400, "Last purchase rate of item 2 correct");
|
assert.ok(cur_frm.doc.items[1].last_purchase_rate == 400, "Last purchase rate of item 2 correct");
|
||||||
|
assert.ok(cur_frm.doc.items[1].last_purchase_rate != 0);
|
||||||
},
|
},
|
||||||
|
|
||||||
() => frappe.tests.click_button('Submit'),
|
() => frappe.tests.click_button('Submit'),
|
||||||
@ -94,6 +96,59 @@ QUnit.test("test: purchase order with last purchase rate", function(assert) {
|
|||||||
assert.ok(cur_frm.doc.status == 'To Receive and Bill', "Submitted successfully");
|
assert.ok(cur_frm.doc.status == 'To Receive and Bill', "Submitted successfully");
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// enable allow_last_purchase_rate
|
||||||
|
() => frappe.tests.make('Buying Settings', [
|
||||||
|
// values to be set
|
||||||
|
{"disable_fetch_last_purchase_rate": 1}
|
||||||
|
]),
|
||||||
|
|
||||||
|
() => {
|
||||||
|
return frappe.tests.make('Purchase Order', [
|
||||||
|
{supplier: 'Test Supplier'},
|
||||||
|
{is_subcontracted: 'No'},
|
||||||
|
{currency: 'INR'},
|
||||||
|
{items: [
|
||||||
|
[
|
||||||
|
{"item_code": 'Test Product 4'},
|
||||||
|
{"schedule_date": frappe.datetime.add_days(frappe.datetime.now_date(), 1)},
|
||||||
|
{"expected_delivery_date": frappe.datetime.add_days(frappe.datetime.now_date(), 5)},
|
||||||
|
{"qty": 1},
|
||||||
|
{"rate": 800},
|
||||||
|
{"warehouse": 'Stores - '+frappe.get_abbr(frappe.defaults.get_default("Company"))}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{"item_code": 'Test Product 1'},
|
||||||
|
{"schedule_date": frappe.datetime.add_days(frappe.datetime.now_date(), 1)},
|
||||||
|
{"expected_delivery_date": frappe.datetime.add_days(frappe.datetime.now_date(), 5)},
|
||||||
|
{"qty": 1},
|
||||||
|
{"rate": 400},
|
||||||
|
{"warehouse": 'Stores - '+frappe.get_abbr(frappe.defaults.get_default("Company"))}
|
||||||
|
]
|
||||||
|
]}
|
||||||
|
]);
|
||||||
|
},
|
||||||
|
|
||||||
|
() => {
|
||||||
|
// Get item details
|
||||||
|
assert.ok(cur_frm.doc.items[0].last_purchase_rate == 0);
|
||||||
|
assert.ok(cur_frm.doc.items[1].last_purchase_rate == 0);
|
||||||
|
},
|
||||||
|
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
|
||||||
|
() => frappe.tests.click_button('Submit'),
|
||||||
|
() => frappe.tests.click_button('Yes'),
|
||||||
|
() => frappe.timeout(3),
|
||||||
|
|
||||||
|
() => frappe.tests.click_button('Close'),
|
||||||
|
() => frappe.timeout(1),
|
||||||
|
|
||||||
|
// enable allow_last_purchase_rate
|
||||||
|
() => frappe.tests.make('Buying Settings', [
|
||||||
|
// values to be set
|
||||||
|
{"disable_fetch_last_purchase_rate": 0}
|
||||||
|
]),
|
||||||
|
|
||||||
() => done()
|
() => done()
|
||||||
]);
|
]);
|
||||||
});
|
});
|
Loading…
x
Reference in New Issue
Block a user