public string BuscarTelefoneHelper(int idEmpresa) { var cliente = _clienteAplicacao.BuscarPorId(idEmpresa); if (cliente?.Pessoa?.Contatos == null || !cliente.Pessoa.Contatos.Any(x => !string.IsNullOrEmpty(x?.Contato?.Numero))) { return(""); } return(cliente.Pessoa.Contatos .Where(x => !string.IsNullOrEmpty(x.Contato.Numero)) .FirstOrDefault() .Contato.Numero); }
public void Salvar(VagaCortesiaViewModel model) { var entity = BuscarPorId(model.Id) ?? model.ToEntity(); entity.Cliente = _clienteAplicacao.BuscarPorId(model.Cliente.Id); var listaDocumentosRemover = new List <int>(); listaDocumentosRemover = entity.VagaCortesiaVigencia?.Where(x => !model?.VagaCortesiaVigencia?.Any(p => p.Id == x.Id) ?? false)?.Select(x => x.Id)?.ToList() ?? new List <int>(); entity.VagaCortesiaVigencia = model.VagaCortesiaVigencia.Select(x => x.ToEntity()).ToList() ?? new List <VagaCortesiaVigencia>(); foreach (var item in entity.VagaCortesiaVigencia) { item.VagaCortesia = entity; } Salvar(entity); listaDocumentosRemover.ForEach(x => _vagaCortesiaVigenciaServico.ExcluirPorId(x)); }
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 IList <UnidadeViewModel> ListaUnidadesPorCliente(int idCliente) { return(AutoMapper.Mapper.Map <List <Unidade>, List <UnidadeViewModel> >(_clienteAplicacao.BuscarPorId(idCliente)?.Unidades?.Select(x => x?.Unidade)?.ToList())); }
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)); } }
public new void Salvar(ClienteCondomino entity) { if (entity.Cliente == null || entity.Cliente.Id == 0) { throw new BusinessRuleException("Informe um Cliente!"); } if (entity.Unidade == null || entity.Unidade.Id == 0) { throw new BusinessRuleException("Informe uma Unidade!"); } if (entity.NumeroVagas <= 0) { throw new BusinessRuleException("Informe um numero válido de vagas!"); } var unidadeCondomino = _unidadeCondominoAplicacao.BuscarPor(x => x.Unidade.Id == entity.Unidade.Id).FirstOrDefault(); var clienteCondomino = BuscarPorId(entity.Id) ?? entity; if (entity.Id == 0) { var objVerificaReincidencia = BuscarPor(x => x.Cliente.Id == entity.Cliente.Id && x.Unidade.Id == entity.Unidade.Id); if (objVerificaReincidencia.Any()) { throw new BusinessRuleException($"Este Cliente já possui quantidade de vagas cadastradas para esta Unidade !"); } if (unidadeCondomino == null || entity.NumeroVagas > unidadeCondomino.NumeroVagasRestantes) { throw new BusinessRuleException($"A Unidade possui apenas {unidadeCondomino.NumeroVagasRestantes} vagas restantes para Condômino !"); } unidadeCondomino.NumeroVagasRestantes = unidadeCondomino.NumeroVagasRestantes - entity.NumeroVagas; } else { unidadeCondomino.NumeroVagasRestantes = unidadeCondomino.NumeroVagasRestantes + clienteCondomino.NumeroVagas; if (entity.NumeroVagas > unidadeCondomino.NumeroVagasRestantes) { throw new BusinessRuleException($"A Unidade possui apenas {unidadeCondomino.NumeroVagasRestantes} vagas restantes para Condômino !"); } unidadeCondomino.NumeroVagasRestantes = unidadeCondomino.NumeroVagasRestantes - entity.NumeroVagas; } clienteCondomino.Id = entity.Id; clienteCondomino.Cliente = _clienteAplicacao.BuscarPorId(entity.Cliente.Id); clienteCondomino.Unidade = unidadeCondomino; clienteCondomino.NumeroVagas = entity.NumeroVagas; clienteCondomino.DataInsercao = entity.DataInsercao; clienteCondomino.CondominoVeiculos = entity.CondominoVeiculos; clienteCondomino.Frota = entity.Frota; Servico.Salvar(clienteCondomino); var contratosCondomino = Servico.BuscarPor(x => x.Cliente.Id == clienteCondomino.Cliente.Id); var contratosMensalista = _contratoMensalistaServico.BuscarPor(x => x.Cliente.Id == clienteCondomino.Cliente.Id); var condutor = new CondutorSoftparkViewModel(clienteCondomino.Cliente, contratosCondomino, contratosMensalista); _condutorSoftparkAplicacao.Salvar(condutor); }
public HttpResponseMessage Customers([FromBody] CondutorSoftparkViewModel condutorViewModel) { try { if (!ModelState.IsValid) { JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.ErrorMessage)); return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, JsonResult)); } var clienteId = condutorViewModel.ERPId ?? 0; var clienteJaExitente = _clienteAplicacao.BuscarPorId(clienteId); var unidadesIds = condutorViewModel.Contratos.Select(x => x.Estacionamento).Select(x => x.Id).ToList(); var unidades = _unidadeAplicacao.BuscarPor(x => unidadesIds.Contains(x.Id)).ToList(); var menssagemErro = Validar(unidades, unidadesIds, clienteJaExitente, clienteId); if (menssagemErro != null) { return(menssagemErro); } var cidade = _cidadeAplicacao.PrimeiroPor(x => x.Descricao == condutorViewModel.Cidade); var cliente = condutorViewModel.ToCliente(cidade); cliente.Unidades = condutorViewModel.ToClienteUnidades(unidades); if (clienteJaExitente != null) { cliente.Id = clienteJaExitente.Id; } //Veiculos var placas = cliente.Veiculos?.Select(x => x.Veiculo.Placa).ToList() ?? new List <string>(); var veiculosExistentes = _veiculoAplicacao.BuscarPor(x => placas.Contains(x.Placa)).ToList(); if (cliente.Veiculos != null) { foreach (var clienteVeiculo in cliente.Veiculos) { var existente = veiculosExistentes.FirstOrDefault(x => x.Placa == clienteVeiculo.Veiculo.Placa); if (existente != null) { clienteVeiculo.Veiculo.Id = existente.Id; } if (clienteVeiculo.Veiculo.Modelo != null) { var modelo = _modeloAplicacao.BuscarPor(x => x.Descricao == clienteVeiculo.Veiculo.Modelo.Descricao).FirstOrDefault(); if (modelo == null) { modelo = new Modelo { Descricao = clienteVeiculo.Veiculo.Modelo.Descricao, DataInsercao = DateTime.Now }; clienteVeiculo.Veiculo.Modelo = _modeloAplicacao.SalvarComRetorno(modelo); } else { clienteVeiculo.Veiculo.Modelo = modelo; } } } } //FIM Veiculos _clienteAplicacao.SalvarClienteCondutor(cliente); cliente = _clienteAplicacao.BuscarPorId(cliente.Id); //Contratos var contratos = condutorViewModel.ToContratos(cliente, cliente.Veiculos?.Select(x => x.Veiculo).ToList()); var contratosNumeros = contratos?.Select(x => x.NumeroContrato).ToList() ?? new List <int>();; var contratosExistentes = _contratoMensalistaAplicacao.BuscarPor(x => contratosNumeros.Contains(x.NumeroContrato)).ToList(); if (contratos != null) { foreach (var contrato in contratos) { var existente = contratosExistentes?.FirstOrDefault(x => x.NumeroContrato == contrato.NumeroContrato); if (existente != null) { contrato.Id = existente.Id; } } } //FIM Contratos _contratoMensalistaAplicacao.Salvar(contratos); JsonResult.Status = true; return(Request.CreateResponse(HttpStatusCode.Created, new { ClienteId = cliente.Id, Message = "Cliente Cadastrado!" })); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult.Message = ex.InnerException.Message)); } }