[fix] recurring patch for purchase
This commit is contained in:
parent
97e523b4a4
commit
79a6fc9a84
@ -11,41 +11,44 @@ def execute():
|
|||||||
"stock_doctype": "Delivery Note",
|
"stock_doctype": "Delivery Note",
|
||||||
"invoice_doctype": "Sales Invoice",
|
"invoice_doctype": "Sales Invoice",
|
||||||
"stock_doctype_ref_field": "against_sales_order",
|
"stock_doctype_ref_field": "against_sales_order",
|
||||||
"invoice_ref_field": "sales_order"
|
"invoice_ref_field": "sales_order",
|
||||||
|
"qty_field": "delivered_qty"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"doctype": "Purchase Order",
|
"doctype": "Purchase Order",
|
||||||
"stock_doctype": "Purchase Receipt",
|
"stock_doctype": "Purchase Receipt",
|
||||||
"invoice_doctype": "Purchase Invoice",
|
"invoice_doctype": "Purchase Invoice",
|
||||||
"stock_doctype_ref_field": "prevdoc_docname",
|
"stock_doctype_ref_field": "prevdoc_docname",
|
||||||
"invoice_ref_field": "purchase_order"
|
"invoice_ref_field": "purchase_order",
|
||||||
|
"qty_field": "received_qty"
|
||||||
}):
|
}):
|
||||||
|
|
||||||
order_list = frappe.db.sql("""select name from `tab{0}`
|
order_list = frappe.db.sql("""select name from `tab{0}`
|
||||||
where docstatus=1 and is_recurring=1
|
where docstatus=1 and is_recurring=1
|
||||||
and ifnull(recurring_id, '') != name and creation >= '2016-01-25'"""
|
and ifnull(recurring_id, '') != name and creation >= '2016-01-25'"""
|
||||||
.format(doc["doctype"]), as_dict=1)
|
.format(doc["doctype"]), as_dict=1)
|
||||||
|
|
||||||
for order in order_list:
|
for order in order_list:
|
||||||
frappe.db.sql("""update `tab{0} Item`
|
frappe.db.sql("""update `tab{0} Item`
|
||||||
set delivered_qty=0, billed_amt=0 where parent=%s""".format(doc["doctype"]), order.name)
|
set {1}=0, billed_amt=0 where parent=%s""".format(doc["doctype"],
|
||||||
|
doc["qty_field"]), order.name)
|
||||||
|
|
||||||
# Check against Delivery Note and Purchase Receipt
|
# Check against Delivery Note and Purchase Receipt
|
||||||
stock_doc_list = frappe.db.sql("""select distinct parent from `tab{0} Item`
|
stock_doc_list = frappe.db.sql("""select distinct parent from `tab{0} Item`
|
||||||
where docstatus=1 and ifnull({1}, '')=%s"""
|
where docstatus=1 and ifnull({1}, '')=%s"""
|
||||||
.format(doc["stock_doctype"], doc["stock_doctype_ref_field"]), order.name)
|
.format(doc["stock_doctype"], doc["stock_doctype_ref_field"]), order.name)
|
||||||
|
|
||||||
if stock_doc_list:
|
if stock_doc_list:
|
||||||
for dn in stock_doc_list:
|
for dn in stock_doc_list:
|
||||||
frappe.get_doc(doc["stock_doctype"], dn[0]).update_qty(update_modified=False)
|
frappe.get_doc(doc["stock_doctype"], dn[0]).update_qty(update_modified=False)
|
||||||
|
|
||||||
# Check against Invoice
|
# Check against Invoice
|
||||||
invoice_list = frappe.db.sql("""select distinct parent from `tab{0} Item`
|
invoice_list = frappe.db.sql("""select distinct parent from `tab{0} Item`
|
||||||
where docstatus=1 and ifnull({1}, '')=%s"""
|
where docstatus=1 and ifnull({1}, '')=%s"""
|
||||||
.format(doc["invoice_doctype"], doc["invoice_ref_field"]), order.name)
|
.format(doc["invoice_doctype"], doc["invoice_ref_field"]), order.name)
|
||||||
|
|
||||||
if invoice_list:
|
if invoice_list:
|
||||||
for dn in invoice_list:
|
for dn in invoice_list:
|
||||||
frappe.get_doc(doc["invoice_doctype"], dn[0]).update_qty(update_modified=False)
|
frappe.get_doc(doc["invoice_doctype"], dn[0]).update_qty(update_modified=False)
|
||||||
|
|
||||||
frappe.get_doc(doc["doctype"], order.name).set_status(update=True, update_modified=False)
|
frappe.get_doc(doc["doctype"], order.name).set_status(update=True, update_modified=False)
|
Loading…
Reference in New Issue
Block a user