|
|
|
|
@ -179,6 +179,7 @@ def create_sps_sales_order(data: dict, setting_doc: str, path: str) -> None:
|
|
|
|
|
consumer_order_number = order_header.get("CustomerOrderNumber")
|
|
|
|
|
po_date = order_header.get("PurchaseOrderDate")
|
|
|
|
|
doc = frappe.get_doc("SPS Integration Settings", setting_doc)
|
|
|
|
|
trading_partner_id = order_header.get("TradingPartnerId")
|
|
|
|
|
|
|
|
|
|
# Get delivery date
|
|
|
|
|
delivery_date = next(
|
|
|
|
|
@ -209,7 +210,20 @@ def create_sps_sales_order(data: dict, setting_doc: str, path: str) -> None:
|
|
|
|
|
marketplace_name,
|
|
|
|
|
"naming_series"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Logic to fetch carrier, mode, service for partners (WWWG) and others partners to
|
|
|
|
|
if po_no:
|
|
|
|
|
if customer_name == doc.customer:
|
|
|
|
|
# Fetch by EDI number from po_no
|
|
|
|
|
edi_no = po_no.split("-")[1]
|
|
|
|
|
if frappe.db.exists("Shipping Account Address", edi_no):
|
|
|
|
|
shipping_account = frappe.get_doc("Shipping Account Address", edi_no)
|
|
|
|
|
else:
|
|
|
|
|
# Fetch by trading partner ID
|
|
|
|
|
if frappe.db.exists("Shipping Account Address", trading_partner_id):
|
|
|
|
|
shipping_account = frappe.get_doc("Shipping Account Address", trading_partner_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Create Sales Order
|
|
|
|
|
sales_order = frappe.new_doc("Sales Order")
|
|
|
|
|
sales_order.naming_series = series_name
|
|
|
|
|
@ -224,6 +238,12 @@ def create_sps_sales_order(data: dict, setting_doc: str, path: str) -> None:
|
|
|
|
|
sales_order.shipping_address_name = shipping_address
|
|
|
|
|
sales_order.custom_do_not_apply_freight_rates = 1
|
|
|
|
|
sales_order.custom_sales_order_path = path
|
|
|
|
|
sales_order.custom_notes_for_extensiv = shipping_account.store_address
|
|
|
|
|
sales_order.custom_shipping_account_number = shipping_account.account_number
|
|
|
|
|
sales_order.custom_billing_code = shipping_account.billing_option
|
|
|
|
|
sales_order.custom_modeservice = shipping_account.modeservice
|
|
|
|
|
sales_order.custom_carrier = shipping_account.carrier
|
|
|
|
|
|
|
|
|
|
if contact_name:
|
|
|
|
|
sales_order.contact_person = contact_name
|
|
|
|
|
|
|
|
|
|
@ -264,6 +284,7 @@ def create_sps_sales_order_console(data: dict, setting_doc: str, path: str) -> N
|
|
|
|
|
po_no = order_header.get("PurchaseOrderNumber")
|
|
|
|
|
consumer_order_number = order_header.get("CustomerOrderNumber")
|
|
|
|
|
po_date = order_header.get("PurchaseOrderDate")
|
|
|
|
|
trading_partner_id = order_header.get("TradingPartnerId")
|
|
|
|
|
print(f"➡️ PO No: {po_no}, Customer Order No: {consumer_order_number}, PO Date: {po_date}")
|
|
|
|
|
|
|
|
|
|
print("🔧 Step 2: Fetching SPS Integration Settings...")
|
|
|
|
|
@ -325,6 +346,17 @@ def create_sps_sales_order_console(data: dict, setting_doc: str, path: str) -> N
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
print("📝 Step 8: Creating new Sales Order document...")
|
|
|
|
|
# Logic to fetch carrier, mode, service for partners (WWWG) and others partners to
|
|
|
|
|
if po_no:
|
|
|
|
|
if customer_name == doc.customer:
|
|
|
|
|
# Fetch by EDI number from po_no
|
|
|
|
|
edi_no = po_no.split("-")[1]
|
|
|
|
|
if frappe.db.exists("Shipping Account Address", edi_no):
|
|
|
|
|
shipping_account = frappe.get_doc("Shipping Account Address", edi_no)
|
|
|
|
|
else:
|
|
|
|
|
# Fetch by trading partner ID
|
|
|
|
|
if frappe.db.exists("Shipping Account Address", trading_partner_id):
|
|
|
|
|
shipping_account = frappe.get_doc("Shipping Account Address", trading_partner_id)
|
|
|
|
|
try:
|
|
|
|
|
sales_order = frappe.new_doc("Sales Order")
|
|
|
|
|
sales_order.naming_series = series_name
|
|
|
|
|
@ -338,6 +370,11 @@ def create_sps_sales_order_console(data: dict, setting_doc: str, path: str) -> N
|
|
|
|
|
sales_order.custom_do_not_apply_freight_rates = 1
|
|
|
|
|
sales_order.shipping_address_name = shipping_address
|
|
|
|
|
sales_order.custom_sales_order_path = path
|
|
|
|
|
sales_order.custom_notes_for_extensiv = shipping_account.store_address
|
|
|
|
|
sales_order.custom_shipping_account_number = shipping_account.account_number
|
|
|
|
|
sales_order.custom_billing_code = shipping_account.billing_option
|
|
|
|
|
sales_order.custom_modeservice = shipping_account.modeservice
|
|
|
|
|
sales_order.custom_carrier = shipping_account.carrier
|
|
|
|
|
if contact_name:
|
|
|
|
|
sales_order.contact_person = contact_name
|
|
|
|
|
print("✅ Sales Order initialized.")
|
|
|
|
|
|