public void AtualizarDespesas(CentroDeCusto centro)
        {
            Orcamentos orcamentos = new Orcamentos();

            var orcamentosOperacionais = orcamentos.TodosOrcamentosOperacionaisPor(centro);

            foreach (var orcamento in orcamentosOperacionais)
            {
                orcamento.AtualizarDespesas();
            }

            orcamentos.Salvar(orcamentosOperacionais);
        }
        private void PreencherOrcamentos()
        {
            var orcamentos = new Orcamentos();
            OrcamentosDeDespesasOperacionais = new List<Orcamento.Domain.Orcamento>();
            foreach (var centro in Departamento.CentrosDeCusto)
            {
                var orcamentoOperacional = orcamentos.ObterOrcamentoFinalOrcamentoOperacional(centro, Departamento);

                if (orcamentoOperacional != null)
                    OrcamentosDeDespesasOperacionais.Add(orcamentoOperacional);
            }
        }
        private void PreencherDespesasGeraisTotal()
        {
            GruposDeConta grupos = new GruposDeConta();
            var grupoDeContaPessoal = grupos.ObterPor("Despesas Gerais");
            Orcamentos orcamentos = new Orcamentos();

            var listaOrcamentos = orcamentos.TodosPor(Departamento);
            var ListaOrcamentos = PreencherResultadoOrçadoViagens(listaOrcamentos);

            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 ltlDespesasGerais = (Literal)divDre.FindControl("ltlDespesasGerais" + i.ToString());

                ltlDespesasGerais.Text = "(";
                ltlDespesasGerais.Text += ((DespesasAgrupadas.Sum(d1 => d1.Where(d2 => d2.Mes == (MesEnum)i).Sum(despesa => despesa.Valor)) + ListaOrcamentos.Sum(o => o.Despesas.Where(d => d.Mes == (MesEnum)i).Sum(despesa => despesa.ValorTotal))) / 1000).ToString("#,###,###,###0");
                ltlDespesasGerais.Text += ")";
                receitasNoAno.Where(r => r.Mes == (MesEnum)i).FirstOrDefault().DespesasGerais += (DespesasAgrupadas.Sum(d1 => d1.Where(d2 => d2.Mes == (MesEnum)i).Sum(despesa => despesa.Valor))
                    + ListaOrcamentos.Sum(o => o.Despesas.Where(d => d.Mes == (MesEnum)i).Sum(despesa => despesa.ValorTotal)));
            }

            ltlDespesasGeraisTotal.Text = "(";
            ltlDespesasGeraisTotal.Text += (DespesasAgrupadas.Sum(d1 => d1.Sum(despesa => despesa.Valor)) / 1000).ToString("#,###,###,###0");
            ltlDespesasGeraisTotal.Text += ")";
        }
        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 List<object> ObterOrcamentos()
        {
            var objetos = new List<object>();

            orcamentos = new Orcamento.Domain.DB.Repositorio.Orcamentos();
            Orcamentos = orcamentos.TodosOrcamentosHospitalares(Departamento);

            if (Orcamentos != null && Orcamentos.Count() > 0 && !Orcamentos.Any(o => o.VersaoFinal))
                Page.ClientScript.RegisterClientScriptBlock(GetType(), "Key",
                                                            "alert('Existe versão gravada porém nenhuma apontada como versão final.');",
                                                            true);

            foreach (Orcamento.Domain.Orcamento orcamento in Orcamentos)
            {
                orcamento.CalcularTotalDRE();

                var objeto =
                    new
                        {
                            orcamento.Id,
                            Versao = orcamento.VersaoFinal ? "Versão Final" : orcamento.NomeOrcamento,
                            Total = orcamento.ValorTotalDRE
                        };
                objetos.Add(objeto);
            }

            return objetos;
        }
        public void IrParaOrcamentosDeProducao()
        {
            List<Orcamento.Domain.Orcamento> listaOrcamentos =
                new Orcamento.Domain.DB.Repositorio.Orcamentos().TodosOrcamentosHospitalares(Departamento);

            if (listaOrcamentos != null && listaOrcamentos.Any() && !listaOrcamentos.Any(o => o.VersaoFinal))
                Response.Redirect("/OrcamentosDeProducao.aspx?final=0");
            else
                Response.Redirect("/OrcamentosDeProducao.aspx");
        }
        public static void InformarMemoriaDeCalculoUnitario(string parametro, string texto)
        {
            try
            {
                int idOrcamento = 0;
                if (Int32.TryParse(texto, out idOrcamento))
                {
                    var orcamentos = new Orcamento.Domain.DB.Repositorio.Orcamentos();
                    var orcamento = orcamentos.Obter<Orcamento.Domain.Orcamento>(idOrcamento);
                    orcamento.MemoriaDeCalculoUnitarios = parametro;

                    orcamentos.Salvar(orcamento);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void InserirBercarioParaOrcamentosAntigos()
        {
            Setores setores = new Setores();

            var bercario = setores.Obter<SetorHospitalar>(9);

            var subAltoRisco = setores.Obter<SubSetorHospital>(25);
            var subSemiIntencivo = setores.Obter<SubSetorHospital>(26);

            var leito = setores.Obter<ContaHospital>(5);
            var ocupacao = setores.Obter<ContaHospital>(6);

            var orcamentos = new Orcamentos();

            var orcamentoHospitalar = orcamentos.Obter<OrcamentoHospitalar>(21);

            orcamentoHospitalar.CriarServico(leito, subAltoRisco, bercario);
            orcamentoHospitalar.CriarServico(ocupacao, subAltoRisco, bercario);
            orcamentoHospitalar.CriarServico(leito, subSemiIntencivo, bercario);
            orcamentoHospitalar.CriarServico(ocupacao, subSemiIntencivo, bercario);

            orcamentoHospitalar.CriarFatorReceita(subSemiIntencivo, bercario);
            orcamentoHospitalar.CriarFatorReceita(subAltoRisco, bercario);

            orcamentos.Salvar(orcamentoHospitalar);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            VerificaSeExisteSessaoDeUsuario();
            if (!Page.IsPostBack)
            {
                Departamentos setores = new Departamentos();
                this.SetorSelecionado = setores.Obter((int)Session["DepartamentoLogadoId"]);

                orcamentos = new Orcamento.Domain.DB.Repositorio.Orcamentos();
                var listaOrcamentos = orcamentos.TodosPor(SetorSelecionado);

                PreencherOrcamentos(listaOrcamentos);
            }
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {

                var antigaListaDeCentrosDeCusto = Controller.BuscarTodosOsCentrosDeCustoDeUmDepartamento(int.Parse(Session["DepartamentoLogadoId"].ToString()));
                Hospital hospital;

                if (FuncaoDaPagina == "a")
                {
                    hospital = Controller.BuscarHospitalPor(int.Parse(ddlHospitais.SelectedValue));
                    hospital.Nome = txtNome.Text;
                }
                else
                {
                    hospital = new Hospital();
                    hospital.Nome = txtNome.Text;
                }

                foreach (RepeaterItem item in rptCentrosDeCusto.Items)
                {
                    if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                    {
                        if (((CheckBox)item.FindControl("chkSelecionado")).Checked)
                        {

                            int centroDeCustoId = int.Parse(((HiddenField)item.FindControl("hdnIdSetor")).Value);

                            if (!hospital.CentrosDeCusto.Any(c => c.Id == centroDeCustoId))
                                hospital.Adicionar(controller.ObterCentroDeCustoPor(centroDeCustoId: centroDeCustoId));
                        }
                        else
                        {
                            int centroDeCustoId = int.Parse(((HiddenField)item.FindControl("hdnIdSetor")).Value);
                            if (hospital.CentrosDeCusto.Any(c => c.Id == centroDeCustoId))
                            {
                                if (hospital.Id > 0)
                                {
                                    var nome = ((HiddenField)item.FindControl("hdnNomeSetor")).Value;
                                    Orcamentos orcamentos = new Orcamentos();

                                    var orcamentosDeViagem = orcamentos.TodosOrcamentosDeViagemPor(hospital.CentrosDeCusto.Where(c => c.Id == centroDeCustoId).FirstOrDefault(), hospital);
                                    var orcamentosOperacionais = orcamentos.TodosOrcamentosOperacionaisPor(hospital.CentrosDeCusto.Where(c => c.Id == centroDeCustoId).FirstOrDefault(), hospital);
                                    var funcionarios = hospital.CentrosDeCusto.Where(c => c.Id == centroDeCustoId).FirstOrDefault().Funcionarios.Where(d => d.Departamento == hospital);

                                    if (orcamentosDeViagem != null && orcamentosDeViagem.Count > 0)
                                        throw new Exception("Não é possivel Retirar o Centro de Custo:" + nome + " pois ele está atrelado a pelomenos um Orcamento de viagem.");

                                    if (orcamentosOperacionais != null && orcamentosOperacionais.Count > 0)
                                        throw new Exception("Não é possivel Retirar o Centro de Custo:" + nome + " pois ele está atrelado a pelomenos um Orcamento de despesa operacional.");

                                    if (funcionarios != null && funcionarios.Count() > 0)
                                        throw new Exception("Não é possivel Retirar o Centro de Custo:" + nome + " pois ele está atrelado a pelomenos um funcionário com este Departamento.");

                                }
                                hospital.CentrosDeCusto.Remove(hospital.CentrosDeCusto.Where(c => c.Id == centroDeCustoId).FirstOrDefault());
                            }
                        }
                    }
                }

                Controller.SalvarDepartamento(hospital);
                Notificacao = "Hospital salvo com sucesso";

            }
            catch (Exception ex)
            {

                Notificacao = ex.Message;
            }

            EnviarMensagem();
            LimparCampos();
            PopularRepeaterDeCentrosDeCusto();
        }
Example #11
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();
                }
            }
        }
        public void Executar()
        {
            var tiposConta = new TiposConta();
            var tiposDeconta = new TiposConta();
            var tipoContaOutras = tiposDeconta.Obter<TipoConta>(1);

            string _conectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;";
            _conectionstring += String.Format("Data Source={0};", "D:\\CargaOrcamento2014\\DepartamentoCentroDeCustoContaHospitalarNew.xls");
            _conectionstring += "Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'";

            var cn = new OleDbConnection(_conectionstring);
            var cmd = new OleDbCommand("Select * from [c$]", cn);
            cn.Open();
            var reader = cmd.ExecuteReader();

            var documento = new List<RegistroExcel>();

            var listaContas = new List<Conta>();
            var listaCentrosDeCusto = new List<CentroDeCusto>();

            var repositorioDeHospitais = new Hospitais();
            var repositorioDeCusto = new CentrosDeCusto();
            var repositorioContas = new Contas();

            int i = 0;

            while (reader.Read())
            {
                if (i == 0)
                {
                    i++;
                    continue;
                }
                if (reader[0] == null || reader[0] == DBNull.Value || string.IsNullOrEmpty(reader[0].ToString()))
                    break;

                var registroExcel = new RegistroExcel()
                {
                    NomeHospital = (string)reader[5],
                    CodigoCentroDeCusto = Convert.ToString(reader[0]),
                    DescricaoCentroDeCusto = (string)reader[1]
                };

                if (reader[5] != DBNull.Value)
                {
                    registroExcel.DescricaoConta = (string)reader[3];
                    registroExcel.CodigoConta = Convert.ToString(reader[2]);
                    registroExcel.GrupoResumoNome = (string)reader[4];
                }

                registroExcel.Mes = (string)reader[7];
                registroExcel.Valor = Convert.ToInt64(reader[6]);

                documento.Add(registroExcel);
            }

            cn.Close();
            cn.Dispose();
            cmd.Dispose();

            var gruposDeConta = documento.Select(x => x.GrupoResumoNome).Distinct();

            var codigosDeConta = documento.Select(x => x.CodigoConta).Distinct();

            foreach (var codigoDeConta in codigosDeConta)
            {

            }

            var codigosDecentrosDeCusto = documento.Select(x => x.CodigoCentroDeCusto).Distinct();

            foreach (var codigoDeCentro in codigosDecentrosDeCusto)
            {
                var descricaoDeCentroDeCusto = documento.Where(x => x.CodigoCentroDeCusto == codigoDeCentro).Select(y => y.DescricaoCentroDeCusto).Distinct().First();

            }

            var hospitais = documento.Select(x => x.NomeHospital).Distinct();
            var listaHospitais = new List<Departamento>();
            var orcamentoNao = new List<Orcamento.Domain.Orcamento>();
            foreach (var nomeHospital in hospitais)
            {
                var hospital = repositorioDeHospitais.ObterPor(nomeHospital);
                if (hospital == null)
                    throw new Exception();

                listaCentrosDeCusto = new List<CentroDeCusto>();
                listaContas = new List<Conta>();

                if (!listaHospitais.Any(l => l.Nome == nomeHospital))
                {
                    listaHospitais.Add(hospital);

                    foreach (var documentoHospital in documento.Where(d => d.NomeHospital == nomeHospital))
                    {
                        var centroDeCusto = repositorioDeCusto.ObterPor(documentoHospital.CodigoCentroDeCusto);
                        if (centroDeCusto == null)
                            throw new Exception();

                        if (!listaCentrosDeCusto.Any(l => l.CodigoDoCentroDeCusto == documentoHospital.CodigoCentroDeCusto))
                            listaCentrosDeCusto.Add(centroDeCusto);

                        string descricaoDaConta = documento.Where(x => x.CodigoConta == documentoHospital.CodigoConta).Select(y => y.DescricaoConta).Distinct().First();

                        var conta = repositorioContas.ObterContaPor(documentoHospital.CodigoConta);
                        if (conta == null)
                            throw new Exception();

                        if (!listaContas.Any(l => l.CodigoDaConta == documentoHospital.CodigoConta))
                            listaContas.Add(conta);

                    }

                    foreach (var centroDeCusto in listaCentrosDeCusto)
                    {
                        Orcamentos orcamentos = new Orcamentos();
                        var orcamento = orcamentos.ObterOrcamentoFinalOrcamentoOperacional(centroDeCusto, hospital);
                        if (orcamento == null)
                        {
                            var orcamentosGerenciamento = orcamentos.TodosOrcamentosOperacionaisPor(centroDeCusto, hospital);

                            bool podeCriarMaisUmaVersaoDeOrcamento = PodeCriarMaisUmaVersaoDeOrcamento(hospital, centroDeCusto.Id, orcamentosGerenciamento);

                            if (podeCriarMaisUmaVersaoDeOrcamento)
                                orcamento = this.ServicoOrcamento.CriarOrcamentoOperacional(orcamentosGerenciamento, hospital, centroDeCusto, 2014);
                            else
                                throw new Exception();

                            foreach (var despesa in orcamento.DespesasOperacionais)
                            {
                                var valor = documento.FirstOrDefault(
                                    d =>
                                    d.CodigoCentroDeCusto == centroDeCusto.CodigoDoCentroDeCusto &&
                                    d.CodigoConta == despesa.Conta.CodigoDaConta && d.NomeHospital == nomeHospital && d.Mes == ObterMes(despesa.Mes));

                                if (valor != null)
                                    despesa.Valor = valor.Valor;
                            }
                            orcamento.AtribuirVersaoFinal();
                            orcamentos.Salvar(orcamento);
                        }

                    }

                }

            }

            //ServicoAtualizarDespesasOperacionais servico = new ServicoAtualizarDespesasOperacionais();
            //var centrosAbuscar = listaCentrosDeCusto.Distinct();
            //foreach (var centro in centrosAbuscar)
            //{
            //    servico.AtualizarDespesas(centro);
            //}
        }
        public void InserirSetoresESubSetores(Departamento departamento)
        {
            Orcamentos orcamentos = new Orcamentos();

            var setorHemodinamica = new SetorHospitalar("Hemodinâmica");
            var subSetorHemodinamica = new SubSetorHospital("Hemodinâmica");
            setorHemodinamica.AdicionarSetor(subSetorHemodinamica);

            var setorOncologia = new SetorHospitalar("Oncologia");
            var subSetorOncologia = new SubSetorHospital("Oncologia");
            setorOncologia.AdicionarSetor(subSetorOncologia);

            var procedimento = new ContaHospital("Procedimendo", TipoValorContaEnum.Quantidade);

            setorHemodinamica.AdicionarConta(procedimento);
            setorOncologia.AdicionarConta(procedimento);

            var centroCirurgico = new SetorHospitalar("Centro Cirúrgico");
            var centroCirurgicoSubSetor = new SubSetorHospital("Centro Cirúrgico");
            var centroCirurgicoObstetrico = new SubSetorHospital("Centro Obstétrico");
            centroCirurgico.AdicionarSetor(centroCirurgicoSubSetor);
            centroCirurgico.AdicionarSetor(centroCirurgicoObstetrico);

            //Contas ta cirurgia
            var cirurgia = new ContaHospital("Cirurgias", TipoValorContaEnum.Quantidade);
            var salas = new ContaHospital("Salas", TipoValorContaEnum.Quantidade, false, true);
            var cirurgiaPorSala = new ContaHospital("Cirurgias por Sala", TipoValorContaEnum.Quantidade, true, false);

            centroCirurgico.AdicionarConta(cirurgia);
            centroCirurgico.AdicionarConta(salas);
            centroCirurgico.AdicionarConta(cirurgiaPorSala);

            cirurgiaPorSala.AnexarConta(cirurgia);
            cirurgiaPorSala.AnexarConta(salas);

            //UTI
            var uti = new SetorHospitalar("UTI");
            var utiSemiMaternidade = new SubSetorHospital("UTI Semi Maternidade");
            var utiAdulto = new SubSetorHospital("UTI Adulto");
            var utiPediatrica = new SubSetorHospital("Uti Pediátrica");
            var utiNeoNatal = new SubSetorHospital("Uti Neo-Natal");
            var utiCoronariana = new SubSetorHospital("Uti Coronariana");
            var semiIntensiva = new SubSetorHospital("Uti Semi-Intensiva");

            //Contas da UTI
            var leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            var ocupacao = new ContaHospital("Taxa de Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;
            uti.AdicionarConta(leito);
            uti.AdicionarConta(ocupacao);

            //SubSetores da UTI
            uti.AdicionarSetor(utiSemiMaternidade);
            uti.AdicionarSetor(utiAdulto);
            uti.AdicionarSetor(utiPediatrica);
            uti.AdicionarSetor(utiNeoNatal);
            uti.AdicionarSetor(utiCoronariana);
            uti.AdicionarSetor(semiIntensiva);

            //UNI
            var uni = new SetorHospitalar("UNI");
            var uniAdulto = new SubSetorHospital("Uni Adulto");
            var uniPediatrica = new SubSetorHospital("Uni Pediátrica");
            var uniMaternidade = new SubSetorHospital("Maternidade");

            uni.AdicionarSetor(uniAdulto);
            uni.AdicionarSetor(uniPediatrica);
            uni.AdicionarSetor(uniMaternidade);

            //Contas UNI
            uni.AdicionarConta(leito);
            uni.AdicionarConta(ocupacao);

            //Conta Atendimento
            var atendimento = new ContaHospital("Atendimento", TipoValorContaEnum.Quantidade);

            //Emergencia
            var emergencia = new SetorHospitalar("Emergência");
            var subEmergenciaMaternidade = new SubSetorHospital("Emergência Maternidade");
            var subEmergenciaAdulto = new SubSetorHospital("Emergência Adulto");
            var subEmergenciaPediatrica = new SubSetorHospital("Emergência Pediátrica");
            emergencia.AdicionarSetor(subEmergenciaMaternidade);
            emergencia.AdicionarSetor(subEmergenciaAdulto);
            emergencia.AdicionarSetor(subEmergenciaPediatrica);
            emergencia.AdicionarConta(atendimento);

            //Ambulatorio
            var ambulatorio = new SetorHospitalar("Ambulatório");
            var subAmbulatorio = new SubSetorHospital("Ambulatório");
            ambulatorio.AdicionarSetor(subAmbulatorio);
            ambulatorio.AdicionarConta(atendimento);

            //SADT
            var sadt = new SetorHospitalar("SADT");
            var cardiologico = new SubSetorHospital("Cardiológico");
            var resonanciaMagnetica = new SubSetorHospital("Resonância Mag");
            var ultrassonografica = new SubSetorHospital("Ultrassonografia");
            var tomografiaCompleta = new SubSetorHospital("Tomografia Comp");
            var radiologia = new SubSetorHospital("Radiologia");
            var patologiaClinica = new SubSetorHospital("Patologia Clínica");
            var outros = new SubSetorHospital("Outros");
            var exames = new ContaHospital("Exames", TipoValorContaEnum.Quantidade);

            sadt.AdicionarSetor(cardiologico);
            sadt.AdicionarSetor(resonanciaMagnetica);
            sadt.AdicionarSetor(ultrassonografica);
            sadt.AdicionarSetor(tomografiaCompleta);
            sadt.AdicionarSetor(radiologia);
            sadt.AdicionarSetor(patologiaClinica);
            sadt.AdicionarSetor(outros);
            sadt.AdicionarConta(exames);

            var bercario = new SetorHospitalar("Berçário");
            var bercarioAltoRisco = new SubSetorHospital("Berçário Alto Risco");
            var bercarioSemiIntensiva = new SubSetorHospital("Berçário Semi-intensiva");

            bercario.AdicionarSetor(bercarioAltoRisco);
            bercario.AdicionarSetor(bercarioSemiIntensiva);

            bercario.AdicionarConta(ocupacao);
            bercario.AdicionarConta(leito);

            departamento.AdicionarSetor(sadt);
            departamento.AdicionarSetor(centroCirurgico);
            departamento.AdicionarSetor(uti);
            departamento.AdicionarSetor(uni);
            departamento.AdicionarSetor(emergencia);
            departamento.AdicionarSetor(ambulatorio);
            departamento.AdicionarSetor(setorHemodinamica);
            departamento.AdicionarSetor(setorOncologia);
            departamento.AdicionarSetor(bercario);

            Departamentos repositorio = new Departamentos();

            repositorio.Salvar(sadt);
            repositorio.Salvar(centroCirurgico);
            repositorio.Salvar(uti);
            repositorio.Salvar(uni);
            repositorio.Salvar(emergencia);
            repositorio.Salvar(ambulatorio);
            repositorio.Salvar(setorHemodinamica);
            repositorio.Salvar(setorOncologia);
            repositorio.Salvar(bercario);
            repositorio.Salvar(departamento);
        }
        public void Salvar(Domain.Orcamento orcamento)
        {
            var orcamentos = new Orcamentos();

            orcamentos.Salvar(orcamento);
        }
 private void PreencherCoorporativo()
 {
     var orcamentos = new Orcamentos();
     var orcamentosPessoais = new NovosOrcamentosPessoais();
     Setores departamentos = new Setores();
     var orcamentosOperacionais = orcamentos.ObterOrcamentosFinaisOperacionaisCoorporativo();
     var orcamentosDeViagem = orcamentos.ObterOrcamentosFinaisViagensCoorporativo();
     var orcamentosDePessoal = orcamentosPessoais.TodosCoorporativo();
     var setores = departamentos.Todos();
     CriarCoorporativos(setores, orcamentosOperacionais, orcamentosDeViagem, orcamentosDePessoal);
 }
        private void PreencherPessoal()
        {
            Orcamentos orcamentos = new Orcamentos();

            OrcamentosPessoal = new List<NovoOrcamentoPessoal>();
            var orcamentosNovos =  new NovosOrcamentosPessoais();
            OrcamentosDeDespesasOperacionais = new List<Orcamento.Domain.Orcamento>();
            foreach (var centro in Departamento.CentrosDeCusto)
            {
                var servicoCalculaPessoal = new ServicoGerarOrcamentoPessoalPorCentroDeCusto();
                servicoCalculaPessoal.CentroDeCusto = centro;
                servicoCalculaPessoal.Departamento = Departamento;

                servicoCalculaPessoal.Gerar("");
                OrcamentosPessoal.Add(servicoCalculaPessoal.Orcamento);
            }

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

            if (receitasNoAno != null)
            {
                var DespesasAgrupadas =
                    OrcamentosDeDespesasOperacionais.Select(
                        c =>
                        c.DespesasOperacionais.Where(
                            d => grupoDeContaPessoal.Contas.Any(g => g.CodigoDaConta == d.Conta.CodigoDaConta))).ToList();

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

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

                    receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorDespesaPessoal =
                        DespesasAgrupadas.Sum(d1 => d1.Where(d2 => d2.Mes == (MesEnum)i).Sum(despesa => despesa.Valor));
                    receitasNoAno.Where(p => p.Mes == (MesEnum)i).FirstOrDefault().ValorDespesaPessoal +=
                        OrcamentosPessoal.Where(d=> d.Despesas != null && d.Despesas.Count > 0).Sum(
                            o => o.Despesas.Where(de=> de.Parcelas != null).Sum(d => d.Parcelas.Where(p => p.Mes == i).Sum(p1 => p1.Valor)));

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

                ltlPessoalTotal.Text = "(";
                ltlPessoalTotal.Text += (receitasNoAno.Sum(r => r.ValorDespesaPessoal) / 1000).ToString("#,###,###,###0");
                ltlPessoalTotal.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";
            }
        }
        public void z_deletar_Orcamentos_coorporativo()
        {
            Orcamentos orcamentos = new Orcamentos();
            Departamentos departamentos = new Departamentos();
            Usuarios usuarios = new Usuarios();

            var todosSetores = departamentos.Todos<Setor>();
            List<Orcamento.Domain.Orcamento> todosCoorporativos = new List<Orcamento.Domain.Orcamento>();
            foreach (var setor in todosSetores)
            {
                var todos = orcamentos.TodosPor(setor);

                if (todos != null && todos.Count > 0)
                    todosCoorporativos.AddRange(todos);
            }

            orcamentos.Deletar(todosCoorporativos);
        }