mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-25 07:54:46 +00:00
fix(ux): skip items without batch series
This commit is contained in:
committed by
Ankush Menat
parent
91fd9d917a
commit
941ea1ec74
@@ -2,7 +2,7 @@
|
|||||||
# License: GNU General Public License v3. See license.txt
|
# License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.tests.utils import FrappeTestCase, timeout
|
from frappe.tests.utils import FrappeTestCase, change_settings, timeout
|
||||||
from frappe.utils import add_days, add_months, cint, flt, now, today
|
from frappe.utils import add_days, add_months, cint, flt, now, today
|
||||||
|
|
||||||
from erpnext.manufacturing.doctype.job_card.job_card import JobCardCancelError
|
from erpnext.manufacturing.doctype.job_card.job_card import JobCardCancelError
|
||||||
@@ -976,6 +976,28 @@ class TestWorkOrder(FrappeTestCase):
|
|||||||
frappe.db.set_value("Manufacturing Settings", None,
|
frappe.db.set_value("Manufacturing Settings", None,
|
||||||
"backflush_raw_materials_based_on", "BOM")
|
"backflush_raw_materials_based_on", "BOM")
|
||||||
|
|
||||||
|
@change_settings("Manufacturing Settings", {"make_serial_no_batch_from_work_order": 1})
|
||||||
|
def test_auto_batch_creation(self):
|
||||||
|
from erpnext.manufacturing.doctype.bom.test_bom import create_nested_bom
|
||||||
|
|
||||||
|
fg_item = frappe.generate_hash(length=20)
|
||||||
|
child_item = frappe.generate_hash(length=20)
|
||||||
|
|
||||||
|
bom_tree = {fg_item: {child_item: {}}}
|
||||||
|
|
||||||
|
create_nested_bom(bom_tree, prefix="")
|
||||||
|
|
||||||
|
item = frappe.get_doc("Item", fg_item)
|
||||||
|
item.has_batch_no = 1
|
||||||
|
item.create_new_batch = 0
|
||||||
|
item.save()
|
||||||
|
|
||||||
|
try:
|
||||||
|
make_wo_order_test_record(item=fg_item)
|
||||||
|
except frappe.MandatoryError:
|
||||||
|
self.fail("Batch generation causing failing in Work Order")
|
||||||
|
|
||||||
|
|
||||||
def update_job_card(job_card, jc_qty=None):
|
def update_job_card(job_card, jc_qty=None):
|
||||||
employee = frappe.db.get_value('Employee', {'status': 'Active'}, 'name')
|
employee = frappe.db.get_value('Employee', {'status': 'Active'}, 'name')
|
||||||
job_card_doc = frappe.get_doc('Job Card', job_card)
|
job_card_doc = frappe.get_doc('Job Card', job_card)
|
||||||
|
|||||||
@@ -333,6 +333,14 @@ class WorkOrder(Document):
|
|||||||
if not self.batch_size:
|
if not self.batch_size:
|
||||||
self.batch_size = total_qty
|
self.batch_size = total_qty
|
||||||
|
|
||||||
|
batch_auto_creation = frappe.get_cached_value("Item", self.production_item, "create_new_batch")
|
||||||
|
if not batch_auto_creation:
|
||||||
|
frappe.msgprint(
|
||||||
|
_("Batch not created for item {} since it does not have a batch series.")
|
||||||
|
.format(frappe.bold(self.production_item)),
|
||||||
|
alert=True, indicator="orange")
|
||||||
|
return
|
||||||
|
|
||||||
while total_qty > 0:
|
while total_qty > 0:
|
||||||
qty = self.batch_size
|
qty = self.batch_size
|
||||||
if self.batch_size >= total_qty:
|
if self.batch_size >= total_qty:
|
||||||
|
|||||||
Reference in New Issue
Block a user