mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-17 00:25:01 +00:00
Merge pull request #49403 from rohitwaghchaure/fixed-support-47626
fix: validation for Recreate Stock Ledgers
This commit is contained in:
@@ -4171,6 +4171,36 @@ class TestPurchaseReceipt(IntegrationTestCase):
|
||||
|
||||
self.assertTrue(sles)
|
||||
|
||||
def test_validate_recreate_stock_ledgers_for_sn_item(self):
|
||||
item_code = "Test SN Item for Recreate Stock Ledgers"
|
||||
make_item(item_code, {"has_serial_no": 1, "serial_no_series": "SN-TRSLR-.#####"})
|
||||
|
||||
pr = make_purchase_receipt(item_code=item_code, qty=10, rate=100)
|
||||
pr.submit()
|
||||
|
||||
sles = frappe.get_all(
|
||||
"Stock Ledger Entry",
|
||||
filters={"voucher_type": pr.doctype, "voucher_no": pr.name},
|
||||
pluck="name",
|
||||
)
|
||||
|
||||
self.assertTrue(sles)
|
||||
|
||||
repost_doc = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Repost Item Valuation",
|
||||
"based_on": "Transaction",
|
||||
"voucher_type": pr.doctype,
|
||||
"voucher_no": pr.name,
|
||||
"posting_date": pr.posting_date,
|
||||
"posting_time": pr.posting_time,
|
||||
"company": pr.company,
|
||||
"recreate_stock_ledgers": 1,
|
||||
}
|
||||
)
|
||||
|
||||
self.assertRaises(frappe.ValidationError, repost_doc.save)
|
||||
|
||||
def test_internal_pr_qty_change_only_single_batch(self):
|
||||
from erpnext.stock.doctype.delivery_note.delivery_note import make_inter_company_purchase_receipt
|
||||
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
|
||||
|
||||
@@ -76,6 +76,27 @@ class RepostItemValuation(Document):
|
||||
self.reset_field_values()
|
||||
self.validate_accounts_freeze()
|
||||
self.reset_recreate_stock_ledgers()
|
||||
self.validate_recreate_stock_ledgers()
|
||||
|
||||
def validate_recreate_stock_ledgers(self):
|
||||
if not self.recreate_stock_ledgers:
|
||||
return
|
||||
|
||||
items = []
|
||||
if self.based_on == "Item and Warehouse":
|
||||
items.append(self.item_code)
|
||||
else:
|
||||
items = get_items_to_be_repost(self.voucher_type, self.voucher_no)
|
||||
items = list(set([d.item_code for d in items]))
|
||||
|
||||
if serial_batch_items := frappe.get_all(
|
||||
"Item", or_filters={"has_serial_no": 1, "has_batch_no": 1}, filters={"name": ("in", items)}
|
||||
):
|
||||
item_list = ", ".join([d.name for d in serial_batch_items])
|
||||
msg = _(
|
||||
"Since {0} are Serial No/Batch No items, you cannot enable 'Recreate Stock Ledgers' in Repost Item Valuation."
|
||||
).format(item_list)
|
||||
frappe.throw(msg)
|
||||
|
||||
def validate_period_closing_voucher(self):
|
||||
# Period Closing Voucher
|
||||
|
||||
Reference in New Issue
Block a user