namespace EdiFabric.Templates.EancomD01B { using System; using System.Collections.Generic; using EdiFabric.Core.Annotations.Edi; using EdiFabric.Core.Annotations.Validation; using EdiFabric.Core.Model.Edi; using EdiFabric.Core.Model.Edi.Edifact; /// /// Invoice message /// [Serializable()] [Message("EDIFACT", "D01B", "INVOIC")] public class TSINVOIC : EdiMessage { /// /// Message Header /// [Pos(1)] public UNH UNH { get; set; } /// /// Beginning of message /// [Required] [Pos(2)] public BGM BGM { get; set; } /// /// Date/time/period /// [Required] [ListCount(35)] [Pos(3)] public List DTM { get; set; } /// /// Payment instructions /// [Pos(4)] public PAI PAI { get; set; } /// /// Additional information /// [ListCount(5)] [Pos(5)] public List ALI { get; set; } /// /// Free text /// [ListCount(99)] [Pos(6)] public List FTX { get; set; } /// /// Loop for INVOIC:0:0070 /// [ListCount(99999)] [Pos(7)] public List RFFLoop { get; set; } /// /// Loop for INVOIC:0:0100 /// [ListCount(99)] [Pos(8)] public List NADLoop { get; set; } /// /// Loop for INVOIC:0:0180 /// [ListCount(5)] [Pos(9)] public List TAXLoop { get; set; } /// /// Loop for INVOIC:0:0210 /// [ListCount(99)] [Pos(10)] public List CUXLoop { get; set; } /// /// Loop for INVOIC:0:0240 /// [ListCount(10)] [Pos(11)] public List PATLoop { get; set; } /// /// Loop for INVOIC:0:0310 /// [ListCount(10)] [Pos(12)] public List TDTLoop { get; set; } /// /// Loop for INVOIC:0:0360 /// [ListCount(5)] [Pos(13)] public List TODLoop { get; set; } /// /// Loop for INVOIC:0:0390 /// [ListCount(1000)] [Pos(14)] public List PACLoop { get; set; } /// /// Loop for INVOIC:0:0410 /// [ListCount(9999)] [Pos(15)] public List ALCLoop { get; set; } /// /// Loop for INVOIC:0:0540 /// [ListCount(9999999)] [Pos(16)] public List LINLoop { get; set; } /// /// Section control /// [Required] [Pos(17)] public UNS UNS { get; set; } /// /// Control total /// [ListCount(10)] [Pos(18)] public List CNT { get; set; } /// /// Loop for INVOIC:0:1170 /// [Required] [ListCount(100)] [Pos(19)] public List MOALoop { get; set; } /// /// Loop for INVOIC:0:1220 /// [ListCount(10)] [Pos(20)] public List TAXLoop2 { get; set; } /// /// Loop for INVOIC:0:1250 /// [ListCount(15)] [Pos(21)] public List ALCLoop2 { get; set; } /// /// Message Trailer /// [Pos(22)] public UNT UNT { get; set; } } /// /// Loop for INVOIC:0:0410 /// [Serializable()] [Group(typeof(ALC))] public class Loop_ALC_INVOIC { /// /// Allowance or charge /// [Required] [Pos(1)] public ALC ALC { get; set; } /// /// Loop for INVOIC:0:0430 /// [Pos(2)] public Loop_QTY_INVOIC QTYLoop { get; set; } /// /// Loop for INVOIC:0:0450 /// [Pos(3)] public Loop_PCD_INVOIC PCDLoop { get; set; } /// /// Loop for INVOIC:0:0470 /// [ListCount(2)] [Pos(4)] public List MOALoop { get; set; } /// /// Loop for INVOIC:0:0490 /// [Pos(5)] public Loop_RTE_INVOIC RTELoop { get; set; } /// /// Loop for INVOIC:0:0510 /// [ListCount(5)] [Pos(6)] public List TAXLoop { get; set; } } /// /// Loop for INVOIC:0:0950 /// [Serializable()] [Group(typeof(ALC))] public class Loop_ALC_INVOIC_2 { /// /// Allowance or charge /// [Required] [Pos(1)] public ALC ALC { get; set; } /// /// Additional information /// [ListCount(5)] [Pos(2)] public List ALI { get; set; } /// /// Date/time/period /// [ListCount(5)] [Pos(3)] public List DTM { get; set; } /// /// Loop for INVOIC:0:0990 /// [Pos(4)] public Loop_QTY_INVOIC QTYLoop { get; set; } /// /// Loop for INVOIC:0:1010 /// [Pos(5)] public Loop_PCD_INVOIC PCDLoop { get; set; } /// /// Loop for INVOIC:0:1030 /// [ListCount(2)] [Pos(6)] public List MOALoop { get; set; } /// /// Loop for INVOIC:0:1050 /// [Pos(7)] public Loop_RTE_INVOIC RTELoop { get; set; } /// /// Loop for INVOIC:0:1070 /// [ListCount(5)] [Pos(8)] public List TAXLoop { get; set; } } /// /// Loop for INVOIC:0:1250 /// [Serializable()] [Group(typeof(ALC))] public class Loop_ALC_INVOIC_3 { /// /// Allowance or charge /// [Required] [Pos(1)] public ALC ALC { get; set; } /// /// Additional information /// [Pos(2)] public ALI ALI { get; set; } /// /// Monetary amount /// [ListCount(2)] [Pos(3)] public List MOA { get; set; } } /// /// Loop for INVOIC:0:0150 /// [Serializable()] [Group(typeof(CTA))] public class Loop_CTA_INVOIC { /// /// Contact information /// [Required] [Pos(1)] public CTA CTA { get; set; } /// /// Communication contact /// [ListCount(5)] [Pos(2)] public List COM { get; set; } } /// /// Loop for INVOIC:0:0210 /// [Serializable()] [Group(typeof(CUX))] public class Loop_CUX_INVOIC { /// /// Currencies /// [Required] [Pos(1)] public CUX CUX { get; set; } /// /// Date/time/period /// [ListCount(5)] [Pos(2)] public List DTM { get; set; } } /// /// Loop for INVOIC:0:0540 /// [Serializable()] [Group(typeof(LIN))] public class Loop_LIN_INVOIC { /// /// Line item /// [Required] [Pos(1)] public LIN LIN { get; set; } /// /// Additional product id /// [ListCount(25)] [Pos(2)] public List PIA { get; set; } /// /// Item description /// [ListCount(99)] [Pos(3)] public List IMD { get; set; } /// /// Measurements /// [ListCount(5)] [Pos(4)] public List MEA { get; set; } /// /// Quantity /// [ListCount(5)] [Pos(5)] public List QTY { get; set; } /// /// Additional information /// [ListCount(5)] [Pos(6)] public List ALI { get; set; } /// /// Date/time/period /// [ListCount(35)] [Pos(7)] public List DTM { get; set; } /// /// Goods identity number /// [ListCount(1000)] [Pos(8)] public List GIN { get; set; } /// /// Quantity variances /// [Pos(9)] public QVR QVR { get; set; } /// /// Free text /// [ListCount(99)] [Pos(10)] public List FTX { get; set; } /// /// Loop for INVOIC:0:0650 /// [ListCount(99)] [Pos(11)] public List MOALoop { get; set; } /// /// Loop for INVOIC:0:0670 /// [ListCount(10)] [Pos(12)] public List PATLoop { get; set; } /// /// Loop for INVOIC:0:0720 /// [ListCount(25)] [Pos(13)] public List PRILoop { get; set; } /// /// Loop for INVOIC:0:0750 /// [ListCount(10)] [Pos(14)] public List RFFLoop { get; set; } /// /// Loop for INVOIC:0:0780 /// [ListCount(10)] [Pos(15)] public List PACLoop { get; set; } /// /// Loop for INVOIC:0:0840 /// [ListCount(9999)] [Pos(16)] public List LOCLoop { get; set; } /// /// Loop for INVOIC:0:0880 /// [ListCount(99)] [Pos(17)] public List TAXLoop { get; set; } /// /// Loop for INVOIC:0:0910 /// [ListCount(99)] [Pos(18)] public List NADLoop { get; set; } /// /// Loop for INVOIC:0:0950 /// [ListCount(30)] [Pos(19)] public List ALCLoop { get; set; } /// /// Loop for INVOIC:0:1100 /// [ListCount(10)] [Pos(20)] public List TDTLoop { get; set; } /// /// Loop for INVOIC:0:1120 /// [ListCount(5)] [Pos(21)] public List TODLoop { get; set; } } /// /// Loop for INVOIC:0:0330 /// [Serializable()] [Group(typeof(LOC))] public class Loop_LOC_INVOIC { /// /// Place/location identification /// [Required] [Pos(1)] public LOC LOC { get; set; } /// /// Date/time/period /// [ListCount(5)] [Pos(2)] public List DTM { get; set; } } /// /// Loop for INVOIC:0:0840 /// [Serializable()] [Group(typeof(LOC))] public class Loop_LOC_INVOIC_2 { /// /// Place/location identification /// [Required] [Pos(1)] public LOC LOC { get; set; } /// /// Quantity /// [ListCount(100)] [Pos(2)] public List QTY { get; set; } /// /// Date/time/period /// [ListCount(5)] [Pos(3)] public List DTM { get; set; } } /// /// Loop for INVOIC:0:0470 /// [Serializable()] [Group(typeof(MOA))] public class Loop_MOA_INVOIC { /// /// Monetary amount /// [Required] [Pos(1)] public MOA MOA { get; set; } } /// /// Loop for INVOIC:0:1170 /// [Serializable()] [Group(typeof(MOA))] public class Loop_MOA_INVOIC_2 { /// /// Monetary amount /// [Required] [Pos(1)] public MOA MOA { get; set; } /// /// Loop for INVOIC:0:1190 /// [Pos(2)] public Loop_RFF_INVOIC RFFLoop { get; set; } } /// /// Loop for INVOIC:0:0100 /// [Serializable()] [Group(typeof(NAD))] public class Loop_NAD_INVOIC { /// /// Name and address /// [Required] [Pos(1)] public NAD NAD { get; set; } /// /// Financial institution information /// [ListCount(5)] [Pos(2)] public List FII { get; set; } /// /// Loop for INVOIC:0:0130 /// [ListCount(9999)] [Pos(3)] public List RFFLoop { get; set; } /// /// Loop for INVOIC:0:0150 /// [ListCount(5)] [Pos(4)] public List CTALoop { get; set; } } /// /// Loop for INVOIC:0:0910 /// [Serializable()] [Group(typeof(NAD))] public class Loop_NAD_INVOIC_2 { /// /// Name and address /// [Required] [Pos(1)] public NAD NAD { get; set; } /// /// Loop for INVOIC:0:0930 /// [ListCount(5)] [Pos(2)] public List RFFLoop { get; set; } } /// /// Loop for INVOIC:0:0390 /// [Serializable()] [Group(typeof(PAC))] public class Loop_PAC_INVOIC { /// /// Package /// [Required] [Pos(1)] public PAC PAC { get; set; } } /// /// Loop for INVOIC:0:0780 /// [Serializable()] [Group(typeof(PAC))] public class Loop_PAC_INVOIC_2 { /// /// Package /// [Required] [Pos(1)] public PAC PAC { get; set; } /// /// Measurements /// [ListCount(10)] [Pos(2)] public List MEA { get; set; } /// /// Loop for INVOIC:0:0810 /// [ListCount(10)] [Pos(3)] public List PCILoop { get; set; } } /// /// Loop for INVOIC:0:0240 /// [Serializable()] [Group(typeof(PAT))] public class Loop_PAT_INVOIC { /// /// Payment terms basis /// [Required] [Pos(1)] public PAT PAT { get; set; } /// /// Date/time/period /// [ListCount(5)] [Pos(2)] public List DTM { get; set; } /// /// Percentage details /// [Pos(3)] public PCD PCD { get; set; } /// /// Monetary amount /// [Pos(4)] public MOA MOA { get; set; } /// /// Payment instructions /// [Pos(5)] public PAI PAI { get; set; } /// /// Financial institution information /// [Pos(6)] public FII FII { get; set; } } /// /// Loop for INVOIC:0:0670 /// [Serializable()] [Group(typeof(PAT))] public class Loop_PAT_INVOIC_2 { /// /// Payment terms basis /// [Required] [Pos(1)] public PAT PAT { get; set; } /// /// Date/time/period /// [ListCount(5)] [Pos(2)] public List DTM { get; set; } /// /// Percentage details /// [ListCount(99)] [Pos(3)] public List PCD { get; set; } /// /// Monetary amount /// [Pos(4)] public MOA MOA { get; set; } } /// /// Loop for INVOIC:0:0450 /// [Serializable()] [Group(typeof(PCD))] public class Loop_PCD_INVOIC { /// /// Percentage details /// [Required] [Pos(1)] public PCD PCD { get; set; } } /// /// Loop for INVOIC:0:0810 /// [Serializable()] [Group(typeof(PCI))] public class Loop_PCI_INVOIC { /// /// Package identification /// [Required] [Pos(1)] public PCI PCI { get; set; } /// /// Goods identity number /// [ListCount(10)] [Pos(2)] public List GIN { get; set; } } /// /// Loop for INVOIC:0:0720 /// [Serializable()] [Group(typeof(PRI))] public class Loop_PRI_INVOIC { /// /// Price details /// [Required] [Pos(1)] public PRI PRI { get; set; } /// /// Additional price information /// [Pos(2)] public APR APR { get; set; } } /// /// Loop for INVOIC:0:0430 /// [Serializable()] [Group(typeof(QTY))] public class Loop_QTY_INVOIC { /// /// Quantity /// [Required] [Pos(1)] public QTY QTY { get; set; } } /// /// Loop for INVOIC:0:0070 /// [Serializable()] [Group(typeof(RFF))] public class Loop_RFF_INVOIC { /// /// Reference /// [Required] [Pos(1)] public RFF RFF { get; set; } /// /// Date/time/period /// [ListCount(5)] [Pos(2)] public List DTM { get; set; } } /// /// Loop for INVOIC:0:0130 /// [Serializable()] [Group(typeof(RFF))] public class Loop_RFF_INVOIC_2 { /// /// Reference /// [Required] [Pos(1)] public RFF RFF { get; set; } } /// /// Loop for INVOIC:0:0490 /// [Serializable()] [Group(typeof(RTE))] public class Loop_RTE_INVOIC { /// /// Rate details /// [Required] [Pos(1)] public RTE RTE { get; set; } } /// /// Loop for INVOIC:0:0180 /// [Serializable()] [Group(typeof(TAX))] public class Loop_TAX_INVOIC { /// /// Duty/tax/fee details /// [Required] [Pos(1)] public TAX TAX { get; set; } /// /// Monetary amount /// [Pos(2)] public MOA MOA { get; set; } } /// /// Loop for INVOIC:0:0880 /// [Serializable()] [Group(typeof(TAX))] public class Loop_TAX_INVOIC_2 { /// /// Duty/tax/fee details /// [Required] [Pos(1)] public TAX TAX { get; set; } /// /// Monetary amount /// [ListCount(2)] [Pos(2)] public List MOA { get; set; } } /// /// Loop for INVOIC:0:1220 /// [Serializable()] [Group(typeof(TAX))] public class Loop_TAX_INVOIC_3 { /// /// Duty/tax/fee details /// [Required] [Pos(1)] public TAX TAX { get; set; } /// /// Monetary amount /// [ListCount(9)] [Pos(2)] public List MOA { get; set; } } /// /// Loop for INVOIC:0:0310 /// [Serializable()] [Group(typeof(TDT))] public class Loop_TDT_INVOIC { /// /// Details of transport /// [Required] [Pos(1)] public TDT TDT { get; set; } /// /// Loop for INVOIC:0:0330 /// [ListCount(10)] [Pos(2)] public List LOCLoop { get; set; } } /// /// Loop for INVOIC:0:1100 /// [Serializable()] [Group(typeof(TDT))] public class Loop_TDT_INVOIC_2 { /// /// Details of transport /// [Required] [Pos(1)] public TDT TDT { get; set; } } /// /// Loop for INVOIC:0:0360 /// [Serializable()] [Group(typeof(TOD))] public class Loop_TOD_INVOIC { /// /// Terms of delivery or transport /// [Required] [Pos(1)] public TOD TOD { get; set; } /// /// Place/location identification /// [ListCount(2)] [Pos(2)] public List LOC { get; set; } } }