예제 #1
0
        public string BuscarEnderecoHelper(int idFilial)
        {
            var unidade = _unidadeAplicacao.BuscarPorId(idFilial);

            if (unidade?.Endereco == null || string.IsNullOrEmpty(unidade.Endereco.Logradouro) || string.IsNullOrEmpty(unidade.Endereco.Numero))
            {
                return("");
            }

            return($"{unidade.Endereco.Logradouro}, {unidade.Endereco.Numero}");
        }
        public void SalvarDados(ParametrizacaoLocacaoViewModel entity)
        {
            var entidade = new ParametrizacaoLocacao()
            {
                Id           = entity.Id,
                DataInsercao = entity.DataInsercao,
                TipoLocacao  = _tipoLocacaoAplicacao.BuscarPorId(entity.TipoLocacao.Id) ?? entity.TipoLocacao.ToEntity() //,
                                                                                                                         //Unidade = entity.ListaUnidades == null || entity.ListaUnidades.Count <= 0 ? entity.Unidade.ToEntity() : null
            };

            if (entidade.Id == 0)
            {
                foreach (var item in entity.ListaUnidades)
                {
                    if (this.BuscarPor(x => x.TipoLocacao.Id == entity.TipoLocacao.Id && x.Unidade.Id == item).Any())
                    {
                        var objUnidadeEncontrada = _unidadeAplicacao.BuscarPorId(item);
                        throw new BusinessRuleException("Tipo Locação " + entity.TipoLocacao.Descricao + " já possui cadastro para Unidade " + objUnidadeEncontrada.Nome);
                    }
                }

                foreach (var item in entity.ListaUnidades)
                {
                    entidade.Id      = 0;
                    entidade.Unidade = _unidadeAplicacao.BuscarPorId(item);

                    if (!ObjetoValido(entidade))
                    {
                        throw new BusinessRuleException("Objeto Invalido!");
                    }

                    this.Salvar(entidade);
                }
            }
            else
            {
                var objNovo = this.BuscarPorId(entidade.Id) ?? entidade;
                objNovo.Id          = entity.Id;
                objNovo.TipoLocacao = entidade.TipoLocacao;
                objNovo.Unidade     = entity.Unidade != null?_unidadeAplicacao.BuscarPorId(entity.Unidade.Id) : null;

                objNovo.DataInsercao = entidade.DataInsercao;

                if (!ObjetoValido(objNovo))
                {
                    throw new BusinessRuleException("Objeto Invalido!");
                }

                this.Salvar(objNovo);
            }
        }
        public void Salvar(TabelaPrecoAvulsoViewModel viewModel, int idUsuario)
        {
            var entidade = viewModel.ToEntity();

            entidade.ListaHoraValor = viewModel.ListaHoraValor.
                                      Select(x => new TabelaPrecoAvulsoHoraValor
            {
                TabelaPrecoAvulso = entidade,
                Hora  = x.Hora,
                Valor = Convert.ToDecimal(x.Valor)
            })
                                      .ToList();

            entidade.ListaUnidade = viewModel.ListaUnidade
                                    .Select(x => new TabelaPrecoAvulsoUnidade
            {
                TabelaPrecoAvulso = entidade,
                HoraFim           = x.HoraFim,
                HoraInicio        = x.HoraInicio,
                ValorDiaria       = decimal.Parse(x.ValorDiaria),
                Unidade           = new Unidade {
                    Id = x.Unidade.Id
                }
            })
                                    .ToList();

            entidade.ListaPeriodo = viewModel.Periodo.ListaPeriodoSelecionado
                                    .Select(x => new TabelaPrecoAvulsoPeriodo
            {
                TabelaPrecoAvulso = entidade,
                Periodo           = x
            })
                                    .ToList();

            entidade.Usuario = new Usuario {
                Id = idUsuario
            };

            _tabelaPrecoAvulsoServico.Salvar(entidade, idUsuario);

            var tabelaPrecoAvulso = _tabelaPrecoAvulsoServico.BuscarPorId(entidade.Id);

            foreach (var unidade in tabelaPrecoAvulso.ListaUnidade.Select(x => x.Unidade))
            {
                tabelaPrecoAvulso.ListaUnidade.Select(x => x.Unidade = _unidadeAplicacao.BuscarPorId(unidade.Id));
            }
            var tabelaPreco = new TabelaPrecoSoftparkViewModel(tabelaPrecoAvulso);

            _tabelaPrecoSoftparkAplicacao.Salvar(tabelaPreco);
        }
        public bool ObjetoValido(UnidadeCondomino entity)
        {
            if (entity.NumeroVagas <= 0)
            {
                throw new BusinessRuleException("Informe um numero válido de vagas!");
            }

            if (entity.Unidade == null || entity.Unidade.Id == 0)
            {
                throw new BusinessRuleException("Informe uma Unidade!");
            }

            if (entity.Id == 0)
            {
                var UnidadeCondomino = BuscarPor(x => x.Unidade.Id == entity.Unidade.Id);

                if (UnidadeCondomino.Any())
                {
                    var unidadeCondominoExistente = UnidadeCondomino.FirstOrDefault();
                    throw new BusinessRuleException($"A Unidade {unidadeCondominoExistente.Unidade.Nome} já possui cadastro de Vagas Condomino definida!");
                }
            }

            var unidade = _unidadeAplicacao.BuscarPorId(entity.Unidade.Id);

            if (entity.NumeroVagas > unidade.NumeroVaga)
            {
                //throw new BusinessRuleException($"A Unidade possui apenas {unidade.NumeroVaga} vagas disponíveis !");
                throw new BusinessRuleException($"Numero Total de Vagas nao pode ser maior do que cadastrado em unidade");
            }

            return(true);
        }
예제 #5
0
        public void SalvarDados(EstoqueViewModel entity)
        {
            if (!ObjetoValido(entity.ToEntity()))
            {
                throw new BusinessRuleException("Objeto Invalido!");
            }

            var estoque = BuscarPorId(entity.Id) ?? entity.ToEntity();

            estoque.Id               = entity.Id;
            estoque.Nome             = entity.Nome;
            estoque.DataInsercao     = entity.DataInsercao;
            estoque.Numero           = entity.Numero;
            estoque.Tipo             = entity.Tipo;
            estoque.CidadeNome       = entity.CidadeNome;
            estoque.UF               = entity.UF;
            estoque.Logradouro       = entity.Logradouro;
            estoque.EstoquePrincipal = entity.EstoquePrincipal;

            if (entity == null || entity.Unidade.Id == 0)
            {
                estoque.Unidade = null;
            }
            else
            {
                estoque.Unidade = _unidadeAplicacao.BuscarPorId(entity.Unidade.Id);
            }

            if (estoque.EstoquePrincipal)
            {
                SubstituirEstoquePrincipal();
            }

            Servico.Salvar(estoque);
        }
        public HttpResponseMessage Billings([FromBody] FaturamentoViewModel faturamentoViewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.ErrorMessage));

                    if (string.IsNullOrEmpty(JsonResult.Message))
                    {
                        JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.Exception.Message));
                    }

                    return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, JsonResult));
                }

                var unidade = _unidadeAplicacao.BuscarPorId(faturamentoViewModel.Estacionamento.Id);
                var usuario = _usuarioServico.BuscarPorId(faturamentoViewModel.Operador.Id);

                if (usuario == null)
                {
                    JsonResult.Message = "Usuário Não Existe";
                    return(Request.CreateResponse(HttpStatusCode.NotFound, JsonResult));
                }

                var mensagemDeErro = Validar(faturamentoViewModel.Id, unidade);
                if (mensagemDeErro != null)
                {
                    return(mensagemDeErro);
                }

                var faturamento = faturamentoViewModel.ToEntity();
                faturamento.Unidade = unidade;
                faturamento.Usuario = usuario;

                var faturamentoExistenteComIdSoftpark = faturamento.IdSoftpark.HasValue ? _faturamentoAplicacao
                                                        .PrimeiroPor(x => x.IdSoftpark.HasValue &&
                                                                     x.IdSoftpark.Value == faturamento.IdSoftpark.Value &&
                                                                     x.Unidade != null && faturamento.Unidade != null &&
                                                                     x.Unidade.Id == faturamento.Unidade.Id) : null;

                if (faturamentoExistenteComIdSoftpark != null)
                {
                    faturamento.Id = faturamentoExistenteComIdSoftpark.Id;
                }

                _faturamentoAplicacao.Salvar(faturamento);

                JsonResult.Status = true;
                JsonResult.Object = faturamento;
                return(Request.CreateResponse(HttpStatusCode.Created, JsonResult.Message = "Faturamento Cadastrado!"));
            }
            catch (Exception ex)
            {
                JsonResult.Status  = false;
                JsonResult.Message = ex.Message;
                return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult.Message));
            }
        }
예제 #7
0
        public new void Salvar(Usuario entity)
        {
            Servico.Salvar(entity);

            if (entity.TemAcessoAoPDV)
            {
                var usuario = Servico.BuscarPorId(entity.Id);
                usuario.Unidade = _unidadeAplicacao.BuscarPorId(usuario.Unidade.Id);

                var operador = new OperadorSoftparkViewModel(usuario);
                _operadorSoftparkAplicacao.Salvar(operador);
            }
        }
예제 #8
0
 public HttpResponseMessage GetById(int id)
 {
     try
     {
         var unidade   = _unidadeAplicacao.BuscarPorId(id);
         var unidadeVM = AutoMapper.Mapper.Map <Unidade, UnidadeViewModel>(unidade);
         JsonResult.Status = true;
         JsonResult.Object = unidadeVM;
         return(Request.CreateResponse(HttpStatusCode.OK, JsonResult));
     }
     catch (Exception ex)
     {
         JsonResult.Status  = false;
         JsonResult.Message = ex.Message;
         return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult));
     }
 }
예제 #9
0
        public HttpResponseMessage MonthlyPayments([FromBody] PagamentoMensalidadeSoftparkViewModel pagamentoMensalidadeVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.ErrorMessage));

                    if (string.IsNullOrEmpty(JsonResult.Message))
                    {
                        JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.Exception.Message));
                    }

                    return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, JsonResult));
                }

                var cliente = pagamentoMensalidadeVM.Condutor.ERPId.HasValue ? _clienteAplicacao.BuscarPorId(pagamentoMensalidadeVM.Condutor.ERPId.Value) : null;
                if (cliente == null)
                {
                    cliente = pagamentoMensalidadeVM.Condutor.ToCliente(null);
                }

                if (cliente.Id == 0)
                {
                    cliente = _clienteAplicacao.SalvarComRetorno(cliente);
                }

                var unidade = _unidadeAplicacao.BuscarPorId(pagamentoMensalidadeVM.Estacionamento.Id);

                var mensagemDeErro = Validar(pagamentoMensalidadeVM, cliente, unidade);
                if (mensagemDeErro != null)
                {
                    return(mensagemDeErro);
                }

                var lancamentoCobranca = _lancamentoCobrancaAplicacao
                                         .PrimeiroPor(x => x.Cliente.Id == cliente.Id &&
                                                      x.DataVencimento > SqlDateTime.MinValue.Value && x.DataVencimento.Date == pagamentoMensalidadeVM.DataValidade.Date);

                if (lancamentoCobranca == null)
                {
                    lancamentoCobranca = new LancamentoCobranca
                    {
                        Unidade        = unidade,
                        Cliente        = cliente,
                        TipoServico    = TipoServico.Mensalista,
                        DataGeracao    = DateTime.Now,
                        DataVencimento = pagamentoMensalidadeVM.DataValidade,
                        ValorContrato  = pagamentoMensalidadeVM.Valor
                    };
                }

                if (lancamentoCobranca.Recebimento == null)
                {
                    lancamentoCobranca.Recebimento = new Recebimento();
                }
                if (lancamentoCobranca.Recebimento.Pagamentos == null)
                {
                    lancamentoCobranca.Recebimento.Pagamentos = new List <Pagamento>();
                }

                if (lancamentoCobranca.Recebimento.Pagamentos
                    .Any(x => x.PagamentoMensalistaId == pagamentoMensalidadeVM.Id &&
                         x.Unidade.Id == pagamentoMensalidadeVM.Estacionamento.Id))
                {
                    JsonResult.Message = "Já existe um pagamento com esse Id para esta Unidade";
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, JsonResult));
                }

                lancamentoCobranca.StatusLancamentoCobranca = StatusLancamentoCobranca.Pago;
                lancamentoCobranca.DataBaixa = pagamentoMensalidadeVM.DataPagamento;

                var pagamento = pagamentoMensalidadeVM.ToPagamento(lancamentoCobranca.Recebimento);
                pagamento.Unidade = unidade;

                lancamentoCobranca.Recebimento.Pagamentos.Add(pagamento);

                lancamentoCobranca.StatusLancamentoCobranca = StatusLancamentoCobranca.Pago;
                lancamentoCobranca.DataBaixa = pagamento.DataPagamento;

                _lancamentoCobrancaAplicacao.Salvar(lancamentoCobranca);

                return(Request.CreateResponse(HttpStatusCode.Created, JsonResult.Message = "Pagamento Cadastrado!"));
            }
            catch (Exception ex)
            {
                JsonResult.Status  = false;
                JsonResult.Message = ex.Message;
                return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult));
            }
        }
        public HttpResponseMessage Movements([FromBody] MovimentacaoSoftparkViewModel movimentacaoVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.ErrorMessage));

                    if (string.IsNullOrEmpty(JsonResult.Message))
                    {
                        JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.Exception.Message));
                    }

                    return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, JsonResult));
                }

                var unidade = _unidadeAplicacao.BuscarPorId(movimentacaoVM.Estacionamento.Id);
                var cliente = _clienteAplicacao.BuscarPorId(movimentacaoVM.ClienteId);
                var usuario = _usuarioServico.BuscarPorId(movimentacaoVM.Operador.Id);

                var validado = Validar(movimentacaoVM.Id, unidade, usuario);
                if (validado != null)
                {
                    return(validado);
                }

                var movimentacao = movimentacaoVM.ToEntity();
                movimentacao.Unidade = unidade;
                movimentacao.Usuario = usuario;
                movimentacao.Cliente = cliente;

                var movimentacaoExistenteComIdSoftpark = movimentacao.IdSoftpark.HasValue ? _movimentacaoAplicacao
                                                         .PrimeiroPor(x => x.IdSoftpark.HasValue &&
                                                                      x.IdSoftpark.Value == movimentacao.IdSoftpark.Value &&
                                                                      x.Unidade != null && movimentacao.Unidade != null &&
                                                                      x.Unidade.Id == movimentacao.Unidade.Id) : null;

                if (movimentacaoExistenteComIdSoftpark != null)
                {
                    movimentacao.Id = movimentacaoExistenteComIdSoftpark.Id;
                }

                if (movimentacao.Usuario != null)
                {
                    movimentacao.Usuario.Unidade        = movimentacao.Unidade;
                    movimentacao.Usuario.TemAcessoAoPDV = true;
                }

                if (movimentacao.MovimentacaoSelo != null && movimentacao.MovimentacaoSelo.Any())
                {
                    RegistrarSelo(movimentacao);
                }

                JsonResult.Status = true;
                _movimentacaoAplicacao.Salvar(movimentacao);
                return(Request.CreateResponse(HttpStatusCode.Created, JsonResult.Message = "Movimentação Cadastrada!"));
            }
            catch (Exception ex)
            {
                JsonResult.Status  = false;
                JsonResult.Message = ex.Message;
                return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult));
            }
        }
예제 #11
0
        private void SalvarOcorrencias(Cliente cliente, int usuarioLogadoCurrent)
        {
            var clienteBase           = BuscarPorId(cliente.Id);
            var clienteVeiculosSalvos = clienteBase.Veiculos;

            foreach (var ocorrencia in cliente.Ocorrencias)
            {
                ocorrencia.Id      = ocorrencia.Id < 0 ? 0 : ocorrencia.Id;
                ocorrencia.Cliente = new Cliente {
                    Id = cliente.Id
                };
                if (ocorrencia.Veiculo != null)
                {
                    var clienteVeiculo = BuscarPor(x => x.Id == cliente.Id).Select(s => s.Veiculos.FirstOrDefault(f => f.Veiculo.Placa == ocorrencia.Veiculo.Placa)).FirstOrDefault();
                    if (!ReferenceEquals(clienteVeiculo, null))
                    {
                        ocorrencia.Veiculo = clienteVeiculo.Veiculo;
                    }
                }

                var entityOcorrencia = AutoMapper.Mapper.Map <OcorrenciaCliente>(ocorrencia);

                entityOcorrencia.FuncionarioAtribuido = _funcionarioAplicacao.BuscarPorId(ocorrencia.FuncionarioAtribuido.Pessoa.Id) ?? null;
                entityOcorrencia.Cliente = clienteBase;
                entityOcorrencia.Unidade = entityOcorrencia.Unidade != null && entityOcorrencia.Unidade.Id > 0 ? _unidadeAplicacao.BuscarPorId(entityOcorrencia.Unidade.Id) ?? null : null;
                entityOcorrencia.Veiculo = entityOcorrencia.Veiculo != null && entityOcorrencia.Veiculo.Id > 0 ? _veiculoAplicacao.BuscarPorId(entityOcorrencia.Veiculo.Id) ?? null : null;

                _ocorrenciaAplicacao.SalvarDadosOcorrenciaComNotificacao(entityOcorrencia, usuarioLogadoCurrent);
            }
        }