public static string Gravar(TRegistro_LoteBloqueto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteBloqueto qtb_lote = new TCD_LoteBloqueto(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } //Gravar Lote string retorno = qtb_lote.Gravar(val); //Deletar Bloquetos val.lBloquetosExcluir.ForEach(p => { TCN_Lote_X_Titulo.Excluir(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote.Value, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); //Verificar se o bloqueto tem liquidacao object obj = new CamadaDados.Financeiro.Duplicata.TCD_LanLiquidacao(qtb_lote.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + p.Cd_empresa.Trim() + "'", }, new TpBusca() { vNM_Campo = "a.nr_lancto", vOperador = "=", vVL_Busca = p.Nr_lancto.ToString() }, new TpBusca() { vNM_Campo = "a.cd_parcela", vOperador = "=", vVL_Busca = p.Cd_parcela.ToString() }, new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" } }, "1"); if (obj != null) { if (obj.ToString().Equals("1")) { p.St_registro = "C"; } else { p.St_registro = "A"; } } else { p.St_registro = "A"; } TCN_Titulo.Gravar(p, qtb_lote.Banco_Dados); }); //Gravar Bloquetos val.ListaBloqueto.ForEach(p => { TCN_Lote_X_Titulo.Gravar(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_LOTE")), Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); }); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception(ex.Message); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_LoteBloqueto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteBloqueto qtb_lote = new TCD_LoteBloqueto(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } //Alterar o status dos bloquetos para A - Ativo val.ListaBloqueto.ForEach(p => { p.St_registro = "A"; TCN_Titulo.Gravar(p, qtb_lote.Banco_Dados); //Deletar tabela lote X titulo TCN_Lote_X_Titulo.Excluir(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote.Value, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); }); val.lBloquetosExcluir.ForEach(p => { p.St_registro = "A"; TCN_Titulo.Gravar(p, qtb_lote.Banco_Dados); //Deletar tabela lote X titulo TCN_Lote_X_Titulo.Excluir(new TRegistro_Lote_X_Titulo() { Cd_empresa = p.Cd_empresa, Cd_parcela = p.Cd_parcela, Id_cobranca = p.Id_cobranca, Id_lote = val.Id_lote.Value, Nr_lancto = p.Nr_lancto }, qtb_lote.Banco_Dados); }); //Deletar Lote qtb_lote.Excluir(val); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception(ex.Message); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }