convexity-api-client 0.21.0.dev332__py3-none-any.whl → 0.21.0.dev336__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- convexity_api_client/api/v1/crm_create_sales_rep.py +186 -0
- convexity_api_client/api/v1/crm_delete_sales_rep.py +182 -0
- convexity_api_client/api/v1/crm_get_sales_rep.py +182 -0
- convexity_api_client/api/v1/crm_list_sales_reps.py +236 -0
- convexity_api_client/api/v1/crm_update_sales_rep.py +202 -0
- convexity_api_client/api/v1/inventory_assign_item_warehouse_location.py +206 -0
- convexity_api_client/api/v1/inventory_create_cost_list_vendor_assignment.py +202 -0
- convexity_api_client/api/v1/inventory_create_price_list_channel_assignment.py +202 -0
- convexity_api_client/api/v1/inventory_create_price_list_customer_assignment.py +202 -0
- convexity_api_client/api/v1/inventory_delete_cost_list_vendor_assignment.py +196 -0
- convexity_api_client/api/v1/inventory_delete_price_list_channel_assignment.py +196 -0
- convexity_api_client/api/v1/inventory_delete_price_list_customer_assignment.py +196 -0
- convexity_api_client/api/v1/inventory_list_cost_list_vendor_assignments.py +202 -0
- convexity_api_client/api/v1/inventory_list_item_cost_list_entries.py +182 -0
- convexity_api_client/api/v1/inventory_list_item_price_list_entries.py +182 -0
- convexity_api_client/api/v1/inventory_list_item_warehouse_locations.py +212 -0
- convexity_api_client/api/v1/inventory_list_price_list_channel_assignments.py +202 -0
- convexity_api_client/api/v1/inventory_list_price_list_customer_assignments.py +202 -0
- convexity_api_client/api/v1/inventory_list_warehouse_location_items.py +226 -0
- convexity_api_client/api/v1/inventory_update_cost_list_vendor_assignment.py +216 -0
- convexity_api_client/api/v1/inventory_update_price_list_channel_assignment.py +216 -0
- convexity_api_client/api/v1/inventory_update_price_list_customer_assignment.py +216 -0
- convexity_api_client/api/v1/purchasing_create_item_sourcing.py +190 -0
- convexity_api_client/api/v1/purchasing_deactivate_item_sourcing.py +182 -0
- convexity_api_client/api/v1/purchasing_get_item_sourcing_options.py +166 -0
- convexity_api_client/api/v1/purchasing_list_item_sourcing.py +382 -0
- convexity_api_client/api/v1/purchasing_update_item_sourcing.py +202 -0
- convexity_api_client/api/v1/purchasing_upsert_item_sourcing_cost.py +206 -0
- convexity_api_client/api/v1/sales_list_orders.py +20 -0
- convexity_api_client/api/v1/warehouse_workflow_cancel_pick_pack_ship.py +182 -0
- convexity_api_client/api/v1/warehouse_workflow_complete_pick_pack_ship_pack.py +202 -0
- convexity_api_client/api/v1/warehouse_workflow_complete_pick_pack_ship_pick.py +202 -0
- convexity_api_client/api/v1/warehouse_workflow_create_pick_pack_ship.py +186 -0
- convexity_api_client/api/v1/warehouse_workflow_generate_pick_pack_ship_pdf.py +188 -0
- convexity_api_client/api/v1/warehouse_workflow_get_pick_pack_ship.py +182 -0
- convexity_api_client/api/v1/warehouse_workflow_mark_pick_pack_ship_shipped.py +202 -0
- convexity_api_client/api/v1/warehouse_workflow_save_pick_pack_ship_shipment.py +202 -0
- convexity_api_client/models/__init__.py +134 -0
- convexity_api_client/models/adjust_stock_request.py +20 -8
- convexity_api_client/models/assign_inventory_item_location_request.py +108 -0
- convexity_api_client/models/assign_inventory_item_location_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/bulk_upsert_customer_payload.py +20 -0
- convexity_api_client/models/bulk_upsert_sales_order_payload.py +40 -0
- convexity_api_client/models/complete_pick_pack_ship_pack_request.py +75 -0
- convexity_api_client/models/complete_pick_pack_ship_request.py +97 -0
- convexity_api_client/models/cost_list_entry_response.py +77 -0
- convexity_api_client/models/cost_list_vendor_assignment_response.py +149 -0
- convexity_api_client/models/cost_list_vendor_assignment_response_ext_data_type_0.py +47 -0
- convexity_api_client/models/cost_rule.py +53 -0
- convexity_api_client/models/cost_rule_response.py +22 -0
- convexity_api_client/models/cost_source_type.py +9 -0
- convexity_api_client/models/create_cost_list_request.py +4 -5
- convexity_api_client/models/create_cost_list_vendor_assignment_request.py +116 -0
- convexity_api_client/models/create_cost_list_vendor_assignment_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/create_customer_request.py +20 -0
- convexity_api_client/models/create_item_sourcing_request.py +256 -0
- convexity_api_client/models/create_item_sourcing_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/create_pick_pack_ship_request.py +153 -0
- convexity_api_client/models/create_price_list_channel_assignment_request.py +116 -0
- convexity_api_client/models/create_price_list_channel_assignment_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/create_price_list_customer_assignment_request.py +116 -0
- convexity_api_client/models/create_price_list_customer_assignment_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/create_price_list_request.py +4 -5
- convexity_api_client/models/create_sales_order_line_request.py +40 -8
- convexity_api_client/models/create_sales_order_request.py +40 -0
- convexity_api_client/models/create_sales_rep_request.py +181 -0
- convexity_api_client/models/create_sales_rep_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/customer.py +53 -0
- convexity_api_client/models/customer_response.py +14 -0
- convexity_api_client/models/inventory_config.py +53 -0
- convexity_api_client/models/inventory_config_response.py +28 -0
- convexity_api_client/models/inventory_item.py +43 -0
- convexity_api_client/models/inventory_item_location.py +237 -0
- convexity_api_client/models/inventory_item_location_assignment_response.py +150 -0
- convexity_api_client/models/inventory_item_location_assignment_response_ext_data_type_0.py +47 -0
- convexity_api_client/models/inventory_item_type.py +0 -1
- convexity_api_client/models/item_sourcing.py +41 -0
- convexity_api_client/models/item_sourcing_item_option.py +107 -0
- convexity_api_client/models/item_sourcing_options_response.py +120 -0
- convexity_api_client/models/item_sourcing_response.py +360 -0
- convexity_api_client/models/item_sourcing_response_ext_data_type_0.py +47 -0
- convexity_api_client/models/item_sourcing_uom_option.py +77 -0
- convexity_api_client/models/item_sourcing_vendor_option.py +77 -0
- convexity_api_client/models/item_warehouse_location_response.py +248 -0
- convexity_api_client/models/list_cost_list_entries_response.py +83 -0
- convexity_api_client/models/list_cost_list_vendor_assignments_response.py +83 -0
- convexity_api_client/models/list_item_sourcing_response.py +83 -0
- convexity_api_client/models/list_item_warehouse_locations_response.py +83 -0
- convexity_api_client/models/list_price_list_channel_assignments_response.py +83 -0
- convexity_api_client/models/list_price_list_customer_assignments_response.py +83 -0
- convexity_api_client/models/list_price_list_entries_response.py +83 -0
- convexity_api_client/models/list_sales_reps_response.py +83 -0
- convexity_api_client/models/list_warehouse_location_items_response.py +83 -0
- convexity_api_client/models/mark_pick_pack_ship_shipped_request.py +84 -0
- convexity_api_client/models/pick_pack_ship_line_request.py +100 -0
- convexity_api_client/models/pick_pack_ship_packed_line_request.py +111 -0
- convexity_api_client/models/pick_pack_ship_picked_line_request.py +91 -0
- convexity_api_client/models/pick_pack_ship_response.py +111 -0
- convexity_api_client/models/price_list.py +41 -0
- convexity_api_client/models/price_list_channel_assignment_response.py +149 -0
- convexity_api_client/models/price_list_channel_assignment_response_ext_data_type_0.py +47 -0
- convexity_api_client/models/price_list_customer_assignment_response.py +149 -0
- convexity_api_client/models/price_list_customer_assignment_response_ext_data_type_0.py +47 -0
- convexity_api_client/models/price_list_entry_response.py +77 -0
- convexity_api_client/models/price_source_type.py +9 -0
- convexity_api_client/models/project.py +43 -0
- convexity_api_client/models/purchase_order_line.py +101 -0
- convexity_api_client/models/purchase_order_line_request.py +20 -8
- convexity_api_client/models/purchase_order_line_response.py +103 -0
- convexity_api_client/models/purchasing_list_item_sourcing_filter_operator_type_0.py +19 -0
- convexity_api_client/models/purchasing_list_item_sourcing_sort_direction_type_0.py +9 -0
- convexity_api_client/models/resolve_cost_response.py +22 -0
- convexity_api_client/models/resolve_price_response.py +20 -0
- convexity_api_client/models/sales_invoice_line.py +121 -0
- convexity_api_client/models/sales_invoice_line_request.py +40 -8
- convexity_api_client/models/sales_invoice_line_response.py +121 -0
- convexity_api_client/models/sales_order.py +73 -0
- convexity_api_client/models/sales_order_line.py +121 -0
- convexity_api_client/models/sales_order_line_response.py +123 -0
- convexity_api_client/models/sales_order_response.py +28 -0
- convexity_api_client/models/sales_rep.py +279 -0
- convexity_api_client/models/sales_rep_response.py +185 -0
- convexity_api_client/models/sales_rep_response_ext_data_type_0.py +47 -0
- convexity_api_client/models/save_pick_pack_ship_shipment_request.py +163 -0
- convexity_api_client/models/stock_balance.py +20 -8
- convexity_api_client/models/update_customer_request.py +20 -0
- convexity_api_client/models/update_item_sourcing_request.py +312 -0
- convexity_api_client/models/update_item_sourcing_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/update_list_assignment_request.py +111 -0
- convexity_api_client/models/update_list_assignment_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/update_sales_order_request.py +40 -0
- convexity_api_client/models/update_sales_rep_request.py +211 -0
- convexity_api_client/models/update_sales_rep_request_ext_data_type_0.py +47 -0
- convexity_api_client/models/upsert_inventory_config_request.py +40 -0
- convexity_api_client/models/upsert_item_sourcing_cost_request.py +62 -0
- convexity_api_client/models/warehouse_location.py +43 -0
- convexity_api_client/models/warehouse_location_item_response.py +160 -0
- {convexity_api_client-0.21.0.dev332.dist-info → convexity_api_client-0.21.0.dev336.dist-info}/METADATA +1 -1
- {convexity_api_client-0.21.0.dev332.dist-info → convexity_api_client-0.21.0.dev336.dist-info}/RECORD +140 -41
- {convexity_api_client-0.21.0.dev332.dist-info → convexity_api_client-0.21.0.dev336.dist-info}/WHEEL +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from collections.abc import Mapping
|
|
4
|
+
from typing import TYPE_CHECKING, Any, TypeVar
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from ..models.price_list_response import PriceListResponse
|
|
11
|
+
from ..models.price_rule_response import PriceRuleResponse
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="PriceListEntryResponse")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class PriceListEntryResponse:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
rule (PriceRuleResponse):
|
|
22
|
+
price_list (PriceListResponse):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
rule: PriceRuleResponse
|
|
26
|
+
price_list: PriceListResponse
|
|
27
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
|
+
|
|
29
|
+
def to_dict(self) -> dict[str, Any]:
|
|
30
|
+
rule = self.rule.to_dict()
|
|
31
|
+
|
|
32
|
+
price_list = self.price_list.to_dict()
|
|
33
|
+
|
|
34
|
+
field_dict: dict[str, Any] = {}
|
|
35
|
+
field_dict.update(self.additional_properties)
|
|
36
|
+
field_dict.update(
|
|
37
|
+
{
|
|
38
|
+
"rule": rule,
|
|
39
|
+
"price_list": price_list,
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
return field_dict
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
47
|
+
from ..models.price_list_response import PriceListResponse
|
|
48
|
+
from ..models.price_rule_response import PriceRuleResponse
|
|
49
|
+
|
|
50
|
+
d = dict(src_dict)
|
|
51
|
+
rule = PriceRuleResponse.from_dict(d.pop("rule"))
|
|
52
|
+
|
|
53
|
+
price_list = PriceListResponse.from_dict(d.pop("price_list"))
|
|
54
|
+
|
|
55
|
+
price_list_entry_response = cls(
|
|
56
|
+
rule=rule,
|
|
57
|
+
price_list=price_list,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
price_list_entry_response.additional_properties = d
|
|
61
|
+
return price_list_entry_response
|
|
62
|
+
|
|
63
|
+
@property
|
|
64
|
+
def additional_keys(self) -> list[str]:
|
|
65
|
+
return list(self.additional_properties.keys())
|
|
66
|
+
|
|
67
|
+
def __getitem__(self, key: str) -> Any:
|
|
68
|
+
return self.additional_properties[key]
|
|
69
|
+
|
|
70
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
71
|
+
self.additional_properties[key] = value
|
|
72
|
+
|
|
73
|
+
def __delitem__(self, key: str) -> None:
|
|
74
|
+
del self.additional_properties[key]
|
|
75
|
+
|
|
76
|
+
def __contains__(self, key: str) -> bool:
|
|
77
|
+
return key in self.additional_properties
|
|
@@ -43,6 +43,7 @@ if TYPE_CHECKING:
|
|
|
43
43
|
from ..models.inventory_item_category import InventoryItemCategory
|
|
44
44
|
from ..models.inventory_item_classification import InventoryItemClassification
|
|
45
45
|
from ..models.inventory_item_kpi import InventoryItemKpi
|
|
46
|
+
from ..models.inventory_item_location import InventoryItemLocation
|
|
46
47
|
from ..models.inventory_kpi_snapshot import InventoryKpiSnapshot
|
|
47
48
|
from ..models.inventory_replenishment_policy import InventoryReplenishmentPolicy
|
|
48
49
|
from ..models.issue import Issue
|
|
@@ -129,6 +130,7 @@ class Project:
|
|
|
129
130
|
import_jobs (list[ImportJob] | None | Unset):
|
|
130
131
|
item_templates (list[ItemTemplate] | None | Unset):
|
|
131
132
|
inventory_items (list[InventoryItem] | None | Unset):
|
|
133
|
+
inventory_item_locations (list[InventoryItemLocation] | None | Unset):
|
|
132
134
|
item_categories (list[ItemCategory] | None | Unset):
|
|
133
135
|
item_template_categories (list[ItemTemplateCategory] | None | Unset):
|
|
134
136
|
inventory_item_categories (list[InventoryItemCategory] | None | Unset):
|
|
@@ -228,6 +230,7 @@ class Project:
|
|
|
228
230
|
import_jobs: list[ImportJob] | None | Unset = UNSET
|
|
229
231
|
item_templates: list[ItemTemplate] | None | Unset = UNSET
|
|
230
232
|
inventory_items: list[InventoryItem] | None | Unset = UNSET
|
|
233
|
+
inventory_item_locations: list[InventoryItemLocation] | None | Unset = UNSET
|
|
231
234
|
item_categories: list[ItemCategory] | None | Unset = UNSET
|
|
232
235
|
item_template_categories: list[ItemTemplateCategory] | None | Unset = UNSET
|
|
233
236
|
inventory_item_categories: list[InventoryItemCategory] | None | Unset = UNSET
|
|
@@ -487,6 +490,18 @@ class Project:
|
|
|
487
490
|
else:
|
|
488
491
|
inventory_items = self.inventory_items
|
|
489
492
|
|
|
493
|
+
inventory_item_locations: list[dict[str, Any]] | None | Unset
|
|
494
|
+
if isinstance(self.inventory_item_locations, Unset):
|
|
495
|
+
inventory_item_locations = UNSET
|
|
496
|
+
elif isinstance(self.inventory_item_locations, list):
|
|
497
|
+
inventory_item_locations = []
|
|
498
|
+
for inventory_item_locations_type_0_item_data in self.inventory_item_locations:
|
|
499
|
+
inventory_item_locations_type_0_item = inventory_item_locations_type_0_item_data.to_dict()
|
|
500
|
+
inventory_item_locations.append(inventory_item_locations_type_0_item)
|
|
501
|
+
|
|
502
|
+
else:
|
|
503
|
+
inventory_item_locations = self.inventory_item_locations
|
|
504
|
+
|
|
490
505
|
item_categories: list[dict[str, Any]] | None | Unset
|
|
491
506
|
if isinstance(self.item_categories, Unset):
|
|
492
507
|
item_categories = UNSET
|
|
@@ -1423,6 +1438,8 @@ class Project:
|
|
|
1423
1438
|
field_dict["item_templates"] = item_templates
|
|
1424
1439
|
if inventory_items is not UNSET:
|
|
1425
1440
|
field_dict["inventory_items"] = inventory_items
|
|
1441
|
+
if inventory_item_locations is not UNSET:
|
|
1442
|
+
field_dict["inventory_item_locations"] = inventory_item_locations
|
|
1426
1443
|
if item_categories is not UNSET:
|
|
1427
1444
|
field_dict["item_categories"] = item_categories
|
|
1428
1445
|
if item_template_categories is not UNSET:
|
|
@@ -1611,6 +1628,7 @@ class Project:
|
|
|
1611
1628
|
from ..models.inventory_item_category import InventoryItemCategory
|
|
1612
1629
|
from ..models.inventory_item_classification import InventoryItemClassification
|
|
1613
1630
|
from ..models.inventory_item_kpi import InventoryItemKpi
|
|
1631
|
+
from ..models.inventory_item_location import InventoryItemLocation
|
|
1614
1632
|
from ..models.inventory_kpi_snapshot import InventoryKpiSnapshot
|
|
1615
1633
|
from ..models.inventory_replenishment_policy import InventoryReplenishmentPolicy
|
|
1616
1634
|
from ..models.issue import Issue
|
|
@@ -1974,6 +1992,30 @@ class Project:
|
|
|
1974
1992
|
|
|
1975
1993
|
inventory_items = _parse_inventory_items(d.pop("inventory_items", UNSET))
|
|
1976
1994
|
|
|
1995
|
+
def _parse_inventory_item_locations(data: object) -> list[InventoryItemLocation] | None | Unset:
|
|
1996
|
+
if data is None:
|
|
1997
|
+
return data
|
|
1998
|
+
if isinstance(data, Unset):
|
|
1999
|
+
return data
|
|
2000
|
+
try:
|
|
2001
|
+
if not isinstance(data, list):
|
|
2002
|
+
raise TypeError()
|
|
2003
|
+
inventory_item_locations_type_0 = []
|
|
2004
|
+
_inventory_item_locations_type_0 = data
|
|
2005
|
+
for inventory_item_locations_type_0_item_data in _inventory_item_locations_type_0:
|
|
2006
|
+
inventory_item_locations_type_0_item = InventoryItemLocation.from_dict(
|
|
2007
|
+
inventory_item_locations_type_0_item_data
|
|
2008
|
+
)
|
|
2009
|
+
|
|
2010
|
+
inventory_item_locations_type_0.append(inventory_item_locations_type_0_item)
|
|
2011
|
+
|
|
2012
|
+
return inventory_item_locations_type_0
|
|
2013
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
2014
|
+
pass
|
|
2015
|
+
return cast(list[InventoryItemLocation] | None | Unset, data)
|
|
2016
|
+
|
|
2017
|
+
inventory_item_locations = _parse_inventory_item_locations(d.pop("inventory_item_locations", UNSET))
|
|
2018
|
+
|
|
1977
2019
|
def _parse_item_categories(data: object) -> list[ItemCategory] | None | Unset:
|
|
1978
2020
|
if data is None:
|
|
1979
2021
|
return data
|
|
@@ -3698,6 +3740,7 @@ class Project:
|
|
|
3698
3740
|
import_jobs=import_jobs,
|
|
3699
3741
|
item_templates=item_templates,
|
|
3700
3742
|
inventory_items=inventory_items,
|
|
3743
|
+
inventory_item_locations=inventory_item_locations,
|
|
3701
3744
|
item_categories=item_categories,
|
|
3702
3745
|
item_template_categories=item_template_categories,
|
|
3703
3746
|
inventory_item_categories=inventory_item_categories,
|
|
@@ -7,6 +7,7 @@ from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
|
7
7
|
from attrs import define as _attrs_define
|
|
8
8
|
from attrs import field as _attrs_field
|
|
9
9
|
|
|
10
|
+
from ..models.cost_source_type import CostSourceType
|
|
10
11
|
from ..types import UNSET, Unset
|
|
11
12
|
|
|
12
13
|
if TYPE_CHECKING:
|
|
@@ -37,6 +38,10 @@ class PurchaseOrderLine:
|
|
|
37
38
|
inventory_item_id (None | str | Unset):
|
|
38
39
|
uom_id (None | str | Unset):
|
|
39
40
|
stock_quantity (float | None | Unset):
|
|
41
|
+
source_cost_list_id (None | str | Unset):
|
|
42
|
+
source_cost_rule_id (None | str | Unset):
|
|
43
|
+
cost_resolved_at (datetime.datetime | None | Unset):
|
|
44
|
+
cost_source_type (CostSourceType | None | Unset):
|
|
40
45
|
expected_receipt_date (datetime.datetime | None | Unset):
|
|
41
46
|
so_reference (None | str | Unset):
|
|
42
47
|
ext_data (None | str | Unset):
|
|
@@ -59,6 +64,10 @@ class PurchaseOrderLine:
|
|
|
59
64
|
inventory_item_id: None | str | Unset = UNSET
|
|
60
65
|
uom_id: None | str | Unset = UNSET
|
|
61
66
|
stock_quantity: float | None | Unset = UNSET
|
|
67
|
+
source_cost_list_id: None | str | Unset = UNSET
|
|
68
|
+
source_cost_rule_id: None | str | Unset = UNSET
|
|
69
|
+
cost_resolved_at: datetime.datetime | None | Unset = UNSET
|
|
70
|
+
cost_source_type: CostSourceType | None | Unset = UNSET
|
|
62
71
|
expected_receipt_date: datetime.datetime | None | Unset = UNSET
|
|
63
72
|
so_reference: None | str | Unset = UNSET
|
|
64
73
|
ext_data: None | str | Unset = UNSET
|
|
@@ -113,6 +122,34 @@ class PurchaseOrderLine:
|
|
|
113
122
|
else:
|
|
114
123
|
stock_quantity = self.stock_quantity
|
|
115
124
|
|
|
125
|
+
source_cost_list_id: None | str | Unset
|
|
126
|
+
if isinstance(self.source_cost_list_id, Unset):
|
|
127
|
+
source_cost_list_id = UNSET
|
|
128
|
+
else:
|
|
129
|
+
source_cost_list_id = self.source_cost_list_id
|
|
130
|
+
|
|
131
|
+
source_cost_rule_id: None | str | Unset
|
|
132
|
+
if isinstance(self.source_cost_rule_id, Unset):
|
|
133
|
+
source_cost_rule_id = UNSET
|
|
134
|
+
else:
|
|
135
|
+
source_cost_rule_id = self.source_cost_rule_id
|
|
136
|
+
|
|
137
|
+
cost_resolved_at: None | str | Unset
|
|
138
|
+
if isinstance(self.cost_resolved_at, Unset):
|
|
139
|
+
cost_resolved_at = UNSET
|
|
140
|
+
elif isinstance(self.cost_resolved_at, datetime.datetime):
|
|
141
|
+
cost_resolved_at = self.cost_resolved_at.isoformat()
|
|
142
|
+
else:
|
|
143
|
+
cost_resolved_at = self.cost_resolved_at
|
|
144
|
+
|
|
145
|
+
cost_source_type: None | str | Unset
|
|
146
|
+
if isinstance(self.cost_source_type, Unset):
|
|
147
|
+
cost_source_type = UNSET
|
|
148
|
+
elif isinstance(self.cost_source_type, CostSourceType):
|
|
149
|
+
cost_source_type = self.cost_source_type.value
|
|
150
|
+
else:
|
|
151
|
+
cost_source_type = self.cost_source_type
|
|
152
|
+
|
|
116
153
|
expected_receipt_date: None | str | Unset
|
|
117
154
|
if isinstance(self.expected_receipt_date, Unset):
|
|
118
155
|
expected_receipt_date = UNSET
|
|
@@ -200,6 +237,14 @@ class PurchaseOrderLine:
|
|
|
200
237
|
field_dict["uom_id"] = uom_id
|
|
201
238
|
if stock_quantity is not UNSET:
|
|
202
239
|
field_dict["stock_quantity"] = stock_quantity
|
|
240
|
+
if source_cost_list_id is not UNSET:
|
|
241
|
+
field_dict["source_cost_list_id"] = source_cost_list_id
|
|
242
|
+
if source_cost_rule_id is not UNSET:
|
|
243
|
+
field_dict["source_cost_rule_id"] = source_cost_rule_id
|
|
244
|
+
if cost_resolved_at is not UNSET:
|
|
245
|
+
field_dict["cost_resolved_at"] = cost_resolved_at
|
|
246
|
+
if cost_source_type is not UNSET:
|
|
247
|
+
field_dict["cost_source_type"] = cost_source_type
|
|
203
248
|
if expected_receipt_date is not UNSET:
|
|
204
249
|
field_dict["expected_receipt_date"] = expected_receipt_date
|
|
205
250
|
if so_reference is not UNSET:
|
|
@@ -279,6 +324,58 @@ class PurchaseOrderLine:
|
|
|
279
324
|
|
|
280
325
|
stock_quantity = _parse_stock_quantity(d.pop("stock_quantity", UNSET))
|
|
281
326
|
|
|
327
|
+
def _parse_source_cost_list_id(data: object) -> None | str | Unset:
|
|
328
|
+
if data is None:
|
|
329
|
+
return data
|
|
330
|
+
if isinstance(data, Unset):
|
|
331
|
+
return data
|
|
332
|
+
return cast(None | str | Unset, data)
|
|
333
|
+
|
|
334
|
+
source_cost_list_id = _parse_source_cost_list_id(d.pop("source_cost_list_id", UNSET))
|
|
335
|
+
|
|
336
|
+
def _parse_source_cost_rule_id(data: object) -> None | str | Unset:
|
|
337
|
+
if data is None:
|
|
338
|
+
return data
|
|
339
|
+
if isinstance(data, Unset):
|
|
340
|
+
return data
|
|
341
|
+
return cast(None | str | Unset, data)
|
|
342
|
+
|
|
343
|
+
source_cost_rule_id = _parse_source_cost_rule_id(d.pop("source_cost_rule_id", UNSET))
|
|
344
|
+
|
|
345
|
+
def _parse_cost_resolved_at(data: object) -> datetime.datetime | None | Unset:
|
|
346
|
+
if data is None:
|
|
347
|
+
return data
|
|
348
|
+
if isinstance(data, Unset):
|
|
349
|
+
return data
|
|
350
|
+
try:
|
|
351
|
+
if not isinstance(data, str):
|
|
352
|
+
raise TypeError()
|
|
353
|
+
cost_resolved_at_type_0 = datetime.datetime.fromisoformat(data)
|
|
354
|
+
|
|
355
|
+
return cost_resolved_at_type_0
|
|
356
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
357
|
+
pass
|
|
358
|
+
return cast(datetime.datetime | None | Unset, data)
|
|
359
|
+
|
|
360
|
+
cost_resolved_at = _parse_cost_resolved_at(d.pop("cost_resolved_at", UNSET))
|
|
361
|
+
|
|
362
|
+
def _parse_cost_source_type(data: object) -> CostSourceType | None | Unset:
|
|
363
|
+
if data is None:
|
|
364
|
+
return data
|
|
365
|
+
if isinstance(data, Unset):
|
|
366
|
+
return data
|
|
367
|
+
try:
|
|
368
|
+
if not isinstance(data, str):
|
|
369
|
+
raise TypeError()
|
|
370
|
+
cost_source_type_type_0 = CostSourceType(data)
|
|
371
|
+
|
|
372
|
+
return cost_source_type_type_0
|
|
373
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
374
|
+
pass
|
|
375
|
+
return cast(CostSourceType | None | Unset, data)
|
|
376
|
+
|
|
377
|
+
cost_source_type = _parse_cost_source_type(d.pop("cost_source_type", UNSET))
|
|
378
|
+
|
|
282
379
|
def _parse_expected_receipt_date(data: object) -> datetime.datetime | None | Unset:
|
|
283
380
|
if data is None:
|
|
284
381
|
return data
|
|
@@ -413,6 +510,10 @@ class PurchaseOrderLine:
|
|
|
413
510
|
inventory_item_id=inventory_item_id,
|
|
414
511
|
uom_id=uom_id,
|
|
415
512
|
stock_quantity=stock_quantity,
|
|
513
|
+
source_cost_list_id=source_cost_list_id,
|
|
514
|
+
source_cost_rule_id=source_cost_rule_id,
|
|
515
|
+
cost_resolved_at=cost_resolved_at,
|
|
516
|
+
cost_source_type=cost_source_type,
|
|
416
517
|
expected_receipt_date=expected_receipt_date,
|
|
417
518
|
so_reference=so_reference,
|
|
418
519
|
ext_data=ext_data,
|
|
@@ -22,11 +22,11 @@ class PurchaseOrderLineRequest:
|
|
|
22
22
|
Attributes:
|
|
23
23
|
description (str):
|
|
24
24
|
quantity (float):
|
|
25
|
-
unit_cost (float):
|
|
26
25
|
sku (None | str | Unset):
|
|
27
26
|
inventory_item_id (None | str | Unset):
|
|
28
27
|
uom_id (None | str | Unset):
|
|
29
28
|
stock_quantity (float | None | Unset):
|
|
29
|
+
unit_cost (float | None | Unset):
|
|
30
30
|
quantity_received (float | Unset): Default: 0.0.
|
|
31
31
|
expected_receipt_date (datetime.datetime | None | Unset):
|
|
32
32
|
so_reference (None | str | Unset):
|
|
@@ -35,11 +35,11 @@ class PurchaseOrderLineRequest:
|
|
|
35
35
|
|
|
36
36
|
description: str
|
|
37
37
|
quantity: float
|
|
38
|
-
unit_cost: float
|
|
39
38
|
sku: None | str | Unset = UNSET
|
|
40
39
|
inventory_item_id: None | str | Unset = UNSET
|
|
41
40
|
uom_id: None | str | Unset = UNSET
|
|
42
41
|
stock_quantity: float | None | Unset = UNSET
|
|
42
|
+
unit_cost: float | None | Unset = UNSET
|
|
43
43
|
quantity_received: float | Unset = 0.0
|
|
44
44
|
expected_receipt_date: datetime.datetime | None | Unset = UNSET
|
|
45
45
|
so_reference: None | str | Unset = UNSET
|
|
@@ -53,8 +53,6 @@ class PurchaseOrderLineRequest:
|
|
|
53
53
|
|
|
54
54
|
quantity = self.quantity
|
|
55
55
|
|
|
56
|
-
unit_cost = self.unit_cost
|
|
57
|
-
|
|
58
56
|
sku: None | str | Unset
|
|
59
57
|
if isinstance(self.sku, Unset):
|
|
60
58
|
sku = UNSET
|
|
@@ -79,6 +77,12 @@ class PurchaseOrderLineRequest:
|
|
|
79
77
|
else:
|
|
80
78
|
stock_quantity = self.stock_quantity
|
|
81
79
|
|
|
80
|
+
unit_cost: float | None | Unset
|
|
81
|
+
if isinstance(self.unit_cost, Unset):
|
|
82
|
+
unit_cost = UNSET
|
|
83
|
+
else:
|
|
84
|
+
unit_cost = self.unit_cost
|
|
85
|
+
|
|
82
86
|
quantity_received = self.quantity_received
|
|
83
87
|
|
|
84
88
|
expected_receipt_date: None | str | Unset
|
|
@@ -109,7 +113,6 @@ class PurchaseOrderLineRequest:
|
|
|
109
113
|
{
|
|
110
114
|
"description": description,
|
|
111
115
|
"quantity": quantity,
|
|
112
|
-
"unit_cost": unit_cost,
|
|
113
116
|
}
|
|
114
117
|
)
|
|
115
118
|
if sku is not UNSET:
|
|
@@ -120,6 +123,8 @@ class PurchaseOrderLineRequest:
|
|
|
120
123
|
field_dict["uom_id"] = uom_id
|
|
121
124
|
if stock_quantity is not UNSET:
|
|
122
125
|
field_dict["stock_quantity"] = stock_quantity
|
|
126
|
+
if unit_cost is not UNSET:
|
|
127
|
+
field_dict["unit_cost"] = unit_cost
|
|
123
128
|
if quantity_received is not UNSET:
|
|
124
129
|
field_dict["quantity_received"] = quantity_received
|
|
125
130
|
if expected_receipt_date is not UNSET:
|
|
@@ -140,8 +145,6 @@ class PurchaseOrderLineRequest:
|
|
|
140
145
|
|
|
141
146
|
quantity = d.pop("quantity")
|
|
142
147
|
|
|
143
|
-
unit_cost = d.pop("unit_cost")
|
|
144
|
-
|
|
145
148
|
def _parse_sku(data: object) -> None | str | Unset:
|
|
146
149
|
if data is None:
|
|
147
150
|
return data
|
|
@@ -178,6 +181,15 @@ class PurchaseOrderLineRequest:
|
|
|
178
181
|
|
|
179
182
|
stock_quantity = _parse_stock_quantity(d.pop("stock_quantity", UNSET))
|
|
180
183
|
|
|
184
|
+
def _parse_unit_cost(data: object) -> float | None | Unset:
|
|
185
|
+
if data is None:
|
|
186
|
+
return data
|
|
187
|
+
if isinstance(data, Unset):
|
|
188
|
+
return data
|
|
189
|
+
return cast(float | None | Unset, data)
|
|
190
|
+
|
|
191
|
+
unit_cost = _parse_unit_cost(d.pop("unit_cost", UNSET))
|
|
192
|
+
|
|
181
193
|
quantity_received = d.pop("quantity_received", UNSET)
|
|
182
194
|
|
|
183
195
|
def _parse_expected_receipt_date(data: object) -> datetime.datetime | None | Unset:
|
|
@@ -226,11 +238,11 @@ class PurchaseOrderLineRequest:
|
|
|
226
238
|
purchase_order_line_request = cls(
|
|
227
239
|
description=description,
|
|
228
240
|
quantity=quantity,
|
|
229
|
-
unit_cost=unit_cost,
|
|
230
241
|
sku=sku,
|
|
231
242
|
inventory_item_id=inventory_item_id,
|
|
232
243
|
uom_id=uom_id,
|
|
233
244
|
stock_quantity=stock_quantity,
|
|
245
|
+
unit_cost=unit_cost,
|
|
234
246
|
quantity_received=quantity_received,
|
|
235
247
|
expected_receipt_date=expected_receipt_date,
|
|
236
248
|
so_reference=so_reference,
|
|
@@ -7,6 +7,9 @@ from typing import TYPE_CHECKING, Any, TypeVar, cast
|
|
|
7
7
|
from attrs import define as _attrs_define
|
|
8
8
|
from attrs import field as _attrs_field
|
|
9
9
|
|
|
10
|
+
from ..models.cost_source_type import CostSourceType
|
|
11
|
+
from ..types import UNSET, Unset
|
|
12
|
+
|
|
10
13
|
if TYPE_CHECKING:
|
|
11
14
|
from ..models.alsco_purchase_order_line_ext_data import AlscoPurchaseOrderLineExtData
|
|
12
15
|
|
|
@@ -34,6 +37,10 @@ class PurchaseOrderLineResponse:
|
|
|
34
37
|
ext_data (AlscoPurchaseOrderLineExtData | None):
|
|
35
38
|
created_at (datetime.datetime):
|
|
36
39
|
updated_at (datetime.datetime):
|
|
40
|
+
source_cost_list_id (None | str | Unset):
|
|
41
|
+
source_cost_rule_id (None | str | Unset):
|
|
42
|
+
cost_resolved_at (datetime.datetime | None | Unset):
|
|
43
|
+
cost_source_type (CostSourceType | None | Unset):
|
|
37
44
|
"""
|
|
38
45
|
|
|
39
46
|
id: str
|
|
@@ -52,6 +59,10 @@ class PurchaseOrderLineResponse:
|
|
|
52
59
|
ext_data: AlscoPurchaseOrderLineExtData | None
|
|
53
60
|
created_at: datetime.datetime
|
|
54
61
|
updated_at: datetime.datetime
|
|
62
|
+
source_cost_list_id: None | str | Unset = UNSET
|
|
63
|
+
source_cost_rule_id: None | str | Unset = UNSET
|
|
64
|
+
cost_resolved_at: datetime.datetime | None | Unset = UNSET
|
|
65
|
+
cost_source_type: CostSourceType | None | Unset = UNSET
|
|
55
66
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
56
67
|
|
|
57
68
|
def to_dict(self) -> dict[str, Any]:
|
|
@@ -102,6 +113,34 @@ class PurchaseOrderLineResponse:
|
|
|
102
113
|
|
|
103
114
|
updated_at = self.updated_at.isoformat()
|
|
104
115
|
|
|
116
|
+
source_cost_list_id: None | str | Unset
|
|
117
|
+
if isinstance(self.source_cost_list_id, Unset):
|
|
118
|
+
source_cost_list_id = UNSET
|
|
119
|
+
else:
|
|
120
|
+
source_cost_list_id = self.source_cost_list_id
|
|
121
|
+
|
|
122
|
+
source_cost_rule_id: None | str | Unset
|
|
123
|
+
if isinstance(self.source_cost_rule_id, Unset):
|
|
124
|
+
source_cost_rule_id = UNSET
|
|
125
|
+
else:
|
|
126
|
+
source_cost_rule_id = self.source_cost_rule_id
|
|
127
|
+
|
|
128
|
+
cost_resolved_at: None | str | Unset
|
|
129
|
+
if isinstance(self.cost_resolved_at, Unset):
|
|
130
|
+
cost_resolved_at = UNSET
|
|
131
|
+
elif isinstance(self.cost_resolved_at, datetime.datetime):
|
|
132
|
+
cost_resolved_at = self.cost_resolved_at.isoformat()
|
|
133
|
+
else:
|
|
134
|
+
cost_resolved_at = self.cost_resolved_at
|
|
135
|
+
|
|
136
|
+
cost_source_type: None | str | Unset
|
|
137
|
+
if isinstance(self.cost_source_type, Unset):
|
|
138
|
+
cost_source_type = UNSET
|
|
139
|
+
elif isinstance(self.cost_source_type, CostSourceType):
|
|
140
|
+
cost_source_type = self.cost_source_type.value
|
|
141
|
+
else:
|
|
142
|
+
cost_source_type = self.cost_source_type
|
|
143
|
+
|
|
105
144
|
field_dict: dict[str, Any] = {}
|
|
106
145
|
field_dict.update(self.additional_properties)
|
|
107
146
|
field_dict.update(
|
|
@@ -124,6 +163,14 @@ class PurchaseOrderLineResponse:
|
|
|
124
163
|
"updated_at": updated_at,
|
|
125
164
|
}
|
|
126
165
|
)
|
|
166
|
+
if source_cost_list_id is not UNSET:
|
|
167
|
+
field_dict["source_cost_list_id"] = source_cost_list_id
|
|
168
|
+
if source_cost_rule_id is not UNSET:
|
|
169
|
+
field_dict["source_cost_rule_id"] = source_cost_rule_id
|
|
170
|
+
if cost_resolved_at is not UNSET:
|
|
171
|
+
field_dict["cost_resolved_at"] = cost_resolved_at
|
|
172
|
+
if cost_source_type is not UNSET:
|
|
173
|
+
field_dict["cost_source_type"] = cost_source_type
|
|
127
174
|
|
|
128
175
|
return field_dict
|
|
129
176
|
|
|
@@ -215,6 +262,58 @@ class PurchaseOrderLineResponse:
|
|
|
215
262
|
|
|
216
263
|
updated_at = datetime.datetime.fromisoformat(d.pop("updated_at"))
|
|
217
264
|
|
|
265
|
+
def _parse_source_cost_list_id(data: object) -> None | str | Unset:
|
|
266
|
+
if data is None:
|
|
267
|
+
return data
|
|
268
|
+
if isinstance(data, Unset):
|
|
269
|
+
return data
|
|
270
|
+
return cast(None | str | Unset, data)
|
|
271
|
+
|
|
272
|
+
source_cost_list_id = _parse_source_cost_list_id(d.pop("source_cost_list_id", UNSET))
|
|
273
|
+
|
|
274
|
+
def _parse_source_cost_rule_id(data: object) -> None | str | Unset:
|
|
275
|
+
if data is None:
|
|
276
|
+
return data
|
|
277
|
+
if isinstance(data, Unset):
|
|
278
|
+
return data
|
|
279
|
+
return cast(None | str | Unset, data)
|
|
280
|
+
|
|
281
|
+
source_cost_rule_id = _parse_source_cost_rule_id(d.pop("source_cost_rule_id", UNSET))
|
|
282
|
+
|
|
283
|
+
def _parse_cost_resolved_at(data: object) -> datetime.datetime | None | Unset:
|
|
284
|
+
if data is None:
|
|
285
|
+
return data
|
|
286
|
+
if isinstance(data, Unset):
|
|
287
|
+
return data
|
|
288
|
+
try:
|
|
289
|
+
if not isinstance(data, str):
|
|
290
|
+
raise TypeError()
|
|
291
|
+
cost_resolved_at_type_0 = datetime.datetime.fromisoformat(data)
|
|
292
|
+
|
|
293
|
+
return cost_resolved_at_type_0
|
|
294
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
295
|
+
pass
|
|
296
|
+
return cast(datetime.datetime | None | Unset, data)
|
|
297
|
+
|
|
298
|
+
cost_resolved_at = _parse_cost_resolved_at(d.pop("cost_resolved_at", UNSET))
|
|
299
|
+
|
|
300
|
+
def _parse_cost_source_type(data: object) -> CostSourceType | None | Unset:
|
|
301
|
+
if data is None:
|
|
302
|
+
return data
|
|
303
|
+
if isinstance(data, Unset):
|
|
304
|
+
return data
|
|
305
|
+
try:
|
|
306
|
+
if not isinstance(data, str):
|
|
307
|
+
raise TypeError()
|
|
308
|
+
cost_source_type_type_0 = CostSourceType(data)
|
|
309
|
+
|
|
310
|
+
return cost_source_type_type_0
|
|
311
|
+
except (TypeError, ValueError, AttributeError, KeyError):
|
|
312
|
+
pass
|
|
313
|
+
return cast(CostSourceType | None | Unset, data)
|
|
314
|
+
|
|
315
|
+
cost_source_type = _parse_cost_source_type(d.pop("cost_source_type", UNSET))
|
|
316
|
+
|
|
218
317
|
purchase_order_line_response = cls(
|
|
219
318
|
id=id,
|
|
220
319
|
project_id=project_id,
|
|
@@ -232,6 +331,10 @@ class PurchaseOrderLineResponse:
|
|
|
232
331
|
ext_data=ext_data,
|
|
233
332
|
created_at=created_at,
|
|
234
333
|
updated_at=updated_at,
|
|
334
|
+
source_cost_list_id=source_cost_list_id,
|
|
335
|
+
source_cost_rule_id=source_cost_rule_id,
|
|
336
|
+
cost_resolved_at=cost_resolved_at,
|
|
337
|
+
cost_source_type=cost_source_type,
|
|
235
338
|
)
|
|
236
339
|
|
|
237
340
|
purchase_order_line_response.additional_properties = d
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PurchasingListItemSourcingFilterOperatorType0(str, Enum):
|
|
5
|
+
CONTAINS = "contains"
|
|
6
|
+
ENDS_WITH = "ends_with"
|
|
7
|
+
EQUALS = "equals"
|
|
8
|
+
GREATER_THAN = "greater_than"
|
|
9
|
+
GREATER_THAN_OR_EQUAL = "greater_than_or_equal"
|
|
10
|
+
IS_EMPTY = "is_empty"
|
|
11
|
+
IS_NOT_EMPTY = "is_not_empty"
|
|
12
|
+
LESS_THAN = "less_than"
|
|
13
|
+
LESS_THAN_OR_EQUAL = "less_than_or_equal"
|
|
14
|
+
NOT_CONTAINS = "not_contains"
|
|
15
|
+
NOT_EQUALS = "not_equals"
|
|
16
|
+
STARTS_WITH = "starts_with"
|
|
17
|
+
|
|
18
|
+
def __str__(self) -> str:
|
|
19
|
+
return str(self.value)
|
|
@@ -6,6 +6,8 @@ from typing import TYPE_CHECKING, Any, Literal, TypeVar, cast
|
|
|
6
6
|
from attrs import define as _attrs_define
|
|
7
7
|
from attrs import field as _attrs_field
|
|
8
8
|
|
|
9
|
+
from ..types import UNSET, Unset
|
|
10
|
+
|
|
9
11
|
if TYPE_CHECKING:
|
|
10
12
|
from ..models.cost_resolution_source import CostResolutionSource
|
|
11
13
|
|
|
@@ -21,12 +23,14 @@ class ResolveCostResponse:
|
|
|
21
23
|
currency (str):
|
|
22
24
|
lead_time_days (int | None):
|
|
23
25
|
source (CostResolutionSource | Literal['no_match']):
|
|
26
|
+
selected_cost_list_id (None | str | Unset):
|
|
24
27
|
"""
|
|
25
28
|
|
|
26
29
|
unit_cost: float | None
|
|
27
30
|
currency: str
|
|
28
31
|
lead_time_days: int | None
|
|
29
32
|
source: CostResolutionSource | Literal["no_match"]
|
|
33
|
+
selected_cost_list_id: None | str | Unset = UNSET
|
|
30
34
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
31
35
|
|
|
32
36
|
def to_dict(self) -> dict[str, Any]:
|
|
@@ -46,6 +50,12 @@ class ResolveCostResponse:
|
|
|
46
50
|
else:
|
|
47
51
|
source = self.source
|
|
48
52
|
|
|
53
|
+
selected_cost_list_id: None | str | Unset
|
|
54
|
+
if isinstance(self.selected_cost_list_id, Unset):
|
|
55
|
+
selected_cost_list_id = UNSET
|
|
56
|
+
else:
|
|
57
|
+
selected_cost_list_id = self.selected_cost_list_id
|
|
58
|
+
|
|
49
59
|
field_dict: dict[str, Any] = {}
|
|
50
60
|
field_dict.update(self.additional_properties)
|
|
51
61
|
field_dict.update(
|
|
@@ -56,6 +66,8 @@ class ResolveCostResponse:
|
|
|
56
66
|
"source": source,
|
|
57
67
|
}
|
|
58
68
|
)
|
|
69
|
+
if selected_cost_list_id is not UNSET:
|
|
70
|
+
field_dict["selected_cost_list_id"] = selected_cost_list_id
|
|
59
71
|
|
|
60
72
|
return field_dict
|
|
61
73
|
|
|
@@ -97,11 +109,21 @@ class ResolveCostResponse:
|
|
|
97
109
|
|
|
98
110
|
source = _parse_source(d.pop("source"))
|
|
99
111
|
|
|
112
|
+
def _parse_selected_cost_list_id(data: object) -> None | str | Unset:
|
|
113
|
+
if data is None:
|
|
114
|
+
return data
|
|
115
|
+
if isinstance(data, Unset):
|
|
116
|
+
return data
|
|
117
|
+
return cast(None | str | Unset, data)
|
|
118
|
+
|
|
119
|
+
selected_cost_list_id = _parse_selected_cost_list_id(d.pop("selected_cost_list_id", UNSET))
|
|
120
|
+
|
|
100
121
|
resolve_cost_response = cls(
|
|
101
122
|
unit_cost=unit_cost,
|
|
102
123
|
currency=currency,
|
|
103
124
|
lead_time_days=lead_time_days,
|
|
104
125
|
source=source,
|
|
126
|
+
selected_cost_list_id=selected_cost_list_id,
|
|
105
127
|
)
|
|
106
128
|
|
|
107
129
|
resolve_cost_response.additional_properties = d
|