* [Enhance] Quality Inspection Template * Test case and patch * Update make_quality_inspection_template.py
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from __future__ import unicode_literals
 | |
| 
 | |
| import frappe
 | |
| import json
 | |
| import unittest
 | |
| 
 | |
| from erpnext.stock.doctype.item.test_item import set_item_variant_settings
 | |
| from erpnext.controllers.item_variant import copy_attributes_to_variant, make_variant_item_code
 | |
| 
 | |
| from six import string_types
 | |
| 
 | |
| class TestItemVariant(unittest.TestCase):
 | |
| 	def test_tables_in_template_copied_to_variant(self):
 | |
| 		fields = [{'field_name': 'quality_inspection_template'}]
 | |
| 		set_item_variant_settings(fields)
 | |
| 		variant = make_item_variant()
 | |
| 		self.assertEqual(variant.get("quality_inspection_template"), "_Test QC Template")
 | |
| 
 | |
| def create_variant_with_tables(item, args):
 | |
| 	if isinstance(args, string_types):
 | |
| 		args = json.loads(args)
 | |
| 
 | |
| 	qc_name = make_quality_inspection_template()
 | |
| 	template = frappe.get_doc("Item", item)
 | |
| 	template.quality_inspection_template = qc_name
 | |
| 	template.save()
 | |
| 
 | |
| 	variant = frappe.new_doc("Item")
 | |
| 	variant.variant_based_on = 'Item Attribute'
 | |
| 	variant_attributes = []
 | |
| 
 | |
| 	for d in template.attributes:
 | |
| 		variant_attributes.append({
 | |
| 			"attribute": d.attribute,
 | |
| 			"attribute_value": args.get(d.attribute)
 | |
| 		})
 | |
| 
 | |
| 	variant.set("attributes", variant_attributes)
 | |
| 	copy_attributes_to_variant(template, variant)
 | |
| 	make_variant_item_code(template.item_code, template.item_name, variant)
 | |
| 
 | |
| 	return variant
 | |
| 
 | |
| def make_item_variant():
 | |
| 	frappe.delete_doc_if_exists("Item", "_Test Variant Item-S", force=1)
 | |
| 	variant = create_variant_with_tables("_Test Variant Item", '{"Test Size": "Small"}')
 | |
| 	variant.item_code = "_Test Variant Item-S"
 | |
| 	variant.item_name = "_Test Variant Item-S"
 | |
| 	variant.save()
 | |
| 	return variant
 | |
| 
 | |
| def make_quality_inspection_template():
 | |
| 	qc_template = "_Test QC Template"
 | |
| 	if frappe.db.exists("Quality Inspection Template", qc_template):
 | |
| 		return qc_template
 | |
| 
 | |
| 	qc = frappe.new_doc("Quality Inspection Template")
 | |
| 	qc.quality_inspection_template_name = qc_template
 | |
| 	qc.append('item_quality_inspection_parameter', {
 | |
| 		"specification": "Moisture",
 | |
| 		"value": "< 5%",
 | |
| 	})
 | |
| 
 | |
| 	qc.insert()
 | |
| 	return qc.name
 |