63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
import frappe
|
|
from frappe.utils import cint
|
|
|
|
|
|
def execute():
|
|
frappe.reload_doc("e_commerce", "doctype", "e_commerce_settings")
|
|
frappe.reload_doc("portal", "doctype", "website_filter_field")
|
|
frappe.reload_doc("portal", "doctype", "website_attribute")
|
|
|
|
products_settings_fields = [
|
|
"hide_variants", "products_per_page",
|
|
"enable_attribute_filters", "enable_field_filters"
|
|
]
|
|
|
|
shopping_cart_settings_fields = [
|
|
"enabled", "show_attachments", "show_price",
|
|
"show_stock_availability", "enable_variants", "show_contact_us_button",
|
|
"show_quantity_in_website", "show_apply_coupon_code_in_website",
|
|
"allow_items_not_in_stock", "company", "price_list", "default_customer_group",
|
|
"quotation_series", "enable_checkout", "payment_success_url",
|
|
"payment_gateway_account", "save_quotations_as_draft"
|
|
]
|
|
|
|
settings = frappe.get_doc("E Commerce Settings")
|
|
|
|
def map_into_e_commerce_settings(doctype, fields):
|
|
singles = frappe.qb.DocType("Singles")
|
|
query = (
|
|
frappe.qb.from_(singles)
|
|
.select(
|
|
singles.field, singles.value
|
|
).where(
|
|
(singles.doctype == doctype)
|
|
& (singles.field in fields)
|
|
)
|
|
)
|
|
data = query.run(as_dict=True)
|
|
|
|
# {'enable_attribute_filters': '1', ...}
|
|
mapper = {row.field: row.value for row in data}
|
|
|
|
for key, value in mapper.items():
|
|
value = cint(value) if (value and value.isdigit()) else value
|
|
settings.update({key: value})
|
|
|
|
settings.save()
|
|
|
|
# shift data to E Commerce Settings
|
|
map_into_e_commerce_settings("Products Settings", products_settings_fields)
|
|
map_into_e_commerce_settings("Shopping Cart Settings", shopping_cart_settings_fields)
|
|
|
|
# move filters and attributes tables to E Commerce Settings from Products Settings
|
|
for doctype in ("Website Filter Field", "Website Attribute"):
|
|
frappe.db.set_value(
|
|
doctype,
|
|
{"parent": "Products Settings"},
|
|
{
|
|
"parenttype": "E Commerce Settings",
|
|
"parent": "E Commerce Settings"
|
|
},
|
|
update_modified=False
|
|
)
|