Skip to content

Commit a244b2d

Browse files
committed
add dhl pickup and delivery date and time during parsing and fix packaging_type typo
1 parent e7951de commit a244b2d

File tree

4 files changed

+624
-7
lines changed

4 files changed

+624
-7
lines changed

openship/mappers/dhl/dhl_mapper.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,16 @@ def extract_details(quotes: List[E.quote_details], detail: Res.BkgDetailsType):
8282
return quotes + reduce(extract_quote, detail.QtdShp, [])
8383

8484
def extract_quote(quotes: List[E.quote_details], qtdshp: Res.QtdShpType) -> List[E.Quote]:
85-
if not qtdshp.QtdShpExChrg:
86-
return quotes
8785
ExtraCharges=list(map(lambda s: E.Charge(name=s.LocalServiceTypeName, value=float(s.ChargeValue)), qtdshp.QtdShpExChrg))
8886
Discount_ = reduce(lambda d, ec: d + ec.value if "Discount" in ec.name else d, ExtraCharges, 0)
8987
DutiesAndTaxes_ = reduce(lambda d, ec: d + ec.value if "TAXES PAID" in ec.name else d, ExtraCharges, 0)
9088
return quotes + [
9189
E.Quote.parse(
9290
carrier="DHL",
91+
delivery_date = str(qtdshp.DeliveryDate[0].DlvyDateTime),
92+
delivery_time = str(qtdshp.DeliveryTime),
93+
pickup_date = str(qtdshp.PickupDate),
94+
pickup_time = str(qtdshp.PickupCutoffTime),
9395
service_name=qtdshp.LocalProductName,
9496
service_type=qtdshp.NetworkTypeCode,
9597
base_charge=float(qtdshp.WeightCharge),

openship/mappers/fedex/fedex_mapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def create_quote_request(self, payload: E.quote_request) -> Rate.RateRequest:
5454

5555
totalWeight = reduce(lambda r, p: r + p.weight, payload.shipment_details.packages, 0)
5656

57-
packagin_type = "YOUR_PACKAGING" if not payload.shipment_details.packaging_type else payload.shipment_details.packaging_type
57+
packaging_type = "YOUR_PACKAGING" if not payload.shipment_details.packaging_type else payload.shipment_details.packaging_type
5858

5959
currency = "USD" if not payload.shipment_details.currency else payload.shipment_details.currency
6060

tests/dhl/__init__.py

Lines changed: 206 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
shipper = {"address": {"postal_code":"H3N1S4", "country_code":"CA"}}
44
recipient = {"address": {"city":"Lome", "country_code":"TG"}}
55
shipment_details = {"packages": [{"id":"1", "height":3, "lenght":10, "width":3,"weight":4.0}]}
6-
from openship.mappers.dhl.dhl_client import DHLClient
6+
from openship.mappers.dhl import DHLClient
77
client = DHLClient(...)
8-
from openship.mappers.dhl.dhl_proxy import init_proxy
8+
from openship.mappers.dhl import init_proxy
99
dhlProxy = init_proxy(client)
1010
from openship.domain.entities import Quote, jsonify
1111
payload = Quote.create(shipper=shipper, recipient=recipient, shipment_details=shipment_details)
@@ -14,4 +14,208 @@
1414
quotes = dhlProxy.mapper.parse_quote_response(response)
1515
print(jsonify(quotes))
1616
17+
'''
18+
19+
'''
20+
<?xml version="1.0" ?>
21+
<DCTResponse>
22+
<GetQuoteResponse>
23+
<Response>
24+
<ServiceHeader>
25+
<MessageTime>2018-06-21T11:33:15.103000+01:00</MessageTime>
26+
<MessageReference>1234567890123456789012345678901</MessageReference>
27+
<SiteID>...</SiteID>
28+
</ServiceHeader>
29+
</Response>
30+
<BkgDetails>
31+
<QtdShp>
32+
<OriginServiceArea>
33+
<FacilityCode>GTW</FacilityCode>
34+
<ServiceAreaCode>YUL</ServiceAreaCode>
35+
</OriginServiceArea>
36+
<DestinationServiceArea>
37+
<FacilityCode>LFW</FacilityCode>
38+
<ServiceAreaCode>LFW</ServiceAreaCode>
39+
</DestinationServiceArea>
40+
<GlobalProductCode>D</GlobalProductCode>
41+
<LocalProductCode>D</LocalProductCode>
42+
<ProductShortName>EXPRESS WORLDWIDE</ProductShortName>
43+
<LocalProductName>EXPRESS WORLDWIDE DOC</LocalProductName>
44+
<NetworkTypeCode>TD</NetworkTypeCode>
45+
<POfferedCustAgreement>N</POfferedCustAgreement>
46+
<TransInd>Y</TransInd>
47+
<PickupDate>2018-06-21</PickupDate>
48+
<PickupCutoffTime>PT17H30M</PickupCutoffTime>
49+
<BookingTime>PT16H30M</BookingTime>
50+
<CurrencyCode>CAD</CurrencyCode>
51+
<ExchangeRate>0.662335</ExchangeRate>
52+
<WeightCharge>195.319999999999993</WeightCharge>
53+
<WeightChargeTax>0.</WeightChargeTax>
54+
<TotalTransitDays>5</TotalTransitDays>
55+
<PickupPostalLocAddDays>0</PickupPostalLocAddDays>
56+
<DeliveryPostalLocAddDays>0</DeliveryPostalLocAddDays>
57+
<DeliveryTime>PT23H59M</DeliveryTime>
58+
<DimensionalWeight>0.647</DimensionalWeight>
59+
<WeightUnit>LB</WeightUnit>
60+
<PickupDayOfWeekNum>4</PickupDayOfWeekNum>
61+
<DestinationDayOfWeekNum>2</DestinationDayOfWeekNum>
62+
<QuotedWeight>4.</QuotedWeight>
63+
<QuotedWeightUOM>LB</QuotedWeightUOM>
64+
<QtdShpExChrg>
65+
<SpecialServiceType>FF</SpecialServiceType>
66+
<LocalServiceType>FF</LocalServiceType>
67+
<GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
68+
<LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
69+
<SOfferedCustAgreement>N</SOfferedCustAgreement>
70+
<ChargeCodeType>SCH</ChargeCodeType>
71+
<CurrencyCode>CAD</CurrencyCode>
72+
<ChargeValue>12.699999999999999</ChargeValue>
73+
<QtdSExtrChrgInAdCur>
74+
<ChargeValue>12.699999999999999</ChargeValue>
75+
<CurrencyCode>CAD</CurrencyCode>
76+
<CurrencyRoleTypeCode>BILLC</CurrencyRoleTypeCode>
77+
</QtdSExtrChrgInAdCur>
78+
<QtdSExtrChrgInAdCur>
79+
<ChargeValue>12.699999999999999</ChargeValue>
80+
<CurrencyCode>CAD</CurrencyCode>
81+
<CurrencyRoleTypeCode>PULCL</CurrencyRoleTypeCode>
82+
</QtdSExtrChrgInAdCur>
83+
<QtdSExtrChrgInAdCur>
84+
<ChargeValue>8.41</ChargeValue>
85+
<CurrencyCode>EUR</CurrencyCode>
86+
<CurrencyRoleTypeCode>BASEC</CurrencyRoleTypeCode>
87+
</QtdSExtrChrgInAdCur>
88+
</QtdShpExChrg>
89+
<PricingDate>2018-06-21</PricingDate>
90+
<ShippingCharge>208.02000000000001</ShippingCharge>
91+
<TotalTaxAmount>0.</TotalTaxAmount>
92+
<PickupWindowEarliestTime>09:00:00</PickupWindowEarliestTime>
93+
<PickupWindowLatestTime>19:00:00</PickupWindowLatestTime>
94+
<BookingCutoffOffset>PT1H</BookingCutoffOffset>
95+
<DeliveryDate>
96+
<DeliveryType>QDDC</DeliveryType>
97+
<DlvyDateTime>2018-06-26 11:59:00</DlvyDateTime>
98+
<DeliveryDateTimeOffset>+00:00</DeliveryDateTimeOffset>
99+
</DeliveryDate>
100+
</QtdShp>
101+
<QtdShp>
102+
<OriginServiceArea>
103+
<FacilityCode>GTW</FacilityCode>
104+
<ServiceAreaCode>YUL</ServiceAreaCode>
105+
</OriginServiceArea>
106+
<DestinationServiceArea>
107+
<FacilityCode>LFW</FacilityCode>
108+
<ServiceAreaCode>LFW</ServiceAreaCode>
109+
</DestinationServiceArea>
110+
<GlobalProductCode>7</GlobalProductCode>
111+
<LocalProductCode>7</LocalProductCode>
112+
<ProductShortName>EXPRESS EASY</ProductShortName>
113+
<LocalProductName>EXPRESS EASY DOC</LocalProductName>
114+
<NetworkTypeCode>TD</NetworkTypeCode>
115+
<POfferedCustAgreement>Y</POfferedCustAgreement>
116+
<TransInd>N</TransInd>
117+
<PickupDate>2018-06-21</PickupDate>
118+
<PickupCutoffTime>PT17H30M</PickupCutoffTime>
119+
<BookingTime>PT16H30M</BookingTime>
120+
<CurrencyCode>CAD</CurrencyCode>
121+
<ExchangeRate>0.662335</ExchangeRate>
122+
<WeightCharge>213.469999999999999</WeightCharge>
123+
<WeightChargeTax>0.</WeightChargeTax>
124+
<TotalTransitDays>5</TotalTransitDays>
125+
<PickupPostalLocAddDays>0</PickupPostalLocAddDays>
126+
<DeliveryPostalLocAddDays>0</DeliveryPostalLocAddDays>
127+
<DeliveryTime>PT23H59M</DeliveryTime>
128+
<DimensionalWeight>0.647</DimensionalWeight>
129+
<WeightUnit>LB</WeightUnit>
130+
<PickupDayOfWeekNum>4</PickupDayOfWeekNum>
131+
<DestinationDayOfWeekNum>2</DestinationDayOfWeekNum>
132+
<QuotedWeight>4.</QuotedWeight>
133+
<QuotedWeightUOM>LB</QuotedWeightUOM>
134+
<PricingDate>2018-06-21</PricingDate>
135+
<ShippingCharge>213.469999999999999</ShippingCharge>
136+
<TotalTaxAmount>0.</TotalTaxAmount>
137+
<PickupWindowEarliestTime>09:00:00</PickupWindowEarliestTime>
138+
<PickupWindowLatestTime>19:00:00</PickupWindowLatestTime>
139+
<BookingCutoffOffset>PT1H</BookingCutoffOffset>
140+
<DeliveryDate>
141+
<DeliveryType>QDDC</DeliveryType>
142+
<DlvyDateTime>2018-06-26 11:59:00</DlvyDateTime>
143+
<DeliveryDateTimeOffset>+00:00</DeliveryDateTimeOffset>
144+
</DeliveryDate>
145+
</QtdShp>
146+
</BkgDetails>
147+
<Srvs>
148+
<Srv>
149+
<GlobalProductCode>D</GlobalProductCode>
150+
<MrkSrv>
151+
<LocalProductCode>D</LocalProductCode>
152+
<ProductShortName>EXPRESS WORLDWIDE</ProductShortName>
153+
<LocalProductName>EXPRESS WORLDWIDE DOC</LocalProductName>
154+
<ProductDesc>EXPRESS WORLDWIDE DOC</ProductDesc>
155+
<NetworkTypeCode>TD</NetworkTypeCode>
156+
<POfferedCustAgreement>N</POfferedCustAgreement>
157+
<TransInd>Y</TransInd>
158+
<LocalProductCtryCd>CA</LocalProductCtryCd>
159+
<GlobalServiceType>D</GlobalServiceType>
160+
<LocalServiceName>EXPRESS WORLDWIDE DOC</LocalServiceName>
161+
</MrkSrv>
162+
<MrkSrv>
163+
<LocalServiceType>FF</LocalServiceType>
164+
<GlobalServiceName>FUEL SURCHARGE</GlobalServiceName>
165+
<LocalServiceTypeName>FUEL SURCHARGE</LocalServiceTypeName>
166+
<SOfferedCustAgreement>N</SOfferedCustAgreement>
167+
<ChargeCodeType>SCH</ChargeCodeType>
168+
<MrkSrvInd>N</MrkSrvInd>
169+
<GlobalServiceType>FF</GlobalServiceType>
170+
<LocalServiceName>FUEL SURCHARGE</LocalServiceName>
171+
</MrkSrv>
172+
</Srv>
173+
<Srv>
174+
<GlobalProductCode>7</GlobalProductCode>
175+
<MrkSrv>
176+
<LocalProductCode>7</LocalProductCode>
177+
<ProductShortName>EXPRESS EASY</ProductShortName>
178+
<LocalProductName>EXPRESS EASY DOC</LocalProductName>
179+
<ProductDesc>EXPRESS EASY DOC</ProductDesc>
180+
<NetworkTypeCode>TD</NetworkTypeCode>
181+
<POfferedCustAgreement>Y</POfferedCustAgreement>
182+
<TransInd>N</TransInd>
183+
<LocalProductCtryCd>CA</LocalProductCtryCd>
184+
<GlobalServiceType>7</GlobalServiceType>
185+
<LocalServiceName>EXPRESS EASY DOC</LocalServiceName>
186+
</MrkSrv>
187+
</Srv>
188+
</Srvs>
189+
<Note>
190+
<ActionStatus>Success</ActionStatus>
191+
</Note>
192+
</GetQuoteResponse>
193+
</DCTResponse>
194+
'''
195+
196+
'''
197+
[
198+
[
199+
{
200+
"base_charge": 195.32,
201+
"carrier": "DHL",
202+
"delivery_date": null,
203+
"delivery_time": null,
204+
"discount": 0,
205+
"duties_and_taxes": 0,
206+
"extra_charges": [
207+
{
208+
"name": "FUEL SURCHARGE",
209+
"value": 12.7
210+
}
211+
],
212+
"pickup_date": null,
213+
"pickup_time": null,
214+
"service_name": "EXPRESS WORLDWIDE DOC",
215+
"service_type": "TD",
216+
"total_charge": 208.02
217+
}
218+
],
219+
[]
220+
]
17221
'''

0 commit comments

Comments
 (0)