Exemplo n.º 1
0
	def test_time_log_on_holiday(self):
		prod_order = make_prod_order_test_record(item="_Test FG Item 2", qty=1, 
			planned_start_date="2014-11-25 00:00:00", do_not_save=True)
		prod_order.set_production_order_operations()
		prod_order.save()
		prod_order.submit()

		time_log = frappe.get_doc({
			"doctype": "Time Log",
			"for_manufacturing": 1,
			"production_order": prod_order.name,
			"operation": prod_order.operations[0].operation,
			"operation_id": prod_order.operations[0].name,
			"qty": 1,
			"activity_type": "_Test Activity Type",
			"from_time": "2013-02-01 10:00:00",
			"to_time": "2013-02-01 20:00:00",
			"workstation": "_Test Workstation 1"
		})
		self.assertRaises(WorkstationHolidayError , time_log.save)

		time_log.update({
			"from_time": "2013-02-02 09:00:00",
			"to_time": "2013-02-02 20:00:00"
		})
		self.assertRaises(NotInWorkingHoursError , time_log.save)

		time_log.from_time= "2013-02-02 10:30:00"
		time_log.save()
		time_log.submit()
		time_log.cancel()
Exemplo n.º 2
0
    def test_time_log_on_holiday(self):
        prod_order = make_prod_order_test_record(item="_Test FG Item 2",
                                                 qty=1,
                                                 planned_start_date=now(),
                                                 do_not_save=True)
        prod_order.set_production_order_operations()
        prod_order.save()
        prod_order.submit()

        time_log = make_time_log_test_record(
            from_time="2013-02-01 10:00:00",
            to_time="2013-02-01 20:00:00",
            for_manufacturing=1,
            production_order=prod_order.name,
            qty=1,
            operation=prod_order.operations[0].operation,
            operation_id=prod_order.operations[0].name,
            workstation="_Test Workstation 1",
            do_not_save=True)

        self.assertRaises(WorkstationHolidayError, time_log.save)

        time_log.update({
            "from_time": "2013-02-02 09:00:00",
            "to_time": "2013-02-02 20:00:00"
        })
        self.assertRaises(NotInWorkingHoursError, time_log.save)

        time_log.from_time = "2013-02-02 10:30:00"
        time_log.save()
        time_log.submit()
        time_log.cancel()
Exemplo n.º 3
0
	def test_production_order_status(self):
		prod_order = make_prod_order_test_record(item= "_Test FG Item 2", qty= 1, do_not_submit= True)
		prod_order.set_production_order_operations()
		prod_order.save()

		time_log = make_time_log_test_record(for_manufacturing= 1, production_order= prod_order.name, qty= 1,
			employee= "_T-Employee-0003", do_not_save= True, simulate=1)

		self.assertRaises(NotSubmittedError, time_log.save)
Exemplo n.º 4
0
def work():
	frappe.set_user(frappe.db.get_global('demo_manufacturing_user'))

	from erpnext.projects.doctype.timesheet.timesheet import OverlapError

	ppt = frappe.get_doc("Production Planning Tool", "Production Planning Tool")
	ppt.company = erpnext.get_default_company()
	ppt.use_multi_level_bom = 1
	ppt.get_items_from = "Sales Order"
	ppt.purchase_request_for_warehouse = "Stores - WPL"
	ppt.run_method("get_open_sales_orders")
	ppt.run_method("get_items")
	ppt.run_method("raise_production_orders")
	ppt.run_method("raise_material_requests")
	frappe.db.commit()

	# submit production orders
	for pro in frappe.db.get_values("Production Order", {"docstatus": 0}, "name"):
		b = frappe.get_doc("Production Order", pro[0])
		b.wip_warehouse = "Work in Progress - WPL"
		b.submit()
		frappe.db.commit()

	# submit material requests
	for pro in frappe.db.get_values("Material Request", {"docstatus": 0}, "name"):
		b = frappe.get_doc("Material Request", pro[0])
		b.submit()
		frappe.db.commit()

	# stores -> wip
	if random.random() < 0.3:
		for pro in query_report.run("Open Production Orders")["result"][:how_many("Stock Entry for WIP")]:
			make_stock_entry_from_pro(pro[0], "Material Transfer for Manufacture")

	# wip -> fg
	if random.random() < 0.3:
		for pro in query_report.run("Production Orders in Progress")["result"][:how_many("Stock Entry for FG")]:
			make_stock_entry_from_pro(pro[0], "Manufacture")

	for bom in frappe.get_all('BOM', fields=['item'], filters = {'with_operations': 1}):
		pro_order = make_prod_order_test_record(item=bom.item, qty=2,
			source_warehouse="Stores - WPL", wip_warehouse = "Work in Progress - WPL",
			fg_warehouse = "Stores - WPL", company = erpnext.get_default_company(),
			stock_uom = frappe.db.get_value('Item', bom.item, 'stock_uom'),
			planned_start_date = frappe.flags.current_date)

	# submit time logs
	for timesheet in frappe.get_all("Timesheet", ["name"], {"docstatus": 0,
		"production_order": ("!=", ""), "to_time": ("<", frappe.flags.current_date)}):
		timesheet = frappe.get_doc("Timesheet", timesheet.name)
		try:
			timesheet.submit()
			frappe.db.commit()
		except OverlapError:
			pass
		except WorkstationHolidayError:
			pass
Exemplo n.º 5
0
	def test_production_order_status(self):
		prod_order = make_prod_order_test_record(item="_Test FG Item 2", qty=1, do_not_submit=True)
		prod_order.set_production_order_operations()
		prod_order.save()

		time_log = frappe.get_doc({
			"doctype": "Time Log",
			"for_manufacturing": 1,
			"production_order": prod_order.name,
			"qty": 1,
			"from_time": "2014-12-26 00:00:00",
			"to_time": "2014-12-26 00:00:00"
		})

		self.assertRaises(NotSubmittedError, time_log.save)
Exemplo n.º 6
0
	def test_time_log_on_holiday(self):
		prod_order = make_prod_order_test_record(item= "_Test FG Item 2", qty= 1,
			planned_start_date= now(), do_not_save= True)
		prod_order.set_production_order_operations()
		prod_order.save()
		prod_order.submit()

		time_log = make_time_log_test_record(from_time= "2013-02-01 10:00:00", to_time= "2013-02-01 20:00:00",
			for_manufacturing= 1, production_order= prod_order.name, qty= 1,
			operation= prod_order.operations[0].operation, operation_id= prod_order.operations[0].name,
			workstation= "_Test Workstation 1", do_not_save= True)

		self.assertRaises(WorkstationHolidayError , time_log.save)

		time_log.update({
			"from_time": "2013-02-02 09:00:00",
			"to_time": "2013-02-02 20:00:00"
		})
		self.assertRaises(NotInWorkingHoursError , time_log.save)

		time_log.from_time= "2013-02-02 10:30:00"
		time_log.save()
		time_log.submit()
		time_log.cancel()