示例#1
0
        public EDIXmlSegment GetAckLine(string statusCode,
                                        int quantity, string requestedShipDate, string custPartNo,
                                        string itemID, string itemDescription)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("ACK", buildValues);

            seg.Add(new EDIXmlElement("ACK01", statusCode, buildValues));
            seg.Add(new EDIXmlElement("ACK02", quantity.ToString(), buildValues));
            seg.Add(new EDIXmlElement("ACK03", "EA", buildValues));
            seg.Add(new EDIXmlElement("ACK04", DateTypeConstants.EstimatedDeliveryOn, buildValues));
            seg.Add(new EDIXmlElement("ACK05", requestedShipDate, buildValues));
            seg.Add(new EDIXmlElement("ACK06", "", buildValues));
            seg.Add(new EDIXmlElement("ACK07", ItemReferenceConstants.CustomerPartNumberCode, buildValues));
            seg.Add(new EDIXmlElement("ACK08", custPartNo, buildValues));
            var itemcode = "";

            if (!itemID.IsNullOrEmpty())
            {
                itemcode = ItemReferenceConstants.ItemIDCode;
            }
            seg.Add(new EDIXmlElement("ACK09", itemcode, buildValues));
            seg.Add(new EDIXmlElement("ACK10", itemID, buildValues));
            seg.Add(new EDIXmlElement("ACK11", ItemReferenceConstants.ItemDescriptionCode, buildValues));
            seg.Add(new EDIXmlElement("ACK12", itemDescription, buildValues));
            seg.Add(new EDIXmlElement("ACK13", ItemReferenceConstants.ProductTypeCode, buildValues));
            seg.Add(new EDIXmlElement("ACK14", "N", buildValues));

            return(seg);
        }
示例#2
0
        public EDIXmlSegment GetInterchangeHeader(int controlNo, bool test)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var    seg     = new EDIXmlSegment("ISA", buildValues);
            string testVal = "P";

            if (test)
            {
                testVal = "T";
            }
            seg.Add(new EDIXmlElement("ISA01", "00", buildValues));
            seg.Add(new EDIXmlElement("ISA02", "          ", buildValues));
            seg.Add(new EDIXmlElement("ISA03", "00", buildValues));
            seg.Add(new EDIXmlElement("ISA04", "          ", buildValues));
            seg.Add(new EDIXmlElement("ISA05", buildValues.InterchangeSenderQualifier, buildValues));
            seg.Add(new EDIXmlElement("ISA06", buildValues.InterchangeSenderID.PadRight(15, ' '), buildValues));
            seg.Add(new EDIXmlElement("ISA07", buildValues.InterchangeReceiverQualifier, buildValues));
            seg.Add(new EDIXmlElement("ISA08", buildValues.InterchangeReceiverID.PadRight(15, ' '), buildValues));
            seg.Add(new EDIXmlElement("ISA09", DateTime.Today.ToString("yyMMdd"), buildValues));
            seg.Add(new EDIXmlElement("ISA10", DateTime.Now.ToString("hhmm"), buildValues));
            seg.Add(new EDIXmlElement("ISA11", "U", buildValues));
            seg.Add(new EDIXmlElement("ISA12", "00401", buildValues));
            seg.Add(new EDIXmlElement("ISA13", controlNo.ToString("00000000#"), buildValues));
            seg.Add(new EDIXmlElement("ISA14", "0", buildValues));
            seg.Add(new EDIXmlElement("ISA15", testVal, buildValues));
            seg.Add(new EDIXmlElement("ISA16", ">", buildValues));
            return(seg);
        }
示例#3
0
        public void can_consume_shipped_order_message()
        {
            //ARRANGE
            var message = new OrderHasBeenShippedMessage();

            message.Add(new ShippedLine());
            var ediContentCreator = new Mock <ICreateEdiContentFrom <OrderHasBeenShippedMessage> >();
            var buildValues       = new EdiXmlBuildValues {
                ElementDelimiter = "~", SegmentDelimiter = "\n"
            };

//            ediContentCreator.Setup(c => c.ReceiverId).Returns("xxxi");
//            ediContentCreator.Setup(c => c.ControlNumber).Returns(62);
//            ediContentCreator.Setup(c => c.EdiXmlBuildValues).Returns(buildValues);
//            ediContentCreator.Setup(c => c.FunctionalId).Returns("PO");

            _resolver.Setup(r => r.GetBuildValueFactoryFor(BusinessPartner.Initech)).Returns(new InitechBuildValueFactory());
            _businessPartnerResolver.Setup(x => x.ResolveFrom(message)).Returns(ediContentCreator.Object);
            var document = new EDIXmlInterchangeControl(_seg);

            _ediDocumentCreator.Setup(x => x.CreateDocumentWith(ediContentCreator.Object, message))
            .Returns(new EDITransmissionPackage(document, BusinessPartner.Initech));
            _ediDocumentSaver.Setup(x => x.Save(It.IsAny <EDITransmissionPackage>()));
            _acceptMessages.Setup(x => x.Accept(message)).Returns(true);

            //ACT
            _sut.Consume(message);

            //ASSERT
            _ediDocumentSaver.VerifyAll();
            _ediDocumentCreator.VerifyAll();
            _businessPartnerResolver.VerifyAll();
        }
示例#4
0
        public EDIXmlSegment GetPOLine(string lineNo,
                                       int quantity, decimal price, string custPartNo,
                                       string itemID, string itemDescription)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("PO1", buildValues);

            seg.Add(new EDIXmlElement("PO101", lineNo, buildValues));
            seg.Add(new EDIXmlElement("PO102", quantity.ToString(), buildValues));
            seg.Add(new EDIXmlElement("PO103", "EA", buildValues));
            seg.Add(new EDIXmlElement("PO104", price.ToString("#.00"), buildValues));
            seg.Add(new EDIXmlElement("PO105", "", buildValues));
            seg.Add(new EDIXmlElement("PO106", ItemReferenceConstants.CustomerPartNumberCode, buildValues));
            seg.Add(new EDIXmlElement("PO107", custPartNo, buildValues));
            var itemcode = "";

            if (!itemID.IsNullOrEmpty())
            {
                itemcode = ItemReferenceConstants.ItemIDCode;
            }
            seg.Add(new EDIXmlElement("PO108", itemcode, buildValues));
            seg.Add(new EDIXmlElement("PO109", itemID, buildValues));
            seg.Add(new EDIXmlElement("PO110", ItemReferenceConstants.ItemDescriptionCode, buildValues));
            seg.Add(new EDIXmlElement("PO111", itemDescription.SafeTrim().TruncateTo(48), buildValues));
            seg.Add(new EDIXmlElement("PO112", ItemReferenceConstants.ProductTypeCode, buildValues));
            seg.Add(new EDIXmlElement("PO113", "N", buildValues));

            return(seg);
        }
示例#5
0
        public void can_get_envelopes()
        {
            var ediXmlBuildValues = new EdiXmlBuildValues {
                ElementDelimiter = "~", SegmentDelimiter = "\n"
            };

            var root = new XElement("file");
            var ic   = new EDIXmlInterchangeControl(_seg);
            var grp  = new EDIXmlFunctionGroup(_seg);

            grp.AddTransactionSet(new EDIXmlTransactionSet(_seg));
            grp.AddTransactionSet(new EDIXmlTransactionSet(_seg));
            ic.AddFunctionGroup(grp);
            root.Add(ic);
            IEnumerable <XElement> ic_s = root.EDIInterchangeControls();

            foreach (EDIXmlInterchangeControl i in ic_s)
            {
                IEnumerable <XElement> grp_s = i.EDIFunctionGroups();
                foreach (EDIXmlFunctionGroup g in grp_s)
                {
                    List <XElement> ts_s = g.EDITransactions().ToList();
                    foreach (EDIXmlTransactionSet t in ts_s)
                    {
                        Assert.That(t.Label == "ST");
                    }
                }
            }
            //Assert.That(root.EDINodes("ISA").ToList().Count == 1);
        }
示例#6
0
        public EDIXmlSegment GetPurchaseOrderReference(string poNumber)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("PRF", buildValues);

            seg.Add(new EDIXmlElement("PRF01", poNumber, buildValues));
            return(seg);
        }
示例#7
0
 public Initech810Creator(IControlNumberRepository repo,
                          IIncomingDocumentsRepository docsRepo, IBusinessPartnerSpecificServiceResolver serviceResolver)
 {
     _repo           = repo;
     _docsRepo       = docsRepo;
     _segmentFactory = serviceResolver.GetSegmentFactoryFor(BusinessPartner.Initech);
     _buildValues    = _segmentFactory.BuildValues;
 }
示例#8
0
        public EDIXmlSegment GetTransactionTotal(int totalLines)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("CTT", buildValues);

            seg.Add(new EDIXmlElement("CTT01", totalLines.ToString(), buildValues));
            return(seg);
        }
示例#9
0
        public EDIXmlSegment GetFreightOnBoard(string code)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("FOB", buildValues);

            seg.Add(new EDIXmlElement("FOB01", code, buildValues));
            return(seg);
        }
示例#10
0
        public EDIXmlSegment GetShipmentLineItem(string lineNum, IEnumerable <QualifierValuePair> pairs)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("LIN", buildValues);

            seg.Add(new EDIXmlElement("LIN01", lineNum, buildValues));
            pairs.ForEach(p => seg.AddElements(p.GetQualfierValuePair(seg.SegmentName, buildValues)));
            return(seg);
        }
示例#11
0
        public EDIXmlSegment GetTaxInformationSegment(string taxType, decimal amount)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("TXI", buildValues);

            seg.Add(new EDIXmlElement("TXI01", taxType, buildValues));
            seg.Add(new EDIXmlElement("TXI02", amount.ToString("#.00"), buildValues));
            return(seg);
        }
示例#12
0
        public EDIXmlSegment GetTotalMonetaryValue(decimal val)
        {
            val *= 100;
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("TDS", buildValues);

            seg.Add(new EDIXmlElement("TDS01", ((int)val).ToString(), buildValues));
            return(seg);
        }
示例#13
0
        public EDIXmlSegment GetMarksAndNumbersSegment(string qualifier, string numbers)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("MAN", buildValues);

            seg.Add(new EDIXmlElement("MAN01", qualifier, buildValues));
            seg.Add(new EDIXmlElement("MAN02", numbers, buildValues));
            return(seg);
        }
示例#14
0
        public EDIXmlSegment GetDocumentFooter(int numSegments, int controlNumber)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("SE", buildValues);

            seg.Add(new EDIXmlElement("SE01", numSegments.ToString(), buildValues));
            seg.Add(new EDIXmlElement("SE02", controlNumber.ToString().PadLeft(6, '0'), buildValues));
            return(seg);
        }
示例#15
0
        public EDIXmlSegment GetInvoiceShipmentSummary(string uom, int unitsShipped)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("ISS", buildValues);

            seg.Add(new EDIXmlElement("ISS01", unitsShipped.ToString(), buildValues));
            seg.Add(new EDIXmlElement("ISS02", uom, buildValues));
            return(seg);
        }
示例#16
0
        public EDIXmlSegment GetQuantitySegment(string qual, decimal qty)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("QTY", buildValues);

            seg.Add(new EDIXmlElement("QTY01", qual, buildValues));
            seg.Add(new EDIXmlElement("QTY02", qty.ToString(), buildValues));
            return(seg);
        }
示例#17
0
        public EDIXmlSegment GetInterchangeFooter(int numGroups, int controlNumber)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("IEA", buildValues);

            seg.Add(new EDIXmlElement("IEA01", numGroups.ToString(), buildValues));
            seg.Add(new EDIXmlElement("IEA02", controlNumber.ToString("00000000#"), buildValues));
            return(seg);
        }
示例#18
0
        public EDIXmlSegment GetGroupFooter(int numDocs, int controlNumber)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("GE", buildValues);

            seg.Add(new EDIXmlElement("GE01", numDocs.ToString(), buildValues));
            seg.Add(new EDIXmlElement("GE02", controlNumber.FormatByTransport(buildValues.Transport), buildValues));
            return(seg);
        }
示例#19
0
        public EDIXmlSegment GetReferenceIDSegment(string qualifier, string code)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("REF", buildValues);

            seg.Add(new EDIXmlElement("REF01", qualifier, buildValues));
            seg.Add(new EDIXmlElement("REF02", code, buildValues));
            return(seg);
        }
示例#20
0
        public EDIXmlSegment GetDocumentHeader(string docType, int controlNumber)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("ST", buildValues);

            seg.Add(new EDIXmlElement("ST01", docType, buildValues));
            seg.Add(new EDIXmlElement("ST02", controlNumber.ToString().PadLeft(6, '0'), buildValues));
            return(seg);
        }
示例#21
0
        public EDIXmlSegment GetPricingInformation(string priceIdCode, decimal unitPrice)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("CTP", buildValues);

            seg.Add(new EDIXmlElement("CTP01", "", buildValues));
            seg.Add(new EDIXmlElement("CTP02", priceIdCode, buildValues));
            seg.Add(new EDIXmlElement("CTP03", unitPrice.ToString(), buildValues));
            return(seg);
        }
示例#22
0
        public EDIXmlSegment GetEquipmentCarrierDetails(string code, string equipmentNumber)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("TD3", buildValues);

            seg.Add(new EDIXmlElement("TD301", code, buildValues));
            seg.Add(new EDIXmlElement("TD302", "", buildValues));
            seg.Add(new EDIXmlElement("TD303", equipmentNumber, buildValues));
            return(seg);
        }
示例#23
0
        public EDIXmlSegment GetAddressLine(string addrInfo1, string addrInfo2)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("N3", buildValues);

            seg.Add(new EDIXmlElement("N301", addrInfo1, buildValues));
            seg.Add(new EDIXmlElement("N301", addrInfo2, buildValues));

            return(seg);
        }
示例#24
0
        public EDIXmlSegment GetServiceAllowanceAndChargeSegment(string primaryCode, string secondaryCode, decimal amount)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("SAC", buildValues);

            seg.Add(new EDIXmlElement("SAC01", primaryCode, buildValues));
            seg.Add(new EDIXmlElement("SAC02", secondaryCode, buildValues));
            seg.Add(new EDIXmlElement("SAC03", "", buildValues));
            seg.Add(new EDIXmlElement("SAC04", "", buildValues));
            seg.Add(new EDIXmlElement("SAC05", amount.ToString(), buildValues));
            return(seg);
        }
示例#25
0
        public EDIXmlSegment GetCarrierDetail(string code, string carrier)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("CAD", buildValues);

            seg.Add(new EDIXmlElement("CAD01", code, buildValues));
            seg.Add(new EDIXmlElement("CAD02", "", buildValues));
            seg.Add(new EDIXmlElement("CAD03", "", buildValues));
            seg.Add(new EDIXmlElement("CAD04", "", buildValues));
            seg.Add(new EDIXmlElement("CAD05", carrier, buildValues));
            return(seg);
        }
示例#26
0
        public EDIXmlSegment GetProductItemDescription(string description)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("PID", buildValues);

            seg.Add(new EDIXmlElement("PID01", "F", buildValues));
            seg.Add(new EDIXmlElement("PID02", "", buildValues));
            seg.Add(new EDIXmlElement("PID03", "", buildValues));
            seg.Add(new EDIXmlElement("PID04", "", buildValues));
            seg.Add(new EDIXmlElement("PID05", description, buildValues));
            return(seg);
        }
示例#27
0
        public EDIXmlSegment GetAddressName(string name, string addressType, string codeQualifier, string code)
        {
            var pair = new QualifierValuePair(codeQualifier, code, 3);
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("N1", buildValues);

            seg.Add(new EDIXmlElement("N101", addressType, buildValues));
            seg.Add(new EDIXmlElement("N102", name, buildValues));
            seg.AddElements(pair.GetQualfierValuePair(seg.SegmentName, buildValues));

            return(seg);
        }
示例#28
0
        public EDIXmlSegment GetHierarchicalLevel(string id, string parentID,
                                                  string code)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("HL", buildValues);

            seg.Add(new EDIXmlElement("HL01", id, buildValues));
            seg.Add(new EDIXmlElement("HL02", parentID, buildValues));
            seg.Add(new EDIXmlElement("HL03", code, buildValues));

            return(seg);
        }
示例#29
0
        public EDIXmlSegment GetGeographicInfo(string city, string state,
                                               string zip, string country)
        {
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("N4", buildValues);

            seg.Add(new EDIXmlElement("N401", city, buildValues));
            seg.Add(new EDIXmlElement("N402", state, buildValues));
            seg.Add(new EDIXmlElement("N403", zip, buildValues));
            seg.Add(new EDIXmlElement("N404", country, buildValues));

            return(seg);
        }
示例#30
0
        public EDIXmlSegment GetDateTimeSegment(string dateType, DateTime dtm)
        {
            var dte = dtm.ToString("yyyyMMdd");
            var tme = dtm.ToString("HHmmss");
            EdiXmlBuildValues buildValues = _buildFactory.GetValues();
            var seg = new EDIXmlSegment("DTM", buildValues);

            seg.Add(new EDIXmlElement("DTM01", dateType, buildValues));
            seg.Add(new EDIXmlElement("DTM02", dte, buildValues));
            seg.Add(new EDIXmlElement("DTM03", tme, buildValues));

            return(seg);
        }