コード例 #1
0
        private EDIXmlTransactionSet create_transaction_set(OrderRequestReceivedMessage ackMessage)
        {
            if (ackMessage.LineCount == 0)
            {
                throw new Exception("PO contains no line items!");
            }
            var doc = new EDIXmlTransactionSet(_segmentFactory)
            {
                ISA = _repo.GetNextISA(GroupTypeConstants.POAcknowledgement, BusinessPartner.Initech.Number)
            };

            var docDef = _repo.GetNextDocument(doc.ISA, 855);

            doc.SetHeader("855", docDef.ControlNumber);

            doc.AddSegment(get_begin_segment(ackMessage));

            doc.AddSegment(_segmentFactory.GetAddressName("Austin Foam Plastics",
                                                          NameCodeConstants.Vendor, "", ""));

            var lines = new EDIXmlMixedContainer("PO1");

            ackMessage.LineItems.ForEach(l => add_line(lines, l));

            doc.AddLoop(lines);

            doc.AddSegment(_segmentFactory.GetTransactionTotal(ackMessage.LineCount));

            doc.SetFooter();

            return(doc);
        }
コード例 #2
0
//        private EDIXmlSegment get_terms(InvoicedOrderMessage message)
//        {
//            TermsOfSale terms = message.Customer.Terms;
//            return _segmentFactory.GetTerms("14", terms.DiscountPercent,
//                DateTime.Today.AddDays(terms.DiscountDays), DateTime.Today.AddDays(terms.NetDays));
//        }

        private EDIXmlMixedContainer get_detail_loop(InvoicedOrderMessage orderMessage, IList <DocumentLineItemEntity> lines)
        {
            var loop = new EDIXmlMixedContainer("IT1");

            orderMessage.LineItems.ForEach(l => add_line(loop, l, lines));
            return(loop);
        }
コード例 #3
0
        private EDIXmlMixedContainer get_detail_loop(OrderRequestReceivedMessage orderRequestReceivedMessage)
        {
            var loop = new EDIXmlMixedContainer("PO1");

            orderRequestReceivedMessage.LineItems.ForEach(l => add_line(loop, l));
            return(loop);
        }
コード例 #4
0
 private void add_line(EDIXmlMixedContainer lines, CustomerOrderLine l)
 {
     lines.AddSegment(_segmentFactory.GetPOLine(l.LineNumber.ToString(), l.RequestedQuantity,
                                                l.RequestedPrice, l.CustomerPartNumber, "", l.ItemDescription));
     lines.AddSegment(_segmentFactory.GetAckLine("IA", l.RequestedQuantity,
                                                 get_delivery_date().ToString("yyyyMMdd"),
                                                 l.CustomerPartNumber, "", l.ItemDescription));
 }
コード例 #5
0
        private void add_address(EDIXmlMixedContainer container, Address address, string qualifier, string code)
        {
            if (address == null)
            {
                return;
            }

            container.AddSegment(_segmentFactory.GetAddressName(address.AddressName, address.AddressType, qualifier, code));
            container.AddSegment(_segmentFactory.GetAddressLine(address.Address1, address.Address2));
            container.AddSegment(_segmentFactory.GetGeographicInfo(address.City, address.State, address.Zip, "US"));
        }
コード例 #6
0
        private EDIXmlMixedContainer get_address_loop(OrderRequestReceivedMessage orderRequestReceivedMessage)
        {
            var loop = new EDIXmlMixedContainer("N1");

            if (orderRequestReceivedMessage.ShipToAddress == null)
            {
                throw new ApplicationException("There are no ship to address associated with order");
            }

            add_address(loop, orderRequestReceivedMessage.ShipToAddress);
            add_address(loop, orderRequestReceivedMessage.GetBillToAddress());

            return(loop);
        }
コード例 #7
0
        private EDIXmlMixedContainer get_address_loop(InvoicedOrderMessage orderMessage)
        {
            var loop = new EDIXmlMixedContainer("N1");

            if (orderMessage.ShipToAddress == null && orderMessage.GetBillToAddress() == null)
            {
                throw new ApplicationException("There are no bill to address associated with customer "
                                               + orderMessage.GetCustomerId() + ".  Cannot build 810.");
            }
            add_address(loop, orderMessage.ShipFromAddress, Qualifier.AssignedByBuyer.Value,
                        BusinessPartner.Initech.VendorIdOfAfp);
            add_address(loop, orderMessage.ShipToAddress, "", "");
            add_address(loop, orderMessage.GetBillToAddress(), "", "");

            return(loop);
        }
コード例 #8
0
        private void add_line(EDIXmlMixedContainer container, InvoicedOrderLine line,
                              IList <DocumentLineItemEntity> lines)
        {
            var orderLine = lines.Find(l => l.LineIdentifier == line.LineNumber.ToString());
            IDictionary <Qualifier, string> values = new Dictionary <Qualifier, string>
            {
                { Qualifier.InvoiceVendorPart, line.ItemID },
                { Qualifier.PartDescription, line.ItemDescription },
                { Qualifier.PONumber, line.CustomerPO },
                { Qualifier.EmptyQualifier, "" },
                { Qualifier.POLineNumber, get_formatted_po_line(line.LineNumber) }
            };

            container.AddSegment(_segmentFactory.GetLineItemInvoiceDetail(line.LineNumber.ToString(),
                                                                          line.Quantity, line.Price, values));
            if (orderLine == null)
            {
                return;
            }
            orderLine.ResponseElements.ForEach(r =>
                                               container.AddSegment(_segmentFactory.GetReferenceIDSegment(r.Qualifier, r.Value)));
        }
コード例 #9
0
 public void AddLoop(EDIXmlMixedContainer loop)
 {
     base.Add(loop);
 }
コード例 #10
0
 private void add_ref_segment(EDIXmlMixedContainer hl, LineResponseElementEntity r)
 {
     hl.AddSegment(_segmentFactory.GetReferenceIDSegment(r.Qualifier, r.Value));
     Logger.Info(this, "Qualifier: " + r.Qualifier + "; Value: " + r.Value);
 }
コード例 #11
0
 private void add_line(EDIXmlMixedContainer container, CustomerOrderLine line)
 {
     container.AddSegment(_segmentFactory.GetPOLine(line.LineNumber.ToString(), line.RequestedQuantity,
                                                    line.RequestedPrice, line.CustomerPartNumber, line.ItemId, line.ItemDescription));
 }
コード例 #12
0
 private void add_address(EDIXmlMixedContainer container, Address address)
 {
     container.AddSegment(_segmentFactory.GetAddressName(address.AddressName, address.AddressType, "", ""));
     container.AddSegment(_segmentFactory.GetAddressLine(address.Address1, address.Address2));
     container.AddSegment(_segmentFactory.GetGeographicInfo(address.City, address.State, address.Zip, "US"));
 }