public static dbentities.SalesOrderDetail DtoToEntity(this SalesOrderDetailsRequest request) { dbentities.SalesOrderDetail entity = null; if (request != null) { entity = new dbentities.SalesOrderDetail { SalesOrderID = request.SalesOrderId, ProductID = request.ProductId, Quantity = request.Quantity, UnitPrice = request.UnitPrice, CreatedBy = request.CreatedBy, CreatedTime = request.CreatedTime, ModifiedBy = request.ModifiedBy, ModifiedTime = request.ModifiedTime, PreviousQuantity = request.PreviousQuantity, Remarks = request.Remarks, PriceTypeID = request.PriceTypeId, }; } return(entity); }
public SalesOrderDetailsResponse SetSalesOrder(SalesOrderDetailsRequest salesOrder) { //SalesOrderDetailsResponse response = new SalesOrderDetailsResponse(); var request = new SalesOrderMaintainRequestBundleMessage_sync(); request.SalesOrder = new SalesOrderMaintainRequest[1]; var sapSalesOrder = new SalesOrderMaintainRequest(); if (salesOrder.ExternalId == null) { sapSalesOrder.actionCode = ActionCode.Item01; sapSalesOrder.actionCodeSpecified = true; } else { sapSalesOrder.ID = new SalesOrderManageService.BusinessTransactionDocumentID(); sapSalesOrder.ID.Value = salesOrder.ExternalId; } sapSalesOrder.itemListCompleteTransmissionIndicator = true; sapSalesOrder.itemListCompleteTransmissionIndicatorSpecified = true; sapSalesOrder.ReleaseAllItemsToExecution = true; sapSalesOrder.ReleaseAllItemsToExecutionSpecified = true; sapSalesOrder.ReleaseCustomerRequest = true; sapSalesOrder.ReleaseCustomerRequestSpecified = true; sapSalesOrder.UltimateDestination = salesOrder.UltDestinationId; sapSalesOrder.FreightAccount = salesOrder.FreightAccount; sapSalesOrder.SalesAndServiceBusinessArea = new SalesOrderMaintainRequestSalesAndServiceBusinessArea(); sapSalesOrder.SalesAndServiceBusinessArea.DistributionChannelCode = new SalesOrderManageService.DistributionChannelCode(); sapSalesOrder.SalesAndServiceBusinessArea.DistributionChannelCode.Value = "01"; if (!string.IsNullOrEmpty(salesOrder.AccountExternalId)) { sapSalesOrder.AccountParty = new SalesOrderMaintainRequestPartyParty(); sapSalesOrder.AccountParty.PartyID = new SalesOrderManageService.PartyID(); sapSalesOrder.AccountParty.PartyID.Value = salesOrder.AccountExternalId; //set account external id } if (!string.IsNullOrEmpty(salesOrder.ContactExternalId)) { sapSalesOrder.AccountParty.ContactParty = new SalesOrderMaintainRequestPartyContactParty[1]; sapSalesOrder.AccountParty.ContactParty[0] = new SalesOrderMaintainRequestPartyContactParty(); sapSalesOrder.AccountParty.ContactParty[0].PartyID = new SalesOrderManageService.PartyID(); sapSalesOrder.AccountParty.ContactParty[0].PartyID.Value = salesOrder.ContactExternalId; //contaact external id } if (!string.IsNullOrEmpty(salesOrder.OrganizationID)) { sapSalesOrder.SalesUnitParty = new SalesOrderMaintainRequestPartyIDParty(); sapSalesOrder.SalesUnitParty.PartyID = new SalesOrderManageService.PartyID(); sapSalesOrder.SalesUnitParty.PartyID.Value = salesOrder.OrganizationID; //mapped to external id from middleware request --S5200 } if (salesOrder.Ownership != null && salesOrder.Ownership.LeadOwner != null && !string.IsNullOrEmpty(salesOrder.Ownership.LeadOwner.ExternalId)) { sapSalesOrder.EmployeeResponsibleParty = new SalesOrderMaintainRequestPartyIDParty(); sapSalesOrder.EmployeeResponsibleParty.PartyID = new SalesOrderManageService.PartyID(); sapSalesOrder.EmployeeResponsibleParty.PartyID.Value = salesOrder.Ownership.LeadOwner.ExternalId; //owner external id. example is --7000022 } if (!string.IsNullOrEmpty(salesOrder.CustomerPo)) { sapSalesOrder.BuyerID = new SalesOrderManageService.BusinessTransactionDocumentID(); sapSalesOrder.BuyerID.Value = salesOrder.CustomerPo; //set customer po } sapSalesOrder.DeliveryTerms = new SalesOrderMaintainRequestDeliveryTerms(); sapSalesOrder.DeliveryTerms.Incoterms = new SalesOrderManageService.Incoterms(); sapSalesOrder.DeliveryTerms.Incoterms.ClassificationCode = salesOrder.IncotermID; //mapped to external id from middleware request --DDU if (string.IsNullOrEmpty(salesOrder.IncotermLocation)) { sapSalesOrder.DeliveryTerms.Incoterms.TransferLocationName = salesOrder.IncotermLocation; } sapSalesOrder.CashDiscountTerms = new SalesOrderMaintainRequestCashDiscountTerms(); sapSalesOrder.CashDiscountTerms.Code = new SalesOrderManageService.CashDiscountTermsCode(); sapSalesOrder.CashDiscountTerms.Code.Value = salesOrder.PaymentTermID; //mapped to external id from middleware request --1003 if (!string.IsNullOrEmpty(salesOrder.CurrencyID)) { sapSalesOrder.PricingTerms = new SalesOrderMaintainRequestPricingTerms(); sapSalesOrder.PricingTerms.CurrencyCode = salesOrder.CurrencyID; //to do, use external id --USD } sapSalesOrder.PostingDate = new DateTime(); sapSalesOrder.PostingDate = Convert.ToDateTime(salesOrder.OrderDate);//setting posting date and converting orderdate, probably ok if (salesOrder.SOLines != null) { try { sapSalesOrder.Item = SetSalesOrderLines(salesOrder.SOLines, salesOrder.CurrencyID); } catch (Exception ex) { var error = new SalesOrderDetailsResponse(); error.Errors = new List <string>(); error.Errors.Add(ex.Message); return(error); } //error handling if product specs fail to generate if (salesOrder.SOLines.Count != sapSalesOrder.Item.Count()) { var response = new SalesOrderDetailsResponse(); response.Errors = new List <string>(); response.Errors.Add("product specs failed to generate"); return(response); } } request.SalesOrder[0] = sapSalesOrder; var sapResponse = _manageClient.MaintainBundle(request); var parsedSapResponse = ParseSapManageResponse(sapResponse, salesOrder); if (parsedSapResponse.Errors.Count == 0) { if (salesOrder.SOLines != null) { //make another call to set price now with generated ID request.SalesOrder[0].ID = new SalesOrderManageService.BusinessTransactionDocumentID(); request.SalesOrder[0].ID.Value = parsedSapResponse.SalesOrderExternalId; request.SalesOrder[0].actionCodeSpecified = false; parsedSapResponse = ParseSapManageResponse(_manageClient.MaintainBundle(request), salesOrder); } } return(parsedSapResponse); }
public SalesOrderDetailsResponse ParseSapManageResponse(SalesOrderMaintainConfirmationBundleMessage_sync sapResponse, SalesOrderDetailsRequest salesOrder = null) { SalesOrderDetailsResponse response = new SalesOrderDetailsResponse(); BaseResponse tempRes = SapLogParser.ParseSapResponseLog(sapResponse.Log); response.Errors = tempRes.Errors; response.Warnings = tempRes.Warnings; if (sapResponse.SalesOrder != null) { response.SalesOrderExternalId = sapResponse.SalesOrder[0].ID.Value; } if (salesOrder != null && salesOrder.SOLines.Count > 0) { response.Lines = new List <ItemProductSpecs>(); foreach (var line in salesOrder.SOLines) { string trimmedProdSpec = line.ProductSpec; trimmedProdSpec = trimmedProdSpec.TrimStart('0'); response.Lines.Add(new ItemProductSpecs { LineNum = line.LineNum, ProductSpec = trimmedProdSpec }); } response.Items = new List <PairedIdsResponse>(); foreach (var line in salesOrder.SOLines) { response.Items.Add(new PairedIdsResponse { LocalId = line.ItemDetails.Id, ExternalId = line.ItemDetails.ExternalId }); } } return(response); }
public SalesOrderDetailsResponse SetSalesOrder(SalesOrderDetailsRequest salesOrder) { return(_salesOrderService.SetSalesOrder(salesOrder)); }