Skip to main content

x12_types/v005010/segment/
p.rs

1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5/// P4 - Port Information
6///
7/// To transmit identifying information for a port and the dates relating to an event
8///
9/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
10/// ----|----|-------|--------|----|------|-------
11/// 01 | 310 | Location Identifier | 1 | M | AN | 1/30
12/// 02 | 373 | Date | 1 | M | DT | 8/8
13/// 03 | 380 | Quantity | 1 | O | R | 1/15
14/// 04 | 310 | Location Identifier | 1 | O | AN | 1/30
15/// 05 | 337 | Time | 1 | O | TM | 4/8
16/// 06 | 373 | Date | 1 | O | DT | 8/8
17/// 07 | 337 | Time | 1 | O | TM | 4/8
18#[derive(
19    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
20)]
21pub struct P4 {
22    #[serde(rename = "01")]
23    pub _01: String,
24    #[serde(rename = "02")]
25    pub _02: String,
26    #[serde(rename = "03")]
27    pub _03: Option<String>,
28    #[serde(rename = "04")]
29    pub _04: Option<String>,
30    #[serde(rename = "05")]
31    pub _05: Option<String>,
32    #[serde(rename = "06")]
33    pub _06: Option<String>,
34    #[serde(rename = "07")]
35    pub _07: Option<String>,
36}
37
38/// PAT - Patient Information
39#[derive(
40    Serialize,
41    Deserialize,
42    Clone,
43    Default,
44    Debug,
45    Validate,
46    PartialEq,
47    Eq,
48    DisplaySegment,
49    ParseSegment,
50)]
51pub struct PAT {
52    #[serde(rename = "01")]
53    pub _01: Option<String>,
54    #[serde(rename = "02")]
55    pub _02: Option<String>,
56    #[serde(rename = "03")]
57    pub _03: Option<String>,
58    #[serde(rename = "04")]
59    pub _04: Option<String>,
60    #[serde(rename = "05")]
61    pub _05: Option<String>,
62    #[serde(rename = "06")]
63    pub _06: Option<String>,
64    #[serde(rename = "07")]
65    pub _07: Option<String>,
66    #[serde(rename = "08")]
67    pub _08: Option<String>,
68    #[serde(rename = "09")]
69    pub _09: Option<String>,
70}
71
72/// PDI - Product/Item Description Information
73///
74/// To convey practice detail information
75///
76/// REF | ID | NAME | REQ | TYPE | MIN/MAX
77/// ----|----|-------|----|------|-------
78/// 01 | 1068 | Gender Code | O | ID | 1/1
79/// 02 | 740 | Range Minimum | O | R | 1/20
80/// 03 | 741 | Range Maximum | O | R | 1/20
81/// 04 | 1073 | Yes/No Condition or Response Code | O | ID | 1/1
82#[derive(
83    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
84)]
85pub struct PDI {
86    #[serde(rename = "01")]
87    pub _01: Option<crate::v005010::element::E1068>,
88    #[serde(rename = "02")]
89    pub _02: Option<String>,
90    #[serde(rename = "03")]
91    pub _03: Option<String>,
92    #[serde(rename = "04")]
93    pub _04: Option<crate::v005010::element::E1073>,
94}
95
96/// PUN - Beginning Segment for Motor Carrier Pickup Notification
97///
98/// To transmit identifying numbers, dates, and other basic data relating to the pickup notification
99///
100/// REF | ID | NAME | REQ | TYPE | MIN/MAX
101/// ----|----|-------|----|------|-------
102/// 01 | 140 | Standard Carrier Alpha Code | M | ID | 2/4
103/// 02 | 373 | Date | M | DT | 8/8
104/// 03 | 337 | Time | O | TM | 4/8
105/// 04 | 127 | Reference Identification | O | AN | 1/50
106/// 05 | 337 | Time | O | TM | 4/8
107/// 06 | 353 | Transaction Set Purpose Code | M | ID | 2/2
108#[derive(
109    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
110)]
111pub struct PUN {
112    #[serde(rename = "01")]
113    pub _01: String,
114    #[serde(rename = "02")]
115    pub _02: String,
116    #[serde(rename = "03")]
117    pub _03: Option<String>,
118    #[serde(rename = "04")]
119    pub _04: Option<String>,
120    #[serde(rename = "05")]
121    pub _05: Option<String>,
122    #[serde(rename = "06")]
123    pub _06: String,
124}
125
126/// PER - Administrative Communications Contact
127#[derive(
128    Serialize,
129    Deserialize,
130    Clone,
131    Default,
132    Debug,
133    Validate,
134    PartialEq,
135    Eq,
136    DisplaySegment,
137    ParseSegment,
138)]
139pub struct PER {
140    /// 366 - Contact Function Code
141    #[serde(rename = "01")]
142    pub _01: crate::v005010::element::E366,
143    #[serde(rename = "02")]
144    pub _02: Option<String>,
145    /// 365 - Communication Number Qualifier
146    #[serde(rename = "03")]
147    pub _03: Option<crate::v005010::element::E365>,
148    #[serde(rename = "04")]
149    pub _04: Option<String>,
150    /// 365 - Communication Number Qualifier
151    #[serde(rename = "05")]
152    pub _05: Option<crate::v005010::element::E365>,
153    #[serde(rename = "06")]
154    pub _06: Option<String>,
155    /// 365 - Communication Number Qualifier
156    #[serde(rename = "07")]
157    pub _07: Option<crate::v005010::element::E365>,
158    #[serde(rename = "08")]
159    pub _08: Option<String>,
160    #[serde(rename = "09")]
161    pub _09: Option<String>,
162}
163
164/// PLA - Place or Location
165#[derive(
166    Serialize,
167    Deserialize,
168    Clone,
169    Default,
170    Debug,
171    Validate,
172    PartialEq,
173    Eq,
174    DisplaySegment,
175    ParseSegment,
176)]
177pub struct PLA {
178    #[serde(rename = "01")]
179    pub _01: String,
180    #[serde(rename = "02")]
181    pub _02: String,
182    #[serde(rename = "03")]
183    pub _03: String,
184    #[serde(rename = "04")]
185    pub _04: Option<String>,
186    #[serde(rename = "05")]
187    pub _05: Option<String>,
188}
189
190/// PLB - Provider Level Adjustment
191#[derive(
192    Serialize,
193    Deserialize,
194    Clone,
195    Default,
196    Debug,
197    Validate,
198    PartialEq,
199    Eq,
200    DisplaySegment,
201    ParseSegment,
202)]
203pub struct PLB {
204    #[serde(rename = "01")]
205    pub _01: String,
206    #[serde(rename = "02")]
207    pub _02: String,
208    #[serde(rename = "03")]
209    pub _03: Option<String>,
210    #[serde(rename = "04")]
211    pub _04: Option<String>,
212    #[serde(rename = "05")]
213    pub _05: Option<String>,
214    #[serde(rename = "06")]
215    pub _06: Option<String>,
216    #[serde(rename = "07")]
217    pub _07: Option<String>,
218    #[serde(rename = "08")]
219    pub _08: Option<String>,
220    #[serde(rename = "09")]
221    pub _09: Option<String>,
222    #[serde(rename = "10")]
223    pub _10: Option<String>,
224    #[serde(rename = "11")]
225    pub _11: Option<String>,
226    #[serde(rename = "12")]
227    pub _12: Option<String>,
228    #[serde(rename = "13")]
229    pub _13: Option<String>,
230    #[serde(rename = "14")]
231    pub _14: Option<String>,
232}
233
234/// PM - Electronic Funds Transfer Information
235#[derive(
236    Serialize,
237    Deserialize,
238    Clone,
239    Default,
240    Debug,
241    Validate,
242    PartialEq,
243    Eq,
244    DisplaySegment,
245    ParseSegment,
246)]
247pub struct PM {
248    #[serde(rename = "01")]
249    pub _01: String,
250    #[serde(rename = "02")]
251    pub _02: String,
252    #[serde(rename = "03")]
253    pub _03: String,
254    #[serde(rename = "04")]
255    pub _04: String,
256    #[serde(rename = "05")]
257    pub _05: Option<String>,
258    #[serde(rename = "06")]
259    pub _06: Option<String>,
260}
261
262/// PRS - Part Release Status
263///
264/// To specify the status of the release of a part
265///
266/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
267/// ----|----|-------|--------|----|------|-------
268/// 01 | 682 | Part Release Status Code | 1 | M | ID | 1/2
269/// 02 | 352 | Description | 1 | O | AN | 1/80
270#[derive(
271    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
272)]
273pub struct PRS {
274    #[serde(rename = "01")]
275    pub _01: crate::v005010::element::E682,
276    #[serde(rename = "02")]
277    pub _02: Option<String>,
278}
279
280/// PRV - Provider Information
281#[derive(
282    Serialize,
283    Deserialize,
284    Clone,
285    Default,
286    Debug,
287    Validate,
288    PartialEq,
289    Eq,
290    DisplaySegment,
291    ParseSegment,
292)]
293pub struct PRV {
294    #[serde(rename = "01")]
295    pub _01: String,
296    #[serde(rename = "02")]
297    pub _02: Option<String>,
298    #[serde(rename = "03")]
299    pub _03: Option<String>,
300    #[serde(rename = "04")]
301    pub _04: Option<String>,
302    #[serde(rename = "05")]
303    pub _05: Option<String>,
304    #[serde(rename = "06")]
305    pub _06: Option<String>,
306}
307
308/// PS1 - Purchase Service
309#[derive(
310    Serialize,
311    Deserialize,
312    Clone,
313    Default,
314    Debug,
315    Validate,
316    PartialEq,
317    Eq,
318    DisplaySegment,
319    ParseSegment,
320)]
321pub struct PS1 {
322    #[serde(rename = "01")]
323    pub _01: String,
324    #[serde(rename = "02")]
325    pub _02: String,
326    #[serde(rename = "03")]
327    pub _03: Option<String>,
328}
329
330/// PSA - Partner Share Accounting
331///
332/// To specify the partner identification and that partner's share of a project
333///
334/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
335/// ----|----|-------|--------|----|------|-------
336/// 01 | 66 | Identification Code Qualifier | 1 | M | ID | 1/2
337/// 02 | 67 | Identification Code | 1 | M | AN | 2/80
338/// 03 | 826 | Owners Share | 1 | M | R | 1/8
339/// 04 | 782 | Monetary Amount | 1 | X | R | 1/18
340/// 05 | 522 | Amount Qualifier Code | 1 | O | ID | 1/3
341#[derive(
342    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
343)]
344pub struct PSA {
345    #[serde(rename = "01")]
346    pub _01: String,
347    #[serde(rename = "02")]
348    pub _02: String,
349    #[serde(rename = "03")]
350    pub _03: crate::v005010::element::E826,
351    #[serde(rename = "04")]
352    pub _04: Option<crate::v005010::element::E782>,
353    #[serde(rename = "05")]
354    pub _05: Option<String>,
355}
356
357/// PTD - Product Transfer and Resale Detail
358///
359/// To provide the basic data associated with a product transfer or resale detail
360///
361/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
362/// ----|----|-------|--------|----|------|-------
363/// 01 | 521 | Product Transfer Type Code | 1 | M | ID | 2/2
364/// 02 | 648 | Price Multiplier Qualifier | 1 | X | ID | 3/3
365/// 03 | 649 | Multiplier | 1 | X | R | 1/10
366/// 04 | 128 | Reference Identification Qualifier | 1 | X | ID | 2/3
367/// 05 | 127 | Reference Identification | 1 | X | AN | 1/50
368/// 06 | 486 | Product Transfer Movement Type Code | 1 | O | ID | 2/2
369#[derive(
370    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
371)]
372pub struct PTD {
373    #[serde(rename = "01")]
374    pub _01: crate::v005010::element::E521,
375    #[serde(rename = "02")]
376    pub _02: Option<crate::v005010::element::E648>,
377    #[serde(rename = "03")]
378    pub _03: Option<crate::v005010::element::E649>,
379    #[serde(rename = "04")]
380    pub _04: Option<String>,
381    #[serde(rename = "05")]
382    pub _05: Option<String>,
383    #[serde(rename = "06")]
384    pub _06: Option<crate::v005010::element::E486>,
385}
386
387/// PWK - Disability Information
388#[derive(
389    Serialize,
390    Deserialize,
391    Clone,
392    Default,
393    Debug,
394    Validate,
395    PartialEq,
396    Eq,
397    DisplaySegment,
398    ParseSegment,
399)]
400pub struct PWK {
401    #[serde(rename = "01")]
402    pub _01: String,
403    #[serde(rename = "02")]
404    pub _02: Option<String>,
405    #[serde(rename = "03")]
406    pub _03: Option<String>,
407    #[serde(rename = "04")]
408    pub _04: Option<String>,
409    #[serde(rename = "05")]
410    pub _05: Option<String>,
411    #[serde(rename = "06")]
412    pub _06: Option<String>,
413    #[serde(rename = "07")]
414    pub _07: Option<String>,
415    #[serde(rename = "08")]
416    pub _08: Option<String>,
417    #[serde(rename = "09")]
418    pub _09: Option<String>,
419}
420
421/// PD - Pricing Data
422///
423/// To specify pricing data for a proposal or contract
424///
425/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
426/// ----|----|-------|--------|----|------|-------
427/// 01 | 344 | Unit of Time Period or Interval | 1 | M | ID | 2/2
428/// 02 | 373 | Date | 1 | M | DT | 8/8
429/// 03 | C001 | Composite Unit of Measure | 1 | M | | 1/1
430/// 04 | 380 | Quantity | 1 | M | R | 1/15
431/// 05 | 93 | Name | 1 | M | AN | 1/60
432/// 06 | 352 | Description | 1 | O | AN | 1/80
433/// 07 | 1196 | Breakdown Structure Detail Code | 1 | O | ID | 2/2
434/// 08 | 127 | Reference Identification | 1 | O | AN | 1/50
435/// 09 | 352 | Description | 1 | O | AN | 1/80
436/// 10 | 1401 | Proposal Data Detail Identifier Code | 1 | O | ID | 1/3
437#[derive(
438    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
439)]
440pub struct PD {
441    #[serde(rename = "01")]
442    pub _01: crate::v005010::element::E344,
443    #[serde(rename = "02")]
444    pub _02: String,
445    #[serde(rename = "03")]
446    pub _03: String,
447    #[serde(rename = "04")]
448    pub _04: String,
449    #[serde(rename = "05")]
450    pub _05: String,
451    #[serde(rename = "06")]
452    pub _06: Option<String>,
453    #[serde(rename = "07")]
454    pub _07: Option<crate::v005010::element::E1196>,
455    #[serde(rename = "08")]
456    pub _08: Option<String>,
457    #[serde(rename = "09")]
458    pub _09: Option<String>,
459    #[serde(rename = "10")]
460    pub _10: Option<crate::v005010::element::E1401>,
461}
462
463/// PDD - Pricing Data Detail
464///
465/// To specify the detail of pricing data
466///
467/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
468/// ----|----|-------|--------|----|------|-------
469/// 01 | 350 | Assigned Identification | 1 | M | AN | 1/20
470/// 02 | 380 | Quantity | 1 | X | R | 1/15
471/// 03 | 782 | Monetary Amount | 1 | X | R | 1/18
472/// 04 | 954 | Percentage as Decimal | 1 | X | R | 1/10
473/// 05 | 1401 | Proposal Data Detail Identifier Code | 1 | O | ID | 1/3
474#[derive(
475    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
476)]
477pub struct PDD {
478    #[serde(rename = "01")]
479    pub _01: String,
480    #[serde(rename = "02")]
481    pub _02: Option<String>,
482    #[serde(rename = "03")]
483    pub _03: Option<crate::v005010::element::E782>,
484    #[serde(rename = "04")]
485    pub _04: Option<crate::v005010::element::E954>,
486    #[serde(rename = "05")]
487    pub _05: Option<crate::v005010::element::E1401>,
488}
489
490/// PDR - Property Description - Real
491#[derive(
492    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
493)]
494pub struct PDR {
495    #[serde(rename = "01")]
496    pub _01: String,
497    #[serde(rename = "02")]
498    pub _02: Option<String>,
499    #[serde(rename = "03")]
500    pub _03: Option<String>,
501    #[serde(rename = "04")]
502    pub _04: Option<String>,
503    #[serde(rename = "05")]
504    pub _05: Option<String>,
505    #[serde(rename = "06")]
506    pub _06: Option<String>,
507    #[serde(rename = "07")]
508    pub _07: Option<String>,
509    #[serde(rename = "08")]
510    pub _08: Option<String>,
511    #[serde(rename = "09")]
512    pub _09: Option<String>,
513    #[serde(rename = "10")]
514    pub _10: Option<String>,
515    #[serde(rename = "11")]
516    pub _11: Option<String>,
517    #[serde(rename = "12")]
518    pub _12: Option<String>,
519    #[serde(rename = "13")]
520    pub _13: Option<String>,
521    #[serde(rename = "14")]
522    pub _14: Option<String>,
523    #[serde(rename = "15")]
524    pub _15: Option<String>,
525    #[serde(rename = "16")]
526    pub _16: Option<String>,
527    #[serde(rename = "17")]
528    pub _17: Option<String>,
529    #[serde(rename = "18")]
530    pub _18: Option<String>,
531    #[serde(rename = "19")]
532    pub _19: Option<String>,
533    #[serde(rename = "20")]
534    pub _20: Option<String>,
535    #[serde(rename = "21")]
536    pub _21: Option<String>,
537    #[serde(rename = "22")]
538    pub _22: Option<String>,
539    #[serde(rename = "23")]
540    pub _23: Option<String>,
541    #[serde(rename = "24")]
542    pub _24: Option<String>,
543    #[serde(rename = "25")]
544    pub _25: Option<String>,
545    #[serde(rename = "26")]
546    pub _26: Option<String>,
547    #[serde(rename = "27")]
548    pub _27: Option<String>,
549    #[serde(rename = "28")]
550    pub _28: Option<String>,
551    #[serde(rename = "29")]
552    pub _29: Option<String>,
553    #[serde(rename = "30")]
554    pub _30: Option<String>,
555    #[serde(rename = "31")]
556    pub _31: Option<String>,
557    #[serde(rename = "32")]
558    pub _32: Option<String>,
559    #[serde(rename = "33")]
560    pub _33: Option<String>,
561    #[serde(rename = "34")]
562    pub _34: Option<String>,
563    #[serde(rename = "35")]
564    pub _35: Option<String>,
565    #[serde(rename = "36")]
566    pub _36: Option<String>,
567    #[serde(rename = "37")]
568    pub _37: Option<String>,
569    #[serde(rename = "38")]
570    pub _38: Option<String>,
571    #[serde(rename = "39")]
572    pub _39: Option<String>,
573    #[serde(rename = "40")]
574    pub _40: Option<String>,
575    #[serde(rename = "41")]
576    pub _41: Option<String>,
577    #[serde(rename = "42")]
578    pub _42: Option<String>,
579    #[serde(rename = "43")]
580    pub _43: Option<String>,
581    #[serde(rename = "44")]
582    pub _44: Option<String>,
583    #[serde(rename = "45")]
584    pub _45: Option<String>,
585    #[serde(rename = "46")]
586    pub _46: Option<String>,
587    #[serde(rename = "47")]
588    pub _47: Option<String>,
589    #[serde(rename = "48")]
590    pub _48: Option<String>,
591    #[serde(rename = "49")]
592    pub _49: Option<String>,
593    #[serde(rename = "50")]
594    pub _50: Option<String>,
595}
596
597/// PDP - Property Description - Personal
598#[derive(
599    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
600)]
601pub struct PDP {
602    #[serde(rename = "01")]
603    pub _01: String,
604    #[serde(rename = "02")]
605    pub _02: Option<String>,
606    #[serde(rename = "03")]
607    pub _03: Option<String>,
608    #[serde(rename = "04")]
609    pub _04: Option<String>,
610    #[serde(rename = "05")]
611    pub _05: Option<String>,
612    #[serde(rename = "06")]
613    pub _06: Option<String>,
614    #[serde(rename = "07")]
615    pub _07: Option<String>,
616    #[serde(rename = "08")]
617    pub _08: Option<String>,
618    #[serde(rename = "09")]
619    pub _09: Option<String>,
620    #[serde(rename = "10")]
621    pub _10: Option<String>,
622    #[serde(rename = "11")]
623    pub _11: Option<String>,
624    #[serde(rename = "12")]
625    pub _12: Option<String>,
626    #[serde(rename = "13")]
627    pub _13: Option<String>,
628    #[serde(rename = "14")]
629    pub _14: Option<String>,
630    #[serde(rename = "15")]
631    pub _15: Option<String>,
632    #[serde(rename = "16")]
633    pub _16: Option<String>,
634    #[serde(rename = "17")]
635    pub _17: Option<String>,
636    #[serde(rename = "18")]
637    pub _18: Option<String>,
638    #[serde(rename = "19")]
639    pub _19: Option<String>,
640    #[serde(rename = "20")]
641    pub _20: Option<String>,
642    #[serde(rename = "21")]
643    pub _21: Option<String>,
644    #[serde(rename = "22")]
645    pub _22: Option<String>,
646    #[serde(rename = "23")]
647    pub _23: Option<String>,
648    #[serde(rename = "24")]
649    pub _24: Option<String>,
650    #[serde(rename = "25")]
651    pub _25: Option<String>,
652    #[serde(rename = "26")]
653    pub _26: Option<String>,
654    #[serde(rename = "27")]
655    pub _27: Option<String>,
656    #[serde(rename = "28")]
657    pub _28: Option<String>,
658    #[serde(rename = "29")]
659    pub _29: Option<String>,
660    #[serde(rename = "30")]
661    pub _30: Option<String>,
662    #[serde(rename = "31")]
663    pub _31: Option<String>,
664    #[serde(rename = "32")]
665    pub _32: Option<String>,
666    #[serde(rename = "33")]
667    pub _33: Option<String>,
668    #[serde(rename = "34")]
669    pub _34: Option<String>,
670    #[serde(rename = "35")]
671    pub _35: Option<String>,
672    #[serde(rename = "36")]
673    pub _36: Option<String>,
674    #[serde(rename = "37")]
675    pub _37: Option<String>,
676    #[serde(rename = "38")]
677    pub _38: Option<String>,
678    #[serde(rename = "39")]
679    pub _39: Option<String>,
680    #[serde(rename = "40")]
681    pub _40: Option<String>,
682    #[serde(rename = "41")]
683    pub _41: Option<String>,
684    #[serde(rename = "42")]
685    pub _42: Option<String>,
686    #[serde(rename = "43")]
687    pub _43: Option<String>,
688    #[serde(rename = "44")]
689    pub _44: Option<String>,
690    #[serde(rename = "45")]
691    pub _45: Option<String>,
692    #[serde(rename = "46")]
693    pub _46: Option<String>,
694    #[serde(rename = "47")]
695    pub _47: Option<String>,
696    #[serde(rename = "48")]
697    pub _48: Option<String>,
698    #[serde(rename = "49")]
699    pub _49: Option<String>,
700    #[serde(rename = "50")]
701    pub _50: Option<String>,
702}
703
704/// PID - Product/Item Description
705#[derive(
706    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
707)]
708pub struct PID {
709    /// 349 - Item Description Type
710    #[serde(rename = "01")]
711    pub _01: Option<crate::v005010::element::E349>,
712    /// 750 - Product/Process Characteristic Code
713    #[serde(rename = "02")]
714    pub _02: Option<crate::v005010::element::E750>,
715    #[serde(rename = "03")]
716    pub _03: Option<String>,
717    #[serde(rename = "04")]
718    pub _04: Option<String>,
719    #[serde(rename = "05")]
720    pub _05: Option<String>,
721    #[serde(rename = "06")]
722    pub _06: Option<String>,
723    #[serde(rename = "07")]
724    pub _07: Option<String>,
725    #[serde(rename = "08")]
726    pub _08: Option<String>,
727    #[serde(rename = "09")]
728    pub _09: Option<String>,
729}
730
731/// PCT - Percent Amounts
732#[derive(
733    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
734)]
735pub struct PCT {
736    #[serde(rename = "01")]
737    pub _01: Option<String>,
738    #[serde(rename = "02")]
739    pub _02: Option<String>,
740    #[serde(rename = "03")]
741    pub _03: Option<String>,
742    #[serde(rename = "04")]
743    pub _04: Option<String>,
744    #[serde(rename = "05")]
745    pub _05: Option<String>,
746}
747
748/// PKD - Packaging Description
749#[derive(
750    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
751)]
752pub struct PKD {
753    #[serde(rename = "01")]
754    pub _01: Option<String>,
755    #[serde(rename = "02")]
756    pub _02: Option<String>,
757    #[serde(rename = "03")]
758    pub _03: Option<String>,
759    #[serde(rename = "04")]
760    pub _04: Option<String>,
761    #[serde(rename = "05")]
762    pub _05: Option<String>,
763    #[serde(rename = "06")]
764    pub _06: Option<String>,
765    #[serde(rename = "07")]
766    pub _07: Option<String>,
767    #[serde(rename = "08")]
768    pub _08: Option<String>,
769    #[serde(rename = "09")]
770    pub _09: Option<String>,
771    #[serde(rename = "10")]
772    pub _10: Option<String>,
773    #[serde(rename = "11")]
774    pub _11: Option<String>,
775    #[serde(rename = "12")]
776    pub _12: Option<String>,
777    #[serde(rename = "13")]
778    pub _13: Option<String>,
779    #[serde(rename = "14")]
780    pub _14: Option<String>,
781    #[serde(rename = "15")]
782    pub _15: Option<String>,
783    #[serde(rename = "16")]
784    pub _16: Option<String>,
785    #[serde(rename = "17")]
786    pub _17: Option<String>,
787    #[serde(rename = "18")]
788    pub _18: Option<String>,
789    #[serde(rename = "19")]
790    pub _19: Option<String>,
791    #[serde(rename = "20")]
792    pub _20: Option<String>,
793    #[serde(rename = "21")]
794    pub _21: Option<String>,
795    #[serde(rename = "22")]
796    pub _22: Option<String>,
797    #[serde(rename = "23")]
798    pub _23: Option<String>,
799    #[serde(rename = "24")]
800    pub _24: Option<String>,
801    #[serde(rename = "25")]
802    pub _25: Option<String>,
803}
804
805/// PEN - Pension Information
806#[derive(
807    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
808)]
809pub struct PEN {
810    #[serde(rename = "01")]
811    pub _01: Option<String>,
812    #[serde(rename = "02")]
813    pub _02: Option<String>,
814    #[serde(rename = "03")]
815    pub _03: Option<String>,
816    #[serde(rename = "04")]
817    pub _04: Option<String>,
818    #[serde(rename = "05")]
819    pub _05: Option<String>,
820    #[serde(rename = "06")]
821    pub _06: Option<String>,
822    #[serde(rename = "07")]
823    pub _07: Option<String>,
824    #[serde(rename = "08")]
825    pub _08: Option<String>,
826    #[serde(rename = "09")]
827    pub _09: Option<String>,
828    #[serde(rename = "10")]
829    pub _10: Option<String>,
830    #[serde(rename = "11")]
831    pub _11: Option<String>,
832    #[serde(rename = "12")]
833    pub _12: Option<String>,
834    #[serde(rename = "13")]
835    pub _13: Option<String>,
836    #[serde(rename = "14")]
837    pub _14: Option<String>,
838    #[serde(rename = "15")]
839    pub _15: Option<String>,
840    #[serde(rename = "16")]
841    pub _16: Option<String>,
842    #[serde(rename = "17")]
843    pub _17: Option<String>,
844    #[serde(rename = "18")]
845    pub _18: Option<String>,
846    #[serde(rename = "19")]
847    pub _19: Option<String>,
848    #[serde(rename = "20")]
849    pub _20: Option<String>,
850    #[serde(rename = "21")]
851    pub _21: Option<String>,
852    #[serde(rename = "22")]
853    pub _22: Option<String>,
854    #[serde(rename = "23")]
855    pub _23: Option<String>,
856    #[serde(rename = "24")]
857    pub _24: Option<String>,
858    #[serde(rename = "25")]
859    pub _25: Option<String>,
860}
861
862/// PYD - Payroll Deduction
863#[derive(
864    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
865)]
866pub struct PYD {
867    #[serde(rename = "01")]
868    pub _01: Option<String>,
869    #[serde(rename = "02")]
870    pub _02: Option<String>,
871    #[serde(rename = "03")]
872    pub _03: Option<String>,
873    #[serde(rename = "04")]
874    pub _04: Option<String>,
875    #[serde(rename = "05")]
876    pub _05: Option<String>,
877    #[serde(rename = "06")]
878    pub _06: Option<String>,
879    #[serde(rename = "07")]
880    pub _07: Option<String>,
881    #[serde(rename = "08")]
882    pub _08: Option<String>,
883    #[serde(rename = "09")]
884    pub _09: Option<String>,
885    #[serde(rename = "10")]
886    pub _10: Option<String>,
887    #[serde(rename = "11")]
888    pub _11: Option<String>,
889    #[serde(rename = "12")]
890    pub _12: Option<String>,
891    #[serde(rename = "13")]
892    pub _13: Option<String>,
893    #[serde(rename = "14")]
894    pub _14: Option<String>,
895    #[serde(rename = "15")]
896    pub _15: Option<String>,
897    #[serde(rename = "16")]
898    pub _16: Option<String>,
899    #[serde(rename = "17")]
900    pub _17: Option<String>,
901    #[serde(rename = "18")]
902    pub _18: Option<String>,
903    #[serde(rename = "19")]
904    pub _19: Option<String>,
905    #[serde(rename = "20")]
906    pub _20: Option<String>,
907    #[serde(rename = "21")]
908    pub _21: Option<String>,
909    #[serde(rename = "22")]
910    pub _22: Option<String>,
911    #[serde(rename = "23")]
912    pub _23: Option<String>,
913    #[serde(rename = "24")]
914    pub _24: Option<String>,
915    #[serde(rename = "25")]
916    pub _25: Option<String>,
917}
918
919/// PO1 - Baseline Item Data
920#[derive(
921    Serialize,
922    Deserialize,
923    Clone,
924    Default,
925    Debug,
926    Validate,
927    PartialEq,
928    Eq,
929    DisplaySegment,
930    ParseSegment,
931)]
932pub struct PO1 {
933    #[serde(rename = "01")]
934    pub _01: Option<String>,
935    #[serde(rename = "02")]
936    pub _02: String,
937    /// 355 - Unit or Basis for Measurement Code
938    #[serde(rename = "03")]
939    pub _03: crate::v005010::element::E355,
940    #[serde(rename = "04")]
941    pub _04: String,
942    #[serde(rename = "05")]
943    pub _05: Option<String>,
944    /// 235 - Product/Service ID Qualifier
945    #[serde(rename = "06")]
946    pub _06: Option<crate::v005010::element::E235>,
947    #[serde(rename = "07")]
948    pub _07: Option<String>,
949    /// 235 - Product/Service ID Qualifier
950    #[serde(rename = "08")]
951    pub _08: Option<crate::v005010::element::E235>,
952    #[serde(rename = "09")]
953    pub _09: Option<String>,
954    /// 235 - Product/Service ID Qualifier
955    #[serde(rename = "10")]
956    pub _10: Option<crate::v005010::element::E235>,
957    #[serde(rename = "11")]
958    pub _11: Option<String>,
959    /// 235 - Product/Service ID Qualifier
960    #[serde(rename = "12")]
961    pub _12: Option<crate::v005010::element::E235>,
962    #[serde(rename = "13")]
963    pub _13: Option<String>,
964    /// 235 - Product/Service ID Qualifier
965    #[serde(rename = "14")]
966    pub _14: Option<crate::v005010::element::E235>,
967    #[serde(rename = "15")]
968    pub _15: Option<String>,
969    /// 235 - Product/Service ID Qualifier
970    #[serde(rename = "16")]
971    pub _16: Option<crate::v005010::element::E235>,
972    #[serde(rename = "17")]
973    pub _17: Option<String>,
974    /// 235 - Product/Service ID Qualifier
975    #[serde(rename = "18")]
976    pub _18: Option<crate::v005010::element::E235>,
977    #[serde(rename = "19")]
978    pub _19: Option<String>,
979    /// 235 - Product/Service ID Qualifier
980    #[serde(rename = "20")]
981    pub _20: Option<crate::v005010::element::E235>,
982    #[serde(rename = "21")]
983    pub _21: Option<String>,
984    /// 235 - Product/Service ID Qualifier
985    #[serde(rename = "22")]
986    pub _22: Option<crate::v005010::element::E235>,
987    #[serde(rename = "23")]
988    pub _23: Option<String>,
989    /// 235 - Product/Service ID Qualifier
990    #[serde(rename = "24")]
991    pub _24: Option<crate::v005010::element::E235>,
992    #[serde(rename = "25")]
993    pub _25: Option<String>,
994}
995
996/// PO3 - Additional Item Detail
997#[derive(
998    Serialize,
999    Deserialize,
1000    Clone,
1001    Default,
1002    Debug,
1003    Validate,
1004    PartialEq,
1005    Eq,
1006    DisplaySegment,
1007    ParseSegment,
1008)]
1009pub struct PO3 {
1010    #[serde(rename = "01")]
1011    pub _01: String,
1012    #[serde(rename = "02")]
1013    pub _02: Option<String>,
1014    #[serde(rename = "03")]
1015    pub _03: Option<String>,
1016    #[serde(rename = "04")]
1017    pub _04: Option<String>,
1018    #[serde(rename = "05")]
1019    pub _05: Option<String>,
1020    #[serde(rename = "06")]
1021    pub _06: Option<String>,
1022}
1023
1024/// PO4 - Item Physical Details
1025#[derive(
1026    Serialize,
1027    Deserialize,
1028    Clone,
1029    Default,
1030    Debug,
1031    Validate,
1032    PartialEq,
1033    Eq,
1034    DisplaySegment,
1035    ParseSegment,
1036)]
1037pub struct PO4 {
1038    #[serde(rename = "01")]
1039    pub _01: Option<String>,
1040    #[serde(rename = "02")]
1041    pub _02: Option<String>,
1042    /// 355 - Unit or Basis for Measurement Code
1043    #[serde(rename = "03")]
1044    pub _03: Option<crate::v005010::element::E355>,
1045    #[serde(rename = "04")]
1046    pub _04: Option<String>,
1047    #[serde(rename = "05")]
1048    pub _05: Option<String>,
1049    #[serde(rename = "06")]
1050    pub _06: Option<String>,
1051    #[serde(rename = "07")]
1052    pub _07: Option<String>,
1053    #[serde(rename = "08")]
1054    pub _08: Option<String>,
1055    #[serde(rename = "09")]
1056    pub _09: Option<String>,
1057    #[serde(rename = "10")]
1058    pub _10: Option<String>,
1059    #[serde(rename = "11")]
1060    pub _11: Option<String>,
1061    #[serde(rename = "12")]
1062    pub _12: Option<String>,
1063    #[serde(rename = "13")]
1064    pub _13: Option<String>,
1065    #[serde(rename = "14")]
1066    pub _14: Option<String>,
1067    #[serde(rename = "15")]
1068    pub _15: Option<String>,
1069    #[serde(rename = "16")]
1070    pub _16: Option<String>,
1071    #[serde(rename = "17")]
1072    pub _17: Option<String>,
1073    #[serde(rename = "18")]
1074    pub _18: Option<String>,
1075}
1076
1077/// PAM - Period Amount
1078#[derive(
1079    Serialize,
1080    Deserialize,
1081    Clone,
1082    Default,
1083    Debug,
1084    Validate,
1085    PartialEq,
1086    Eq,
1087    DisplaySegment,
1088    ParseSegment,
1089)]
1090pub struct PAM {
1091    /// 673 - Quantity Qualifier
1092    #[serde(rename = "01")]
1093    pub _01: Option<String>,
1094    /// 380 - Quantity
1095    #[serde(rename = "02")]
1096    pub _02: Option<String>,
1097    /// C001 - Composite Unit of Measure
1098    #[serde(rename = "03")]
1099    pub _03: Option<String>,
1100    /// 522 - Amount Qualifier Code
1101    #[serde(rename = "04")]
1102    pub _04: Option<String>,
1103    /// 782 - Monetary Amount
1104    #[serde(rename = "05")]
1105    pub _05: Option<String>,
1106    /// 344 - Unit of Time Period or Interval
1107    #[serde(rename = "06")]
1108    pub _06: Option<String>,
1109    /// 374 - Date/Time Qualifier
1110    #[serde(rename = "07")]
1111    pub _07: Option<String>,
1112    /// 373 - Date
1113    #[serde(rename = "08")]
1114    pub _08: Option<String>,
1115    /// 337 - Time
1116    #[serde(rename = "09")]
1117    pub _09: Option<String>,
1118    /// 374 - Date/Time Qualifier
1119    #[serde(rename = "10")]
1120    pub _10: Option<String>,
1121    /// 373 - Date
1122    #[serde(rename = "11")]
1123    pub _11: Option<String>,
1124    /// 337 - Time
1125    #[serde(rename = "12")]
1126    pub _12: Option<String>,
1127    /// 1000 - Percent Qualifier
1128    #[serde(rename = "13")]
1129    pub _13: Option<String>,
1130    /// 954 - Percentage as Decimal
1131    #[serde(rename = "14")]
1132    pub _14: Option<String>,
1133    /// 1073 - Yes/No Condition or Response Code
1134    #[serde(rename = "15")]
1135    pub _15: Option<String>,
1136}
1137
1138/// PKL - Pack Location
1139///
1140/// To describe the physical packaging and stacking dimensions of an item
1141///
1142/// REF | ID | NAME | REQ | TYPE | MIN/MAX
1143/// ----|----|-------|----|------|-------
1144/// 01 | 235 | Product/Service ID Qualifier | M | ID | 2/2
1145/// 02 | 234 | Product/Service ID | M | AN | 1/48
1146/// 03 | 355 | Unit or Basis for Measurement Code | M | ID | 2/2
1147/// 04 | 380 | Quantity | M | R | 1/15
1148/// 05 | 65 | Height | C | R | 1/8
1149/// 06 | 189 | Width | C | R | 1/8
1150/// 07 | 677 | Item Depth | C | R | 1/6
1151/// 08 | 355 | Unit or Basis for Measurement Code | C | ID | 2/2
1152/// 09 | 384 | Gross Weight per Pack | C | R | 1/9
1153/// 10 | 355 | Unit or Basis for Measurement Code | C | ID | 2/2
1154/// 11 | 385 | Gross Volume per Pack | C | R | 1/9
1155/// 12 | 355 | Unit or Basis for Measurement Code | C | ID | 2/2
1156/// 13 | 1073 | Yes/No Condition or Response Code | O | ID | 1/1
1157#[derive(
1158    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1159)]
1160pub struct PKL {
1161    #[serde(rename = "01")]
1162    pub _01: String,
1163    #[serde(rename = "02")]
1164    pub _02: String,
1165    #[serde(rename = "03")]
1166    pub _03: String,
1167    #[serde(rename = "04")]
1168    pub _04: String,
1169    #[serde(rename = "05")]
1170    pub _05: Option<crate::v005010::element::E65>,
1171    #[serde(rename = "06")]
1172    pub _06: Option<crate::v005010::element::E189>,
1173    #[serde(rename = "07")]
1174    pub _07: Option<crate::v005010::element::E677>,
1175    #[serde(rename = "08")]
1176    pub _08: Option<String>,
1177    #[serde(rename = "09")]
1178    pub _09: Option<crate::v005010::element::E384>,
1179    #[serde(rename = "10")]
1180    pub _10: Option<String>,
1181    #[serde(rename = "11")]
1182    pub _11: Option<crate::v005010::element::E385>,
1183    #[serde(rename = "12")]
1184    pub _12: Option<String>,
1185    #[serde(rename = "13")]
1186    pub _13: Option<crate::v005010::element::E1073>,
1187}
1188
1189/// PKG - Marking, Packaging, Loading
1190#[derive(
1191    Serialize,
1192    Deserialize,
1193    Clone,
1194    Default,
1195    Debug,
1196    Validate,
1197    PartialEq,
1198    Eq,
1199    DisplaySegment,
1200    ParseSegment,
1201)]
1202pub struct PKG {
1203    /// 349 - Item Description Type
1204    #[serde(rename = "01")]
1205    pub _01: Option<String>,
1206    /// 753 - Packaging Characteristic Code
1207    #[serde(rename = "02")]
1208    pub _02: Option<String>,
1209    /// 559 - Agency Qualifier Code
1210    #[serde(rename = "03")]
1211    pub _03: Option<String>,
1212    /// 754 - Packaging Description Code
1213    #[serde(rename = "04")]
1214    pub _04: Option<String>,
1215    /// 352 - Description
1216    #[serde(rename = "05")]
1217    pub _05: Option<String>,
1218    /// 400 - Unit Load Option Code
1219    #[serde(rename = "06")]
1220    pub _06: Option<String>,
1221    /// 819 - Language Code
1222    #[serde(rename = "07")]
1223    pub _07: Option<String>,
1224}
1225
1226/// PAD - Product Adjustment Detail
1227///
1228/// To specify the product adjustment detail for a price authorization
1229///
1230/// REF | ID | NAME | REQ | TYPE | MIN/MAX
1231/// ----|----|-------|----|------|-------
1232/// 01 | 350 | Assigned Identification | C | AN | 1/20
1233/// 02 | 521 | Product Transfer Type Code | C | ID | 2/2
1234/// 03 | 670 | Change or Response Type Code | O | ID | 2/2
1235/// 04 | 648 | Price Multiplier Qualifier | C | ID | 3/3
1236/// 05 | 649 | Multiplier | C | R | 1/10
1237#[derive(
1238    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1239)]
1240pub struct PAD {
1241    #[serde(rename = "01")]
1242    pub _01: Option<String>,
1243    #[serde(rename = "02")]
1244    pub _02: Option<crate::v005010::element::E521>,
1245    #[serde(rename = "03")]
1246    pub _03: Option<crate::v005010::element::E670>,
1247    #[serde(rename = "04")]
1248    pub _04: Option<crate::v005010::element::E648>,
1249    #[serde(rename = "05")]
1250    pub _05: Option<crate::v005010::element::E649>,
1251}
1252
1253/// PAL - Pallet Information
1254///
1255/// To specify the pallet information
1256#[derive(
1257    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1258)]
1259pub struct PAL {
1260    #[serde(rename = "01")]
1261    pub _01: String,
1262    #[serde(rename = "02")]
1263    pub _02: Option<String>,
1264    #[serde(rename = "03")]
1265    pub _03: Option<String>,
1266    #[serde(rename = "04")]
1267    pub _04: Option<String>,
1268    #[serde(rename = "05")]
1269    pub _05: Option<String>,
1270    #[serde(rename = "06")]
1271    pub _06: Option<String>,
1272    #[serde(rename = "07")]
1273    pub _07: Option<String>,
1274    #[serde(rename = "08")]
1275    pub _08: Option<String>,
1276    #[serde(rename = "09")]
1277    pub _09: Option<String>,
1278    #[serde(rename = "10")]
1279    pub _10: Option<String>,
1280    #[serde(rename = "11")]
1281    pub _11: Option<String>,
1282    #[serde(rename = "12")]
1283    pub _12: Option<String>,
1284    #[serde(rename = "13")]
1285    pub _13: Option<String>,
1286    #[serde(rename = "14")]
1287    pub _14: Option<String>,
1288    #[serde(rename = "15")]
1289    pub _15: Option<String>,
1290    #[serde(rename = "16")]
1291    pub _16: Option<String>,
1292    #[serde(rename = "17")]
1293    pub _17: Option<String>,
1294    #[serde(rename = "18")]
1295    pub _18: Option<String>,
1296    #[serde(rename = "19")]
1297    pub _19: Option<String>,
1298    #[serde(rename = "20")]
1299    pub _20: Option<String>,
1300    #[serde(rename = "21")]
1301    pub _21: Option<String>,
1302    #[serde(rename = "22")]
1303    pub _22: Option<String>,
1304    #[serde(rename = "23")]
1305    pub _23: Option<String>,
1306    #[serde(rename = "24")]
1307    pub _24: Option<String>,
1308    #[serde(rename = "25")]
1309    pub _25: Option<String>,
1310    #[serde(rename = "26")]
1311    pub _26: Option<String>,
1312    #[serde(rename = "27")]
1313    pub _27: Option<String>,
1314    #[serde(rename = "28")]
1315    pub _28: Option<String>,
1316    #[serde(rename = "29")]
1317    pub _29: Option<String>,
1318    #[serde(rename = "30")]
1319    pub _30: Option<String>,
1320    #[serde(rename = "31")]
1321    pub _31: Option<String>,
1322    #[serde(rename = "32")]
1323    pub _32: Option<String>,
1324    #[serde(rename = "33")]
1325    pub _33: Option<String>,
1326    #[serde(rename = "34")]
1327    pub _34: Option<String>,
1328    #[serde(rename = "35")]
1329    pub _35: Option<String>,
1330    #[serde(rename = "36")]
1331    pub _36: Option<String>,
1332    #[serde(rename = "37")]
1333    pub _37: Option<String>,
1334    #[serde(rename = "38")]
1335    pub _38: Option<String>,
1336    #[serde(rename = "39")]
1337    pub _39: Option<String>,
1338    #[serde(rename = "40")]
1339    pub _40: Option<String>,
1340}
1341
1342/// PLD - Pallet Information NEW
1343///
1344/// To specify pallet information including quantity, exchange, and weight
1345///
1346/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1347/// ----|----|-------|--------|----|------|-------
1348/// 01 | 406 | Quantity of Pallets Shipped | 1 | M | N0 | 1/3
1349/// 02 | 399 | Pallet Exchange Code | 1 | O | ID | 1/1
1350/// 03 | 188 | Weight Unit Code | 1 | X | ID | 1/1
1351/// 04 | 81 | Weight | 1 | X | R | 1/10
1352#[derive(
1353    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1354)]
1355pub struct PLD {
1356    #[serde(rename = "01")]
1357    pub _01: crate::v005010::element::E406,
1358    #[serde(rename = "02")]
1359    pub _02: Option<crate::v005010::element::E399>,
1360    #[serde(rename = "03")]
1361    pub _03: Option<String>,
1362    #[serde(rename = "04")]
1363    pub _04: Option<crate::v005010::element::E81>,
1364}
1365
1366/// PRF - Purchase Order Reference
1367///
1368/// To provide reference to a specific purchase order
1369///
1370/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1371/// ----|----|-------|--------|----|------|-------
1372/// 01 | 324 | Purchase Order Number | 1 | M | AN | 1/22
1373/// 02 | 328 | Release Number | 1 | O | AN | 1/30
1374/// 03 | 327 | Change Order Sequence Number | 1 | O | AN | 1/8
1375/// 04 | 373 | Date | 1 | O/Z | DT | 8/8
1376/// 05 | 350 | Assigned Identification | 1 | O | AN | 1/20
1377/// 06 | 367 | Contract Number | 1 | O | AN | 1/30
1378/// 07 | 92 | Purchase Order Type Code | 1 | O | ID | 2/2
1379#[derive(
1380    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1381)]
1382pub struct PRF {
1383    #[serde(rename = "01")]
1384    pub _01: String,
1385    #[serde(rename = "02")]
1386    pub _02: Option<String>,
1387    #[serde(rename = "03")]
1388    pub _03: Option<String>,
1389    /// 373 - Date
1390    ///
1391    /// Date expressed as CCYYMMDD where CC represents the first two digits of the calendar year
1392    /// - TYPE=DT
1393    /// - MIN=8
1394    /// - MAX=8
1395    #[serde(rename = "04")]
1396    pub _04: Option<String>,
1397    #[serde(rename = "05")]
1398    pub _05: Option<String>,
1399    #[serde(rename = "06")]
1400    pub _06: Option<String>,
1401    #[serde(rename = "07")]
1402    pub _07: Option<crate::v005010::element::E92>,
1403}
1404
1405/// POC - Line Item Change
1406///
1407/// To specify changes to a line item
1408#[derive(
1409    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1410)]
1411pub struct POC {
1412    #[serde(rename = "01")]
1413    pub _01: Option<String>,
1414    #[serde(rename = "02")]
1415    pub _02: String,
1416    #[serde(rename = "03")]
1417    pub _03: Option<String>,
1418    #[serde(rename = "04")]
1419    pub _04: Option<String>,
1420    #[serde(rename = "05")]
1421    pub _05: Option<String>,
1422    #[serde(rename = "06")]
1423    pub _06: Option<String>,
1424    #[serde(rename = "07")]
1425    pub _07: Option<String>,
1426    #[serde(rename = "08")]
1427    pub _08: Option<String>,
1428    #[serde(rename = "09")]
1429    pub _09: Option<String>,
1430    #[serde(rename = "10")]
1431    pub _10: Option<String>,
1432    #[serde(rename = "11")]
1433    pub _11: Option<String>,
1434    #[serde(rename = "12")]
1435    pub _12: Option<String>,
1436    #[serde(rename = "13")]
1437    pub _13: Option<String>,
1438    #[serde(rename = "14")]
1439    pub _14: Option<String>,
1440    #[serde(rename = "15")]
1441    pub _15: Option<String>,
1442    #[serde(rename = "16")]
1443    pub _16: Option<String>,
1444    #[serde(rename = "17")]
1445    pub _17: Option<String>,
1446    #[serde(rename = "18")]
1447    pub _18: Option<String>,
1448    #[serde(rename = "19")]
1449    pub _19: Option<String>,
1450    #[serde(rename = "20")]
1451    pub _20: Option<String>,
1452    #[serde(rename = "21")]
1453    pub _21: Option<String>,
1454    #[serde(rename = "22")]
1455    pub _22: Option<String>,
1456    #[serde(rename = "23")]
1457    pub _23: Option<String>,
1458    #[serde(rename = "24")]
1459    pub _24: Option<String>,
1460    #[serde(rename = "25")]
1461    pub _25: Option<String>,
1462    #[serde(rename = "26")]
1463    pub _26: Option<String>,
1464    #[serde(rename = "27")]
1465    pub _27: Option<String>,
1466    #[serde(rename = "28")]
1467    pub _28: Option<String>,
1468}
1469
1470/// POD - Proof of Delivery
1471///
1472/// To specify proof of delivery information
1473#[derive(
1474    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1475)]
1476pub struct POD {
1477    #[serde(rename = "01")]
1478    pub _01: Option<String>,
1479    #[serde(rename = "02")]
1480    pub _02: Option<String>,
1481    #[serde(rename = "03")]
1482    pub _03: Option<String>,
1483    #[serde(rename = "04")]
1484    pub _04: Option<String>,
1485}
1486
1487/// PI - Price Authority Information
1488#[derive(
1489    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1490)]
1491pub struct PI {
1492    #[serde(rename = "01")]
1493    pub _01: String,
1494    #[serde(rename = "02")]
1495    pub _02: String,
1496    #[serde(rename = "03")]
1497    pub _03: Option<String>,
1498    #[serde(rename = "04")]
1499    pub _04: Option<String>,
1500    #[serde(rename = "05")]
1501    pub _05: Option<String>,
1502    #[serde(rename = "06")]
1503    pub _06: Option<String>,
1504    #[serde(rename = "07")]
1505    pub _07: Option<String>,
1506    #[serde(rename = "08")]
1507    pub _08: Option<String>,
1508    #[serde(rename = "09")]
1509    pub _09: Option<String>,
1510    #[serde(rename = "10")]
1511    pub _10: Option<String>,
1512    #[serde(rename = "11")]
1513    pub _11: Option<String>,
1514    #[serde(rename = "12")]
1515    pub _12: Option<String>,
1516    #[serde(rename = "13")]
1517    pub _13: Option<String>,
1518    #[serde(rename = "14")]
1519    pub _14: Option<String>,
1520    #[serde(rename = "15")]
1521    pub _15: Option<String>,
1522    #[serde(rename = "16")]
1523    pub _16: Option<String>,
1524}
1525
1526/// PS - Protective Service Instructions
1527#[derive(
1528    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1529)]
1530pub struct PS {
1531    #[serde(rename = "01")]
1532    pub _01: String,
1533    #[serde(rename = "02")]
1534    pub _02: String,
1535    #[serde(rename = "03")]
1536    pub _03: Option<String>,
1537    #[serde(rename = "04")]
1538    pub _04: Option<String>,
1539    #[serde(rename = "05")]
1540    pub _05: Option<String>,
1541    #[serde(rename = "06")]
1542    pub _06: Option<String>,
1543    #[serde(rename = "07")]
1544    pub _07: Option<String>,
1545    #[serde(rename = "08")]
1546    pub _08: Option<String>,
1547    #[serde(rename = "09")]
1548    pub _09: Option<String>,
1549    #[serde(rename = "10")]
1550    pub _10: Option<String>,
1551    #[serde(rename = "11")]
1552    pub _11: Option<String>,
1553    #[serde(rename = "12")]
1554    pub _12: Option<String>,
1555    #[serde(rename = "13")]
1556    pub _13: Option<String>,
1557    #[serde(rename = "14")]
1558    pub _14: Option<String>,
1559}