Exemple #1
0
    def test_production_plan_sales_orders(self):
        "Test if previously fulfilled SO (with WO) is pulled into Prod Plan."
        item = "Test Production Item 1"
        so = make_sales_order(item_code=item, qty=1)
        sales_order = so.name
        sales_order_item = so.items[0].name

        pln = frappe.new_doc("Production Plan")
        pln.company = so.company
        pln.get_items_from = "Sales Order"

        pln.append(
            "sales_orders",
            {
                "sales_order": so.name,
                "sales_order_date": so.transaction_date,
                "customer": so.customer,
                "grand_total": so.grand_total,
            },
        )

        pln.get_so_items()
        pln.submit()
        pln.make_work_order()

        work_order = frappe.db.get_value(
            "Work Order",
            {
                "sales_order": sales_order,
                "production_plan": pln.name,
                "sales_order_item": sales_order_item
            },
            "name",
        )

        wo_doc = frappe.get_doc("Work Order", work_order)
        wo_doc.update({
            "wip_warehouse": "Work In Progress - _TC",
            "fg_warehouse": "Finished Goods - _TC"
        })
        wo_doc.submit()

        so_wo_qty = frappe.db.get_value("Sales Order Item", sales_order_item,
                                        "work_order_qty")
        self.assertTrue(so_wo_qty, 5)

        pln = frappe.new_doc("Production Plan")
        pln.update({
            "from_date": so.transaction_date,
            "to_date": so.transaction_date,
            "customer": so.customer,
            "item_code": item,
            "sales_order_status": so.status,
        })
        sales_orders = get_sales_orders(pln) or {}
        sales_orders = [
            d.get("name") for d in sales_orders if d.get("name") == sales_order
        ]

        self.assertEqual(sales_orders, [])
    def test_production_plan_sales_orders(self):
        item = 'Test Production Item 1'
        so = make_sales_order(item_code=item, qty=5)
        sales_order = so.name
        sales_order_item = so.items[0].name

        pln = frappe.new_doc('Production Plan')
        pln.company = so.company
        pln.get_items_from = 'Sales Order'

        pln.append(
            'sales_orders', {
                'sales_order': so.name,
                'sales_order_date': so.transaction_date,
                'customer': so.customer,
                'grand_total': so.grand_total
            })

        pln.get_so_items()
        pln.submit()
        pln.make_work_order()

        work_order = frappe.db.get_value(
            'Work Order', {
                'sales_order': sales_order,
                'production_plan': pln.name,
                'sales_order_item': sales_order_item
            }, 'name')

        wo_doc = frappe.get_doc('Work Order', work_order)
        wo_doc.update({
            'wip_warehouse': '_Test Warehouse 1 - _TC',
            'fg_warehouse': '_Test Warehouse - _TC'
        })
        wo_doc.submit()

        so_wo_qty = frappe.db.get_value('Sales Order Item', sales_order_item,
                                        'work_order_qty')
        self.assertTrue(so_wo_qty, 5)

        pln = frappe.new_doc('Production Plan')
        pln.update({
            'from_date': so.transaction_date,
            'to_date': so.transaction_date,
            'customer': so.customer,
            'item_code': item,
            'sales_order_status': so.status
        })
        sales_orders = get_sales_orders(pln) or {}
        sales_orders = [
            d.get('name') for d in sales_orders if d.get('name') == sales_order
        ]

        self.assertEqual(sales_orders, [])
	def test_production_plan_sales_orders(self):
		item = 'Test Production Item 1'
		so = make_sales_order(item_code=item, qty=5)
		sales_order = so.name
		sales_order_item = so.items[0].name

		pln = frappe.new_doc('Production Plan')
		pln.company = so.company
		pln.get_items_from = 'Sales Order'

		pln.append('sales_orders', {
			'sales_order': so.name,
			'sales_order_date': so.transaction_date,
			'customer': so.customer,
			'grand_total': so.grand_total
		})

		pln.get_so_items()
		pln.submit()
		pln.make_work_order()

		work_order = frappe.db.get_value('Work Order', {'sales_order': sales_order,
			'production_plan': pln.name, 'sales_order_item': sales_order_item}, 'name')

		wo_doc = frappe.get_doc('Work Order', work_order)
		wo_doc.update({
			'wip_warehouse': '_Test Warehouse 1 - _TC',
			'fg_warehouse': '_Test Warehouse - _TC'
		})
		wo_doc.submit()

		so_wo_qty = frappe.db.get_value('Sales Order Item', sales_order_item, 'work_order_qty')
		self.assertTrue(so_wo_qty, 5)

		pln = frappe.new_doc('Production Plan')
		pln.update({
			'from_date': so.transaction_date,
			'to_date': so.transaction_date,
			'customer': so.customer,
			'item_code': item
		})
		sales_orders = get_sales_orders(pln) or {}
		sales_orders = [d.get('name') for d in sales_orders if d.get('name') == sales_order]

		self.assertEqual(sales_orders, [])