diff --git a/src/Machete.X12Schema/V5010/Layouts/F827.cs b/src/Machete.X12Schema/V5010/Layouts/F827.cs new file mode 100644 index 00000000..2be20df7 --- /dev/null +++ b/src/Machete.X12Schema/V5010/Layouts/F827.cs @@ -0,0 +1,15 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + public interface F827 : + X12Layout + { + Segment InterchangeControlHeader { get; } + + LayoutList Transaction { get; } + + Segment InterchangeControlTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/V5010/Layouts/LoopNM1_827.cs b/src/Machete.X12Schema/V5010/Layouts/LoopNM1_827.cs new file mode 100644 index 00000000..51cf51b1 --- /dev/null +++ b/src/Machete.X12Schema/V5010/Layouts/LoopNM1_827.cs @@ -0,0 +1,21 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + public interface LoopNM1_827 : + X12Layout + { + Segment IndividualOrOrganizationName { get; } + + SegmentList AdditionalNameInformation { get; } + + SegmentList AddressInformation { get; } + + Segment GeographicInformation { get; } + + SegmentList ReferenceIdentification { get; } + + SegmentList AdministrativeCommunicationsContact { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/V5010/Layouts/Maps/LoopNM1_827Map.cs b/src/Machete.X12Schema/V5010/Layouts/Maps/LoopNM1_827Map.cs new file mode 100644 index 00000000..02a2ee18 --- /dev/null +++ b/src/Machete.X12Schema/V5010/Layouts/Maps/LoopNM1_827Map.cs @@ -0,0 +1,23 @@ +namespace Machete.X12Schema.V5010.Maps +{ + using X12; + using X12.Configuration; + + + public class LoopNM1_827Map : + X12LayoutMap + { + public LoopNM1_827Map() + { + Id = "Loop_NM1_827"; + Name = "Loop NM1"; + + Segment(x => x.IndividualOrOrganizationName, 0); + Segment(x => x.AdditionalNameInformation, 1); + Segment(x => x.AddressInformation, 2); + Segment(x => x.GeographicInformation, 3); + Segment(x => x.ReferenceIdentification, 4); + Segment(x => x.AdministrativeCommunicationsContact, 5); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/V5010/Layouts/Maps/T827Map.cs b/src/Machete.X12Schema/V5010/Layouts/Maps/T827Map.cs new file mode 100644 index 00000000..20355d28 --- /dev/null +++ b/src/Machete.X12Schema/V5010/Layouts/Maps/T827Map.cs @@ -0,0 +1,27 @@ +namespace Machete.X12Schema.V5010.Maps +{ + using X12; + using X12.Configuration; + + + public class T827Map : + X12LayoutMap + { + public T827Map() + { + Id = "T827"; + Name = "827 Financial Return Notice"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1); + Segment(x => x.FinancialReturn, 2); + Segment(x => x.Currency, 3); + Segment(x => x.Trace, 4); + Segment(x => x.ReferenceInformation, 5); + Segment(x => x.DateOrTimeReference, 6); + Layout(x => x.LoopNM1, 7); + Segment(x => x.TransactionSetTrailer, 8); + Segment(x => x.FunctionalGroupTrailer, 9); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/V5010/Layouts/T827.cs b/src/Machete.X12Schema/V5010/Layouts/T827.cs new file mode 100644 index 00000000..81728dee --- /dev/null +++ b/src/Machete.X12Schema/V5010/Layouts/T827.cs @@ -0,0 +1,29 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + public interface T827 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment FinancialReturn { get; } + + Segment Currency { get; } + + SegmentList Trace { get; } + + SegmentList ReferenceInformation { get; } + + SegmentList DateOrTimeReference { get; } + + LayoutList LoopNM1 { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/V5010/Segments/Maps/RICMap.cs b/src/Machete.X12Schema/V5010/Segments/Maps/RICMap.cs new file mode 100644 index 00000000..9d2c82c2 --- /dev/null +++ b/src/Machete.X12Schema/V5010/Segments/Maps/RICMap.cs @@ -0,0 +1,39 @@ +namespace Machete.X12Schema.V5010.Maps +{ + using X12; + using X12.Configuration; + using X12.Values.Converters; + + + public class RICMap : + X12SegmentMap + { + public RICMap() + { + Id = "RIC"; + Name = "Financial Return"; + Value(x => x.PaymentMethodCode, 1, x => x.FixedLength(3)); + Value(x => x.CodeListQualifierCode, 2, x => x.MinLength(1).MaxLength(3)); + Value(x => x.IndustryCode, 3, x => x.MinLength(1).MaxLength(30)); + Value(x => x.MonetaryAmount, 4, x => x.MinLength(1).MaxLength(18).IsRequired()); + Value(x => x.CreditDebitFlagCode, 5, x => x.FixedLength(1).IsRequired()); + Value(x => x.AccountNumber1, 6, x => x.MinLength(1).MaxLength(35)); + Value(x => x.AccountNumberQualifier1, 7, x => x.MinLength(1).MaxLength(3)); + Value(x => x.IdNumberQualifier1, 8, x => x.FixedLength(2)); + Value(x => x.IdentifierNumber1, 9, x => x.MinLength(3).MaxLength(12)); + Value(x => x.AccountNumber2, 10, x => x.MinLength(1).MaxLength(35)); + Value(x => x.AccountNumberQualifier2, 11, x => x.MinLength(1).MaxLength(3)); + Value(x => x.IdNumberQualifier2, 12, x => x.FixedLength(2)); + Value(x => x.IdentifierNumber2, 13, x => x.MinLength(3).MaxLength(12)); + Value(x => x.AccountNumber3, 14, x => x.MinLength(1).MaxLength(35)); + Value(x => x.AccountNumberQualifier3, 15, x => x.MinLength(1).MaxLength(3)); + Value(x => x.IdNumberQualifier3, 16, x => x.FixedLength(2)); + Value(x => x.IdentifierNumber3, 17, x => x.MinLength(3).MaxLength(12)); + Value(x => x.Date, 18, x => + { + x.FixedLength(8); + x.Converter = X12ValueConverters.VariableDate; + }); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/V5010/Segments/RIC.cs b/src/Machete.X12Schema/V5010/Segments/RIC.cs new file mode 100644 index 00000000..2f5ee60c --- /dev/null +++ b/src/Machete.X12Schema/V5010/Segments/RIC.cs @@ -0,0 +1,29 @@ +namespace Machete.X12Schema.V5010 +{ + using System; + using X12; + + + public interface RIC : + X12Segment + { + Value PaymentMethodCode { get; } + Value CodeListQualifierCode { get; } + Value IndustryCode { get; } + Value MonetaryAmount { get; } + Value CreditDebitFlagCode { get; } + Value AccountNumber1 { get; } + Value AccountNumberQualifier1 { get; } + Value IdNumberQualifier1 { get; } + Value IdentifierNumber1 { get; } + Value AccountNumber2 { get; } + Value AccountNumberQualifier2 { get; } + Value IdNumberQualifier2 { get; } + Value IdentifierNumber2 { get; } + Value AccountNumber3 { get; } + Value AccountNumberQualifier3 { get; } + Value IdNumberQualifier3 { get; } + Value IdentifierNumber3 { get; } + Value Date { get; } + } +} \ No newline at end of file