23 lines
910 B
Python
23 lines
910 B
Python
|
# Copyright (c) 2017, Frappe and Contributors
|
||
|
# License: GNU General Public License v3. See license.txt
|
||
|
|
||
|
from __future__ import unicode_literals
|
||
|
import frappe
|
||
|
|
||
|
def execute():
|
||
|
frappe.reload_doctype('Expense Claim')
|
||
|
|
||
|
for data in frappe.db.sql(""" select name from `tabExpense Claim`
|
||
|
where (docstatus=1 and total_sanctioned_amount=0 and status = 'Paid') or
|
||
|
(docstatus = 1 and approval_status = 'Rejected' and total_sanctioned_amount > 0)""", as_dict=1):
|
||
|
doc = frappe.get_doc('Expense Claim', data.name)
|
||
|
if doc.approval_status == 'Rejected':
|
||
|
for d in doc.expenses:
|
||
|
d.db_set("sanctioned_amount", 0, update_modified = False)
|
||
|
doc.db_set("total_sanctioned_amount", 0, update_modified = False)
|
||
|
|
||
|
frappe.db.sql(""" delete from `tabGL Entry` where voucher_type = 'Expense Claim'
|
||
|
and voucher_no = %s""", (doc.name))
|
||
|
|
||
|
doc.set_status()
|
||
|
doc.db_set("status", doc.status, update_modified = False)
|