Ejemplo n.º 1
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;
        }
Ejemplo n.º 2
0
        public void Add(Despesa despesa)
        {
            despesa.FornecedorId = despesa.Fornecedor.Id;
            despesa.UnidadeId = despesa.Unidade.Id;
            despesa.UsuarioId = despesa.Usuario.Id;

            this.Db.Insert(despesa);
        }
        public List<DespesaHistorico> Fetch(Despesa despesa)
        {
            var sql = PetaPoco.Sql.Builder.Append("SELECT DespesaHistorico.*")
                                          .Append("FROM DespesaHistorico")
                                          .Append("WHERE DespesaHistorico.DespesaId = @0", despesa.Id);

            return this.Db.Fetch<DespesaHistorico>(sql).ToList();
        }
Ejemplo n.º 4
0
        public string Add(Despesa despesa)
        {
            var despesaRules = new DespesaRules();

            if (!despesaRules.Add(despesa)) {
                return Error(despesaRules.MessageError);
            }

            return Success(despesa);
        }
Ejemplo n.º 5
0
        public string NaoAutorizar(Despesa despesa)
        {
            var despesaRules = new DespesaRules();

            if (!despesaRules.NaoAutorizar(despesa))
            {
                return Error(despesaRules.MessageError);
            }

            return Success(despesa);
        }
Ejemplo n.º 6
0
        public void Delete(Despesa despesa)
        {
            this.Db.Execute("DELETE FROM Despesa WHERE Despesa.Id = @0", despesa.Id);
            this.Db.Execute("DELETE FROM DespesaAnexo WHERE DespesaAnexo.DespesaId = @0", despesa.Id);
            this.Db.Execute("DELETE FROM DespesaHistorico WHERE DespesaHistorico.DespesaId = @0", despesa.Id);

            this.Db.Execute(PetaPoco.Sql.Builder.Append("DELETE DespesaItem, FinanceiroItem")
                                                .Append("FROM DespesaItem")
                                                .Append("INNER JOIN FinanceiroItem ON FinanceiroItem.Id = DespesaItem.ItemId")
                                                .Append("WHERE DespesaItem.DespesaId = @0", despesa.Id));
        }
Ejemplo n.º 7
0
        public string Excluir(Despesa despesa)
        {
            var despesaRules = new DespesaRules();

            if (!despesaRules.Delete(despesa))
            {
                return Error(despesaRules.MessageError);
            }

            return Success(despesa);
        }
Ejemplo n.º 8
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;
        }
Ejemplo n.º 9
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;
        }
Ejemplo n.º 10
0
        public void UpdateTotal(Despesa despesa)
        {
            despesa.Total = 0;

            for (int i = 0; i < despesa.Items.Count; i++)
            {
                despesa.Total += despesa.Items[i].Qtde * despesa.Items[i].Valor;
            }

            this.Db.Update("Despesa", "Id", new
            {
                Total = despesa.Total,
                Id = despesa.Id
            });
        }
Ejemplo n.º 11
0
        public void UpdateItems(Despesa despesa)
        {
            this.UpdateTotal(despesa);

            this.Db.Execute("DELETE DespesaItem, FinanceiroItem FROM DespesaItem INNER JOIN FinanceiroItem ON FinanceiroItem.Id = DespesaItem.ItemId WHERE DespesaItem.DespesaId = @0", despesa.Id);

            var financeiroItemRepositorio = new FinanceiroItemRepositorio();
            financeiroItemRepositorio.Add(despesa.Items);

            foreach (var item in despesa.Items)
            {
                this.Db.Insert("DespesaItem", "Id", new
                {
                    DespesaId = despesa.Id,
                    ItemId = item.Id
                });
            }
        }
Ejemplo n.º 12
0
        public void UpdateAnexos(Despesa despesa)
        {
            this.Db.Execute("DELETE FROM DespesaAnexo WHERE DespesaId = @0", despesa.Id);

            foreach (var anexo in despesa.Anexos)
            {
                this.Db.Insert("DespesaAnexo", "Id", new
                {
                    DespesaId = despesa.Id,
                    AnexoId = anexo.Id
                });
            }
        }
Ejemplo n.º 13
0
        public void Update(Despesa despesa)
        {
            despesa.FornecedorId = despesa.Fornecedor.Id;
            despesa.UnidadeId = despesa.Unidade.Id;
            despesa.UsuarioId = despesa.Usuario.Id;

            this.Db.Update(despesa);
        }
Ejemplo n.º 14
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;
        }
Ejemplo n.º 15
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;
        }
Ejemplo n.º 16
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;
        }
Ejemplo n.º 17
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;
        }