protected void Page_Load(object sender, EventArgs e)
        {
            VerificaSeExisteSessaoDeUsuario();
            if (!this.IsPostBack)
            {
                Orcamento.Domain.DB.Repositorio.Orcamentos orcamentos = new Orcamento.Domain.DB.Repositorio.Orcamentos();
                Departamentos setores = new Departamentos();
                var departamento = setores.Obter((int)Session["DepartamentoLogadoId"]);
                var dres = orcamentos.ObterDRE(departamento);
                orcamentos = new Orcamento.Domain.DB.Repositorio.Orcamentos();
                var listaOrcamentos = orcamentos.TodosPor(departamento);
                var viagens = PreencherResultadoOrçadoViagens(listaOrcamentos);
                var outrasDespesas = dres.Where(x => x.Nome == "Orçamento de outras despesas").Sum(v => v.ValorTotal);

                if (viagens > 0)
                {
                    outrasDespesas += listaOrcamentos.Where(a => a.Tipo == TipoOrcamentoEnum.Viagem && a.VersaoFinal).Sum(a => a.Despesas.Sum(d => d.ValorTotalRefeicao + d.ValorTotalTaxi));
                }

                var producoes = dres.Where(x => x.Nome == "Orçamento Hospitalar").FirstOrDefault();

                PreencherOutrasDespesas(outrasDespesas);
                PreencherViagens(viagens);
                PreencherPessoal(orcamentos, departamento);
                Receita(producoes);

                trViagens.Visible = departamento.GetType() == typeof(Setor);
                trReceita.Visible = departamento.GetType() == typeof(Hospital);
                if (departamento.GetType() == typeof(Hospital) && producoes != null && producoes.ValorTotal > 0)
                {
                    Insumos insumos = new Insumos();
                    var insumo = insumos.ObterInsumo(departamento);

                    trInsumos.Visible = true;
                    var orcamentoDeProducao = orcamentos.ObterOrcamentoHospitalarFinal(departamento);

                    if (orcamentoDeProducao != null)
                    {
                        var contasUnitarias = ServicoMapperOrcamentoView.TransformarProducaoDeInsumos(
                            orcamentoDeProducao.Servicos.Where(s => s.Conta.Nome != "Salas" && s.Conta.TipoValorContaEnum == TipoValorContaEnum.Quantidade && s.Conta.Calculado == false).ToList(),
                            orcamentoDeProducao.Servicos.Where(s => s.Conta.TipoValorContaEnum == TipoValorContaEnum.Porcentagem).ToList());

                        TicketsDeReceita tickets = new TicketsDeReceita();
                        var ticketsDeReceita = tickets.Todos(departamento);
                        var ticket = ticketsDeReceita.Where(t => t.TipoTicket == global::Orcamento.Domain.ComponentesDeOrcamento.OrcamentoDeProducao.TipoTicketDeReceita.ReajusteDeInsumos).FirstOrDefault();

                        orcamentoDeProducao.CalcularCustoHospitalar(ticket, insumo.CustosUnitarios.ToList(), contasUnitarias);

                        txtInsumos.Text += "(";
                        txtInsumos.Text += orcamentoDeProducao.CustosUnitariosTotal.Sum(c => c.Valores.Sum(v => v.Valor)).ToString("#,###,###,###0"); ;
                        txtInsumos.Text += ")";
                    }
                }
                else
                {
                    txtInsumos.Text += "(";
                    txtInsumos.Text += 0.ToString();
                    txtInsumos.Text += ")";
                }

            }
        }
        private void PreencherReceitaBruta()
        {
            Orcamentos orcamentos = new Orcamentos();
            OrcamentoHospitalar = orcamentos.ObterOrcamentoHospitalarFinal(Departamento);

            if (OrcamentoHospitalar != null)
            {
                var tickets = new TicketsDeProducao();
                TicketsDeReceita ticketsDeReceita = new TicketsDeReceita();
                var ticketDeReceita = ticketsDeReceita.Obter(this.Departamento, TipoTicketDeReceita.ReajusteDeConvenios);

                OrcamentoHospitalar.CalcularReceitaLiquida(tickets.Todos(OrcamentoHospitalar.Setor).ToList(), ticketDeReceita.Parcelas.ToList());

                FatoresDeReceitaBruta = new List<FatorReceitaDTO>();

                foreach (var fatorReceita in OrcamentoHospitalar.FatoresReceita)
                {
                    FatorReceitaDTO fator = new FatorReceitaDTO();
                    fator.Incrementos = new List<IncrementoDaComplexidadeDTO>();

                    foreach (var item in fatorReceita.Incrementos)
                    {
                        if (fator.Incrementos.Any(i => i.Mes == item.Mes))
                            fator.Incrementos.Where(i => i.Mes == item.Mes).FirstOrDefault().ReceitaLiquida += item.ReceitaLiquida;
                        else
                            fator.Incrementos.Add(new IncrementoDaComplexidadeDTO() { Mes = item.Mes, ReceitaLiquida = item.ReceitaLiquida });
                    }

                    FatoresDeReceitaBruta.Add(fator);
                }
                for (int i = 1; i < 13; i++)
                {
                    var ltlReceitaBruta = (Literal)divDre.FindControl("ltlReceitaBruta" + i.ToString());

                    ltlReceitaBruta.Text = (FatoresDeReceitaBruta.Sum(f => f.Incrementos.Where(p => p.Mes == (MesEnum)i).Sum(incremento => incremento.ReceitaLiquida)) / 1000).ToString("#,###,###,###0");

                    receitasNoAno.Where(r => r.Mes == (MesEnum)i).FirstOrDefault().Valor =
                        FatoresDeReceitaBruta.Sum(
                            f =>
                            f.Incrementos.Where(p => p.Mes == (MesEnum)i).Sum(incremento => incremento.ReceitaLiquida));
                }

                receitaBrutaTotal = (FatoresDeReceitaBruta.Sum(f => f.Incrementos.Sum(incremento => incremento.ReceitaLiquida)) / 1000);

                ltlReceitaBrutaTotal.Text = receitaBrutaTotal.ToString("#,###,###,###0");
            }
            else
            {
                for (int i = 1; i < 13; i++)
                {
                    var ltlReceitaBruta = (Literal)divDre.FindControl("ltlReceitaBruta" + i.ToString());

                    ltlReceitaBruta.Text = "0";
                }

                ltlReceitaBrutaTotal.Text = "0";
            }
        }
Beispiel #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            VerificaSeExisteSessaoDeUsuario();
            VerificarSeUsuarioHospitalar();
            if (!Page.IsPostBack)
            {
                var departamentos = new Departamentos();
                Departamento = departamentos.Obter((int)Session["DepartamentoLogadoId"]);

                Orcamento.Domain.DB.Repositorio.Insumos insumos = new global::Orcamento.Domain.DB.Repositorio.Insumos();
                Insumo = insumos.ObterInsumo(Departamento);

                PreencherCustoUnitario();

                Orcamentos orcamentos = new Orcamentos();
                Orcamento = orcamentos.ObterOrcamentoHospitalarFinal(Departamento);

                if (Orcamento != null)
                {
                    this.ContasUnitarias = ServicoMapperOrcamentoView.TransformarProducaoDeInsumos(
                        Orcamento.Servicos.Where(s => s.Conta.Nome != "Salas" && s.Conta.TipoValorContaEnum == TipoValorContaEnum.Quantidade && s.Conta.Calculado == false).ToList(),
                        Orcamento.Servicos.Where(s => s.Conta.TipoValorContaEnum ==  TipoValorContaEnum.Porcentagem).ToList());

                    PreecherUnitarios();
                    PreencherCustoHospitalar();
                }
            }
        }