//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;

public partial class GestaoProjectosEntities : DbContext
{
    public GestaoProjectosEntities()
        : base("name=GestaoProjectosEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public DbSet<AreaCientifica> AreaCientifica { get; set; }
    public DbSet<ContratoAnexos> ContratoAnexos { get; set; }
    public DbSet<Estados> Estados { get; set; }
    public DbSet<GrauAcademico> GrauAcademico { get; set; }
    public DbSet<Idioma> Idioma { get; set; }
    public DbSet<MapaImputacao> MapaImputacao { get; set; }
    public DbSet<MotivoTermino> MotivoTermino { get; set; }
    public DbSet<ProjectoAnexos> ProjectoAnexos { get; set; }
    public DbSet<RecursoHumano> RecursoHumano { get; set; }
    public DbSet<Seguradoras> Seguradoras { get; set; }
    public DbSet<TipoBolsa> TipoBolsa { get; set; }
    public DbSet<TipoDocumento> TipoDocumento { get; set; }
    public DbSet<TipoUnidade> TipoUnidade { get; set; }
    public DbSet<VerbasMovimento> VerbasMovimento { get; set; }
    public DbSet<Logs> Logs { get; set; }
    public DbSet<TipoEntidade> TipoEntidade { get; set; }
    public DbSet<TipoInstituicao> TipoInstituicao { get; set; }
    public DbSet<Unidades> Unidades { get; set; }
    public DbSet<GruposInvestigacao> GruposInvestigacao { get; set; }
    public DbSet<ClasseDocumentoDespesa> ClasseDocumentoDespesa { get; set; }
    public DbSet<ErrosLog> ErrosLog { get; set; }
    public DbSet<MenuPages> MenuPages { get; set; }
    public DbSet<MenuTabs> MenuTabs { get; set; }
    public DbSet<EntityMappings> EntityMappings { get; set; }
    public DbSet<AreaCientificaML> AreaCientificaML { get; set; }
    public DbSet<CandidaturaML> CandidaturaML { get; set; }
    public DbSet<EntidadeProgramaML> EntidadeProgramaML { get; set; }
    public DbSet<OverheadTipo> OverheadTipo { get; set; }
    public DbSet<ProjectoOverheads> ProjectoOverheads { get; set; }
    public DbSet<VerbasOverheads> VerbasOverheads { get; set; }
    public DbSet<VerbasOverheadValor> VerbasOverheadValor { get; set; }
    public DbSet<Permissoes> Permissoes { get; set; }
    public DbSet<ChaveImputacao> ChaveImputacao { get; set; }
    public DbSet<ChaveImputacaoRubricas> ChaveImputacaoRubricas { get; set; }
    public DbSet<MapaImputacaoRubricas> MapaImputacaoRubricas { get; set; }
    public DbSet<TipoDocumentoIdentificacao> TipoDocumentoIdentificacao { get; set; }
    public DbSet<CandidaturaOrcamento> CandidaturaOrcamento { get; set; }
    public DbSet<SeguroPagamento> SeguroPagamento { get; set; }
    public DbSet<TipoPagamento> TipoPagamento { get; set; }
    public DbSet<PagamentoQuestao> PagamentoQuestao { get; set; }
    public DbSet<RegistoTarefas> RegistoTarefas { get; set; }
    public DbSet<ProgramaOperacional> ProgramaOperacional { get; set; }
    public DbSet<ProgramaQuadro> ProgramaQuadro { get; set; }
    public DbSet<TipoProjecto> TipoProjecto { get; set; }
    public DbSet<FonteFinanciamento> FonteFinanciamento { get; set; }
    public DbSet<Rubricas> Rubricas { get; set; }
    public DbSet<TipoTarefa> TipoTarefa { get; set; }
    public DbSet<CandidaturaEquipa> CandidaturaEquipa { get; set; }
    public DbSet<ProjectoEquipa> ProjectoEquipa { get; set; }
    public DbSet<ViewsPermissoes> ViewsPermissoes { get; set; }
    public DbSet<View> View { get; set; }
    public DbSet<Perfil> Perfil { get; set; }
    public DbSet<Seguros> Seguros { get; set; }
    public DbSet<CandidaturaFinanciamento> CandidaturaFinanciamento { get; set; }
    public DbSet<Funcao> Funcao { get; set; }
    public DbSet<ProjectosAlocacaoDiaria> ProjectosAlocacaoDiaria { get; set; }
    public DbSet<TipoRecursoHumano> TipoRecursoHumano { get; set; }
    public DbSet<Contratos> Contratos { get; set; }
    public DbSet<Adiantamento> Adiantamento { get; set; }
    public DbSet<AdiantamentoAnexos> AdiantamentoAnexos { get; set; }
    public DbSet<ProgramaMedidas> ProgramaMedidas { get; set; }
    public DbSet<NumeradorOrcamento> NumeradorOrcamento { get; set; }
    public DbSet<NumeradorAdiantamento> NumeradorAdiantamento { get; set; }
    public DbSet<NumeradorCompensacao> NumeradorCompensacao { get; set; }
    public DbSet<AdiantamentoCompensacao> AdiantamentoCompensacao { get; set; }
    public DbSet<InternoMovimento> InternoMovimento { get; set; }
    public DbSet<InternoProjecto> InternoProjecto { get; set; }
    public DbSet<InternoProjectoDelegacao> InternoProjectoDelegacao { get; set; }
    public DbSet<InternoProjectoAnexos> InternoProjectoAnexos { get; set; }
    public DbSet<InternoRubrica> InternoRubrica { get; set; }
    public DbSet<InternoNumeradorMovimento> InternoNumeradorMovimento { get; set; }
    public DbSet<TemplatesEmails> TemplatesEmails { get; set; }
    public DbSet<ProjectoFinanciamento> ProjectoFinanciamento { get; set; }
    public DbSet<LogGenerico> LogGenerico { get; set; }
    public DbSet<Paises> Paises { get; set; }
    public DbSet<CandidaturaAnexos> CandidaturaAnexos { get; set; }
    public DbSet<Recebimentos> Recebimentos { get; set; }
    public DbSet<RecebimentosAbate> RecebimentosAbate { get; set; }
    public DbSet<RecebimentosPagamento> RecebimentosPagamento { get; set; }
    public DbSet<RecebimentosAnexos> RecebimentosAnexos { get; set; }
    public DbSet<ContratoPeriodos> ContratoPeriodos { get; set; }
    public DbSet<PermissaoDespesas> PermissaoDespesas { get; set; }
    public DbSet<PagamentoEstado> PagamentoEstado { get; set; }
    public DbSet<CandidaturaEstados> CandidaturaEstados { get; set; }
    public DbSet<AdiantamentoEstado> AdiantamentoEstado { get; set; }
    public DbSet<RecebimentosReceita> RecebimentosReceita { get; set; }
    public DbSet<LogConsultaVerbetes> LogConsultaVerbetes { get; set; }
    public DbSet<PagamentosParticipantes> PagamentosParticipantes { get; set; }
    public DbSet<RecebimentosPagamentoParticipantes> RecebimentosPagamentoParticipantes { get; set; }
    public DbSet<TiposRecebimento> TiposRecebimento { get; set; }
    public DbSet<RecebimentosParticipantesReceita> RecebimentosParticipantesReceita { get; set; }
    public DbSet<RecebimentosParticipantes> RecebimentosParticipantes { get; set; }
    public DbSet<TranferenciasPagamentosParticipantes> TranferenciasPagamentosParticipantes { get; set; }
    public DbSet<TransferenciasParticipantes> TransferenciasParticipantes { get; set; }
    public DbSet<PedidosContraFaturas> PedidosContraFaturas { get; set; }
    public DbSet<Pagamentos> Pagamentos { get; set; }
    public DbSet<ProjectoEnvioEmailExclusoes> ProjectoEnvioEmailExclusoes { get; set; }
    public DbSet<EntidadeFinanciadora> EntidadeFinanciadora { get; set; }
    public DbSet<Candidaturas> Candidaturas { get; set; }
    public DbSet<Instituicao> Instituicao { get; set; }
    public DbSet<ProjectoInstituicao> ProjectoInstituicao { get; set; }
    public DbSet<Projectos> Projectos { get; set; }
    public DbSet<AdmProjeto> AdmProjeto { get; set; }
    public DbSet<AdmDespesaExecutada> AdmDespesaExecutada { get; set; }
    public DbSet<AdmOrcamento> AdmOrcamento { get; set; }
    public DbSet<AdmPedidoPagamentoParceiras> AdmPedidoPagamentoParceiras { get; set; }
    public DbSet<AdmOrcamentoParceiras> AdmOrcamentoParceiras { get; set; }
    public DbSet<AdmPedidoPagamento> AdmPedidoPagamento { get; set; }
    public DbSet<Despesas> Despesas { get; set; }
    public DbSet<TiposProcedimentoContratacaoPublica> TiposProcedimentoContratacaoPublica { get; set; }
    public DbSet<RegiaoIntervencao> RegiaoIntervencao { get; set; }
    public DbSet<ProjectoLogotipo> ProjectoLogotipo { get; set; }
    public DbSet<FundosFinanciamento> FundosFinanciamento { get; set; }
    public DbSet<ProgramaOperacionalLogotipo> ProgramaOperacionalLogotipo { get; set; }
    public DbSet<ProgramaQuadroLogotipo> ProgramaQuadroLogotipo { get; set; }
    public DbSet<PortalFontesFinanciamento> PortalFontesFinanciamento { get; set; }
    public DbSet<PortalFontesFinanciamentoML> PortalFontesFinanciamentoML { get; set; }
    public DbSet<PortalTipologiaProjeto> PortalTipologiaProjeto { get; set; }
    public DbSet<TipoAgregacaoPrograma> TipoAgregacaoPrograma { get; set; }
    public DbSet<PortalFontesAreasTematicas> PortalFontesAreasTematicas { get; set; }
    public DbSet<PortalFontesTipologiaProjeto> PortalFontesTipologiaProjeto { get; set; }
    public DbSet<TipoAgregacaoProgramaOperacional> TipoAgregacaoProgramaOperacional { get; set; }
    public DbSet<ProjectoFundoFinanciamento> ProjectoFundoFinanciamento { get; set; }
    public DbSet<FundoFinanciamentoAgregacao> FundoFinanciamentoAgregacao { get; set; }
    public DbSet<TiposAgregacaoFundosFinancimento> TiposAgregacaoFundosFinancimento { get; set; }
    public DbSet<VW_InvestigadoresUnidades> VW_InvestigadoresUnidades { get; set; }
    public DbSet<VW_Funcionarios> VW_Funcionarios { get; set; }
    public DbSet<VW_FuncionarioContrato> VW_FuncionarioContrato { get; set; }
    public DbSet<VW_InvestigadoresUnidadesEstatutos> VW_InvestigadoresUnidadesEstatutos { get; set; }
    public DbSet<TipoEstatutos> TipoEstatutos { get; set; }
    public DbSet<UnidadeInvestigadores> UnidadeInvestigadores { get; set; }
    public DbSet<UnidadesInvestigadoresEstatutos> UnidadesInvestigadoresEstatutos { get; set; }
    public DbSet<TipologiaProjeto> TipologiaProjeto { get; set; }
    public DbSet<EstadoTimesheet> EstadoTimesheets { get; set; }
    public DbSet<TemplateFile> TemplateFiles { get; set; }
    public DbSet<ListagemTimesheet> ListagemTimesheets { get; set; }

    public virtual ObjectResult<MenuPages> MenuGetTabPagesHier(Nullable<int> tabID, Nullable<int> pageID)
    {
        var tabIDParameter = tabID.HasValue ?
            new ObjectParameter("TabID", tabID) :
            new ObjectParameter("TabID", typeof(int));

        var pageIDParameter = pageID.HasValue ?
            new ObjectParameter("PageID", pageID) :
            new ObjectParameter("PageID", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<MenuPages>("MenuGetTabPagesHier", tabIDParameter, pageIDParameter);
    }

    public virtual ObjectResult<MenuPages> MenuGetTabPagesHier(Nullable<int> tabID, Nullable<int> pageID, MergeOption mergeOption)
    {
        var tabIDParameter = tabID.HasValue ?
            new ObjectParameter("TabID", tabID) :
            new ObjectParameter("TabID", typeof(int));

        var pageIDParameter = pageID.HasValue ?
            new ObjectParameter("PageID", pageID) :
            new ObjectParameter("PageID", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<MenuPages>("MenuGetTabPagesHier", mergeOption, tabIDParameter, pageIDParameter);
    }

    public virtual ObjectResult<ERP_Tipo_Doc> GET_ERP_TIPO_DOC()
    {
        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<ERP_Tipo_Doc>("GET_ERP_TIPO_DOC");
    }

    public virtual ObjectResult<ERP_Despesa> GET_ERP_DESPESA(string centroResp, string subcen, Nullable<bool> transferencias)
    {
        var centroRespParameter = centroResp != null ?
            new ObjectParameter("CentroResp", centroResp) :
            new ObjectParameter("CentroResp", typeof(string));

        var subcenParameter = subcen != null ?
            new ObjectParameter("Subcen", subcen) :
            new ObjectParameter("Subcen", typeof(string));

        var transferenciasParameter = transferencias.HasValue ?
            new ObjectParameter("Transferencias", transferencias) :
            new ObjectParameter("Transferencias", typeof(bool));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<ERP_Despesa>("GET_ERP_DESPESA", centroRespParameter, subcenParameter, transferenciasParameter);
    }

    public virtual ObjectResult<ERP_OVERHEAD> GET_ERP_OVERHEAD(string centroResp, string subcen)
    {
        var centroRespParameter = centroResp != null ?
            new ObjectParameter("CentroResp", centroResp) :
            new ObjectParameter("CentroResp", typeof(string));

        var subcenParameter = subcen != null ?
            new ObjectParameter("Subcen", subcen) :
            new ObjectParameter("Subcen", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<ERP_OVERHEAD>("GET_ERP_OVERHEAD", centroRespParameter, subcenParameter);
    }

    public virtual int ActualizarAlocacaoDiaria(Nullable<int> iDProjecto, Nullable<int> iDRecursoHumano, Nullable<int> alocacao, Nullable<System.DateTime> dataInicial, Nullable<System.DateTime> dataFinal, Nullable<System.DateTime> dataInicialAnterior, Nullable<System.DateTime> dataFinalAnterior)
    {
        var iDProjectoParameter = iDProjecto.HasValue ?
            new ObjectParameter("IDProjecto", iDProjecto) :
            new ObjectParameter("IDProjecto", typeof(int));

        var iDRecursoHumanoParameter = iDRecursoHumano.HasValue ?
            new ObjectParameter("IDRecursoHumano", iDRecursoHumano) :
            new ObjectParameter("IDRecursoHumano", typeof(int));

        var alocacaoParameter = alocacao.HasValue ?
            new ObjectParameter("Alocacao", alocacao) :
            new ObjectParameter("Alocacao", typeof(int));

        var dataInicialParameter = dataInicial.HasValue ?
            new ObjectParameter("DataInicial", dataInicial) :
            new ObjectParameter("DataInicial", typeof(System.DateTime));

        var dataFinalParameter = dataFinal.HasValue ?
            new ObjectParameter("DataFinal", dataFinal) :
            new ObjectParameter("DataFinal", typeof(System.DateTime));

        var dataInicialAnteriorParameter = dataInicialAnterior.HasValue ?
            new ObjectParameter("DataInicialAnterior", dataInicialAnterior) :
            new ObjectParameter("DataInicialAnterior", typeof(System.DateTime));

        var dataFinalAnteriorParameter = dataFinalAnterior.HasValue ?
            new ObjectParameter("DataFinalAnterior", dataFinalAnterior) :
            new ObjectParameter("DataFinalAnterior", typeof(System.DateTime));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("ActualizarAlocacaoDiaria", iDProjectoParameter, iDRecursoHumanoParameter, alocacaoParameter, dataInicialParameter, dataFinalParameter, dataInicialAnteriorParameter, dataFinalAnteriorParameter);
    }

    public virtual int RemoverAlocacaoDiaria(Nullable<int> iDProjecto, Nullable<int> iDRecursoHumano, Nullable<System.DateTime> dataInicial, Nullable<System.DateTime> dataFinal)
    {
        var iDProjectoParameter = iDProjecto.HasValue ?
            new ObjectParameter("IDProjecto", iDProjecto) :
            new ObjectParameter("IDProjecto", typeof(int));

        var iDRecursoHumanoParameter = iDRecursoHumano.HasValue ?
            new ObjectParameter("IDRecursoHumano", iDRecursoHumano) :
            new ObjectParameter("IDRecursoHumano", typeof(int));

        var dataInicialParameter = dataInicial.HasValue ?
            new ObjectParameter("DataInicial", dataInicial) :
            new ObjectParameter("DataInicial", typeof(System.DateTime));

        var dataFinalParameter = dataFinal.HasValue ?
            new ObjectParameter("DataFinal", dataFinal) :
            new ObjectParameter("DataFinal", typeof(System.DateTime));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("RemoverAlocacaoDiaria", iDProjectoParameter, iDRecursoHumanoParameter, dataInicialParameter, dataFinalParameter);
    }

    public virtual int ERP_SINCRONIZA(string centroResp, string subcen)
    {
        var centroRespParameter = centroResp != null ?
            new ObjectParameter("CentroResp", centroResp) :
            new ObjectParameter("CentroResp", typeof(string));

        var subcenParameter = subcen != null ?
            new ObjectParameter("Subcen", subcen) :
            new ObjectParameter("Subcen", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("ERP_SINCRONIZA", centroRespParameter, subcenParameter);
    }

    public virtual ObjectResult<VERBAS_Factura_Recibo> SSP_VERBAS_GET_FACTURARECIBO(string centroResp, string subcen, string entidadeFinaciadora, Nullable<System.DateTime> data, string iD, Nullable<int> skip, Nullable<int> take)
    {
        var centroRespParameter = centroResp != null ?
            new ObjectParameter("CentroResp", centroResp) :
            new ObjectParameter("CentroResp", typeof(string));

        var subcenParameter = subcen != null ?
            new ObjectParameter("Subcen", subcen) :
            new ObjectParameter("Subcen", typeof(string));

        var entidadeFinaciadoraParameter = entidadeFinaciadora != null ?
            new ObjectParameter("EntidadeFinaciadora", entidadeFinaciadora) :
            new ObjectParameter("EntidadeFinaciadora", typeof(string));

        var dataParameter = data.HasValue ?
            new ObjectParameter("Data", data) :
            new ObjectParameter("Data", typeof(System.DateTime));

        var iDParameter = iD != null ?
            new ObjectParameter("ID", iD) :
            new ObjectParameter("ID", typeof(string));

        var skipParameter = skip.HasValue ?
            new ObjectParameter("Skip", skip) :
            new ObjectParameter("Skip", typeof(int));

        var takeParameter = take.HasValue ?
            new ObjectParameter("Take", take) :
            new ObjectParameter("Take", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<VERBAS_Factura_Recibo>("SSP_VERBAS_GET_FACTURARECIBO", centroRespParameter, subcenParameter, entidadeFinaciadoraParameter, dataParameter, iDParameter, skipParameter, takeParameter);
    }

    public virtual ObjectResult<SSP_GetUnidadeEscola_Result> SSP_GetUnidadeEscola_Result(string codigoUnidade)
    {
        var codigoUnidadeParameter = codigoUnidade != null ?
            new ObjectParameter("CodigoUnidade", codigoUnidade) :
            new ObjectParameter("CodigoUnidade", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_GetUnidadeEscola_Result>("SSP_GetUnidadeEscola_Result", codigoUnidadeParameter);
    }

    public virtual ObjectResult<Nullable<int>> GetGrauAcademico(string nmec)
    {
        var nmecParameter = nmec != null ?
            new ObjectParameter("Nmec", nmec) :
            new ObjectParameter("Nmec", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<int>>("GetGrauAcademico", nmecParameter);
    }

    public virtual int RemoverCandidatura(Nullable<int> iDCandidatura)
    {
        var iDCandidaturaParameter = iDCandidatura.HasValue ?
            new ObjectParameter("IDCandidatura", iDCandidatura) :
            new ObjectParameter("IDCandidatura", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("RemoverCandidatura", iDCandidaturaParameter);
    }

    public virtual ObjectResult<string> SSP_VERBAS_GET_DESCRICAO_DESPESA(Nullable<int> ano, Nullable<int> iDDespesa)
    {
        var anoParameter = ano.HasValue ?
            new ObjectParameter("Ano", ano) :
            new ObjectParameter("Ano", typeof(int));

        var iDDespesaParameter = iDDespesa.HasValue ?
            new ObjectParameter("IDDespesa", iDDespesa) :
            new ObjectParameter("IDDespesa", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<string>("SSP_VERBAS_GET_DESCRICAO_DESPESA", anoParameter, iDDespesaParameter);
    }

    public virtual int ERP_SINCRONIZA_ADIANTAMENTOS()
    {
        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("ERP_SINCRONIZA_ADIANTAMENTOS");
    }

    public virtual ObjectResult<SSP_GETUnidadesDrillDown_Result> SSP_GETUnidadesDrillDown(string codUnidade)
    {
        var codUnidadeParameter = codUnidade != null ?
            new ObjectParameter("CodUnidade", codUnidade) :
            new ObjectParameter("CodUnidade", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_GETUnidadesDrillDown_Result>("SSP_GETUnidadesDrillDown", codUnidadeParameter);
    }

    public virtual ObjectResult<SSP_Funcionario_Result> SSP_Funcionario(string nMecanografico)
    {
        var nMecanograficoParameter = nMecanografico != null ?
            new ObjectParameter("NMecanografico", nMecanografico) :
            new ObjectParameter("NMecanografico", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_Funcionario_Result>("SSP_Funcionario", nMecanograficoParameter);
    }

    public virtual ObjectResult<SSP_FuncionarioByTermo_Result> SSP_FuncionarioByTermo(string termo)
    {
        var termoParameter = termo != null ?
            new ObjectParameter("Termo", termo) :
            new ObjectParameter("Termo", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_FuncionarioByTermo_Result>("SSP_FuncionarioByTermo", termoParameter);
    }

    public virtual ObjectResult<SSP_GetValorDividaInsituicaoParticipante_Result> GetValorDividaInsituicaoParticipante(Nullable<int> iDProjecto, Nullable<int> unidade)
    {
        var iDProjectoParameter = iDProjecto.HasValue ?
            new ObjectParameter("IDProjecto", iDProjecto) :
            new ObjectParameter("IDProjecto", typeof(int));

        var unidadeParameter = unidade.HasValue ?
            new ObjectParameter("Unidade", unidade) :
            new ObjectParameter("Unidade", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_GetValorDividaInsituicaoParticipante_Result>("GetValorDividaInsituicaoParticipante", iDProjectoParameter, unidadeParameter);
    }

    public virtual ObjectResult<SSP_STAT_ResumoRelacaoInstituicaoParticipante_Result> GET_ResumoRelacaoInstituicaoParticipante(Nullable<int> iDProjecto, Nullable<System.DateTime> dataReferencia, Nullable<int> unidade)
    {
        var iDProjectoParameter = iDProjecto.HasValue ?
            new ObjectParameter("IDProjecto", iDProjecto) :
            new ObjectParameter("IDProjecto", typeof(int));

        var dataReferenciaParameter = dataReferencia.HasValue ?
            new ObjectParameter("DataReferencia", dataReferencia) :
            new ObjectParameter("DataReferencia", typeof(System.DateTime));

        var unidadeParameter = unidade.HasValue ?
            new ObjectParameter("Unidade", unidade) :
            new ObjectParameter("Unidade", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_STAT_ResumoRelacaoInstituicaoParticipante_Result>("GET_ResumoRelacaoInstituicaoParticipante", iDProjectoParameter, dataReferenciaParameter, unidadeParameter);
    }

    public virtual ObjectResult<VERBAS_Despesa> SSP_GET_DESPESA_VERBAS(string centroResp, string subcen)
    {
        var centroRespParameter = centroResp != null ?
            new ObjectParameter("CentroResp", centroResp) :
            new ObjectParameter("CentroResp", typeof(string));

        var subcenParameter = subcen != null ?
            new ObjectParameter("Subcen", subcen) :
            new ObjectParameter("Subcen", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<VERBAS_Despesa>("SSP_GET_DESPESA_VERBAS", centroRespParameter, subcenParameter);
    }

    public virtual int AtualizaDespesaValidacao(Nullable<int> iDDespesa, Nullable<double> valorReembolsado, Nullable<double> valorElegivel, Nullable<int> iDEstado, Nullable<System.DateTime> dataValidacao)
    {
        var iDDespesaParameter = iDDespesa.HasValue ?
            new ObjectParameter("IDDespesa", iDDespesa) :
            new ObjectParameter("IDDespesa", typeof(int));

        var valorReembolsadoParameter = valorReembolsado.HasValue ?
            new ObjectParameter("ValorReembolsado", valorReembolsado) :
            new ObjectParameter("ValorReembolsado", typeof(double));

        var valorElegivelParameter = valorElegivel.HasValue ?
            new ObjectParameter("ValorElegivel", valorElegivel) :
            new ObjectParameter("ValorElegivel", typeof(double));

        var iDEstadoParameter = iDEstado.HasValue ?
            new ObjectParameter("IDEstado", iDEstado) :
            new ObjectParameter("IDEstado", typeof(int));

        var dataValidacaoParameter = dataValidacao.HasValue ?
            new ObjectParameter("DataValidacao", dataValidacao) :
            new ObjectParameter("DataValidacao", typeof(System.DateTime));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("AtualizaDespesaValidacao", iDDespesaParameter, valorReembolsadoParameter, valorElegivelParameter, iDEstadoParameter, dataValidacaoParameter);
    }

    public virtual ObjectResult<RelacaoDespesasPagamentoSimple> SSP_GetListRelacaoDespesasPagamentoSimple(Nullable<int> pagamentoID, Nullable<int> projectoID)
    {
        var pagamentoIDParameter = pagamentoID.HasValue ?
            new ObjectParameter("PagamentoID", pagamentoID) :
            new ObjectParameter("PagamentoID", typeof(int));

        var projectoIDParameter = projectoID.HasValue ?
            new ObjectParameter("ProjectoID", projectoID) :
            new ObjectParameter("ProjectoID", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<RelacaoDespesasPagamentoSimple>("SSP_GetListRelacaoDespesasPagamentoSimple", pagamentoIDParameter, projectoIDParameter);
    }

    public virtual ObjectResult<SSP_ADM_DespesasRecursosHumanos_Result> SSP_ADM_DespesasRecursosHumanos(Nullable<int> iDProjeto)
    {
        var iDProjetoParameter = iDProjeto.HasValue ?
            new ObjectParameter("IDProjeto", iDProjeto) :
            new ObjectParameter("IDProjeto", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_ADM_DespesasRecursosHumanos_Result>("SSP_ADM_DespesasRecursosHumanos", iDProjetoParameter);
    }

    public virtual ObjectResult<SSP_ADM_DespesasVerbas_Result> SSP_ADM_DespesasVerbas(Nullable<int> iDProjeto)
    {
        var iDProjetoParameter = iDProjeto.HasValue ?
            new ObjectParameter("IDProjeto", iDProjeto) :
            new ObjectParameter("IDProjeto", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_ADM_DespesasVerbas_Result>("SSP_ADM_DespesasVerbas", iDProjetoParameter);
    }

    public virtual ObjectResult<SSP_ADM_DespesasVerbasSemRubricas_Result> SSP_ADM_DespesasVerbasSemRubricas(Nullable<int> iDProjeto)
    {
        var iDProjetoParameter = iDProjeto.HasValue ?
            new ObjectParameter("IDProjeto", iDProjeto) :
            new ObjectParameter("IDProjeto", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_ADM_DespesasVerbasSemRubricas_Result>("SSP_ADM_DespesasVerbasSemRubricas", iDProjetoParameter);
    }

    public virtual ObjectResult<SSP_GetFontesFinanciamentoHierarquico_Result> SSP_GetFontesFinanciamentoHierarquico(Nullable<int> iD, Nullable<bool> activas, string nome)
    {
        var iDParameter = iD.HasValue ?
            new ObjectParameter("ID", iD) :
            new ObjectParameter("ID", typeof(int));

        var activasParameter = activas.HasValue ?
            new ObjectParameter("Activas", activas) :
            new ObjectParameter("Activas", typeof(bool));

        var nomeParameter = nome != null ?
            new ObjectParameter("Nome", nome) :
            new ObjectParameter("Nome", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSP_GetFontesFinanciamentoHierarquico_Result>("SSP_GetFontesFinanciamentoHierarquico", iDParameter, activasParameter, nomeParameter);
    }

    public virtual ObjectResult<DIMENSAO_Type> SSSP_ERP_GET_DIMENSAO(string centroResp, string subcen)
    {
        var centroRespParameter = centroResp != null ?
            new ObjectParameter("CentroResp", centroResp) :
            new ObjectParameter("CentroResp", typeof(string));

        var subcenParameter = subcen != null ?
            new ObjectParameter("Subcen", subcen) :
            new ObjectParameter("Subcen", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<DIMENSAO_Type>("SSSP_ERP_GET_DIMENSAO", centroRespParameter, subcenParameter);
    }

    public virtual ObjectResult<SSSP_ERP_GET_SUBCENTRO_Result> SSSP_ERP_GET_SUBCENTRO(string subcen)
    {
        var subcenParameter = subcen != null ?
            new ObjectParameter("Subcen", subcen) :
            new ObjectParameter("Subcen", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<SSSP_ERP_GET_SUBCENTRO_Result>("SSSP_ERP_GET_SUBCENTRO", subcenParameter);
    }

    public virtual ObjectResult<Despesas> SSP_Despesas_BySubCentro(string subCentro)
    {
        var subCentroParameter = subCentro != null ?
            new ObjectParameter("SubCentro", subCentro) :
            new ObjectParameter("SubCentro", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Despesas>("SSP_Despesas_BySubCentro", subCentroParameter);
    }

    public virtual ObjectResult<Despesas> SSP_Despesas_BySubCentro(string subCentro, MergeOption mergeOption)
    {
        var subCentroParameter = subCentro != null ?
            new ObjectParameter("SubCentro", subCentro) :
            new ObjectParameter("SubCentro", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Despesas>("SSP_Despesas_BySubCentro", mergeOption, subCentroParameter);
    }
}
