Skip to main content

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}