public static async Task <WSCreateProjectDiaryLine.Create_Result> CreateNavDiaryLines(WSCreateProjectDiaryLine.WSJobJournalLine DiaryLines, Guid TransactID, NAVWSConfigurations WSConfigurations) { EndpointAddress WS_URL = new EndpointAddress(WSConfigurations.WS_JobJournalLine_URL.Replace("Company", WSConfigurations.WS_User_Company)); WSCreateProjectDiaryLine.WSJobJournalLine_PortClient WS_Client = new WSCreateProjectDiaryLine.WSJobJournalLine_PortClient(navWSBinding, WS_URL); WS_Client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Delegation; WS_Client.ClientCredentials.Windows.ClientCredential = new NetworkCredential(WSConfigurations.WS_User_Login, WSConfigurations.WS_User_Password, WSConfigurations.WS_User_Domain); try { WSCreateProjectDiaryLine.Create toCreate = new WSCreateProjectDiaryLine.Create(); toCreate.WSJobJournalLine = DiaryLines; WSCreateProjectDiaryLine.Create_Result result = await WS_Client.CreateAsync(toCreate); if (result != null) { WSCreateProjectDiaryLine.Update toUpdate = new WSCreateProjectDiaryLine.Update() { WSJobJournalLine = new WSCreateProjectDiaryLine.WSJobJournalLine() { Key = result.WSJobJournalLine.Key, Line_No = result.WSJobJournalLine.Line_No, Portal_Transaction_No = TransactID.ToString(), Job_No = result.WSJobJournalLine.Job_No, Document_DateSpecified = result.WSJobJournalLine.Document_DateSpecified, Document_Date = result.WSJobJournalLine.Document_Date, Document_No = string.IsNullOrEmpty(result.WSJobJournalLine.Document_No) ? "ND" : result.WSJobJournalLine.Document_No, TypeSpecified = true, Type = result.WSJobJournalLine.Type, Description100 = result.WSJobJournalLine.Description100, FunctionAreaCode20 = result.WSJobJournalLine.FunctionAreaCode20, ResponsabilityCenterCode20 = result.WSJobJournalLine.ResponsabilityCenterCode20, RegionCode20 = result.WSJobJournalLine.RegionCode20, Location_Code = result.WSJobJournalLine.Location_Code, No = result.WSJobJournalLine.No, Posting_DateSpecified = true, Posting_Date = result.WSJobJournalLine.Posting_Date, Unit_of_Measure_Code = result.WSJobJournalLine.Unit_of_Measure_Code, ChargeableSpecified = true, Chargeable = result.WSJobJournalLine.Chargeable, QuantitySpecified = true, Quantity = result.WSJobJournalLine.Quantity, Unit_Cost = DiaryLines.Unit_Cost, Unit_CostSpecified = true, Unit_Price = DiaryLines.Unit_Price, Unit_PriceSpecified = true, Ws_Communicated_Nav_2009 = true, Ws_Communicated_Nav_2009Specified = true, } }; WS_Client = new WSCreateProjectDiaryLine.WSJobJournalLine_PortClient(navWSBinding, WS_URL); WS_Client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Delegation; WS_Client.ClientCredentials.Windows.ClientCredential = new NetworkCredential(WSConfigurations.WS_User_Login, WSConfigurations.WS_User_Password, WSConfigurations.WS_User_Domain); WSCreateProjectDiaryLine.Update_Result resultUpdate = await WS_Client.UpdateAsync(toUpdate); } return(null); } catch (Exception ex) { throw ex; } }
public static async Task <WSCreateProjectDiaryLine.CreateMultiple_Result> CreateNavDiaryLines(List <RequisitionLineViewModel> items, Guid transactionId, NAVWSConfigurations WSConfigurations) { if (items == null) { throw new ArgumentNullException("items"); } List <WSCreateProjectDiaryLine.WSJobJournalLine> jobJournalLines = new List <WSCreateProjectDiaryLine.WSJobJournalLine>(); int lineNo = 0; foreach (var item in items) { WSCreateProjectDiaryLine.WSJobJournalLine line = new WSCreateProjectDiaryLine.WSJobJournalLine(); line.Line_No = lineNo += 1000; line.Line_NoSpecified = true; line.Document_No = "ES_" + item.RequestNo;//.ProjectNo; line.Job_No = item.ProjectNo; line.Document_Date = item.CreateDateTime.HasValue ? item.CreateDateTime.Value : DateTime.Now; line.Document_DateSpecified = true; //ORIGINAL line.Posting_Date = DateTime.Now; //AROMAO COPIA //line.Posting_Date = Convert.ToDateTime("31/12/2018"); // DateTime.Now; line.Posting_DateSpecified = true; line.Entry_Type = WSCreateProjectDiaryLine.Entry_Type.Usage; line.Entry_TypeSpecified = true; line.Type = WSCreateProjectDiaryLine.Type.Item; line.TypeSpecified = true; line.No = item.Code; line.Description100 = item.Description; line.Quantity = item.QuantityReceived == null ? 0 : item.QuantityReceived.Value; line.QuantitySpecified = true; line.Unit_of_Measure_Code = item.UnitMeasureCode; line.Location_Code = item.LocalCode; line.RegionCode20 = item.RegionCode; line.FunctionAreaCode20 = item.FunctionalAreaCode; line.Portal_Transaction_No = transactionId.ToString(); jobJournalLines.Add(line); } WSCreateProjectDiaryLine.CreateMultiple navCreate = new WSCreateProjectDiaryLine.CreateMultiple(jobJournalLines.ToArray()); //Configure NAV Client EndpointAddress ws_URL = new EndpointAddress(WSConfigurations.WS_JobJournalLine_URL.Replace("Company", WSConfigurations.WS_User_Company)); WSCreateProjectDiaryLine.WSJobJournalLine_PortClient ws_Client = new WSCreateProjectDiaryLine.WSJobJournalLine_PortClient(navWSBinding, ws_URL); ws_Client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Delegation; ws_Client.ClientCredentials.Windows.ClientCredential = new NetworkCredential(WSConfigurations.WS_User_Login, WSConfigurations.WS_User_Password, WSConfigurations.WS_User_Domain); //try //{ WSCreateProjectDiaryLine.CreateMultiple_Result result = await ws_Client.CreateMultipleAsync(navCreate); return(result); //} //catch (Exception ex) //{ // throw; //} }