x12_types/v005010/segment/x.rs
1use serde::{Deserialize, Serialize};
2use x12_types_macros::{DisplaySegment, ParseSegment};
3
4/// X4 - Customs Release Information
5///
6/// To transmit customs release and disposition information for a bill of lading
7///
8/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
9/// ----|----|-------|--------|----|------|-------
10/// 01 | 598 | Bill of Lading/Waybill Number | 1 | O | AN | 1/25
11/// 02 | 380 | Quantity | 1 | O | R | 1/15
12/// 03 | 581 | Customs Entry Type Code | 1 | X | ID | 2/2
13/// 04 | 601 | Customs Entry Number | 1 | X | AN | 1/15
14/// 05 | 373 | Date | 1 | M | DT | 8/8
15/// 06 | 337 | Time | 1 | X | TM | 4/8
16/// 07 | 35 | Bill of Lading Disposition Code | 1 | M | ID | 2/2
17/// 08 | 598 | Bill of Lading/Waybill Number | 1 | X | AN | 1/25
18/// 09 | 140 | Standard Carrier Alpha Code | 1 | M | ID | 2/4
19/// 10 | 140 | Standard Carrier Alpha Code | 1 | X | ID | 2/4
20/// 11 | 206 | Equipment Initial | 1 | O | AN | 1/4
21/// 12 | 207 | Equipment Number | 1 | O | AN | 1/15
22/// 13 | 310 | Location Identifier | 1 | O | AN | 1/30
23/// 14 | 310 | Location Identifier | 1 | O | AN | 1/30
24/// 15 | 128 | Reference Identification Qualifier | 1 | X | ID | 2/3
25/// 16 | 127 | Reference Identification | 1 | X | AN | 1/50
26/// 17 | 623 | Time Code | 1 | O | ID | 2/2
27/// 18 | 310 | Location Identifier | 1 | O | AN | 1/30
28/// 19 | 310 | Location Identifier | 1 | O | AN | 1/30
29#[derive(
30 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
31)]
32pub struct X4 {
33 #[serde(rename = "01")]
34 pub _01: Option<String>,
35 #[serde(rename = "02")]
36 pub _02: Option<String>,
37 #[serde(rename = "03")]
38 pub _03: Option<String>,
39 #[serde(rename = "04")]
40 pub _04: Option<String>,
41 #[serde(rename = "05")]
42 pub _05: String,
43 #[serde(rename = "06")]
44 pub _06: Option<String>,
45 #[serde(rename = "07")]
46 pub _07: String,
47 #[serde(rename = "08")]
48 pub _08: Option<String>,
49 #[serde(rename = "09")]
50 pub _09: String,
51 #[serde(rename = "10")]
52 pub _10: Option<String>,
53 #[serde(rename = "11")]
54 pub _11: Option<String>,
55 #[serde(rename = "12")]
56 pub _12: Option<String>,
57 #[serde(rename = "13")]
58 pub _13: Option<String>,
59 #[serde(rename = "14")]
60 pub _14: Option<String>,
61 #[serde(rename = "15")]
62 pub _15: Option<String>,
63 #[serde(rename = "16")]
64 pub _16: Option<String>,
65 #[serde(rename = "17")]
66 pub _17: Option<crate::v005010::element::E623>,
67 #[serde(rename = "18")]
68 pub _18: Option<String>,
69 #[serde(rename = "19")]
70 pub _19: Option<String>,
71}
72
73/// X1 - Equipment Details
74///
75/// To specify the equipment details
76///
77/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
78/// ----|----|-------|--------|----|------|-------
79/// 01 | 127 | Reference Identification | 1 | M | AN | 1/30
80/// 02 | 127 | Reference Identification | 1 | M | AN | 1/30
81/// 03 | 127 | Reference Identification | 1 | M | AN | 1/30
82/// 04 | 373 | Date | 1 | O | DT | 8/8
83/// 05 | 127 | Reference Identification | 1 | M | AN | 1/30
84/// 06 | 127 | Reference Identification | 1 | M | AN | 1/30
85/// 07 | 26 | Country Code | 1 | O | ID | 2/3
86/// 08 | 127 | Reference Identification | 1 | O | AN | 1/30
87/// 09 | 127 | Reference Identification | 1 | O | AN | 1/30
88/// 10 | 127 | Reference Identification | 1 | O | AN | 1/30
89/// 11 | 127 | Reference Identification | 1 | O | AN | 1/30
90/// 12 | 127 | Reference Identification | 1 | O | AN | 1/30
91/// 13 | 127 | Reference Identification | 1 | O | AN | 1/30
92/// 14 | 127 | Reference Identification | 1 | O | AN | 1/30
93/// 15 | 127 | Reference Identification | 1 | O | AN | 1/30
94/// 16 | 127 | Reference Identification | 1 | O | AN | 1/30
95#[derive(
96 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
97)]
98pub struct X1 {
99 #[serde(rename = "01")]
100 pub _01: String,
101 #[serde(rename = "02")]
102 pub _02: String,
103 #[serde(rename = "03")]
104 pub _03: String,
105 /// 373 - Date
106 ///
107 /// Date expressed as CCYYMMDD where CC represents the first two digits of the calendar year
108 /// - TYPE=DT
109 /// - MIN=8
110 /// - MAX=8
111 #[serde(rename = "04")]
112 pub _04: Option<String>,
113 #[serde(rename = "05")]
114 pub _05: String,
115 #[serde(rename = "06")]
116 pub _06: String,
117 /// 26 - Country Code
118 ///
119 /// Code identifying the country
120 /// - TYPE=ID
121 /// - MIN=2
122 /// - MAX=3
123 #[serde(rename = "07")]
124 pub _07: Option<String>,
125 #[serde(rename = "08")]
126 pub _08: Option<String>,
127 #[serde(rename = "09")]
128 pub _09: Option<String>,
129 #[serde(rename = "10")]
130 pub _10: Option<String>,
131 #[serde(rename = "11")]
132 pub _11: Option<String>,
133 #[serde(rename = "12")]
134 pub _12: Option<String>,
135 #[serde(rename = "13")]
136 pub _13: Option<String>,
137 #[serde(rename = "14")]
138 pub _14: Option<String>,
139 #[serde(rename = "15")]
140 pub _15: Option<String>,
141 #[serde(rename = "16")]
142 pub _16: Option<String>,
143}
144
145/// X2 - Equipment Details
146///
147/// To specify the equipment details
148///
149/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
150/// ----|----|-------|--------|----|------|-------
151/// 01 | 127 | Reference Identification | 1 | M | AN | 1/30
152/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
153/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
154/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
155/// 05 | 127 | Reference Identification | 1 | O | AN | 1/30
156/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
157#[derive(
158 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
159)]
160pub struct X2 {
161 #[serde(rename = "01")]
162 pub _01: String,
163 #[serde(rename = "02")]
164 pub _02: Option<String>,
165 #[serde(rename = "03")]
166 pub _03: Option<String>,
167 #[serde(rename = "04")]
168 pub _04: Option<String>,
169 #[serde(rename = "05")]
170 pub _05: Option<String>,
171 #[serde(rename = "06")]
172 pub _06: Option<String>,
173}
174
175/// XPO - Preassigned Purchase Order Numbers
176///
177/// To transmit preassigned purchase order numbers
178///
179/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
180/// ----|----|-------|--------|----|------|-------
181/// 01 | 324 | Purchase Order Number | 1 | M | AN | 1/22
182/// 02 | 324 | Purchase Order Number | 1 | O | AN | 1/22
183/// 03 | 66 | Identification Code Qualifier | 1 | X | ID | 1/2
184/// 04 | 67 | Identification Code | 1 | X | AN | 2/80
185#[derive(
186 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
187)]
188pub struct XPO {
189 #[serde(rename = "01")]
190 pub _01: String,
191 #[serde(rename = "02")]
192 pub _02: Option<String>,
193 #[serde(rename = "03")]
194 pub _03: Option<String>,
195 #[serde(rename = "04")]
196 pub _04: Option<String>,
197}
198
199/// XQ - Reporting Period
200///
201/// To carry reporting period data
202#[derive(
203 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
204)]
205pub struct XQ {
206 #[serde(rename = "01")]
207 pub _01: String,
208 #[serde(rename = "02")]
209 pub _02: Option<String>,
210 #[serde(rename = "03")]
211 pub _03: Option<String>,
212 #[serde(rename = "04")]
213 pub _04: Option<String>,
214 #[serde(rename = "05")]
215 pub _05: Option<String>,
216}
217
218/// XH - Pro Forma - B13 Information
219#[derive(
220 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
221)]
222pub struct XH {
223 #[serde(rename = "01")]
224 pub _01: String,
225 #[serde(rename = "02")]
226 pub _02: Option<String>,
227 #[serde(rename = "03")]
228 pub _03: Option<String>,
229 #[serde(rename = "04")]
230 pub _04: Option<String>,
231 #[serde(rename = "05")]
232 pub _05: Option<String>,
233 #[serde(rename = "06")]
234 pub _06: Option<String>,
235 #[serde(rename = "07")]
236 pub _07: Option<String>,
237}
238
239/// X7 - Customs Information
240#[derive(
241 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
242)]
243pub struct X7 {
244 #[serde(rename = "01")]
245 pub _01: String,
246 #[serde(rename = "02")]
247 pub _02: Option<String>,
248}