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); }
private EDIXmlTransactionSet create_transaction_set(OrderRequestReceivedMessage orderRequestReceivedMessage) { if (orderRequestReceivedMessage.LineCount == 0) { throw new Exception("PO contains no line items!"); } var doc = new EDIXmlTransactionSet(_segmentFactory) { ISA = _repo.GetNextISA(GroupTypeConstants.PurchaseOrder, BusinessPartner.FedEx.Number) }; var docDef = _repo.GetNextDocument(doc.ISA, EdiDocumentTypes.PurchaseOrder.DocumentNumber); doc.SetHeader(EdiDocumentTypes.PurchaseOrder.DocumentNumber.ToString(), docDef.ControlNumber); doc.AddSegment(get_begin_segment(orderRequestReceivedMessage)); // doc.AddSegment(_segmentFactory.GetCurrencySegment("II", orderMessage.CurrencyCode)); // // doc.AddSegment(_segmentFactory.GetReferenceIDSegment(BOLQualifiers.VendorOrderNumber, // orderMessage.BOL)); doc.AddLoop(get_address_loop(orderRequestReceivedMessage)); doc.AddLoop(get_detail_loop(orderRequestReceivedMessage)); // doc.AddSegment(_segmentFactory.GetTotalMonetaryValue(orderMessage.GetTotal())); doc.AddSegment(_segmentFactory.GetTransactionTotal(orderRequestReceivedMessage.LineCount)); return(doc); }
public void can_create_document() { //ARRANGE var testMessageDocumentCreator = new Mock <ICreateEdiContentFrom <testMessage> >(); //testMessageDocumentCreator.Setup(x => x.ReceiverId).Returns("ReceiverId"); var transactionSet = new EDIXmlTransactionSet(_seg); transactionSet.ISA = new ISAEntity { ControlNumber = 1, GroupID = "IN" }; testMessageDocumentCreator.Setup(x => x.BuildFromMessage(_message)).Returns(transactionSet); testMessageDocumentCreator.Setup(x => x.SegmentFactory).Returns(_seg); _configuration.Setup(x => x.TestMode).Returns(true); _resolver.Setup(r => r.GetSegmentFactoryFor(It.IsAny <BusinessPartner>())).Returns(_seg); //ACT EDIXmlInterchangeControl expectedDocument = _sut.CreateDocumentWith(testMessageDocumentCreator.Object, _message).GetInterchangeControl(); //ASSERT testMessageDocumentCreator.VerifyAll(); _configuration.VerifyAll(); Assert.That(expectedDocument.EDIFunctionGroups() .First().EDITransactions() .First().Value == transactionSet.Value); }
public void can_create_810() { InvoicedOrderMessage order = GetOrder(); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(order); Console.WriteLine(ediStr.Value); }
public void can_create_855() { OrderRequestReceivedMessage orderRequestReceived = GetOrder(); _sut = _resolver.ResolveFrom(orderRequestReceived); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(orderRequestReceived); Console.WriteLine(ediStr); }
public void can_create_856() { OrderHasBeenShippedMessage order = GetOrder(); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(order); Assert.That(ediStr.Value, Text.Contains("~")); Assert.That(ediStr.Value, Text.Contains("\n")); Console.WriteLine(ediStr.Value); }
public void can_create_850() { OrderRequestReceivedMessage orderRequestReceived = GetOrder(); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(orderRequestReceived); Assert.That(ediStr.Value, Text.Contains(@"~")); Assert.That(ediStr.Value, Text.Contains("\n")); Console.WriteLine(ediStr.Value); }
public void AddContent(EDIXmlTransactionSet transactionSet) { IEnumerable<XElement> ediFunctionGroups = this.EDIFunctionGroups(); if (ediFunctionGroups == null) throw new ApplicationException("Function Group has not been set."); XElement first = ediFunctionGroups.First(); if (first == null) throw new ApplicationException("No Function Group found in list."); first.Add(transactionSet); }
public void can_create_810() { //Arrange InvoicedOrderMessage order = GetOrder(); //Act _sut = _resolver.ResolveFrom(order); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(order); var arr = ediStr.Value.Split("\n".ToCharArray()); //Assert arr[1].ShouldEqual("BIG~20110610~461191~20110601~4110213145~~~DI"); arr[2].ShouldEqual("REF~IA~25097"); arr[arr.Length - 3].ShouldEqual("CTT~2"); }
public EDITransmissionPackage CreateDocumentWith(ICreateEdiContentFrom <T> creator, T message) { var ediXmlInterchangeControl = new EDIXmlInterchangeControl(creator.SegmentFactory); EDIXmlTransactionSet ediTransactionSet = creator.BuildFromMessage(message); var isaControlNumber = ediTransactionSet.ISA.ControlNumber; var functionalID = ediTransactionSet.ISA.GroupID; ediXmlInterchangeControl.SetHeader(isaControlNumber, functionalID, _configuration.TestMode); ediXmlInterchangeControl.AddContent(ediTransactionSet); ediXmlInterchangeControl.SetFooter(isaControlNumber, 1); return(new EDITransmissionPackage(ediXmlInterchangeControl, creator.GetBusinessPartner())); }
public void can_create_856() { //Arrange OrderHasBeenShippedMessage order = GetOrder(); //Act _sut = _resolver.ResolveFrom(order); EDIXmlTransactionSet ediStr = _sut.BuildFromMessage(order); var arr = ediStr.Value.Split("\n".ToCharArray()); //Assert arr[1].Substring(0, 17).ShouldEqual("BSN~00~0005456~20"); Assert.That(ediStr.Value, Text.Contains("~")); Assert.That(ediStr.Value, Text.Contains("\n")); Console.WriteLine(ediStr.Value); }
public IEDIXmlTransactionSet BuildFromMessage(CreateOrderMessage orderMessage) { if (orderMessage.LineItems == null) { throw new ApplicationException("PO contains no line items!"); } Console.WriteLine("Order control number: " + orderMessage.ControlNumber); orderMessage.LineItems.ForEach(display_line); Console.WriteLine("Customer ID: " + orderMessage.CustomerID); Console.WriteLine("Customer PO: " + orderMessage.CustomerPO); Console.WriteLine("Ship-to-address: " + orderMessage.GetShipToAddress().ToString()); Console.WriteLine("Request date: " + orderMessage.RequestDate); var ts = new EDIXmlTransactionSet(_segmentFactory).SetHeader("850", 23430); ts.ISA = new ISAEntity() { ControlNumber = 1, GroupID = "PO" }; return(ts); }
public void can_create_document() { //ARRANGE var testMessageDocumentCreator = new Mock<ICreateEdiContentFrom<testMessage>>(); //testMessageDocumentCreator.Setup(x => x.ReceiverId).Returns("ReceiverId"); var transactionSet = new EDIXmlTransactionSet(_seg); transactionSet.ISA = new ISAEntity {ControlNumber = 1, GroupID = "IN"}; testMessageDocumentCreator.Setup(x => x.BuildFromMessage(_message)).Returns(transactionSet); testMessageDocumentCreator.Setup(x => x.SegmentFactory).Returns(_seg); _configuration.Setup(x => x.TestMode).Returns(true); _resolver.Setup(r => r.GetSegmentFactoryFor(It.IsAny<BusinessPartner>())).Returns(_seg); //ACT EDIXmlInterchangeControl expectedDocument = _sut.CreateDocumentWith(testMessageDocumentCreator.Object, _message).GetInterchangeControl(); //ASSERT testMessageDocumentCreator.VerifyAll(); _configuration.VerifyAll(); Assert.That(expectedDocument.EDIFunctionGroups() .First().EDITransactions() .First().Value == transactionSet.Value); }
public void AddTransactionSet(EDIXmlTransactionSet ts) { if (Label != SegmentLabel.GroupLabel.Text) throw new Exception("Cannot add a transaction set to this object!"); base.Add(ts); }
protected EDIXmlTransactionSet CreateTransactionSet(OrderShippingInfo message) { if (message.Lines.Count() == 0) { throw new Exception("Shipped order contains no line items!"); } var originalDoc = _docsRepo.GetByDocumentControlNumberAndPartnerID(message.ControlNumber.CastToInt(), BusinessPartner.Initech.Number); if (originalDoc == null) { throw new Exception(string.Format("Control number {0} not found for business partner {1}.", message.ControlNumber, message.BusinessPartnerNumber)); } var orderTypeElement = originalDoc.ResponseElements.Find(e => e.ElementName == "REF02" && (e.Qualifier == Qualifier.MutuallyAssignedCode.Value)); var priorityElement = originalDoc.ResponseElements.Find(e => e.ElementName == "REF02" && (e.Qualifier == Qualifier.ServiceLevelNumber.Value)); var doc = new EDIXmlTransactionSet(_segmentFactory) { ISA = _repo.GetNextISA(GroupTypeConstants.AdvanceShipNotice, BusinessPartner.Initech.Number) }; var docDef = _repo.GetNextDocument(doc.ISA, 856); doc.SetHeader("856", docDef.ControlNumber); docDef.ERPID = message.BOL; _repo.Save(docDef.ISAEntity); doc.AddSegment(get_begin_segment(message)); if (message.MaxDateShipped() > DateTime.MinValue) { doc.AddSegment(_segmentFactory.GetDateTimeSegment(EDIDateQualifiers.Shipped, message.MaxDateShipped())); } var hl = HierarchicalLevelLoopWrapper.BuildWrapper("O", _segmentFactory, true); hl.AddSegment(_segmentFactory.GetPurchaseOrderReference(message.CustomerPO.Trim())); if (orderTypeElement != null) { hl.AddSegment(_segmentFactory.GetReferenceIDSegment(orderTypeElement.Qualifier, orderTypeElement.Value)); } if (priorityElement != null) { hl.AddSegment(_segmentFactory.GetReferenceIDSegment(priorityElement.Qualifier, priorityElement.Value)); } var addrs = new AddressLoop(_segmentFactory); if (message.ShipToAddress.AddressName.IsNullOrEmpty()) { message.ShipToAddress.AddressName = "FEDERAL EXPRESS"; } addrs.AddAddress(message.ShipToAddress, Qualifier.EmptyQualifier); addrs.AddAddress(message.ShipFromAddress, Qualifier.EmptyQualifier); hl.AddLoop(addrs); message.Lines.ForEach(l => add_line(hl, l, originalDoc.LineItems)); hl.AddTo(doc); doc.AddSegment(_segmentFactory.GetTransactionTotal(message.Lines.Count())); doc.SetFooter(); return(doc); }
private EDIXmlTransactionSet create_transaction_set(InvoicedOrderMessage orderMessage) { if (orderMessage.Customer == null) { throw new ApplicationException("There is no customer associated with invoiced order message " + orderMessage.ControlNumber + ". Cannot build 810."); } var orderDoc = _docsRepo.GetByDocumentControlNumberAndPartnerID(orderMessage.ControlNumber.CastToInt(), BusinessPartner.Initech.Number); if (orderDoc == null) { throw new Exception(string.Format("Control number {0} not found for business partner {1}.", orderMessage.ControlNumber, orderMessage.BusinessPartnerNumber)); } var responseElements = orderDoc.ResponseElements.Where(e => e.ElementName == "REF02"); var isa = _repo.GetNextISA(GroupTypeConstants.Invoice, BusinessPartner.Initech.Number); if (orderMessage.LineCount() == 0) { throw new Exception("Invoiced order contains no line items!"); } var doc = new EDIXmlTransactionSet(_segmentFactory) { ISA = isa }; var docDef = _repo.GetNextDocument(isa, 810); doc.SetHeader("810", docDef.ControlNumber); docDef.ERPID = orderMessage.BOL; _repo.Save(docDef.ISAEntity); doc.AddSegment(get_begin_segment(orderMessage)); //doc.AddSegment(_segmentFactory.GetCurrencySegment("II",orderMessage.CurrencyCode)); if (responseElements != null) { responseElements.ForEach(r => doc.AddSegment(_segmentFactory.GetReferenceIDSegment(r.Qualifier, r.Value))); } doc.AddLoop(get_address_loop(orderMessage)); // doc.AddSegment(get_terms(orderMessage)); doc.AddLoop(get_detail_loop(orderMessage, orderDoc.LineItems)); doc.AddSegment(_segmentFactory.GetTotalMonetaryValue(orderMessage.GetTotal())); doc.AddSegment(_segmentFactory.GetTaxInformationSegment("SU", orderMessage.SalesTax)); doc.AddSegment(_segmentFactory.GetCarrierDetail("P", "Initech")); doc.AddSegment(_segmentFactory.GetTransactionTotal(orderMessage.LineCount())); doc.SetFooter(); return(doc); }