Skip to content

Commit

Permalink
fix: show preferred service
Browse files Browse the repository at this point in the history
Resolves #18
  • Loading branch information
barredterra committed Mar 8, 2024
1 parent b232c75 commit 50c3bda
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@ def get_service_dict(self, response):
available_service.service_provider = LETMESHIP_PROVIDER
available_service.id = basic_info["id"]
available_service.carrier = basic_info["carrier"]
available_service.carrier_name = basic_info["name"]
available_service.service_name = ""
available_service.carrier_name = basic_info["carrier"]
available_service.service_name = basic_info["name"]
available_service.is_preferred = 0
available_service.real_weight = price_info["realWeight"]
available_service.total_price = price_info["netPrice"]
Expand Down
8 changes: 5 additions & 3 deletions erpnext_shipping/erpnext_shipping/shipping.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ def fetch_shipping_rates(
)
or []
)
letmeship_prices = match_parcel_service_type_carrier(letmeship_prices, ["carrier", "carrier_name"])
shipment_prices = shipment_prices + letmeship_prices
letmeship_prices = match_parcel_service_type_carrier(letmeship_prices, "carrier", "service_name")
shipment_prices += letmeship_prices

if sendcloud_enabled and pickup_from_type == "Company":
sendcloud = SendCloudUtils()
Expand All @@ -76,7 +76,9 @@ def fetch_shipping_rates(
)
or []
)
shipment_prices = shipment_prices + sendcloud_prices
sendcloud_prices = match_parcel_service_type_carrier(sendcloud_prices, "carrier", "service_name")
shipment_prices += sendcloud_prices

shipment_prices = sorted(shipment_prices, key=lambda k: k["total_price"])
return shipment_prices

Expand Down
9 changes: 5 additions & 4 deletions erpnext_shipping/erpnext_shipping/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,18 +69,19 @@ def get_contact(contact_name):
return contact


def match_parcel_service_type_carrier(shipment_prices, reference):
def match_parcel_service_type_carrier(shipment_prices: list[dict], carrier_fieldname: str, service_fieldname: str):
from erpnext_shipping.erpnext_shipping.doctype.parcel_service_type.parcel_service_type import (
match_parcel_service_type_alias,
)

for idx, prices in enumerate(shipment_prices):
service_name = match_parcel_service_type_alias(prices.get(reference[0]), prices.get(reference[1]))
service_name = match_parcel_service_type_alias(prices.get(carrier_fieldname), prices.get(service_fieldname))
is_preferred = frappe.db.get_value(
"Parcel Service Type", service_name, "show_in_preferred_services_list"
)
shipment_prices[idx].service_name = service_name
shipment_prices[idx].is_preferred = is_preferred
if is_preferred:
shipment_prices[idx].is_preferred = is_preferred

return shipment_prices


Expand Down

0 comments on commit 50c3bda

Please sign in to comment.