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;
            //}
        }