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); }
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(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); }