Esempio n. 1
0
        public HomeViewModel Run(Repository value)
        {
            HomeViewModel home = (HomeViewModel)value;
            EmpresaSecurity <SecurityContext> es = new EmpresaSecurity <SecurityContext>();

            try
            {
                es.seguranca_db    = this.seguranca_db;
                home.UsuarioGrupos = es._getUsuarioGrupo(SessaoLocal.usuarioId).ToList();

                //home.ContabilidadeCompetencia = "Fevereiro/2017";

                //home.ValorInadimplenciaTotal = 0; // (decimal)468874.54;
                //home.ValorInadimplenciaCompetencia = 0; // (decimal)28274.29;
                //home.ValorSaldoAnterior = 0; // (decimal)18740.36;
                //home.ValorSaldoAtual = 0; // (decimal)12230.57;
                //home.ValorReceitaCompetenciaRealizada = (decimal)528196.31;
                //home.ValorReceitaCompetenciaPlanejada = (decimal)550000.0;
                //home.ValorDespesaCompetenciaRealizada = (decimal)253331.33;

                //home.ValorInadimplenciaTotal = 0; // Math.Round(home.ValorInadimplenciaTotal/1000, 0);
                //home.ValorInadimplenciaCompetencia = 0; // Math.Round(home.ValorInadimplenciaCompetencia / 1000, 0);
                //home.ValorSaldoAnterior = 0; // Math.Round(home.ValorSaldoAnterior / 1000, 0);
                //home.ValorReceitaCompetenciaRealizada = Math.Round(home.ValorReceitaCompetenciaRealizada / 1000, 0);
                //home.ValorReceitaCompetenciaPlanejada = Math.Round(home.ValorReceitaCompetenciaPlanejada / 1000, 0);
                //home.ValorDespesaCompetenciaRealizada = Math.Round(home.ValorDespesaCompetenciaRealizada / 1000, 0);

                //home.ValorSaldoAtual = home.ValorSaldoAnterior + home.ValorReceitaCompetenciaRealizada - home.ValorDespesaCompetenciaRealizada;

                //home.DRE = (from bal in db.Balancetes
                //            where bal.CondominioID == sessaoCorrente.empresaId
                //            orderby bal.Natureza, bal.descricao
                //            select new BalanceteViewModel
                //            {
                //                empresaId = bal.CondominioID,
                //                CondominioID = bal.CondominioID,
                //                planoContaID = bal.planoContaID,
                //                descricao = bal.descricao,
                //                Natureza = bal.Natureza,
                //                SaldosContabeis = (from sal in db.SaldosContabeis
                //                                   where sal.CondominioID == bal.CondominioID
                //                                            && sal.planoContaID == bal.planoContaID
                //                                   orderby sal.Competencia descending
                //                                   select new SaldoContabilViewModel()
                //                                   {
                //                                       CondominioID = sal.CondominioID,
                //                                       planoContaID = sal.planoContaID,
                //                                       Competencia = sal.Competencia,
                //                                       ValorSaldo = Math.Round(sal.ValorSaldo / 1000, 0),
                //                                       mensagem = new Validate() { Code = 0, Message = "Registro incluído com sucesso", MessageBase = "Registro incluído com sucesso", MessageType = MsgType.SUCCESS }
                //                                   }).Take(7)
                //            }).ToList();

                //home.TotalUnidadesCadastradas = (from cu in db.CondominoUnidades
                //                                 where cu.CondominioID == sessaoCorrente.empresaId
                //                                        && cu.DataFim == null
                //                                 select cu).Count();
                //home.TotalCondominos = (from cu in db.CondominoUnidades
                //                        join cre in db.Credenciados on cu.CondominoID equals cre.CondominoID
                //                        where cu.CondominioID == sessaoCorrente.empresaId
                //                                && cu.DataFim == null
                //                                && cre.IndVisitantePermanente != "S"
                //                        select cre).Count() + home.TotalUnidadesCadastradas; // total de credenciados diferentes de visitantes permanentes + total de titulares

                #region Informativo
                ListViewInformativo listViewInformativo = new ListViewInformativo(this.db, this.seguranca_db);

                string data1 = "01" + DateTime.Today.AddMonths(-1).ToString("/MM/yyyy");
                string data2 = Funcoes.Brasilia().Date.ToString("dd/MM/yyyy");

                home.Informativos = listViewInformativo.Bind(0, 6, Funcoes.StringToDate(data1).Value, Funcoes.StringToDate(data2).Value, SessaoLocal.GrupoCondominoID, SessaoLocal.Unidades);
                #endregion

                #region Condominos
                //ListViewCondominoUnidade listViewCondominos = new ListViewCondominoUnidade(this.db, this.seguranca_db);
                //home.Condominos = listViewCondominos.Bind(0, 10000, 0, 0, null).ToList();
                ListViewCondominos listViewCondominos = new ListViewCondominos(this.db, this.seguranca_db);
                home.Condominos = listViewCondominos.Bind(0, 10000, 0, 0, null).ToList();
                #endregion

                #region Credenciados
                ListViewCredenciados listViewCredenciados = new ListViewCredenciados(this.db, this.seguranca_db);
                home.Credenciados = listViewCredenciados.Bind(0, 10000, 0, 0, null).ToList();
                #endregion

                #region Visitantes
                ListViewVisitanteAcesso listViewAcessos = new ListViewVisitanteAcesso(this.db, this.seguranca_db);
                home.Acessos = listViewAcessos.getPagedList(0, 10000);
                #endregion

                #region Documentos p/ download
                DateTime _data1            = Funcoes.Brasilia().AddMonths(-3);
                DateTime _data2            = Funcoes.Brasilia().Date.AddDays(1).AddMinutes(-1);
                int?     _EdificacaoID     = 0;
                int?     _UnidadeID        = 0;
                int      _CondominoID      = 0;
                int      _GrupoCondominoID = 0;

                ListViewArquivoHome l = new ListViewArquivoHome(this.db, this.seguranca_db);
                if (SessaoLocal.CondominoID == 0)
                {
                    home.Documentos = l.getPagedList(0, 10, _data1, _data2, _EdificacaoID, _UnidadeID, _CondominoID, _GrupoCondominoID, "");
                }
                else
                {
                    home.Documentos = l.getPagedList(0, 10, _data1, _data2, _EdificacaoID, _UnidadeID, SessaoLocal.CondominoID, _GrupoCondominoID, "");
                }
                #endregion

                //IList<ChartJS> js = new List<ChartJS>();
                //foreach (BalanceteViewModel bal in home.DRE.Where(info => info.Natureza == "D"))
                //    js.Add(new ChartJS() { device = bal.descricao, geekbench = bal.SaldosContabeis.FirstOrDefault().ValorSaldo });

                //js.Add(new ChartJS() { device = "Taxa condominial", geekbench = 380 });
                //js.Add(new ChartJS() { device = "Taxa extra", geekbench = 180 });
                //js.Add(new ChartJS() { device = "Infração", geekbench = 980 });
                //js.Add(new ChartJS() { device = "Aluguel espaço", geekbench = 80 });
                //js.Add(new ChartJS() { device = "Fundo de reserva", geekbench = 280 });
                //js.Add(new ChartJS() { device = "Acordo judicial", geekbench = 780 });
                //js.Add(new ChartJS() { device = "Outros", geekbench = 880 });
                //js.Add(new ChartJS() { device = "Fundo de reserva", geekbench = 280 });
                //js.Add(new ChartJS() { device = "Acordo judicial", geekbench = 780 });
                //js.Add(new ChartJS() { device = "Outros", geekbench = 880 });

                //home.js = new JsonResult()
                //{
                //    Data = js.ToList(),
                //    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                //};
            }
            catch (Exception ex)
            {
                home.mensagem = new Validate()
                {
                    Code = 999, MessageBase = ex.Message, Message = "Ocorreu um erro na recuperação dos dados"
                };
            }

            return(home);
        }
        public CondominoEditViewModel Run(Repository value)
        {
            CondominoEditViewModel r      = (CondominoEditViewModel)value;
            CondominoEditViewModel result = new CondominoEditViewModel()
            {
                mensagem = new Validate()
                {
                    Code = 0, Message = "Registro processado com sucesso"
                }
            };

            try
            {
                int _empresaId = sessaoCorrente.empresaId;

                if (r.CondominoViewModel is CondominoPFViewModel)
                {
                    #region CondominoPF
                    CondominoPFModel condominoPFModel = new CondominoPFModel(this.db, this.seguranca_db);
                    result.CondominoViewModel = condominoPFModel.getObject((CondominoPFViewModel)r.CondominoViewModel);
                    if (result.CondominoViewModel == null)
                    {
                        result.CondominoViewModel = new CondominoPFViewModel()
                        {
                            mensagem = new Validate()
                        };

                        throw new App_DominioException("Acesso não permitido", "Error");
                    }
                    #endregion
                }
                else
                {
                    #region CondominoPJ
                    CondominoPJModel condominoPJModel = new CondominoPJModel(this.db, this.seguranca_db);
                    result.CondominoViewModel = condominoPJModel.getObject((CondominoPJViewModel)r.CondominoViewModel);
                    if (result.CondominoViewModel == null)
                    {
                        result.CondominoViewModel = new CondominoPJViewModel()
                        {
                            mensagem = new Validate()
                        };

                        throw new App_DominioException("Acesso não permitido", "Error");
                    }
                    #endregion
                }


                CredenciadoModel               CredenciadoModel;
                ListViewCredenciados           ListCredenciados;
                VeiculoModel                   VeiculoModel;
                ListViewVeiculos               ListVeiculos;
                FuncionarioModel               FuncionarioModel;
                ListViewFuncionarios           ListFuncionarios;
                ListViewGrupoCondominoUsuarios ListGrupoCondominoUsuarios;

                if (String.IsNullOrEmpty(value.sessionId))
                {
                    CredenciadoModel           = new CredenciadoModel(this.db, this.seguranca_db);
                    ListCredenciados           = new ListViewCredenciados(this.db, this.seguranca_db);
                    VeiculoModel               = new VeiculoModel(this.db, this.seguranca_db);
                    ListVeiculos               = new ListViewVeiculos(this.db, this.seguranca_db);
                    FuncionarioModel           = new FuncionarioModel(this.db, this.seguranca_db);
                    ListFuncionarios           = new ListViewFuncionarios(this.db, this.seguranca_db);
                    ListGrupoCondominoUsuarios = new ListViewGrupoCondominoUsuarios(this.db, this.seguranca_db);
                }
                else
                {
                    CredenciadoModel           = new CredenciadoModel(this.db, this.seguranca_db, value.sessionId);
                    ListCredenciados           = new ListViewCredenciados(this.db, this.seguranca_db, value.sessionId);
                    VeiculoModel               = new VeiculoModel(this.db, this.seguranca_db, value.sessionId);
                    ListVeiculos               = new ListViewVeiculos(this.db, this.seguranca_db, value.sessionId);
                    FuncionarioModel           = new FuncionarioModel(this.db, this.seguranca_db, value.sessionId);
                    ListFuncionarios           = new ListViewFuncionarios(this.db, this.seguranca_db, value.sessionId);
                    ListGrupoCondominoUsuarios = new ListViewGrupoCondominoUsuarios(this.db, this.seguranca_db, value.sessionId);
                }

                result.CredenciadoViewModel             = CredenciadoModel.CreateRepository();
                result.CredenciadoViewModel.CondominoID = result.CondominoViewModel.CondominoID;
                result.Credenciados = ListCredenciados.Bind(0, 50, result.CondominoViewModel.CondominoID);


                #region Veículos

                result.VeiculoViewModel = VeiculoModel.CreateRepository();
                result.VeiculoViewModel.CondominioID = sessaoCorrente.empresaId;
                result.VeiculoViewModel.EdificacaoID = r.UnidadeViewModel.EdificacaoID;
                result.VeiculoViewModel.UnidadeID    = r.UnidadeViewModel.UnidadeID;
                result.VeiculoViewModel.CondominoID  = result.CondominoViewModel.CondominoID;

                result.Veiculos = ListVeiculos.Bind(0, 50, result.VeiculoViewModel.CondominioID, result.VeiculoViewModel.EdificacaoID, result.VeiculoViewModel.UnidadeID, result.VeiculoViewModel.CondominoID);
                #endregion

                #region Funcionários
                result.FuncionarioViewModel = FuncionarioModel.CreateRepository();
                result.FuncionarioViewModel.CondominioID = sessaoCorrente.empresaId;
                result.FuncionarioViewModel.EdificacaoID = r.UnidadeViewModel.EdificacaoID;
                result.FuncionarioViewModel.UnidadeID    = r.UnidadeViewModel.UnidadeID;
                result.FuncionarioViewModel.CondominoID  = result.CondominoViewModel.CondominoID;

                result.Funcionarios = ListFuncionarios.Bind(0, 50, result.FuncionarioViewModel.CondominioID, result.FuncionarioViewModel.EdificacaoID, result.FuncionarioViewModel.UnidadeID, result.FuncionarioViewModel.CondominoID);
                #endregion

                #region Grupo de Condôminos

                result.GrupoCondominoUsuarios = ListGrupoCondominoUsuarios.Bind(0, 50, result.CondominoViewModel.CondominoID);
                #endregion

                #region Unidade
                result.UnidadeViewModel = new UnidadeViewModel()
                {
                    CondominioID        = _empresaId,
                    EdificacaoID        = r.UnidadeViewModel.EdificacaoID,
                    EdificacaoDescricao = r.UnidadeViewModel.EdificacaoID > 0 ? db.Edificacaos.Find(r.UnidadeViewModel.EdificacaoID).Descricao : "",
                    UnidadeID           = r.UnidadeViewModel.UnidadeID,
                    Codigo = db.Unidades.Find(_empresaId, r.UnidadeViewModel.EdificacaoID, r.UnidadeViewModel.UnidadeID).Codigo,
                };
                #endregion

                if (SessaoLocal.CondominoID > 0)
                {
                    #region Valida permissão do usuário para editar o condômino
                    if (r.CondominoViewModel.CondominoID != SessaoLocal.CondominoID)
                    {
                        throw new App_DominioException("Acesso não permitido", "Error");
                    }
                    bool flag = false;
                    foreach (Unidade unidade in SessaoLocal.Unidades)
                    {
                        if (r.UnidadeViewModel.UnidadeID == unidade.UnidadeID && r.UnidadeViewModel.EdificacaoID == unidade.EdificacaoID)
                        {
                            flag = true;
                        }
                    }
                    if (!flag)
                    {
                        throw new App_DominioException("Acesso não permitido", "Error");
                    }
                    #endregion
                }
            }
            catch (ArgumentException ex)
            {
                result.CondominoViewModel.mensagem = new Validate()
                {
                    Code = 999, Message = MensagemPadrao.Message(999).ToString(), MessageBase = ex.Message
                };
            }
            catch (App_DominioException ex)
            {
                result.CondominoViewModel.mensagem.Code = 999;

                if (ex.InnerException != null)
                {
                    result.CondominoViewModel.mensagem.MessageBase = new App_DominioException(ex.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                }
                else
                {
                    result.CondominoViewModel.mensagem.MessageBase = new App_DominioException(ex.Message, GetType().FullName).Message;
                }
            }
            catch (DbUpdateException ex)
            {
                result.CondominoViewModel.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message;
                if (result.CondominoViewModel.mensagem.MessageBase.ToUpper().Contains("REFERENCE"))
                {
                    if (result.CondominoViewModel.mensagem.MessageBase.ToUpper().Contains("DELETE"))
                    {
                        result.CondominoViewModel.mensagem.Code        = 16;
                        result.CondominoViewModel.mensagem.Message     = MensagemPadrao.Message(16).ToString();
                        result.CondominoViewModel.mensagem.MessageType = MsgType.ERROR;
                    }
                    else
                    {
                        result.CondominoViewModel.mensagem.Code        = 28;
                        result.CondominoViewModel.mensagem.Message     = MensagemPadrao.Message(28).ToString();
                        result.CondominoViewModel.mensagem.MessageType = MsgType.ERROR;
                    }
                }
                else if (result.CondominoViewModel.mensagem.MessageBase.ToUpper().Contains("PRIMARY"))
                {
                    result.CondominoViewModel.mensagem.Code        = 37;
                    result.CondominoViewModel.mensagem.Message     = MensagemPadrao.Message(37).ToString();
                    result.CondominoViewModel.mensagem.MessageType = MsgType.WARNING;
                }
                else if (result.CondominoViewModel.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY"))
                {
                    result.CondominoViewModel.mensagem.Code        = 54;
                    result.CondominoViewModel.mensagem.Message     = MensagemPadrao.Message(54).ToString();
                    result.CondominoViewModel.mensagem.MessageType = MsgType.WARNING;
                }
                else
                {
                    result.CondominoViewModel.mensagem.Code        = 44;
                    result.CondominoViewModel.mensagem.Message     = MensagemPadrao.Message(44).ToString();
                    result.CondominoViewModel.mensagem.MessageType = MsgType.ERROR;
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                result.CondominoViewModel.mensagem = new Validate()
                {
                    Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First()
                };
            }
            catch (Exception ex)
            {
                result.CondominoViewModel.mensagem.Code        = 17;
                result.CondominoViewModel.mensagem.Message     = MensagemPadrao.Message(17).ToString();
                result.CondominoViewModel.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                result.CondominoViewModel.mensagem.MessageType = MsgType.ERROR;
            }
            return(result);
        }
        public IEnumerable <CredenciadoViewModel> List(params object[] param)
        {
            ListViewCredenciados ListCredenciados = new ListViewCredenciados(this.db, this.seguranca_db);

            return(ListCredenciados.Bind(0, 50, param));
        }