public IList<OrcamentoPessoalDTO> Obter(NovoOrcamentoPessoal orcamentoPessoal)
        {
            this.Departamento = orcamentoPessoal.Departamento;
            Orcamento = orcamentoPessoal;

            var orcamentosPessoaisDTO = new List<OrcamentoPessoalDTO>();

            var grupoDeContasDTO = new List<GrupoDeContaDTO>();

            foreach (var grupoDeConta in orcamentoPessoal.CentroDeCusto.GrupoDeContas)
            {
                var grupoDeContaDTO = ObterGrupoDeContaDTOInicializado(grupoDeConta);

                foreach (var conta in grupoDeConta.Contas)
                    AdicionarDespesas(grupoDeContaDTO, conta, orcamentoPessoal.CentroDeCusto);

                CalcularTotalizadorGrupoDeConta(grupoDeContaDTO);

                grupoDeContasDTO.Add(grupoDeContaDTO);
            }

            var orcamentoPessoalDTO = new OrcamentoPessoalDTO();

            CalcularTotalizadorDoOrcamento(orcamentoPessoalDTO, grupoDeContasDTO);

            orcamentosPessoaisDTO.Add(orcamentoPessoalDTO);

            return orcamentosPessoaisDTO;
        }
 public FGTSComAumento(double percentualDeAumento, int mesDoAumento, Conta conta, NovoOrcamentoPessoal orcamento)
 {
     this.percentualDeAumento = percentualDeAumento;
     this.mesDoAumento = mesDoAumento;
     base.Conta = conta;
     this.Orcamento = orcamento;
 }
        public static DespesaPessoal ObterDespesasParaO(Funcionario funcionario, Conta conta,NovoOrcamentoPessoal orcamento)
        {
            if (funcionario.Demitido)
                return ObterDespesaDeFuncionarioDemitido(conta, funcionario,orcamento);

            return funcionario.Aumentado ? ObterDespesaDeFuncionarioAumentado(conta, funcionario,orcamento) : ObterDespesaDeFuncionarioSemAumento(conta,orcamento);
        }
Esempio n. 4
0
        public FgtsRecisao(int mesDeRecisao, Conta conta, NovoOrcamentoPessoal orcamento)
        {
            Contract.Requires(mesDeRecisao > default(int), "Mês de demissão não foi informado ");

            _mesDeDemissao = mesDeRecisao;
            Conta = conta;
            this.Orcamento = orcamento;
        }
        private void CalcularBeneficios(Conta conta, NovoOrcamentoPessoal orcamento)
        {
            var headCount = CentroDeCusto.Funcionarios.Where(c => c.Departamento.Id == Departamento.Id).ToList().Count;

            foreach (var funcionario in CentroDeCusto.Funcionarios.Where(f => f.Departamento.Id == Departamento.Id))
            {
                Beneficios beneficio = new Beneficios(conta, orcamento);
                beneficio.Calcular(headCount, funcionario);
            }
        }
Esempio n. 6
0
        public void calculo_de_fgts_gera_doze_parcelas()
        {
            var orcamento = new NovoOrcamentoPessoal(new Setor("Nome"), new CentroDeCusto("novo"), 2014);
            Conta conta = new Conta("Test", new TipoConta { Id = 1 });
            conta.Adicionar(TipoTicketDePessoal.FGTS);

            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "Teste", Valor = 0 });
            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "FGTS", Valor = 8 });

            var fgts = new FGTS(conta, orcamento);

            fgts.Funcionario = new Funcionario(new Hospital("nome")) { AnoAdmissao = 2014, DataAdmissao = 1 };
            fgts.Calcular(2, 1, 0, 0);

            Assert.AreEqual(fgts.Parcelas.Count, 12);
        }
Esempio n. 7
0
        public void teste_calcular_parcela_de_salario_com_sucesso()
        {
            NovoOrcamentoPessoal orcamento = new NovoOrcamentoPessoal(new Setor("Nome"), new CentroDeCusto("nome"), 2014);
            Conta conta = new Conta("Test", new TipoConta { Id = 1 });

            var salario = new Salario(conta, orcamento);

            salario.Funcionario = new Funcionario(new Hospital("nome")) { AnoAdmissao = 2014, DataAdmissao = 1 };
            salario.Calcular(0.03, 1, 0, 0);

            Parcela parcela = new Parcela
                                  {
                                      Mes = 1,
                                      Valor = 0.03d
                                  };

            CollectionAssert.Contains(salario.Parcelas, parcela);
        }
Esempio n. 8
0
        public void valor_da_parcela_de_recisao_calculada_com_sucesso()
        {
            var orcamento = new NovoOrcamentoPessoal(new Setor("Nome"),new CentroDeCusto("nome"),2014);
            Conta conta = new Conta("TestMethod", new TipoConta { Id = 1 });
            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Descricao = "Indenização", Valor = 1 });

            Recisao recisao = new Recisao(2, conta, orcamento);

            recisao.Calcular(2, 1, 0, 0);

            Parcela parcela = new Parcela
                                  {
                                      Mes = 2,
                                      Valor = 0.02d
                                  };

              //  CollectionAssert.Contains(recisao.Parcelas, parcela);
        }
Esempio n. 9
0
        public void teste_calcular_parcela_de_fgts_com_sucesso()
        {
            var orcamento =  new NovoOrcamentoPessoal(new Setor("Nome"), new CentroDeCusto("novo"), 2014);
            var conta = new Conta("Test", new TipoConta { Id = 1 });
            conta.Adicionar(TipoTicketDePessoal.FGTS);

            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "Teste", Valor = 0 });
            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "FGTS", Valor = 8 });

            var fgts = new FGTS(conta, orcamento);

            fgts.Funcionario = new Funcionario(new Hospital("nome")) { AnoAdmissao = 2014, DataAdmissao = 1 };
            fgts.Calcular(2, 1, 0, 0);

            Parcela parcela = new Parcela { Mes = 1, Valor = 0.19111066666666665d};

            Assert.AreEqual(fgts.Parcelas.FirstOrDefault().Valor, parcela.Valor);
        }
 private static DespesaPessoal ObterDespesaDeFuncionarioAumentado(Conta conta, Funcionario funcionario, NovoOrcamentoPessoal orcamento)
 {
     switch (conta.TipoConta.TipoContaEnum)
     {
         case TipoContaEnum.FGTS:
             return new FGTSComAumento(funcionario.Aumento, funcionario.MesDeAumento, conta, orcamento);
         case TipoContaEnum.DecimoTerceiro:
             return new DecimoTerceiroComAumento(funcionario.Aumento, funcionario.MesDeAumento, conta, orcamento);
         case TipoContaEnum.Ferias:
             return new FeriasComAumento(funcionario.Aumento, funcionario.MesDeAumento, conta, orcamento);
         case TipoContaEnum.Salario:
             return new SalarioComAumento(funcionario.Aumento, funcionario.MesDeAumento, conta, orcamento);
         case TipoContaEnum.INSS:
             return new INSSComAumento(funcionario.Aumento, funcionario.MesDeAumento, conta, orcamento);
         case TipoContaEnum.Extras:
             return new Extras(conta,orcamento);
         default:
             return null;
     }
 }
 private static DespesaPessoal ObterDespesaDeFuncionarioSemAumento(Conta conta,NovoOrcamentoPessoal orcamento)
 {
     switch (conta.TipoConta.TipoContaEnum)
     {
         case TipoContaEnum.FGTS:
             return new FGTS(conta,orcamento);
         case TipoContaEnum.DecimoTerceiro:
             return new DecimoTerceiro(conta, orcamento);
         case TipoContaEnum.Ferias:
             return new Ferias(conta, orcamento);
         case TipoContaEnum.Salario:
             return new Salario(conta, orcamento);
         case TipoContaEnum.INSS:
             return new INSS(conta, orcamento);
         case TipoContaEnum.Extras:
             return new Extras(conta,orcamento);
         default:
             return null;
     }
 }
        public void Inicializar()
        {
            funcionarioDemitido = new Funcionario(new Setor("nome"))
            {
                Demitido = true,
                MesDeDemissao = 6,
                Salario = 100,
                DataAdmissao = 06
            };

            var centroDeCustoDeTI = new CentroDeCusto("TI");
            var orcamento =  new NovoOrcamentoPessoal(new Setor("Nome"),centroDeCustoDeTI,2014);

            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket= TipoTicketDePessoal.Indenizacao,  Descricao = "Indenização", Valor = 1 });
            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.OutrasDespesas, Descricao = "Test", Valor = 0 });
            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "Test", Valor = 0 });
            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "FGTS", Valor = 8 });
            orcamento.Adicionar(new TicketDeOrcamentoPessoal(new Setor("nome")) { Ticket = TipoTicketDePessoal.FGTS, Descricao = "Test", Valor = 0 });

            var contaIndenizacao = new Conta("Indenização", new TipoConta { Id = (int)TipoContaEnum.Indenizacao });
            contaIndenizacao.Adicionar(TipoTicketDePessoal.Indenizacao);

            var contaDecimoTerceiro = new Conta("Decimao Terceiro", new TipoConta { Id = (int)TipoContaEnum.DecimoTerceiro });
            contaDecimoTerceiro.Adicionar(TipoTicketDePessoal.OutrasDespesas);

            var feriasRecisao = new Conta("Ferias de Recisão", new TipoConta { Id = (int)TipoContaEnum.Ferias });
            feriasRecisao.Adicionar(TipoTicketDePessoal.FGTS);

            var FGTSRecisao = new Conta("FGTS de recisão", new TipoConta { Id = (int)TipoContaEnum.FGTS });
            FGTSRecisao.Adicionar(TipoTicketDePessoal.FGTS);

            var salarioDeRecisao = new Conta("Salario de recisao", new TipoConta { Id = (int)TipoContaEnum.Salario });
            salarioDeRecisao.Adicionar(TipoTicketDePessoal.FGTS);

            funcionarioDemitido.CalcularDespesa(centroDeCustoDeTI, contaIndenizacao, orcamento, 1, 0, 0);
            funcionarioDemitido.CalcularDespesa(centroDeCustoDeTI, contaDecimoTerceiro, orcamento, 1, 0, 0);
            funcionarioDemitido.CalcularDespesa(centroDeCustoDeTI, feriasRecisao, orcamento, 1, 0, 0);
            funcionarioDemitido.CalcularDespesa(centroDeCustoDeTI, FGTSRecisao, orcamento, 1, 0, 0);
            funcionarioDemitido.CalcularDespesa(centroDeCustoDeTI, salarioDeRecisao, orcamento, 1, 0, 0);
        }
 private static DespesaPessoal ObterDespesaDeFuncionarioDemitido(Conta conta, Funcionario funcionario,NovoOrcamentoPessoal orcamento)
 {
     switch (conta.TipoConta.TipoContaEnum)
     {
         case TipoContaEnum.FGTS:
             return new FgtsRecisao(funcionario.MesDeDemissao, conta, orcamento);
         case TipoContaEnum.DecimoTerceiro:
             return new DecimoTerceiroRecisao(funcionario.MesDeDemissao, conta, orcamento);
         case TipoContaEnum.Ferias:
             return new FeriasRecisao(funcionario.MesDeDemissao, conta, orcamento);
         case TipoContaEnum.Indenizacao:
             return new Recisao(funcionario.MesDeDemissao, conta, orcamento);
         case TipoContaEnum.Salario:
             return new SalarioRecisao(funcionario.MesDeDemissao,conta, orcamento);
         case TipoContaEnum.INSS:
             return new INSSRecisao(funcionario.MesDeDemissao, conta, orcamento);
         case TipoContaEnum.Extras:
             return new Extras(conta,orcamento,funcionario.MesDeDemissao);
         default:
             return null;
     }
 }
Esempio n. 14
0
 public Salario(Conta conta,NovoOrcamentoPessoal orcamento)
 {
     Conta = conta;
     this.Orcamento = orcamento;
 }
Esempio n. 15
0
 public SalarioRecisao(int mesDeRecisao, Conta conta, NovoOrcamentoPessoal orcamento)
 {
     this.mesDeRecisao = mesDeRecisao;
     base.Conta = conta;
     this.Orcamento = orcamento;
 }
        private void ConstruirOrcamentoComOsDadosBasicos(string justificativa)
        {
            if (Orcamento == null)
            {
                Orcamento = new NovoOrcamentoPessoal(Departamento, CentroDeCusto, 2016);
                Orcamento.Justificativa = justificativa;
            }
            var tickets = new TicketsDeOrcamentoPessoal().Todos(Departamento);

            if (Orcamento.Tickets == null || Orcamento.Tickets.Count() == 0)
            {
                foreach (var ticketDeOrcamentoPessoal in tickets)
                    Orcamento.Adicionar(ticketDeOrcamentoPessoal);
            }
        }
Esempio n. 17
0
 public Beneficios(Conta conta, NovoOrcamentoPessoal orcamento)
 {
     base.Conta = conta;
     Orcamento = orcamento;
 }
Esempio n. 18
0
 public DecimoTerceiro(Conta conta, NovoOrcamentoPessoal orcamento)
 {
     base.Conta = conta;
     this.Orcamento = orcamento;
 }
Esempio n. 19
0
 public INSSRecisao(int mesDeRecisao, Conta conta,NovoOrcamentoPessoal orcamento)
 {
     _mesDeRecisao = mesDeRecisao;
     base.Conta = conta;
     this.Orcamento = orcamento;
 }
Esempio n. 20
0
 public FeriasRecisao(int mesDeRecisao, Conta conta, NovoOrcamentoPessoal orcamento)
 {
     this.mesDeRecisao = mesDeRecisao;
     base.Conta = conta;
     Orcamento = orcamento;
 }
Esempio n. 21
0
 public Extras(Conta conta, NovoOrcamentoPessoal orcamento, int mesDemissao)
 {
     base.Conta = conta;
     this.Orcamento = orcamento;
     _mesDeDemissao = mesDemissao;
 }
Esempio n. 22
0
 public Recisao(int mesDeRecisao, Conta conta, NovoOrcamentoPessoal orcamento)
 {
     _mesDeRecisao = mesDeRecisao;
     Conta = conta;
     Orcamento = orcamento;
 }
Esempio n. 23
0
        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);
        }
        private void ConstruirOrcamentoComOsDadosBasicos(string justificativa)
        {
            Orcamento = new NovoOrcamentoPessoal(Departamento, CentroDeCusto, 2014);
            Orcamento.Justificativa = justificativa;

            var tickets = new TicketsDeOrcamentoPessoal().Todos(Departamento);

            foreach (var ticketDeOrcamentoPessoal in tickets)
                Orcamento.Adicionar(ticketDeOrcamentoPessoal);
        }
        private void InicializarOrcamento(string justificativa)
        {
            Orcamento = NovosOrcamentosPessoais.ObterPor(Departamento.Id, CentroDeCusto.Id);

            if (Orcamento == null)
                ConstruirOrcamentoComOsDadosBasicos(justificativa);
            else
            {
                if (!string.IsNullOrEmpty(justificativa))
                    Orcamento.Justificativa = justificativa;

                NovosOrcamentosPessoais.Salvar(Orcamento);
            }
        }
Esempio n. 26
0
 public Extras(Conta conta, NovoOrcamentoPessoal orcamento)
 {
     base.Conta = conta;
     this.Orcamento = orcamento;
 }
 public DecimoTerceiroRecisao(int mesDeRecisao, Conta conta, NovoOrcamentoPessoal orcamento)
 {
     this.mesDeRecisao = mesDeRecisao;
     Conta = conta;
     this.Orcamento = orcamento;
 }
Esempio n. 28
0
        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);
            }
        }
Esempio n. 29
0
 public INSS(Conta conta, NovoOrcamentoPessoal orcamento)
 {
     base.Conta = conta;
     Orcamento = orcamento;
 }