fix: incorrect stock value for purchase returned with rejected qty
This commit is contained in:
parent
24d1bf275a
commit
28dd758aa3
@ -660,6 +660,9 @@ def get_filters(
|
|||||||
if reference_voucher_detail_no:
|
if reference_voucher_detail_no:
|
||||||
filters["voucher_detail_no"] = reference_voucher_detail_no
|
filters["voucher_detail_no"] = reference_voucher_detail_no
|
||||||
|
|
||||||
|
if item_row and item_row.get("warehouse"):
|
||||||
|
filters["warehouse"] = item_row.get("warehouse")
|
||||||
|
|
||||||
return filters
|
return filters
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1781,6 +1781,52 @@ class TestPurchaseReceipt(FrappeTestCase):
|
|||||||
pr.items[0].delivery_note_item = delivery_note_item
|
pr.items[0].delivery_note_item = delivery_note_item
|
||||||
pr.save()
|
pr.save()
|
||||||
|
|
||||||
|
def test_purchase_return_valuation_with_rejected_qty(self):
|
||||||
|
item_code = "_Test Item Return Valuation"
|
||||||
|
create_item(item_code)
|
||||||
|
|
||||||
|
warehouse = create_warehouse("_Test Warehouse Return Valuation")
|
||||||
|
rejected_warehouse = create_warehouse("_Test Rejected Warehouse Return Valuation")
|
||||||
|
|
||||||
|
# Step 1: Create Purchase Receipt with valuation rate 100
|
||||||
|
make_purchase_receipt(
|
||||||
|
item_code=item_code,
|
||||||
|
warehouse=warehouse,
|
||||||
|
qty=10,
|
||||||
|
rate=100,
|
||||||
|
rejected_qty=2,
|
||||||
|
rejected_warehouse=rejected_warehouse,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Step 2: Create One more Purchase Receipt with valuation rate 200
|
||||||
|
pr = make_purchase_receipt(
|
||||||
|
item_code=item_code,
|
||||||
|
warehouse=warehouse,
|
||||||
|
qty=10,
|
||||||
|
rate=200,
|
||||||
|
rejected_qty=2,
|
||||||
|
rejected_warehouse=rejected_warehouse,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Step 3: Create Purchase Return for 2 qty
|
||||||
|
from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchase_return
|
||||||
|
|
||||||
|
pr_return = make_purchase_return(pr.name)
|
||||||
|
pr_return.items[0].qty = 2 * -1
|
||||||
|
pr_return.items[0].received_qty = 2 * -1
|
||||||
|
pr_return.items[0].rejected_qty = 0
|
||||||
|
pr_return.items[0].rejected_warehouse = ""
|
||||||
|
pr_return.save()
|
||||||
|
pr_return.submit()
|
||||||
|
|
||||||
|
data = frappe.get_all(
|
||||||
|
"Stock Ledger Entry",
|
||||||
|
filters={"voucher_no": pr_return.name, "docstatus": 1},
|
||||||
|
fields=["SUM(stock_value_difference) as stock_value_difference"],
|
||||||
|
)[0]
|
||||||
|
|
||||||
|
self.assertEqual(abs(data["stock_value_difference"]), 400.00)
|
||||||
|
|
||||||
|
|
||||||
def prepare_data_for_internal_transfer():
|
def prepare_data_for_internal_transfer():
|
||||||
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier
|
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user