예제 #1
0
        public Condominio Get(int Id)
        {
            var condominioRepositorio = new CondominioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();
            var enderecoRepositorio = new EnderecoRepositorio();
            var contatoRepositorio = new ContatoRepositorio();
            var administradoraRepositorio = new AdministradoraRepositorio();

            if (!Account.Current.Permissao.Has("UPDATE_CONDOMINIO"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            var condominio = condominioRepositorio.Simple(Id);
            condominio.Unidade = unidadeRepositorio.Fetch(condominio.UnidadeId);
            condominio.Endereco = enderecoRepositorio.Fetch(condominio.EnderecoId);
            condominio.Sindico = contatoRepositorio.Fetch(condominio.SindicoId);
            condominio.Zelador = contatoRepositorio.Fetch(condominio.ZeladorId);
            condominio.Administradora = administradoraRepositorio.Simple(condominio.AdministradoraId).Get();

            if (!condominio.Unidade.IsInTreeView())
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            return condominio;
        }
예제 #2
0
        public bool Add(ref Receita receita)
        {
            if (!Account.Current.Permissao.Has("ADD_RECEITA"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidade.Tipo != UnidadeTipo.ZAP) {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            var receitaRepositorio = new ReceitaRepositorio();
            var receitaCurrent = receitaRepositorio.Fetch(receita.Mes, receita.Ano, receita.Unidade.Id);

            if (receitaCurrent.Id == 0)
            {
                receitaRepositorio.Add(receita);
            }
            else {
                foreach (var item in receita.Items)
                {
                    receitaCurrent.Items.Add(item);
                }

                receita = receitaCurrent;
                this.Update(receitaCurrent);
            }

            return true;
        }
예제 #3
0
        public List<Unidade> Search(string nome, UnidadeTipo tipo)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            return unidadeRepositorio.Search(nome, unidade, tipo);
        }
예제 #4
0
        public List<Condominio> Imprimir(string ids)
        {
            var condominioRepositorio = new CondominioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();
            var enderecoRepositorio = new EnderecoRepositorio();
            var contatoRepositorio = new ContatoRepositorio();
            var administradoraRepositorio = new AdministradoraRepositorio();

            var list = ids.Split(',');
            var intList = new List<int>();

            foreach (var item in list)
            {
                intList.Add(int.Parse(item));
            }

            var condominios = condominioRepositorio.Simple(intList);
            foreach (var condominio in condominios)
            {
                condominio.Unidade = unidadeRepositorio.Fetch(condominio.UnidadeId);
                condominio.Endereco = enderecoRepositorio.Fetch(condominio.EnderecoId);
                condominio.Sindico = contatoRepositorio.Fetch(condominio.SindicoId);
                condominio.Zelador = contatoRepositorio.Fetch(condominio.ZeladorId);
                condominio.Administradora = administradoraRepositorio.Simple(condominio.AdministradoraId).Get();
            }

            return condominios;
        }
예제 #5
0
        public List<UnidadeCentroCustos> RelatorioByCentral(int centralId, int mes, int ano)
        {
            var despesaRelatorioRepositorio = new DespesaRelatorioRepositorio();

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidadeSelecionada = unidadeRepositorio.Fetch(centralId);

            if (unidadeSelecionada == null)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            if (unidadeSelecionada.Id != Account.Current.Usuario.Unidade.Id &&
                !unidadeSelecionada.IsChildren(Account.Current.Usuario.Unidade.Id) &&
                unidadeSelecionada.Tipo != UnidadeTipo.ZAP)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            var unidadesFilhas = unidadeRepositorio.GetUnidadesFilhas(unidadeSelecionada);
            var unidadeCentroCustos = new List<UnidadeCentroCustos>();

            foreach (var filha in unidadesFilhas)
            {
                unidadeCentroCustos.Add(new UnidadeCentroCustos()
                {
                    Unidade = filha,
                    CentroCustos = despesaRelatorioRepositorio.Relatorio(filha.Id, mes, ano)
                });
            }

            return unidadeCentroCustos;
        }
예제 #6
0
        public List<UnidadeCentroCustos> RelatorioByZap(int mes, int ano)
        {
            var despesaRelatorioRepositorio = new DespesaRelatorioRepositorio();

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidade.Tipo != UnidadeTipo.ZAP)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            var centrais = unidadeRepositorio.FetchCentrais();
            var unidadeCentroCustos = new List<UnidadeCentroCustos>();

            foreach (var central in centrais)
            {
                unidadeCentroCustos.Add(new UnidadeCentroCustos()
                {
                    Unidade = central,
                    CentroCustos = despesaRelatorioRepositorio.DespesaUnidadesByCentral(central, mes, ano)
                });
            }

            return unidadeCentroCustos;
        }
예제 #7
0
        public bool Autorizar(Despesa despesa)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidade.Tipo != UnidadeTipo.ZAP) {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            var despesaRepositorio = new DespesaRepositorio();
            despesa.Status = DespesaStatus.AUTORIZADA;
            despesaRepositorio.Update(despesa);

            var despesaHistoricoRepositorio = new DespesaHistoricoRepositorio();
            var historico = new DespesaHistorico()
            {
                Data = DateTime.Now,
                Descricao = "Autorizada por " + Account.Current.Usuario.Nome,
                Usuario = Account.Current.Usuario,
                Despesa = despesa
            };

            despesaHistoricoRepositorio.Add(historico);
            despesa.Historicos = despesaHistoricoRepositorio.Fetch(despesa);

            return true;
        }
예제 #8
0
        public List<Usuario> All(int unidadeId)
        {
            var usuarioRepositorio = new UsuarioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(unidadeId);

            return usuarioRepositorio.FetchUsuariosByUnidade(unidade, true);
        }
예제 #9
0
        public List<Usuario> Search(string nome)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var usuarioRepositorio = new UsuarioRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            return usuarioRepositorio.Fetch(nome, unidade);
        }
예제 #10
0
        public List<Receita> All(int unidadeId)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidade.Tipo != UnidadeTipo.ZAP)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            unidade = unidadeRepositorio.Fetch(unidadeId);

            var receitaRepositorio = new ReceitaRepositorio();

            return receitaRepositorio.FetchAll(unidade);
        }
예제 #11
0
        public decimal? TotalPorCentral(int centralId, int mes, int ano)
        {
            var receitaRepositorio = new ReceitaRelatorioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();

            var central = unidadeRepositorio.Fetch(centralId);
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            //if (unidade.Tipo == UnidadeTipo.COS)
            //{
            //    this.MessageError = "USUARIO_SEM_PERMISSAO";
            //    return null;
            //}

            if(centralId != unidade.Id && !central.IsChildren(unidade.Id)) {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            return receitaRepositorio.TotalPorUnidade(central, mes, ano);
        }
예제 #12
0
        public Usuario Fetch(int usuarioId)
        {
            var sql = PetaPoco.Sql.Builder.Append("SELECT *")
                                          .Append("FROM Usuario")
                                          .Append("WHERE Usuario.Id = @0", usuarioId);

            var usuario = this.Db.SingleOrDefault<Usuario>(sql);

            var unidadeRepositorio = new UnidadeRepositorio();
            usuario.Unidade = unidadeRepositorio.Fetch(usuario.UnidadeId);

            return usuario;
        }
예제 #13
0
        public Unidade Get(int Id)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var usuarioRepositorio = new UsuarioRepositorio();

            var unidade = unidadeRepositorio.Fetch(Id);
            var unidadeUsuario = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (!unidadeRepositorio.IsUnidadeFilha(unidadeUsuario, unidade) && unidade.Id != unidadeUsuario.Id)
            {
                return null;
            }

            unidade.Usuarios = usuarioRepositorio.FetchUsuariosByUnidade(unidade, false);
            unidade.Unidades = unidadeRepositorio.FetchUnidadesFilhas(unidade);

            var cidadeRepositorio = new CidadeRepositorio();

            unidade.Cidade = cidadeRepositorio.Fetch(unidade.CidadeId);
            unidade.Anexos = unidadeRepositorio.FetchArquivos(unidade);

            return unidade;
        }
예제 #14
0
        public List<Agenda> Search(DateTime start, DateTime end, int unidadeId)
        {
            var agendaRepositorio = new AgendaRepositorio();
            var agendas = new List<Agenda>();

            var unidadeRepositorio = new UnidadeRepositorio();
            Unidade unidade = null;

            if (Account.Current.Usuario.Unidade.Tipo == UnidadeTipo.ZAP)
            {
                unidade = unidadeRepositorio.Fetch(unidadeId);
            }
            else
            {
                unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);
            }

            var historicoRepositorio = new HistoricoRepositorio();
            var historicos = historicoRepositorio.Search(start, end, unidade);
            if (unidade.Tipo == UnidadeTipo.CENTRAL || unidade.Tipo == UnidadeTipo.ZAP)
            {
                foreach (var h in historicos)
                {
                    agendas.Add(new Agenda()
                    {
                        Id = h.Id,
                        Data = h.ProximoContato,
                        Url = "#Condominio/Editar/" + h.Condominio.Id + "/Historico?id=" + h.Id,
                        Descricao = h.Condominio.Nome,
                        Tipo = AgendaTipo.HISTORICO
                    });
                }
            }

            return agendas;
        }
예제 #15
0
        public bool Add(Despesa despesa)
        {
            if (!Account.Current.Permissao.Has("ADD_DESPESA"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            if (despesa.Fornecedor == null || despesa.Anexos == null || despesa.Items == null || despesa.Unidade == null ||
                despesa.Usuario == null)
            {
                return false;
            }

            if (despesa.Anexos.Count == 0 || despesa.Items.Count == 0)
            {
                return false;
            }
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidadeCurrent = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidadeCurrent.Tipo == UnidadeTipo.ZAP) {
                despesa.Status = DespesaStatus.AUTORIZADA;
            }

            var despesaRepositorio = new DespesaRepositorio();
            despesaRepositorio.Add(despesa);
            despesaRepositorio.UpdateItems(despesa);
            despesaRepositorio.UpdateAnexos(despesa);

            var historico = new DespesaHistorico()
            {
                Data = DateTime.Now,
                Descricao = "Adicionada por " + Account.Current.Usuario.Nome,
                Usuario = Account.Current.Usuario,
                Despesa = despesa
            };

            var despesaHistoricoRepositorio = new DespesaHistoricoRepositorio();
            despesaHistoricoRepositorio.Add(historico);

            //bug: loop historico <-> despesa
            historico.Despesa = null;
            despesa.Historicos = new List<DespesaHistorico>();
            despesa.Historicos.Add(historico);

            return true;
        }
        public string RelatorioUnidade(int unidadeId, int mes, int ano)
        {
            var despesaRules = new DespesaRelatorioRules();
            var relatorio = despesaRules.RelatorioByUnidade(unidadeId, mes, ano);

            if (relatorio == null)
            {
                return Error(despesaRules.MessageError);
            }

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(unidadeId);

            return Success(new
            {
                Unidade = unidade,
                Dados = relatorio
            });
        }
예제 #17
0
        public Receita Get(int Id)
        {
            if (!Account.Current.Permissao.Has("UPDATE_RECEITA"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidade.Tipo != UnidadeTipo.ZAP)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            var receitaRepositorio = new ReceitaRepositorio();

            return receitaRepositorio.Fetch(Id);
        }
예제 #18
0
        public List<DespesaCentroCusto> RelatorioByUnidade(int unidadeId, int mes, int ano)
        {
            var despesaRelatorioRepositorio = new DespesaRelatorioRepositorio();

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidadeSelecionada = unidadeRepositorio.Fetch(unidadeId);

            if (unidadeSelecionada == null) {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            if (unidadeSelecionada.Id != Account.Current.Usuario.Unidade.Id &&
                !unidadeSelecionada.IsChildren(Account.Current.Usuario.Unidade.Id) &&
                unidadeSelecionada.Tipo != UnidadeTipo.ZAP)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            return despesaRelatorioRepositorio.Relatorio(unidadeId, mes, ano);
        }
예제 #19
0
        public decimal? TotalPorUnidade(int unidadeId, int mes, int ano)
        {
            var receitaRepositorio = new ReceitaRelatorioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();

            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            //if (unidade.Id != unidadeId)
            //{
            //    this.MessageError = "USUARIO_SEM_PERMISSAO";
            //    return null;
            //}

            if (!unidade.IsParent(unidadeId))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            unidade = unidadeRepositorio.Fetch(unidadeId);

            return receitaRepositorio.TotalPorUnidade(unidade, mes, ano);
        }
예제 #20
0
        public decimal? TotalPorZap(int mes, int ano)
        {
            var receitaRepositorio = new ReceitaRelatorioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (!Account.Current.Permissao.Has("UPDATE_RECEITA"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            return receitaRepositorio.TotalPorUnidade(unidade, mes, ano);
        }
예제 #21
0
        public bool IsInTreeView()
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidade.Tipo == UnidadeTipo.ZAP) return true;
            if (unidade.Id == Id) return true;
            if (this.IsChildren(Account.Current.Usuario.Unidade.Id)) return true;

            return false;
        }
예제 #22
0
        public Despesa Get(int Id)
        {
            var despesaRepositorio = new DespesaRepositorio();

            if (!Account.Current.Permissao.Has("UPDATE_DESPESA"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            var despesa = despesaRepositorio.Fetch(Id);
            if (despesa.Unidade.Id != unidade.Id &&
                !despesa.Unidade.IsChildren(Account.Current.Usuario.Unidade.Id) &&
                unidade.Tipo != UnidadeTipo.ZAP)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return null;
            }

            return despesa;
        }
예제 #23
0
        public bool NaoPagar(Despesa despesa)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (Account.Current.Usuario.Unidade.Id == unidade.GetUnidadeIdPai())
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            var despesaRepositorio = new DespesaRepositorio();
            despesa.Status = DespesaStatus.NAO_PAGA;
            despesaRepositorio.Update(despesa);

            var despesaHistoricoRepositorio = new DespesaHistoricoRepositorio();
            var historico = new DespesaHistorico()
            {
                Data = DateTime.Now,
                Descricao = "Não Pago por " + Account.Current.Usuario.Nome + "<br/>" + despesa.Justificativa,
                Usuario = Account.Current.Usuario,
                Despesa = despesa
            };

            despesaHistoricoRepositorio.Add(historico);
            despesa.Historicos = despesaHistoricoRepositorio.Fetch(despesa);

            var unidadeDespesa = unidadeRepositorio.Fetch(despesa.UnidadeId);
            var notificacaoRules = new NotificacaoRules();
            notificacaoRules.SendToUnidade(new Notificacao()
            {
                Data = DateTime.Now,
                De = Account.Current.Usuario,
                Message = "Negado pedido de pagamento",
                Icon = "fa fa-thumbs-o-down",
                Href = "Despesa/Editar/" + despesa.Id
            }, unidadeDespesa.Id);

            return true;
        }
예제 #24
0
        public bool Pagar(Despesa despesa)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (Account.Current.Usuario.Unidade.Id == unidade.GetUnidadeIdPai()) {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            var despesaRepositorio = new DespesaRepositorio();
            despesa.Status = DespesaStatus.PAGA;
            despesaRepositorio.Update(despesa);

            var despesaHistoricoRepositorio = new DespesaHistoricoRepositorio();
            var historico = new DespesaHistorico()
            {
                Data = DateTime.Now,
                Descricao = "Pago por " + Account.Current.Usuario.Nome,
                Usuario = Account.Current.Usuario,
                Despesa = despesa
            };

            despesaHistoricoRepositorio.Add(historico);
            despesa.Historicos = despesaHistoricoRepositorio.Fetch(despesa);

            var notificacaoRules = new NotificacaoRules();
            notificacaoRules.SendToUnidade(new Notificacao()
            {
                Data = DateTime.Now,
                De = Account.Current.Usuario,
                Message = "Solicitação de autorização",
                Icon = "fa fa-money",
                Href = "Despesa/Editar/" + despesa.Id
            }, unidade.GetUnidadeIdPai());

            return true;
        }
예제 #25
0
        public List<Condominio> Search(CondominioSearch param)
        {
            var condominioRepositorio = new CondominioRepositorio();
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            return condominioRepositorio.Search(param, unidade);
        }
예제 #26
0
        public List<Despesa> Pesquisar(DespesaPesquisa parametroPesquisa, Paging paging)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var despesaRepositorio = new DespesaRepositorio();

            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            return despesaRepositorio.Fetch(parametroPesquisa, unidade, paging);
        }
예제 #27
0
        public bool Remeter(Despesa despesa)
        {
            var despesaRepositorio = new DespesaRepositorio();

            if (despesa.Id != 0)
            {
                var despesaOld = despesaRepositorio.Fetch(despesa.Id);

                if (despesaOld.Status != DespesaStatus.ABERTA && despesaOld.Status != DespesaStatus.NAO_PAGA)
                {
                    this.MessageError = "DESPESA_REMETIDA";
                    return false;
                }
            }

            despesa.Status = DespesaStatus.REMETIDA;

            //adiciona se for nova
            if (despesa.Id == 0)
            {
                this.Add(despesa);
            }
            else {
                this.Update(despesa);
            }

            var historico = new DespesaHistorico()
            {
                Data = DateTime.Now,
                Descricao = "Remetida por " + Account.Current.Usuario.Nome,
                Usuario = Account.Current.Usuario,
                Despesa = despesa
            };

            var despesaHistoricoRepositorio = new DespesaHistoricoRepositorio();

            despesaHistoricoRepositorio.Add(historico);
            despesa.Historicos = despesaHistoricoRepositorio.Fetch(despesa);

            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            var notificacaoRules = new NotificacaoRules();
            notificacaoRules.SendToUnidade(new Notificacao()
            {
                Data = DateTime.Now,
                De = Account.Current.Usuario,
                Message = "Solicitação de pagamento",
                Icon = "fa fa-money",
                Href = "Despesa/Editar/" + despesa.Id
            }, unidade.GetUnidadeIdPai());

            return true;
        }
예제 #28
0
        public bool Update(Condominio condominio)
        {
            var condominioRepositorio = new CondominioRepositorio();
            var enderecoRepositorio = new EnderecoRepositorio();
            var contatoRepositorio = new ContatoRepositorio();

            if (!Account.Current.Permissao.Has("UPDATE_CONDOMINIO"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            var currentCondominio = condominioRepositorio.Simple(condominio.Id);
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(currentCondominio.UnidadeId);

            if (!unidade.IsInTreeView())
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            contatoRepositorio.Update(condominio.Sindico);
            contatoRepositorio.Update(condominio.Zelador);
            enderecoRepositorio.Update(condominio.Endereco);

            condominioRepositorio.Update(condominio);

            return true;
        }
예제 #29
0
        public bool Update(Despesa despesa)
        {
            if (!Account.Current.Permissao.Has("UPDATE_DESPESA"))
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            if (despesa.Fornecedor == null || despesa.Anexos == null || despesa.Items == null || despesa.Unidade == null ||
                despesa.Usuario == null)
            {
                return false;
            }

            if (despesa.Anexos.Count == 0 || despesa.Items.Count == 0)
            {
                return false;
            }

            var despesaRepositorio = new DespesaRepositorio();
            var despesaOld = despesaRepositorio.Fetch(despesa.Id);
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidadeCurrent = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if ((despesaOld.Status == DespesaStatus.ABERTA) ||
                (despesaOld.Status == DespesaStatus.NAO_PAGA) ||
                ((despesaOld.Status == DespesaStatus.REMETIDA || despesa.Status == DespesaStatus.NAO_AUTORIZADA) && unidadeCurrent.Id == despesa.Unidade.GetUnidadeIdPai()) ||
                (unidadeCurrent.Tipo == UnidadeTipo.ZAP))
            {
                despesaRepositorio.UpdateItems(despesa);
            }

            despesaRepositorio.Update(despesa);
            despesaRepositorio.UpdateAnexos(despesa);

            var historico = new DespesaHistorico()
            {
                Data = DateTime.Now,
                Descricao = "Atualizada por " + Account.Current.Usuario.Nome,
                Usuario = Account.Current.Usuario,
                Despesa = despesa
            };

            var despesaHistoricoRepositorio = new DespesaHistoricoRepositorio();
            despesaHistoricoRepositorio.Add(historico);

            despesa.Historicos = despesaHistoricoRepositorio.Fetch(despesa);

            return true;
        }
예제 #30
0
        public bool Delete(Despesa despesa)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            if (unidade.Tipo != UnidadeTipo.ZAP)
            {
                this.MessageError = "USUARIO_SEM_PERMISSAO";
                return false;
            }

            var despesaRepositorio = new DespesaRepositorio();
            despesaRepositorio.Delete(despesa);

            return true;
        }