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";
            }
        }
        private void PreencherGlosaInterna()
        {
            TicketsDeReceita tickets = new TicketsDeReceita();
            TicketsGlosaInterna = tickets.Obter(Departamento, Orcamento.Domain.ComponentesDeOrcamento.OrcamentoDeProducao.TipoTicketDeReceita.GlosaInterna);
            if (receitasNoAno != null)
            {
                TicketsGlosaInterna.CalcularGlosa(receitasNoAno);

                for (int i = 1; i < 13; i++)
                {
                    var ltlGlosaInterna = (Literal)divDre.FindControl("ltlGlosaInterna" + i.ToString());

                    ltlGlosaInterna.Text = "(";
                    ltlGlosaInterna.Text += (receitasNoAno.Where(p => p.Mes == (MesEnum)i).Sum(f => f.ValorGlosaInterna) / 1000).ToString("#,###,###,###0");
                    ltlGlosaInterna.Text += ")";
                }

                glosaInternaTotal = (receitasNoAno.Sum(f => f.ValorGlosaInterna) / 1000);
                ltlGlosaInternaTotal.Text = "(";
                ltlGlosaInternaTotal.Text += glosaInternaTotal.ToString("#,###,###,###0");
                ltlGlosaInternaTotal.Text += ")";
            }
        }
        private void PreencherInsumos()
        {
            Orcamento.Domain.DB.Repositorio.Insumos insumos = new global::Orcamento.Domain.DB.Repositorio.Insumos();
            Insumo = insumos.ObterInsumo(Departamento);

            TicketsDeReceita tickets = new TicketsDeReceita();
            var ticketsDeReceita = tickets.Todos(Departamento);

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

                OrcamentoHospitalar.CalcularCustoHospitalar(
                    ticketsDeReceita.Where(
                        t =>
                        t.TipoTicket ==
                        global::Orcamento.Domain.ComponentesDeOrcamento.OrcamentoDeProducao.TipoTicketDeReceita.
                            ReajusteDeInsumos).FirstOrDefault(),
                    Insumo.CustosUnitarios.ToList(), contasUnitarias);

                GruposDeConta grupos = new GruposDeConta();
                var grupoDeContaPessoal = grupos.ObterPor("Insumos");

                var DespesasAgrupadas =
                    OrcamentosDeDespesasOperacionais.Where(
                        o => o.DespesasOperacionais.Where(ope => ope.Valor > 0).Count() > 0)
                        .Select(
                            c =>
                            c.DespesasOperacionais.Where(
                                d => grupoDeContaPessoal.Contas.Any(g => g.CodigoDaConta == d.Conta.CodigoDaConta))).
                        ToList();

                for (int i = 1; i < 13; i++)
                {

                    var ltlinsumos = (Literal)divDre.FindControl("ltlInsumos" + i.ToString());

                    receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorInsumos =
                        OrcamentoHospitalar.CustosUnitariosTotal.Sum(
                            c => c.Valores.Where(v => v.Mes == (MesEnum)i).Sum(insumo => insumo.Valor));
                    receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorInsumos +=
                        DespesasAgrupadas.Sum(d1 => d1.Where(d2 => d2.Mes == (MesEnum)i).Sum(despesa => despesa.Valor));

                    ltlinsumos.Text = "(";
                    ltlinsumos.Text += (
                        receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorInsumos / 1000).ToString("#,###,###,###0");
                    ltlinsumos.Text += ")";
                }

                insumosTotal = (receitasNoAno.Sum(r => r.ValorInsumos) / 1000);

                ltlInsumosTotal.Text = "(";
                ltlInsumosTotal.Text += insumosTotal.ToString("#,###,###,###0");
                ltlInsumosTotal.Text += ")";
            }
            else
            {
                for (int i = 1; i < 13; i++)
                {

                    var ltlinsumos = (Literal)divDre.FindControl("ltlInsumos" + i.ToString());
                    ltlinsumos.Text += "(0)";
                }
                ltlInsumosTotal.Text += "(0)";

            }
        }
Exemplo n.º 4
0
        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 PreencherDescontosObtidos()
        {
            TicketsDeReceita tickets = new TicketsDeReceita();
            TicketsDescontos = tickets.Obter(Departamento, Orcamento.Domain.ComponentesDeOrcamento.OrcamentoDeProducao.TipoTicketDeReceita.Descontos);

            TicketsDescontos.CalcularGlosa(receitasNoAno);

            for (int i = 1; i < 13; i++)
            {
                var ltlDescontosObtidos = (Literal)divDre.FindControl("ltlDescontosObtidos" + i.ToString());

                ltlDescontosObtidos.Text = (receitasNoAno.Where(p => p.Mes == (MesEnum)i).Sum(f => f.DescontosObtidos) / 1000).ToString("#,###,###,###0");
            }

            ltlDescontosObtidosTotal.Text = (receitasNoAno.Sum(f => f.DescontosObtidos) / 1000).ToString("#,###,###,###0");
        }
        protected void btnCalcularTotalMensal_Click(object sender, EventArgs e)
        {
            List<ContaHospitalarDTO> contas = PreencherServicosHospitalares();
            PreencherComplexidadeNoOrcamento();
            preencherOrcamento(Orcamento, contas);
            var tickets = new TicketsDeProducao();
            TicketsDeReceita ticketsDeReceita = new TicketsDeReceita();
            var ticketDeReceita = ticketsDeReceita.Obter(this.Departamento, TipoTicketDeReceita.ReajusteDeConvenios);

            Orcamento.CalcularReceitaLiquida(tickets.Todos(Orcamento.Setor).ToList(),ticketDeReceita.Parcelas.ToList());
            var lista = new List<TotalizadorCalculo>();

            for (int i = 1; i < 13; i++)
            {
                lista.Add(new TotalizadorCalculo { Mes = (MesEnum)i, Valor = 0 });
            }

            foreach (FatorReceita fator in Orcamento.FatoresReceita)
            {
                foreach (IncrementoDaComplexidade incremento in fator.Incrementos)
                {
                    lista.Where(l => l.Mes == incremento.Mes).FirstOrDefault().Valor += incremento.ReceitaLiquida;
                }
            }
            for (int i = 1; i < 13; i++)
            {
                var literalTotalMensal = (Literal)tabelaDeRodapeFixo.FindControl("ltlTotalMes" + i.ToString());

                literalTotalMensal.Text = lista.Where(l => l.Mes == (MesEnum)i).FirstOrDefault().Valor.ToString("#,###,###,###0.##");
            }

            var totalAno = (Literal)tabelaDeRodapeFixo.FindControl("ltlTotalAno");

            totalAno.Text = lista.Sum(l => l.Valor).ToString("#,###,###,###0.##");
        }
        public void PreencherReceitaBruta()
        {
            var tickets = new TicketsDeProducao();

            TicketsDeReceita ticketsDeReceita = new TicketsDeReceita();
            var ticketDeReceita = ticketsDeReceita.Obter(this.Departamento, TipoTicketDeReceita.ReajusteDeConvenios);

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

            List<FatorReceitaDTO> fatoresDeReceita = new List<FatorReceitaDTO>();

            foreach (var fatorReceita in Orcamento.FatoresReceita.Where(g => g.Setor.NomeSetor != "Centro Cirúrgico").GroupBy(f => f.Setor))
            {

                var fator = new FatorReceitaDTO { Setor = fatorReceita.Key.NomeSetor, SubSetor = fatorReceita.Key.NomeSetor, Id = fatorReceita.Key.Id };

                fator.Incrementos = new List<IncrementoDaComplexidadeDTO>();

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

                fatoresDeReceita.Add(fator);
            }

            foreach (var fatorReceita in Orcamento.FatoresReceita.Where(g => g.Setor.NomeSetor == "Centro Cirúrgico"))
            {
                var fator = new FatorReceitaDTO { Setor = fatorReceita.Setor.NomeSetor, SubSetor = fatorReceita.SubSetor.NomeSetor, Id = fatorReceita.Setor.Id };

                fator.Incrementos = new List<IncrementoDaComplexidadeDTO>();
                foreach (var item in fatorReceita.Incrementos)
                {
                    fator.Incrementos.Add(new IncrementoDaComplexidadeDTO() { Mes = item.Mes, ReceitaLiquida = item.ReceitaLiquida });

                }

                fatoresDeReceita.Add(fator);
            }

            rptReceitaBruta.DataSource = fatoresDeReceita.OrderBy(x => x.Setor).ThenBy(y => y.SubSetor);
            rptReceitaBruta.DataBind();
        }
        public override void CalcularTotalDRE()
        {
            this.Legenda = "Orçamento Hospitalar";
            TicketsDeProducao tickets = new TicketsDeProducao();
            TicketsDeReceita ticketsDeReceita = new TicketsDeReceita();

            var ticketDeReceita = ticketsDeReceita.Obter(this.Setor, TipoTicketDeReceita.ReajusteDeConvenios);

            this.CalcularReceitaLiquida(tickets.Todos(this.Setor).ToList(), ticketDeReceita.Parcelas.ToList());
            this.ValorTotalDRE = FatoresReceita.Sum(x => x.Incrementos.Sum(y => y.ReceitaLiquida));
        }
Exemplo n.º 9
0
        private void PreencherCustoHospitalar()
        {
            TicketsDeReceita tickets = new TicketsDeReceita();
            var ticketsDeReceita = tickets.Todos(Departamento);

            this.Orcamento.CalcularCustoHospitalar(ticketsDeReceita.Where(t => t.TipoTicket == global::Orcamento.Domain.ComponentesDeOrcamento.OrcamentoDeProducao.TipoTicketDeReceita.ReajusteDeInsumos).FirstOrDefault(),
               Insumo.CustosUnitarios.ToList(), this.ContasUnitarias);

            rptCustoUnitarioTotal.DataSource = ServicoMapperOrcamentoView.TransformarProducao(Orcamento.CustosUnitariosTotal.ToList()).OrderBy(c => c.Setor).ThenBy(s => s.Subsetor); ;
            rptCustoUnitarioTotal.DataBind();
        }
Exemplo n.º 10
0
        private void PreencherUnitarios()
        {
            int id = int.Parse(Session["DepartamentoLogadoId"].ToString());

            Departamentos departamentos = new Departamentos();
            Departamento = departamentos.Obter(id);

            if (Departamento.GetType() != typeof(Hospital))
                Response.Redirect("/PainelOrcamento.aspx");

            TicketsDeProducao tickets = new TicketsDeProducao();
            Tickets = tickets.Todos(Departamento);

            TicketsDeReceita ticketsDeReceita = new Orcamento.Domain.DB.Repositorio.TicketsDeReceita();
            TicketsDeReceita = ticketsDeReceita.Todos(Departamento);

            RptUnitarios.DataSource = Tickets.OrderBy(x => x.Setor.NomeSetor).ThenBy(y => y.SubSetor.NomeSetor);
            RptUnitarios.DataBind();

            rptTipoDeTickets.DataSource = TicketsDeReceita.OrderBy(t => t.Nome);
            rptTipoDeTickets.DataBind();
        }
Exemplo n.º 11
0
        private void SalvarTicketsDeReceita()
        {
            TicketsDeReceita tickets = new TicketsDeReceita();

            foreach (var ticket in TicketsDeReceita)
            {
                tickets.Salvar(ticket);
            }
        }
        private void PreecherImpostos()
        {
            TicketsDeReceita tickets = new TicketsDeReceita();
            TicketsDeImpostos = tickets.Obter(Orcamento.Domain.ComponentesDeOrcamento.OrcamentoDeProducao.TipoTicketDeReceita.Impostos);
            if (receitasNoAno != null)
            {
                foreach (var ticket in TicketsDeImpostos)
                {
                    ticket.CalcularGlosa(receitasNoAno);
                }
                for (int i = 1; i < 13; i++)
                {
                    var ltlImpostos = (Literal)divDre.FindControl("ltlImpostos" + i.ToString());

                    ltlImpostos.Text = "(";
                    ltlImpostos.Text += (receitasNoAno.Where(p => p.Mes == (MesEnum)i).Sum(f => f.ValorImpostos) / 1000).ToString("#,###,###,###0");
                    ltlImpostos.Text += ")";
                }
                impostosTotal = (receitasNoAno.Sum(f => f.ValorImpostos) / 1000);
                ltlImpostosTotal.Text = "(";
                ltlImpostosTotal.Text += impostosTotal.ToString("#,###,###,###0");
                ltlImpostosTotal.Text += ")";
            }
        }