// DETTACH DESPESA TO PROVISORIA
        //------------------------------------------------------------------------------------------------------------
        public void DettachDespesaToProvisoria(objDespesaProvisoria Provisorio, objDespesa Despesa)
        {
            AcessoDados db = null;

            try
            {
                db = new AcessoDados();
                db.BeginTransaction();

                //--- limpar parametros
                db.LimparParametros();
                db.AdicionarParametros("@IDProvisorio", Provisorio.IDProvisorio);
                db.AdicionarParametros("@IDDespesa", Despesa.IDDespesa);

                //--- execute insert tblDespesaProvisoriaRealizado
                string query = "DELETE tblDespesaProvisoriaRealizado " +
                               "WHERE IDProvisorio = @IDProvisorio AND IDDespesa = @IDDespesa";

                db.ExecutarManipulacao(CommandType.Text, query);

                //--- execute Update Desepesa Provisoria
                Provisorio.Concluida       = false;
                Provisorio.DevolucaoData   = null;
                Provisorio.ValorRealizado -= Despesa.DespesaValor;
                Provisorio.EndEdit();

                UpdateDespesaProvisoria(Provisorio, db);

                //--- commit
                db.CommitTransaction();
            }
            catch (SqlException ex)
            {
                db.RollBackTransaction();

                if (ex.Number == 2627)
                {
                    throw new AppException("Já existe um Vínculo criado entre a Despesa Provisória com a Despesa Escolhida...");
                }
                else
                {
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                db.RollBackTransaction();
                throw ex;
            }
        }
Exemplo n.º 2
0
        // ANEXAR DESPESA
        //------------------------------------------------------------------------------------------------------------
        private void btnAnexarDespesa_Click(object sender, EventArgs e)
        {
            var frm = new frmDespesaListagem(this);

            frm.ShowDialog();

            if (frm.DialogResult != DialogResult.OK)
            {
                return;
            }

            objDespesaComum newDesp = frm.propEscolha;

            if (VerificaDespesaAnexada(newDesp) == false)
            {
                return;
            }

            //--- save
            SaveAttachDespesa(newDesp);
            _provisoria.EndEdit();
            Sit = EnumFlagEstado.RegistroSalvo;
        }
        // ATTACH DESPESA TO PROVISORIA
        //------------------------------------------------------------------------------------------------------------
        public void AttachDespesaToProvisoria(objDespesaProvisoria Provisorio, objDespesa Despesa)
        {
            AcessoDados db = null;

            try
            {
                db = new AcessoDados();
                db.BeginTransaction();

                //--- limpar parametros
                db.LimparParametros();
                db.AdicionarParametros("@IDProvisorio", Provisorio.IDProvisorio);
                db.AdicionarParametros("@IDDespesa", Despesa.IDDespesa);

                //--- execute insert tblDespesaProvisoriaRealizado
                string query = "INSERT INTO tblDespesaProvisoriaRealizado " +
                               "(IDProvisorio, IDDespesa) " +
                               "VALUES (@IDProvisorio, @IDDespesa);";

                db.ExecutarManipulacao(CommandType.Text, query);

                //--- execute Update Desepesa Provisoria
                Provisorio.ValorRealizado = Provisorio.ValorRealizado == null ? Despesa.DespesaValor : Provisorio.ValorRealizado + Despesa.DespesaValor;
                Provisorio.EndEdit();

                UpdateDespesaProvisoria(Provisorio, db);

                //--- commit
                db.CommitTransaction();
            }
            catch (SqlException ex)
            {
                db.RollBackTransaction();

                if (ex.Number == 2627)
                {
                    throw new AppException("Já existe um Vínculo criado entre a Despesa Provisória com a Despesa Escolhida...");
                }
                else
                {
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                db.RollBackTransaction();
                throw ex;
            }
        }
        // REACTIVE DESPESA PROVISORIA
        //------------------------------------------------------------------------------------------------------------
        public void ReactiveProvisoria(objDespesaProvisoria Provisorio)
        {
            try
            {
                AcessoDados db = new AcessoDados();

                //--- execute Update Desepesa Provisoria
                Provisorio.Concluida     = false;
                Provisorio.DevolucaoData = null;
                Provisorio.EndEdit();

                UpdateDespesaProvisoria(Provisorio, db);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        // FINALIZE DESPESA PROVISORIA
        //------------------------------------------------------------------------------------------------------------
        public void FinalizeProvisoria(objDespesaProvisoria Provisorio)
        {
            try
            {
                AcessoDados db = new AcessoDados();

                //--- execute Update Desepesa Provisoria
                Provisorio.Concluida     = true;
                Provisorio.DevolucaoData = DateTime.Today;
                Provisorio.EndEdit();

                UpdateDespesaProvisoria(Provisorio, db);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }