test: test cases for PI and DN
This commit is contained in:
parent
237299948a
commit
75fcab04b1
@ -419,8 +419,8 @@ class StockController(AccountsController):
|
||||
if fieldname and self.get(fieldname):
|
||||
sl_dict[dimension.target_fieldname] = self.get(fieldname)
|
||||
|
||||
if sl_dict[dimension.target_fieldname]:
|
||||
row.set(dimension.source_fieldname, sl_dict[dimension.target_fieldname])
|
||||
if sl_dict[dimension.target_fieldname] and self.docstatus == 1:
|
||||
row.db_set(dimension.source_fieldname, sl_dict[dimension.target_fieldname])
|
||||
|
||||
def make_sl_entries(self, sl_entries, allow_negative_stock=False, via_landed_cost_voucher=False):
|
||||
from erpnext.stock.stock_ledger import make_sl_entries
|
||||
|
@ -30,6 +30,7 @@ frappe.ui.form.on('Inventory Dimension', {
|
||||
|
||||
onload(frm) {
|
||||
frm.trigger('render_traget_field');
|
||||
frm.trigger("set_parent_fields");
|
||||
},
|
||||
|
||||
refresh(frm) {
|
||||
@ -52,10 +53,6 @@ frappe.ui.form.on('Inventory Dimension', {
|
||||
}
|
||||
},
|
||||
|
||||
onload(frm) {
|
||||
frm.trigger("set_parent_fields");
|
||||
},
|
||||
|
||||
document_type(frm) {
|
||||
frm.trigger("set_parent_fields");
|
||||
},
|
||||
@ -76,7 +73,7 @@ frappe.ui.form.on('Inventory Dimension', {
|
||||
[""].concat(r.message));
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -2,14 +2,17 @@
|
||||
# See license.txt
|
||||
|
||||
import frappe
|
||||
from frappe.custom.doctype.custom_field.custom_field import create_custom_field
|
||||
from frappe.tests.utils import FrappeTestCase
|
||||
|
||||
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
|
||||
from erpnext.stock.doctype.inventory_dimension.inventory_dimension import (
|
||||
CanNotBeChildDoc,
|
||||
CanNotBeDefaultDimension,
|
||||
DoNotChangeError,
|
||||
delete_dimension,
|
||||
)
|
||||
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt
|
||||
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
|
||||
from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse
|
||||
|
||||
@ -136,6 +139,58 @@ class TestInventoryDimension(FrappeTestCase):
|
||||
self.assertTrue(inv_dim1.has_stock_ledger())
|
||||
self.assertRaises(DoNotChangeError, inv_dim1.save)
|
||||
|
||||
def test_inventory_dimension_for_purchase_receipt_and_delivery_note(self):
|
||||
create_inventory_dimension(
|
||||
reference_document="Rack",
|
||||
type_of_transaction="Both",
|
||||
dimension_name="Rack",
|
||||
apply_to_all_doctypes=1,
|
||||
fetch_from_parent="Rack",
|
||||
)
|
||||
|
||||
create_custom_field(
|
||||
"Purchase Receipt", dict(fieldname="rack", label="Rack", fieldtype="Link", options="Rack")
|
||||
)
|
||||
|
||||
create_custom_field(
|
||||
"Delivery Note", dict(fieldname="rack", label="Rack", fieldtype="Link", options="Rack")
|
||||
)
|
||||
|
||||
frappe.reload_doc("stock", "doctype", "purchase_receipt_item")
|
||||
frappe.reload_doc("stock", "doctype", "delivery_note_item")
|
||||
|
||||
pr_doc = make_purchase_receipt(qty=2, do_not_submit=True)
|
||||
pr_doc.rack = "Rack 1"
|
||||
pr_doc.save()
|
||||
pr_doc.submit()
|
||||
|
||||
pr_doc.load_from_db()
|
||||
|
||||
self.assertEqual(pr_doc.items[0].rack, "Rack 1")
|
||||
sle_rack = frappe.db.get_value(
|
||||
"Stock Ledger Entry",
|
||||
{"voucher_detail_no": pr_doc.items[0].name, "voucher_type": pr_doc.doctype},
|
||||
"rack",
|
||||
)
|
||||
|
||||
self.assertEqual(sle_rack, "Rack 1")
|
||||
|
||||
dn_doc = create_delivery_note(qty=2, do_not_submit=True)
|
||||
dn_doc.rack = "Rack 1"
|
||||
dn_doc.save()
|
||||
dn_doc.submit()
|
||||
|
||||
dn_doc.load_from_db()
|
||||
|
||||
self.assertEqual(dn_doc.items[0].rack, "Rack 1")
|
||||
sle_rack = frappe.db.get_value(
|
||||
"Stock Ledger Entry",
|
||||
{"voucher_detail_no": dn_doc.items[0].name, "voucher_type": dn_doc.doctype},
|
||||
"rack",
|
||||
)
|
||||
|
||||
self.assertEqual(sle_rack, "Rack 1")
|
||||
|
||||
|
||||
def prepare_test_data():
|
||||
if not frappe.db.exists("DocType", "Shelf"):
|
||||
@ -160,6 +215,28 @@ def prepare_test_data():
|
||||
|
||||
create_warehouse("Shelf Warehouse")
|
||||
|
||||
if not frappe.db.exists("DocType", "Rack"):
|
||||
frappe.get_doc(
|
||||
{
|
||||
"doctype": "DocType",
|
||||
"name": "Rack",
|
||||
"module": "Stock",
|
||||
"custom": 1,
|
||||
"naming_rule": "By fieldname",
|
||||
"autoname": "field:rack_name",
|
||||
"fields": [{"label": "Rack Name", "fieldname": "rack_name", "fieldtype": "Data"}],
|
||||
"permissions": [
|
||||
{"role": "System Manager", "permlevel": 0, "read": 1, "write": 1, "create": 1, "delete": 1}
|
||||
],
|
||||
}
|
||||
).insert(ignore_permissions=True)
|
||||
|
||||
for rack in ["Rack 1"]:
|
||||
if not frappe.db.exists("Rack", rack):
|
||||
frappe.get_doc({"doctype": "Rack", "rack_name": rack}).insert(ignore_permissions=True)
|
||||
|
||||
create_warehouse("Rack Warehouse")
|
||||
|
||||
|
||||
def create_inventory_dimension(**args):
|
||||
args = frappe._dict(args)
|
||||
|
Loading…
Reference in New Issue
Block a user