fix: should never get cutomer price on purchase document (#34002)
* fix: never get cutomer price on purchase document chores: syntax chore: typo in stock_entry get_uom_details (#33998) fix: typo in stock_entry get_uom_details chores: syntax * feat: add test for get_item_detail price list oriented * feat: add test for get_item_detail price price oriented * feat: add test for get_item_detail price price oriented * chore: clean test code
This commit is contained in:
parent
a67284e96d
commit
231fe4156f
@ -38,5 +38,19 @@
|
|||||||
"price_list_rate": 1000,
|
"price_list_rate": 1000,
|
||||||
"valid_from": "2017-04-10",
|
"valid_from": "2017-04-10",
|
||||||
"valid_upto": "2017-04-17"
|
"valid_upto": "2017-04-17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"doctype": "Item Price",
|
||||||
|
"item_code": "_Test Item",
|
||||||
|
"price_list": "_Test Buying Price List",
|
||||||
|
"price_list_rate": 100,
|
||||||
|
"supplier": "_Test Supplier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"doctype": "Item Price",
|
||||||
|
"item_code": "_Test Item",
|
||||||
|
"price_list": "_Test Selling Price List",
|
||||||
|
"price_list_rate": 200,
|
||||||
|
"customer": "_Test Customer"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -31,5 +31,21 @@
|
|||||||
"enabled": 1,
|
"enabled": 1,
|
||||||
"price_list_name": "_Test Price List Rest of the World",
|
"price_list_name": "_Test Price List Rest of the World",
|
||||||
"selling": 1
|
"selling": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buying": 0,
|
||||||
|
"currency": "USD",
|
||||||
|
"doctype": "Price List",
|
||||||
|
"enabled": 1,
|
||||||
|
"price_list_name": "_Test Selling Price List",
|
||||||
|
"selling": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buying": 1,
|
||||||
|
"currency": "USD",
|
||||||
|
"doctype": "Price List",
|
||||||
|
"enabled": 1,
|
||||||
|
"price_list_name": "_Test Buying Price List",
|
||||||
|
"selling": 0
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -88,8 +88,15 @@ def get_item_details(args, doc=None, for_validate=False, overwrite_warehouse=Tru
|
|||||||
|
|
||||||
update_party_blanket_order(args, out)
|
update_party_blanket_order(args, out)
|
||||||
|
|
||||||
|
# Never try to find a customer price if customer is set in these Doctype
|
||||||
|
current_customer = args.customer
|
||||||
|
if args.get("doctype") in ["Purchase Order", "Purchase Receipt", "Purchase Invoice"]:
|
||||||
|
args.customer = None
|
||||||
|
|
||||||
out.update(get_price_list_rate(args, item))
|
out.update(get_price_list_rate(args, item))
|
||||||
|
|
||||||
|
args.customer = current_customer
|
||||||
|
|
||||||
if args.customer and cint(args.is_pos):
|
if args.customer and cint(args.is_pos):
|
||||||
out.update(get_pos_profile_item_details(args.company, args, update_data=True))
|
out.update(get_pos_profile_item_details(args.company, args, update_data=True))
|
||||||
|
|
||||||
|
40
erpnext/stock/tests/test_get_item_details.py
Normal file
40
erpnext/stock/tests/test_get_item_details.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
|
import frappe
|
||||||
|
from frappe.test_runner import make_test_records
|
||||||
|
from frappe.tests.utils import FrappeTestCase
|
||||||
|
|
||||||
|
from erpnext.stock.get_item_details import get_item_details
|
||||||
|
|
||||||
|
test_ignore = ["BOM"]
|
||||||
|
test_dependencies = ["Customer", "Supplier", "Item", "Price List", "Item Price"]
|
||||||
|
|
||||||
|
|
||||||
|
class TestGetItemDetail(FrappeTestCase):
|
||||||
|
def setUp(self):
|
||||||
|
make_test_records("Price List")
|
||||||
|
super().setUp()
|
||||||
|
|
||||||
|
def test_get_item_detail_purchase_order(self):
|
||||||
|
|
||||||
|
args = frappe._dict(
|
||||||
|
{
|
||||||
|
"item_code": "_Test Item",
|
||||||
|
"company": "_Test Company",
|
||||||
|
"customer": "_Test Customer",
|
||||||
|
"conversion_rate": 1.0,
|
||||||
|
"price_list_currency": "USD",
|
||||||
|
"plc_conversion_rate": 1.0,
|
||||||
|
"doctype": "Purchase Order",
|
||||||
|
"name": None,
|
||||||
|
"supplier": "_Test Supplier",
|
||||||
|
"transaction_date": None,
|
||||||
|
"conversion_rate": 1.0,
|
||||||
|
"price_list": "_Test Buying Price List",
|
||||||
|
"is_subcontracted": 0,
|
||||||
|
"ignore_pricing_rule": 1,
|
||||||
|
"qty": 1,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
details = get_item_details(args)
|
||||||
|
self.assertEqual(details.get("price_list_rate"), 100)
|
Loading…
x
Reference in New Issue
Block a user