public virtual void AtribuirPermissaoParaADM(Usuario usuario)
        {
            TipoUsuarios tipoUsuarios = new TipoUsuarios();
            Departamentos repositorioDepartamentos = new Departamentos();
            Usuarios usuarios = new Usuarios();

            var departamentos = repositorioDepartamentos.Todos<Departamento>();

            foreach (var departamento in departamentos)
            {
                usuario.ParticiparDe(departamento);

                usuarios.Salvar(usuario);
            }
        }
        public void inicializar_usuario_de_teste()
        {
            Usuario usuario = new Usuario() { Nome = "Isaac" };

            Departamentos repositorioDepartamentos = new Departamentos();

            var departamentos = repositorioDepartamentos .Todos<Departamento>();

            foreach (var departamento in departamentos)
            {
                usuario.ParticiparDe(departamento);
            }

            Usuarios usuarios = new Usuarios();

            usuarios.Salvar(usuario);
        }
        public void InserirQuimioTerapiaNaOncologia()
        {
            var contas = new ContasHospitalares();
            var setoresHospitalares = new SetoresHospitalares();
            var setorOncologia = setoresHospitalares.Obter<SetorHospitalar>(8);

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            var quimioTerapia = new SubSetorHospital("Quimioterapia");

            setorOncologia.AdicionarSetor(quimioTerapia);

            setoresHospitalares.Salvar(setorOncologia);

            var insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioOncologiaQuimioTerapiaHospitalarPor(setorOncologia);
                insumos.Salvar(insumo);

                foreach (var subsetor in setorOncologia.SubSetores.Where
                (

                s =>
                    s.NomeSetor == "Quimioterapia"
                )
                )
                {
                    var ticket = new TicketDeProducao(setorOncologia, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
        public void r_insetir_SubSetoresParaUti()
        {
            var contas = new ContasHospitalares();
            var setoresHospitalares = new SetoresHospitalares();
            var setorUti = setoresHospitalares.Obter<SetorHospitalar>(3);

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            var neuroIntensiva = new SubSetorHospital("UTI Neuro-Intensiva");
            var utiPosOperatoria = new SubSetorHospital("UTI Pós-Operatória");
            var utiVentilatoria = new SubSetorHospital("UTI Ventilatória");
            var utiHepatico = new SubSetorHospital("UTI Hepático");

            setorUti.AdicionarSetor(neuroIntensiva);
            setorUti.AdicionarSetor(utiPosOperatoria);
            setorUti.AdicionarSetor(utiVentilatoria);
            setorUti.AdicionarSetor(utiHepatico);

            setoresHospitalares.Salvar(setorUti);

            var insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioUTIHospitalarPor(setorUti);
                insumos.Salvar(insumo);

                foreach (var subsetor in setorUti.SubSetores.Where
                (
                s => s.NomeSetor == "UTI Neuro-Intensiva" ||
                    s.NomeSetor == "UTI Pós-Operatória" ||
                    s.NomeSetor == "UTI Ventilatória" ||
                    s.NomeSetor == "UTI Hepático"
                )
                )
                {
                    var ticket = new TicketDeProducao(setorUti, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
        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);
        }
        public void insetir_setor_Semi()
        {
            ContasHospitalares contas = new ContasHospitalares();

            var leito = new ContaHospital("Capacidade Operacional", TipoValorContaEnum.Quantidade);
            var ocupacao = new ContaHospital("Taxa de Ocupação", TipoValorContaEnum.Porcentagem);
            var capacidadeFisica = new ContaHospital("Capacidade Fisica", TipoValorContaEnum.Quantidade, false, false);
            leito.MultiPlicaPorMes = true;

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            var semi = new SetorHospitalar("Semi");
            var subSemiIntensiva = new SubSetorHospital("Uti Semi-Intensiva");

            semi.AdicionarSetor(subSemiIntensiva);
            semi.AdicionarConta(leito);
            semi.AdicionarConta(ocupacao);
            semi.AdicionarConta(capacidadeFisica);

            var setores = new SetoresHospitalares();
            setores.Salvar(semi);

            Insumos insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamento.AdicionarSetor(semi);
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioHospitalarPor(semi);
                insumos.Salvar(insumo);

                foreach (var subsetor in semi.SubSetores)
                {
                    var ticket = new TicketDeProducao(semi, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
        public void insetir_setor_Suporte()
        {
            ContasHospitalares contas = new ContasHospitalares();

            var outrasReceitas = new ContaHospital("OutrasReceitas", TipoValorContaEnum.Quantidade);

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            var suporte = new SetorHospitalar("Maternidade");
            var subSuporte = new SubSetorHospital("Maternidade");

            suporte.AdicionarSetor(subSuporte);
            suporte.AdicionarConta(outrasReceitas);

            var setores = new SetoresHospitalares();
            setores.Salvar(suporte);

            Insumos insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamento.AdicionarSetor(suporte);
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioHospitalarPor(suporte);
                insumos.Salvar(insumo);

                foreach (var subsetor in suporte.SubSetores)
                {
                    var ticket = new TicketDeProducao(suporte, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
        public void e_InserirHospitaisComSetoresESubSetores()
        {
            Orcamentos orcamentos = new Orcamentos();

            Departamentos repositorioDepartamentos = new Departamentos();

            var departamentos = repositorioDepartamentos.Todos<Departamento>();

            //Cirurgia
            //Procedimento
            //Procedimento
            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);

            foreach (var departamento in departamentos)
            {
                if (departamento.GetType() == typeof(Setor))
                    continue;

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

                Hospitais repositorio = new Hospitais();
                repositorio.Salvar(departamento);
            }
        }
        private void AtribuirPermissaoParaADM(Departamento departamento)
        {
            TipoUsuarios tipoUsuarios = new TipoUsuarios();

            Departamentos repositorioDepartamentos = new Departamentos();

            Usuarios usuarios = new Usuarios();
            var todos = usuarios.TodosPor(tipoUsuarios.Obter<TipoUsuario>(1));

            var departamentos = repositorioDepartamentos.Todos<Setor>();

            foreach (var usuario in todos)
            {
                usuario.ParticiparDe(departamento);

                usuarios.Salvar(usuario);
            }
        }
        public void l_InserirContasEGrupoDeContasNosDepartamentos()
        {
            var tiposConta = new TiposConta();
            var tipoContaBeneficios = new TipoConta { Nome = "Beneficios" };
            tiposConta.Adicionar(tipoContaBeneficios);

            Departamentos departamentos = new Departamentos();
            var listaDepartamentos = departamentos.Todos();

            var tipoContaFGTS = new TipoConta { Nome = "FGTS" };
            var tipoContaINSS = new TipoConta { Nome = "INSS" };
            var tipoContaFerias = new TipoConta { Nome = "Férias" };
            var tipoContaIndenizacao = new TipoConta { Nome = "Indenização" };
            var tipoContaDecimoTerceiro = new TipoConta { Nome = "Décimo Terceiro" };
            var tipoContaSalario = new TipoConta { Nome = "Salário" };
            var tipoContaBolsasDeEstagio = new TipoConta { Nome = "Bolsas de Estágio" };
            var tipoContaExtras = new TipoConta { Nome = "Extras" };

            tiposConta.Adicionar(tipoContaFGTS);
            tiposConta.Adicionar(tipoContaINSS);
            tiposConta.Adicionar(tipoContaFerias);
            tiposConta.Adicionar(tipoContaIndenizacao);
            tiposConta.Adicionar(tipoContaDecimoTerceiro);
            tiposConta.Adicionar(tipoContaSalario);
            tiposConta.Adicionar(tipoContaBolsasDeEstagio);
            tiposConta.Adicionar(tipoContaExtras);
            var gruposDeConta = new GruposDeConta();
            var encargosSociais = new GrupoDeConta("Encargos Sociais");
            var remuneracao = new GrupoDeConta("Remuneração");
            var beneficios = new GrupoDeConta("Benefícios");

            gruposDeConta.Salvar(beneficios);
            gruposDeConta.Salvar(remuneracao);
            gruposDeConta.Salvar(encargosSociais);

            var contaAlimentacao = new Conta("Alimentação", tipoContaBeneficios);
            contaAlimentacao.Adicionar(TipoTicketDePessoal.Alimentação);

            var contaAssistenciaMedica = new Conta("Assistência Médica", tipoContaBeneficios);
            contaAssistenciaMedica.Adicionar(TipoTicketDePessoal.AssistenciaMedica);

            var contaOutrosBeneficios = new Conta("Outros Benefícios", tipoContaBeneficios);
            contaOutrosBeneficios.Adicionar(TipoTicketDePessoal.OutrosBeneficios);

            var contaTreinamentoPessoal = new Conta("Treinamento Pessoal", tipoContaBeneficios);
            contaTreinamentoPessoal.Adicionar(TipoTicketDePessoal.TreinamentoPessoal);

            var contaValeDeTransporte = new Conta("Vale de Transporte", tipoContaBeneficios);
            contaValeDeTransporte.Adicionar(TipoTicketDePessoal.ValeDeTransporte);

            var contaOutrasDespesas = new Conta("Outras Despesas", tipoContaBeneficios);
            contaOutrasDespesas.Adicionar(TipoTicketDePessoal.OutrasDespesas);

            var contaAssistenciaOdontologica = new Conta("Assistência Odontológica", tipoContaBeneficios);
            contaAssistenciaOdontologica.Adicionar(TipoTicketDePessoal.AssistenciaOdontologica);

            beneficios.Adicionar(contaAlimentacao);
            beneficios.Adicionar(contaAssistenciaMedica);
            beneficios.Adicionar(contaAssistenciaOdontologica);
            beneficios.Adicionar(contaOutrosBeneficios);
            beneficios.Adicionar(contaTreinamentoPessoal);
            beneficios.Adicionar(contaValeDeTransporte);
            beneficios.Adicionar(contaOutrasDespesas);

            var contaFGTS = new Conta("FGTS", tipoContaFGTS);
            contaFGTS.Adicionar(TipoTicketDePessoal.FGTS);
            encargosSociais.Adicionar(contaFGTS);

            var contaINSS = new Conta("INSS", tipoContaINSS);
            contaINSS.Adicionar(TipoTicketDePessoal.INSS);
            encargosSociais.Adicionar(contaINSS);

            var contaFerias = new Conta("Férias", tipoContaFerias);
            encargosSociais.Adicionar(contaFerias);

            var contaIndenizacao = new Conta("Indenização", tipoContaIndenizacao);
            encargosSociais.Adicionar(contaIndenizacao);

            var contaDecimoTerceiro = new Conta("Décimo Terceiro", tipoContaDecimoTerceiro);
            encargosSociais.Adicionar(contaDecimoTerceiro);

            foreach (var conta in encargosSociais.Contas)
            {
                if (conta.Nome == "Indenização")
                {
                    conta.Adicionar(TipoTicketDePessoal.Indenizacao);
                }
                else
                {
                    if (conta.Nome == "INSS" || conta.Nome == "FGTS")
                        conta.Adicionar(TipoTicketDePessoal.AdicionalDeSobreaviso);

                    conta.Adicionar(TipoTicketDePessoal.AdicionalNoturno);
                    conta.Adicionar(TipoTicketDePessoal.AdicionalDeInsalubridade);
                    conta.Adicionar(TipoTicketDePessoal.AdicionaDePericulosidade);
                    conta.Adicionar(TipoTicketDePessoal.Gratificacoes);
                    conta.Adicionar(TipoTicketDePessoal.HorasExtras);
                }
            }

            remuneracao.Adicionar(new Conta("Salário", tipoContaSalario));

            var contaBolsaDeEstagio = new Conta("Bolsas Estágio", tipoContaBolsasDeEstagio);
            contaBolsaDeEstagio.Adicionar(TipoTicketDePessoal.BolsaDeEstagio);
            remuneracao.Adicionar(contaBolsaDeEstagio);

            var contaAdicionalNoturno = new Conta("Adicional Noturno", tipoContaExtras);
            contaAdicionalNoturno.Adicionar(TipoTicketDePessoal.AdicionalNoturno);
            remuneracao.Adicionar(contaAdicionalNoturno);

            var contaPericulosidade = new Conta("Periculosidade", tipoContaExtras);
            contaPericulosidade.Adicionar(TipoTicketDePessoal.AdicionaDePericulosidade);
            remuneracao.Adicionar(contaPericulosidade);

            var contaInsalubridade = new Conta("Insalubridade", tipoContaExtras);
            contaInsalubridade.Adicionar(TipoTicketDePessoal.AdicionalDeInsalubridade);
            remuneracao.Adicionar(contaInsalubridade);

            var contaHorasExtras = new Conta("Horas Extras", tipoContaExtras);
            contaHorasExtras.Adicionar(TipoTicketDePessoal.HorasExtras);
            remuneracao.Adicionar(contaHorasExtras);

            var contaGratificacoes = new Conta("Gratificações", tipoContaExtras);
            contaGratificacoes.Adicionar(TipoTicketDePessoal.Gratificacoes);
            remuneracao.Adicionar(contaGratificacoes);

            Contas contas = new Orcamento.Domain.Contas();

            contas.Salvar(contaGratificacoes);
            contas.Salvar(contaHorasExtras);
            contas.Salvar(contaInsalubridade);
            contas.Salvar(contaPericulosidade);
            contas.Salvar(contaAdicionalNoturno);
            contas.Salvar(contaBolsaDeEstagio);
            contas.Salvar(contaDecimoTerceiro);
            contas.Salvar(contaIndenizacao);
            contas.Salvar(contaFerias);
            contas.Salvar(contaINSS);
            contas.Salvar(contaFGTS);
            contas.Salvar(contaAssistenciaOdontologica);
            contas.Salvar(contaOutrasDespesas);
            contas.Salvar(contaValeDeTransporte);
            contas.Salvar(contaTreinamentoPessoal);
            contas.Salvar(contaOutrosBeneficios);
            contas.Salvar(contaAssistenciaMedica);
            contas.Salvar(contaAlimentacao);
            contas.Salvar(contaAssistenciaMedica);
            contas.Salvar(contaAssistenciaMedica);
            contas.Salvar(contaAssistenciaMedica);
            contas.Salvar(contaAssistenciaMedica);

            TicketsDeProducao tickets = new TicketsDeProducao();
            NovosOrcamentosPessoais orcamentos = new NovosOrcamentosPessoais();

            foreach (var departamento in listaDepartamentos)
            {

                var ticketDeAlimentacao = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.Alimentação, Descricao = "Alimentação", Valor = 300 };
                var ticketDeAssistenciaMedica = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.AssistenciaMedica, Descricao = "Assistência Médica", Valor = 300 };
                var ticketAssistencia = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.AssistenciaOdontologica, Descricao = "Assistência Odontológica", Valor = 50 };
                var ticketDeBeneficios = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.OutrosBeneficios, Descricao = "Outros Benefícios", Valor = 50 };
                var ticketTreinamentoPessoal = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.TreinamentoPessoal, Descricao = "Treinamento Pessoal", Valor = 50 };
                var ticketValeTransporte = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.ValeDeTransporte, Descricao = "Vale de Transporte", Valor = 150 };
                var ticketDeOutrasDespesas = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.OutrasDespesas, Descricao = "Outras Despesas", Valor = 50 };

                var adicionalNoturno = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.AdicionalNoturno, Descricao = "Adicional Noturno", Valor = 4 };
                var insalubridade = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.AdicionalDeInsalubridade, Descricao = "Adicional de Insalubridade", Valor = 10 };
                var periculosidade = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.AdicionaDePericulosidade, Descricao = "Adicional de Periculosidade", Valor = 1 };
                var gratificacoes = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.Gratificacoes, Descricao = "Gratificações", Valor = 1 };
                var horasExtras = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.HorasExtras, Descricao = "Horas Extras", Valor = 2 };
                var sobreaviso = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.AdicionalDeSobreaviso, Descricao = "Adicional de Sobreaviso", Valor = 0 };
                var indenizacao = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.Indenizacao, Descricao = "Indenização", Valor = 235 };
                var bolsaDeEstagio = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.BolsaDeEstagio, Descricao = "Bolsa de Estágio", Valor = 0 };
                var fgts = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "FGTS", Valor = 8 };
                var inss = new TicketDeOrcamentoPessoal(departamento) { Ticket = TipoTicketDePessoal.INSS, Descricao = "INSS", Valor = 28 };

                foreach (var centroDeCusto in departamento.CentrosDeCusto)
                {
                    if (!centroDeCusto.GrupoDeContas.Any(g => g.Id == beneficios.Id))
                        centroDeCusto.Adicionar(beneficios);

                    if (!centroDeCusto.GrupoDeContas.Any(g => g.Id == remuneracao.Id))
                        centroDeCusto.Adicionar(remuneracao);

                    if (!centroDeCusto.GrupoDeContas.Any(g => g.Id == encargosSociais.Id))
                        centroDeCusto.Adicionar(encargosSociais);
                }

                tickets.Salvar(ticketDeAlimentacao);
                tickets.Salvar(ticketDeAssistenciaMedica);
                tickets.Salvar(ticketAssistencia);
                tickets.Salvar(ticketDeBeneficios);
                tickets.Salvar(ticketTreinamentoPessoal);
                tickets.Salvar(ticketValeTransporte);
                tickets.Salvar(ticketDeOutrasDespesas);

                tickets.Salvar(adicionalNoturno);
                tickets.Salvar(insalubridade);
                tickets.Salvar(periculosidade);
                tickets.Salvar(gratificacoes);
                tickets.Salvar(horasExtras);
                tickets.Salvar(sobreaviso);
                tickets.Salvar(indenizacao);
                tickets.Salvar(bolsaDeEstagio);
                tickets.Salvar(fgts);
                tickets.Salvar(inss);

                List<NovoOrcamentoPessoal> orcamentosPessoais = new List<NovoOrcamentoPessoal>();

                foreach (var centroDeCusto in departamento.CentrosDeCusto)
                {
                    var orcamento = new NovoOrcamentoPessoal(departamento, centroDeCusto, 2014);

                    orcamento.Adicionar(ticketDeAlimentacao);
                    orcamento.Adicionar(ticketDeAssistenciaMedica);
                    orcamento.Adicionar(ticketAssistencia);
                    orcamento.Adicionar(ticketDeBeneficios);
                    orcamento.Adicionar(ticketTreinamentoPessoal);
                    orcamento.Adicionar(ticketValeTransporte);
                    orcamento.Adicionar(ticketDeOutrasDespesas);

                    orcamento.Adicionar(adicionalNoturno);
                    orcamento.Adicionar(insalubridade);
                    orcamento.Adicionar(periculosidade);
                    orcamento.Adicionar(gratificacoes);
                    orcamento.Adicionar(horasExtras);
                    orcamento.Adicionar(sobreaviso);
                    orcamento.Adicionar(indenizacao);
                    orcamento.Adicionar(bolsaDeEstagio);
                    orcamento.Adicionar(fgts);
                    orcamento.Adicionar(inss);

                    orcamentosPessoais.Add(orcamento);
                }

                orcamentos.SalvarLista(orcamentosPessoais);
                departamentos.Salvar(departamento);
            }
        }
        public void i_inicializar_usuario_de_teste()
        {
            TipoUsuarios tipoUsuarios = new TipoUsuarios();

            Usuario usuario = new Usuario()
            {
                Nome = "isaac",
                Login = "******",
                Senha = "123456",
                TipoUsuario = tipoUsuarios.Obter<TipoUsuario>(1)
            };

            Departamentos repositorioDepartamentos = new Departamentos();

            var departamentos = repositorioDepartamentos.Todos<Departamento>();

            foreach (var departamento in departamentos)
            {
                usuario.ParticiparDe(departamento);
            }

            Usuarios usuarios = new Usuarios();

            usuarios.Salvar(usuario);
        }
        public void z_atribuirDepartamentos_para_Adm()
        {
            TipoUsuarios tipoUsuarios = new TipoUsuarios();

            Departamentos repositorioDepartamentos = new Departamentos();

            Usuarios usuarios = new Usuarios();
            var todos = usuarios.TodosPor(tipoUsuarios.Obter<TipoUsuario>(1));

            var departamentos = repositorioDepartamentos.Todos<Setor>();

            foreach (var usuario in todos)
            {
                foreach (var departamento in departamentos)
                {
                    usuario.ParticiparDe(departamento);
                }

                usuarios.Salvar(usuario);
            }
        }
        public void inserir_ticket_de_producao_nos_novos_sub_setores()
        {
            var insumos = new Insumos();
            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            foreach (var departamento in todos)
            {
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                var setor = departamento.Setores.Single(s => s.NomeSetor == "UTI");
                insumo.CriarCustoUnitarioHospitalarPor(setor);
                insumos.Salvar(insumo);

                foreach (var subsetor in setor.SubSetores.Where
                (
                s => s.NomeSetor == "UTI Neuro-Intensiva" ||
                    s.NomeSetor == "UTI Pós-Operatória" ||
                    s.NomeSetor == "UTI Ventilatória" ||
                    s.NomeSetor == "UTI Hepático"
                )
                )
                {
                    var ticket = new TicketDeProducao(setor, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
        public void t_amarrar_Pessoal_ao_centro_de_custo()
        {
            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            NovosOrcamentosPessoais orcamentos = new NovosOrcamentosPessoais();
            GruposDeConta grupos = new GruposDeConta();

            var encargosSociais = grupos.ObterPor("Encargos Sociais");
            var remuneracao = grupos.ObterPor("Remuneração");
            var beneficios = grupos.ObterPor("Benefícios");

            List<NovoOrcamentoPessoal> orcamentosPessoais = new List<NovoOrcamentoPessoal>();
            TicketsDeOrcamentoPessoal tickets = new TicketsDeOrcamentoPessoal();

            foreach (var departamento in todos)
            {

                foreach (var centroDeCusto in departamento.CentrosDeCusto.Where(c => c.CodigoDoCentroDeCusto == "050748"))
                {
                    if (!centroDeCusto.GrupoDeContas.Any(g => g.Id == beneficios.Id))
                        centroDeCusto.Adicionar(beneficios);

                    if (!centroDeCusto.GrupoDeContas.Any(g => g.Id == remuneracao.Id))
                        centroDeCusto.Adicionar(remuneracao);

                    if (!centroDeCusto.GrupoDeContas.Any(g => g.Id == encargosSociais.Id))
                        centroDeCusto.Adicionar(encargosSociais);

                    var ticketsDepartamento = tickets.Todos(departamento);

                    var orcamento = new NovoOrcamentoPessoal(departamento, centroDeCusto, 2014);

                    foreach (var ticket in ticketsDepartamento)
                    {
                        orcamento.Adicionar(ticket);
                    }

                    orcamentosPessoais.Add(orcamento);
                }

            }

            orcamentos.SalvarLista(orcamentosPessoais);
        }
        public void r_insetir_setor_bercario()
        {
            ContasHospitalares contas = new ContasHospitalares();
            var leito = contas.ObterContaPor("Leito");
            var taxa = contas.ObterContaPor("Taxa de Ocupação");

            var departamentos = new Departamentos();
            var todos = departamentos.Todos<Hospital>();

            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(leito);
            bercario.AdicionarConta(taxa);

            Insumos insumos = new Insumos();

            foreach (var departamento in todos)
            {
                departamento.AdicionarSetor(bercario);
                departamentos.Salvar(departamento);

                var insumo = insumos.ObterInsumo(departamento);
                insumo.CriarCustoUnitarioHospitalarPor(bercario);
                insumos.Salvar(insumo);

                foreach (var subsetor in bercario.SubSetores)
                {
                    var ticket = new TicketDeProducao(bercario, subsetor, departamento);

                    insumos.Salvar(ticket);
                }
            }
        }
        public void q_Inserir_DREDe2012()
        {
            Departamentos departamentos = new Departamentos();
            var hospitais = departamentos.Todos<Hospital>();

            List<DRETotal> dreTotal = new List<DRETotal>();
            foreach (var hospital in hospitais)
            {
                DRETotal dre = new DRETotal(hospital);

                dreTotal.Add(dre);
            }

            DRES dres = new DRES();
            dres.SalvarLista(dreTotal);
        }
        public void n_Inserir_acordoConvencao_no_departamento()
        {
            Departamentos departamentos = new Departamentos();
            AcordosDeConvencao acordos = new AcordosDeConvencao();
            var tdosDepartamentos = departamentos.Todos();

            List<AcordoDeConvencao> ListaAcordos = new List<AcordoDeConvencao>();
            foreach (var departamento in tdosDepartamentos)
            {
                AcordoDeConvencao acordo = new AcordoDeConvencao(departamento, 0, 0);
                ListaAcordos.Add(acordo);
            }

            acordos.SalvarLista(ListaAcordos);
        }
        public void m_Inserir_tickets_de_producao()
        {
            Departamentos departamentos = new Departamentos();
            var hospitais = departamentos.Todos<Hospital>();
            Insumos insumos = new Insumos();

            List<Insumo> ListaInsumos = new List<Insumo>();

            foreach (var hospital in hospitais)
            {
                var insumo = new Insumo(hospital);
                ListaInsumos.Add(insumo);
            }

            insumos.SalvarLista(ListaInsumos);
        }
        public void Deletar_Departamento_centro_deCusto_coorporativo()
        {
            Departamentos departamentos = new Departamentos();
            var setores = departamentos.Todos<Setor>().ToList();
            List<CentroDeCusto> centros = new List<CentroDeCusto>();
            CentrosDeCusto repositorioCentro = new CentrosDeCusto();
            Funcionarios repositoriofuncionarios = new Funcionarios();

            //foreach (var setor in setores)
            //{
            //    var centrosRecuperados = setor.CentrosDeCusto;
            //    if (centrosRecuperados != null && centrosRecuperados.Count > 1)
            //        centros.AddRange(centrosRecuperados);
            //}

            departamentos.Deletar(setores);

            // repositorioCentro.Deletar(centros);
        }
        public void Deletar_todos_Ticket_de_pessoal()
        {
            TicketsDeOrcamentoPessoal tickets = new TicketsDeOrcamentoPessoal();
            Departamentos departamentos = new Departamentos();
            var todosSetores = departamentos.Todos<Setor>();

            List<TicketDeOrcamentoPessoal> todosTickets = new List<TicketDeOrcamentoPessoal>();
            foreach (var setor in todosSetores)
            {
                var ticketsRecuperados = tickets.Todos(setor);
                if (ticketsRecuperados != null && ticketsRecuperados.Count > 0)
                    todosTickets.AddRange(ticketsRecuperados);
            }

            tickets.Deletar(todosTickets);
        }
        private void CarregarComboDeDepartamento()
        {
            Departamentos departamentos = new Departamentos();
            var todosDepartamentos = departamentos.Todos();

            DdlDepartamento.DataSource = todosDepartamentos.OrderBy(x => x.Nome);
            DdlDepartamento.DataTextField = "Nome";
            DdlDepartamento.DataValueField = "Id";
            DdlDepartamento.DataBind();

            DdlDepartamento.Items.Insert(0, new ListItem("Selecione", "0"));

            ddlDepartamentoDestino.DataSource = todosDepartamentos.OrderBy(x => x.Nome);
            ddlDepartamentoDestino.DataTextField = "Nome";
            ddlDepartamentoDestino.DataValueField = "Id";
            ddlDepartamentoDestino.DataBind();

            ddlDepartamentoDestino.Items.Insert(0, new ListItem("Selecione", "0"));
        }
        public void InserirTicketsDeProducao()
        {
            Departamentos departamentos = new Departamentos();
            var hospitais = departamentos.Todos<Hospital>();

            List<TicketDeProducao> tickets = new List<TicketDeProducao>();
            List<TicketDeReceita> ticketsDeReceita = new List<TicketDeReceita>();

            foreach (var hospital in hospitais)
            {

                ticketsDeReceita.Add(new TicketDeReceita(hospital, "Glosa Interna", TipoTicketDeReceita.GlosaInterna));
                ticketsDeReceita.Add(new TicketDeReceita(hospital, "Glosa Externa", TipoTicketDeReceita.GlosaExterna));
                ticketsDeReceita.Add(new TicketDeReceita(hospital, "Reajuste de Convênios", TipoTicketDeReceita.ReajusteDeConvenios));
                ticketsDeReceita.Add(new TicketDeReceita(hospital, "Impostos", TipoTicketDeReceita.Impostos));
                ticketsDeReceita.Add(new TicketDeReceita(hospital, "Reajustes de Insumos", TipoTicketDeReceita.ReajusteDeInsumos));
                ticketsDeReceita.Add(new TicketDeReceita(hospital, "Descontos Obtidos", TipoTicketDeReceita.Descontos));

                foreach (var setor in hospital.Setores)
                {
                    foreach (var subSetor in setor.SubSetores)
                    {
                        tickets.Add(new TicketDeProducao(setor, subSetor, hospital));
                    }
                }
            }

            departamentos.SalvarLista(tickets);
            departamentos.SalvarLista(ticketsDeReceita);
        }