コード例 #1
0
ファイル: DespesaRules.cs プロジェクト: AguiaSoftware/zapweb
        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;
        }
コード例 #2
0
ファイル: DespesaRules.cs プロジェクト: AguiaSoftware/zapweb
        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;
        }