def on_cancel(self): super(PurchaseInvoice, self).on_cancel() self.check_on_hold_or_closed_status() self.update_status_updater_args() self.update_prevdoc_status() if not self.is_return: self.update_billing_status_for_zero_amount_refdoc("Purchase Receipt") self.update_billing_status_for_zero_amount_refdoc("Purchase Order") self.update_billing_status_in_pr() # Updating stock ledger should always be called after updating prevdoc status, # because updating ordered qty in bin depends upon updated ordered qty in PO if self.update_stock == 1: self.update_stock_ledger() self.delete_auto_created_batches() self.make_gl_entries_on_cancel() self.update_project() frappe.db.set(self, 'status', 'Cancelled') unlink_inter_company_doc(self.doctype, self.name, self.inter_company_invoice_reference)
def on_cancel(self): super(PurchaseOrder, self).on_cancel() if self.is_against_so(): self.update_status_updater() if self.has_drop_ship_item(): self.update_delivered_qty_in_sales_order() if self.is_subcontracted == "Yes": self.update_reserved_qty_for_subcontract() self.check_on_hold_or_closed_status() frappe.db.set(self, "status", "Cancelled") self.update_prevdoc_status() # Must be called after updating ordered qty in Material Request # bin uses Material Request Items to recalculate & update self.update_requested_qty() self.update_ordered_qty() self.update_blanket_order() unlink_inter_company_doc(self.doctype, self.name, self.inter_company_order_reference)
def on_cancel(self): super(CommissionAgentReport, self).on_cancel() # Cannot cancel closed SO if self.status == 'Closed': frappe.throw( _("Closed order cannot be cancelled. Unclose to cancel.")) self.check_nextdoc_docstatus() self.update_project() frappe.db.set(self, 'status', 'Cancelled') unlink_inter_company_doc(self.doctype, self.name, self.inter_company_order_reference)
def on_cancel(self): super(SalesOrder, self).on_cancel() # Cannot cancel closed SO if self.status == 'Closed': frappe.throw(_("Closed order cannot be cancelled. Unclose to cancel.")) self.check_nextdoc_docstatus() self.update_reserved_qty() self.update_project() self.update_prevdoc_status('cancel') frappe.db.set(self, 'status', 'Cancelled') self.update_blanket_order() unlink_inter_company_doc(self.doctype, self.name, self.inter_company_order_reference)
def on_cancel(self): self.ignore_linked_doctypes = ('GL Entry', 'Stock Ledger Entry') super(SalesOrder, self).on_cancel() # Cannot cancel closed SO if self.status == 'Closed': frappe.throw(_("Closed order cannot be cancelled. Unclose to cancel.")) self.check_nextdoc_docstatus() self.update_reserved_qty() self.update_project() self.update_prevdoc_status('cancel') frappe.db.set(self, 'status', 'Cancelled') self.update_blanket_order() unlink_inter_company_doc(self.doctype, self.name, self.inter_company_order_reference) if self.coupon_code: from erpnext.accounts.doctype.pricing_rule.utils import update_coupon_code_count update_coupon_code_count(self.coupon_code,'cancelled')