예제 #1
0
        public ValidationAppResult Update(ClienteHorarioViewModel clienteHorarioViewModel)
        {
            var cliente = Mapper.Map <ClienteHorarioViewModel, Cliente>(clienteHorarioViewModel);
            var horario = Mapper.Map <ClienteHorarioViewModel, Horario>(clienteHorarioViewModel);

            var hasHorario = _horarioService.GetHorarioCliente(cliente.ClienteId);

            var valor = GetValor(horario);

            BeginTransaction();

            var c = _clienteService.GetById(cliente.ClienteId);

            c = cliente;

            if (!c.IsAtivo)
            {
                c.Situacao = "Inativo";
            }
            else if (c.IsAtivo && c.Situacao == "Inativo" || c.Situacao == null)
            {
                //Caso esteja ativando novamente o cliente, verifica se o mesmo já possui mensalidade paga atual
                var  today             = DateTime.Now;
                bool existeMensalidade = false;
                foreach (var mensalidades in _mensalidadesService.GetMensalidadesCliente(c.ClienteId))
                {
                    if (mensalidades.MesReferencia >= today.Month && mensalidades.AnoReferencia >= today.Year)
                    {
                        existeMensalidade = true;
                    }
                }

                if (existeMensalidade && cliente.Situacao != "Regular")
                {
                    c.Situacao = "Regular";
                    _clienteService.Update(cliente);
                }
                else
                {
                    c.Situacao = "Pendente";
                    _clienteService.Update(cliente);
                }
            }
            if (c.IsAtivo && valor != null)
            {
                c.ValoresId = valor.ValoresId;
            }
            var result = _clienteService.AtualizarCliente(c);

            if (!result.IsValid)
            {
                return(DomainToApplicationResult(result));
            }

            var h = _horarioService.GetById(horario.HorarioId);

            h = horario;
            ////Verifica se cliente não está ativo, e existe horario cadastrado para o mesmo, se existir remove o horario.
            if (!cliente.IsAtivo && hasHorario != null)
            {
                _horarioService.Remove(h);
            }
            else
            {
                //Adiciona ou Atualiza
                _horarioService.Add(h);
            }

            _logSistemaService.AddLog("Cliente", cliente.ClienteId, "Update", "");
            Commit();

            return(DomainToApplicationResult(result));
        }
예제 #2
0
 public IEnumerable <MensalidadesViewModel> GetMensalidadesCliente(Guid id)
 {
     return
         (Mapper.Map <IEnumerable <Mensalidades>, IEnumerable <MensalidadesViewModel> >(
              _mensalidadesService.GetMensalidadesCliente(id)));
 }