tachain-sdk 0.1.0

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.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE +21 -0
  4. data/README.md +226 -0
  5. data/Rakefile +10 -0
  6. data/git_push.sh +54 -0
  7. data/lib/tachain-sdk/api/api_declaration_api.rb +396 -0
  8. data/lib/tachain-sdk/api/api_delivery_api.rb +676 -0
  9. data/lib/tachain-sdk/api/api_enum_api.rb +94 -0
  10. data/lib/tachain-sdk/api/api_order_api.rb +846 -0
  11. data/lib/tachain-sdk/api/api_order_workflow_api.rb +170 -0
  12. data/lib/tachain-sdk/api/api_production_api.rb +466 -0
  13. data/lib/tachain-sdk/api_client.rb +397 -0
  14. data/lib/tachain-sdk/api_error.rb +58 -0
  15. data/lib/tachain-sdk/api_model_base.rb +88 -0
  16. data/lib/tachain-sdk/configuration.rb +329 -0
  17. data/lib/tachain-sdk/models/api_declaration_delete_request.rb +341 -0
  18. data/lib/tachain-sdk/models/api_declaration_document_request.rb +209 -0
  19. data/lib/tachain-sdk/models/api_declaration_list_dto.rb +251 -0
  20. data/lib/tachain-sdk/models/api_declaration_submit_request.rb +251 -0
  21. data/lib/tachain-sdk/models/api_declaration_submit_result_dto.rb +197 -0
  22. data/lib/tachain-sdk/models/api_integration_delete_request.rb +209 -0
  23. data/lib/tachain-sdk/models/api_order_confirm_receipt_request.rb +216 -0
  24. data/lib/tachain-sdk/models/api_order_submit_audit_request.rb +243 -0
  25. data/lib/tachain-sdk/models/api_response_api_declaration_list_dto.rb +199 -0
  26. data/lib/tachain-sdk/models/api_response_api_declaration_submit_result_dto.rb +199 -0
  27. data/lib/tachain-sdk/models/api_response_delivery_note_api_dto.rb +199 -0
  28. data/lib/tachain-sdk/models/api_response_order_api_dto.rb +199 -0
  29. data/lib/tachain-sdk/models/api_response_production_api_dto.rb +199 -0
  30. data/lib/tachain-sdk/models/api_response_string.rb +200 -0
  31. data/lib/tachain-sdk/models/attachment_in_api_create_dto.rb +262 -0
  32. data/lib/tachain-sdk/models/attachment_in_api_dto.rb +363 -0
  33. data/lib/tachain-sdk/models/brand_kpi_policy_result.rb +334 -0
  34. data/lib/tachain-sdk/models/brand_order_kpi_snapshot_dto.rb +880 -0
  35. data/lib/tachain-sdk/models/brand_order_supplier_order_snapshot_dto.rb +749 -0
  36. data/lib/tachain-sdk/models/brand_order_uncompleted_declare_snapshot_dto.rb +513 -0
  37. data/lib/tachain-sdk/models/company.rb +780 -0
  38. data/lib/tachain-sdk/models/company_compliance_profile.rb +547 -0
  39. data/lib/tachain-sdk/models/company_utility_declaration.rb +592 -0
  40. data/lib/tachain-sdk/models/customer.rb +569 -0
  41. data/lib/tachain-sdk/models/delivery_note_api_dto.rb +597 -0
  42. data/lib/tachain-sdk/models/delivery_note_detail_api_dto.rb +682 -0
  43. data/lib/tachain-sdk/models/document_type_api_dto.rb +480 -0
  44. data/lib/tachain-sdk/models/factory.rb +545 -0
  45. data/lib/tachain-sdk/models/get_v1_enum_get_list200_response.rb +201 -0
  46. data/lib/tachain-sdk/models/microsoft_asp_net_core_mvc_problem_details.rb +188 -0
  47. data/lib/tachain-sdk/models/model1.rb +157 -0
  48. data/lib/tachain-sdk/models/model3.rb +202 -0
  49. data/lib/tachain-sdk/models/model4.rb +202 -0
  50. data/lib/tachain-sdk/models/order.rb +974 -0
  51. data/lib/tachain-sdk/models/order_api_dto.rb +918 -0
  52. data/lib/tachain-sdk/models/order_line.rb +1184 -0
  53. data/lib/tachain-sdk/models/order_line_api_dto.rb +1277 -0
  54. data/lib/tachain-sdk/models/order_stage_form_api_dto.rb +270 -0
  55. data/lib/tachain-sdk/models/order_stage_form_datum_api_dto.rb +260 -0
  56. data/lib/tachain-sdk/models/order_stage_form_dto.rb +254 -0
  57. data/lib/tachain-sdk/models/paged_response_delivery_note_api_dto.rb +296 -0
  58. data/lib/tachain-sdk/models/paged_response_order_api_dto.rb +296 -0
  59. data/lib/tachain-sdk/models/paged_response_production_api_dto.rb +296 -0
  60. data/lib/tachain-sdk/models/product_bom_grouping_dto.rb +280 -0
  61. data/lib/tachain-sdk/models/production_api_dto.rb +639 -0
  62. data/lib/tachain-sdk/models/production_raw_material_api_dto.rb +481 -0
  63. data/lib/tachain-sdk/models/production_raw_material_dto.rb +548 -0
  64. data/lib/tachain-sdk/models/production_sales_order_api_dto.rb +436 -0
  65. data/lib/tachain-sdk/models/result_api_enum.rb +270 -0
  66. data/lib/tachain-sdk/models/result_brand_report_allocated_delivery_kpi_detail.rb +331 -0
  67. data/lib/tachain-sdk/models/result_brand_report_unlinked_order_detail.rb +229 -0
  68. data/lib/tachain-sdk/models/result_kpi_archived_data_change_detail.rb +418 -0
  69. data/lib/tachain-sdk/models/result_mapping_order_select.rb +335 -0
  70. data/lib/tachain-sdk/models/result_order_trace_report.rb +721 -0
  71. data/lib/tachain-sdk/models/stage_attachment_api_dto.rb +398 -0
  72. data/lib/tachain-sdk/models/supplier.rb +585 -0
  73. data/lib/tachain-sdk/models/supplier_onboarding_ext.rb +383 -0
  74. data/lib/tachain-sdk/models/template_dto_business_risk_warn_info_dto.rb +456 -0
  75. data/lib/tachain-sdk/models/template_dto_multi_so_line_complete_status.rb +227 -0
  76. data/lib/tachain-sdk/models/trader.rb +506 -0
  77. data/lib/tachain-sdk/signed_api_client.rb +65 -0
  78. data/lib/tachain-sdk/version.rb +15 -0
  79. data/lib/tachain-sdk.rb +108 -0
  80. data/spec/spec_helper.rb +111 -0
  81. data/tachain-sdk.gemspec +39 -0
  82. metadata +165 -0
@@ -0,0 +1,1277 @@
1
+ =begin
2
+ #Tactic Chain Public API
3
+
4
+ #Public integration endpoints. Set your own base URL and credential before calling.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TachainSdk
17
+ # 订单明细表
18
+ class OrderLineApiDto < ApiModelBase
19
+ # 订单明细ID
20
+ attr_accessor :id
21
+
22
+ # 系统流水号,全局唯一
23
+ attr_accessor :unique_no
24
+
25
+ # 关联订单ID
26
+ attr_accessor :order_id
27
+
28
+ # 行项目序号
29
+ attr_accessor :line_number
30
+
31
+ # 成品分类
32
+ attr_accessor :product_category
33
+
34
+ # 原料ID
35
+ attr_accessor :material_id
36
+
37
+ # 原料编码
38
+ attr_accessor :material_code
39
+
40
+ # 原料名称
41
+ attr_accessor :material_name
42
+
43
+ # 成品ID
44
+ attr_accessor :product_id
45
+
46
+ # 成品编码
47
+ attr_accessor :product_code
48
+
49
+ # 成品名称
50
+ attr_accessor :product_name
51
+
52
+ # 颜色
53
+ attr_accessor :color
54
+
55
+ # 物料批次号
56
+ attr_accessor :batch
57
+
58
+ # 数量
59
+ attr_accessor :quantity
60
+
61
+ # 目的国家
62
+ attr_accessor :destination_country
63
+
64
+ # 目的国家名称
65
+ attr_accessor :destination_country_name
66
+
67
+ # 物料成分
68
+ attr_accessor :component
69
+
70
+ # 认证要求
71
+ attr_accessor :certification
72
+
73
+ # 计量单位
74
+ attr_accessor :unit
75
+
76
+ # 客户外部系统流水号
77
+ attr_accessor :customer_ext_no
78
+
79
+ # 供应商外部系统流水号
80
+ attr_accessor :supplier_ext_no
81
+
82
+ # 备注
83
+ attr_accessor :remark
84
+
85
+ # 原产国
86
+ attr_accessor :origin_country
87
+
88
+ # 原产国名称
89
+ attr_accessor :origin_country_name
90
+
91
+ # 毛重
92
+ attr_accessor :gross_weight
93
+
94
+ # 净重
95
+ attr_accessor :net_weight
96
+
97
+ # 预计发货日期(ETD)
98
+ attr_accessor :estimated_time_of_departure
99
+
100
+ # 季度
101
+ attr_accessor :season
102
+
103
+ # 年份
104
+ attr_accessor :season_year
105
+
106
+ # 单价
107
+ attr_accessor :unit_price
108
+
109
+ # 税率
110
+ attr_accessor :tax
111
+
112
+ # -9 禁用, -1 删除, 0 正常
113
+ attr_accessor :status
114
+
115
+ # 租户ID
116
+ attr_accessor :tenant_id
117
+
118
+ # 最后更新时间
119
+ attr_accessor :last_updated_at
120
+
121
+ # 采购状态:7拒绝接单|待接单 9|待生产 10|待发货 20|已发货 30|待收货 40|已收货 50|已使用 60|已用完 70
122
+ attr_accessor :po_status
123
+
124
+ # 销售状态:7拒绝接单|待接单 9|待生产 10|待发货 20|已发货 30|待收货 40|已收货 50|已使用 60|已用完 70
125
+ attr_accessor :so_status
126
+
127
+ # 第二数量
128
+ attr_accessor :quantity2
129
+
130
+ # 审核状态:101 草稿 102 待审核 103 重新提交待审 111 取消审核 113 审核作废 114 审核驳回 115 审核拒绝 120 审核通过
131
+ attr_accessor :approve_status
132
+
133
+ # 所处销售阶段
134
+ attr_accessor :scope_code
135
+
136
+ # 销售单位
137
+ attr_accessor :so_unit
138
+
139
+ # 销售数量
140
+ attr_accessor :so_quantity
141
+
142
+ # 主订单链条审核状态 101 草稿 102 待审核 103 重新提交待审 111 取消审核 113 审核作废 114 审核驳回 115 审核拒绝 120 审核通过
143
+ attr_accessor :master_approve_status
144
+
145
+ # 客户确认收货状态:101 草稿、102 待审核、103 重新提交待审、111 取消审核、 113 审核作废、114 审核驳回、115 审核拒绝、120 审核通过。
146
+ attr_accessor :customer_confirm_status
147
+
148
+ # 主订单链条完成状态,1完成;0未完成(包括申报完成和订单关联了最后一级订单)
149
+ attr_accessor :order_chain_status
150
+
151
+ # 主订单id集 |分割
152
+ attr_accessor :top_orderline_ids
153
+
154
+ # 订单计量单位组与成品计量单位组是否一致(0 = 是(单位组一致不一致),1 = 否(单位组不一致),2 = 用户已确认,3=是(单位组一致单位一致))
155
+ attr_accessor :so_unitgroup_consistent
156
+
157
+ attr_accessor :order_number
158
+
159
+ attr_accessor :available_quantity
160
+
161
+ # 订单生产模式
162
+ attr_accessor :type
163
+
164
+ # 单位名称
165
+ attr_accessor :u_name
166
+
167
+ # 销售范围名称
168
+ attr_accessor :product_category_name
169
+
170
+ # 所处销售阶段
171
+ attr_accessor :scope_code_name
172
+
173
+ # 销售单位名称
174
+ attr_accessor :so_unit_name
175
+
176
+ # 生产使用参数
177
+ attr_accessor :purchase_order_detail_id
178
+
179
+ # 生产使用参数
180
+ attr_accessor :sales_order_line_id
181
+
182
+ attr_accessor :so_declare_progress
183
+
184
+ # 供应商最高风险等级
185
+ attr_accessor :max_risk_level
186
+
187
+ # 名称
188
+ attr_accessor :max_risk_level_name
189
+
190
+ # 供应商风险预警信息列表(新DTO)
191
+ attr_accessor :risk_warn_infos
192
+
193
+ # 明细更新类型(语义化字符串,支持:Add=新增、Update=修改、Delete=删除)
194
+ attr_accessor :operate_type
195
+
196
+ # 采购附件列表(合同/发票/付款证明/宣誓书)
197
+ attr_accessor :attachments
198
+
199
+ # 供应商名称
200
+ attr_accessor :supplier_name
201
+
202
+ # 订单使用的bom版本号
203
+ attr_accessor :bom_batch
204
+
205
+ # 订单名称
206
+ attr_accessor :order_name
207
+
208
+ # 链条完成状态,1完成;0未完成(不包含申报,是否关联至了最后一级订单)
209
+ attr_accessor :chain_status
210
+
211
+ # 本单对应链条最后更新时间
212
+ attr_accessor :chain_latest_updated_at
213
+
214
+ # 集成推送最早交货日期
215
+ attr_accessor :push_early_delivery_date
216
+
217
+ # 是否手工调整最早交货日期:0=否,1=是
218
+ attr_accessor :is_adjust_delivery
219
+
220
+ # 添加修改最早发货时间信息备注
221
+ attr_accessor :adjust_delivery_remark
222
+
223
+ # 供应商最新提交审核时间
224
+ attr_accessor :order_line_finish_time
225
+
226
+ # 客户确认收货最新通过时间
227
+ attr_accessor :customer_confirm_time
228
+
229
+ # KPI剔除标记:0-未剔除,1-已剔除
230
+ attr_accessor :kpi_exclude_flag
231
+
232
+ # KPI剔除原因
233
+ attr_accessor :kpi_exclude_reason
234
+
235
+ # 客户是否分批发货:0按需发货;1分批发货;2无法按需发货实际发货完成
236
+ attr_accessor :ship_in_batches
237
+
238
+ # gts同步的运输开始日期
239
+ attr_accessor :gts_departure_date
240
+
241
+ # gts同步的运输到达日期
242
+ attr_accessor :gts_arrival_date
243
+
244
+ # gts同步船运是否完成:0未完成,1已完成, 2.KPI定时任务已快照
245
+ attr_accessor :gts_ship_finished
246
+
247
+ # 是否需要转运:1是,0否。空的情况实时读配置
248
+ attr_accessor :is_need_transfer
249
+
250
+ # T4单物料成分
251
+ attr_accessor :single_component
252
+
253
+ # T4原料订单使用工厂id
254
+ attr_accessor :use_factory_id
255
+
256
+ # 纤维成分选择类型:true 为组合纤维,false 为单纤维。
257
+ attr_accessor :is_mixed_fiber
258
+
259
+ attr_accessor :product_final
260
+
261
+ attr_accessor :is_approved
262
+
263
+ # 采购单位编码;由明细 Unit 字段对应的单位资料 Code 转换得到。
264
+ attr_accessor :unit_code
265
+
266
+ attr_accessor :so_unit_code
267
+
268
+ attr_accessor :max_so_quantity
269
+
270
+ attr_accessor :min_so_quantity
271
+
272
+ attr_accessor :is_operable
273
+
274
+ attr_accessor :is_operable_message
275
+
276
+ attr_accessor :is_operable_type
277
+
278
+ attr_accessor :order_remarks
279
+
280
+ # 是否可以作为转贸易明细;贸易配置开启后,贸易订单始终为 true,非贸易订单按销售状态判断。
281
+ attr_accessor :is_can_re_trader
282
+
283
+ # 剩余需贸易运输数量:production_sales_order.quantity_produced 合计减去该销售明细贸易运输数量合计,最小为 0。
284
+ attr_accessor :remain_trade_ship_quantity
285
+
286
+ # 当前订单明细是否与第一条采购变更申请中的对应明细存在业务字段差异。
287
+ attr_accessor :is_order_line_changed
288
+
289
+ # Attribute mapping from ruby-style variable name to JSON key.
290
+ def self.attribute_map
291
+ {
292
+ :'id' => :'id',
293
+ :'unique_no' => :'uniqueNo',
294
+ :'order_id' => :'orderId',
295
+ :'line_number' => :'lineNumber',
296
+ :'product_category' => :'productCategory',
297
+ :'material_id' => :'materialId',
298
+ :'material_code' => :'materialCode',
299
+ :'material_name' => :'materialName',
300
+ :'product_id' => :'productId',
301
+ :'product_code' => :'productCode',
302
+ :'product_name' => :'productName',
303
+ :'color' => :'color',
304
+ :'batch' => :'batch',
305
+ :'quantity' => :'quantity',
306
+ :'destination_country' => :'destinationCountry',
307
+ :'destination_country_name' => :'destinationCountryName',
308
+ :'component' => :'component',
309
+ :'certification' => :'certification',
310
+ :'unit' => :'unit',
311
+ :'customer_ext_no' => :'customerExtNo',
312
+ :'supplier_ext_no' => :'supplierExtNo',
313
+ :'remark' => :'remark',
314
+ :'origin_country' => :'originCountry',
315
+ :'origin_country_name' => :'originCountryName',
316
+ :'gross_weight' => :'grossWeight',
317
+ :'net_weight' => :'netWeight',
318
+ :'estimated_time_of_departure' => :'estimatedTimeOfDeparture',
319
+ :'season' => :'season',
320
+ :'season_year' => :'seasonYear',
321
+ :'unit_price' => :'unitPrice',
322
+ :'tax' => :'tax',
323
+ :'status' => :'status',
324
+ :'tenant_id' => :'tenantId',
325
+ :'last_updated_at' => :'lastUpdatedAt',
326
+ :'po_status' => :'poStatus',
327
+ :'so_status' => :'soStatus',
328
+ :'quantity2' => :'quantity2',
329
+ :'approve_status' => :'approveStatus',
330
+ :'scope_code' => :'scopeCode',
331
+ :'so_unit' => :'soUnit',
332
+ :'so_quantity' => :'soQuantity',
333
+ :'master_approve_status' => :'masterApproveStatus',
334
+ :'customer_confirm_status' => :'customerConfirmStatus',
335
+ :'order_chain_status' => :'orderChainStatus',
336
+ :'top_orderline_ids' => :'topOrderlineIds',
337
+ :'so_unitgroup_consistent' => :'soUnitgroupConsistent',
338
+ :'order_number' => :'orderNumber',
339
+ :'available_quantity' => :'availableQuantity',
340
+ :'type' => :'type',
341
+ :'u_name' => :'uName',
342
+ :'product_category_name' => :'productCategoryName',
343
+ :'scope_code_name' => :'scopeCodeName',
344
+ :'so_unit_name' => :'soUnitName',
345
+ :'purchase_order_detail_id' => :'purchaseOrderDetailId',
346
+ :'sales_order_line_id' => :'salesOrderLineId',
347
+ :'so_declare_progress' => :'soDeclareProgress',
348
+ :'max_risk_level' => :'maxRiskLevel',
349
+ :'max_risk_level_name' => :'maxRiskLevelName',
350
+ :'risk_warn_infos' => :'riskWarnInfos',
351
+ :'operate_type' => :'operateType',
352
+ :'attachments' => :'attachments',
353
+ :'supplier_name' => :'supplierName',
354
+ :'bom_batch' => :'bomBatch',
355
+ :'order_name' => :'orderName',
356
+ :'chain_status' => :'chainStatus',
357
+ :'chain_latest_updated_at' => :'chainLatestUpdatedAt',
358
+ :'push_early_delivery_date' => :'pushEarlyDeliveryDate',
359
+ :'is_adjust_delivery' => :'isAdjustDelivery',
360
+ :'adjust_delivery_remark' => :'adjustDeliveryRemark',
361
+ :'order_line_finish_time' => :'orderLineFinishTime',
362
+ :'customer_confirm_time' => :'customerConfirmTime',
363
+ :'kpi_exclude_flag' => :'kpiExcludeFlag',
364
+ :'kpi_exclude_reason' => :'kpiExcludeReason',
365
+ :'ship_in_batches' => :'shipInBatches',
366
+ :'gts_departure_date' => :'gtsDepartureDate',
367
+ :'gts_arrival_date' => :'gtsArrivalDate',
368
+ :'gts_ship_finished' => :'gtsShipFinished',
369
+ :'is_need_transfer' => :'isNeedTransfer',
370
+ :'single_component' => :'singleComponent',
371
+ :'use_factory_id' => :'useFactoryId',
372
+ :'is_mixed_fiber' => :'isMixedFiber',
373
+ :'product_final' => :'productFinal',
374
+ :'is_approved' => :'isApproved',
375
+ :'unit_code' => :'unitCode',
376
+ :'so_unit_code' => :'soUnitCode',
377
+ :'max_so_quantity' => :'maxSoQuantity',
378
+ :'min_so_quantity' => :'minSoQuantity',
379
+ :'is_operable' => :'isOperable',
380
+ :'is_operable_message' => :'isOperableMessage',
381
+ :'is_operable_type' => :'isOperableType',
382
+ :'order_remarks' => :'orderRemarks',
383
+ :'is_can_re_trader' => :'isCanReTrader',
384
+ :'remain_trade_ship_quantity' => :'remainTradeShipQuantity',
385
+ :'is_order_line_changed' => :'isOrderLineChanged'
386
+ }
387
+ end
388
+
389
+ # Returns attribute mapping this model knows about
390
+ def self.acceptable_attribute_map
391
+ attribute_map
392
+ end
393
+
394
+ # Returns all the JSON keys this model knows about
395
+ def self.acceptable_attributes
396
+ acceptable_attribute_map.values
397
+ end
398
+
399
+ # Attribute type mapping.
400
+ def self.openapi_types
401
+ {
402
+ :'id' => :'String',
403
+ :'unique_no' => :'String',
404
+ :'order_id' => :'String',
405
+ :'line_number' => :'String',
406
+ :'product_category' => :'String',
407
+ :'material_id' => :'String',
408
+ :'material_code' => :'String',
409
+ :'material_name' => :'String',
410
+ :'product_id' => :'String',
411
+ :'product_code' => :'String',
412
+ :'product_name' => :'String',
413
+ :'color' => :'String',
414
+ :'batch' => :'String',
415
+ :'quantity' => :'Float',
416
+ :'destination_country' => :'String',
417
+ :'destination_country_name' => :'String',
418
+ :'component' => :'String',
419
+ :'certification' => :'String',
420
+ :'unit' => :'String',
421
+ :'customer_ext_no' => :'String',
422
+ :'supplier_ext_no' => :'String',
423
+ :'remark' => :'String',
424
+ :'origin_country' => :'String',
425
+ :'origin_country_name' => :'String',
426
+ :'gross_weight' => :'Float',
427
+ :'net_weight' => :'Float',
428
+ :'estimated_time_of_departure' => :'Time',
429
+ :'season' => :'String',
430
+ :'season_year' => :'String',
431
+ :'unit_price' => :'Float',
432
+ :'tax' => :'Float',
433
+ :'status' => :'Integer',
434
+ :'tenant_id' => :'String',
435
+ :'last_updated_at' => :'Time',
436
+ :'po_status' => :'Integer',
437
+ :'so_status' => :'Integer',
438
+ :'quantity2' => :'Float',
439
+ :'approve_status' => :'Integer',
440
+ :'scope_code' => :'String',
441
+ :'so_unit' => :'String',
442
+ :'so_quantity' => :'Float',
443
+ :'master_approve_status' => :'Integer',
444
+ :'customer_confirm_status' => :'Integer',
445
+ :'order_chain_status' => :'Boolean',
446
+ :'top_orderline_ids' => :'String',
447
+ :'so_unitgroup_consistent' => :'Integer',
448
+ :'order_number' => :'String',
449
+ :'available_quantity' => :'Float',
450
+ :'type' => :'String',
451
+ :'u_name' => :'String',
452
+ :'product_category_name' => :'String',
453
+ :'scope_code_name' => :'String',
454
+ :'so_unit_name' => :'String',
455
+ :'purchase_order_detail_id' => :'String',
456
+ :'sales_order_line_id' => :'String',
457
+ :'so_declare_progress' => :'TemplateDtoMultiSoLineCompleteStatus',
458
+ :'max_risk_level' => :'Integer',
459
+ :'max_risk_level_name' => :'String',
460
+ :'risk_warn_infos' => :'Array<TemplateDtoBusinessRiskWarnInfoDto>',
461
+ :'operate_type' => :'String',
462
+ :'attachments' => :'Array<Object>',
463
+ :'supplier_name' => :'String',
464
+ :'bom_batch' => :'String',
465
+ :'order_name' => :'String',
466
+ :'chain_status' => :'Boolean',
467
+ :'chain_latest_updated_at' => :'Time',
468
+ :'push_early_delivery_date' => :'Time',
469
+ :'is_adjust_delivery' => :'Boolean',
470
+ :'adjust_delivery_remark' => :'String',
471
+ :'order_line_finish_time' => :'Time',
472
+ :'customer_confirm_time' => :'Time',
473
+ :'kpi_exclude_flag' => :'Boolean',
474
+ :'kpi_exclude_reason' => :'String',
475
+ :'ship_in_batches' => :'Integer',
476
+ :'gts_departure_date' => :'Time',
477
+ :'gts_arrival_date' => :'Time',
478
+ :'gts_ship_finished' => :'Integer',
479
+ :'is_need_transfer' => :'Integer',
480
+ :'single_component' => :'String',
481
+ :'use_factory_id' => :'String',
482
+ :'is_mixed_fiber' => :'Boolean',
483
+ :'product_final' => :'Boolean',
484
+ :'is_approved' => :'Boolean',
485
+ :'unit_code' => :'String',
486
+ :'so_unit_code' => :'String',
487
+ :'max_so_quantity' => :'Float',
488
+ :'min_so_quantity' => :'Float',
489
+ :'is_operable' => :'Boolean',
490
+ :'is_operable_message' => :'String',
491
+ :'is_operable_type' => :'String',
492
+ :'order_remarks' => :'String',
493
+ :'is_can_re_trader' => :'Boolean',
494
+ :'remain_trade_ship_quantity' => :'Float',
495
+ :'is_order_line_changed' => :'Boolean'
496
+ }
497
+ end
498
+
499
+ # List of attributes with nullable: true
500
+ def self.openapi_nullable
501
+ Set.new([
502
+ :'id',
503
+ :'unique_no',
504
+ :'order_id',
505
+ :'line_number',
506
+ :'product_category',
507
+ :'material_id',
508
+ :'material_code',
509
+ :'material_name',
510
+ :'product_id',
511
+ :'product_code',
512
+ :'product_name',
513
+ :'color',
514
+ :'batch',
515
+ :'quantity',
516
+ :'destination_country',
517
+ :'destination_country_name',
518
+ :'component',
519
+ :'certification',
520
+ :'unit',
521
+ :'customer_ext_no',
522
+ :'supplier_ext_no',
523
+ :'remark',
524
+ :'origin_country',
525
+ :'origin_country_name',
526
+ :'gross_weight',
527
+ :'net_weight',
528
+ :'estimated_time_of_departure',
529
+ :'season',
530
+ :'season_year',
531
+ :'unit_price',
532
+ :'tax',
533
+ :'status',
534
+ :'tenant_id',
535
+ :'last_updated_at',
536
+ :'po_status',
537
+ :'so_status',
538
+ :'quantity2',
539
+ :'approve_status',
540
+ :'scope_code',
541
+ :'so_unit',
542
+ :'so_quantity',
543
+ :'master_approve_status',
544
+ :'customer_confirm_status',
545
+ :'order_chain_status',
546
+ :'top_orderline_ids',
547
+ :'so_unitgroup_consistent',
548
+ :'order_number',
549
+ :'available_quantity',
550
+ :'type',
551
+ :'u_name',
552
+ :'product_category_name',
553
+ :'scope_code_name',
554
+ :'so_unit_name',
555
+ :'purchase_order_detail_id',
556
+ :'sales_order_line_id',
557
+ :'max_risk_level_name',
558
+ :'attachments',
559
+ :'supplier_name',
560
+ :'bom_batch',
561
+ :'order_name',
562
+ :'chain_status',
563
+ :'chain_latest_updated_at',
564
+ :'push_early_delivery_date',
565
+ :'is_adjust_delivery',
566
+ :'adjust_delivery_remark',
567
+ :'order_line_finish_time',
568
+ :'customer_confirm_time',
569
+ :'kpi_exclude_flag',
570
+ :'kpi_exclude_reason',
571
+ :'ship_in_batches',
572
+ :'gts_departure_date',
573
+ :'gts_arrival_date',
574
+ :'gts_ship_finished',
575
+ :'is_need_transfer',
576
+ :'single_component',
577
+ :'use_factory_id',
578
+ :'is_mixed_fiber',
579
+ :'product_final',
580
+ :'is_approved',
581
+ :'unit_code',
582
+ :'so_unit_code',
583
+ :'max_so_quantity',
584
+ :'min_so_quantity',
585
+ :'is_operable',
586
+ :'is_operable_message',
587
+ :'is_operable_type',
588
+ :'order_remarks',
589
+ ])
590
+ end
591
+
592
+ # Initializes the object
593
+ # @param [Hash] attributes Model attributes in the form of hash
594
+ def initialize(attributes = {})
595
+ if (!attributes.is_a?(Hash))
596
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TachainSdk::OrderLineApiDto` initialize method"
597
+ end
598
+
599
+ # check to see if the attribute exists and convert string to symbol for hash key
600
+ acceptable_attribute_map = self.class.acceptable_attribute_map
601
+ attributes = attributes.each_with_object({}) { |(k, v), h|
602
+ if (!acceptable_attribute_map.key?(k.to_sym))
603
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TachainSdk::OrderLineApiDto`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
604
+ end
605
+ h[k.to_sym] = v
606
+ }
607
+
608
+ if attributes.key?(:'id')
609
+ self.id = attributes[:'id']
610
+ end
611
+
612
+ if attributes.key?(:'unique_no')
613
+ self.unique_no = attributes[:'unique_no']
614
+ end
615
+
616
+ if attributes.key?(:'order_id')
617
+ self.order_id = attributes[:'order_id']
618
+ end
619
+
620
+ if attributes.key?(:'line_number')
621
+ self.line_number = attributes[:'line_number']
622
+ end
623
+
624
+ if attributes.key?(:'product_category')
625
+ self.product_category = attributes[:'product_category']
626
+ end
627
+
628
+ if attributes.key?(:'material_id')
629
+ self.material_id = attributes[:'material_id']
630
+ end
631
+
632
+ if attributes.key?(:'material_code')
633
+ self.material_code = attributes[:'material_code']
634
+ end
635
+
636
+ if attributes.key?(:'material_name')
637
+ self.material_name = attributes[:'material_name']
638
+ end
639
+
640
+ if attributes.key?(:'product_id')
641
+ self.product_id = attributes[:'product_id']
642
+ end
643
+
644
+ if attributes.key?(:'product_code')
645
+ self.product_code = attributes[:'product_code']
646
+ end
647
+
648
+ if attributes.key?(:'product_name')
649
+ self.product_name = attributes[:'product_name']
650
+ end
651
+
652
+ if attributes.key?(:'color')
653
+ self.color = attributes[:'color']
654
+ end
655
+
656
+ if attributes.key?(:'batch')
657
+ self.batch = attributes[:'batch']
658
+ end
659
+
660
+ if attributes.key?(:'quantity')
661
+ self.quantity = attributes[:'quantity']
662
+ end
663
+
664
+ if attributes.key?(:'destination_country')
665
+ self.destination_country = attributes[:'destination_country']
666
+ end
667
+
668
+ if attributes.key?(:'destination_country_name')
669
+ self.destination_country_name = attributes[:'destination_country_name']
670
+ end
671
+
672
+ if attributes.key?(:'component')
673
+ self.component = attributes[:'component']
674
+ end
675
+
676
+ if attributes.key?(:'certification')
677
+ self.certification = attributes[:'certification']
678
+ end
679
+
680
+ if attributes.key?(:'unit')
681
+ self.unit = attributes[:'unit']
682
+ end
683
+
684
+ if attributes.key?(:'customer_ext_no')
685
+ self.customer_ext_no = attributes[:'customer_ext_no']
686
+ end
687
+
688
+ if attributes.key?(:'supplier_ext_no')
689
+ self.supplier_ext_no = attributes[:'supplier_ext_no']
690
+ end
691
+
692
+ if attributes.key?(:'remark')
693
+ self.remark = attributes[:'remark']
694
+ end
695
+
696
+ if attributes.key?(:'origin_country')
697
+ self.origin_country = attributes[:'origin_country']
698
+ end
699
+
700
+ if attributes.key?(:'origin_country_name')
701
+ self.origin_country_name = attributes[:'origin_country_name']
702
+ end
703
+
704
+ if attributes.key?(:'gross_weight')
705
+ self.gross_weight = attributes[:'gross_weight']
706
+ end
707
+
708
+ if attributes.key?(:'net_weight')
709
+ self.net_weight = attributes[:'net_weight']
710
+ end
711
+
712
+ if attributes.key?(:'estimated_time_of_departure')
713
+ self.estimated_time_of_departure = attributes[:'estimated_time_of_departure']
714
+ end
715
+
716
+ if attributes.key?(:'season')
717
+ self.season = attributes[:'season']
718
+ end
719
+
720
+ if attributes.key?(:'season_year')
721
+ self.season_year = attributes[:'season_year']
722
+ end
723
+
724
+ if attributes.key?(:'unit_price')
725
+ self.unit_price = attributes[:'unit_price']
726
+ end
727
+
728
+ if attributes.key?(:'tax')
729
+ self.tax = attributes[:'tax']
730
+ end
731
+
732
+ if attributes.key?(:'status')
733
+ self.status = attributes[:'status']
734
+ end
735
+
736
+ if attributes.key?(:'tenant_id')
737
+ self.tenant_id = attributes[:'tenant_id']
738
+ end
739
+
740
+ if attributes.key?(:'last_updated_at')
741
+ self.last_updated_at = attributes[:'last_updated_at']
742
+ end
743
+
744
+ if attributes.key?(:'po_status')
745
+ self.po_status = attributes[:'po_status']
746
+ end
747
+
748
+ if attributes.key?(:'so_status')
749
+ self.so_status = attributes[:'so_status']
750
+ end
751
+
752
+ if attributes.key?(:'quantity2')
753
+ self.quantity2 = attributes[:'quantity2']
754
+ end
755
+
756
+ if attributes.key?(:'approve_status')
757
+ self.approve_status = attributes[:'approve_status']
758
+ end
759
+
760
+ if attributes.key?(:'scope_code')
761
+ self.scope_code = attributes[:'scope_code']
762
+ end
763
+
764
+ if attributes.key?(:'so_unit')
765
+ self.so_unit = attributes[:'so_unit']
766
+ end
767
+
768
+ if attributes.key?(:'so_quantity')
769
+ self.so_quantity = attributes[:'so_quantity']
770
+ end
771
+
772
+ if attributes.key?(:'master_approve_status')
773
+ self.master_approve_status = attributes[:'master_approve_status']
774
+ end
775
+
776
+ if attributes.key?(:'customer_confirm_status')
777
+ self.customer_confirm_status = attributes[:'customer_confirm_status']
778
+ end
779
+
780
+ if attributes.key?(:'order_chain_status')
781
+ self.order_chain_status = attributes[:'order_chain_status']
782
+ end
783
+
784
+ if attributes.key?(:'top_orderline_ids')
785
+ self.top_orderline_ids = attributes[:'top_orderline_ids']
786
+ end
787
+
788
+ if attributes.key?(:'so_unitgroup_consistent')
789
+ self.so_unitgroup_consistent = attributes[:'so_unitgroup_consistent']
790
+ end
791
+
792
+ if attributes.key?(:'order_number')
793
+ self.order_number = attributes[:'order_number']
794
+ end
795
+
796
+ if attributes.key?(:'available_quantity')
797
+ self.available_quantity = attributes[:'available_quantity']
798
+ end
799
+
800
+ if attributes.key?(:'type')
801
+ self.type = attributes[:'type']
802
+ end
803
+
804
+ if attributes.key?(:'u_name')
805
+ self.u_name = attributes[:'u_name']
806
+ end
807
+
808
+ if attributes.key?(:'product_category_name')
809
+ self.product_category_name = attributes[:'product_category_name']
810
+ end
811
+
812
+ if attributes.key?(:'scope_code_name')
813
+ self.scope_code_name = attributes[:'scope_code_name']
814
+ end
815
+
816
+ if attributes.key?(:'so_unit_name')
817
+ self.so_unit_name = attributes[:'so_unit_name']
818
+ end
819
+
820
+ if attributes.key?(:'purchase_order_detail_id')
821
+ self.purchase_order_detail_id = attributes[:'purchase_order_detail_id']
822
+ end
823
+
824
+ if attributes.key?(:'sales_order_line_id')
825
+ self.sales_order_line_id = attributes[:'sales_order_line_id']
826
+ end
827
+
828
+ if attributes.key?(:'so_declare_progress')
829
+ self.so_declare_progress = attributes[:'so_declare_progress']
830
+ else
831
+ self.so_declare_progress = nil
832
+ end
833
+
834
+ if attributes.key?(:'max_risk_level')
835
+ self.max_risk_level = attributes[:'max_risk_level']
836
+ else
837
+ self.max_risk_level = nil
838
+ end
839
+
840
+ if attributes.key?(:'max_risk_level_name')
841
+ self.max_risk_level_name = attributes[:'max_risk_level_name']
842
+ end
843
+
844
+ if attributes.key?(:'risk_warn_infos')
845
+ if (value = attributes[:'risk_warn_infos']).is_a?(Array)
846
+ self.risk_warn_infos = value
847
+ end
848
+ else
849
+ self.risk_warn_infos = nil
850
+ end
851
+
852
+ if attributes.key?(:'operate_type')
853
+ self.operate_type = attributes[:'operate_type']
854
+ else
855
+ self.operate_type = nil
856
+ end
857
+
858
+ if attributes.key?(:'attachments')
859
+ if (value = attributes[:'attachments']).is_a?(Array)
860
+ self.attachments = value
861
+ end
862
+ end
863
+
864
+ if attributes.key?(:'supplier_name')
865
+ self.supplier_name = attributes[:'supplier_name']
866
+ end
867
+
868
+ if attributes.key?(:'bom_batch')
869
+ self.bom_batch = attributes[:'bom_batch']
870
+ end
871
+
872
+ if attributes.key?(:'order_name')
873
+ self.order_name = attributes[:'order_name']
874
+ end
875
+
876
+ if attributes.key?(:'chain_status')
877
+ self.chain_status = attributes[:'chain_status']
878
+ end
879
+
880
+ if attributes.key?(:'chain_latest_updated_at')
881
+ self.chain_latest_updated_at = attributes[:'chain_latest_updated_at']
882
+ end
883
+
884
+ if attributes.key?(:'push_early_delivery_date')
885
+ self.push_early_delivery_date = attributes[:'push_early_delivery_date']
886
+ end
887
+
888
+ if attributes.key?(:'is_adjust_delivery')
889
+ self.is_adjust_delivery = attributes[:'is_adjust_delivery']
890
+ end
891
+
892
+ if attributes.key?(:'adjust_delivery_remark')
893
+ self.adjust_delivery_remark = attributes[:'adjust_delivery_remark']
894
+ end
895
+
896
+ if attributes.key?(:'order_line_finish_time')
897
+ self.order_line_finish_time = attributes[:'order_line_finish_time']
898
+ end
899
+
900
+ if attributes.key?(:'customer_confirm_time')
901
+ self.customer_confirm_time = attributes[:'customer_confirm_time']
902
+ end
903
+
904
+ if attributes.key?(:'kpi_exclude_flag')
905
+ self.kpi_exclude_flag = attributes[:'kpi_exclude_flag']
906
+ end
907
+
908
+ if attributes.key?(:'kpi_exclude_reason')
909
+ self.kpi_exclude_reason = attributes[:'kpi_exclude_reason']
910
+ end
911
+
912
+ if attributes.key?(:'ship_in_batches')
913
+ self.ship_in_batches = attributes[:'ship_in_batches']
914
+ end
915
+
916
+ if attributes.key?(:'gts_departure_date')
917
+ self.gts_departure_date = attributes[:'gts_departure_date']
918
+ end
919
+
920
+ if attributes.key?(:'gts_arrival_date')
921
+ self.gts_arrival_date = attributes[:'gts_arrival_date']
922
+ end
923
+
924
+ if attributes.key?(:'gts_ship_finished')
925
+ self.gts_ship_finished = attributes[:'gts_ship_finished']
926
+ end
927
+
928
+ if attributes.key?(:'is_need_transfer')
929
+ self.is_need_transfer = attributes[:'is_need_transfer']
930
+ end
931
+
932
+ if attributes.key?(:'single_component')
933
+ self.single_component = attributes[:'single_component']
934
+ end
935
+
936
+ if attributes.key?(:'use_factory_id')
937
+ self.use_factory_id = attributes[:'use_factory_id']
938
+ end
939
+
940
+ if attributes.key?(:'is_mixed_fiber')
941
+ self.is_mixed_fiber = attributes[:'is_mixed_fiber']
942
+ end
943
+
944
+ if attributes.key?(:'product_final')
945
+ self.product_final = attributes[:'product_final']
946
+ end
947
+
948
+ if attributes.key?(:'is_approved')
949
+ self.is_approved = attributes[:'is_approved']
950
+ end
951
+
952
+ if attributes.key?(:'unit_code')
953
+ self.unit_code = attributes[:'unit_code']
954
+ end
955
+
956
+ if attributes.key?(:'so_unit_code')
957
+ self.so_unit_code = attributes[:'so_unit_code']
958
+ end
959
+
960
+ if attributes.key?(:'max_so_quantity')
961
+ self.max_so_quantity = attributes[:'max_so_quantity']
962
+ end
963
+
964
+ if attributes.key?(:'min_so_quantity')
965
+ self.min_so_quantity = attributes[:'min_so_quantity']
966
+ end
967
+
968
+ if attributes.key?(:'is_operable')
969
+ self.is_operable = attributes[:'is_operable']
970
+ end
971
+
972
+ if attributes.key?(:'is_operable_message')
973
+ self.is_operable_message = attributes[:'is_operable_message']
974
+ end
975
+
976
+ if attributes.key?(:'is_operable_type')
977
+ self.is_operable_type = attributes[:'is_operable_type']
978
+ end
979
+
980
+ if attributes.key?(:'order_remarks')
981
+ self.order_remarks = attributes[:'order_remarks']
982
+ end
983
+
984
+ if attributes.key?(:'is_can_re_trader')
985
+ self.is_can_re_trader = attributes[:'is_can_re_trader']
986
+ else
987
+ self.is_can_re_trader = nil
988
+ end
989
+
990
+ if attributes.key?(:'remain_trade_ship_quantity')
991
+ self.remain_trade_ship_quantity = attributes[:'remain_trade_ship_quantity']
992
+ else
993
+ self.remain_trade_ship_quantity = nil
994
+ end
995
+
996
+ if attributes.key?(:'is_order_line_changed')
997
+ self.is_order_line_changed = attributes[:'is_order_line_changed']
998
+ else
999
+ self.is_order_line_changed = nil
1000
+ end
1001
+ end
1002
+
1003
+ # Show invalid properties with the reasons. Usually used together with valid?
1004
+ # @return Array for valid properties with the reasons
1005
+ def list_invalid_properties
1006
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
1007
+ invalid_properties = Array.new
1008
+ if @so_declare_progress.nil?
1009
+ invalid_properties.push('invalid value for "so_declare_progress", so_declare_progress cannot be nil.')
1010
+ end
1011
+
1012
+ if @max_risk_level.nil?
1013
+ invalid_properties.push('invalid value for "max_risk_level", max_risk_level cannot be nil.')
1014
+ end
1015
+
1016
+ if @risk_warn_infos.nil?
1017
+ invalid_properties.push('invalid value for "risk_warn_infos", risk_warn_infos cannot be nil.')
1018
+ end
1019
+
1020
+ if @operate_type.nil?
1021
+ invalid_properties.push('invalid value for "operate_type", operate_type cannot be nil.')
1022
+ end
1023
+
1024
+ if @is_can_re_trader.nil?
1025
+ invalid_properties.push('invalid value for "is_can_re_trader", is_can_re_trader cannot be nil.')
1026
+ end
1027
+
1028
+ if @remain_trade_ship_quantity.nil?
1029
+ invalid_properties.push('invalid value for "remain_trade_ship_quantity", remain_trade_ship_quantity cannot be nil.')
1030
+ end
1031
+
1032
+ if @is_order_line_changed.nil?
1033
+ invalid_properties.push('invalid value for "is_order_line_changed", is_order_line_changed cannot be nil.')
1034
+ end
1035
+
1036
+ invalid_properties
1037
+ end
1038
+
1039
+ # Check to see if the all the properties in the model are valid
1040
+ # @return true if the model is valid
1041
+ def valid?
1042
+ warn '[DEPRECATED] the `valid?` method is obsolete'
1043
+ return false if @so_declare_progress.nil?
1044
+ return false if @max_risk_level.nil?
1045
+ return false if @risk_warn_infos.nil?
1046
+ return false if @operate_type.nil?
1047
+ return false if @is_can_re_trader.nil?
1048
+ return false if @remain_trade_ship_quantity.nil?
1049
+ return false if @is_order_line_changed.nil?
1050
+ true
1051
+ end
1052
+
1053
+ # Custom attribute writer method with validation
1054
+ # @param [Object] so_declare_progress Value to be assigned
1055
+ def so_declare_progress=(so_declare_progress)
1056
+ if so_declare_progress.nil?
1057
+ fail ArgumentError, 'so_declare_progress cannot be nil'
1058
+ end
1059
+
1060
+ @so_declare_progress = so_declare_progress
1061
+ end
1062
+
1063
+ # Custom attribute writer method with validation
1064
+ # @param [Object] max_risk_level Value to be assigned
1065
+ def max_risk_level=(max_risk_level)
1066
+ if max_risk_level.nil?
1067
+ fail ArgumentError, 'max_risk_level cannot be nil'
1068
+ end
1069
+
1070
+ @max_risk_level = max_risk_level
1071
+ end
1072
+
1073
+ # Custom attribute writer method with validation
1074
+ # @param [Object] risk_warn_infos Value to be assigned
1075
+ def risk_warn_infos=(risk_warn_infos)
1076
+ if risk_warn_infos.nil?
1077
+ fail ArgumentError, 'risk_warn_infos cannot be nil'
1078
+ end
1079
+
1080
+ @risk_warn_infos = risk_warn_infos
1081
+ end
1082
+
1083
+ # Custom attribute writer method with validation
1084
+ # @param [Object] operate_type Value to be assigned
1085
+ def operate_type=(operate_type)
1086
+ if operate_type.nil?
1087
+ fail ArgumentError, 'operate_type cannot be nil'
1088
+ end
1089
+
1090
+ @operate_type = operate_type
1091
+ end
1092
+
1093
+ # Custom attribute writer method with validation
1094
+ # @param [Object] is_can_re_trader Value to be assigned
1095
+ def is_can_re_trader=(is_can_re_trader)
1096
+ if is_can_re_trader.nil?
1097
+ fail ArgumentError, 'is_can_re_trader cannot be nil'
1098
+ end
1099
+
1100
+ @is_can_re_trader = is_can_re_trader
1101
+ end
1102
+
1103
+ # Custom attribute writer method with validation
1104
+ # @param [Object] remain_trade_ship_quantity Value to be assigned
1105
+ def remain_trade_ship_quantity=(remain_trade_ship_quantity)
1106
+ if remain_trade_ship_quantity.nil?
1107
+ fail ArgumentError, 'remain_trade_ship_quantity cannot be nil'
1108
+ end
1109
+
1110
+ @remain_trade_ship_quantity = remain_trade_ship_quantity
1111
+ end
1112
+
1113
+ # Custom attribute writer method with validation
1114
+ # @param [Object] is_order_line_changed Value to be assigned
1115
+ def is_order_line_changed=(is_order_line_changed)
1116
+ if is_order_line_changed.nil?
1117
+ fail ArgumentError, 'is_order_line_changed cannot be nil'
1118
+ end
1119
+
1120
+ @is_order_line_changed = is_order_line_changed
1121
+ end
1122
+
1123
+ # Checks equality by comparing each attribute.
1124
+ # @param [Object] Object to be compared
1125
+ def ==(o)
1126
+ return true if self.equal?(o)
1127
+ self.class == o.class &&
1128
+ id == o.id &&
1129
+ unique_no == o.unique_no &&
1130
+ order_id == o.order_id &&
1131
+ line_number == o.line_number &&
1132
+ product_category == o.product_category &&
1133
+ material_id == o.material_id &&
1134
+ material_code == o.material_code &&
1135
+ material_name == o.material_name &&
1136
+ product_id == o.product_id &&
1137
+ product_code == o.product_code &&
1138
+ product_name == o.product_name &&
1139
+ color == o.color &&
1140
+ batch == o.batch &&
1141
+ quantity == o.quantity &&
1142
+ destination_country == o.destination_country &&
1143
+ destination_country_name == o.destination_country_name &&
1144
+ component == o.component &&
1145
+ certification == o.certification &&
1146
+ unit == o.unit &&
1147
+ customer_ext_no == o.customer_ext_no &&
1148
+ supplier_ext_no == o.supplier_ext_no &&
1149
+ remark == o.remark &&
1150
+ origin_country == o.origin_country &&
1151
+ origin_country_name == o.origin_country_name &&
1152
+ gross_weight == o.gross_weight &&
1153
+ net_weight == o.net_weight &&
1154
+ estimated_time_of_departure == o.estimated_time_of_departure &&
1155
+ season == o.season &&
1156
+ season_year == o.season_year &&
1157
+ unit_price == o.unit_price &&
1158
+ tax == o.tax &&
1159
+ status == o.status &&
1160
+ tenant_id == o.tenant_id &&
1161
+ last_updated_at == o.last_updated_at &&
1162
+ po_status == o.po_status &&
1163
+ so_status == o.so_status &&
1164
+ quantity2 == o.quantity2 &&
1165
+ approve_status == o.approve_status &&
1166
+ scope_code == o.scope_code &&
1167
+ so_unit == o.so_unit &&
1168
+ so_quantity == o.so_quantity &&
1169
+ master_approve_status == o.master_approve_status &&
1170
+ customer_confirm_status == o.customer_confirm_status &&
1171
+ order_chain_status == o.order_chain_status &&
1172
+ top_orderline_ids == o.top_orderline_ids &&
1173
+ so_unitgroup_consistent == o.so_unitgroup_consistent &&
1174
+ order_number == o.order_number &&
1175
+ available_quantity == o.available_quantity &&
1176
+ type == o.type &&
1177
+ u_name == o.u_name &&
1178
+ product_category_name == o.product_category_name &&
1179
+ scope_code_name == o.scope_code_name &&
1180
+ so_unit_name == o.so_unit_name &&
1181
+ purchase_order_detail_id == o.purchase_order_detail_id &&
1182
+ sales_order_line_id == o.sales_order_line_id &&
1183
+ so_declare_progress == o.so_declare_progress &&
1184
+ max_risk_level == o.max_risk_level &&
1185
+ max_risk_level_name == o.max_risk_level_name &&
1186
+ risk_warn_infos == o.risk_warn_infos &&
1187
+ operate_type == o.operate_type &&
1188
+ attachments == o.attachments &&
1189
+ supplier_name == o.supplier_name &&
1190
+ bom_batch == o.bom_batch &&
1191
+ order_name == o.order_name &&
1192
+ chain_status == o.chain_status &&
1193
+ chain_latest_updated_at == o.chain_latest_updated_at &&
1194
+ push_early_delivery_date == o.push_early_delivery_date &&
1195
+ is_adjust_delivery == o.is_adjust_delivery &&
1196
+ adjust_delivery_remark == o.adjust_delivery_remark &&
1197
+ order_line_finish_time == o.order_line_finish_time &&
1198
+ customer_confirm_time == o.customer_confirm_time &&
1199
+ kpi_exclude_flag == o.kpi_exclude_flag &&
1200
+ kpi_exclude_reason == o.kpi_exclude_reason &&
1201
+ ship_in_batches == o.ship_in_batches &&
1202
+ gts_departure_date == o.gts_departure_date &&
1203
+ gts_arrival_date == o.gts_arrival_date &&
1204
+ gts_ship_finished == o.gts_ship_finished &&
1205
+ is_need_transfer == o.is_need_transfer &&
1206
+ single_component == o.single_component &&
1207
+ use_factory_id == o.use_factory_id &&
1208
+ is_mixed_fiber == o.is_mixed_fiber &&
1209
+ product_final == o.product_final &&
1210
+ is_approved == o.is_approved &&
1211
+ unit_code == o.unit_code &&
1212
+ so_unit_code == o.so_unit_code &&
1213
+ max_so_quantity == o.max_so_quantity &&
1214
+ min_so_quantity == o.min_so_quantity &&
1215
+ is_operable == o.is_operable &&
1216
+ is_operable_message == o.is_operable_message &&
1217
+ is_operable_type == o.is_operable_type &&
1218
+ order_remarks == o.order_remarks &&
1219
+ is_can_re_trader == o.is_can_re_trader &&
1220
+ remain_trade_ship_quantity == o.remain_trade_ship_quantity &&
1221
+ is_order_line_changed == o.is_order_line_changed
1222
+ end
1223
+
1224
+ # @see the `==` method
1225
+ # @param [Object] Object to be compared
1226
+ def eql?(o)
1227
+ self == o
1228
+ end
1229
+
1230
+ # Calculates hash code according to all attributes.
1231
+ # @return [Integer] Hash code
1232
+ def hash
1233
+ [id, unique_no, order_id, line_number, product_category, material_id, material_code, material_name, product_id, product_code, product_name, color, batch, quantity, destination_country, destination_country_name, component, certification, unit, customer_ext_no, supplier_ext_no, remark, origin_country, origin_country_name, gross_weight, net_weight, estimated_time_of_departure, season, season_year, unit_price, tax, status, tenant_id, last_updated_at, po_status, so_status, quantity2, approve_status, scope_code, so_unit, so_quantity, master_approve_status, customer_confirm_status, order_chain_status, top_orderline_ids, so_unitgroup_consistent, order_number, available_quantity, type, u_name, product_category_name, scope_code_name, so_unit_name, purchase_order_detail_id, sales_order_line_id, so_declare_progress, max_risk_level, max_risk_level_name, risk_warn_infos, operate_type, attachments, supplier_name, bom_batch, order_name, chain_status, chain_latest_updated_at, push_early_delivery_date, is_adjust_delivery, adjust_delivery_remark, order_line_finish_time, customer_confirm_time, kpi_exclude_flag, kpi_exclude_reason, ship_in_batches, gts_departure_date, gts_arrival_date, gts_ship_finished, is_need_transfer, single_component, use_factory_id, is_mixed_fiber, product_final, is_approved, unit_code, so_unit_code, max_so_quantity, min_so_quantity, is_operable, is_operable_message, is_operable_type, order_remarks, is_can_re_trader, remain_trade_ship_quantity, is_order_line_changed].hash
1234
+ end
1235
+
1236
+ # Builds the object from hash
1237
+ # @param [Hash] attributes Model attributes in the form of hash
1238
+ # @return [Object] Returns the model itself
1239
+ def self.build_from_hash(attributes)
1240
+ return nil unless attributes.is_a?(Hash)
1241
+ attributes = attributes.transform_keys(&:to_sym)
1242
+ transformed_hash = {}
1243
+ openapi_types.each_pair do |key, type|
1244
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
1245
+ transformed_hash["#{key}"] = nil
1246
+ elsif type =~ /\AArray<(.*)>/i
1247
+ # check to ensure the input is an array given that the attribute
1248
+ # is documented as an array but the input is not
1249
+ if attributes[attribute_map[key]].is_a?(Array)
1250
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
1251
+ end
1252
+ elsif !attributes[attribute_map[key]].nil?
1253
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
1254
+ end
1255
+ end
1256
+ new(transformed_hash)
1257
+ end
1258
+
1259
+ # Returns the object in the form of hash
1260
+ # @return [Hash] Returns the object in the form of hash
1261
+ def to_hash
1262
+ hash = {}
1263
+ self.class.attribute_map.each_pair do |attr, param|
1264
+ value = self.send(attr)
1265
+ if value.nil?
1266
+ is_nullable = self.class.openapi_nullable.include?(attr)
1267
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
1268
+ end
1269
+
1270
+ hash[param] = _to_hash(value)
1271
+ end
1272
+ hash
1273
+ end
1274
+
1275
+ end
1276
+
1277
+ end