Merge pull request #30461 from nextchamp-saqib/fix-asset-warehouse-validation

fix(asset): do not validate warehouse on asset purchase
This commit is contained in:
Saqib Ansari 2022-03-31 14:15:16 +05:30 committed by GitHub
commit 9af353ffa9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 13 deletions

View File

@ -249,8 +249,9 @@ class PurchaseInvoice(BuyingController):
def validate_warehouse(self, for_validate=True):
if self.update_stock and for_validate:
stock_items = self.get_stock_items()
for d in self.get("items"):
if not d.warehouse:
if not d.warehouse and d.item_code in stock_items:
frappe.throw(
_(
"Row No {0}: Warehouse is required. Please set a Default Warehouse for Item {1} and Company {2}"

View File

@ -68,7 +68,7 @@ class TestAsset(AssetSetup):
def test_item_exists(self):
asset = create_asset(item_code="MacBook", do_not_save=1)
self.assertRaises(frappe.DoesNotExistError, asset.save)
self.assertRaises(frappe.ValidationError, asset.save)
def test_validate_item(self):
asset = create_asset(item_code="MacBook Pro", do_not_save=1)

View File

@ -1267,17 +1267,9 @@ class AccountsController(TransactionBase):
stock_items = []
item_codes = list(set(item.item_code for item in self.get("items")))
if item_codes:
stock_items = [
r[0]
for r in frappe.db.sql(
"""
select name from `tabItem`
where name in (%s) and is_stock_item=1
"""
% (", ".join(["%s"] * len(item_codes)),),
item_codes,
)
]
stock_items = frappe.db.get_values(
"Item", {"name": ["in", item_codes], "is_stock_item": 1}, pluck="name", cache=True
)
return stock_items