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) |