public static async Task <WSCreatePreInvoice.Create_Result> CreateContractInvoice(AutorizarFaturaçãoContratos CreateInvoice, NAVWSConfigurations WSConfigurations, string ContractInvoicePeriod, string InvoiceBorrowed, string CodTermosPagamento, bool PricesIncludingVAT, string Ship_to_Code) { DateTime now = DateTime.Now; string PostingNoSeries = ""; string Observacoes = ""; string Mes = InvoiceBorrowed.Substring(0, InvoiceBorrowed.IndexOf("/")); string Ano = InvoiceBorrowed.Substring(InvoiceBorrowed.IndexOf("/") + 1, 4); ConfigUtilizadores CUsers = DBUserConfigurations.GetById(CreateInvoice.UtilizadorCriação); Contratos Contrato = DBContracts.GetByIdLastVersion(CreateInvoice.NºContrato); WSCreatePreInvoice.Create_Result result = new WSCreatePreInvoice.Create_Result(); if (Contrato != null && Contrato.TipoContrato == 3 && Contrato.Tipo == 3) //Contrato Quotas { ConfiguracaoParametros Parametro = DBConfiguracaoParametros.GetByParametro("QuotasNoSeries"); if (Parametro != null && !string.IsNullOrEmpty(Parametro.Valor)) { PostingNoSeries = Parametro.Valor; } if (Contrato != null && !string.IsNullOrEmpty(Contrato.TextoFatura)) { Observacoes = Contrato.TextoFatura; Observacoes = Observacoes.Replace("<MES>", Mes); Observacoes = Observacoes.Replace("<ANO>", Ano); } } else { PostingNoSeries = !string.IsNullOrEmpty(CUsers.NumSerieFaturas) ? CUsers.NumSerieFaturas : ""; Observacoes = !string.IsNullOrEmpty(CreateInvoice.Descrição) ? CreateInvoice.Descrição : ""; } WSCreatePreInvoice.Create NAVCreate = new WSCreatePreInvoice.Create() { WSPreInvoice = new WSCreatePreInvoice.WSPreInvoice() { Sell_to_Customer_No = !string.IsNullOrEmpty(CreateInvoice.NºCliente) ? CreateInvoice.NºCliente : "", Document_Date = DateTime.Today, Document_DateSpecified = true, Shipment_Date = now, Shipment_DateSpecified = true, Shipment_Start_Time = now.AddHours(1), Shipment_Start_TimeSpecified = true, Document_Type = WSCreatePreInvoice.Document_Type.Invoice, Document_TypeSpecified = true, Posting_Date = CreateInvoice.DataDeRegisto ?? DateTime.Now, Posting_DateSpecified = true, Periodo_de_Fact_Contrato = !string.IsNullOrEmpty(ContractInvoicePeriod) ? ContractInvoicePeriod : "", Data_Serv_Prestado = !string.IsNullOrEmpty(InvoiceBorrowed) ? InvoiceBorrowed : "", Responsibility_Center = !string.IsNullOrEmpty(CUsers.CentroDeResponsabilidade) ? CUsers.CentroDeResponsabilidade : "", Posting_No_Series = PostingNoSeries, Due_Date = (DateTime)CreateInvoice.DataDeExpiração, Due_DateSpecified = true, Payment_Terms_Code = CodTermosPagamento, //Amaro Observacoes = Observacoes, Contract_No = !string.IsNullOrEmpty(CreateInvoice.NºContrato) ? CreateInvoice.NºContrato : "", Factura_CAF = true, Factura_CAFSpecified = true, Codigo_Pedido = !string.IsNullOrEmpty(CreateInvoice.NoRequisicaoDoCliente) ? CreateInvoice.NoRequisicaoDoCliente : "", No_Compromisso = !string.IsNullOrEmpty(CreateInvoice.NoCompromisso) ? CreateInvoice.NoCompromisso : "", Data_Encomenda = CreateInvoice.DataRececaoRequisicao ?? DateTime.MinValue, Data_EncomendaSpecified = true, RegionCode20 = !string.IsNullOrEmpty(CreateInvoice.CódigoRegião) ? CreateInvoice.CódigoRegião : "", FunctionAreaCode20 = !string.IsNullOrEmpty(CreateInvoice.CódigoÁreaFuncional) ? CreateInvoice.CódigoÁreaFuncional : "", ResponsabilityCenterCode20 = !string.IsNullOrEmpty(CreateInvoice.CódigoCentroResponsabilidade) ? CreateInvoice.CódigoCentroResponsabilidade : "", Prices_Including_VAT = PricesIncludingVAT, Prices_Including_VATSpecified = true, Ship_to_Code = !string.IsNullOrEmpty(Ship_to_Code) ? Ship_to_Code : "", } }; // Configure NAV Client EndpointAddress WS_URL = new EndpointAddress(WSConfigurations.WS_PreInvoice_URL.Replace("Company", WSConfigurations.WS_User_Company)); WSCreatePreInvoice.WSPreInvoice_PortClient WS_Client = new WSCreatePreInvoice.WSPreInvoice_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 { result = await WS_Client.CreateAsync(NAVCreate); return(result); } catch (Exception ex) { return(null); } }
public static async Task <WSCreatePreInvoice.Create_Result> CreatePreInvoiceHeader(NAVSalesHeaderViewModel PreInvoiceToCreate, NAVWSConfigurations WSConfigurations) { WSCreatePreInvoice.Create NAVCreate = new WSCreatePreInvoice.Create() { WSPreInvoice = new WSCreatePreInvoice.WSPreInvoice() { Sell_to_Customer_No = PreInvoiceToCreate.Sell_toCustomerNo, Document_Date = PreInvoiceToCreate.DocumentDate, Shipment_Date = PreInvoiceToCreate.ShipmentDate, Periodo_de_Fact_Contrato = PreInvoiceToCreate.PeriododeFact_Contrato, Valor_Contrato = PreInvoiceToCreate.ValorContrato, Ship_to_Code = PreInvoiceToCreate.Ship_toCode, //Ship_to_Address = PreInvoiceToCreate.Ship_toAddress.Length >= 50 ? PreInvoiceToCreate.Ship_toAddress.Substring(0, 49) : PreInvoiceToCreate.Ship_toAddress, //Ship_to_Address_2 = PreInvoiceToCreate.Ship_toAddress2, //Ship_to_City = PreInvoiceToCreate.Ship_toCity, //Ship_to_Contact = PreInvoiceToCreate.Ship_toContact, //Ship_to_Country_Region_Code = PreInvoiceToCreate.Ship_toCountryRegionCode, //Ship_to_County = PreInvoiceToCreate.Ship_toCounty, //Ship_to_Name = PreInvoiceToCreate.Ship_toName, //Ship_to_Name_2 = PreInvoiceToCreate.Ship_toName2, //Ship_to_Post_Code = PreInvoiceToCreate.Ship_toPostCode, Currency_Code = PreInvoiceToCreate.CurrencyCode, Due_Date = PreInvoiceToCreate.DueDate, Payment_Terms_Code = PreInvoiceToCreate.PaymentTermsCode, Payment_Method_Code = PreInvoiceToCreate.PaymentMethodCode, Responsibility_Center = PreInvoiceToCreate.ResponsibilityCenter, Posting_No_Series = PreInvoiceToCreate.PostingNoSeries, No_Compromisso = PreInvoiceToCreate.No_Compromisso, Codigo_Pedido = PreInvoiceToCreate.CodigoPedido, Data_Encomenda = PreInvoiceToCreate.DataEncomenda, Data_Serv_Prestado = PreInvoiceToCreate.DataServ_Prestado, Observacoes = PreInvoiceToCreate.Observacoes, Contract_No = PreInvoiceToCreate.ContractNo, Document_Type = WSCreatePreInvoice.Document_Type.Invoice, Factura_CAF = PreInvoiceToCreate.FacturaCAF, User_pre_registo_2009 = PreInvoiceToCreate.Userpreregisto2009, Posting_Date = PreInvoiceToCreate.PostingDate, Document_TypeSpecified = true, Posting_DateSpecified = true, Shipment_DateSpecified = true, Shipment_Start_TimeSpecified = true, ReportID_OriginalSpecified = true, Valor_ContratoSpecified = true, Document_DateSpecified = true, Factura_CAFSpecified = true, Due_DateSpecified = true, Order_DateSpecified = true, Data_EncomendaSpecified = true, CommentSpecified = true, Debit_MemoSpecified = true, //Dimensions ResponsabilityCenterCode20 = PreInvoiceToCreate.ResponsabilityCenterCode20, FunctionAreaCode20 = PreInvoiceToCreate.FunctionAreaCode20, RegionCode20 = PreInvoiceToCreate.RegionCode20, Prices_Including_VAT = PreInvoiceToCreate.PricesIncludingVAT == 1 ? true : false, Prices_Including_VATSpecified = true } }; //Configure NAV Client EndpointAddress WS_URL = new EndpointAddress(WSConfigurations.WS_PreInvoice_URL.Replace("Company", WSConfigurations.WS_User_Company)); WSCreatePreInvoice.WSPreInvoice_PortClient WS_Client = new WSCreatePreInvoice.WSPreInvoice_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 { WSCreatePreInvoice.Create_Result result = await WS_Client.CreateAsync(NAVCreate); return(result); } catch (Exception ex) { return(null); } }