public CustoUnitarioTotal(SubSetorHospital subSetor, SetorHospitalar setor, List<ValorContaDTO> servicos, List<ProducaoHospitalar> custosUnitarios, TicketDeReceita tickets)
        {
            InformarSubSetor(subSetor);
            InformarSetor(setor);
            Valores = new List<CustoHospitalar>();

            CriarCustosProducao(servicos, custosUnitarios, tickets);
        }
        public override void CalcularCustoHospitalar(TicketDeReceita ticket, List<CustoUnitario> custosUnitarios, List<ContaHospitalarDTO> contasUnitarias)
        {
            this.CustosUnitariosTotal = new List<CustoUnitarioTotal>();
            foreach (var setor in this.Setor.Setores)
            {

                    foreach (var subSetor in setor.SubSetores)
                    {
                        CriarCustoTotal(subSetor, setor, ticket, custosUnitarios,contasUnitarias);
                    }
            }
        }
        private void CriarCustosProducao(List<ValorContaDTO> servicos, List<ProducaoHospitalar> custosUnitarios, TicketDeReceita ticket)
        {
            this.Valores = new List<CustoHospitalar>();
            for (short mes = 1; mes < 13; mes++)
            {
                var custoHospitalar = new CustoHospitalar((MesEnum)mes) { Valor = servicos[mes - 1].Valor * custosUnitarios[mes - 1].Valor };

                foreach (var item in ticket.Parcelas.Where(p => p.Mes <= (MesEnum)mes))
                {
                    if (item.Negativo)
                        custoHospitalar.Valor -= custoHospitalar.Valor * (item.Valor / 100);
                    else
                        custoHospitalar.Valor += custoHospitalar.Valor * (item.Valor / 100);
                }

                AdicionarValor(custoHospitalar);
            }
        }
 private void CriarCustoTotal( SubSetorHospital subSetor, SetorHospitalar setor,TicketDeReceita ticket,List<CustoUnitario> custosUnitarios,List<ContaHospitalarDTO> contasUnitarias)
 {
     this.CustosUnitariosTotal.Add(new CustoUnitarioTotal(subSetor, setor, contasUnitarias.Where(s=> s.Subsetor == subSetor.NomeSetor && s.Setor == setor.NomeSetor).FirstOrDefault().Valores,
         custosUnitarios.Where(s =>  s.SubSetor.Id == subSetor.Id && s.Setor.Id == setor.Id).FirstOrDefault().Valores.ToList(), ticket));
 }