Esempio n. 1
0
def execute():
	for item_code, warehouse in frappe.db.sql("""select distinct production_item, fg_warehouse
		from `tabWork Order`"""):
			if frappe.db.exists("Item", item_code) and frappe.db.exists("Warehouse", warehouse):
				update_bin_qty(item_code, warehouse, {
					"planned_qty": get_planned_qty(item_code, warehouse)
				})
Esempio n. 2
0
	def update_planned_qty(self):
		update_bin_qty(self.production_item, self.fg_warehouse, {
			"planned_qty": get_planned_qty(self.production_item, self.fg_warehouse)
		})

		if self.material_request:
			mr_obj = frappe.get_doc("Material Request", self.material_request)
			mr_obj.update_requested_qty([self.material_request_item])
Esempio n. 3
0
	def update_planned_qty(self):
		update_bin_qty(self.production_item, self.fg_warehouse, {
			"planned_qty": get_planned_qty(self.production_item, self.fg_warehouse)
		})

		if self.material_request:
			mr_obj = frappe.get_doc("Material Request", self.material_request)
			mr_obj.update_requested_qty([self.material_request_item])
Esempio n. 4
0
def execute():
    for item_code, warehouse in frappe.db.sql(
            """select distinct production_item, fg_warehouse
		from `tabProduction Order`"""):
        if frappe.db.exists("Item", item_code) and frappe.db.exists(
                "Warehouse", warehouse):
            update_bin_qty(
                item_code, warehouse,
                {"planned_qty": get_planned_qty(item_code, warehouse)})
def delete_and_patch_duplicate_bins():

    duplicate_bins = frappe.db.sql(
        """
		SELECT
			item_code, warehouse, count(*) as bin_count
		FROM
			tabBin
		GROUP BY
			item_code, warehouse
		HAVING
			bin_count > 1
	""",
        as_dict=1,
    )

    for duplicate_bin in duplicate_bins:
        item_code = duplicate_bin.item_code
        warehouse = duplicate_bin.warehouse
        existing_bins = frappe.get_list(
            "Bin",
            filters={
                "item_code": item_code,
                "warehouse": warehouse
            },
            fields=["name"],
            order_by="creation",
        )

        # keep last one
        existing_bins.pop()

        for broken_bin in existing_bins:
            frappe.delete_doc("Bin", broken_bin.name)

        qty_dict = {
            "reserved_qty": get_reserved_qty(item_code, warehouse),
            "indented_qty": get_indented_qty(item_code, warehouse),
            "ordered_qty": get_ordered_qty(item_code, warehouse),
            "planned_qty": get_planned_qty(item_code, warehouse),
            "actual_qty": get_balance_qty_from_sle(item_code, warehouse),
        }

        bin = get_bin(item_code, warehouse)
        bin.update(qty_dict)
        bin.update_reserved_qty_for_production()
        bin.update_reserved_qty_for_sub_contracting()
        bin.db_update()
 def update_planned_qty(self):
     update_bin_qty(
         self.production_item, self.fg_warehouse, {
             "planned_qty":
             get_planned_qty(self.production_item, self.fg_warehouse)
         })
Esempio n. 7
0
	def update_planned_qty(self):
		update_bin_qty(self.production_item, self.fg_warehouse, {
			"planned_qty": get_planned_qty(self.production_item, self.fg_warehouse)
		})