public EntregaDeHoraRecebida ConverterDe(EntregaDeHorasRecebidasBD entrega) { EntregaDeHoraRecebida entregaHora = new EntregaDeHoraRecebida() { Id = entrega.Id, DataDaEfetivacao = entrega.DataDaEfetivacao, Executor = new Profissional(entrega.IdFuncionario, null, null), Vinculacao = entrega.Vinculacao, PercentualDisponivel = entrega.Percentual, QuantidadeDeMinutos = entrega.QtdtMinutos, Procedimentos = entrega.Procedimentos == null ? new List <ProcedimentoBD>().Select(proc => proc.ConverteParaModelo()).ToArray() : entrega.Procedimentos.Select(proc => proc.ConverteParaModelo()).ToArray(), //Competencia = _gerenciadorFinanceiro.ConverteStringEmCompetenciasAsync(new string[] { entrega.Competencia.ToString() }).Result.First(), //instanciar objetos Categoria = new Categoria() { IdCategoria = entrega.IdCategoria }, //Faturamento = ConverterDe(entrega.Faturamento), //IdRecebimento = new Recebimento(){}, IdTabelaPreco = entrega.IdTabelaPreco, TipoDeEvento = entrega.TipoDeEvento, valorHora = entrega.valorHora, valorRecebido = entrega.valorRecebido }; return(entregaHora); }
//private IGerenciadorDeRequisicoesFinanceiras _gerenciadorFinanceiro; //public ConversorDeEntregaDeHoraRecebida(IGerenciadorDeRequisicoesFinanceiras gerenciadorFinanceiro) //{ // _gerenciadorFinanceiro = gerenciadorFinanceiro; //} public IEntregaBD ConverteDe(IEntrega entrega) { if (!(entrega is EntregaDeHoraRecebida)) { throw new ArgumentException("Necessário entrada de regras por hora recebida para este conversor"); } EntregaDeHorasRecebidasBD entregaConvertida = new EntregaDeHorasRecebidasBD(TipoDeEntregaModeloBD.HoraRecebida); EntregaDeHoraRecebida entragaHora = entrega as EntregaDeHoraRecebida; entregaConvertida.Id = entragaHora.Id; entregaConvertida.DataDaEfetivacao = entragaHora.DataDaEfetivacao; throw new NotImplementedException(); return(entregaConvertida); }
public HoraRecebidaProcessada(EntregaDeHoraRecebida entrega, Decimal percentualPermitido, DateTime dataDeEfetivacao, Competencia competencia) { Id = entrega.Id; Beneficiario = entrega.Executor; PercentualRemuneravel = percentualPermitido; DataDaEfetivacao = dataDeEfetivacao; Vinculacao = entrega.Vinculacao; QuantidadeDeMinutos = entrega.QuantidadeDeMinutos; CompetenciaDaEntrega = competencia; IdTabelaPreco = entrega.IdTabelaPreco; valorHora = entrega.valorHora; Categoria = entrega.Categoria; HistoricoPagamento = entrega.HistoricoPagamento; IdHistoricoPagamento = entrega.IdHistoricoPagamento; Faturamento = entrega.Faturamento; Recebimento = entrega.Recebimento; ValorMaximoRegra = entrega.ValorMaximoRegra; ValorMinimoRegra = entrega.ValorMinimoRegra; }
public IEntrega ConverteParaEntrega(IEntregaBD entregaModeloBanco) { //Em regra tem ParametrosDeRegraDeRemuneracaoPorHora, criado a partir do argumento do método, provavelmente será assim com entrega também if (entregaModeloBanco is EntregaDeHorasRecebidasBD) { EntregaDeHorasRecebidasBD entregaDeHorasDoBanco = (EntregaDeHorasRecebidasBD)entregaModeloBanco; EntregaDeHoraRecebida entregaHora = new EntregaDeHoraRecebida() { Id = entregaDeHorasDoBanco.Id, DataDaEfetivacao = entregaDeHorasDoBanco.DataDaEfetivacao, Executor = new Profissional(entregaDeHorasDoBanco.IdFuncionario, null, null), Vinculacao = entregaDeHorasDoBanco.Vinculacao, PercentualDisponivel = entregaDeHorasDoBanco.Percentual, QuantidadeDeMinutos = entregaDeHorasDoBanco.QtdtMinutos, Procedimentos = entregaDeHorasDoBanco.Procedimentos == null ? new List <ProcedimentoBD>().Select(proc => proc.ConverteParaModelo()).ToArray() : entregaDeHorasDoBanco.Procedimentos.Select(proc => proc.ConverteParaModelo()).ToArray(), //Competencia = _gerenciadorFinanceiro.ConverteStringEmCompetenciasAsync(new string[] { entregaDeHorasDoBanco.Competencia.ToString() }).Result.First(), Categoria = new Categoria() { IdCategoria = entregaDeHorasDoBanco.IdCategoria }, Faturamento = ConverterDe(entregaDeHorasDoBanco.Faturamento), Recebimento = new Recebimento() { IdRecebimento = entregaDeHorasDoBanco.IdRecebimento, ValorRecebido = entregaDeHorasDoBanco.valorRecebido }, IdTabelaPreco = entregaDeHorasDoBanco.IdTabelaPreco, TipoDeEvento = entregaDeHorasDoBanco.TipoDeEvento, HistoricoPagamento = entregaDeHorasDoBanco.HistoricoPagamento, IdHistoricoPagamento = entregaDeHorasDoBanco.IdHistoricoPagamento, valorHora = entregaDeHorasDoBanco.valorHora, valorRecebido = entregaDeHorasDoBanco.valorRecebido, ValorMaximoRegra = entregaDeHorasDoBanco.ValorMaximoRegra, ValorMinimoRegra = entregaDeHorasDoBanco.ValorMinimoRegra }; return(entregaHora); } throw new InvalidOperationException("Conversão de entrega de horas recebida chamada para converter entrega que não é de horas recebidas"); }
protected virtual IEnumerable <IEntregaPreProcessada> ConverteEntregaEmRemuneravel(EntregaDeHoraRecebida entrega) { IEnumerable <IEntregaPreProcessada> remuneraveis = entrega.Procedimentos.Select((proc) => { decimal percentualPermitido = 100.0M; IEnumerable <decimal> percentuais = ObtemModificacoesDasAcoesFeitasNoProcedimento(proc); percentualPermitido = proc.PercentualPermitido * (percentuais.Sum(p => p / 100.0M)); IEntregaPreProcessada remuneravel = entrega.Tipo.CriarEntregaPreProcessada(entrega, percentualPermitido, proc.DataDaOcorrencia, entrega.Competencia); remuneravel.Vinculacao.Adicionar(new Vinculo(Constantes.HISTORICO_TIPO_PROCEDIMENTO, proc.Id, proc.Tipo.ToString())); return(remuneravel); }); var remun = remuneraveis.ToList(); return(remuneraveis); }