Skip to content

Commit 740180a

Browse files
committed
Pass hs tariff requirement by publisher
1 parent 64b8d2c commit 740180a

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/ShipmentDetails/WooShippingShipmentDetailsViewModel.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ final class WooShippingShipmentDetailsViewModel: ObservableObject {
7070
order: order,
7171
shipment: shipment,
7272
originCountryCode: originCountryCodePublisher(),
73+
isHSTariffNumberRequired: isHSTariffNumberRequiredPublisher(),
7374
storageManager: storageManager
7475
) { [weak self] form in
7576
self?.customsForm = form
@@ -506,6 +507,13 @@ private extension WooShippingShipmentDetailsViewModel {
506507
.map(\.?.country)
507508
.eraseToAnyPublisher()
508509
}
510+
511+
func isHSTariffNumberRequiredPublisher() -> AnyPublisher<Bool, Never> {
512+
$destinationAddress
513+
/// HS tariff number is required for EU countries
514+
.map { _ in return false }
515+
.eraseToAnyPublisher()
516+
}
509517
}
510518

511519
private extension WooShippingShipmentDetailsViewModel {

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsFormViewModel.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ final class WooShippingCustomsFormViewModel: ObservableObject {
4242
init(order: Order,
4343
shipment: Shipment,
4444
originCountryCode: AnyPublisher<String?, Never>? = nil,
45+
isHSTariffNumberRequired: AnyPublisher<Bool, Never>? = nil,
4546
storageManager: StorageManagerType = ServiceLocator.storageManager,
4647
onFormReady: @escaping (ShippingLabelCustomsForm) -> ()) {
4748
self.onFormReady = onFormReady
@@ -54,6 +55,7 @@ final class WooShippingCustomsFormViewModel: ObservableObject {
5455
itemWeight: $0.weight,
5556
currencySymbol: currencySymbol(from: order),
5657
originCountryCode: originCountryCode,
58+
isHSTariffNumberRequired: isHSTariffNumberRequired,
5759
storageManager: storageManager)
5860
}
5961

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Customs/WooShippingCustomsItemViewModel.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,16 @@ final class WooShippingCustomsItemViewModel: ObservableObject {
6969
///
7070
/// Introduced to enforce tariff validation
7171
/// if `true` then `hsTariffNumber` must be valid for `requiredInformationIsEntered` to be `true`
72-
private let isHSTariffNumberRequired: Bool
72+
@Published private var isHSTariffNumberRequired: Bool = false
7373

7474
init(itemName: String,
7575
itemProductID: Int64,
7676
itemQuantity: Decimal,
7777
itemValue: Double,
7878
itemWeight: Double,
7979
currencySymbol: String,
80-
isHSTariffNumberRequired: Bool = false,
8180
originCountryCode: AnyPublisher<String?, Never>? = nil,
81+
isHSTariffNumberRequired: AnyPublisher<Bool, Never>? = nil,
8282
storageManager: StorageManagerType = ServiceLocator.storageManager) {
8383
self.title = itemName
8484
self.description = itemName
@@ -93,11 +93,13 @@ final class WooShippingCustomsItemViewModel: ObservableObject {
9393

9494
self.currencySymbol = currencySymbol
9595
self.storageManager = storageManager
96-
self.isHSTariffNumberRequired = isHSTariffNumberRequired
9796

9897
originCountryCode?
9998
.assign(to: &$originCountryCode)
10099

100+
isHSTariffNumberRequired?
101+
.assign(to: &$isHSTariffNumberRequired)
102+
101103
fetchCountries()
102104

103105
combineToPreselectCountry()

0 commit comments

Comments
 (0)