Example #1
0
        private void RemoverOuAdicionarInfraEstruturaUrbana(Laudo laudo, LaudoViewModel model)
        {
            var listaInfrasLaudo = laudo.ListaInfraEstruturaUrbana.ToList();
            var listaInfras      = ObterListaOpcoesAPartirString(model.InfrasSelecionadas);

            var listaInfrasARemover = new List <InfraEstruturaUrbana>(
                from infra in listaInfrasLaudo
                where listaInfras.All(i => i.Value != ((EnumInfraEstruturaUrbana)infra.TipoInfraEstruturaUrbana).ToString())
                select infra
                );

            var listaInfrasAAdicionar = (from infra in listaInfras
                                         where listaInfrasLaudo.All(i => ((EnumInfraEstruturaUrbana)i.TipoInfraEstruturaUrbana).ToString() != infra.Value)
                                         select infra).ToList();

            foreach (var infra in listaInfrasARemover)
            {
                laudo.ListaInfraEstruturaUrbana.Remove(infra);
            }

            foreach (var infra in listaInfrasAAdicionar)
            {
                var valorEnum = EnumHelper.ParseEnumValueDescription <EnumInfraEstruturaUrbana>(infra.Value);

                laudo.ListaInfraEstruturaUrbana.Add(new InfraEstruturaUrbana
                {
                    Descricao = EnumHelper.GetDescription(valorEnum),
                    TipoInfraEstruturaUrbana = (int)valorEnum,
                    Laudo = laudo
                });
            }
        }
Example #2
0
        private LaudoViewModel ObterAreasEdificacaoCalculadas(LaudoViewModel model)
        {
            var viewModel = new LaudoViewModel {
                Laudo = new Laudo()
            };

            viewModel.Laudo.AreaUnidadePrivativa = model.Laudo.AreaUnidadePrivativa;
            viewModel.Laudo.AreaUnidadeComum     = model.Laudo.AreaUnidadeComum;
            viewModel.Laudo.AreaUnidadeTotal     = model.Laudo.AreaUnidadePrivativa + model.Laudo.AreaUnidadeComum;

            viewModel.Laudo.AreaEstacionamentoPrivativa = model.Laudo.AreaEstacionamentoPrivativa;
            viewModel.Laudo.AreaEstacionamentoComum     = model.Laudo.AreaEstacionamentoComum;
            viewModel.Laudo.AreaEstacionamentoTotal     = model.Laudo.AreaEstacionamentoPrivativa + model.Laudo.AreaEstacionamentoComum;

            viewModel.Laudo.AreaOutrosPrivativa = model.Laudo.AreaOutrosPrivativa;
            viewModel.Laudo.AreaOutrosComum     = model.Laudo.AreaOutrosComum;
            viewModel.Laudo.AreaOutrosTotal     = model.Laudo.AreaOutrosPrivativa + model.Laudo.AreaOutrosComum;

            viewModel.Laudo.AreaTotalPrivativa = model.Laudo.AreaUnidadePrivativa + model.Laudo.AreaEstacionamentoPrivativa + model.Laudo.AreaOutrosPrivativa;
            viewModel.Laudo.AreaTotalComum     = model.Laudo.AreaUnidadeComum + model.Laudo.AreaEstacionamentoComum + model.Laudo.AreaOutrosComum;
            viewModel.Laudo.AreaTotalAverbada  = viewModel.Laudo.AreaTotalPrivativa + viewModel.Laudo.AreaTotalComum;

            viewModel.Laudo.AreaTotalNaoAverbada = model.Laudo.AreaTotalNaoAverbada;
            viewModel.Laudo.SomatorioAreas       = viewModel.Laudo.AreaTotalAverbada + viewModel.Laudo.AreaTotalNaoAverbada;

            return(viewModel);
        }
Example #3
0
        private void RemoverOuAdicionarServicosPublicos(Laudo laudo, LaudoViewModel model)
        {
            var listaServicosLaudo        = laudo.ListaServicoPublicoComunitario.ToList();
            var listaServicosSelecionados = ObterListaOpcoesAPartirString(model.ServicosSelecionados);

            var listaServicosARemover = new List <ServicoPublicoComunitario>(
                from servico in listaServicosLaudo
                where listaServicosSelecionados.All(s => s.Value != ((EnumServicoPublicoComunitario)servico.TipoServicoPublicoComunitario).ToString())
                select servico).ToList();

            var listaServicosAAdicionar = (from servico in listaServicosSelecionados
                                           where listaServicosLaudo.All(s => ((EnumServicoPublicoComunitario)s.TipoServicoPublicoComunitario).ToString() != servico.Value)
                                           select servico).ToList();

            foreach (var servico in listaServicosARemover)
            {
                laudo.ListaServicoPublicoComunitario.Remove(servico);
            }

            foreach (var servico in listaServicosAAdicionar)
            {
                var valorEnum = EnumHelper.ParseEnumValueDescription <EnumServicoPublicoComunitario>(servico.Value);
                laudo.ListaServicoPublicoComunitario.Add(new ServicoPublicoComunitario
                {
                    Descricao = EnumHelper.GetDescription(valorEnum),
                    TipoServicoPublicoComunitario = (int)valorEnum,
                    Laudo = laudo
                });
            }
        }
Example #4
0
        public ActionResult Salvar(LaudoViewModel viewModel)
        {
            string mensagem;

            WorkLifetimeManager.Value.BeginTransaction(IsolationLevel.Serializable);

            try
            {
                var laudo = LaudoRepositorio.Obter(WorkLifetimeManager.Value, viewModel.LaudoId);

                AtualizarLaudo(laudo, viewModel);

                ImovelRepositorio.Salvar(WorkLifetimeManager.Value, laudo.Imovel);
                LaudoRepositorio.Salvar(WorkLifetimeManager.Value, laudo);

                WorkLifetimeManager.Value.Commit();

                mensagem = "Operação efetuada com sucesso!";
            }
            catch (Exception ex)
            {
                WorkLifetimeManager.Value.Rollback();
                mensagem = "Não foi possível efetuar alteração: " + ex.InnerException;
            }

            var laudos = BuscarLaudosPorStatus(viewModel.StatusLaudo);

            return(viewModel.StatusLaudo == EnumStatusLaudo.Importado.ToString()
                       ? PartialView("ImportarOS")
                       : PartialView("Lista", new ListaLaudoViewModel(viewModel.StatusLaudo, laudos, mensagem)));
        }
Example #5
0
        public ActionResult Voltar(LaudoViewModel viewModel)
        {
            var laudos = BuscarLaudosPorStatus(viewModel.StatusLaudo);

            return(viewModel.StatusLaudo == EnumStatusLaudo.Importado.ToString()
                       ? PartialView("ImportarOS")
                       : PartialView("Lista", new ListaLaudoViewModel(viewModel.StatusLaudo, laudos, null)));
        }
Example #6
0
        private LaudoViewModel PreencherViewModel(Laudo laudo)
        {
            var opcoesHelper = new OpcoesHelper(laudo);

            var viewModel = new LaudoViewModel
            {
                Laudo                      = laudo,
                LaudoId                    = laudo.LaudoID,
                StatusLaudo                = ((EnumStatusLaudo)laudo.Status).ToString(),
                MetodoDefinicaoValor       = RadioButtonHelper.ParseEnumToRadioButtonList((EnumMetodoDefinicaoValor)laudo.MetodoDefinicaoValor),
                DesempenhoMercado          = RadioButtonHelper.ParseEnumToRadioButtonList((EnumDesempenhoMercado)laudo.DesempenhoMercado),
                AbsorcaoMercado            = RadioButtonHelper.ParseEnumToRadioButtonList((EnumAbsorcaoMercado)laudo.AbsorcaoMercado),
                NumeroOfertas              = RadioButtonHelper.ParseEnumToRadioButtonList((EnumNivelImobiliario)laudo.NivelOfertas),
                NivelDemanda               = RadioButtonHelper.ParseEnumToRadioButtonList((EnumNivelImobiliario)laudo.NivelDemanda),
                FatoresLiquidezValorImovel = RadioButtonHelper.ParseEnumToRadioButtonList((EnumFatoresLiquidezValorImovel)laudo.FatoresLiquidezValorImovel),
                EstabilidadeSolidez        = RadioButtonHelper.ParseEnumToRadioButtonList((EnumEstabilidadeSimOuNao)laudo.EstabilidadeSolidez),
                ViciosConstrucao           = RadioButtonHelper.ParseEnumToRadioButtonList((EnumVicioSimOuNao)laudo.ViciosConstrucao),
                CondicoesHabitabilidade    = RadioButtonHelper.ParseEnumToRadioButtonList((EnumHabitabilidadeSimOuNao)laudo.Habitabilidade),
                AceitoComoGarantia         = RadioButtonHelper.ParseEnumToRadioButtonList((EnumGarantiaSimOuNao)laudo.AceitoComoGarantia),
                ConformidadeDocumentacao   = RadioButtonHelper.ParseEnumToRadioButtonList((EnumConformidadeDocumentacaoSimOuNao)laudo.ConformidadeDocumentacao),
                // Identificação
                ListaEstados         = opcoesHelper.ObterOpcoesEstado(EstadoRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaCidades         = opcoesHelper.ObterOpcoesCidade(CidadeRepositorio.BuscarTodasEstado(WorkLifetimeManager.Value, laudo.Imovel.Cidade.Estado.Sigla)),
                ListaTiposLogradouro = opcoesHelper.ObterOpcoesTipoLogradouro(TipoLogradouroRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaFontes          = opcoesHelper.ObterOpcoesFonte(FonteRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaLinhas          = opcoesHelper.ObterOpcoesLinha(LinhaRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaProdutos        = opcoesHelper.ObterOpcoesProduto(ProdutoRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                // Caracterização da Região
                ListaServicosPublicosComunitarios = opcoesHelper.ObterOpcoesEnum <EnumServicoPublicoComunitario>(),
                ListaInfraEstruturasUrbanas       = opcoesHelper.ObterOpcoesEnum <EnumInfraEstruturaUrbana>(),
                // Final
                ListaComarcas             = opcoesHelper.ObterOpcoesCidade(CidadeRepositorio.BuscarTodasEstado(WorkLifetimeManager.Value, laudo.Imovel.Cidade.Estado.Sigla)),
                ListaResponsaveisTecnicos = opcoesHelper.ObterOpcoesResponsaveisTecnicos(UsuarioRepositorio.BuscarPorPerfil(WorkLifetimeManager.Value, EnumPerfil.UsuarioComum)),
                ListaRepresentantesLegais = opcoesHelper.ObterOpcoesRepresentantesLegais(UsuarioRepositorio.BuscarPorPerfil(WorkLifetimeManager.Value, EnumPerfil.Administrador)),
            };

            MarcarServicosPublicosComunitarios(viewModel.ListaServicosPublicosComunitarios, laudo.ListaServicoPublicoComunitario);
            MarcarInfraEstruturasUrbanas(viewModel.ListaInfraEstruturasUrbanas, laudo.ListaInfraEstruturaUrbana);

            if (laudo.DataHoraVistoria.HasValue)
            {
                viewModel.DataVistoria = laudo.DataHoraVistoria.Value.Date.ToString("dd/MM/yyyy");
                viewModel.HoraVistoria = laudo.DataHoraVistoria.Value.ToString("HH:mm");
            }

            return(viewModel);
        }
Example #7
0
        private void AtualizarLaudo(Laudo laudo, LaudoViewModel model)
        {
            #region Identificação
            if (laudo.Imovel.Cidade.Estado.EstadoID != model.Laudo.Imovel.Cidade.Estado.EstadoID)
            {
                laudo.Imovel.Cidade.Estado = EstadoRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Imovel.Cidade.Estado.EstadoID);
            }
            if (laudo.Imovel.Cidade.CidadeID != model.Laudo.Imovel.Cidade.CidadeID)
            {
                laudo.Imovel.Cidade = CidadeRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Imovel.Cidade.CidadeID);
            }
            if (laudo.Imovel.TipoLogradouro.TipoLogradouroID != model.Laudo.Imovel.TipoLogradouro.TipoLogradouroID)
            {
                laudo.Imovel.TipoLogradouro = TipoLogradouroRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Imovel.TipoLogradouro.TipoLogradouroID);
            }

            laudo.Imovel.Endereco    = model.Laudo.Imovel.Endereco;
            laudo.Imovel.Numero      = model.Laudo.Imovel.Numero;
            laudo.Imovel.Complemento = model.Laudo.Imovel.Complemento;
            laudo.Produto            = model.Laudo.Produto;
            laudo.Linha = model.Laudo.Linha;
            laudo.Fonte = model.Laudo.Fonte;
            laudo.Imovel.NomeCliente = model.Laudo.Imovel.NomeCliente;
            #endregion

            #region Caracterização da Região
            laudo.UsosPredominantes = model.Laudo.UsosPredominantes;

            RemoverOuAdicionarServicosPublicos(laudo, model);

            RemoverOuAdicionarInfraEstruturaUrbana(laudo, model);
            #endregion

            #region Terreno
            laudo.FormaTerreno          = model.Laudo.FormaTerreno;
            laudo.CotaGreideTerreno     = model.Laudo.CotaGreideTerreno;
            laudo.InclinacaoTerreno     = model.Laudo.InclinacaoTerreno;
            laudo.SituacaoTerreno       = model.Laudo.SituacaoTerreno;
            laudo.SuperficieTerreno     = model.Laudo.SuperficieTerreno;
            laudo.MedidaAreaTerreno     = model.Laudo.MedidaAreaTerreno;
            laudo.MedidaFrenteTerreno   = model.Laudo.MedidaFrenteTerreno;
            laudo.MedidaFundosTerreno   = model.Laudo.MedidaFundosTerreno;
            laudo.MedidaDireitaTerreno  = model.Laudo.MedidaDireitaTerreno;
            laudo.MedidaEsquerdaTerreno = model.Laudo.MedidaEsquerdaTerreno;
            laudo.FracaoIdealTerreno    = model.Laudo.FracaoIdealTerreno;
            #endregion

            #region Edificação
            laudo.TipoEdificacao                = model.Laudo.TipoEdificacao;
            laudo.UsoEdificacao                 = model.Laudo.UsoEdificacao;
            laudo.NumeroPavimentos              = model.Laudo.NumeroPavimentos;
            laudo.IdadeEdificio                 = model.Laudo.IdadeEdificio;
            laudo.PosicaoEdificacao             = model.Laudo.PosicaoEdificacao;
            laudo.PadraoAcabamento              = model.Laudo.PadraoAcabamento;
            laudo.EstadoConservacao             = model.Laudo.EstadoConservacao;
            laudo.Tetos                         = model.Laudo.Tetos;
            laudo.FechamentoParedes             = model.Laudo.FechamentoParedes;
            laudo.NumeroVagasCobertas           = model.Laudo.NumeroVagasCobertas;
            laudo.NumeroVagasDescobertas        = model.Laudo.NumeroVagasDescobertas;
            laudo.AreaUnidadePrivativa          = model.Laudo.AreaUnidadePrivativa;
            laudo.AreaUnidadeComum              = model.Laudo.AreaUnidadeComum;
            laudo.AreaUnidadeTotal              = model.Laudo.AreaUnidadeTotal;
            laudo.AreaEstacionamentoPrivativa   = model.Laudo.AreaEstacionamentoPrivativa;
            laudo.AreaEstacionamentoComum       = model.Laudo.AreaEstacionamentoComum;
            laudo.AreaEstacionamentoTotal       = model.Laudo.AreaEstacionamentoTotal;
            laudo.AreaOutrosPrivativa           = model.Laudo.AreaOutrosPrivativa;
            laudo.AreaOutrosComum               = model.Laudo.AreaOutrosComum;
            laudo.AreaOutrosTotal               = model.Laudo.AreaOutrosTotal;
            laudo.AreaTotalPrivativa            = model.Laudo.AreaTotalPrivativa;
            laudo.AreaTotalComum                = model.Laudo.AreaTotalComum;
            laudo.AreaTotalAverbada             = model.Laudo.AreaTotalAverbada;
            laudo.AreaTotalNaoAverbada          = model.Laudo.AreaTotalNaoAverbada;
            laudo.SomatorioAreas                = model.Laudo.SomatorioAreas;
            laudo.NumeroQuartos                 = model.Laudo.NumeroQuartos;
            laudo.NumeroSalas                   = model.Laudo.NumeroSalas;
            laudo.NumeroCirculacao              = model.Laudo.NumeroCirculacao;
            laudo.NumeroBanheiros               = model.Laudo.NumeroBanheiros;
            laudo.NumeroSuites                  = model.Laudo.NumeroSuites;
            laudo.NumeroClosets                 = model.Laudo.NumeroClosets;
            laudo.NumeroCopas                   = model.Laudo.NumeroCopas;
            laudo.NumeroCozinhas                = model.Laudo.NumeroCozinhas;
            laudo.NumeroAreasServico            = model.Laudo.NumeroAreasServico;
            laudo.NumeroVarandas                = model.Laudo.NumeroVarandas;
            laudo.NumeroTerracosCobertos        = model.Laudo.NumeroTerracosCobertos;
            laudo.NumeroTerracosDescobertos     = model.Laudo.NumeroTerracosDescobertos;
            laudo.UsoPredio                     = model.Laudo.UsoPredio;
            laudo.NumeroPavimentosPredio        = model.Laudo.NumeroPavimentosPredio;
            laudo.NumeroUnidadesPredio          = model.Laudo.NumeroUnidadesPredio;
            laudo.NumeroElevadoresPredio        = model.Laudo.NumeroElevadoresPredio;
            laudo.PosicaoPredio                 = model.Laudo.PosicaoPredio;
            laudo.PadraoConstrutivoPredio       = model.Laudo.PadraoConstrutivoPredio;
            laudo.EstadoConservacaoPredio       = model.Laudo.EstadoConservacaoPredio;
            laudo.IdentificacaoPavimentosPredio = model.Laudo.IdentificacaoPavimentosPredio;
            laudo.IdadeAparentePredio           = model.Laudo.IdadeAparentePredio;
            #endregion

            #region Avaliação
            laudo.ValorAvaliacao                 = model.Laudo.ValorAvaliacao;
            laudo.ValorAvaliacaoExtenso          = model.Laudo.ValorAvaliacaoExtenso;
            laudo.MetodoDefinicaoValor           = (int)model.MetodoDefinicaoValor.SelectedValue;
            laudo.AreaGlobal                     = model.Laudo.AreaGlobal;
            laudo.ValorMetroQuadradoGlobal       = model.Laudo.ValorMetroQuadradoGlobal;
            laudo.ValorTotalGlobal               = model.Laudo.ValorTotalGlobal;
            laudo.AreaTerreno                    = model.Laudo.AreaTerreno;
            laudo.AreaEdificacao                 = model.Laudo.AreaEdificacao;
            laudo.AreaBenfeitorias               = model.Laudo.AreaBenfeitorias;
            laudo.ValorMetroQuadradoTerreno      = model.Laudo.ValorMetroQuadradoTerreno;
            laudo.ValorMetroQuadradoEdificacao   = model.Laudo.ValorMetroQuadradoEdificacao;
            laudo.ValorMetroQuadradoBenfeitorias = model.Laudo.ValorMetroQuadradoBenfeitorias;
            laudo.ProdutoTerreno                 = model.Laudo.ProdutoTerreno;
            laudo.ProdutoEdificacao              = model.Laudo.ProdutoEdificacao;
            laudo.ProdutoBenfeitorias            = model.Laudo.ProdutoBenfeitorias;
            laudo.ValorTotalItemizada            = model.Laudo.ValorTotalItemizada;
            laudo.PrecisaoFundamentacao          = model.Laudo.PrecisaoFundamentacao;
            laudo.MetodologiaAvaliacao           = model.Laudo.MetodologiaAvaliacao;
            laudo.DesempenhoMercado              = (int)model.DesempenhoMercado.SelectedValue;
            laudo.AbsorcaoMercado                = (int)model.AbsorcaoMercado.SelectedValue;
            laudo.NivelOfertas                   = (int)model.NumeroOfertas.SelectedValue;
            laudo.NivelDemanda                   = (int)model.NivelDemanda.SelectedValue;
            laudo.ObservacoesAvaliacao           = model.Laudo.ObservacoesAvaliacao;
            #endregion

            #region Informações Complementares
            laudo.EstabilidadeSolidez = model.Laudo.EstabilidadeSolidez;
            laudo.EstabilidadeSolidezJustificativa = model.Laudo.EstabilidadeSolidezJustificativa;
            laudo.ViciosConstrucao            = model.Laudo.ViciosConstrucao;
            laudo.ViciosConstrucaoRelacao     = model.Laudo.ViciosConstrucaoRelacao;
            laudo.Habitabilidade              = model.Laudo.Habitabilidade;
            laudo.HabitabilidadeJustificativa = model.Laudo.HabitabilidadeJustificativa;
            laudo.FatoresLiquidezValorImovel  = (int)model.FatoresLiquidezValorImovel.SelectedValue;
            laudo.FatoresLiquidezExplicitacao = model.Laudo.FatoresLiquidezExplicitacao;
            #endregion

            #region Garantia, Documentação Apresentada
            laudo.AceitoComoGarantia = (int)model.AceitoComoGarantia.SelectedValue;

            laudo.MatriculaRGI = model.Laudo.MatriculaRGI;
            laudo.Oficio       = model.Laudo.Oficio;

            if (model.Laudo.Comarca == null || model.Laudo.Comarca.CidadeID == 0)
            {
                laudo.Comarca = null;
            }
            else if (laudo.Comarca == null || laudo.Comarca.CidadeID != model.Laudo.Comarca.CidadeID)
            {
                laudo.Comarca = CidadeRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Comarca.CidadeID);
            }

            laudo.OutrosDocumentos         = model.Laudo.OutrosDocumentos;
            laudo.ConformidadeDocumentacao = (int)model.ConformidadeDocumentacao.SelectedValue;
            laudo.Divergencia = model.Laudo.Divergencia;
            #endregion

            #region Observações Finais
            laudo.ObservacoesFinais = model.Laudo.ObservacoesFinais;
            laudo.LocalEmissaoLaudo = model.Laudo.LocalEmissaoLaudo;

            if (model.Laudo.ResponsavelTecnico == null || model.Laudo.ResponsavelTecnico.UsuarioId == 0)
            {
                laudo.ResponsavelTecnico = null;
            }
            else if (laudo.ResponsavelTecnico == null || laudo.ResponsavelTecnico.UsuarioId != model.Laudo.ResponsavelTecnico.UsuarioId)
            {
                laudo.ResponsavelTecnico = UsuarioRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.ResponsavelTecnico.UsuarioId);
            }

            if (model.Laudo.RepresentanteLegalEmpresa == null || model.Laudo.RepresentanteLegalEmpresa.UsuarioId == 0)
            {
                laudo.RepresentanteLegalEmpresa = null;
            }
            else if (laudo.RepresentanteLegalEmpresa == null || laudo.RepresentanteLegalEmpresa.UsuarioId != model.Laudo.RepresentanteLegalEmpresa.UsuarioId)
            {
                laudo.RepresentanteLegalEmpresa = UsuarioRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.RepresentanteLegalEmpresa.UsuarioId);
            }
            #endregion

            if (laudo.Status == (int)EnumStatusLaudo.AFazer)
            {
                VerificarStatusLaudo(laudo);
            }
        }
Example #8
0
 public ActionResult AtualizarAreasEdificacao(LaudoViewModel viewModel)
 {
     return(PartialView("AreasEdificacao", ObterAreasEdificacaoCalculadas(viewModel)));
 }
Example #9
0
        private void RemoverOuAdicionarServicosPublicos(Laudo laudo, LaudoViewModel model)
        {
            var listaServicosLaudo = laudo.ListaServicoPublicoComunitario.ToList();
            var listaServicosSelecionados = ObterListaOpcoesAPartirString(model.ServicosSelecionados);

            var listaServicosARemover = new List<ServicoPublicoComunitario>(
                from servico in listaServicosLaudo
                where listaServicosSelecionados.All(s => s.Value != ((EnumServicoPublicoComunitario)servico.TipoServicoPublicoComunitario).ToString())
                select servico).ToList();

            var listaServicosAAdicionar = (from servico in listaServicosSelecionados
                                           where listaServicosLaudo.All(s => ((EnumServicoPublicoComunitario) s.TipoServicoPublicoComunitario).ToString() != servico.Value)
                                           select servico).ToList();

            foreach (var servico in listaServicosARemover)
                laudo.ListaServicoPublicoComunitario.Remove(servico);

            foreach (var servico in listaServicosAAdicionar)
            {
                var valorEnum = EnumHelper.ParseEnumValueDescription<EnumServicoPublicoComunitario>(servico.Value);
                laudo.ListaServicoPublicoComunitario.Add(new ServicoPublicoComunitario
                                                             {
                                                                 Descricao = EnumHelper.GetDescription(valorEnum),
                                                                 TipoServicoPublicoComunitario = (int) valorEnum,
                                                                 Laudo = laudo
                                                             });
            }
        }
Example #10
0
        private LaudoViewModel PreencherViewModel(Laudo laudo)
        {
            var opcoesHelper = new OpcoesHelper(laudo);

            var viewModel = new LaudoViewModel
            {
                Laudo = laudo,
                LaudoId = laudo.LaudoID,
                StatusLaudo = ((EnumStatusLaudo)laudo.Status).ToString(),
                MetodoDefinicaoValor = RadioButtonHelper.ParseEnumToRadioButtonList((EnumMetodoDefinicaoValor)laudo.MetodoDefinicaoValor),
                DesempenhoMercado = RadioButtonHelper.ParseEnumToRadioButtonList((EnumDesempenhoMercado)laudo.DesempenhoMercado),
                AbsorcaoMercado = RadioButtonHelper.ParseEnumToRadioButtonList((EnumAbsorcaoMercado)laudo.AbsorcaoMercado),
                NumeroOfertas = RadioButtonHelper.ParseEnumToRadioButtonList((EnumNivelImobiliario)laudo.NivelOfertas),
                NivelDemanda = RadioButtonHelper.ParseEnumToRadioButtonList((EnumNivelImobiliario)laudo.NivelDemanda),
                FatoresLiquidezValorImovel = RadioButtonHelper.ParseEnumToRadioButtonList((EnumFatoresLiquidezValorImovel)laudo.FatoresLiquidezValorImovel),
                EstabilidadeSolidez = RadioButtonHelper.ParseEnumToRadioButtonList((EnumEstabilidadeSimOuNao)laudo.EstabilidadeSolidez),
                ViciosConstrucao = RadioButtonHelper.ParseEnumToRadioButtonList((EnumVicioSimOuNao)laudo.ViciosConstrucao),
                CondicoesHabitabilidade = RadioButtonHelper.ParseEnumToRadioButtonList((EnumHabitabilidadeSimOuNao)laudo.Habitabilidade),
                AceitoComoGarantia = RadioButtonHelper.ParseEnumToRadioButtonList((EnumGarantiaSimOuNao)laudo.AceitoComoGarantia),
                ConformidadeDocumentacao = RadioButtonHelper.ParseEnumToRadioButtonList((EnumConformidadeDocumentacaoSimOuNao)laudo.ConformidadeDocumentacao),
                // Identificação
                ListaEstados = opcoesHelper.ObterOpcoesEstado(EstadoRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaCidades = opcoesHelper.ObterOpcoesCidade(CidadeRepositorio.BuscarTodasEstado(WorkLifetimeManager.Value, laudo.Imovel.Cidade.Estado.Sigla)),
                ListaTiposLogradouro = opcoesHelper.ObterOpcoesTipoLogradouro(TipoLogradouroRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaFontes = opcoesHelper.ObterOpcoesFonte(FonteRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaLinhas = opcoesHelper.ObterOpcoesLinha(LinhaRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                ListaProdutos = opcoesHelper.ObterOpcoesProduto(ProdutoRepositorio.BuscarTodos(WorkLifetimeManager.Value)),
                // Caracterização da Região
                ListaServicosPublicosComunitarios = opcoesHelper.ObterOpcoesEnum<EnumServicoPublicoComunitario>(),
                ListaInfraEstruturasUrbanas = opcoesHelper.ObterOpcoesEnum<EnumInfraEstruturaUrbana>(),
                // Final
                ListaComarcas = opcoesHelper.ObterOpcoesCidade(CidadeRepositorio.BuscarTodasEstado(WorkLifetimeManager.Value, laudo.Imovel.Cidade.Estado.Sigla)),
                ListaResponsaveisTecnicos = opcoesHelper.ObterOpcoesResponsaveisTecnicos(UsuarioRepositorio.BuscarPorPerfil(WorkLifetimeManager.Value, EnumPerfil.UsuarioComum)),
                ListaRepresentantesLegais = opcoesHelper.ObterOpcoesRepresentantesLegais(UsuarioRepositorio.BuscarPorPerfil(WorkLifetimeManager.Value, EnumPerfil.Administrador)),
            };

            MarcarServicosPublicosComunitarios(viewModel.ListaServicosPublicosComunitarios, laudo.ListaServicoPublicoComunitario);
            MarcarInfraEstruturasUrbanas(viewModel.ListaInfraEstruturasUrbanas, laudo.ListaInfraEstruturaUrbana);

            if (laudo.DataHoraVistoria.HasValue)
            {
                viewModel.DataVistoria = laudo.DataHoraVistoria.Value.Date.ToString("dd/MM/yyyy");
                viewModel.HoraVistoria = laudo.DataHoraVistoria.Value.ToString("HH:mm");
            }

            return viewModel;
        }
Example #11
0
        private void RemoverOuAdicionarInfraEstruturaUrbana(Laudo laudo, LaudoViewModel model)
        {
            var listaInfrasLaudo = laudo.ListaInfraEstruturaUrbana.ToList();
            var listaInfras = ObterListaOpcoesAPartirString(model.InfrasSelecionadas);

            var listaInfrasARemover = new List<InfraEstruturaUrbana>(
                    from infra in listaInfrasLaudo
                    where listaInfras.All(i => i.Value != ((EnumInfraEstruturaUrbana)infra.TipoInfraEstruturaUrbana).ToString())
                    select infra
                );

            var listaInfrasAAdicionar = (from infra in listaInfras
                                        where listaInfrasLaudo.All(i => ((EnumInfraEstruturaUrbana) i.TipoInfraEstruturaUrbana).ToString() != infra.Value)
                                        select infra).ToList();

            foreach (var infra in listaInfrasARemover)
                laudo.ListaInfraEstruturaUrbana.Remove(infra);

            foreach (var infra in listaInfrasAAdicionar)
            {
                var valorEnum = EnumHelper.ParseEnumValueDescription<EnumInfraEstruturaUrbana>(infra.Value);

                laudo.ListaInfraEstruturaUrbana.Add(new InfraEstruturaUrbana
                {
                    Descricao = EnumHelper.GetDescription(valorEnum),
                    TipoInfraEstruturaUrbana = (int)valorEnum,
                    Laudo = laudo
                });
            }
        }
Example #12
0
        private LaudoViewModel ObterAreasEdificacaoCalculadas(LaudoViewModel model)
        {
            var viewModel = new LaudoViewModel { Laudo = new Laudo() };

            viewModel.Laudo.AreaUnidadePrivativa = model.Laudo.AreaUnidadePrivativa;
            viewModel.Laudo.AreaUnidadeComum = model.Laudo.AreaUnidadeComum;
            viewModel.Laudo.AreaUnidadeTotal = model.Laudo.AreaUnidadePrivativa + model.Laudo.AreaUnidadeComum;

            viewModel.Laudo.AreaEstacionamentoPrivativa = model.Laudo.AreaEstacionamentoPrivativa;
            viewModel.Laudo.AreaEstacionamentoComum = model.Laudo.AreaEstacionamentoComum;
            viewModel.Laudo.AreaEstacionamentoTotal = model.Laudo.AreaEstacionamentoPrivativa + model.Laudo.AreaEstacionamentoComum;

            viewModel.Laudo.AreaOutrosPrivativa = model.Laudo.AreaOutrosPrivativa;
            viewModel.Laudo.AreaOutrosComum = model.Laudo.AreaOutrosComum;
            viewModel.Laudo.AreaOutrosTotal = model.Laudo.AreaOutrosPrivativa + model.Laudo.AreaOutrosComum;

            viewModel.Laudo.AreaTotalPrivativa = model.Laudo.AreaUnidadePrivativa + model.Laudo.AreaEstacionamentoPrivativa + model.Laudo.AreaOutrosPrivativa;
            viewModel.Laudo.AreaTotalComum = model.Laudo.AreaUnidadeComum + model.Laudo.AreaEstacionamentoComum + model.Laudo.AreaOutrosComum;
            viewModel.Laudo.AreaTotalAverbada = viewModel.Laudo.AreaTotalPrivativa + viewModel.Laudo.AreaTotalComum;

            viewModel.Laudo.AreaTotalNaoAverbada = model.Laudo.AreaTotalNaoAverbada;
            viewModel.Laudo.SomatorioAreas = viewModel.Laudo.AreaTotalAverbada + viewModel.Laudo.AreaTotalNaoAverbada;

            return viewModel;
        }
Example #13
0
        private void AtualizarLaudo(Laudo laudo, LaudoViewModel model)
        {
            #region Identificação
            if (laudo.Imovel.Cidade.Estado.EstadoID != model.Laudo.Imovel.Cidade.Estado.EstadoID)
                laudo.Imovel.Cidade.Estado = EstadoRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Imovel.Cidade.Estado.EstadoID);
            if (laudo.Imovel.Cidade.CidadeID != model.Laudo.Imovel.Cidade.CidadeID)
                laudo.Imovel.Cidade = CidadeRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Imovel.Cidade.CidadeID);
            if (laudo.Imovel.TipoLogradouro.TipoLogradouroID != model.Laudo.Imovel.TipoLogradouro.TipoLogradouroID)
                laudo.Imovel.TipoLogradouro = TipoLogradouroRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Imovel.TipoLogradouro.TipoLogradouroID);

            laudo.Imovel.Endereco = model.Laudo.Imovel.Endereco;
            laudo.Imovel.Numero = model.Laudo.Imovel.Numero;
            laudo.Imovel.Complemento = model.Laudo.Imovel.Complemento;
            laudo.Produto = model.Laudo.Produto;
            laudo.Linha = model.Laudo.Linha;
            laudo.Fonte = model.Laudo.Fonte;
            laudo.Imovel.NomeCliente = model.Laudo.Imovel.NomeCliente;
            #endregion

            #region Caracterização da Região
            laudo.UsosPredominantes = model.Laudo.UsosPredominantes;

            RemoverOuAdicionarServicosPublicos(laudo, model);

            RemoverOuAdicionarInfraEstruturaUrbana(laudo, model);
            #endregion

            #region Terreno
            laudo.FormaTerreno = model.Laudo.FormaTerreno;
            laudo.CotaGreideTerreno = model.Laudo.CotaGreideTerreno;
            laudo.InclinacaoTerreno = model.Laudo.InclinacaoTerreno;
            laudo.SituacaoTerreno = model.Laudo.SituacaoTerreno;
            laudo.SuperficieTerreno = model.Laudo.SuperficieTerreno;
            laudo.MedidaAreaTerreno = model.Laudo.MedidaAreaTerreno;
            laudo.MedidaFrenteTerreno = model.Laudo.MedidaFrenteTerreno;
            laudo.MedidaFundosTerreno = model.Laudo.MedidaFundosTerreno;
            laudo.MedidaDireitaTerreno = model.Laudo.MedidaDireitaTerreno;
            laudo.MedidaEsquerdaTerreno = model.Laudo.MedidaEsquerdaTerreno;
            laudo.FracaoIdealTerreno = model.Laudo.FracaoIdealTerreno;
            #endregion

            #region Edificação
            laudo.TipoEdificacao = model.Laudo.TipoEdificacao;
            laudo.UsoEdificacao = model.Laudo.UsoEdificacao;
            laudo.NumeroPavimentos = model.Laudo.NumeroPavimentos;
            laudo.IdadeEdificio = model.Laudo.IdadeEdificio;
            laudo.PosicaoEdificacao = model.Laudo.PosicaoEdificacao;
            laudo.PadraoAcabamento = model.Laudo.PadraoAcabamento;
            laudo.EstadoConservacao = model.Laudo.EstadoConservacao;
            laudo.Tetos = model.Laudo.Tetos;
            laudo.FechamentoParedes = model.Laudo.FechamentoParedes;
            laudo.NumeroVagasCobertas = model.Laudo.NumeroVagasCobertas;
            laudo.NumeroVagasDescobertas = model.Laudo.NumeroVagasDescobertas;
            laudo.AreaUnidadePrivativa = model.Laudo.AreaUnidadePrivativa;
            laudo.AreaUnidadeComum = model.Laudo.AreaUnidadeComum;
            laudo.AreaUnidadeTotal = model.Laudo.AreaUnidadeTotal;
            laudo.AreaEstacionamentoPrivativa = model.Laudo.AreaEstacionamentoPrivativa;
            laudo.AreaEstacionamentoComum = model.Laudo.AreaEstacionamentoComum;
            laudo.AreaEstacionamentoTotal = model.Laudo.AreaEstacionamentoTotal;
            laudo.AreaOutrosPrivativa = model.Laudo.AreaOutrosPrivativa;
            laudo.AreaOutrosComum = model.Laudo.AreaOutrosComum;
            laudo.AreaOutrosTotal = model.Laudo.AreaOutrosTotal;
            laudo.AreaTotalPrivativa = model.Laudo.AreaTotalPrivativa;
            laudo.AreaTotalComum = model.Laudo.AreaTotalComum;
            laudo.AreaTotalAverbada = model.Laudo.AreaTotalAverbada;
            laudo.AreaTotalNaoAverbada = model.Laudo.AreaTotalNaoAverbada;
            laudo.SomatorioAreas = model.Laudo.SomatorioAreas;
            laudo.NumeroQuartos = model.Laudo.NumeroQuartos;
            laudo.NumeroSalas = model.Laudo.NumeroSalas;
            laudo.NumeroCirculacao = model.Laudo.NumeroCirculacao;
            laudo.NumeroBanheiros = model.Laudo.NumeroBanheiros;
            laudo.NumeroSuites = model.Laudo.NumeroSuites;
            laudo.NumeroClosets = model.Laudo.NumeroClosets;
            laudo.NumeroCopas = model.Laudo.NumeroCopas;
            laudo.NumeroCozinhas = model.Laudo.NumeroCozinhas;
            laudo.NumeroAreasServico = model.Laudo.NumeroAreasServico;
            laudo.NumeroVarandas = model.Laudo.NumeroVarandas;
            laudo.NumeroTerracosCobertos = model.Laudo.NumeroTerracosCobertos;
            laudo.NumeroTerracosDescobertos = model.Laudo.NumeroTerracosDescobertos;
            laudo.UsoPredio = model.Laudo.UsoPredio;
            laudo.NumeroPavimentosPredio = model.Laudo.NumeroPavimentosPredio;
            laudo.NumeroUnidadesPredio = model.Laudo.NumeroUnidadesPredio;
            laudo.NumeroElevadoresPredio = model.Laudo.NumeroElevadoresPredio;
            laudo.PosicaoPredio = model.Laudo.PosicaoPredio;
            laudo.PadraoConstrutivoPredio = model.Laudo.PadraoConstrutivoPredio;
            laudo.EstadoConservacaoPredio = model.Laudo.EstadoConservacaoPredio;
            laudo.IdentificacaoPavimentosPredio = model.Laudo.IdentificacaoPavimentosPredio;
            laudo.IdadeAparentePredio = model.Laudo.IdadeAparentePredio;
            #endregion

            #region Avaliação
            laudo.ValorAvaliacao = model.Laudo.ValorAvaliacao;
            laudo.ValorAvaliacaoExtenso = model.Laudo.ValorAvaliacaoExtenso;
            laudo.MetodoDefinicaoValor = (int)model.MetodoDefinicaoValor.SelectedValue;
            laudo.AreaGlobal = model.Laudo.AreaGlobal;
            laudo.ValorMetroQuadradoGlobal = model.Laudo.ValorMetroQuadradoGlobal;
            laudo.ValorTotalGlobal = model.Laudo.ValorTotalGlobal;
            laudo.AreaTerreno = model.Laudo.AreaTerreno;
            laudo.AreaEdificacao = model.Laudo.AreaEdificacao;
            laudo.AreaBenfeitorias = model.Laudo.AreaBenfeitorias;
            laudo.ValorMetroQuadradoTerreno = model.Laudo.ValorMetroQuadradoTerreno;
            laudo.ValorMetroQuadradoEdificacao = model.Laudo.ValorMetroQuadradoEdificacao;
            laudo.ValorMetroQuadradoBenfeitorias = model.Laudo.ValorMetroQuadradoBenfeitorias;
            laudo.ProdutoTerreno = model.Laudo.ProdutoTerreno;
            laudo.ProdutoEdificacao = model.Laudo.ProdutoEdificacao;
            laudo.ProdutoBenfeitorias = model.Laudo.ProdutoBenfeitorias;
            laudo.ValorTotalItemizada = model.Laudo.ValorTotalItemizada;
            laudo.PrecisaoFundamentacao = model.Laudo.PrecisaoFundamentacao;
            laudo.MetodologiaAvaliacao = model.Laudo.MetodologiaAvaliacao;
            laudo.DesempenhoMercado = (int)model.DesempenhoMercado.SelectedValue;
            laudo.AbsorcaoMercado = (int)model.AbsorcaoMercado.SelectedValue;
            laudo.NivelOfertas = (int)model.NumeroOfertas.SelectedValue;
            laudo.NivelDemanda = (int)model.NivelDemanda.SelectedValue;
            laudo.ObservacoesAvaliacao = model.Laudo.ObservacoesAvaliacao;
            #endregion

            #region Informações Complementares
            laudo.EstabilidadeSolidez = model.Laudo.EstabilidadeSolidez;
            laudo.EstabilidadeSolidezJustificativa = model.Laudo.EstabilidadeSolidezJustificativa;
            laudo.ViciosConstrucao = model.Laudo.ViciosConstrucao;
            laudo.ViciosConstrucaoRelacao = model.Laudo.ViciosConstrucaoRelacao;
            laudo.Habitabilidade = model.Laudo.Habitabilidade;
            laudo.HabitabilidadeJustificativa = model.Laudo.HabitabilidadeJustificativa;
            laudo.FatoresLiquidezValorImovel = (int)model.FatoresLiquidezValorImovel.SelectedValue;
            laudo.FatoresLiquidezExplicitacao = model.Laudo.FatoresLiquidezExplicitacao;
            #endregion

            #region Garantia, Documentação Apresentada
            laudo.AceitoComoGarantia = (int)model.AceitoComoGarantia.SelectedValue;

            laudo.MatriculaRGI = model.Laudo.MatriculaRGI;
            laudo.Oficio = model.Laudo.Oficio;

            if (model.Laudo.Comarca == null || model.Laudo.Comarca.CidadeID == 0)
                laudo.Comarca = null;
            else if (laudo.Comarca == null || laudo.Comarca.CidadeID != model.Laudo.Comarca.CidadeID)
                laudo.Comarca = CidadeRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.Comarca.CidadeID);

            laudo.OutrosDocumentos = model.Laudo.OutrosDocumentos;
            laudo.ConformidadeDocumentacao = (int)model.ConformidadeDocumentacao.SelectedValue;
            laudo.Divergencia = model.Laudo.Divergencia;
            #endregion

            #region Observações Finais
            laudo.ObservacoesFinais = model.Laudo.ObservacoesFinais;
            laudo.LocalEmissaoLaudo = model.Laudo.LocalEmissaoLaudo;

            if (model.Laudo.ResponsavelTecnico == null || model.Laudo.ResponsavelTecnico.UsuarioId == 0)
                laudo.ResponsavelTecnico = null;
            else if (laudo.ResponsavelTecnico == null || laudo.ResponsavelTecnico.UsuarioId != model.Laudo.ResponsavelTecnico.UsuarioId)
                laudo.ResponsavelTecnico = UsuarioRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.ResponsavelTecnico.UsuarioId);

            if (model.Laudo.RepresentanteLegalEmpresa == null || model.Laudo.RepresentanteLegalEmpresa.UsuarioId == 0)
                laudo.RepresentanteLegalEmpresa = null;
            else if (laudo.RepresentanteLegalEmpresa == null || laudo.RepresentanteLegalEmpresa.UsuarioId != model.Laudo.RepresentanteLegalEmpresa.UsuarioId)
                laudo.RepresentanteLegalEmpresa = UsuarioRepositorio.Obter(WorkLifetimeManager.Value, model.Laudo.RepresentanteLegalEmpresa.UsuarioId);
            #endregion

            if (laudo.Status == (int) EnumStatusLaudo.AFazer)
                VerificarStatusLaudo(laudo);
        }
Example #14
0
        public ActionResult Voltar(LaudoViewModel viewModel)
        {
            var laudos = BuscarLaudosPorStatus(viewModel.StatusLaudo);

            return viewModel.StatusLaudo == EnumStatusLaudo.Importado.ToString()
                       ? PartialView("ImportarOS")
                       : PartialView("Lista", new ListaLaudoViewModel(viewModel.StatusLaudo, laudos, null));
        }
Example #15
0
        public ActionResult Salvar(LaudoViewModel viewModel)
        {
            string mensagem;

            WorkLifetimeManager.Value.BeginTransaction(IsolationLevel.Serializable);

            try
            {
                var laudo = LaudoRepositorio.Obter(WorkLifetimeManager.Value, viewModel.LaudoId);

                AtualizarLaudo(laudo, viewModel);

                ImovelRepositorio.Salvar(WorkLifetimeManager.Value, laudo.Imovel);
                LaudoRepositorio.Salvar(WorkLifetimeManager.Value, laudo);

                WorkLifetimeManager.Value.Commit();

                mensagem = "Operação efetuada com sucesso!";
            }
            catch (Exception ex)
            {
                WorkLifetimeManager.Value.Rollback();
                mensagem = "Não foi possível efetuar alteração: " + ex.InnerException;
            }

            var laudos = BuscarLaudosPorStatus(viewModel.StatusLaudo);

            return viewModel.StatusLaudo == EnumStatusLaudo.Importado.ToString()
                       ? PartialView("ImportarOS")
                       : PartialView("Lista", new ListaLaudoViewModel(viewModel.StatusLaudo, laudos, mensagem));
        }
Example #16
0
 public ActionResult AtualizarAreasEdificacao(LaudoViewModel viewModel)
 {
     return PartialView("AreasEdificacao", ObterAreasEdificacaoCalculadas(viewModel));
 }