コード例 #1
0
        public OcorrenciaFormViewModel Carregar(long?pessoaFisicaId, long?pessoaJuridicaId, long?atendimentoId,
                                                long?contratoId)
        {
            var listaOcorrenciaTipo = _servicoOcorrenciaTipo.ObterOcorrenciasPai().Where(w => w.Ativo);
            var listaContrato       = _servicoContrato.ObterContratosNovaOcorrencia(pessoaFisicaId, pessoaJuridicaId);
            var viewDinamicaModel   = _viewDinamicaAppServico.Carregar("OCORRENCIA", "padrão", null, null, true);
            var nomeCampoChave1     = _servicoConfiguracao.ObterNomeCampoChave1Ocorrencia();
            var valorCampoChave1    = _servicoConfiguracao.ObterValorPadraoCampoChave1Ocorrencia();
            var model = new OcorrenciaFormViewModel(listaOcorrenciaTipo, listaContrato, pessoaFisicaId, pessoaJuridicaId,
                                                    null, atendimentoId, null, null, viewDinamicaModel, null, valorCampoChave1, nomeCampoChave1,
                                                    string.IsNullOrEmpty(valorCampoChave1), contratoId);

            if (atendimentoId == null)
            {
                return(model);
            }

            var atendimento = _servicoAtendimento.ObterPorId((long)atendimentoId);

            model.NumeroProtocolo = atendimento.Protocolo;

            ///*Regra colocada em 25/10/2018 de forma emergencial para abrir ocorrência dentro de um iframe somente para a AIG....*/
            //var tipoAberturaOcorrencia = _servicoConfiguracao.ObterTipoAberturaOcorrencia();
            //if (tipoAberturaOcorrencia != null)
            //    if (tipoAberturaOcorrencia.Valor == "IFRAME")
            //        model.CarregadaEmIframe = true;

            return(model);
        }
コード例 #2
0
 public OcorrenciaFormViewModel CarregarListas(OcorrenciaFormViewModel viewModel, long?pessoaFisicaId,
                                               long?pessoaJuridicaId)
 {
     viewModel.ListaOcorrenciaTipo = _servicoOcorrenciaTipo.ObterOcorrenciasPai();
     viewModel.ListaContrato       = _servicoContrato.ObterContratosNovaOcorrencia(pessoaFisicaId, pessoaJuridicaId);
     return(viewModel);
 }
コード例 #3
0
        public OcorrenciaFormViewModel Adicionar(OcorrenciaFormViewModel model, string usuarioId)
        {
            var ocorrencia = OcorrenciaAdaptador.ParaDominioModelo(model);

            if (model.statusEntidadeID.HasValue)
            {
                ocorrencia.StatusEntidadesId = (long)model.statusEntidadeID;
            }
            else
            {
                var statusEntidades = _servicoStatusEntidade.ObterStatusEntidadeNovaOcorrencia();

                if (statusEntidades.Any())
                {
                    ocorrencia.StatusEntidadesId = statusEntidades.FirstOrDefault().id;
                }
                else
                {
                    model.ValidationResult.Add(
                        new ValidationError(
                            "Não foi possível cadastrar a Ocorrência, StatusEntidadeNovaOcorrencia não cadastrado"));
                    return(model);
                }
            }

            _servicoOcorrencia.Adicionar(ocorrencia);
            model.OcorrenciaID = ocorrencia.Id;

            if (ocorrencia.Id > 0 && model.atendimentoID != null)
            {
                _servicoAtendimentoOcorrencia.Adicionar((long)model.atendimentoID, ocorrencia.Id);
            }

            if (ocorrencia.Id > 0)
            {
                //Inserir Ocorrência Endereço
                if (model.EnderecoProduto != null)
                {
                    if (model.EnderecoProduto.LocaisTiposAtendimentoId != null)
                    {
                        var entidade = new OcorrenciaLocalTipoAtendimento(ocorrencia.Id,
                                                                          (int)model.EnderecoProduto.LocaisId, (int)model.EnderecoProduto.LocaisTiposAtendimentoId,
                                                                          model.EnderecoProduto.Logradouro, model.EnderecoProduto.Numero, model.EnderecoProduto.Cep,
                                                                          model.EnderecoProduto.Bairro, model.EnderecoProduto.CidadesId, model.criadoPorUserID,
                                                                          model.EnderecoProduto.Complemento);
                        _servicoOcorrenciaLocalTipoAtendimento.Adicionar(entidade);
                    }
                }

                //Campos Dinamicos
                if (model.ViewDinamica != null)
                {
                    model.ViewDinamica.ChaveEntidadeId = ocorrencia.Id;
                    _viewDinamicaAppServico.Atualizar(model.ViewDinamica, usuarioId);
                }
            }

            return(model);
        }
コード例 #4
0
        public OcorrenciaFormViewModel CarregarDadosMinhasOcorrencia(string userId)
        {
            var view = new OcorrenciaFormViewModel
            {
                dataInicio           = DateTime.Now,
                dataFim              = DateTime.Now,
                ListarOcorrenciaTipo = ListarOcorrenciaTipoOcorrencia(userId)
            };

            return(view);
        }
コード例 #5
0
        public OcorrenciaFormViewModel Atualizar(OcorrenciaFormViewModel model, string usuarioId)
        {
            var ocorrencia = _servicoOcorrencia.ObterPorId((long)model.OcorrenciaID);

            ocorrencia.OcorrenciasTiposId        = (long)model.ocorrenciasTiposID;
            ocorrencia.ContratoId                = model.contratoID;
            ocorrencia.DecritivoDeAbertura       = model.decritivoDeAbertura;
            ocorrencia.AtualizadoEm              = DateTime.Now;
            ocorrencia.AtualizadoPorAspNetUserId = model.atualizadoPorAspNetUserID;
            var resultado = _servicoOcorrencia.Atualizar(ocorrencia);

            if (resultado.IsValid)
            {
                var ocorrenciaTipo = _servicoOcorrenciaTipo.ObterPorId(ocorrencia.OcorrenciasTiposId);

                if (model.LocalExcluido || (ocorrenciaTipo.VincularLocal == false))
                {
                    _servicoOcorrenciaLocalTipoAtendimento.DeletarTodosLocaisDaOcorrencia(ocorrencia.Id);
                }

                //Campos Dinamicos
                if (model.ViewDinamica != null)
                {
                    model.ViewDinamica.ChaveEntidadeId = ocorrencia.Id;
                    _viewDinamicaAppServico.Atualizar(model.ViewDinamica, usuarioId);
                }

                /// Inserir e/ou Atualizar Endereço Local
                if (model.EnderecoProduto != null)
                {
                    if (model.EnderecoProduto.LocaisTiposAtendimentoId != null)
                    {
                        var entidade = new OcorrenciaLocalTipoAtendimento(ocorrencia.Id,
                                                                          (int)model.EnderecoProduto.LocaisId, (int)model.EnderecoProduto.LocaisTiposAtendimentoId,
                                                                          model.EnderecoProduto.Logradouro, model.EnderecoProduto.Numero, model.EnderecoProduto.Cep,
                                                                          model.EnderecoProduto.Bairro, model.EnderecoProduto.CidadesId,
                                                                          model.atualizadoPorAspNetUserID, model.EnderecoProduto.Complemento);
                        _servicoOcorrenciaLocalTipoAtendimento.DeletarTodosLocaisDaOcorrencia(ocorrencia.Id);
                        _servicoOcorrenciaLocalTipoAtendimento.Adicionar(entidade);
                    }
                }
            }

            return(model);
        }
コード例 #6
0
        public OcorrenciaFormViewModel ObterOcorrenciasHistoricoCliente(long?pessoaFisicaId, long?pessoaJuridicaId)
        {
            var minhaLista      = new List <OcorrenciaListaItemViewModel>();
            var view            = new OcorrenciaFormViewModel();
            var listaOcorrencia = _servicoOcorrencia.BuscarOcorrenciasCliente(pessoaFisicaId, pessoaJuridicaId, null);
            var vincularOcorrenciaAtendimentoManual = _servicoConfiguracao.VincularOcorrenciaAtendimentoManual();

            if (listaOcorrencia != null)
            {
                minhaLista.AddRange(
                    listaOcorrencia.Select(
                        ocorrencia =>
                        new OcorrenciaListaItemViewModel(ocorrencia, null, null, vincularOcorrenciaAtendimentoManual,
                                                         false, pessoaFisicaId, pessoaJuridicaId, ocorrencia.Finalizada)));
            }
            view.ListaOcorrenciaCliente = minhaLista;
            return(view);
        }
コード例 #7
0
 public static Ocorrencia ParaDominioModelo(OcorrenciaFormViewModel model)
 {
     return(new Ocorrencia(Convert.ToInt32(model.ocorrenciasTiposID), model.decritivoDeAbertura,
                           model.pessoaFisicaID, model.pessoaJuridicaID, model.contratoID, model.criadoPorUserID, model.CampoChave1, model.Previsao));
 }
コード例 #8
0
        public OcorrenciaFormViewModel ObterPorId(long id, string userId, long?atendimentoId)
        {
            var ocorrencia = _servicoOcorrencia.ObterOcorrenciaCompletaPorId(id);

            if (ocorrencia != null)
            {
                var listaAnotacao = _servicoAnotacao.ObterPorOcorrenciaId(id);
                var listaContrato = _servicoContrato.ObterContratosNovaOcorrencia(ocorrencia.PessoaFisicaId,
                                                                                  ocorrencia.PessoaJuridicaId);
                var ddLsOcorrenciaTipo = ObterOcorrenciaTipoDdlViewModel(ocorrencia.OcorrenciasTiposId);
                var ocorrenciaTipo     = _servicoOcorrenciaTipo.ObterPorId(ocorrencia.OcorrenciasTiposId);
                var podeEditar         = string.IsNullOrEmpty(ocorrencia.ResponsavelPorAspNetUserId)
                    ? ocorrencia.CriadoPorUserId == userId
                    : ocorrencia.ResponsavelPorAspNetUserId == userId;

                if (podeEditar)
                {
                    if (ocorrencia.StatusEntidade != null)
                    {
                        if (ocorrencia.StatusEntidade.finalizador)
                        {
                            podeEditar = false;
                        }
                    }
                }

                var viewDinamicaModel = _viewDinamicaAppServico.Carregar("OCORRENCIA", "padrão", null, ocorrencia.Id,
                                                                         podeEditar);
                var statusEntidade = ocorrencia.StatusEntidadesId > 0
                    ? _servicoStatusEntidade.ObterPorId(ocorrencia.StatusEntidadesId)
                    : null;

                //DateTime? previsao = null;

                //if (ocorrenciaTipo != null)
                //{
                //    if (ocorrenciaTipo.TempoPrevistoAtendimento > 0)
                //    {
                //        previsao = ocorrencia.CriadoEm.AddMinutes(ocorrenciaTipo.TempoPrevistoAtendimento);
                //    }
                //}

                var usuarioFinalizador = string.Empty;

                if (!string.IsNullOrEmpty(ocorrencia.FinalizadoPorUserId))
                {
                    var finalizadoPor = _servicoUsuario.ObterPorUserId(ocorrencia.FinalizadoPorUserId);

                    if (finalizadoPor != null)
                    {
                        usuarioFinalizador = finalizadoPor.Nome;
                    }
                }


                var nomeCampoChave1  = _servicoConfiguracao.ObterNomeCampoChave1Ocorrencia();
                var valorCampoChave1 = _servicoConfiguracao.ObterValorPadraoCampoChave1Ocorrencia();
                var retorno          = new OcorrenciaFormViewModel(null, listaContrato, ocorrencia, listaAnotacao, statusEntidade,
                                                                   atendimentoId, ddLsOcorrenciaTipo, null, ocorrenciaTipo.VincularLocal, viewDinamicaModel, podeEditar,
                                                                   ocorrencia.PrevisaoInicial, ocorrencia.CampoChave1, nomeCampoChave1,
                                                                   string.IsNullOrEmpty(valorCampoChave1),
                                                                   usuarioFinalizador);


                ///*Regra colocada em 25/10/2018 de forma emergencial para abrir ocorrência dentro de um iframe somente para a AIG....*/
                //var tipoAberturaOcorrencia = _servicoConfiguracao.ObterTipoAberturaOcorrencia();
                //if (tipoAberturaOcorrencia != null)
                //    if (tipoAberturaOcorrencia.Valor == "IFRAME")
                //        retorno.CarregadaEmIframe = true;

                //Carregar Local
                var local = _servicoLocal.ObterLocalPorOcorrenciaId(ocorrencia.Id);
                if (local == null)
                {
                    return(retorno);
                }

                var nomeCidade = "";
                var nomeEstado = "";

                if (local.LocalOcorrencia.CidadesId != null)
                {
                    var cidade = _servicoCidadeServico.ObterPorId((int)local.LocalOcorrencia.CidadesId);
                    if (cidade != null)
                    {
                        nomeCidade = cidade.Nome;
                        nomeEstado = cidade.Uf;
                    }
                }

                var enderecoProduto = new EnderecoProdutoViewModel(local.LocalOcorrencia.Logradouro,
                                                                   local.LocalOcorrencia.Numero, local.LocalOcorrencia.Cep, local.LocalOcorrencia.Bairro,
                                                                   nomeCidade, nomeEstado, local.LocalOcorrencia.Complemento);
                var local2 = new LocalViewModel(local.nome, local.LocalTipo.Nome, local.logradouro, local.numero,
                                                local.bairro, local.cidade, local.estado, local.cep, local.telefone01, local.telefone02,
                                                local.telefone03, local.email01, local.email02, local.webSite, enderecoProduto.EnderecoCompleto,
                                                local.LocalOcorrencia.LocalTipoAtendimento.nome);
                retorno.Local = local2;

                return(retorno);
            }
            var validacaoRetorno = new ValidationResult();

            validacaoRetorno.Add(new ValidationError("Nenhuma ocorrência encontrada com os parâmetros informados."));
            return(new OcorrenciaFormViewModel {
                ValidationResult = validacaoRetorno
            });
        }
コード例 #9
0
        public OcorrenciaFormViewModel CarregarVisualizar(long ocorrenciaId)
        {
            var ocorrencia = _servicoOcorrencia.ObterPorId(ocorrenciaId);

            if (ocorrencia != null)
            {
                var pessoaFisica   = new PessoaFisica();
                var pessoaJuridica = new PessoaJuridica();
                var Cidade         = new Cidade();
                var statusEntidade = new StatusEntidade();

                var viewModel = new OcorrenciaFormViewModel
                {
                    OcorrenciaID = ocorrenciaId,
                    OcorrenciaTiposXOcorrencia =
                        _ocorrenciaTiposXOcorrenciaServico.ObterDadosOcorrenciaTiposXOcorrencia(ocorrenciaId),
                    atualizadoEm   = ocorrencia.AtualizadoEm,
                    criadoEm       = ocorrencia.CriadoEm,
                    StatusEntidade = _servicoStatusEntidade.ObterPorId(ocorrencia.StatusEntidadesId)
                };

                statusEntidade = ocorrencia.StatusEntidadesId > 0
                    ? _servicoStatusEntidade.ObterPorId(ocorrencia.StatusEntidadesId)
                    : null;

                viewModel.StatusEntidade = statusEntidade;
                viewModel.criadoEm       = ocorrencia.CriadoEm;
                viewModel.atualizadoEm   = ocorrencia.AtualizadoEm;

                if (ocorrencia.PessoaFisicaId != null)
                {
                    pessoaFisica = _servicoPessoaFisica.ObterPorId((long)ocorrencia.PessoaFisicaId);

                    if (pessoaFisica.CidadeId != null)
                    {
                        Cidade = _servicoCidadeServico.ObterPorId((long)pessoaFisica.CidadeId);
                    }

                    _cliente       = new ClientePerfilViewModel(pessoaFisica, "", Cidade, false);
                    pessoaJuridica = null;
                }
                else if (ocorrencia.PessoaJuridicaId != null)
                {
                    pessoaJuridica = _servicoPessoaJuridica.ObterPorId((long)ocorrencia.PessoaJuridicaId);
                    if (pessoaJuridica.CidadeId != null)
                    {
                        Cidade = _servicoCidadeServico.ObterPorId((long)pessoaJuridica.CidadeId);
                    }
                    _cliente     = new ClientePerfilViewModel(pessoaJuridica, "", Cidade, false);
                    pessoaFisica = null;
                }

                _cliente.Visualizar = true;
                viewModel.Cliente   = _cliente;

                //Carregar Local
                var local = _servicoLocal.ObterLocalPorOcorrenciaId(ocorrencia.Id);
                if (local != null)
                {
                    string nomeCidade = "";
                    string nomeEstado = "";

                    if (local.LocalOcorrencia.CidadesId != null)
                    {
                        var cidade = _servicoCidadeServico.ObterPorId((int)local.LocalOcorrencia.CidadesId);
                        if (cidade != null)
                        {
                            nomeCidade = cidade.Nome;
                            nomeEstado = cidade.Uf;
                        }
                    }

                    var enderecoProduto = new EnderecoProdutoViewModel(local.LocalOcorrencia.Logradouro,
                                                                       local.LocalOcorrencia.Numero, local.LocalOcorrencia.Cep, local.LocalOcorrencia.Bairro,
                                                                       nomeCidade, nomeEstado, local.LocalOcorrencia.Complemento);
                    var local2 = new LocalViewModel(local.nome, local.LocalTipo.Nome, local.logradouro, local.numero,
                                                    local.bairro, local.cidade, local.estado, local.cep, local.telefone01, local.telefone02,
                                                    local.telefone03, local.email01, local.email02, local.webSite, enderecoProduto.EnderecoCompleto,
                                                    local.LocalOcorrencia.LocalTipoAtendimento.nome);
                    viewModel.Local = local2;
                }

                return(viewModel);
            }
            var validacaoRetorno = new ValidationResult();

            validacaoRetorno.Add(new ValidationError("Nenhuma ocorrência encontrada com os parâmetros informados."));
            return(new OcorrenciaFormViewModel {
                ValidationResult = validacaoRetorno
            });
        }