예제 #1
0
        public bool EstaVigente(ClienteParticipante clienteParticipante)
        {
            DateTime agora = DateTime.Now;

            if (clienteParticipante == null)
            {
                return(false);
            }

            if (clienteParticipante.InicioVigencia.HasValue)
            {
                if (clienteParticipante.inicioVigencia.Value >= agora)
                {
                    return(false);
                }
            }

            if (clienteParticipante.FimVigencia.HasValue)
            {
                if (clienteParticipante.FimVigencia <= agora)
                {
                    return(false);
                }
            }

            return(true);
        }
예제 #2
0
        public void AdicionarClienteParticipante(Contrato contrato, Model.Conta cliente)
        {
            var clienteParticipante = new ClienteParticipante();

            clienteParticipante.ClienteId  = cliente.Id;
            clienteParticipante.ContratoId = contrato.Id;
            clienteParticipante.Nome       = cliente.Nome;

            new RepositoryService().Contrato.SalvarClienteParticipante(clienteParticipante);
        }
예제 #3
0
 public void SalvarDataDeVigencia(ClienteParticipante clienteParticipante, TipoDeVigencia vigencia)
 {
     if (vigencia == TipoDeVigencia.Cliente)
     {
         RepositoryService.ClienteParticipanteDoContrato.Update(RepositoryService.ClienteParticipante.InstanciarClienteParticipanteDoContrato(clienteParticipante));
     }
     else if (vigencia == TipoDeVigencia.Endereco)
     {
         RepositoryService.ClienteParticipanteDoEndereco.Update(RepositoryService.ClienteParticipante.InstanciarClienteParticipanteEndereco(clienteParticipante));
     }
 }
예제 #4
0
        public bool EstaVigente(Model.Conta cliente, Endereco endereco, DateTime dataInicioVigencia)
        {
            switch (this.TipoVigencia)
            {
            case TipoDeVigencia.Contrato:
                if (!this.InicioVigencia.HasValue || !this.FimRealVigencia.HasValue)
                {
                    return(false);
                }
                if (this.InicioVigencia.Value.Date > dataInicioVigencia.Date)
                {
                    return(false);
                }
                if (dataInicioVigencia.Date > this.FimRealVigencia.Value.Date)
                {
                    return(false);
                }
                break;


            case TipoDeVigencia.Cliente:
            case TipoDeVigencia.Endereco:
                ClienteParticipante participante = this.ObterParticipante(this, cliente, endereco, this.TipoVigencia);
                if (participante != null && this.TemData(participante))
                {
                    if (participante.InicioVigencia.Value.Date > dataInicioVigencia.Date)
                    {
                        return(false);
                    }
                    if (participante.FimVigencia.Value.Date <= dataInicioVigencia.Date)
                    {
                        return(false);
                    }
                }

                break;

            case TipoDeVigencia.Por_Veiculo_Instalacao:
            case TipoDeVigencia.Por_veiculo_Contrato:
                break;

            case TipoDeVigencia.Vazio:
                throw new ArgumentException("Tipo de Vigencia do contrato não pode ser vazio.", "TipoDeVigencia");

            default:
                throw new ArgumentException("Tipo de Vigencia do contrato não cadastrada", "TipoDeVigencia");
            }
            return(true);
        }
예제 #5
0
        private ClienteParticipante DefineDataDeVigencia(ClienteParticipante clienteParticipante, TipoDeVigencia vigencia, int duracao, DateTime dataInicioVigencia)
        {
            //DateTime agora = DateTime.Now;
            DateTime agora = dataInicioVigencia;

            if (!clienteParticipante.InicioVigencia.HasValue)
            {
                clienteParticipante.InicioVigencia = agora;
                //clienteParticipante.FimVigencia = agora.AddDays(ObterDuracao(this.Id));
                clienteParticipante.FimVigencia = agora.AddDays(duracao);
            }
            else
            {
                Contrato contrato = new RepositoryService().Contrato.Retrieve(this.Id);
                clienteParticipante.FimVigencia = clienteParticipante.InicioVigencia.Value.AddDays((contrato.DuracaoDias.HasValue ? contrato.DuracaoDias.Value : 0));
            }

            clienteParticipante.SalvarDataDeVigencia(clienteParticipante, vigencia);
            return(clienteParticipante);
        }
예제 #6
0
        public void DefineVigenciaClienteParticipante(Model.Conta cliente, Endereco endereco, DateTime dataInicioVigencia)
        {
            if (this.TipoVigencia == TipoDeVigencia.Cliente || this.TipoVigencia == TipoDeVigencia.Endereco)

            {
                ClienteParticipante participante = this.ObterParticipante(this, cliente, endereco, this.TipoVigencia);

                if (participante != null)
                {
                    if (!participante.FimVigencia.HasValue)
                    {
                        int duracao = (this.FimRealVigencia.Value - this.InicioVigencia.Value).Days;

                        participante.InicioVigencia = dataInicioVigencia;
                        participante.FimVigencia    = dataInicioVigencia.AddDays(duracao);
                        participante.SalvarDataDeVigencia(participante, this.TipoVigencia);
                    }
                }
            }
        }
예제 #7
0
 private bool TemData(ClienteParticipante clienteParticipante)
 {
     return(clienteParticipante.InicioVigencia.HasValue && clienteParticipante.FimVigencia.HasValue);
 }
예제 #8
0
 public void AtualizarEnderecoParticipante(ClienteParticipante item)
 {
     RepositoryService.ClienteParticipanteDoEndereco.Update(RepositoryService.ClienteParticipante.InstanciarClienteParticipanteEndereco(item));
 }