// GET LIST APAGAR OF CARTAO CREDITO
        //------------------------------------------------------------------------------------------------------------
        public List <objAPagar> ListAPagarCartaoVinculadas(long IDDespesaCartao, object dbTran = null)
        {
            try
            {
                AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran;

                string query = "SELECT * FROM qryDespesaCartaoAPagar WHERE IDDespesaCartao = @IDDespesaCartao";

                // add params
                db.LimparParametros();
                db.AdicionarParametros("@IDDespesaCartao", IDDespesaCartao);

                DataTable dt = db.ExecutarConsulta(CommandType.Text, query);

                var list = new List <objAPagar>();

                if (dt.Rows.Count == 0)
                {
                    return(list);
                }

                var pBLL = new APagarBLL();

                foreach (DataRow row in dt.Rows)
                {
                    list.Add(pBLL.ConvertRowInClass(row));
                }

                return(list);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        // GET LIST APAGAR OF CARTAO CREDITO
        //------------------------------------------------------------------------------------------------------------
        public List <objAPagar> ListAPagarCartaoEmAberto(int IDCartaoCredito)
        {
            try
            {
                AcessoDados db = new AcessoDados();

                string query = "SELECT * FROM qryAPagar WHERE IDCartaoCredito = @IDCartaoCredito AND IDSituacao = 1";

                // add params
                db.LimparParametros();
                db.AdicionarParametros("@IDCartaoCredito", IDCartaoCredito);

                DataTable dt = db.ExecutarConsulta(CommandType.Text, query);

                if (dt.Rows.Count == 0)
                {
                    return(null);
                }

                var pBLL = new APagarBLL();
                var list = new List <objAPagar>();

                foreach (DataRow row in dt.Rows)
                {
                    list.Add(pBLL.ConvertRowInClass(row));
                }

                return(list);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        // VERIFY DESPESA BEFORE DELETE
        //------------------------------------------------------------------------------------------------------------
        public bool VerifyBeforeDelete(objDespesaCartao despesa,
                                       ref List <objAPagar> listAPagar,
                                       ref List <objMovimentacao> listMovSaidas,
                                       AcessoDados dbTran)
        {
            try
            {
                long IDDespesa = (long)despesa.IDDespesa;

                // VERIFY IMAGEM
                //------------------------------------------------------------------------------------------------------------
                if (despesa.Imagem != null && !string.IsNullOrEmpty(despesa.Imagem.ImagemFileName))
                {
                    throw new AppException("A despesa não pode ser excluída pois possui uma imagem vinculada a ela...");
                }

                // GET APAGAR
                //------------------------------------------------------------------------------------------------------------
                listAPagar = new APagarBLL().GetListAPagarByDespesa(IDDespesa, dbTran);

                // VERIFY APAGAR
                //------------------------------------------------------------------------------------------------------------
                bool   err        = false;
                string errMessage = "Os a PAGAR abaixo possuem pagamentos...\n";

                Action <objAPagar> addMessage = (pagar) =>
                {
                    errMessage += $"Reg.: {pagar.IDAPagar:D4}    {pagar.Vencimento.ToShortDateString()}\n";
                    err         = true;
                };

                listAPagar.Where(x => x.IDSituacao == 2).ToList().ForEach(addMessage);

                if (err == true)
                {
                    errMessage += "Favor estornar antes os pagamentos se deseja EXCLUIR a despesa.";
                    throw new AppException(errMessage);
                }

                // VERIFY APAGAR IMAGES
                //------------------------------------------------------------------------------------------------------------
                errMessage = "Os APagar abaixo possuem IMAGEM associada\n";

                listAPagar.Where(x => x.Imagem != null && !string.IsNullOrEmpty(x.Imagem.ImagemFileName)).ToList().ForEach(addMessage);

                if (err == true)
                {
                    errMessage += "Favor remover/desassociar as imagens do APagar se deseja EXCLUIR a despesa.";
                    throw new AppException(errMessage);
                }

                // VERIFY MOVIMENTACAO SAIDA FROM APAGAR
                //------------------------------------------------------------------------------------------------------------
                MovimentacaoBLL mBLL = new MovimentacaoBLL();
                listMovSaidas = new List <objMovimentacao>();

                if (listAPagar.Count > 0)
                {
                    foreach (objAPagar pagar in listAPagar)
                    {
                        listMovSaidas.AddRange(mBLL.GetMovimentacaoListByOrigem(EnumMovOrigem.APagar, (long)pagar.IDAPagar, true, dbTran));
                    }
                }

                // VERIFY RECEBIMENTOS WITH CAIXA OR BLOCKED
                //------------------------------------------------------------------------------------------------------------
                errMessage = "Essa Despesa possui pagamentos que foram inseridas no caixa...\n";

                Action <objMovimentacao> addMessageMov = (saida) =>
                {
                    errMessage += $"Reg.: {saida.IDMovimentacao:D4} | {saida.MovData.ToShortDateString()} | Caixa: {saida.IDCaixa:D4}\n";
                    err         = true;
                };

                listMovSaidas.Where(x => x.IDCaixa != null).ToList().ForEach(addMessageMov);

                if (err == true)
                {
                    errMessage += "Favor remover o(s) caixa(s) se desejar EXCLUIR a(s) DESPESA.";
                    throw new AppException(errMessage);
                }

                // VERIFY MOVIMENTACAO SAIDA IMAGES
                //------------------------------------------------------------------------------------------------------------
                errMessage = "As Saídas abaixo possuem IMEGEM associada\n";

                listMovSaidas.Where(x => x.Imagem != null && !string.IsNullOrEmpty(x.Imagem.ImagemFileName)).ToList().ForEach(addMessageMov);

                if (err == true)
                {
                    errMessage += "Favor remover/desassociar as imagens das Saídas se deseja EXCLUIR a despesa.";
                    throw new AppException(errMessage);
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        // DELETE
        //------------------------------------------------------------------------------------------------------------
        public bool DeleteDespesaCartao(objDespesaCartao despesa)
        {
            AcessoDados dbTran = null;

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

                // 1 - CHECK APagar and Movimentacao Saida
                //------------------------------------------------------------------------------------------------------------
                List <objAPagar>       listAPagar    = new List <objAPagar>();
                List <objMovimentacao> listMovSaidas = new List <objMovimentacao>();

                if (!VerifyBeforeDelete(despesa, ref listAPagar, ref listMovSaidas, dbTran))
                {
                    return(false);
                }

                // 2 - Return with all APAGAR vinculadas --> convert all to EM ABERTO
                //------------------------------------------------------------------------------------------------------------
                var ListVinculadas = ListAPagarCartaoVinculadas((long)despesa.IDDespesa, dbTran);

                foreach (var pag in ListVinculadas)
                {
                    RemoverVinculoAPagarItem((long)pag.IDAPagar, dbTran);
                }

                // 3 - delete ALL APAGAR
                //------------------------------------------------------------------------------------------------------------
                if (listAPagar.Count > 0)
                {
                    APagarBLL pBLL = new APagarBLL();

                    foreach (objAPagar pagar in listAPagar)
                    {
                        pBLL.DeleteAPagar(pagar, dbTran);
                    }
                }

                // 4 - delete DESPESA CARTAO
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                string query = "DELETE tblDespesaCartao WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 5 - delete DESPESA
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesa WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 6 - COMMIT AND RETURN
                //------------------------------------------------------------------------------------------------------------
                dbTran.CommitTransaction();
                return(true);
            }
            catch (AppException ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
            catch (Exception ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
        }
        // DELETE
        //------------------------------------------------------------------------------------------------------------
        public bool DeleteDespesaPeriodica(objDespesaPeriodica periodica)
        {
            AcessoDados dbTran = null;

            //--- get despesa from periodica
            objDespesaComum despesa = new objDespesaComum(periodica.IDDespesa)
            {
                DespesaDescricao = periodica.DespesaDescricao,
                DespesaOrigem    = periodica.DespesaOrigem,
                DespesaValor     = periodica.DespesaValor,
                DespesaData      = periodica.DespesaData,
                IDCredor         = periodica.IDCredor,
                IDSetor          = periodica.IDSetor,
                IDDespesaTipo    = periodica.IDDespesaTipo,
            };

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

                // 1 - CHECK APagar and Movimentacao Saida
                //------------------------------------------------------------------------------------------------------------
                List <objAPagar>       listAPagar    = new List <objAPagar>();
                List <objMovimentacao> listMovSaidas = new List <objMovimentacao>();

                DespesaComumBLL dBLL = new DespesaComumBLL();

                if (!dBLL.VerifyBeforeDelete(despesa, ref listAPagar, ref listMovSaidas, dbTran))
                {
                    return(false);
                }

                // 2 - delete ALL APAGAR
                //------------------------------------------------------------------------------------------------------------
                if (listAPagar.Count > 0)
                {
                    APagarBLL pBLL = new APagarBLL();

                    foreach (objAPagar pagar in listAPagar)
                    {
                        pBLL.DeleteAPagar(pagar, dbTran);
                    }
                }

                // 3 - delete DESPESA COMUM
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                string query = "DELETE tblDespesaPeriodica WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 4 - delete DESPESA DATA PERIODO
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesaDataPeriodo WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 5 - delete DESPESA
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesa WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 7 - COMMIT AND RETURN
                //------------------------------------------------------------------------------------------------------------
                dbTran.CommitTransaction();
                return(true);
            }
            catch (AppException ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
            catch (Exception ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
        }
Пример #6
0
        // VERIFY DESPESA SITUACAO BY LIST OF APAGAR
        //------------------------------------------------------------------------------------------------------------
        public bool CheckSituacaoDespesa(objDespesaComum despesa)
        {
            // return TRUE when IDSitucao is Changed | FALSE when nothing changed
            try
            {
                var dbTran = new AcessoDados();

                var lstAPagar = new APagarBLL().GetListAPagarByDespesa((long)despesa.IDDespesa, dbTran);

                if (lstAPagar.Count == 0)
                {
                    throw new Exception("Não foram encontrados registros de APagar referentes a essa Despesa...");
                }

                byte?newSituacao = null;

                foreach (objAPagar item in lstAPagar)
                {
                    switch (item.IDSituacao)
                    {
                    case 1:                             // EM ABERTO
                        if (newSituacao == null || newSituacao == 2)
                        {
                            newSituacao = 1;
                        }
                        break;

                    case 2:                             // QUITADA
                        if (newSituacao == null)
                        {
                            newSituacao = 2;
                        }
                        break;

                    case 3:                             // CANCELADA
                        if (newSituacao == null || newSituacao < 3)
                        {
                            newSituacao = 3;
                        }
                        break;

                    case 4:                             // NEGOCIADA
                        if (newSituacao == null || newSituacao < 4)
                        {
                            newSituacao = 4;
                        }
                        break;

                    case 5:                             // NEGATIVADA
                        if (newSituacao == null || newSituacao < 5)
                        {
                            newSituacao = 5;
                        }
                        break;

                    default:
                        break;
                    }
                }

                if ((byte)newSituacao != despesa.IDSituacao)
                {
                    despesa.IDSituacao = (byte)newSituacao;

                    // change situacao
                    ChangeSituacaoDespesa((long)despesa.IDDespesa, (byte)newSituacao, dbTran);

                    // return
                    return(true);
                }
                else
                {
                    // return nothing changed
                    return(false);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #7
0
        // DELETE
        //------------------------------------------------------------------------------------------------------------
        public bool DeleteDespesaComum(objDespesaComum despesa)
        {
            AcessoDados dbTran = null;

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

                // 1 - CHECK APagar and Movimentacao Saida
                //------------------------------------------------------------------------------------------------------------
                List <objAPagar>       listAPagar    = new List <objAPagar>();
                List <objMovimentacao> listMovSaidas = new List <objMovimentacao>();

                if (!VerifyBeforeDelete(despesa, ref listAPagar, ref listMovSaidas, dbTran))
                {
                    return(false);
                }

                // 2 - delete ALL APAGAR
                //------------------------------------------------------------------------------------------------------------
                if (listAPagar.Count > 0)
                {
                    APagarBLL pBLL = new APagarBLL();

                    foreach (objAPagar pagar in listAPagar)
                    {
                        pBLL.DeleteAPagar(pagar, dbTran);
                    }
                }

                // 3 - delete DESPESA COMUM
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                string query = "DELETE tblDespesaComum WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 4 - delete DESPESA DATA PERIODO
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesaDataPeriodo WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 5 - delete DESPESA
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "DELETE tblDespesa WHERE IDDespesa = @IDDespesa";

                //--- DELETE
                dbTran.ExecutarManipulacao(CommandType.Text, query);

                // 6 - UPDATE REMOVE DESPESA COMISSAO reference
                //------------------------------------------------------------------------------------------------------------

                //--- define Params
                dbTran.LimparParametros();
                dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa);
                dbTran.ConvertNullParams();

                //--- create query
                query = "UPDATE tblComissoes SET IDDespesa = null WHERE IDDespesa = @IDDespesa";

                //--- UPDATE
                dbTran.ExecutarManipulacao(CommandType.Text, query);


                // 7 - COMMIT AND RETURN
                //------------------------------------------------------------------------------------------------------------
                dbTran.CommitTransaction();
                return(true);
            }
            catch (AppException ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
            catch (Exception ex)
            {
                dbTran.RollBackTransaction();
                throw ex;
            }
        }