style: bulk format code with black
v13 port because otherwise backports will result in conflicts always
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
import json
|
||||
|
||||
import frappe
|
||||
@@ -11,9 +10,10 @@ from frappe.utils.nestedset import get_root_of
|
||||
def get_list(doctype, start, limit, fields, filters, order_by):
|
||||
pass
|
||||
|
||||
|
||||
def get_hub_connection():
|
||||
if frappe.db.exists('Data Migration Connector', 'Hub Connector'):
|
||||
hub_connector = frappe.get_doc('Data Migration Connector', 'Hub Connector')
|
||||
if frappe.db.exists("Data Migration Connector", "Hub Connector"):
|
||||
hub_connector = frappe.get_doc("Data Migration Connector", "Hub Connector")
|
||||
hub_connection = hub_connector.get_connection()
|
||||
return hub_connection.connection
|
||||
|
||||
@@ -21,10 +21,11 @@ def get_hub_connection():
|
||||
hub_connection = FrappeClient(frappe.conf.hub_url)
|
||||
return hub_connection
|
||||
|
||||
|
||||
def make_opportunity(buyer_name, email_id):
|
||||
buyer_name = "HUB-" + buyer_name
|
||||
|
||||
if not frappe.db.exists('Lead', {'email_id': email_id}):
|
||||
if not frappe.db.exists("Lead", {"email_id": email_id}):
|
||||
lead = frappe.new_doc("Lead")
|
||||
lead.lead_name = buyer_name
|
||||
lead.email_id = email_id
|
||||
@@ -32,9 +33,10 @@ def make_opportunity(buyer_name, email_id):
|
||||
|
||||
o = frappe.new_doc("Opportunity")
|
||||
o.opportunity_from = "Lead"
|
||||
o.lead = frappe.get_all("Lead", filters={"email_id": email_id}, fields = ["name"])[0]["name"]
|
||||
o.lead = frappe.get_all("Lead", filters={"email_id": email_id}, fields=["name"])[0]["name"]
|
||||
o.save(ignore_permissions=True)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def make_rfq_and_send_opportunity(item, supplier):
|
||||
supplier = make_supplier(supplier)
|
||||
@@ -43,105 +45,110 @@ def make_rfq_and_send_opportunity(item, supplier):
|
||||
rfq = make_rfq(item, supplier, contact)
|
||||
status = send_opportunity(contact)
|
||||
|
||||
return {
|
||||
'rfq': rfq,
|
||||
'hub_document_created': status
|
||||
}
|
||||
return {"rfq": rfq, "hub_document_created": status}
|
||||
|
||||
|
||||
def make_supplier(supplier):
|
||||
# make supplier if not already exists
|
||||
supplier = frappe._dict(json.loads(supplier))
|
||||
|
||||
if not frappe.db.exists('Supplier', {'supplier_name': supplier.supplier_name}):
|
||||
supplier_doc = frappe.get_doc({
|
||||
'doctype': 'Supplier',
|
||||
'supplier_name': supplier.supplier_name,
|
||||
'supplier_group': supplier.supplier_group,
|
||||
'supplier_email': supplier.supplier_email
|
||||
}).insert()
|
||||
if not frappe.db.exists("Supplier", {"supplier_name": supplier.supplier_name}):
|
||||
supplier_doc = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Supplier",
|
||||
"supplier_name": supplier.supplier_name,
|
||||
"supplier_group": supplier.supplier_group,
|
||||
"supplier_email": supplier.supplier_email,
|
||||
}
|
||||
).insert()
|
||||
else:
|
||||
supplier_doc = frappe.get_doc('Supplier', supplier.supplier_name)
|
||||
supplier_doc = frappe.get_doc("Supplier", supplier.supplier_name)
|
||||
|
||||
return supplier_doc
|
||||
|
||||
|
||||
def make_contact(supplier):
|
||||
contact_name = get_default_contact('Supplier', supplier.supplier_name)
|
||||
contact_name = get_default_contact("Supplier", supplier.supplier_name)
|
||||
# make contact if not already exists
|
||||
if not contact_name:
|
||||
contact = frappe.get_doc({
|
||||
'doctype': 'Contact',
|
||||
'first_name': supplier.supplier_name,
|
||||
'is_primary_contact': 1,
|
||||
'links': [
|
||||
{'link_doctype': 'Supplier', 'link_name': supplier.supplier_name}
|
||||
]
|
||||
})
|
||||
contact = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Contact",
|
||||
"first_name": supplier.supplier_name,
|
||||
"is_primary_contact": 1,
|
||||
"links": [{"link_doctype": "Supplier", "link_name": supplier.supplier_name}],
|
||||
}
|
||||
)
|
||||
contact.add_email(supplier.supplier_email, is_primary=True)
|
||||
contact.insert()
|
||||
else:
|
||||
contact = frappe.get_doc('Contact', contact_name)
|
||||
contact = frappe.get_doc("Contact", contact_name)
|
||||
|
||||
return contact
|
||||
|
||||
|
||||
def make_item(item):
|
||||
# make item if not already exists
|
||||
item = frappe._dict(json.loads(item))
|
||||
|
||||
if not frappe.db.exists('Item', {'item_code': item.item_code}):
|
||||
item_doc = frappe.get_doc({
|
||||
'doctype': 'Item',
|
||||
'item_code': item.item_code,
|
||||
'item_group': item.item_group,
|
||||
'is_item_from_hub': 1
|
||||
}).insert()
|
||||
if not frappe.db.exists("Item", {"item_code": item.item_code}):
|
||||
item_doc = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Item",
|
||||
"item_code": item.item_code,
|
||||
"item_group": item.item_group,
|
||||
"is_item_from_hub": 1,
|
||||
}
|
||||
).insert()
|
||||
else:
|
||||
item_doc = frappe.get_doc('Item', item.item_code)
|
||||
item_doc = frappe.get_doc("Item", item.item_code)
|
||||
|
||||
return item_doc
|
||||
|
||||
|
||||
def make_rfq(item, supplier, contact):
|
||||
# make rfq
|
||||
rfq = frappe.get_doc({
|
||||
'doctype': 'Request for Quotation',
|
||||
'transaction_date': nowdate(),
|
||||
'status': 'Draft',
|
||||
'company': frappe.db.get_single_value('Marketplace Settings', 'company'),
|
||||
'message_for_supplier': 'Please supply the specified items at the best possible rates',
|
||||
'suppliers': [
|
||||
{ 'supplier': supplier.name, 'contact': contact.name }
|
||||
],
|
||||
'items': [
|
||||
{
|
||||
'item_code': item.item_code,
|
||||
'qty': 1,
|
||||
'schedule_date': nowdate(),
|
||||
'warehouse': item.default_warehouse or get_root_of("Warehouse"),
|
||||
'description': item.description,
|
||||
'uom': item.stock_uom
|
||||
}
|
||||
]
|
||||
}).insert()
|
||||
rfq = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Request for Quotation",
|
||||
"transaction_date": nowdate(),
|
||||
"status": "Draft",
|
||||
"company": frappe.db.get_single_value("Marketplace Settings", "company"),
|
||||
"message_for_supplier": "Please supply the specified items at the best possible rates",
|
||||
"suppliers": [{"supplier": supplier.name, "contact": contact.name}],
|
||||
"items": [
|
||||
{
|
||||
"item_code": item.item_code,
|
||||
"qty": 1,
|
||||
"schedule_date": nowdate(),
|
||||
"warehouse": item.default_warehouse or get_root_of("Warehouse"),
|
||||
"description": item.description,
|
||||
"uom": item.stock_uom,
|
||||
}
|
||||
],
|
||||
}
|
||||
).insert()
|
||||
|
||||
rfq.save()
|
||||
rfq.submit()
|
||||
return rfq
|
||||
|
||||
|
||||
def send_opportunity(contact):
|
||||
# Make Hub Message on Hub with lead data
|
||||
doc = {
|
||||
'doctype': 'Lead',
|
||||
'lead_name': frappe.db.get_single_value('Marketplace Settings', 'company'),
|
||||
'email_id': frappe.db.get_single_value('Marketplace Settings', 'user')
|
||||
"doctype": "Lead",
|
||||
"lead_name": frappe.db.get_single_value("Marketplace Settings", "company"),
|
||||
"email_id": frappe.db.get_single_value("Marketplace Settings", "user"),
|
||||
}
|
||||
|
||||
args = frappe._dict(dict(
|
||||
doctype='Hub Message',
|
||||
reference_doctype='Lead',
|
||||
data=json.dumps(doc),
|
||||
user=contact.email_id
|
||||
))
|
||||
args = frappe._dict(
|
||||
dict(
|
||||
doctype="Hub Message", reference_doctype="Lead", data=json.dumps(doc), user=contact.email_id
|
||||
)
|
||||
)
|
||||
|
||||
connection = get_hub_connection()
|
||||
response = connection.insert('Hub Message', args)
|
||||
response = connection.insert("Hub Message", args)
|
||||
|
||||
return response.ok
|
||||
|
||||
Reference in New Issue
Block a user