41 lines
1.9 KiB
Python
41 lines
1.9 KiB
Python
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
|
# License: GNU General Public License v3. See license.txt
|
|
|
|
from __future__ import unicode_literals
|
|
import frappe
|
|
|
|
def execute():
|
|
sales_orders = frappe.db.sql("""select name from `tabSales Order`
|
|
where docstatus = 1 and ifnull(is_recurring, 0) = 1
|
|
and (per_delivered > 0 or per_billed > 0)""", as_dict=1)
|
|
|
|
for so in sales_orders:
|
|
if not frappe.db.exists("Delivery Note Item", {"against_sales_order": so.name, "docstatus": 1}):
|
|
frappe.db.sql("""update `tabSales Order` set per_delivered = 0,
|
|
delivery_status = 'Not Delivered' where name = %s""", so.name)
|
|
frappe.db.sql("""update `tabSales Order Item` set delivered_qty = 0
|
|
where parent = %s""", so.name)
|
|
|
|
if not frappe.db.exists("Sales Invoice Item", {"sales_order": so.name, "docstatus": 1}):
|
|
frappe.db.sql("""update `tabSales Order` set per_billed = 0,
|
|
billing_status = 'Not Billed' where name = %s""", so.name)
|
|
frappe.db.sql("""update `tabSales Order Item` set billed_amt = 0
|
|
where parent = %s""", so.name)
|
|
|
|
purchase_orders = frappe.db.sql("""select name from `tabPurchase Order`
|
|
where docstatus = 1 and ifnull(is_recurring, 0) = 1
|
|
and (per_received > 0 or per_billed > 0)""", as_dict=1)
|
|
|
|
for po in purchase_orders:
|
|
if not frappe.db.exists("Purchase Receipt Item", {"prevdoc_doctype": "Purchase Order",
|
|
"prevdoc_docname": po.name, "docstatus": 1}):
|
|
frappe.db.sql("""update `tabPurchase Order` set per_received = 0
|
|
where name = %s""", po.name)
|
|
frappe.db.sql("""update `tabPurchase Order Item` set received_qty = 0
|
|
where parent = %s""", po.name)
|
|
|
|
if not frappe.db.exists("Purchase Invoice Item", {"purchase_order": po.name, "docstatus": 1}):
|
|
frappe.db.sql("""update `tabPurchase Order` set per_billed = 0
|
|
where name = %s""", po.name)
|
|
frappe.db.sql("""update `tabPurchase Order Item` set billed_amt = 0
|
|
where parent = %s""", po.name) |