Exemplo n.º 1
0
        protected virtual string CreateElement(FormatContext context, string name, QTY <T> value, Boolean?inclusive, bool isSxcm,
                                               int indentLevel)
        {
            string type = Hl7DataTypeName.GetParameterizedType(context.Type);

            if (isSxcm)
            {
                type = "SXCM<" + type + ">";
            }
            PropertyFormatter formatter = FormatterR2Registry.GetInstance().Get(type);

            if (formatter != null)
            {
                bool          isSpecializationType = false;
                FormatContext newContext           = new Ca.Infoway.Messagebuilder.Marshalling.HL7.Formatter.FormatContextImpl(type, isSpecializationType
                                                                                                                               , Ca.Infoway.Messagebuilder.Xml.ConformanceLevel.POPULATED, Cardinality.Create("1"), name, context);
                string result = formatter.Format(newContext, value, indentLevel);
                if (inclusive != null)
                {
                    // TM - small hack to add in the inclusive attribute (low/high) (operator, simple only, is already formatted by using the SXCM type)
                    result = result.ReplaceFirst(" value=", " inclusive=\"" + inclusive.ToString().ToLower() + "\" value=");
                }
                return(result);
            }
            else
            {
                throw new ModelToXmlTransformationException("No formatter found for " + type);
            }
        }
Exemplo n.º 2
0
 public override string ToString()
 {
     return(String.Concat(new string[]
                          { " ProductID:", ProductID.ToString(),
                            " Description ", Description,
                            " Quantity: ", QTY.ToString(),
                            " Unit Price: ", UnitPrice.ToString(),
                            " CategoryID: ", CategoryID.ToString() }));
 }
Exemplo n.º 3
0
        protected virtual string CreateElement(FormatContext context, string name, QTY <T> value, int indentLevel)
        {
            string            type      = Hl7DataTypeName.GetParameterizedType(context.Type);
            PropertyFormatter formatter = FormatterRegistry.GetInstance().Get(type);

            if (formatter != null)
            {
                bool isSpecializationType = false;
                return(formatter.Format(new Ca.Infoway.Messagebuilder.Marshalling.HL7.Formatter.FormatContextImpl(type, isSpecializationType
                                                                                                                  , Ca.Infoway.Messagebuilder.Xml.ConformanceLevel.POPULATED, Cardinality.Create("1"), name, context), value, indentLevel));
            }
            else
            {
                throw new ModelToXmlTransformationException("No formatter found for " + type);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Build invoice.
        /// Original from https://www.gs1.org/standards/edi-xml-gs1-eancom/eancom-invoic-s4/syntax-4
        /// </summary>
        public static TSINVOIC BuildInvoice(string controlNumber)
        {
            var result = new TSINVOIC();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01                      = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02                           = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "INVOIC";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "96A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            //  Commercial invoice number IN432097
            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "380";
            result.BGM.Documentmessagenumber_02 = "IN432097";

            //  Repeating DTM
            result.DTM = new List <DTM>();

            //  Message date 8th March 2002
            var dtm = new DTM();

            dtm.DATETIMEPERIOD_01 = new C507();
            dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "137";
            dtm.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020308";
            dtm.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm);

            //  Instructions to pay in bank account
            result.PAI = new PAI();
            result.PAI.PAYMENTINSTRUCTIONDETAILS_01 = new C534();
            result.PAI.PAYMENTINSTRUCTIONDETAILS_01.Paymentmeanscoded_03 = "42";

            //  Repeating RFF Groups
            result.RFFLoop = new List <Loop_RFF_INVOIC>();

            //  Begin RFF Group 1
            var rffLoop1 = new Loop_RFF_INVOIC();

            //  Purchase order invoiced number ORD9523
            rffLoop1.RFF = new RFF();
            rffLoop1.RFF.REFERENCE_01 = new C506();
            rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "ON";
            rffLoop1.RFF.REFERENCE_01.Referencenumber_02    = "ORD9523";

            //  Repeating DTM
            rffLoop1.DTM = new List <DTM>();

            //  Reference date 12th February 2002
            var dtmRff1 = new DTM();

            dtmRff1.DATETIMEPERIOD_01 = new C507();
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020212";
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            rffLoop1.DTM.Add(dtmRff1);

            //  End RFF Group 1
            result.RFFLoop.Add(rffLoop1);

            //  Begin RFF Group 2
            var rffLoop2 = new Loop_RFF_INVOIC();

            //  Price list reference number PL99523
            rffLoop2.RFF = new RFF();
            rffLoop2.RFF.REFERENCE_01 = new C506();
            rffLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "PL";
            rffLoop2.RFF.REFERENCE_01.Referencenumber_02    = "PL99523";

            //  Repeating DTM
            rffLoop2.DTM = new List <DTM>();

            //  Reference date 1st January 2002
            var dtmRff2 = new DTM();

            dtmRff2.DATETIMEPERIOD_01 = new C507();
            dtmRff2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            dtmRff2.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020101";
            dtmRff2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            rffLoop2.DTM.Add(dtmRff2);

            //  End RFF Group 2
            result.RFFLoop.Add(rffLoop2);

            //  Begin RFF Group 3
            var rffLoop3 = new Loop_RFF_INVOIC();

            //  Reference delivery note number 53662
            rffLoop3.RFF = new RFF();
            rffLoop3.RFF.REFERENCE_01 = new C506();
            rffLoop3.RFF.REFERENCE_01.Referencequalifier_01 = "DQ";
            rffLoop3.RFF.REFERENCE_01.Referencenumber_02    = "53662";

            //  Repeating DTM
            rffLoop3.DTM = new List <DTM>();

            //  Reference date 15th February 2002
            var dtmRff3 = new DTM();

            dtmRff3.DATETIMEPERIOD_01 = new C507();
            dtmRff3.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            dtmRff3.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020215";
            dtmRff3.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            rffLoop3.DTM.Add(dtmRff3);

            //  End RFF Group 3
            result.RFFLoop.Add(rffLoop3);

            //  Repeating NAD Groups
            result.NADLoop = new List <Loop_NAD_INVOIC>();

            //  Begin NAD Group 1
            var nadLoop1 = new Loop_NAD_INVOIC();

            //  Buyer identified by GLN 5412345000013
            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyqualifier_01             = "BY";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345000013";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF Groups
            nadLoop1.RFFLoop = new List <Loop_RFF_INVOIC>();

            //  Begin RFF Group 1
            var rffNadLoop1 = new Loop_RFF_INVOIC();

            //  VAT reference number of the buyer 4146023
            rffNadLoop1.RFF = new RFF();
            rffNadLoop1.RFF.REFERENCE_01 = new C506();
            rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02    = "4146023";

            //  End RFF Group 1
            nadLoop1.RFFLoop.Add(rffNadLoop1);

            //  End NAD Group 1
            result.NADLoop.Add(nadLoop1);

            //  Begin NAD Group 2
            var nadLoop2 = new Loop_NAD_INVOIC();

            //  Supplier identified by GLN 4012345500004
            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyqualifier_01             = "SU";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "4012345500004";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF Groups
            nadLoop2.RFFLoop = new List <Loop_RFF_INVOIC>();

            //  Begin RFF Group 1
            var rffNadLoop2 = new Loop_RFF_INVOIC();

            //  VAT reference number of the supplier VR12345
            rffNadLoop2.RFF = new RFF();
            rffNadLoop2.RFF.REFERENCE_01 = new C506();
            rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02    = "VR12345";

            //  End RFF Group 1
            nadLoop2.RFFLoop.Add(rffNadLoop2);

            //  End NAD Group 2
            result.NADLoop.Add(nadLoop2);

            //  Begin NAD Group 3
            var nadLoop3 = new Loop_NAD_INVOIC();

            //  Delivery party identified by GLN 5412345678908
            nadLoop3.NAD = new NAD();
            nadLoop3.NAD.Partyqualifier_01             = "DP";
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345678908";
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  End NAD Group 3
            result.NADLoop.Add(nadLoop3);

            //  Repeating CUX Groups
            result.CUXLoop = new List <Loop_CUX_INVOIC>();

            //  Begin CUX Group
            var cuxLoop = new Loop_CUX_INVOIC();

            //  Reference currency is Euros
            cuxLoop.CUX = new CUX();
            cuxLoop.CUX.CURRENCYDETAILS_01 = new C504();
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencydetailsqualifier_01 = "2";
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencycoded_02            = "EUR";
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencyqualifier_03        = "4";

            //  End CUX Group
            result.CUXLoop.Add(cuxLoop);

            //  Repeating PAT Groups
            result.PATLoop = new List <Loop_PAT_INVOIC>();

            //  Begin PAT Group 1
            var patLoop1 = new Loop_PAT_INVOIC();

            //  Payment terms 2 months after date of invoice
            patLoop1.PAT = new PAT();
            patLoop1.PAT.Paymenttermstypequalifier_01 = "1";
            patLoop1.PAT.TERMSTIMEINFORMATION_03      = new C112();
            patLoop1.PAT.TERMSTIMEINFORMATION_03.Paymenttimereferencecoded_01 = "5";
            patLoop1.PAT.TERMSTIMEINFORMATION_03.Timerelationcoded_02         = "3";
            patLoop1.PAT.TERMSTIMEINFORMATION_03.Typeofperiodcoded_03         = "M";
            patLoop1.PAT.TERMSTIMEINFORMATION_03.Numberofperiods_04           = "2";

            //  End PAT Group 1
            result.PATLoop.Add(patLoop1);

            //  Begin PAT Group 2
            var patLoop2 = new Loop_PAT_INVOIC();

            //  Payment discount for payment 10 days after date of invoice
            patLoop2.PAT = new PAT();
            patLoop2.PAT.Paymenttermstypequalifier_01 = "22";
            patLoop2.PAT.TERMSTIMEINFORMATION_03      = new C112();
            patLoop2.PAT.TERMSTIMEINFORMATION_03.Paymenttimereferencecoded_01 = "5";
            patLoop2.PAT.TERMSTIMEINFORMATION_03.Timerelationcoded_02         = "3";
            patLoop2.PAT.TERMSTIMEINFORMATION_03.Typeofperiodcoded_03         = "D";
            patLoop2.PAT.TERMSTIMEINFORMATION_03.Numberofperiods_04           = "10";

            //  Percentage information for the allowances or charges 2.5 %
            patLoop2.PCD = new PCD();
            patLoop2.PCD.PERCENTAGEDETAILS_01 = new C501();
            patLoop2.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01  = "12";
            patLoop2.PCD.PERCENTAGEDETAILS_01.Percentage_02           = "2.5";
            patLoop2.PCD.PERCENTAGEDETAILS_01.Percentagebasiscoded_03 = "13";

            //  End PAT Group 2
            result.PATLoop.Add(patLoop2);

            //  Repeating ALC Groups
            result.ALCLoop = new List <Loop_ALC_INVOIC>();

            //  Begin ALC Group
            var alcLoop = new Loop_ALC_INVOIC();

            //  Charges to be paid by customer
            alcLoop.ALC = new ALC();
            alcLoop.ALC.Allowanceorchargequalifier_01    = "C";
            alcLoop.ALC.Settlementcoded_03               = "6";
            alcLoop.ALC.SPECIALSERVICESIDENTIFICATION_05 = new C214();
            alcLoop.ALC.SPECIALSERVICESIDENTIFICATION_05.Specialservicescoded_01 = "FC";

            //  Repeating MOA Groups
            alcLoop.MOALoop = new List <Loop_MOA_INVOIC>();

            //  Begin MOA Group
            var moaAlcLoop = new Loop_MOA_INVOIC();

            //  Monetary amount for the charge 120 EUR to be added
            moaAlcLoop.MOA = new MOA();
            moaAlcLoop.MOA.MONETARYAMOUNT_01 = new C516();
            moaAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "23";
            moaAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "120";

            //  End MOA Group
            alcLoop.MOALoop.Add(moaAlcLoop);

            //  Repeating TAX Groups
            alcLoop.TAXLoop = new List <Loop_TAX_INVOIC_2>();

            //  Begin TAX Group
            var taxAlcLoop = new Loop_TAX_INVOIC_2();

            //  Type of tax is value added tax at 19 %
            taxAlcLoop.TAX = new TAX();
            taxAlcLoop.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxAlcLoop.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxAlcLoop.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxAlcLoop.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxAlcLoop.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "19";
            taxAlcLoop.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  Tax monetary amount 22.80 EUR
            taxAlcLoop.MOA = new MOA();
            taxAlcLoop.MOA.MONETARYAMOUNT_01 = new C516();
            taxAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124";
            taxAlcLoop.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "22.80";

            //  End TAX Group
            alcLoop.TAXLoop.Add(taxAlcLoop);

            //  End ALC Group
            result.ALCLoop.Add(alcLoop);

            //  Repeating LIN Groups
            result.LINLoop = new List <Loop_LIN_INVOIC>();

            //  Begin LIN Group 1
            var linLoop1 = new Loop_LIN_INVOIC();

            //  Line item 1 identified by GTIN 4000862141404
            linLoop1.LIN = new LIN();
            linLoop1.LIN.Lineitemnumber_01           = "1";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "4000862141404";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRS";

            //  Repeating QTY
            linLoop1.QTY = new List <QTY>();

            //  Invoiced quantity 40
            var qtyLin1 = new QTY();

            qtyLin1.QUANTITYDETAILS_01 = new C186();
            qtyLin1.QUANTITYDETAILS_01.Quantityqualifier_01 = "47";
            qtyLin1.QUANTITYDETAILS_01.Quantity_02          = "40";
            linLoop1.QTY.Add(qtyLin1);

            //  Repeating MOA Groups
            linLoop1.MOALoop = new List <Loop_MOA_INVOIC_2>();

            //  Begin MOA Group
            var moaLinLoop1 = new Loop_MOA_INVOIC_2();

            //  Line item amount 2.160 EUR
            moaLinLoop1.MOA = new MOA();
            moaLinLoop1.MOA.MONETARYAMOUNT_01 = new C516();
            moaLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203";
            moaLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "2160";

            //  End MOA Group
            linLoop1.MOALoop.Add(moaLinLoop1);

            //  Repeating PRI Groups
            linLoop1.PRILoop = new List <Loop_PRI_INVOIC>();

            //  Begin PRI Group
            var priLinLoop1 = new Loop_PRI_INVOIC();

            //  Gross calculation price of 60 which does not include any allowance or charges, from the catalogue.
            priLinLoop1.PRI = new PRI();
            priLinLoop1.PRI.PRICEINFORMATION_01 = new C509();
            priLinLoop1.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAB";
            priLinLoop1.PRI.PRICEINFORMATION_01.Price_02          = "60";
            priLinLoop1.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA";

            //  End PRI Group
            linLoop1.PRILoop.Add(priLinLoop1);

            //  Repeating TAX Groups
            linLoop1.TAXLoop = new List <Loop_TAX_INVOIC>();

            //  Begin TAX Group
            var taxLinLoop1 = new Loop_TAX_INVOIC();

            //  Type of tax for the line item is value added tax 21%
            taxLinLoop1.TAX = new TAX();
            taxLinLoop1.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLinLoop1.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLinLoop1.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLinLoop1.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLinLoop1.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21";
            taxLinLoop1.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  Tax monetary amount 453.60 EUR
            taxLinLoop1.MOA = new MOA();
            taxLinLoop1.MOA.MONETARYAMOUNT_01 = new C516();
            taxLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124";
            taxLinLoop1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "453.60";

            //  End TAX Group
            linLoop1.TAXLoop.Add(taxLinLoop1);

            //  Repeating ALC Groups
            linLoop1.ALCLoop = new List <Loop_ALC_INVOIC_2>();

            //  Begin ALC Group
            var alcLinLoop1 = new Loop_ALC_INVOIC_2();

            //  Allowances
            alcLinLoop1.ALC = new ALC();
            alcLinLoop1.ALC.Allowanceorchargequalifier_01 = "A";

            //  PCD Group
            alcLinLoop1.PCDLoop = new Loop_PCD_INVOIC();

            //  Percentage information for the allowances 10 %
            alcLinLoop1.PCDLoop.PCD = new PCD();
            alcLinLoop1.PCDLoop.PCD.PERCENTAGEDETAILS_01 = new C501();
            alcLinLoop1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01 = "1";
            alcLinLoop1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentage_02          = "10";

            //  End ALC Group
            linLoop1.ALCLoop.Add(alcLinLoop1);

            //  End LIN Group 1
            result.LINLoop.Add(linLoop1);

            //  Begin LIN Group 2
            var linLoop2 = new Loop_LIN_INVOIC();

            //  Line item 2 identified by GTIN 5412345111115
            linLoop2.LIN = new LIN();
            linLoop2.LIN.Lineitemnumber_01           = "2";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5412345111115";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRS";

            //  Repeating QTY
            linLoop2.QTY = new List <QTY>();

            //  Delivered quantity 5
            var qtyLin2 = new QTY();

            qtyLin2.QUANTITYDETAILS_01 = new C186();
            qtyLin2.QUANTITYDETAILS_01.Quantityqualifier_01 = "46";
            qtyLin2.QUANTITYDETAILS_01.Quantity_02          = "5";
            linLoop2.QTY.Add(qtyLin2);

            //  Invoiced quantity 12.65 Kg.
            var qtyLin3 = new QTY();

            qtyLin3.QUANTITYDETAILS_01 = new C186();
            qtyLin3.QUANTITYDETAILS_01.Quantityqualifier_01    = "47";
            qtyLin3.QUANTITYDETAILS_01.Quantity_02             = "12.65";
            qtyLin3.QUANTITYDETAILS_01.Measureunitqualifier_03 = "KGM";
            linLoop2.QTY.Add(qtyLin3);

            //  Repeating MOA Groups
            linLoop2.MOALoop = new List <Loop_MOA_INVOIC_2>();

            //  Begin MOA Group
            var moaLinLoop2 = new Loop_MOA_INVOIC_2();

            //  Line item amount 2.530 EUR
            moaLinLoop2.MOA = new MOA();
            moaLinLoop2.MOA.MONETARYAMOUNT_01 = new C516();
            moaLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203";
            moaLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "2530";

            //  End MOA Group
            linLoop2.MOALoop.Add(moaLinLoop2);

            //  Repeating PRI Groups
            linLoop2.PRILoop = new List <Loop_PRI_INVOIC>();

            //  Begin PRI Group
            var priLinLoop2 = new Loop_PRI_INVOIC();

            //  Net price of 200 per Kg from the catalogue, this price includes allowances and charges
            priLinLoop2.PRI = new PRI();
            priLinLoop2.PRI.PRICEINFORMATION_01 = new C509();
            priLinLoop2.PRI.PRICEINFORMATION_01.Pricequalifier_01       = "AAA";
            priLinLoop2.PRI.PRICEINFORMATION_01.Price_02                = "200";
            priLinLoop2.PRI.PRICEINFORMATION_01.Pricetypecoded_03       = "CA";
            priLinLoop2.PRI.PRICEINFORMATION_01.Unitpricebasis_05       = "1";
            priLinLoop2.PRI.PRICEINFORMATION_01.Measureunitqualifier_06 = "KGM";

            //  End PRI Group
            linLoop2.PRILoop.Add(priLinLoop2);

            //  Repeating TAX Groups
            linLoop2.TAXLoop = new List <Loop_TAX_INVOIC>();

            //  Begin TAX Group
            var taxLinLoop2 = new Loop_TAX_INVOIC();

            //  Type of tax for the line item is value added tax 19 %
            taxLinLoop2.TAX = new TAX();
            taxLinLoop2.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLinLoop2.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLinLoop2.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLinLoop2.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLinLoop2.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "19";
            taxLinLoop2.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  Tax monetary amount 480.70 EUR
            taxLinLoop2.MOA = new MOA();
            taxLinLoop2.MOA.MONETARYAMOUNT_01 = new C516();
            taxLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124";
            taxLinLoop2.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "480.70";

            //  End TAX Group
            linLoop2.TAXLoop.Add(taxLinLoop2);

            //  End LIN Group 2
            result.LINLoop.Add(linLoop2);

            //  To separate the detail section from the summary section
            result.UNS = new UNS();
            result.UNS.Sectionidentification_01 = "S";

            //  Repeating CNT
            result.CNT = new List <CNT>();

            //  Total number of line items 2
            var cnt = new CNT();

            cnt.CONTROL_01 = new C270();
            cnt.CONTROL_01.Controlqualifier_01 = "2";
            cnt.CONTROL_01.Controlvalue_02     = "2";
            result.CNT.Add(cnt);

            //  Repeating MOA Groups
            result.MOALoop = new List <Loop_MOA_INVOIC_3>();

            //  Begin MOA Group 1
            var moaLoop1 = new Loop_MOA_INVOIC_3();

            //  Message total monetary amount 5.767,10 EUR
            moaLoop1.MOA = new MOA();
            moaLoop1.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "86";
            moaLoop1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "5767.10";

            //  End MOA Group 1
            result.MOALoop.Add(moaLoop1);

            //  Begin MOA Group 2
            var moaLoop2 = new Loop_MOA_INVOIC_3();

            //  Message total line items amount 4.690 EUR
            moaLoop2.MOA = new MOA();
            moaLoop2.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop2.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "79";
            moaLoop2.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "4690";

            //  End MOA Group 2
            result.MOALoop.Add(moaLoop2);

            //  Begin MOA Group 3
            var moaLoop3 = new Loop_MOA_INVOIC_3();

            //  Total amount subject to payment discount 5.767.10 EUR
            moaLoop3.MOA = new MOA();
            moaLoop3.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop3.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "129";
            moaLoop3.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "5767.10";

            //  End MOA Group 3
            result.MOALoop.Add(moaLoop3);

            //  Begin MOA Group 4
            var moaLoop4 = new Loop_MOA_INVOIC_3();

            //  Message total taxable amount 4.810 EUR
            moaLoop4.MOA = new MOA();
            moaLoop4.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop4.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "125";
            moaLoop4.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "4810";

            //  End MOA Group 4
            result.MOALoop.Add(moaLoop4);

            //  Begin MOA Group 5
            var moaLoop5 = new Loop_MOA_INVOIC_3();

            //  Message total tax amount 957,10 EUR
            moaLoop5.MOA = new MOA();
            moaLoop5.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop5.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "176";
            moaLoop5.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "957.10";

            //  End MOA Group 5
            result.MOALoop.Add(moaLoop5);

            //  Begin MOA Group 6
            var moaLoop6 = new Loop_MOA_INVOIC_3();

            //  Total charges/allowances 120 EUR
            moaLoop6.MOA = new MOA();
            moaLoop6.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop6.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "131";
            moaLoop6.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "120";

            //  End MOA Group 6
            result.MOALoop.Add(moaLoop6);

            //  Repeating TAX Groups
            result.TAXLoop2 = new List <Loop_TAX_INVOIC_3>();

            //  Begin TAX Group 1
            var taxLoop1 = new Loop_TAX_INVOIC_3();

            //  Type of tax for the total message is value added tax 19 %
            taxLoop1.TAX = new TAX();
            taxLoop1.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLoop1.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLoop1.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLoop1.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLoop1.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "19";
            taxLoop1.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  Repeating MOA
            taxLoop1.MOA = new List <MOA>();

            //  Tax monetary amount 503.50 EUR
            var moaTax1 = new MOA();

            moaTax1.MONETARYAMOUNT_01 = new C516();
            moaTax1.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124";
            moaTax1.MONETARYAMOUNT_01.Monetaryamount_02 = "503.50";
            taxLoop1.MOA.Add(moaTax1);

            //  End TAX Group 1
            result.TAXLoop2.Add(taxLoop1);

            //  Begin TAX Group 2
            var taxLoop2 = new Loop_TAX_INVOIC_3();

            //  Type of tax for the total message is value added tax 21 %
            taxLoop2.TAX = new TAX();
            taxLoop2.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLoop2.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLoop2.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLoop2.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLoop2.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21";
            taxLoop2.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  Repeating MOA
            taxLoop2.MOA = new List <MOA>();

            //  Tax monetary amount 453.60 EUR
            var moaTax2 = new MOA();

            moaTax2.MONETARYAMOUNT_01 = new C516();
            moaTax2.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124";
            moaTax2.MONETARYAMOUNT_01.Monetaryamount_02 = "453.60";
            taxLoop2.MOA.Add(moaTax2);

            //  End TAX Group 2
            result.TAXLoop2.Add(taxLoop2);

            result.ALCLoop2 = new List <Loop_ALC_INVOIC_3>();

            //  Begin ALC Group
            var alcLoop2 = new Loop_ALC_INVOIC_3();

            //  Freight charge
            alcLoop2.ALC = new ALC();
            alcLoop2.ALC.Allowanceorchargequalifier_01    = "C";
            alcLoop2.ALC.SPECIALSERVICESIDENTIFICATION_05 = new C214();
            alcLoop2.ALC.SPECIALSERVICESIDENTIFICATION_05.Specialservicescoded_01 = "FC";

            //  Repeating MOA
            alcLoop2.MOA = new List <MOA>();

            //  Total charges 120 EUR
            var moaAlc = new MOA();

            moaAlc.MONETARYAMOUNT_01 = new C516();
            moaAlc.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "131";
            moaAlc.MONETARYAMOUNT_01.Monetaryamount_02 = "120";
            alcLoop2.MOA.Add(moaAlc);

            //  End ALC Group
            result.ALCLoop2.Add(alcLoop2);

            return(result);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Build price catalogue.
        /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s4/pricat.pdf
        /// </summary>
        static TSPRICAT BuildPriceCatalogue(string controlNumber)
        {
            var result = new TSPRICAT();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01                      = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02                           = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "PRICAT";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "96A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            //  Price/sales catalogue number PC32458
            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "9";
            result.BGM.Documentmessagenumber_02 = "PC32458";
            result.BGM.Messagefunctioncoded_03  = "9";

            //  Repeating DTM
            result.DTM = new List <DTM>();

            //  Message date 1st October 2002
            var dtm1 = new DTM();

            dtm1.DATETIMEPERIOD_01 = new C507();
            dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "137";
            dtm1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20021001";
            dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm1);

            //  Repeating RFF Groups
            result.RFFLoop = new List <Loop_RFF_PRICAT>();

            //  Begin RFF Group
            var rffLoop1 = new Loop_RFF_PRICAT();

            //  Price list is related to contract number 5622ABE
            rffLoop1.RFF = new RFF();
            rffLoop1.RFF.REFERENCE_01 = new C506();
            rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "CT";
            rffLoop1.RFF.REFERENCE_01.Referencenumber_02    = "5622ABE";

            //  Repeating DTM
            rffLoop1.DTM = new List <DTM>();

            //  Contract date 10th of August 2002
            var dtmRff1 = new DTM();

            dtmRff1.DATETIMEPERIOD_01 = new C507();
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020810";
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            rffLoop1.DTM.Add(dtmRff1);

            //  End RFF Group
            result.RFFLoop.Add(rffLoop1);

            //  Repeating NAD Groups
            result.NADLoop = new List <Loop_NAD_PRICAT>();

            //  Begin NAD Group 1
            var nadLoop1 = new Loop_NAD_PRICAT();

            //  Buyer is identified by GLN 5412345000020
            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyqualifier_01             = "BY";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345000020";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF NAD Groups
            nadLoop1.RFFLoop = new List <Loop_RFF_PRICAT>();

            //  Begin RFF NAD Group
            var rffNadLoop1 = new Loop_RFF_PRICAT();

            //  Buyer’s VAT number VR12345
            rffNadLoop1.RFF = new RFF();
            rffNadLoop1.RFF.REFERENCE_01 = new C506();
            rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02    = "VR12345";

            //  End RFF NAD Group
            nadLoop1.RFFLoop.Add(rffNadLoop1);

            //  End NAD Group 1
            result.NADLoop.Add(nadLoop1);

            //  Begin NAD Group 2
            var nadLoop2 = new Loop_NAD_PRICAT();

            //  Supplier is identified by GLN 4012345500004
            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyqualifier_01             = "SU";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "4012345500004";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF NAD Groups
            nadLoop2.RFFLoop = new List <Loop_RFF_PRICAT>();

            //  Begin RFF NAD Group
            var rffNadLoop2 = new Loop_RFF_PRICAT();

            //  Supplier’s VAT number is VR95745
            rffNadLoop2.RFF = new RFF();
            rffNadLoop2.RFF.REFERENCE_01 = new C506();
            rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02    = "VR95745";

            //  End RFF NAD Group
            nadLoop2.RFFLoop.Add(rffNadLoop2);

            //  End NAD Group 2
            result.NADLoop.Add(nadLoop2);

            //  Repeating CUX Groups
            result.CUXLoop = new List <Loop_CUX_PRICAT>();

            //  Begin CUX Group
            var cuxLoop = new Loop_CUX_PRICAT();

            //  Price list currency is Euros
            cuxLoop.CUX = new CUX();
            cuxLoop.CUX.CURRENCYDETAILS_01 = new C504();
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencydetailsqualifier_01 = "2";
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencycoded_02            = "EUR";
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencyqualifier_03        = "8";

            //  End CUX Group
            result.CUXLoop.Add(cuxLoop);

            //  Repeating PGI Groups
            result.PGILoop = new List <Loop_PGI_PRICAT>();

            //  Begin PGI Group
            var pgiLoop1 = new Loop_PGI_PRICAT();

            //  Product group containing no price group
            pgiLoop1.PGI = new PGI();
            pgiLoop1.PGI.Productgrouptypecoded_01 = "2";

            //  Repeating LIN PGI Groups
            pgiLoop1.LINLoop = new List <Loop_LIN_PRICAT>();

            //  Begin LIN PGI Group 1
            var linPgiLoop1 = new Loop_LIN_PRICAT();

            //  Line item 1, an addition, is identified by GTIN 5410738377131
            linPgiLoop1.LIN = new LIN();
            linPgiLoop1.LIN.Lineitemnumber_01 = "1";
            linPgiLoop1.LIN.Actionrequestnotificationcoded_02                  = "1";
            linPgiLoop1.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linPgiLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738377131";
            linPgiLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            //  Repeating PIA
            linPgiLoop1.PIA = new List <PIA>();

            //  Supplier’s article number CU32555 is provided as an additional identification
            var piaLin1 = new PIA();

            piaLin1.Productidfunctionqualifier_01                      = "1";
            piaLin1.ITEMNUMBERIDENTIFICATION_02                        = new C212();
            piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01          = "CU32555";
            piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA";
            linPgiLoop1.PIA.Add(piaLin1);

            //  Repeating IMD
            linPgiLoop1.IMD = new List <IMD>();

            //  Current line item is a consumer unit
            var imdLin1 = new IMD();

            imdLin1.Itemdescriptiontypecoded_01 = "C";
            imdLin1.ITEMDESCRIPTION_03          = new C273();
            imdLin1.ITEMDESCRIPTION_03.Itemdescriptionidentification_01  = "CU";
            imdLin1.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9";
            linPgiLoop1.IMD.Add(imdLin1);

            //  Product description
            var imdLin2 = new IMD();

            imdLin2.Itemdescriptiontypecoded_01           = "F";
            imdLin2.ITEMDESCRIPTION_03                    = new C273();
            imdLin2.ITEMDESCRIPTION_03.Itemdescription_04 = "HEALTHIEST CORN CRISPIES";
            imdLin2.ITEMDESCRIPTION_03.Itemdescription_05 = "BOX";
            linPgiLoop1.IMD.Add(imdLin2);

            //  Repeating MEA
            linPgiLoop1.MEA = new List <MEA>();

            //  The net weight of the consumer unit is 250 grms
            var mea = new MEA();

            mea.Measurementapplicationqualifier_01 = "PD";
            mea.MEASUREMENTDETAILS_02 = new C502();
            mea.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01    = "AAA";
            mea.MEASUREMENTDETAILS_02.Measurementsignificancecoded_02 = "4";
            mea.VALUERANGE_03 = new C174();
            mea.VALUERANGE_03.Measureunitqualifier_01 = "GRM";
            mea.VALUERANGE_03.Measurementvalue_02     = "250";
            linPgiLoop1.MEA.Add(mea);

            //  Repeating HAN
            linPgiLoop1.HAN = new List <HAN>();

            //  The product is foodstuffs
            var hanLin1 = new HAN();

            hanLin1.HANDLINGINSTRUCTIONS_01 = new C524();
            hanLin1.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01      = "EAT";
            hanLin1.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9";
            linPgiLoop1.HAN.Add(hanLin1);

            //  Repeating TAX LIN Groups
            linPgiLoop1.TAXLoop = new List <Loop_TAX_PRICAT>();

            //  Begin TAX LIN Group
            var taxLin1 = new Loop_TAX_PRICAT();

            //  The product is subject to the standard rate of 21% VAT
            taxLin1.TAX = new TAX();
            taxLin1.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLin1.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLin1.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLin1.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLin1.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21";
            taxLin1.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  End TAX LIN Group
            linPgiLoop1.TAXLoop.Add(taxLin1);

            //  Repeating PRI LIN Groups
            linPgiLoop1.PRILoop = new List <Loop_PRI_PRICAT_2>();

            //  Begin PRI LIN Group
            var priLinLoop1 = new Loop_PRI_PRICAT_2();

            //  The suggested retail information price, including allowances / charges and taxes, is 40
            priLinLoop1.PRI = new PRI();
            priLinLoop1.PRI.PRICEINFORMATION_01 = new C509();
            priLinLoop1.PRI.PRICEINFORMATION_01.Pricequalifier_01     = "AAE";
            priLinLoop1.PRI.PRICEINFORMATION_01.Price_02              = "40";
            priLinLoop1.PRI.PRICEINFORMATION_01.Pricetypecoded_03     = "CA";
            priLinLoop1.PRI.PRICEINFORMATION_01.Pricetypequalifier_04 = "SRP";

            //  End PRI LIN Group
            linPgiLoop1.PRILoop.Add(priLinLoop1);

            //  Repeating PAC LIN Groups
            linPgiLoop1.PACLoop = new List <Loop_PAC_PRICAT>();

            //  Begin PAC LIN Group
            var pacLin1 = new Loop_PAC_PRICAT();

            //  The consumer unit is packaged in a box
            pacLin1.PAC = new PAC();
            pacLin1.PAC.PACKAGETYPE_03 = new C202();
            pacLin1.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "BX";

            //  Repeating MEA
            pacLin1.MEA = new List <MEA>();

            //  The height of the box is 200 mm
            var meaPac1 = new MEA();

            meaPac1.Measurementapplicationqualifier_01 = "PD";
            meaPac1.MEASUREMENTDETAILS_02 = new C502();
            meaPac1.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "HT";
            meaPac1.VALUERANGE_03 = new C174();
            meaPac1.VALUERANGE_03.Measureunitqualifier_01 = "MMT";
            meaPac1.VALUERANGE_03.Measurementvalue_02     = "200";
            pacLin1.MEA.Add(meaPac1);

            //  The length of the box is 80 mm
            var meaPac2 = new MEA();

            meaPac2.Measurementapplicationqualifier_01 = "PD";
            meaPac2.MEASUREMENTDETAILS_02 = new C502();
            meaPac2.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "LN";
            meaPac2.VALUERANGE_03 = new C174();
            meaPac2.VALUERANGE_03.Measureunitqualifier_01 = "MMT";
            meaPac2.VALUERANGE_03.Measurementvalue_02     = "80";
            pacLin1.MEA.Add(meaPac2);

            //  The width of the box is 30 mm
            var meaPac3 = new MEA();

            meaPac3.Measurementapplicationqualifier_01 = "PD";
            meaPac3.MEASUREMENTDETAILS_02 = new C502();
            meaPac3.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "WD";
            meaPac3.VALUERANGE_03 = new C174();
            meaPac3.VALUERANGE_03.Measureunitqualifier_01 = "MMT";
            meaPac3.VALUERANGE_03.Measurementvalue_02     = "30";
            pacLin1.MEA.Add(meaPac3);

            //  End PAC LIN Group
            linPgiLoop1.PACLoop.Add(pacLin1);

            //  End LIN PGI Group 1
            pgiLoop1.LINLoop.Add(linPgiLoop1);

            //  Begin LIN PGI Group 2
            var linPgiLoop2 = new Loop_LIN_PRICAT();

            //  Line item 2, an addition, is identified by GTIN 5410738377117
            linPgiLoop2.LIN = new LIN();
            linPgiLoop2.LIN.Lineitemnumber_01 = "2";
            linPgiLoop2.LIN.Actionrequestnotificationcoded_02                  = "1";
            linPgiLoop2.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linPgiLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738377117";
            linPgiLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            //  Repeating PIA
            linPgiLoop2.PIA = new List <PIA>();

            //  Supplier’s article number TU32555 is provided as an additional identification
            var piaLin2 = new PIA();

            piaLin2.Productidfunctionqualifier_01                      = "1";
            piaLin2.ITEMNUMBERIDENTIFICATION_02                        = new C212();
            piaLin2.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01          = "TU32555";
            piaLin2.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA";
            linPgiLoop2.PIA.Add(piaLin2);

            //  Repeating IMD
            linPgiLoop2.IMD = new List <IMD>();

            //  Current line item is a trade unit
            var imdLin3 = new IMD();

            imdLin3.Itemdescriptiontypecoded_01 = "C";
            imdLin3.ITEMDESCRIPTION_03          = new C273();
            imdLin3.ITEMDESCRIPTION_03.Itemdescriptionidentification_01  = "TU";
            imdLin3.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9";
            linPgiLoop2.IMD.Add(imdLin3);

            //  Product description
            var imdLin4 = new IMD();

            imdLin4.Itemdescriptiontypecoded_01           = "F";
            imdLin4.ITEMDESCRIPTION_03                    = new C273();
            imdLin4.ITEMDESCRIPTION_03.Itemdescription_04 = "CORN CRISPIES";
            imdLin4.ITEMDESCRIPTION_03.Itemdescription_05 = "CASE";
            linPgiLoop2.IMD.Add(imdLin4);

            //  Repeating HAN
            linPgiLoop2.HAN = new List <HAN>();

            //  The product is foodstuffs
            var hanLin2 = new HAN();

            hanLin2.HANDLINGINSTRUCTIONS_01 = new C524();
            hanLin2.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01      = "EAT";
            hanLin2.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9";
            linPgiLoop2.HAN.Add(hanLin2);

            //  Repeating ALI
            linPgiLoop2.ALI = new List <ALI>();

            //  Country of origin is Belgium
            var aliLin1 = new ALI();

            aliLin1.Countryoforigincoded_01 = "BE";
            linPgiLoop2.ALI.Add(aliLin1);

            //  Repeating TAX LIN Groups
            linPgiLoop2.TAXLoop = new List <Loop_TAX_PRICAT>();

            //  Begin TAX LIN Group
            var taxLin2 = new Loop_TAX_PRICAT();

            //  Product is subject to the standard VAT rate of 21%
            taxLin2.TAX = new TAX();
            taxLin2.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLin2.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLin2.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLin2.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLin2.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21";
            taxLin2.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  End TAX LIN Group
            linPgiLoop2.TAXLoop.Add(taxLin2);

            //  Repeating PRI LIN Groups
            linPgiLoop2.PRILoop = new List <Loop_PRI_PRICAT_2>();

            //  Begin PRI LIN Group
            var priLinLoop2 = new Loop_PRI_PRICAT_2();

            //  The calculation gross price for the product is 500
            priLinLoop2.PRI = new PRI();
            priLinLoop2.PRI.PRICEINFORMATION_01 = new C509();
            priLinLoop2.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAB";
            priLinLoop2.PRI.PRICEINFORMATION_01.Price_02          = "500";
            priLinLoop2.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA";

            //  Repeating ALC LIN Groups
            linPgiLoop2.ALCLoop = new List <Loop_ALC_PRICAT>();

            //  Begin ALC LIN Group
            var alcLin1 = new Loop_ALC_PRICAT();

            //  An allowance exists for this product
            alcLin1.ALC = new ALC();
            alcLin1.ALC.Allowanceorchargequalifier_01        = "A";
            alcLin1.ALC.Calculationsequenceindicatorcoded_04 = "1";

            //  PCD Group
            alcLin1.PCDLoop = new Loop_PCD_PRICAT();

            //  Allowance of 8%
            alcLin1.PCDLoop.PCD = new PCD();
            alcLin1.PCDLoop.PCD.PERCENTAGEDETAILS_01 = new C501();
            alcLin1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01 = "3";
            alcLin1.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentage_02          = "8";

            //  Is available on purchase of a minimum quantity of 48
            alcLin1.PCDLoop.RNG = new RNG();
            alcLin1.PCDLoop.RNG.Rangetypequalifier_01 = "1";
            alcLin1.PCDLoop.RNG.RANGE_02 = new C280();
            alcLin1.PCDLoop.RNG.RANGE_02.Measureunitqualifier_01 = "PCE";
            alcLin1.PCDLoop.RNG.RANGE_02.Rangeminimum_02         = "48";

            //  End ALC LIN Group
            linPgiLoop2.ALCLoop.Add(alcLin1);

            //  End PRI LIN Group
            linPgiLoop2.PRILoop.Add(priLinLoop2);

            //  Repeating PAC LIN Groups
            linPgiLoop2.PACLoop = new List <Loop_PAC_PRICAT>();

            //  Begin PAC LIN Group
            var pacLin2 = new Loop_PAC_PRICAT();

            //  The product is packaged in a carton
            pacLin2.PAC = new PAC();
            pacLin2.PAC.PACKAGETYPE_03 = new C202();
            pacLin2.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT";

            //  End PAC LIN Group
            linPgiLoop2.PACLoop.Add(pacLin2);

            //  End LIN PGI Group 2
            pgiLoop1.LINLoop.Add(linPgiLoop2);

            //  Begin LIN PGI Group 3
            var linPgiLoop3 = new Loop_LIN_PRICAT();

            //  Line number 3, identified by GTIN 5410738377131, is a sub-line of line number 2
            linPgiLoop3.LIN = new LIN();
            linPgiLoop3.LIN.Lineitemnumber_01 = "3";
            linPgiLoop3.LIN.Actionrequestnotificationcoded_02                  = "1";
            linPgiLoop3.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linPgiLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738377131";
            linPgiLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";
            linPgiLoop3.LIN.SUBLINEINFORMATION_04 = new C829();
            linPgiLoop3.LIN.SUBLINEINFORMATION_04.Sublineindicatorcoded_01 = "1";
            linPgiLoop3.LIN.SUBLINEINFORMATION_04.Lineitemnumber_02        = "2";

            //  Repeating QTY
            linPgiLoop3.QTY = new List <QTY>();

            //  Number of consumer units in trade unit is 48
            var qtyLin1 = new QTY();

            qtyLin1.QUANTITYDETAILS_01 = new C186();
            qtyLin1.QUANTITYDETAILS_01.Quantityqualifier_01 = "45E";
            qtyLin1.QUANTITYDETAILS_01.Quantity_02          = "48";
            linPgiLoop3.QTY.Add(qtyLin1);

            //  End LIN PGI Group 3
            pgiLoop1.LINLoop.Add(linPgiLoop3);

            //  Begin LIN PGI Group 4
            var linPgiLoop4 = new Loop_LIN_PRICAT();

            //  Line item 4, an addition, is identified by GTIN 5410738251028
            linPgiLoop4.LIN = new LIN();
            linPgiLoop4.LIN.Lineitemnumber_01 = "4";
            linPgiLoop4.LIN.Actionrequestnotificationcoded_02                  = "1";
            linPgiLoop4.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linPgiLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738251028";
            linPgiLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            //  Repeating PIA
            linPgiLoop4.PIA = new List <PIA>();

            //  Supplier’s article number PN32555 is provided as an  additional identification
            var piaLin3 = new PIA();

            piaLin3.Productidfunctionqualifier_01                      = "1";
            piaLin3.ITEMNUMBERIDENTIFICATION_02                        = new C212();
            piaLin3.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01          = "PN32555";
            piaLin3.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA";
            linPgiLoop4.PIA.Add(piaLin3);

            //  Repeating IMD
            linPgiLoop4.IMD = new List <IMD>();

            //  Product is a despatch unit
            var imdLin5 = new IMD();

            imdLin5.Itemdescriptiontypecoded_01 = "C";
            imdLin5.ITEMDESCRIPTION_03          = new C273();
            imdLin5.ITEMDESCRIPTION_03.Itemdescriptionidentification_01 = "DU";
            imdLin5.ITEMDESCRIPTION_03.Codelistqualifier_02             = "9";
            linPgiLoop4.IMD.Add(imdLin5);

            //  Product description
            var imdLin6 = new IMD();

            imdLin6.Itemdescriptiontypecoded_01           = "F";
            imdLin6.ITEMDESCRIPTION_03                    = new C273();
            imdLin6.ITEMDESCRIPTION_03.Itemdescription_04 = "CORN CRISPIES";
            imdLin6.ITEMDESCRIPTION_03.Itemdescription_05 = "PALLET";
            linPgiLoop4.IMD.Add(imdLin6);

            //  Repeating HAN
            linPgiLoop4.HAN = new List <HAN>();

            //  The product is foodstuffs
            var hanLin3 = new HAN();

            hanLin3.HANDLINGINSTRUCTIONS_01 = new C524();
            hanLin3.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01      = "EAT";
            hanLin3.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9";
            linPgiLoop4.HAN.Add(hanLin3);

            //  The product is susceptible to frost damage
            var hanLin4 = new HAN();

            hanLin4.HANDLINGINSTRUCTIONS_01 = new C524();
            hanLin4.HANDLINGINSTRUCTIONS_01.Handlinginstructionscoded_01      = "FTD";
            hanLin4.HANDLINGINSTRUCTIONS_01.Codelistresponsibleagencycoded_03 = "9";
            linPgiLoop4.HAN.Add(hanLin4);

            //  Repeating TAX LIN Groups
            linPgiLoop4.TAXLoop = new List <Loop_TAX_PRICAT>();

            //  Begin TAX LIN Group
            var taxLin3 = new Loop_TAX_PRICAT();

            //  The product is subject to the standard VAT rate of 21%
            taxLin3.TAX = new TAX();
            taxLin3.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLin3.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLin3.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLin3.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLin3.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "21";
            taxLin3.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  End TAX LIN Group
            linPgiLoop4.TAXLoop.Add(taxLin3);

            //  Repeating PRI LIN Groups
            linPgiLoop4.PRILoop = new List <Loop_PRI_PRICAT_2>();

            //  Begin PRI LIN Group
            var priLinLoop3 = new Loop_PRI_PRICAT_2();

            //  The calculation net price for the product is 24000
            priLinLoop3.PRI = new PRI();
            priLinLoop3.PRI.PRICEINFORMATION_01 = new C509();
            priLinLoop3.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAA";
            priLinLoop3.PRI.PRICEINFORMATION_01.Price_02          = "24000";
            priLinLoop3.PRI.PRICEINFORMATION_01.Pricetypecoded_03 = "CA";

            //  End PRI LIN Group
            linPgiLoop4.PRILoop.Add(priLinLoop3);

            //  Repeating ALC LIN Groups
            linPgiLoop4.ALCLoop = new List <Loop_ALC_PRICAT>();

            //  Begin ALC LIN Group
            var alcLin2 = new Loop_ALC_PRICAT();

            //  An allowance exists for this product
            alcLin2.ALC = new ALC();
            alcLin2.ALC.Allowanceorchargequalifier_01        = "A";
            alcLin2.ALC.Calculationsequenceindicatorcoded_04 = "1";

            //  PCD Group
            alcLin2.PCDLoop = new Loop_PCD_PRICAT();

            //  Allowance of 10%
            alcLin2.PCDLoop.PCD = new PCD();
            alcLin2.PCDLoop.PCD.PERCENTAGEDETAILS_01 = new C501();
            alcLin2.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentagequalifier_01 = "1";
            alcLin2.PCDLoop.PCD.PERCENTAGEDETAILS_01.Percentage_02          = "10";

            //  Is available on purchases of a minimum quantity of 50
            alcLin2.PCDLoop.RNG = new RNG();
            alcLin2.PCDLoop.RNG.Rangetypequalifier_01 = "1";
            alcLin2.PCDLoop.RNG.RANGE_02 = new C280();
            alcLin2.PCDLoop.RNG.RANGE_02.Measureunitqualifier_01 = "PCE";
            alcLin2.PCDLoop.RNG.RANGE_02.Rangeminimum_02         = "50";

            //  End ALC LIN Group
            linPgiLoop4.ALCLoop.Add(alcLin2);

            //  Repeating PAC LIN Groups
            linPgiLoop4.PACLoop = new List <Loop_PAC_PRICAT>();

            //  Begin PAC LIN Group
            var pacLin3 = new Loop_PAC_PRICAT();

            //  The product is packaged on an ISO 1 pallet
            pacLin3.PAC = new PAC();
            pacLin3.PAC.PACKAGETYPE_03 = new C202();
            pacLin3.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01   = "201";
            pacLin3.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9";

            //  End PAC LIN Group
            linPgiLoop4.PACLoop.Add(pacLin3);

            //  End LIN PGI Group 4
            pgiLoop1.LINLoop.Add(linPgiLoop4);

            //  Begin LIN PGI Group 5
            var linPgiLoop5 = new Loop_LIN_PRICAT();

            //  Line number 5, identified by GTIN 5410738377117 , is a sub-line of line number 4
            linPgiLoop5.LIN = new LIN();
            linPgiLoop5.LIN.Lineitemnumber_01 = "5";
            linPgiLoop5.LIN.Actionrequestnotificationcoded_02                  = "1";
            linPgiLoop5.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linPgiLoop5.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738377117";
            linPgiLoop5.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";
            linPgiLoop5.LIN.SUBLINEINFORMATION_04 = new C829();
            linPgiLoop5.LIN.SUBLINEINFORMATION_04.Sublineindicatorcoded_01 = "1";
            linPgiLoop5.LIN.SUBLINEINFORMATION_04.Lineitemnumber_02        = "4";

            //  Repeating QTY
            linPgiLoop5.QTY = new List <QTY>();

            //  Number of traded units in despatch unit is 24
            var qtyLin2 = new QTY();

            qtyLin2.QUANTITYDETAILS_01 = new C186();
            qtyLin2.QUANTITYDETAILS_01.Quantityqualifier_01 = "45E";
            qtyLin2.QUANTITYDETAILS_01.Quantity_02          = "24";
            linPgiLoop5.QTY.Add(qtyLin2);

            //  End LIN PGI Group 5
            pgiLoop1.LINLoop.Add(linPgiLoop5);

            //  End PGI Group
            result.PGILoop.Add(pgiLoop1);

            return(result);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Build order response.
        /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s4/ordrsp.pdf
        /// </summary>
        static TSORDRSP BuildOrderResponse(string controlNumber)
        {
            var result = new TSORDRSP();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01                      = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02                           = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "ORDRSP";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "96A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            //  Order response number ORSP12856, accepted with proposals for change
            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "231";
            result.BGM.Documentmessagenumber_02 = "ORSP12856";
            result.BGM.Messagefunctioncoded_03  = "4";

            //  Repeating DTM
            result.DTM = new List <DTM>();

            //  Message date is 30th of March 2002
            var dtm1 = new DTM();

            dtm1.DATETIMEPERIOD_01 = new C507();
            dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "137";
            dtm1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020330";
            dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm1);

            //  Repeating RFF Groups
            result.RFFLoop = new List <Loop_RFF_ORDRSP>();

            //  Begin RFF Group
            var rffLoop1 = new Loop_RFF_ORDRSP();

            //  Message is responding to order number 652744
            rffLoop1.RFF = new RFF();
            rffLoop1.RFF.REFERENCE_01 = new C506();
            rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "ON";
            rffLoop1.RFF.REFERENCE_01.Referencenumber_02    = "652744";

            //  Repeating DTM
            rffLoop1.DTM = new List <DTM>();

            //  Order date is 25th of March 2002
            var dtmRff1 = new DTM();

            dtmRff1.DATETIMEPERIOD_01 = new C507();
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020325";
            dtmRff1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            rffLoop1.DTM.Add(dtmRff1);

            //  End RFF Group
            result.RFFLoop.Add(rffLoop1);

            //  Repeating NAD Groups
            result.NADLoop = new List <Loop_NAD_ORDRSP>();

            //  Begin NAD Group 1
            var nadLoop1 = new Loop_NAD_ORDRSP();

            //  Buyer is identified using GLN 5412345000013
            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyqualifier_01             = "BY";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345000013";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF NAD Groups
            nadLoop1.RFFLoop = new List <Loop_RFF_ORDRSP>();

            //  Begin RFF NAD Group
            var rffNadLoop1 = new Loop_RFF_ORDRSP();

            //  Buyer’s VAT number is 452282
            rffNadLoop1.RFF = new RFF();
            rffNadLoop1.RFF.REFERENCE_01 = new C506();
            rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02    = "452282";

            //  End RFF NAD Group
            nadLoop1.RFFLoop.Add(rffNadLoop1);

            //  End NAD Group 1
            result.NADLoop.Add(nadLoop1);

            //  Begin NAD Group 2
            var nadLoop2 = new Loop_NAD_ORDRSP();

            //  Supplier is identified using GLN 4012345500004
            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyqualifier_01             = "SU";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "4012345500004";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF NAD Groups
            nadLoop2.RFFLoop = new List <Loop_RFF_ORDRSP>();

            //  Begin RFF NAD Group
            var rffNadLoop2 = new Loop_RFF_ORDRSP();

            //  Supplier’s VAT number is 87765432
            rffNadLoop2.RFF = new RFF();
            rffNadLoop2.RFF.REFERENCE_01 = new C506();
            rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02    = "87765432";

            //  End RFF NAD Group
            nadLoop2.RFFLoop.Add(rffNadLoop2);

            //  End NAD Group 2
            result.NADLoop.Add(nadLoop2);

            //  Repeating LIN Groups
            result.LINLoop = new List <Loop_LIN_ORDRSP>();

            //  Begin LIN Group 1
            var linLoop1 = new Loop_LIN_ORDRSP();

            //  First product identified by GTIN 3312345501102 is accepted
            linLoop1.LIN = new LIN();
            linLoop1.LIN.Lineitemnumber_01 = "1";
            linLoop1.LIN.Actionrequestnotificationcoded_02                  = "5";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "3312345501102";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            //  End LIN Group 1
            result.LINLoop.Add(linLoop1);

            //  Begin LIN Group 2
            var linLoop2 = new Loop_LIN_ORDRSP();

            //  Second product identified by GTIN 3312345501003 is amended
            linLoop2.LIN = new LIN();
            linLoop2.LIN.Lineitemnumber_01 = "2";
            linLoop2.LIN.Actionrequestnotificationcoded_02                  = "3";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "3312345501003";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            //  Repeating PIA
            linLoop2.PIA = new List <PIA>();

            //  Supplier’s article number ABC1234 is provided as an additional identification
            var piaLin1 = new PIA();

            piaLin1.Productidfunctionqualifier_01                      = "1";
            piaLin1.ITEMNUMBERIDENTIFICATION_02                        = new C212();
            piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01          = "ABC1234";
            piaLin1.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "SA";
            linLoop2.PIA.Add(piaLin1);

            //  Repeating IMD
            linLoop2.IMD = new List <IMD>();

            //  Product is a traded unit
            var imdLin1 = new IMD();

            imdLin1.Itemdescriptiontypecoded_01 = "C";
            imdLin1.ITEMDESCRIPTION_03          = new C273();
            imdLin1.ITEMDESCRIPTION_03.Itemdescriptionidentification_01  = "TU";
            imdLin1.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9";
            linLoop2.IMD.Add(imdLin1);

            //  Repeating QTY
            linLoop2.QTY = new List <QTY>();

            //  Ordered quantity is 48
            var qtyLin1 = new QTY();

            qtyLin1.QUANTITYDETAILS_01 = new C186();
            qtyLin1.QUANTITYDETAILS_01.Quantityqualifier_01 = "21";
            qtyLin1.QUANTITYDETAILS_01.Quantity_02          = "48";
            linLoop2.QTY.Add(qtyLin1);

            //  Repeating DTM
            linLoop2.DTM = new List <DTM>();

            //  Date of order is 10th of September 2002
            var dtmLin1 = new DTM();

            dtmLin1.DATETIMEPERIOD_01 = new C507();
            dtmLin1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "2";
            dtmLin1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020910";
            dtmLin1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            linLoop2.DTM.Add(dtmLin1);

            //  Repeating MOA
            linLoop2.MOA = new List <MOA>();

            //  Value of ordered line is 26400
            var moaLin1 = new MOA();

            moaLin1.MONETARYAMOUNT_01 = new C516();
            moaLin1.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203";
            moaLin1.MONETARYAMOUNT_01.Monetaryamount_02 = "26400";
            linLoop2.MOA.Add(moaLin1);

            //  Repeating PRI Groups
            linLoop2.PRILoop = new List <Loop_PRI_ORDRSP>();

            //  Begin PRI LIN Group
            var priLin1 = new Loop_PRI_ORDRSP();

            //  Net calculation price is 550
            priLin1.PRI = new PRI();
            priLin1.PRI.PRICEINFORMATION_01 = new C509();
            priLin1.PRI.PRICEINFORMATION_01.Pricequalifier_01     = "AAA";
            priLin1.PRI.PRICEINFORMATION_01.Price_02              = "550";
            priLin1.PRI.PRICEINFORMATION_01.Pricetypecoded_03     = "CT";
            priLin1.PRI.PRICEINFORMATION_01.Pricetypequalifier_04 = "AAA";

            //  End PRI LIN Group
            linLoop2.PRILoop.Add(priLin1);

            //  Repeating PAC Groups
            linLoop2.PACLoop = new List <Loop_PAC_ORDRSP_2>();

            //  Begin PAC LIN Group
            var pacLin1 = new Loop_PAC_ORDRSP_2();

            //  Product is packaged in a case
            pacLin1.PAC = new PAC();
            pacLin1.PAC.Numberofpackages_01 = "4";
            pacLin1.PAC.PACKAGINGDETAILS_02 = new C531();
            pacLin1.PAC.PACKAGINGDETAILS_02.Packaginglevelcoded_01 = "1";
            pacLin1.PAC.PACKAGETYPE_03 = new C202();
            pacLin1.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CS";

            //  End PAC LIN Group
            linLoop2.PACLoop.Add(pacLin1);

            //  Repeating TAX Groups
            linLoop2.TAXLoop = new List <Loop_TAX_ORDRSP>();

            //  Begin TAX LIN Group
            var taxLin1 = new Loop_TAX_ORDRSP();

            //  Product is subject to standard VAT rate of 17.5 %
            taxLin1.TAX = new TAX();
            taxLin1.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLin1.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLin1.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLin1.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLin1.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "17.5";
            taxLin1.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  Tax amount for product is 4620
            taxLin1.MOA = new MOA();
            taxLin1.MOA.MONETARYAMOUNT_01 = new C516();
            taxLin1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "124";
            taxLin1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "4620";

            //  End TAX LIN Group
            linLoop2.TAXLoop.Add(taxLin1);

            //  Repeating TDT Groups
            linLoop2.TDTLoop = new List <Loop_TDT_ORDRSP>();

            //  Begin TDT LIN Group
            var tdtLin1 = new Loop_TDT_ORDRSP();

            //  Main carriage transport for the product is a truck
            tdtLin1.TDT = new TDT();
            tdtLin1.TDT.Transportstagequalifier_01 = "20";
            tdtLin1.TDT.MODEOFTRANSPORT_03         = new C220();
            tdtLin1.TDT.MODEOFTRANSPORT_03.Modeoftransportcoded_01 = "30";
            tdtLin1.TDT.CARRIER_05 = new C040();
            tdtLin1.TDT.CARRIER_05.Carrieridentification_01 = "31";

            //  End TDT LIN Group
            linLoop2.TDTLoop.Add(tdtLin1);

            //  End LIN Group 2
            result.LINLoop.Add(linLoop2);

            //  Begin LIN Group 3
            var linLoop3 = new Loop_LIN_ORDRSP();

            //  Third product identified by GTIN 3312345501096 is not accepted
            linLoop3.LIN = new LIN();
            linLoop3.LIN.Lineitemnumber_01 = "3";
            linLoop3.LIN.Actionrequestnotificationcoded_02                  = "7";
            linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03                        = new C212();
            linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "3312345501096";
            linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            //  End LIN Group 3
            result.LINLoop.Add(linLoop3);

            //  Message detail/summary separator
            result.UNS = new UNS();
            result.UNS.Sectionidentification_01 = "S";

            //  Repeating CNT
            result.CNT = new List <CNT>();

            //  Count of the number of LIN segments in the message
            var cnt = new CNT();

            cnt.CONTROL_01 = new C270();
            cnt.CONTROL_01.Controlqualifier_01 = "2";
            cnt.CONTROL_01.Controlvalue_02     = "3";
            result.CNT.Add(cnt);

            return(result);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Build purchase order.
        /// Original from https://www.gs1.org/standards/edi-xml-gs1-eancom/eancom-orders-s4/syntax-4
        /// </summary>
        public static TSORDERS BuildPurchaseOrder(string controlNumber)
        {
            var result = new TSORDERS();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01                      = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02                           = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "ORDERS";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "96A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            //  Order number 128576
            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "220";
            result.BGM.Documentmessagenumber_02 = "128576";
            result.BGM.Messagefunctioncoded_03  = "9";

            //  Repeating DTM
            result.DTM = new List <DTM>();

            //  Message date 30th of August 2002
            var dtm = new DTM();

            dtm.DATETIMEPERIOD_01 = new C507();
            dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "137";
            dtm.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020830";
            dtm.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm);

            //  Instruction to pay in Bank Account
            result.PAI = new PAI();
            result.PAI.PAYMENTINSTRUCTIONDETAILS_01 = new C534();
            result.PAI.PAYMENTINSTRUCTIONDETAILS_01.Paymentmeanscoded_03 = "42";

            //  Repeating FTX
            result.FTX = new List <FTX>();

            //  Free text mutually defined
            var ftx = new FTX();

            ftx.Textsubjectqualifier_01           = "ZZZ";
            ftx.Textfunctioncoded_02              = "1";
            ftx.TEXTREFERENCE_03                  = new C107();
            ftx.TEXTREFERENCE_03.Freetextcoded_01 = "001";
            ftx.TEXTREFERENCE_03.Codelistresponsibleagencycoded_03 = "91";
            result.FTX.Add(ftx);

            //  Repeating RFF Groups
            result.RFFLoop = new List <Loop_RFF_ORDERS>();

            //  Begin RFF Group
            var rffLoop = new Loop_RFF_ORDERS();

            //  Order is based on contract number 652744
            rffLoop.RFF = new RFF();
            rffLoop.RFF.REFERENCE_01 = new C506();
            rffLoop.RFF.REFERENCE_01.Referencequalifier_01 = "CT";
            rffLoop.RFF.REFERENCE_01.Referencenumber_02    = "652744";

            //  Repeating DTM
            rffLoop.DTM = new List <DTM>();

            //  Date of contract 25th of August 2002
            var rffDtm1 = new DTM();

            rffDtm1.DATETIMEPERIOD_01 = new C507();
            rffDtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            rffDtm1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020825";
            rffDtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            rffLoop.DTM.Add(rffDtm1);

            //  End RFF Group
            result.RFFLoop.Add(rffLoop);

            //  Repeating NAD Groups
            result.NADLoop = new List <Loop_NAD_ORDERS>();

            //  Begin NAD Group 1
            var nadLoop1 = new Loop_NAD_ORDERS();

            //  Buyer is identified by GLN 5412345000013
            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyqualifier_01             = "BY";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345000013";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF Groups
            nadLoop1.RFFLoop = new List <Loop_RFF_ORDERS>();

            //  Begin RFF Group
            var rffLoopNad = new Loop_RFF_ORDERS();

            //  Buyer’s VAT number is 87765432
            rffLoopNad.RFF = new RFF();
            rffLoopNad.RFF.REFERENCE_01 = new C506();
            rffLoopNad.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffLoopNad.RFF.REFERENCE_01.Referencenumber_02    = "87765432";

            //  End RFF Group
            nadLoop1.RFFLoop.Add(rffLoopNad);

            //  Repeating CTA Groups
            nadLoop1.CTALoop = new List <Loop_CTA_ORDERS>();

            //  Begin CTA Group
            var ctaLoop = new Loop_CTA_ORDERS();

            //  Order contact is PForget
            ctaLoop.CTA = new CTA();
            ctaLoop.CTA.Contactfunctioncoded_01        = "OC";
            ctaLoop.CTA.DEPARTMENTOREMPLOYEEDETAILS_02 = new C056();
            ctaLoop.CTA.DEPARTMENTOREMPLOYEEDETAILS_02.Departmentoremployee_02 = "P FORGET";

            //  Repeating COM
            ctaLoop.COM = new List <COM>();

            //  Telephone number of order contact
            var com = new COM();

            com.COMMUNICATIONCONTACT_01 = new C076();
            com.COMMUNICATIONCONTACT_01.Communicationnumber_01           = "0044715632478";
            com.COMMUNICATIONCONTACT_01.Communicationchannelqualifier_02 = "TE";
            ctaLoop.COM.Add(com);

            //  End CTA Group
            nadLoop1.CTALoop.Add(ctaLoop);

            //  End NAD Group 1
            result.NADLoop.Add(nadLoop1);

            //  Begin NAD Group 2
            var nadLoop2 = new Loop_NAD_ORDERS();

            //  Supplier is identified by GLN 4012345500004
            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyqualifier_01             = "SU";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "4012345500004";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF Groups
            nadLoop2.RFFLoop = new List <Loop_RFF_ORDERS>();

            //  Begin RFF Group
            var rffLoopNad2 = new Loop_RFF_ORDERS();

            //  Supplier’s VAT number is 56225432
            rffLoopNad2.RFF = new RFF();
            rffLoopNad2.RFF.REFERENCE_01 = new C506();
            rffLoopNad2.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffLoopNad2.RFF.REFERENCE_01.Referencenumber_02    = "56225432";

            //  End RFF Group
            nadLoop2.RFFLoop.Add(rffLoopNad2);

            //  End NAD Group 2
            result.NADLoop.Add(nadLoop2);

            //  Repeating CUX Groups
            result.CUXLoop = new List <Loop_CUX_ORDERS>();

            //  Begin CUX Group
            var cuxLoop = new Loop_CUX_ORDERS();

            //  Ordering currency is Pounds Sterling with the invoicing currency identified as Euros
            //  The exchange rate between them is 1 Pound Sterling equals 1.67 Euros
            cuxLoop.CUX = new CUX();
            cuxLoop.CUX.CURRENCYDETAILS_01 = new C504();
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencydetailsqualifier_01 = "2";
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencycoded_02            = "GBP";
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencyqualifier_03        = "9";
            cuxLoop.CUX.CURRENCYDETAILS_02 = new C504();
            cuxLoop.CUX.CURRENCYDETAILS_02.Currencydetailsqualifier_01 = "3";
            cuxLoop.CUX.CURRENCYDETAILS_02.Currencycoded_02            = "EUR";
            cuxLoop.CUX.CURRENCYDETAILS_02.Currencyqualifier_03        = "4";
            cuxLoop.CUX.Rateofexchange_03 = "1.67";

            //  Repeating DTM
            cuxLoop.DTM = new List <DTM>();

            //  Period on which rate of exchange date is based is the
            //  1st of August 2002 - 31st of August 2002
            var dtmCux = new DTM();

            dtmCux.DATETIMEPERIOD_01 = new C507();
            dtmCux.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "134";
            dtmCux.DATETIMEPERIOD_01.Datetimeperiod_02                = "2002080120020831";
            dtmCux.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "718";
            cuxLoop.DTM.Add(dtmCux);

            //  End CUX Group
            result.CUXLoop.Add(cuxLoop);

            //  Repeating TDT Groups
            result.TDTLoop = new List <Loop_TDT_ORDERS>();

            //  Begin TDT Group
            var tdtLoop = new Loop_TDT_ORDERS();

            //  Order requests that the main carriage transport used to deliver the goods is a truck
            tdtLoop.TDT = new TDT();
            tdtLoop.TDT.Transportstagequalifier_01 = "20";
            tdtLoop.TDT.MODEOFTRANSPORT_03         = new C220();
            tdtLoop.TDT.MODEOFTRANSPORT_03.Modeoftransportcoded_01 = "30";
            tdtLoop.TDT.TRANSPORTMEANS_04 = new C228();
            tdtLoop.TDT.TRANSPORTMEANS_04.Typeofmeansoftransportidentification_01 = "31";

            //  End TDT Group
            result.TDTLoop.Add(tdtLoop);

            //  Repeating TOD Groups
            result.TODLoop = new List <Loop_TOD_ORDERS>();

            //  Begin TOD Group
            var todLoop = new Loop_TOD_ORDERS();

            //  Terms of delivery are to be Cost, Insurance and Freight
            todLoop.TOD = new TOD();
            todLoop.TOD.Termsofdeliveryortransportfunctioncoded_01 = "3";
            todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03 = new C100();
            todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03.Termsofdeliveryortransportcoded_01 = "CIF";
            todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03.Codelistqualifier_02 = "23";
            todLoop.TOD.TERMSOFDELIVERYORTRANSPORT_03.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating LOC Group
            todLoop.LOC = new List <LOC>();

            //  The named port is Brussels
            var loc = new LOC();

            loc.Placelocationqualifier_01 = "1";
            loc.LOCATIONIDENTIFICATION_02 = new C517();
            loc.LOCATIONIDENTIFICATION_02.Placelocationidentification_01 = "BE-BRU";
            todLoop.LOC.Add(loc);

            //  End TOD Group
            result.TODLoop.Add(todLoop);

            //  Repeating LIN Groups
            result.LINLoop = new List <Loop_LIN_ORDERS>();

            //  Begin LIN Group 1
            var linLoop1 = new Loop_LIN_ORDERS();

            //  First product order is identified by GTIN 4000862141404
            linLoop1.LIN = new LIN();
            linLoop1.LIN.Lineitemnumber_01           = "1";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "4000862141404";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRS";

            //  Repeating PIA
            linLoop1.PIA = new List <PIA>();

            //  In addition the buyer’s part number ABC1234 is provided
            var pia = new PIA();

            pia.Productidfunctionqualifier_01                      = "1";
            pia.ITEMNUMBERIDENTIFICATION_02                        = new C212();
            pia.ITEMNUMBERIDENTIFICATION_02.Itemnumber_01          = "ABC1234";
            pia.ITEMNUMBERIDENTIFICATION_02.Itemnumbertypecoded_02 = "IN";
            linLoop1.PIA.Add(pia);

            //  Repeating IMD
            linLoop1.IMD = new List <IMD>();

            //  The ordered item is a traded unit
            var imd = new IMD();

            imd.Itemdescriptiontypecoded_01 = "C";
            imd.ITEMDESCRIPTION_03          = new C273();
            imd.ITEMDESCRIPTION_03.Itemdescriptionidentification_01  = "TU";
            imd.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "9";
            linLoop1.IMD.Add(imd);

            //  Repeating QTY
            linLoop1.QTY = new List <QTY>();

            //  Ordered quantity is 48 units
            var qty = new QTY();

            qty.QUANTITYDETAILS_01 = new C186();
            qty.QUANTITYDETAILS_01.Quantityqualifier_01 = "21";
            qty.QUANTITYDETAILS_01.Quantity_02          = "48";
            linLoop1.QTY.Add(qty);

            //  Repeating MOA
            linLoop1.MOA = new List <MOA>();

            //  Value of order line is 699.84 Pounds Sterling
            var moa = new MOA();

            moa.MONETARYAMOUNT_01 = new C516();
            moa.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203";
            moa.MONETARYAMOUNT_01.Monetaryamount_02 = "699.84";
            linLoop1.MOA.Add(moa);

            //  Repeating PRI Groups
            linLoop1.PRILoop = new List <Loop_PRI_ORDERS>();

            //  Begin PRI Group
            var priLoop = new Loop_PRI_ORDERS();

            //  Fixed net calculation price is 14.58 Pounds Sterling
            priLoop.PRI = new PRI();
            priLoop.PRI.PRICEINFORMATION_01 = new C509();
            priLoop.PRI.PRICEINFORMATION_01.Pricequalifier_01       = "AAA";
            priLoop.PRI.PRICEINFORMATION_01.Price_02                = "14.58";
            priLoop.PRI.PRICEINFORMATION_01.Pricetypecoded_03       = "CT";
            priLoop.PRI.PRICEINFORMATION_01.Pricetypequalifier_04   = "AAE";
            priLoop.PRI.PRICEINFORMATION_01.Unitpricebasis_05       = "1";
            priLoop.PRI.PRICEINFORMATION_01.Measureunitqualifier_06 = "KGM";

            //  End PRI Group
            linLoop1.PRILoop.Add(priLoop);

            //  Repeating RFF Groups
            linLoop1.RFFLoop = new List <Loop_RFF_ORDERS>();

            //  Begin RFF Group
            var rffLoopLin = new Loop_RFF_ORDERS();

            //  Price is taken from the price list AUG93RNG04
            rffLoopLin.RFF = new RFF();
            rffLoopLin.RFF.REFERENCE_01 = new C506();
            rffLoopLin.RFF.REFERENCE_01.Referencequalifier_01 = "PL";
            rffLoopLin.RFF.REFERENCE_01.Referencenumber_02    = "AUG93RNG04";

            //  Repeating DTM
            rffLoopLin.DTM = new List <DTM>();

            //  Price list date 1st of August 2002
            var dtmRff = new DTM();

            dtmRff.DATETIMEPERIOD_01 = new C507();
            dtmRff.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            dtmRff.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020801";
            dtmRff.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            rffLoopLin.DTM.Add(dtmRff);

            //  End RFF Group
            linLoop1.RFFLoop.Add(rffLoopLin);

            //  Repeating PAC Groups
            linLoop1.PACLoop = new List <Loop_PAC_ORDERS_2>();

            //  Begin PAC Group
            var pacLoop = new Loop_PAC_ORDERS_2();

            //  Two packages (cases) barcoded with ITF14
            pacLoop.PAC = new PAC();
            pacLoop.PAC.Numberofpackages_01 = "2";
            pacLoop.PAC.PACKAGINGDETAILS_02 = new C531();
            pacLoop.PAC.PACKAGINGDETAILS_02.Packagingrelatedinformationcoded_02 = "51";
            pacLoop.PAC.PACKAGETYPE_03 = new C202();
            pacLoop.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CS";

            //  Repeating PCI Groups
            pacLoop.PCILoop = new List <Loop_PCI_ORDERS>();

            //  Begin PCI Group
            var pciLoop = new Loop_PCI_ORDERS();

            //  The expiry date of the product is to be marked on it's packaging
            pciLoop.PCI = new PCI();
            pciLoop.PCI.Markinginstructionscoded_01 = "14";

            //  End PCI Group
            pacLoop.PCILoop.Add(pciLoop);

            //  End PAC Group
            linLoop1.PACLoop.Add(pacLoop);

            //  Repeating LOC Groups
            linLoop1.LOCLoop = new List <Loop_LOC_ORDERS_2>();

            //  Begin LOC Group 1
            var locLoop1 = new Loop_LOC_ORDERS_2();

            //  The second place to which the product is to be delivered is identified by GLN 3312345502000
            locLoop1.LOC = new LOC();
            locLoop1.LOC.Placelocationqualifier_01 = "7";
            locLoop1.LOC.LOCATIONIDENTIFICATION_02 = new C517();
            locLoop1.LOC.LOCATIONIDENTIFICATION_02.Placelocationidentification_01    = "3312345502000";
            locLoop1.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycoded_03 = "9";

            //  The quantity to be delivered at this location is 24
            locLoop1.QTY = new QTY();
            locLoop1.QTY.QUANTITYDETAILS_01 = new C186();
            locLoop1.QTY.QUANTITYDETAILS_01.Quantityqualifier_01 = "11";
            locLoop1.QTY.QUANTITYDETAILS_01.Quantity_02          = "24";

            //  Repeating DTM
            locLoop1.DTM = new List <DTM>();

            //  The quantity should be delivered on the 15th of September 2002
            var dtmLoc = new DTM();

            dtmLoc.DATETIMEPERIOD_01 = new C507();
            dtmLoc.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "2";
            dtmLoc.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020915";
            dtmLoc.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            locLoop1.DTM.Add(dtmLoc);

            //  End LOC Group 1
            linLoop1.LOCLoop.Add(locLoop1);

            //  Begin LOC Group 2
            var locLoop2 = new Loop_LOC_ORDERS_2();

            //  The first place to which the product is to be delivered is identified by GLN 3312345501003
            locLoop2.LOC = new LOC();
            locLoop2.LOC.Placelocationqualifier_01 = "7";
            locLoop2.LOC.LOCATIONIDENTIFICATION_02 = new C517();
            locLoop2.LOC.LOCATIONIDENTIFICATION_02.Placelocationidentification_01    = "3312345501003";
            locLoop2.LOC.LOCATIONIDENTIFICATION_02.Codelistresponsibleagencycoded_03 = "9";

            //  The quantity to be delivered at this location is 24
            locLoop2.QTY = new QTY();
            locLoop2.QTY.QUANTITYDETAILS_01 = new C186();
            locLoop2.QTY.QUANTITYDETAILS_01.Quantityqualifier_01 = "11";
            locLoop2.QTY.QUANTITYDETAILS_01.Quantity_02          = "24";

            //  Repeating DTM
            locLoop2.DTM = new List <DTM>();

            //  The quantity should be delivered on the 13th of September 2002
            var dtmLoc2 = new DTM();

            dtmLoc2.DATETIMEPERIOD_01 = new C507();
            dtmLoc2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "2";
            dtmLoc2.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020913";
            dtmLoc2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            locLoop2.DTM.Add(dtmLoc2);

            //  End LOC Group 2
            linLoop1.LOCLoop.Add(locLoop2);

            //  Repeating TAX Groups
            linLoop1.TAXLoop = new List <Loop_TAX_ORDERS>();

            //  Begin TAX Group
            var taxLoop = new Loop_TAX_ORDERS();

            //  The product is subject to the standard VAT rate of 17.5%
            taxLoop.TAX = new TAX();
            taxLoop.TAX.Dutytaxfeefunctionqualifier_01 = "7";
            taxLoop.TAX.DUTYTAXFEETYPE_02 = new C241();
            taxLoop.TAX.DUTYTAXFEETYPE_02.Dutytaxfeetypecoded_01 = "VAT";
            taxLoop.TAX.DUTYTAXFEEDETAIL_05 = new C243();
            taxLoop.TAX.DUTYTAXFEEDETAIL_05.Dutytaxfeerate_04 = "17.5";
            taxLoop.TAX.Dutytaxfeecategorycoded_06            = "S";

            //  End TAX Group
            linLoop1.TAXLoop.Add(taxLoop);

            //  End LIN Group 1
            result.LINLoop.Add(linLoop1);

            //  Message detail/summary separator
            result.UNS = new UNS();
            result.UNS.Sectionidentification_01 = "S";

            //  Repeating CNT
            result.CNT = new List <CNT>();

            //  Count of the number of LIN segments in the message
            var cnt = new CNT();

            cnt.CONTROL_01 = new C270();
            cnt.CONTROL_01.Controlqualifier_01 = "2";
            cnt.CONTROL_01.Controlvalue_02     = "1";
            result.CNT.Add(cnt);

            return(result);
        }
Exemplo n.º 8
0
        private static TSORDERS Import(string[] lines)
        {
            var result = new TSORDERS();

            if (lines.Length < 2)
            {
                throw new Exception("Insufficient number of lines");
            }

            //  line[0] is the header
            var firstLine = lines[1];

            //  UNH
            result.UNH = new Core.Model.Edi.Edifact.UNH();
            result.UNH.MessageReferenceNumber_01                      = "000000101";
            result.UNH.MessageIdentifier_02                           = new Core.Model.Edi.Edifact.S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "ORDERS";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "96A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            var firstLineItems = firstLine.Split(new[] { ',' });

            if (firstLineItems.Count() < 13)
            {
                throw new Exception("Insufficient number of columns");
            }

            //  BGM
            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "220";
            result.BGM.Documentmessagenumber_02 = firstLineItems[5];
            result.BGM.Messagefunctioncoded_03  = "9";

            //  Repeating DTM
            result.DTM = new List <DTM>();

            //  DTM
            var dtm = new DTM();

            dtm.DATETIMEPERIOD_01 = new C507();
            dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "137";
            dtm.DATETIMEPERIOD_01.Datetimeperiod_02                = firstLineItems[6];
            dtm.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm);

            //  Repeating NAD Loops
            result.NADLoop = new List <Loop_NAD_ORDERS>();

            //  Begin NAD Loop
            var nadLoop = new Loop_NAD_ORDERS();

            //  NAD
            nadLoop.NAD = new NAD();
            nadLoop.NAD.Partyqualifier_01             = "BY";
            nadLoop.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = firstLineItems[8];
            nadLoop.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";
            nadLoop.NAD.PARTYNAME_04 = new C080();
            nadLoop.NAD.PARTYNAME_04.Partyname_01 = firstLineItems[7];
            nadLoop.NAD.STREET_05 = new C059();
            nadLoop.NAD.STREET_05.Streetandnumberpobox_01 = firstLineItems[9];
            nadLoop.NAD.Cityname_06 = firstLineItems[10];
            nadLoop.NAD.Countrysubentityidentification_07 = firstLineItems[11];
            nadLoop.NAD.Postcodeidentification_08         = firstLineItems[12];

            //  End NAD Loop
            result.NADLoop.Add(nadLoop);

            //  Repeating PO1 Loops
            result.LINLoop = new List <Loop_LIN_ORDERS>();

            foreach (var line in lines.Skip(1))
            {
                var lineItems = line.Split(new[] { ',' });
                if (lineItems.Count() < 13)
                {
                    throw new Exception("Insufficient number of columns");
                }

                //  Begin LIN Loop
                var linLoop = new Loop_LIN_ORDERS();

                //  LIN
                linLoop.LIN = new LIN();
                linLoop.LIN.Lineitemnumber_01           = lineItems[0];
                linLoop.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
                linLoop.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = lineItems[1];
                linLoop.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRS";

                //  Repeating QTY
                linLoop.QTY = new List <QTY>();

                //  QTY
                var qty = new QTY();
                qty.QUANTITYDETAILS_01 = new C186();
                qty.QUANTITYDETAILS_01.Quantityqualifier_01    = "21";
                qty.QUANTITYDETAILS_01.Quantity_02             = lineItems[2];
                qty.QUANTITYDETAILS_01.Measureunitqualifier_03 = lineItems[4];
                linLoop.QTY.Add(qty);

                //  Repeating PRI Loops
                linLoop.PRILoop = new List <Loop_PRI_ORDERS>();

                //  Begin PRI Loop
                var priLoop = new Loop_PRI_ORDERS();

                //  PRI
                priLoop.PRI = new PRI();
                priLoop.PRI.PRICEINFORMATION_01 = new C509();
                priLoop.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "AAA";
                priLoop.PRI.PRICEINFORMATION_01.Price_02          = lineItems[3];

                //  End PRI Loop
                linLoop.PRILoop.Add(priLoop);

                //  End LIN Loop
                result.LINLoop.Add(linLoop);
            }

            result.UNS = new UNS();
            result.UNS.Sectionidentification_01 = "S";

            return(result);
        }
Exemplo n.º 9
0
        public void Graph(System.Xml.XmlWriter s, object o, DatatypeFormatterGraphResult result)
        {
            ANYFormatter baseFormatter = new ANYFormatter();

            baseFormatter.Graph(s, o, result);

            // Since this is a generic type, we'll need to get the values we're interested in
            // for the formatting operation
            Type   oType       = o.GetType();
            object numerator   = oType.GetProperty("Numerator").GetValue(o, null),
                   denominator = oType.GetProperty("Denominator").GetValue(o, null);

            // Check for the QTY members
            QTY <Nullable <Double> > qtyPortion = o as QTY <Nullable <Double> >;

            // Check for non-representable properties
            if (qtyPortion.Expression != null)
            {
                result.AddResultDetail(new UnsupportedDatatypeR1PropertyResultDetail(ResultDetailType.Warning, "Expression", "RTO", s.ToString()));
            }
            if (qtyPortion.OriginalText != null)
            {
                result.AddResultDetail(new UnsupportedDatatypeR1PropertyResultDetail(ResultDetailType.Warning, "OriginalText", "RTO", s.ToString()));
            }
            if (qtyPortion.Uncertainty != null)
            {
                result.AddResultDetail(new UnsupportedDatatypeR1PropertyResultDetail(ResultDetailType.Warning, "Uncertainty", "RTO", s.ToString()));
            }
            if (qtyPortion.UncertaintyType != null)
            {
                result.AddResultDetail(new UnsupportedDatatypeR1PropertyResultDetail(ResultDetailType.Warning, "UncertaintyType", "RTO", s.ToString()));
            }
            if (qtyPortion.UncertainRange != null)
            {
                result.AddResultDetail(new UnsupportedDatatypeR1PropertyResultDetail(ResultDetailType.Warning, "UncertainRange", "RTO", s.ToString()));
            }
            if (qtyPortion.Value != null)
            {
                result.AddResultDetail(new UnsupportedDatatypeR1PropertyResultDetail(ResultDetailType.Warning, "Value", "RTO", s.ToString()));
            }


            IXmlStructureFormatter serFormatter = Host;

            // Serialize the data-type
            if (numerator != null)
            {
                s.WriteStartElement("numerator", "urn:hl7-org:v3");

                // Write the XSI type
                string xsiTypeName = Util.CreateXSITypeName(numerator.GetType());

                // Write the type
                if (this.Host.Host == null)
                {
                    s.WriteAttributeString("type", DatatypeFormatter.NS_XSI, xsiTypeName.ToString());
                }
                else
                {
                    s.WriteAttributeString("xsi", "type", DatatypeFormatter.NS_XSI, xsiTypeName.ToString());
                }

                var hostResult = serFormatter.Graph(s, (IGraphable)numerator);
                result.Code = hostResult.Code;
                result.AddResultDetail(hostResult.Details);
                s.WriteEndElement();
            }
            if (denominator != null)
            {
                s.WriteStartElement("denominator", "urn:hl7-org:v3");

                // Write the XSI type
                string xsiTypeName = Util.CreateXSITypeName(denominator.GetType());

                // Write the type
                if (this.Host.Host == null)
                {
                    s.WriteAttributeString("type", DatatypeFormatter.NS_XSI, xsiTypeName.ToString());
                }
                else
                {
                    s.WriteAttributeString("xsi", "type", DatatypeFormatter.NS_XSI, xsiTypeName.ToString());
                }

                var hostResult = serFormatter.Graph(s, (IGraphable)denominator);
                result.Code = hostResult.Code;
                result.AddResultDetail(hostResult.Details);
                s.WriteEndElement();
            }

            // Append details
            //details.AddRange(serFormatter.Details);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Build despatch advice.
        /// Original from https://www.gs1.org/sites/default/files/docs/eancom/s3/desadv.pdf
        /// </summary>
        static TSDESADV BuildDespatchAdvice(string controlNumber)
        {
            var result = new TSDESADV();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01                      = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02                           = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "DESADV";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "96A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            //  Despatch advice number DES587441
            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "351";
            result.BGM.Documentmessagenumber_02 = "DES587441";
            result.BGM.Messagefunctioncoded_03  = "9";

            //  Repeating DTM
            result.DTM = new List <DTM>();

            //  Message date 1st April 2002
            var dtm1 = new DTM();

            dtm1.DATETIMEPERIOD_01 = new C507();
            dtm1.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "137";
            dtm1.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020401";
            dtm1.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm1);

            //  Despatch date 3rd April 2002
            var dtm2 = new DTM();

            dtm2.DATETIMEPERIOD_01 = new C507();
            dtm2.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "11";
            dtm2.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020403";
            dtm2.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm2);

            //  Due date to arrive on or after the 3rd of April
            var dtm3 = new DTM();

            dtm3.DATETIMEPERIOD_01 = new C507();
            dtm3.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "358";
            dtm3.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020403";
            dtm3.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm3);

            //  Repeating RFF Groups
            result.RFFLoop = new List <Loop_RFF_DESADV>();

            //  Begin RFF Group
            var rffLoop1 = new Loop_RFF_DESADV();

            //  Consignment is related to order number 12332
            rffLoop1.RFF = new RFF();
            rffLoop1.RFF.REFERENCE_01 = new C506();
            rffLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "ON";
            rffLoop1.RFF.REFERENCE_01.Referencenumber_02    = "12332";

            //  Date of order 25th of March 2002
            rffLoop1.DTM = new DTM();
            rffLoop1.DTM.DATETIMEPERIOD_01 = new C507();
            rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "171";
            rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiod_02                = "20020325";
            rffLoop1.DTM.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";

            //  End RFF Group
            result.RFFLoop.Add(rffLoop1);

            //  Repeating NAD Groups
            result.NADLoop = new List <Loop_NAD_DESADV>();

            //  Begin NAD Group 1
            var nadLoop1 = new Loop_NAD_DESADV();

            //  Supplier identified by GLN 5411234512309
            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyqualifier_01             = "SU";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5411234512309";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF Groups
            nadLoop1.RFFLoop = new List <Loop_RFF_DESADV>();

            //  Begin RFF Group 1
            var rffNadLoop1 = new Loop_RFF_DESADV();

            //  Supplier's VAT number 6558774
            rffNadLoop1.RFF = new RFF();
            rffNadLoop1.RFF.REFERENCE_01 = new C506();
            rffNadLoop1.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop1.RFF.REFERENCE_01.Referencenumber_02    = "6558774";

            //  End RFF Group 1
            nadLoop1.RFFLoop.Add(rffNadLoop1);

            //  End NAD Group 1
            result.NADLoop.Add(nadLoop1);

            //  Begin NAD Group 2
            var nadLoop2 = new Loop_NAD_DESADV();

            //  Buyer identified by GLN 5412345000013
            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyqualifier_01             = "BY";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345000013";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF Groups
            nadLoop2.RFFLoop = new List <Loop_RFF_DESADV>();

            //  Begin RFF Group 1
            var rffNadLoop2 = new Loop_RFF_DESADV();

            //  Buyer's VAT number 7002474
            rffNadLoop2.RFF = new RFF();
            rffNadLoop2.RFF.REFERENCE_01 = new C506();
            rffNadLoop2.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop2.RFF.REFERENCE_01.Referencenumber_02    = "7002474";

            //  End RFF Group 1
            nadLoop2.RFFLoop.Add(rffNadLoop2);

            //  End NAD Group 2
            result.NADLoop.Add(nadLoop2);

            //  Begin NAD Group 3
            var nadLoop3 = new Loop_NAD_DESADV();

            //  Delivery party identified by GLN 5412345123453
            nadLoop3.NAD = new NAD();
            nadLoop3.NAD.Partyqualifier_01             = "DP";
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345123453";
            nadLoop3.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating RFF Groups
            nadLoop3.RFFLoop = new List <Loop_RFF_DESADV>();

            //  Begin RFF Group 1
            var rffNadLoop3 = new Loop_RFF_DESADV();

            //  Delivery party's VAT number 800800
            rffNadLoop3.RFF = new RFF();
            rffNadLoop3.RFF.REFERENCE_01 = new C506();
            rffNadLoop3.RFF.REFERENCE_01.Referencequalifier_01 = "VA";
            rffNadLoop3.RFF.REFERENCE_01.Referencenumber_02    = "800800";

            //  End RFF Group 1
            nadLoop3.RFFLoop.Add(rffNadLoop3);

            //  End NAD Group 3
            result.NADLoop.Add(nadLoop3);

            //  Begin NAD Group 4
            var nadLoop4 = new Loop_NAD_DESADV();

            //  Shipper identified by GLN 5412345000105
            nadLoop4.NAD = new NAD();
            nadLoop4.NAD.Partyqualifier_01             = "SH";
            nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "5412345000105";
            nadLoop4.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "9";

            //  End NAD Group 4
            result.NADLoop.Add(nadLoop4);

            //  Repeating CPS Groups
            result.CPSLoop = new List <Loop_CPS_DESADV>();

            //  Begin CPS Group 1
            var cpsLoop1 = new Loop_CPS_DESADV();

            //  First level description of consignment packing
            cpsLoop1.CPS = new CPS();
            cpsLoop1.CPS.Hierarchicalidnumber_01 = "1";

            //  Repeating PAC Groups
            cpsLoop1.PACLoop = new List <Loop_PAC_DESADV>();

            //  Begin PAC Group 1
            var pacLoop1 = new Loop_PAC_DESADV();

            //  Two ISO 1 pallets
            pacLoop1.PAC = new PAC();
            pacLoop1.PAC.Numberofpackages_01 = "2";
            pacLoop1.PAC.PACKAGETYPE_03      = new C202();
            pacLoop1.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01   = "201";
            pacLoop1.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9";

            //  End PAC Group 1
            cpsLoop1.PACLoop.Add(pacLoop1);

            //  End CPS Group 1
            result.CPSLoop.Add(cpsLoop1);

            //  Begin CPS Group 2
            var cpsLoop2 = new Loop_CPS_DESADV();

            //  Second level description of the first pallet
            cpsLoop2.CPS = new CPS();
            cpsLoop2.CPS.Hierarchicalidnumber_01 = "2";
            cpsLoop2.CPS.Hierarchicalparentid_02 = "1";

            //  Repeating PAC Groups
            cpsLoop2.PACLoop = new List <Loop_PAC_DESADV>();

            //  Begin PAC Group 1
            var pacLoop2 = new Loop_PAC_DESADV();

            //  One ISO 1 pallet
            pacLoop2.PAC = new PAC();
            pacLoop2.PAC.Numberofpackages_01 = "1";
            pacLoop2.PAC.PACKAGETYPE_03      = new C202();
            pacLoop2.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01   = "201";
            pacLoop2.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating MEA
            pacLoop2.MEA = new List <MEA>();

            //  Pallet weight 263.2 Kilos including goods packages
            var mea1 = new MEA();

            mea1.Measurementapplicationqualifier_01 = "PD";
            mea1.MEASUREMENTDETAILS_02 = new C502();
            mea1.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "AAB";
            mea1.VALUERANGE_03 = new C174();
            mea1.VALUERANGE_03.Measureunitqualifier_01 = "KGM";
            mea1.VALUERANGE_03.Measurementvalue_02     = "263.2";
            pacLoop2.MEA.Add(mea1);

            //  Pallet width 800 millimeters
            var mea2 = new MEA();

            mea2.Measurementapplicationqualifier_01 = "PD";
            mea2.MEASUREMENTDETAILS_02 = new C502();
            mea2.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "WD";
            mea2.VALUERANGE_03 = new C174();
            mea2.VALUERANGE_03.Measureunitqualifier_01 = "MMT";
            mea2.VALUERANGE_03.Measurementvalue_02     = "800";
            pacLoop2.MEA.Add(mea2);

            //  Pallet length 1200 millimeters
            var mea3 = new MEA();

            mea3.Measurementapplicationqualifier_01 = "PD";
            mea3.MEASUREMENTDETAILS_02 = new C502();
            mea3.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "LN";
            mea3.VALUERANGE_03 = new C174();
            mea3.VALUERANGE_03.Measureunitqualifier_01 = "MMT";
            mea3.VALUERANGE_03.Measurementvalue_02     = "1200";
            pacLoop2.MEA.Add(mea3);

            //  Repeating PCI Groups
            pacLoop2.PCILoop = new List <Loop_PCI_DESADV>();

            //  Begin PCI Group
            var pciLoop1 = new Loop_PCI_DESADV();

            //  Pallet marked with SSCC
            pciLoop1.PCI = new PCI();
            pciLoop1.PCI.Markinginstructionscoded_01 = "33E";

            //  Repeating GIN Groups
            pciLoop1.GINLoop = new List <Loop_GIN_DESADV>();

            //  Begin GIN Group
            var ginLoop1 = new Loop_GIN_DESADV();

            //  Serial Shipping Container Code 354107380000001051
            ginLoop1.GIN = new GIN();
            ginLoop1.GIN.Identitynumberqualifier_01 = "BJ";
            ginLoop1.GIN.IDENTITYNUMBERRANGE_02     = new C208();
            ginLoop1.GIN.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354107380000001051";

            //  End GIN Group
            pciLoop1.GINLoop.Add(ginLoop1);

            //  End PCI Group
            pacLoop2.PCILoop.Add(pciLoop1);

            //  End PAC Group 1
            cpsLoop2.PACLoop.Add(pacLoop2);

            //  Begin PAC Group 2
            var pacLoop3 = new Loop_PAC_DESADV();

            //  Twenty cartons
            pacLoop3.PAC = new PAC();
            pacLoop3.PAC.Numberofpackages_01 = "20";
            pacLoop3.PAC.PACKAGETYPE_03      = new C202();
            pacLoop3.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT";

            //  End PAC Group 2
            cpsLoop2.PACLoop.Add(pacLoop3);

            //  Repeating LIN Groups
            cpsLoop2.LINLoop = new List <Loop_LIN_DESADV>();

            //  Begin LIN Group
            var linLoop1 = new Loop_LIN_DESADV();

            //  Product contained in this package is identified by GTIN 5410738000152
            linLoop1.LIN = new LIN();
            linLoop1.LIN.Lineitemnumber_01           = "1";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738000152";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            linLoop1.QTY = new List <QTY>();

            //  Despatch quantity 20
            var qty1 = new QTY();

            qty1.QUANTITYDETAILS_01 = new C186();
            qty1.QUANTITYDETAILS_01.Quantityqualifier_01 = "12";
            qty1.QUANTITYDETAILS_01.Quantity_02          = "20";
            linLoop1.QTY.Add(qty1);

            //  End LIN Group
            cpsLoop2.LINLoop.Add(linLoop1);

            //  End CPS Group 2
            result.CPSLoop.Add(cpsLoop2);

            //  Begin CPS Group 3
            var cpsLoop3 = new Loop_CPS_DESADV();

            //  Second level description of the second pallet
            cpsLoop3.CPS = new CPS();
            cpsLoop3.CPS.Hierarchicalidnumber_01 = "3";
            cpsLoop3.CPS.Hierarchicalparentid_02 = "1";

            //  Repeating PAC Groups
            cpsLoop3.PACLoop = new List <Loop_PAC_DESADV>();

            //  Begin PAC Group 1
            var pacLoop4 = new Loop_PAC_DESADV();

            //  One ISO 1 pallet
            pacLoop4.PAC = new PAC();
            pacLoop4.PAC.Numberofpackages_01 = "1";
            pacLoop4.PAC.PACKAGETYPE_03      = new C202();
            pacLoop4.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01   = "201";
            pacLoop4.PAC.PACKAGETYPE_03.Codelistresponsibleagencycoded_03 = "9";

            //  Repeating MEA
            pacLoop4.MEA = new List <MEA>();

            //  Pallet weight 305.1 Kilos
            var mea4 = new MEA();

            mea4.Measurementapplicationqualifier_01 = "PD";
            mea4.MEASUREMENTDETAILS_02 = new C502();
            mea4.MEASUREMENTDETAILS_02.Measurementdimensioncoded_01 = "AAB";
            mea4.VALUERANGE_03 = new C174();
            mea4.VALUERANGE_03.Measureunitqualifier_01 = "KGM";
            mea4.VALUERANGE_03.Measurementvalue_02     = "305.1";
            pacLoop4.MEA.Add(mea4);

            //  Repeating PCI Groups
            pacLoop4.PCILoop = new List <Loop_PCI_DESADV>();

            //  Begin PCI Group
            var pciLoop2 = new Loop_PCI_DESADV();

            //  Pallet marked with SSCC
            pciLoop2.PCI = new PCI();
            pciLoop2.PCI.Markinginstructionscoded_01 = "33E";

            //  Repeating GIN Groups
            pciLoop2.GINLoop = new List <Loop_GIN_DESADV>();

            //  Begin GIN Group
            var ginLoop2 = new Loop_GIN_DESADV();

            //  Serial Shipping Container Code 354107380000001068
            ginLoop2.GIN = new GIN();
            ginLoop2.GIN.Identitynumberqualifier_01 = "BJ";
            ginLoop2.GIN.IDENTITYNUMBERRANGE_02     = new C208();
            ginLoop2.GIN.IDENTITYNUMBERRANGE_02.Identitynumber_01 = "354107380000001068";

            //  End GIN Group
            pciLoop2.GINLoop.Add(ginLoop2);

            //  End PCI Group
            pacLoop4.PCILoop.Add(pciLoop2);

            //  End PAC Group 1
            cpsLoop3.PACLoop.Add(pacLoop4);

            //  Begin PAC Group 2
            var pacLoop5 = new Loop_PAC_DESADV();

            //  Twenty cartons
            pacLoop5.PAC = new PAC();
            pacLoop5.PAC.Numberofpackages_01 = "20";
            pacLoop5.PAC.PACKAGETYPE_03      = new C202();
            pacLoop5.PAC.PACKAGETYPE_03.Typeofpackagesidentification_01 = "CT";

            //  End PAC Group 2
            cpsLoop3.PACLoop.Add(pacLoop5);

            //  Repeating LIN Groups
            cpsLoop3.LINLoop = new List <Loop_LIN_DESADV>();

            //  Begin LIN Group 1
            var linLoop2 = new Loop_LIN_DESADV();

            //  First product contained in this package is identified by GTIN 5410738000169
            linLoop2.LIN = new LIN();
            linLoop2.LIN.Lineitemnumber_01           = "2";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738000169";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            linLoop2.QTY = new List <QTY>();

            // Despatch quantity 5
            var qty2 = new QTY();

            qty2.QUANTITYDETAILS_01 = new C186();
            qty2.QUANTITYDETAILS_01.Quantityqualifier_01 = "12";
            qty2.QUANTITYDETAILS_01.Quantity_02          = "5";
            linLoop2.QTY.Add(qty2);

            //  End LIN Group 1
            cpsLoop3.LINLoop.Add(linLoop2);

            //  Begin LIN Group 2
            var linLoop3 = new Loop_LIN_DESADV();

            //  Second product contained in this package is identified by GTIN 5410738000176
            linLoop3.LIN = new LIN();
            linLoop3.LIN.Lineitemnumber_01           = "3";
            linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738000176";
            linLoop3.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            linLoop3.QTY = new List <QTY>();

            // Despatch quantity 3
            var qty3 = new QTY();

            qty3.QUANTITYDETAILS_01 = new C186();
            qty3.QUANTITYDETAILS_01.Quantityqualifier_01 = "12";
            qty3.QUANTITYDETAILS_01.Quantity_02          = "3";
            linLoop3.QTY.Add(qty3);

            //  End LIN Group 2
            cpsLoop3.LINLoop.Add(linLoop3);

            //  Begin LIN Group 3
            var linLoop4 = new Loop_LIN_DESADV();

            //  Third product contained in this package is identified by GTIN 5410738000183
            linLoop4.LIN = new LIN();
            linLoop4.LIN.Lineitemnumber_01           = "4";
            linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "5410738000183";
            linLoop4.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "SRV";

            linLoop4.QTY = new List <QTY>();

            // Despatch quantity 12
            var qty4 = new QTY();

            qty4.QUANTITYDETAILS_01 = new C186();
            qty4.QUANTITYDETAILS_01.Quantityqualifier_01 = "12";
            qty4.QUANTITYDETAILS_01.Quantity_02          = "12";
            linLoop4.QTY.Add(qty4);

            //  End LIN Group 3
            cpsLoop3.LINLoop.Add(linLoop4);

            //  End CPS Group 3
            result.CPSLoop.Add(cpsLoop3);

            //  Repeating CNT
            result.CNT = new List <CNT>();

            //  Total number of LIN segments in the message = 4
            var cnt = new CNT();

            cnt.CONTROL_01 = new C270();
            cnt.CONTROL_01.Controlqualifier_01 = "2";
            cnt.CONTROL_01.Controlvalue_02     = "4";
            result.CNT.Add(cnt);

            return(result);
        }
Exemplo n.º 11
0
        private Interchange CovertToInterChange(WebOrderHeaderModel webOrderHeader, List <WebOrderDetailModel> webOrderDetail)
        {
            Interchange interchange = new Interchange();

            interchange.RecipientId = webOrderHeader.SenderAddress;
            interchange.SenderId    = webOrderHeader.ReceiverAddress;

            Quote quote = new Quote();

            quote.MessageType             = "ORDERS";
            quote.ReleaseNumber           = "01B";
            quote.AssociationAssignedCode = "EAN010";
            quote.DocumentNumber          = webOrderHeader.OrderResponseNo;
            quote.ReleaseNumber           = "01B";
            quote.MessageFunction         = webOrderHeader.DetailsStatus.ToString();

            DTM responseDate = new DTM();
            DTM deliveryDate = new DTM();

            responseDate.ID       = 137;
            responseDate.DateTime = webOrderHeader.ResponseDate;
            responseDate.Code     = 102;

            deliveryDate.ID       = 2;
            deliveryDate.DateTime = webOrderHeader.DeliveryDate;
            deliveryDate.Code     = 102;

            quote.MessageDate    = responseDate;
            quote.DeliveryDate   = deliveryDate;
            quote.DocumentNumber = webOrderHeader.BuyerOrderNo;

            NAD buingAddress    = new NAD();
            NAD shippingAddress = new NAD();
            NAD supplierAddress = new NAD();

            buingAddress.PartyQualifier = "BY";
            buingAddress.PartyId        = webOrderHeader.BuyingAddress;

            shippingAddress.PartyQualifier = "ST";
            shippingAddress.PartyId        = webOrderHeader.ShippingAddress;

            supplierAddress.PartyQualifier = "SU";
            supplierAddress.PartyId        = webOrderHeader.SupplierAddress;

            quote.NAD = new List <NAD>();
            quote.NAD.Add(buingAddress);
            quote.NAD.Add(shippingAddress);
            quote.NAD.Add(supplierAddress);

            List <LineItem> lineList = new List <LineItem>();

            int index = 1;

            foreach (WebOrderDetailModel item in webOrderDetail)
            {
                LineItem lineItem = new LineItem();
                lineItem.GTIN           = item.GTINCode;
                lineItem.Code           = item.ItemStatus.ToString();
                lineItem.LineNumber     = index;
                lineItem.itemTypeIDCode = "SRV";

                Price priceItem = new Price();
                priceItem.Code   = "AAF";
                priceItem.Amount = Convert.ToDecimal(item.ItemPrice);

                QTY quantityItem = new QTY();
                quantityItem.Quantity     = Convert.ToInt32(item.BackOrderQty);
                quantityItem.QuantityType = "113";

                lineItem.Price = priceItem;
                lineItem.QTY   = quantityItem;

                index++;

                lineList.Add(lineItem);
            }

            quote.Lines = lineList;
            interchange.QuoteMessage = quote;

            return(interchange);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Sample invoice
        /// </summary>
        static TSINVOIC CreateInvoice(string controlNumber)
        {
            var result = new TSINVOIC();

            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01                      = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02                           = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01            = "INVOIC";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02   = "D";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03   = "00A";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "UN";

            result.BGM = new BGM();
            result.BGM.DOCUMENTMESSAGENAME_01 = new C002();
            result.BGM.DOCUMENTMESSAGENAME_01.Documentmessagenamecoded_01 = "380";
            result.BGM.Documentmessagenumber_02 = "342459";
            result.BGM.Messagefunctioncoded_03  = "9";

            result.DTM = new List <DTM>();
            var dtm = new DTM();

            dtm.DATETIMEPERIOD_01 = new C507();
            dtm.DATETIMEPERIOD_01.Datetimeperiodqualifier_01       = "3";
            dtm.DATETIMEPERIOD_01.Datetimeperiod_02                = "20060515";
            dtm.DATETIMEPERIOD_01.Datetimeperiodformatqualifier_03 = "102";
            result.DTM.Add(dtm);

            result.RFFLoop1 = new List <TSINVOIC_RFFLoop1>();
            var rffLoop = new TSINVOIC_RFFLoop1();

            rffLoop.RFF = new RFF();
            rffLoop.RFF.REFERENCE_01 = new C506();
            rffLoop.RFF.REFERENCE_01.Referencequalifier_01 = "ON";
            rffLoop.RFF.REFERENCE_01.Referencenumber_02    = "521052";
            result.RFFLoop1.Add(rffLoop);

            result.NADLoop1 = new List <TSINVOIC_NADLoop1>();

            var nadLoop1 = new TSINVOIC_NADLoop1();

            nadLoop1.NAD = new NAD();
            nadLoop1.NAD.Partyqualifier_01             = "BY";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01 = "792820524";
            nadLoop1.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistqualifier_02     = "16";
            nadLoop1.NAD.PARTYNAME_04 = new C080();
            nadLoop1.NAD.PARTYNAME_04.Partyname_01 = "SOME COMPANY";
            result.NADLoop1.Add(nadLoop1);

            var nadLoop2 = new TSINVOIC_NADLoop1();

            nadLoop2.NAD = new NAD();
            nadLoop2.NAD.Partyqualifier_01             = "SE";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02 = new C082();
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Partyididentification_01          = "005435656";
            nadLoop2.NAD.PARTYIDENTIFICATIONDETAILS_02.Codelistresponsibleagencycoded_03 = "16";
            nadLoop2.NAD.PARTYNAME_04 = new C080();
            nadLoop2.NAD.PARTYNAME_04.Partyname_01 = "SOME COMPANY 2";
            result.NADLoop1.Add(nadLoop2);

            result.CUXLoop1 = new List <TSINVOIC_CUXLoop1>();
            var cuxLoop = new TSINVOIC_CUXLoop1();

            cuxLoop.CUX = new CUX();
            cuxLoop.CUX.CURRENCYDETAILS_01 = new C504();
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencydetailsqualifier_01 = "1";
            cuxLoop.CUX.CURRENCYDETAILS_01.Currencycoded_02            = "USD";
            result.CUXLoop1.Add(cuxLoop);

            result.LINLoop1 = new List <TSINVOIC_LINLoop1>();

            var linLoop1 = new TSINVOIC_LINLoop1();

            linLoop1.LIN = new LIN();
            linLoop1.LIN.Lineitemnumber_01           = "1";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "157870";
            linLoop1.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "IN";
            result.LINLoop1.Add(linLoop1);

            linLoop1.IMD = new List <IMD>();
            var imd1 = new IMD();

            imd1.Itemdescriptiontypecoded_01 = "F";
            imd1.ITEMDESCRIPTION_03          = new C273();
            imd1.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "100";
            linLoop1.IMD.Add(imd1);

            linLoop1.QTY = new List <QTY>();
            var qty1 = new QTY();

            qty1.QUANTITYDETAILS_01 = new C186();
            qty1.QUANTITYDETAILS_01.Quantityqualifier_01    = "21";
            qty1.QUANTITYDETAILS_01.Quantity_02             = "2";
            qty1.QUANTITYDETAILS_01.Measureunitqualifier_03 = "EA";
            linLoop1.QTY.Add(qty1);

            linLoop1.ALI = new List <ALI>();
            var ali1 = new ALI();

            ali1.Countryoforigincoded_01 = "US";
            linLoop1.ALI.Add(ali1);

            linLoop1.MOALoop2 = new List <TSINVOIC_MOALoop2>();
            var moaLoop1 = new TSINVOIC_MOALoop2();

            moaLoop1.MOA = new MOA();
            moaLoop1.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop1.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203";
            moaLoop1.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "1202.58";
            linLoop1.MOALoop2.Add(moaLoop1);

            linLoop1.PRILoop1 = new List <TSINVOIC_PRILoop1>();
            var priLoop1 = new TSINVOIC_PRILoop1();

            priLoop1.PRI = new PRI();
            priLoop1.PRI.PRICEINFORMATION_01 = new C509();
            priLoop1.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "INV";
            priLoop1.PRI.PRICEINFORMATION_01.Price_02          = "1.179";
            linLoop1.PRILoop1.Add(priLoop1);

            var linLoop2 = new TSINVOIC_LINLoop1();

            linLoop2.LIN = new LIN();
            linLoop2.LIN.Lineitemnumber_01           = "2";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03 = new C212();
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumber_01          = "157871";
            linLoop2.LIN.ITEMNUMBERIDENTIFICATION_03.Itemnumbertypecoded_02 = "IN";
            result.LINLoop1.Add(linLoop2);

            linLoop2.IMD = new List <IMD>();
            var imd2 = new IMD();

            imd2.Itemdescriptiontypecoded_01 = "F";
            imd2.ITEMDESCRIPTION_03          = new C273();
            imd2.ITEMDESCRIPTION_03.Codelistresponsibleagencycoded_03 = "101";
            linLoop2.IMD.Add(imd2);

            linLoop2.QTY = new List <QTY>();
            var qty2 = new QTY();

            qty2.QUANTITYDETAILS_01 = new C186();
            qty2.QUANTITYDETAILS_01.Quantityqualifier_01    = "47";
            qty2.QUANTITYDETAILS_01.Quantity_02             = "29";
            qty2.QUANTITYDETAILS_01.Measureunitqualifier_03 = "EA";
            linLoop2.QTY.Add(qty2);

            linLoop2.ALI = new List <ALI>();
            var ali2 = new ALI();

            ali2.Countryoforigincoded_01 = "JP";
            linLoop2.ALI.Add(ali2);

            linLoop2.MOALoop2 = new List <TSINVOIC_MOALoop2>();
            var moaLoop2 = new TSINVOIC_MOALoop2();

            moaLoop2.MOA = new MOA();
            moaLoop2.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop2.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "203";
            moaLoop2.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "520";
            linLoop2.MOALoop2.Add(moaLoop2);

            linLoop2.PRILoop1 = new List <TSINVOIC_PRILoop1>();
            var priLoop2 = new TSINVOIC_PRILoop1();

            priLoop2.PRI = new PRI();
            priLoop2.PRI.PRICEINFORMATION_01 = new C509();
            priLoop2.PRI.PRICEINFORMATION_01.Pricequalifier_01 = "INV";
            priLoop2.PRI.PRICEINFORMATION_01.Price_02          = "20.3";
            linLoop2.PRILoop1.Add(priLoop2);

            result.UNS = new UNS();
            result.UNS.Sectionidentification_01 = "S";

            result.MOALoop4 = new List <TSINVOIC_MOALoop4>();

            var moaLoop3 = new TSINVOIC_MOALoop4();

            moaLoop3.MOA = new MOA();
            moaLoop3.MOA.MONETARYAMOUNT_01 = new C516();
            moaLoop3.MOA.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "39";
            moaLoop3.MOA.MONETARYAMOUNT_01.Monetaryamount_02 = "2137.58";
            result.MOALoop4.Add(moaLoop3);

            result.ALCLoop3 = new List <TSINVOIC_ALCLoop3>();
            var alcLoop = new TSINVOIC_ALCLoop3();

            alcLoop.ALC = new ALC();
            alcLoop.ALC.Allowanceorchargequalifier_01 = "C";
            alcLoop.ALC.ALLOWANCECHARGEINFORMATION_02 = new C552();
            alcLoop.ALC.ALLOWANCECHARGEINFORMATION_02.Allowanceorchargenumber_01 = "ABG";

            alcLoop.MOA = new List <MOA>();
            var moa = new MOA();

            moa.MONETARYAMOUNT_01 = new C516();
            moa.MONETARYAMOUNT_01.Monetaryamounttypequalifier_01 = "8";
            moa.MONETARYAMOUNT_01.Monetaryamount_02 = "634";
            alcLoop.MOA.Add(moa);

            result.ALCLoop3.Add(alcLoop);

            return(result);
        }
Exemplo n.º 13
0
        /// <summary>
        /// 加载栈料列表+低料预警列表
        /// </summary>
        private void LoadStackMaterialList(string programName)
        {
            if (programName == string.Empty)
            {
                return;
            }

            CDBConnection.SQL = "SELECT A.Code PROGRAM_NAME, B.ID,B.Code, B.[Address], B.CompoentNO, B.QTY-B.UsedQTY AS QTY " +
                                "FROM TB_QMS_ProgramList A, TB_QMS_ProgramList B " +
                                "WHERE A.Code ='" + programName + "' and A.ID=B.ParentID";
            DataTable dtStack = CDBConnection._GetGrdInfo(CDBConnection.SQL);

            // 加载栈位物料列表
            TreeListView.NodeCollection collection = this.listMaterial.Nodes;
            this.listMaterial.BeginUpdate();
            collection.Clear();
            foreach (DataRow drStack in dtStack.Rows)
            {
                string ID       = drStack[1].ToString();
                string address  = drStack[3].ToString();
                string material = drStack[4].ToString();
                int    QTY;
                try
                {
                    QTY = Int32.Parse(drStack[5].ToString());
                }
                catch
                {
                    QTY = 0;
                }

                // 添加栈位物料父节点
                // Node.m_data[3] = { staclID, MaterialName, QTY }
                Node node = new Node(new object[3] {
                    address, material, QTY.ToString()
                });
                node.TextColor = (QTY > 0) ? Color.Green : Color.Black;

                // 加载替换物料子节点
                CDBConnection.SQL = "SELECT CompoentNO from TB_QMS_ReplaceComponentList where MainID='" + ID + "'";
                DataTable dtSub = CDBConnection._GetGrdInfo(CDBConnection.SQL);
                foreach (DataRow drSub in dtSub.Rows)
                {
                    Node subNode = new Node(new object[2] {
                        address, drSub[0].ToString()
                    });
                    node.Nodes.Add(subNode);
                }

                collection.Add(node);
            }
            this.listMaterial.EndUpdate();


            // 加载低料预警列表
            this.chartWarning.Clear();
            foreach (DataRow drQty in dtStack.Rows)
            {
                string stackNO = drQty[3].ToString().Trim();
                if (stackNO == null || stackNO == string.Empty)
                {
                    continue;
                }
                string strQTY = drQty[5].ToString().Trim();
                if (strQTY == null || strQTY == string.Empty)
                {
                    continue;
                }

                int QTY    = int.Parse(strQTY.ToString());
                int MinQTY = 100; // assume
                this.chartWarning.Add(QTY, MinQTY, stackNO);
            }
            RedrawWarningChart();
        }