Ejemplo n.º 1
0
        public static async Task <WSCreatePreInvoice.Create_Result> CreatePreInvoice(AuthorizedCustomerBillingHeader billingHeader, NAVWSConfigurations WSConfigurations)
        {
            SPInvoiceListViewModel invoiceHeader = new SPInvoiceListViewModel();

            invoiceHeader.InvoiceToClientNo = billingHeader.InvoiceToClientNo;
            invoiceHeader.Date                     = billingHeader.Date;
            invoiceHeader.CommitmentNumber         = billingHeader.CommitmentNumber;
            invoiceHeader.ClientRequest            = billingHeader.ClientRequest;
            invoiceHeader.ClientVATReg             = billingHeader.ClientVATReg;
            invoiceHeader.ContractNo               = billingHeader.ContractNo;
            invoiceHeader.Currency                 = billingHeader.Currency;
            invoiceHeader.ServiceDate              = billingHeader.ServiceDate;
            invoiceHeader.UpdateDate               = billingHeader.UpdateDate;
            invoiceHeader.RegionCode               = billingHeader.RegionCode;
            invoiceHeader.FunctionalAreaCode       = billingHeader.FunctionalAreaCode;
            invoiceHeader.ResponsabilityCenterCode = billingHeader.ResponsabilityCenterCode;
            invoiceHeader.LocationCode             = billingHeader.LocationCode;
            invoiceHeader.Comments                 = billingHeader.Comments;
            invoiceHeader.CodTermosPagamento       = billingHeader.CodTermosPagamento;
            invoiceHeader.CodMetodoPagamento       = billingHeader.CodMetodoPagamento;
            invoiceHeader.CreateUser               = billingHeader.CreateUser;
            invoiceHeader.FaturaPrecosIvaIncluido  = billingHeader.FaturaPrecosIvaIncluido.HasValue ? (bool)billingHeader.FaturaPrecosIvaIncluido : false;

            return(await CreatePreInvoice(invoiceHeader, WSConfigurations));
        }
Ejemplo n.º 2
0
        public static List <SPInvoiceListViewModel> GetAllAutorized()
        {
            try
            {
                List <SPInvoiceListViewModel> result = new List <SPInvoiceListViewModel>();
                using (var ctx = new SuchDBContextExtention())
                {
                    var parameters = new[] {
                        new SqlParameter("@Autorization", 1),
                        new SqlParameter("@Invoiced", 0)
                    };

                    IEnumerable <dynamic> data = ctx.execStoredProcedure("exec NAV2017ProjectMovemmentsInvoiceGrid @Autorization, @Invoiced", parameters);

                    foreach (dynamic temp in data)
                    {
                        SPInvoiceListViewModel item = new SPInvoiceListViewModel();
                        item.ClientRequest     = temp.PedidodoCliente.Equals(DBNull.Value) ? "" : (string)temp.PedidodoCliente;
                        item.InvoiceToClientNo = temp.FaturaNoCliente.Equals(DBNull.Value) ? "" : (string)temp.FaturaNoCliente;
                        item.CommitmentNumber  = temp.NoCompromisso.Equals(DBNull.Value) ? "" : (string)temp.NoCompromisso;
                        item.ProjectNo         = temp.NoProjeto.Equals(DBNull.Value) ? "" : (string)temp.NoProjeto;
                        item.Date                     = temp.Data.Equals(DBNull.Value) ? "" : (string)temp.Data.ToString("yyyy-MM-dd");
                        item.LineNo                   = (int)temp.NoLinha;
                        item.MovementType             = temp.TipoMovimento.Equals(DBNull.Value) ? null : (int?)temp.TipoMovimento;
                        item.Type                     = temp.Tipo.Equals(DBNull.Value) ? null : (int?)temp.Tipo;
                        item.Code                     = temp.Código.Equals(DBNull.Value) ? "" : (string)temp.Código;
                        item.Description              = temp.Descrição.Equals(DBNull.Value) ? "" : (string)temp.Descrição;
                        item.MeasurementUnitCode      = temp.CodUnidadeMedida.Equals(DBNull.Value) ? "" : (string)temp.CodUnidadeMedida;
                        item.Quantity                 = temp.Quantidade.Equals(DBNull.Value) ? null : (decimal?)temp.Quantidade;
                        item.LocationCode             = temp.CodLocalizacao.Equals(DBNull.Value) ? "" : (string)temp.CodLocalizacao;
                        item.ProjectContabGroup       = temp.GrupoContabProjeto.Equals(DBNull.Value) ? "" : (string)temp.GrupoContabProjeto;
                        item.RegionCode               = temp.CodigoRegiao.Equals(DBNull.Value) ? "" : (string)temp.CodigoRegiao;
                        item.FunctionalAreaCode       = temp.CodAreaFuncional.Equals(DBNull.Value) ? "" : (string)temp.CodAreaFuncional;
                        item.ResponsabilityCenterCode = temp.CodCentroResponsabilidade.Equals(DBNull.Value) ? "" : (string)temp.CodCentroResponsabilidade;
                        item.User                     = temp.Utilizador.Equals(DBNull.Value) ? "" : (string)temp.Utilizador;
                        item.UnitCost                 = temp.CustoUnitario.Equals(DBNull.Value) ? null : (decimal?)temp.CustoUnitario;
                        item.TotalCost                = temp.CustoTotal.Equals(DBNull.Value) ? null : (decimal?)temp.CustoTotal;
                        item.UnitPrice                = temp.PrecoUnitario.Equals(DBNull.Value) ? null : (decimal?)temp.PrecoUnitario;
                        item.TotalPrice               = temp.PrecoTotal.Equals(DBNull.Value) ? null : (decimal?)temp.PrecoTotal;
                        item.Billable                 = temp.Faturável.Equals(DBNull.Value) ? null : (bool?)temp.Faturável;
                        item.AutorizatedInvoice       = temp.FaturacaoAutorizada.Equals(DBNull.Value) ? null : (bool?)temp.FaturacaoAutorizada;
                        item.AutorizatedInvoiceData   = temp.DataAutorizacaoFaturacao.Equals(DBNull.Value) ? "" : (string)temp.DataAutorizacaoFaturacao.ToString("yyyy-MM-dd");
                        item.ConsumptionDate          = temp.DataConsumo.Equals(DBNull.Value) ? "" : (string)temp.DataConsumo.ToString("yyyy-MM-dd");
                        item.CreateDate               = temp.DataHoraCriacao.Equals(DBNull.Value) ? null : (DateTime?)temp.DataHoraCriacao;
                        item.CreateUser               = temp.UtilizadorCriacao.Equals(DBNull.Value) ? "" : (string)temp.UtilizadorCriacao;
                        item.Registered               = temp.Registado.Equals(DBNull.Value) ? null : (bool?)temp.Registado;
                        item.Billed                   = temp.Faturada.Equals(DBNull.Value) ? null : (bool?)temp.Faturada;
                        item.MealType                 = temp.TipoRefeicao.Equals(DBNull.Value) ? null : (int?)temp.TipoRefeicao;
                        item.InvoiceGroup             = temp.GrupoFatura.Equals(DBNull.Value) ? null : (int?)temp.GrupoFatura;
                        item.InvoiceGroupDescription  = temp.GrupoFaturaDescricao.Equals(DBNull.Value) ? "" : (string)temp.GrupoFaturaDescricao;
                        result.Add(item);
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        public static async Task <WSCreatePreInvoice.Create_Result> CreatePreInvoice(AuthorizedCustomerBillingHeader billingHeader, NAVWSConfigurations WSConfigurations, string dataFormulario, string projeto, SPInvoiceListViewModel Ship)
        {
            SPInvoiceListViewModel invoiceHeader = new SPInvoiceListViewModel();

            invoiceHeader.InvoiceToClientNo = billingHeader.InvoiceToClientNo;
            invoiceHeader.Date                     = billingHeader.Date;
            invoiceHeader.DataPedido               = billingHeader.DataPedido;
            invoiceHeader.CommitmentNumber         = billingHeader.CommitmentNumber;
            invoiceHeader.ClientRequest            = billingHeader.ClientRequest;
            invoiceHeader.ClientVATReg             = billingHeader.ClientVATReg;
            invoiceHeader.ContractNo               = billingHeader.ContractNo;
            invoiceHeader.Currency                 = billingHeader.Currency;
            invoiceHeader.ServiceDate              = billingHeader.ServiceDate;
            invoiceHeader.UpdateDate               = billingHeader.UpdateDate;
            invoiceHeader.RegionCode               = billingHeader.RegionCode;
            invoiceHeader.FunctionalAreaCode       = billingHeader.FunctionalAreaCode;
            invoiceHeader.ResponsabilityCenterCode = billingHeader.ResponsabilityCenterCode;
            invoiceHeader.LocationCode             = billingHeader.LocationCode;
            invoiceHeader.Comments                 = billingHeader.Comments;
            invoiceHeader.CodTermosPagamento       = billingHeader.CodTermosPagamento;
            invoiceHeader.CodMetodoPagamento       = billingHeader.CodMetodoPagamento;
            invoiceHeader.CreateUser               = billingHeader.CreateUser;
            invoiceHeader.Posting_Date             = Convert.ToDateTime(dataFormulario);
            invoiceHeader.ProjectNo                = projeto;
            invoiceHeader.MovementType             = billingHeader.MovementType;

            invoiceHeader.Ship_to_Code = Ship.Ship_to_Code;
            //invoiceHeader.Ship_to_Address = Ship.Ship_to_Address;
            //invoiceHeader.Ship_to_Address_2 = Ship.Ship_to_Address_2;
            //invoiceHeader.Ship_to_City = Ship.Ship_to_City;
            //invoiceHeader.Ship_to_Contact = Ship.Ship_to_Contact;
            //invoiceHeader.Ship_to_Country_Region_Code = Ship.Ship_to_Country_Region_Code;
            //invoiceHeader.Ship_to_County = Ship.Ship_to_County;
            //invoiceHeader.Ship_to_Name = Ship.Ship_to_Name;
            //invoiceHeader.Ship_to_Name_2 = Ship.Ship_to_Name_2;
            //invoiceHeader.Ship_to_Post_Code = Ship.Ship_to_Post_Code;

            invoiceHeader.FaturaPrecosIvaIncluido = billingHeader.FaturaPrecosIvaIncluido.HasValue ? (bool)billingHeader.FaturaPrecosIvaIncluido : false;

            return(await CreatePreInvoice(invoiceHeader, WSConfigurations));
        }
Ejemplo n.º 4
0
        public static async Task <WSCreatePreInvoice.Create_Result> CreatePreInvoice(SPInvoiceListViewModel preInvoiceToCreate, NAVWSConfigurations WSConfigurations)
        {
            WSCreatePreInvoice.Document_Type tipo;
            bool   notaDebito      = false;
            string PostingNoSeries = "";

            ConfigUtilizadores CUsers = DBUserConfigurations.GetById(preInvoiceToCreate.CreateUser);

            if (preInvoiceToCreate.MovementType == 2)//Nota de débito
            {
                tipo            = WSCreatePreInvoice.Document_Type.Invoice;
                notaDebito      = true;
                PostingNoSeries = CUsers.NumSerieNotasDebito;
            }
            else if (preInvoiceToCreate.MovementType == 4)//Nota de crédito
            {
                tipo            = WSCreatePreInvoice.Document_Type.Credit_Memo;
                notaDebito      = false;
                PostingNoSeries = CUsers.NumSerieNotasCredito;
            }
            else// Fatura
            {
                tipo            = WSCreatePreInvoice.Document_Type.Invoice;
                notaDebito      = false;
                PostingNoSeries = CUsers.NumSerieFaturas;
            }

            WSCreatePreInvoice.Create NAVCreate = new WSCreatePreInvoice.Create()
            {
                WSPreInvoice = new WSCreatePreInvoice.WSPreInvoice()
                {
                    Document_Type           = tipo,
                    Document_TypeSpecified  = true,
                    Sell_to_Customer_No     = preInvoiceToCreate.InvoiceToClientNo,
                    VAT_Registration_No     = preInvoiceToCreate.ClientVATReg,
                    Contract_No             = preInvoiceToCreate.ContractNo,
                    Debit_Memo              = notaDebito,
                    Debit_MemoSpecified     = true,
                    Posting_No_Series       = PostingNoSeries,
                    Codigo_Pedido           = preInvoiceToCreate.ClientRequest,
                    Currency_Code           = preInvoiceToCreate.Currency,
                    Data_Serv_Prestado      = preInvoiceToCreate.ServiceDate,
                    Data_Encomenda          = !string.IsNullOrEmpty(preInvoiceToCreate.DataPedido) ? DateTime.Parse(preInvoiceToCreate.DataPedido) : DateTime.MinValue,
                    Data_EncomendaSpecified = !string.IsNullOrEmpty(preInvoiceToCreate.DataPedido),
                    //Document_Date = preInvoiceToCreate.dat
                    //Due_Date
                    //Document_Date
                    //External_Document_No
                    RegionCode20               = preInvoiceToCreate.RegionCode,
                    FunctionAreaCode20         = preInvoiceToCreate.FunctionalAreaCode,
                    ResponsabilityCenterCode20 = preInvoiceToCreate.ResponsabilityCenterCode,
                    Location_Code              = preInvoiceToCreate.LocationCode,
                    No_Compromisso             = preInvoiceToCreate.CommitmentNumber,
                    Observacoes           = preInvoiceToCreate.Comments,
                    Responsibility_Center = CUsers.CentroDeResponsabilidade,
                    //Order_Date
                    Payment_Method_Code = preInvoiceToCreate.CodMetodoPagamento,
                    Payment_Terms_Code  = preInvoiceToCreate.CodTermosPagamento,
                    //Posting_Date
                    Posting_Date           = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()) ? DateTime.Parse(preInvoiceToCreate.Posting_Date.ToString()) : DateTime.MinValue,
                    Posting_DateSpecified  = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()),
                    Document_Date          = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()) ? DateTime.Parse(preInvoiceToCreate.Posting_Date.ToString()) : DateTime.MinValue,
                    Document_DateSpecified = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()),
                    External_Document_No   = preInvoiceToCreate.ProjectNo,

                    Ship_to_Address             = preInvoiceToCreate.Ship_to_Address,
                    Ship_to_Address_2           = preInvoiceToCreate.Ship_to_Address_2,
                    Ship_to_City                = preInvoiceToCreate.Ship_to_City,
                    Ship_to_Code                = preInvoiceToCreate.Ship_to_Code,
                    Ship_to_Contact             = preInvoiceToCreate.Ship_to_Contact,
                    Ship_to_Country_Region_Code = preInvoiceToCreate.Ship_to_Country_Region_Code,
                    Ship_to_County              = preInvoiceToCreate.Ship_to_County,
                    Ship_to_Name                = preInvoiceToCreate.Ship_to_Name,
                    Ship_to_Name_2              = preInvoiceToCreate.Ship_to_Name_2,
                    Ship_to_Post_Code           = preInvoiceToCreate.Ship_to_Post_Code,

                    Prices_Including_VAT          = preInvoiceToCreate.FaturaPrecosIvaIncluido.HasValue ? (bool)preInvoiceToCreate.FaturaPrecosIvaIncluido : 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);


            return(await WS_Client.CreateAsync(NAVCreate));
        }