23 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| def execute():
 | |
| 	import webnotes
 | |
| 	from webnotes.utils import flt
 | |
| 	records = webnotes.conn.sql("""
 | |
| 		select against_voucher_type, against_voucher, 
 | |
| 			sum(ifnull(debit, 0)) - sum(ifnull(credit, 0)) as outstanding from `tabGL Entry`
 | |
| 		where ifnull(is_cancelled, 'No') = 'No' 
 | |
| 		and against_voucher_type in ("Sales Invoice", "Purchase Invoice")
 | |
| 		and ifnull(against_voucher, '') != ''
 | |
| 		group by against_voucher_type, against_voucher""", as_dict=1)
 | |
| 	for r in records:
 | |
| 		outstanding = webnotes.conn.sql("""select name, outstanding_amount from `tab%s` 
 | |
| 			where name = %s and docstatus = 1""" % 
 | |
| 			(r["against_voucher_type"], '%s'), (r["against_voucher"]))
 | |
| 			
 | |
| 		if outstanding and abs(flt(r["outstanding"])) != flt(outstanding[0][1]):
 | |
| 			if ((r["against_voucher_type"]=='Sales Invoice' and flt(r["outstanding"]) >= 0) \
 | |
| 				or (r["against_voucher_type"]=="Purchase Invoice" and flt(["outstanding"]) <= 0)):
 | |
| 				webnotes.conn.set_value(r["against_voucher_type"], r["against_voucher"], 
 | |
| 					"outstanding_amount", abs(flt(r["outstanding"])))		 |