feat: auto create SCO on PO submission
This commit is contained in:
parent
628ea42b63
commit
9ec6f1e1d6
@ -30,7 +30,7 @@
|
|||||||
"column_break_11",
|
"column_break_11",
|
||||||
"over_transfer_allowance",
|
"over_transfer_allowance",
|
||||||
"section_break_xcug",
|
"section_break_xcug",
|
||||||
"purchase_order_submit_action"
|
"action_on_purchase_order_submission"
|
||||||
],
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
@ -180,9 +180,9 @@
|
|||||||
"fieldtype": "Section Break"
|
"fieldtype": "Section Break"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "purchase_order_submit_action",
|
"fieldname": "action_on_purchase_order_submission",
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Select",
|
||||||
"label": "Purchase Order Submit Action",
|
"label": "Action on Purchase Order Submission",
|
||||||
"options": "\nCreate Subcontracting Order\nCreate and Submit Subcontracting Order"
|
"options": "\nCreate Subcontracting Order\nCreate and Submit Subcontracting Order"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -191,7 +191,7 @@
|
|||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"issingle": 1,
|
"issingle": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2023-11-22 16:05:33.262940",
|
"modified": "2023-11-22 17:42:28.978582",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Buying",
|
"module": "Buying",
|
||||||
"name": "Buying Settings",
|
"name": "Buying Settings",
|
||||||
|
|||||||
@ -357,6 +357,8 @@ class PurchaseOrder(BuyingController):
|
|||||||
|
|
||||||
update_linked_doc(self.doctype, self.name, self.inter_company_order_reference)
|
update_linked_doc(self.doctype, self.name, self.inter_company_order_reference)
|
||||||
|
|
||||||
|
self.auto_create_subcontracting_order()
|
||||||
|
|
||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
self.ignore_linked_doctypes = ("GL Entry", "Payment Ledger Entry")
|
self.ignore_linked_doctypes = ("GL Entry", "Payment Ledger Entry")
|
||||||
super(PurchaseOrder, self).on_cancel()
|
super(PurchaseOrder, self).on_cancel()
|
||||||
@ -484,6 +486,16 @@ class PurchaseOrder(BuyingController):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def auto_create_subcontracting_order(self):
|
||||||
|
if self.is_subcontracted and not self.is_old_subcontracting_flow:
|
||||||
|
if action := frappe.db.get_single_value(
|
||||||
|
"Buying Settings", "action_on_purchase_order_submission"
|
||||||
|
):
|
||||||
|
if action == "Create Subcontracting Order":
|
||||||
|
make_subcontracting_order(self.name, save=True)
|
||||||
|
elif action == "Create and Submit Subcontracting Order":
|
||||||
|
make_subcontracting_order(self.name, submit=True)
|
||||||
|
|
||||||
|
|
||||||
def item_last_purchase_rate(name, conversion_rate, item_code, conversion_factor=1.0):
|
def item_last_purchase_rate(name, conversion_rate, item_code, conversion_factor=1.0):
|
||||||
"""get last purchase rate for an item"""
|
"""get last purchase rate for an item"""
|
||||||
@ -686,8 +698,18 @@ def make_inter_company_sales_order(source_name, target_doc=None):
|
|||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_subcontracting_order(source_name, target_doc=None):
|
def make_subcontracting_order(source_name, target_doc=None, save=False, submit=False):
|
||||||
return get_mapped_subcontracting_order(source_name, target_doc)
|
target_doc = get_mapped_subcontracting_order(source_name, target_doc)
|
||||||
|
|
||||||
|
if (save or submit) and frappe.has_permission(target_doc.doctype, "create"):
|
||||||
|
target_doc.save()
|
||||||
|
if submit and frappe.has_permission(target_doc.doctype, "submit", target_doc):
|
||||||
|
try:
|
||||||
|
target_doc.submit()
|
||||||
|
except Exception as e:
|
||||||
|
target_doc.add_comment("Comment", _("Submit Action Failed") + "<br><br>" + str(e))
|
||||||
|
|
||||||
|
return target_doc
|
||||||
|
|
||||||
|
|
||||||
def get_mapped_subcontracting_order(source_name, target_doc=None):
|
def get_mapped_subcontracting_order(source_name, target_doc=None):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user