Пример #1
0
        public void can_generate_850_edi_file_from_purchase_order()
        {
            PurchaseOrder order = new PurchaseOrder("10000001",
                                    new Customer("123", "John Doe", "John Doe",
                                    new Address("1001","1 Main st.", "San Francisco", "California","CA", "USA","US", "90210"),
                                    new Address("1002","1 Main st.", "San Francisco", "California","CA", "USA","US", "90210")),
                new List<LineItem>
                {
                    new LineItem("1", "CTGTN04B", (decimal) 80.01,32, "Brother HL-2700CN; MFC-9420 - Toner Cartridge, Black"),
                    new LineItem("2", "CTGTN04C", (decimal) 80.01,23, "Brother HL-2700CN; MFC-9420 - Toner Cartridge, Cyan"),
                    new LineItem("3", "CTGTN04M", (decimal) 80.01, 11, "Brother HL-2700CN; MFC-9420 - Toner Cartridge, Magenta")

                });

            string fileName=@"c:\abhi\";
            PurchaseOrderGenerator generator = new PurchaseOrderGenerator();
            generator.GeneratePurchaseOrderFile(order, fileName);

            //IEnumerable<string> lines = File.ReadLines(fileName);
            //byte[] bytes = File.ReadAllBytes(fileName);

            //Assert.IsTrue(File.Exists(fileName));
            //Assert.IsTrue(bytes.Length > 0);
            //Assert.AreNotEqual(0, lines.Count());
            //TODO:Add more asserts to verify that the file is the proper EDI format
        }
Пример #2
0
        public void CreatePurchaseOrder850(PurchaseOrder purchaseOrder, string fileName)
        {
            DateTime    purcaseOrderDate = DateTime.Now;
            Interchange interchange      = new Interchange(purcaseOrderDate, Convert.ToInt32(purchaseOrder.Number), true)
            {
                InterchangeSenderIdQualifier   = "ZZ",
                InterchangeSenderId            = InterchangeSenderId,
                InterchangeReceiverIdQualifier = "ZZ",
                InterchangeReceiverId          = InterchangeReceiverId,
                InterchangeDate = purcaseOrderDate,
            };

            interchange.SetElement(14, "0"); //No Aknowlegement is 0

            FunctionGroup group = interchange.AddFunctionGroup("PO", purcaseOrderDate, Convert.ToInt32(purchaseOrder.Number), "004010");

            group.ApplicationSendersCode   = InterchangeSenderId;
            group.ApplicationReceiversCode = InterchangeReceiverId;
            // group.Date = purcaseOrderDate;
            // group.ControlNumber = Convert.ToInt32(purchaseOrder.Number);

            Transaction transaction = group.AddTransaction("850", "0001");

            Segment bhtSegment = transaction.AddSegment("BEG");

            bhtSegment.SetElement(1, "00");
            bhtSegment.SetElement(2, "SA");
            bhtSegment.SetElement(3, purchaseOrder.Number);
            bhtSegment.SetElement(5, purcaseOrderDate.ToString("yyyyMMdd"));

            //bhtSegment = transaction.AddSegment("CUR");
            //bhtSegment.SetElement(1, "BY");
            //bhtSegment.SetElement(2, "USD");

            //bhtSegment = transaction.AddSegment("PER");
            //bhtSegment.SetElement(1, "IC");
            //bhtSegment.SetElement(2, "Doe,Jane");
            //bhtSegment.SetElement(8, "Doe,Jane");

            //bill to section
            Loop loop = transaction.AddLoop("N1");

            loop.SetElement(1, "BT");
            loop.SetElement(2, purchaseOrder.Customer.BillingName);
            loop.SetElement(3, 92);
            loop.SetElement(4, purchaseOrder.Customer.BillingAddress.Id);

            Segment segment = loop.AddSegment("N3");

            segment.SetElement(1, purchaseOrder.Customer.BillingAddress.Street);
            segment.SetElement(2, purchaseOrder.Customer.BillingAddress.City + " " + purchaseOrder.Customer.BillingAddress.State + " " + purchaseOrder.Customer.BillingAddress.PostalCode + " " + purchaseOrder.Customer.BillingAddress.Country);
            segment = loop.AddSegment("N4");
            segment.SetElement(1, purchaseOrder.Customer.BillingAddress.City);
            segment.SetElement(2, purchaseOrder.Customer.BillingAddress.ShortState);   // short state
            segment.SetElement(3, purchaseOrder.Customer.BillingAddress.PostalCode);
            segment.SetElement(4, purchaseOrder.Customer.BillingAddress.ShortCountry); //short country

            //ship to to section
            loop = transaction.AddLoop("N1");
            loop.SetElement(1, "ST");
            loop.SetElement(2, purchaseOrder.Customer.ShippingName);
            loop.SetElement(3, 92);
            loop.SetElement(4, purchaseOrder.Customer.ShippingAddress.Id);

            segment = loop.AddSegment("N3");
            segment.SetElement(1, purchaseOrder.Customer.ShippingAddress.Street);
            segment.SetElement(2, purchaseOrder.Customer.ShippingAddress.City + " " + purchaseOrder.Customer.ShippingAddress.State + " " + purchaseOrder.Customer.ShippingAddress.PostalCode + " " + purchaseOrder.Customer.ShippingAddress.Country);
            segment = loop.AddSegment("N4");
            segment.SetElement(1, purchaseOrder.Customer.ShippingAddress.City);
            segment.SetElement(2, purchaseOrder.Customer.BillingAddress.ShortState);   // short state
            segment.SetElement(3, purchaseOrder.Customer.BillingAddress.PostalCode);
            segment.SetElement(4, purchaseOrder.Customer.BillingAddress.ShortCountry); //short country

            int count = 1;

            foreach (LineItem lineItem in purchaseOrder.Items)
            {
                loop = transaction.AddLoop("PO1");
                loop.SetElement(1, count++);
                loop.SetElement(2, lineItem.Quantity);
                loop.SetElement(3, "EA");
                loop.SetElement(4, lineItem.Price);
                loop.SetElement(6, "CGT");
                loop.SetElement(7, lineItem.SupplierItemNumber);
            }

            loop = transaction.AddLoop("CTT");
            loop.SetElement(1, --count);



            var x12 = interchange.SerializeToX12(true);

            Console.WriteLine(x12);
            // Write the string to a file.
            fileName += purchaseOrder.Number + ".850";
            System.IO.StreamWriter file = new System.IO.StreamWriter(fileName);
            file.WriteLine(x12);

            file.Close();
        }
Пример #3
0
        private String InterchangeReceiverId = "001903202U"; // will be provided by the supplier

        //TODO:Pass in sender and receiver id

        public void GeneratePurchaseOrderFile(PurchaseOrder purchaseOrder, string fileName)
        {
            CreatePurchaseOrder850(purchaseOrder, fileName);
        }
Пример #4
0
        private String InterchangeSenderId = "828513080"; // need a mutually agreed up ID

        #endregion Fields

        #region Methods

        public void CreatePurchaseOrder850(PurchaseOrder purchaseOrder,string fileName)
        {
            DateTime purcaseOrderDate = DateTime.Now;
            Interchange interchange = new Interchange(purcaseOrderDate, Convert.ToInt32(purchaseOrder.Number), true)
            {
                InterchangeSenderIdQualifier = "ZZ",
                InterchangeSenderId = InterchangeSenderId,
                InterchangeReceiverIdQualifier = "ZZ",
                InterchangeReceiverId = InterchangeReceiverId,
                InterchangeDate = purcaseOrderDate,
            };

            interchange.SetElement(14, "0"); //No Aknowlegement is 0

            FunctionGroup group = interchange.AddFunctionGroup("PO", purcaseOrderDate, Convert.ToInt32(purchaseOrder.Number), "004010");
            group.ApplicationSendersCode = InterchangeSenderId;
            group.ApplicationReceiversCode = InterchangeReceiverId;
               // group.Date = purcaseOrderDate;
               // group.ControlNumber = Convert.ToInt32(purchaseOrder.Number);

            Transaction transaction = group.AddTransaction("850", "0001");

            Segment bhtSegment = transaction.AddSegment("BEG");
            bhtSegment.SetElement(1, "00");
            bhtSegment.SetElement(2, "SA");
            bhtSegment.SetElement(3, purchaseOrder.Number);
            bhtSegment.SetElement(5, purcaseOrderDate.ToString("yyyyMMdd"));

            //bhtSegment = transaction.AddSegment("CUR");
            //bhtSegment.SetElement(1, "BY");
            //bhtSegment.SetElement(2, "USD");

            //bhtSegment = transaction.AddSegment("PER");
            //bhtSegment.SetElement(1, "IC");
            //bhtSegment.SetElement(2, "Doe,Jane");
            //bhtSegment.SetElement(8, "Doe,Jane");

            //bill to section
            Loop loop = transaction.AddLoop("N1");
            loop.SetElement(1, "BT");
            loop.SetElement(2, purchaseOrder.Customer.BillingName);
            loop.SetElement(3,92);
            loop.SetElement(4,purchaseOrder.Customer.BillingAddress.Id);

            Segment segment = loop.AddSegment("N3");
            segment.SetElement(1, purchaseOrder.Customer.BillingAddress.Street);
            segment.SetElement(2, purchaseOrder.Customer.BillingAddress.City + " " + purchaseOrder.Customer.BillingAddress.State + " " + purchaseOrder.Customer.BillingAddress.PostalCode + " " + purchaseOrder.Customer.BillingAddress.Country);
            segment = loop.AddSegment("N4");
            segment.SetElement(1, purchaseOrder.Customer.BillingAddress.City);
            segment.SetElement(2, purchaseOrder.Customer.BillingAddress.ShortState); // short state
            segment.SetElement(3, purchaseOrder.Customer.BillingAddress.PostalCode);
            segment.SetElement(4, purchaseOrder.Customer.BillingAddress.ShortCountry); //short country

            //ship to to section
            loop = transaction.AddLoop("N1");
            loop.SetElement(1, "ST");
            loop.SetElement(2, purchaseOrder.Customer.ShippingName);
            loop.SetElement(3, 92);
            loop.SetElement(4, purchaseOrder.Customer.ShippingAddress.Id);

            segment = loop.AddSegment("N3");
            segment.SetElement(1, purchaseOrder.Customer.ShippingAddress.Street);
            segment.SetElement(2, purchaseOrder.Customer.ShippingAddress.City + " " + purchaseOrder.Customer.ShippingAddress.State + " " + purchaseOrder.Customer.ShippingAddress.PostalCode + " " + purchaseOrder.Customer.ShippingAddress.Country);
            segment = loop.AddSegment("N4");
            segment.SetElement(1, purchaseOrder.Customer.ShippingAddress.City);
            segment.SetElement(2, purchaseOrder.Customer.BillingAddress.ShortState); // short state
            segment.SetElement(3, purchaseOrder.Customer.BillingAddress.PostalCode);
            segment.SetElement(4, purchaseOrder.Customer.BillingAddress.ShortCountry); //short country

            int count = 1;
            foreach(LineItem lineItem in purchaseOrder.Items)
            {
                loop = transaction.AddLoop("PO1");
                loop.SetElement(1, count++);
                loop.SetElement(2, lineItem.Quantity);
                loop.SetElement(3, "EA");
                loop.SetElement(4, lineItem.Price);
                loop.SetElement(6, "CGT");
                loop.SetElement(7, lineItem.SupplierItemNumber);
            }

            loop = transaction.AddLoop("CTT");
            loop.SetElement(1, --count);

            var x12 = interchange.SerializeToX12(true);
            Console.WriteLine(x12);
            // Write the string to a file.
            fileName += purchaseOrder.Number + ".850";
            System.IO.StreamWriter file = new System.IO.StreamWriter(fileName);
            file.WriteLine(x12);

            file.Close();
        }
Пример #5
0
 //TODO:Pass in sender and receiver id
 public void GeneratePurchaseOrderFile(PurchaseOrder purchaseOrder, string fileName)
 {
     CreatePurchaseOrder850(purchaseOrder,fileName);
 }