Пример #1
0
 public ProducaoController(IProducaoAppService producaoApp, IDTOProducaoAppService DTOproducaoApp, ITaxaDoacaoAppService taxaDoacaoApp, ITaxaExtraProfissionalAppService taxaExtraApp, IDemonstrativoReportAppService demonstrativoApp)
 {
     _producaoApp      = producaoApp;
     _DTOproducaoApp   = DTOproducaoApp;
     _taxaDoacaoApp    = taxaDoacaoApp;
     _taxaExtraApp     = taxaExtraApp;
     _demonstrativoApp = demonstrativoApp;
 }
        public List <DemonstrativoReport> GerarLista(IEnumerable <DTOProducao> producaoLista, ITaxaDoacaoAppService taxaDoacao, ITaxaExtraProfissionalAppService taxaExtra, DateTime dataInicial, DateTime dataFinal)
        {
            List <DemonstrativoReport> lista = new List <DemonstrativoReport>();

            foreach (DTOProducao producao in producaoLista)
            {
                lista.Add(CriarDemonstrativoReport(producao, taxaDoacao, taxaExtra, dataInicial, dataFinal, lista));
            }

            return(lista);
        }
        public DemonstrativoReport CriarDemonstrativoReport(DTOProducao producao, ITaxaDoacaoAppService taxaDoacao, ITaxaExtraProfissionalAppService taxaExtra, DateTime dataInicial, DateTime dataFinal, List <DemonstrativoReport> lista)
        {
            var demonstrativo = new DemonstrativoReport
            {
                Matricula        = producao.matricula,
                NomeProfissional = producao.nomeProfissional,
                DataIngresso     = producao.dataIngresso,
                INSS             = producao.INSS,
                CPF                  = producao.CPF,
                ValorConsulta        = producao.valorConsulta,
                ValorCopart          = producao.valorCopart,
                ValorConvenio        = producao.valorConvenio,
                ValorOutrosDescontos = 0,
                ValorOutrosAcrecimos = 0,
                TaxaBancaria         = producao.taxaBancaria,
                dataInicial          = dataInicial,
                dataFinal            = dataFinal,
                idProfissional       = producao.profissionalId
            };


            try
            {
                var existente = lista.Find(p => p.idProfissional == producao.profissionalId);

                if (existente == null)
                {
                    TaxaDoacao valoresTaxas = taxaDoacao.GetPorIdTaxaProfissional(producao.tipoProfissionalId);
                    demonstrativo.ValorDoacao = valoresTaxas.Valor;

                    IEnumerable <TaxaExtraProfissional> valoresExtra = taxaExtra.GetPorIdTaxaExtraProfissional(producao.profissionalId);


                    foreach (var item in valoresExtra)
                    {
                        if (item.dataCompensar >= producao.dataInicial && item.dataCompensar < producao.dataFinal)
                        {
                            if (item.tipo == "Crédito")
                            {
                                demonstrativo.ValorOutrosAcrecimos = +item.valor;
                            }
                            else
                            {
                                demonstrativo.ValorOutrosDescontos = +item.valor;
                            }
                        }
                    }
                }
                else
                {
                    demonstrativo.ValorOutrosAcrecimos = existente.ValorOutrosAcrecimos;
                    demonstrativo.ValorOutrosDescontos = existente.ValorOutrosDescontos;
                }
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
                demonstrativo.ValorDoacao = 0;
            }

            return(demonstrativo);
        }
 public TaxasDoacaoController(ITaxaDoacaoAppService TaxaDoacaoAppService, ITipoProfissionalAppService TipoProfissionalAppService)
 {
     _TaxaDoacaoAppService       = TaxaDoacaoAppService;
     _TipoProfissionalAppService = TipoProfissionalAppService;
 }