public static string Gravar(TList_FaturaCartao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_FaturaCartao qtb_fatura = new TCD_FaturaCartao(); try { if (banco == null) { st_transacao = qtb_fatura.CriarBanco_Dados(true); } else { qtb_fatura.Banco_Dados = banco; } string retorno = string.Empty; val.ForEach(p => retorno += Gravar(p, qtb_fatura.Banco_Dados)); if (st_transacao) { qtb_fatura.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_fatura.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar fatura: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_fatura.deletarBanco_Dados(); } } }
public static string TransferirContaCartao(TList_FaturaCartao lFatura, string Cd_empresa, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_FaturaCartao qtb_fatura = new TCD_FaturaCartao(); try { if (banco == null) { st_transacao = qtb_fatura.CriarBanco_Dados(true); } else { qtb_fatura.Banco_Dados = banco; } //Buscar conta gerencial CamadaDados.Faturamento.Cadastros.TList_CFGCupomFiscal lCfg = CamadaNegocio.Faturamento.Cadastros.TCN_CFGCupomFiscal.Buscar(Cd_empresa, qtb_fatura.Banco_Dados); if (lCfg.Count < 1) { throw new Exception("Não existe configuração ECF para a empresa: " + Cd_empresa.Trim()); } if (string.IsNullOrEmpty(lCfg[0].Cd_contacartao)) { throw new Exception("Não existe conta gerencial cartão para processar fechamento do portador cartão!"); } lFatura.ForEach(v => { //Buscar lancamento de caixa da fatura new CamadaDados.Financeiro.Caixa.TCD_LanCaixa(qtb_fatura.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_faturacartao_x_caixa x " + "where x.cd_contager = a.cd_contager " + "and x.cd_lanctocaixa = a.cd_lanctocaixa " + "and x.cd_contager <> '" + lCfg[0].Cd_contacartao.Trim() + "' " + "and x.id_fatura = " + v.Id_fatura.Value.ToString() + ")" } }, 0, string.Empty).ForEach(c => { //Gravar transferencia de caixa CamadaDados.Financeiro.Caixa.TRegistro_Lan_Transfere_Caixa rTransf = new CamadaDados.Financeiro.Caixa.TRegistro_Lan_Transfere_Caixa(); rTransf.CD_ContaGer_Entrada = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contacartao : lCfg[0].Cd_contaoperacional; rTransf.CD_ContaGer_Saida = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contaoperacional : lCfg[0].Cd_contacartao; rTransf.CD_Empresa = lCfg[0].Cd_empresa; rTransf.CD_Historico = lCfg[0].Cd_historico_transf; rTransf.Complemento = "TRANSFERENCIA PARA CONTA CARTÃO"; rTransf.Valor_Transferencia = c.Vl_RECEBER > decimal.Zero ? c.Vl_RECEBER : c.Vl_PAGAR; rTransf.DT_Lancto = CamadaDados.UtilData.Data_Servidor(); rTransf.NR_Docto = "TRANSFERENCIA PARA CONTA CARTÃO"; CamadaNegocio.Financeiro.Caixa.TCN_Lan_Transfere_Caixa.Transfere_Caixa(rTransf, qtb_fatura.Banco_Dados); //Gravar fatura cartao x novo lancamento caixa CamadaNegocio.Financeiro.Cartao.TCN_FaturaCartao_X_Caixa.Gravar( new CamadaDados.Financeiro.Cartao.TRegistro_FaturaCartao_X_Caixa() { Cd_contager = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contaoperacional : lCfg[0].Cd_contacartao, Cd_lanctocaixa = rTransf.CD_LANCTOCAIXA_SAI, Id_fatura = v.Id_fatura }, qtb_fatura.Banco_Dados); CamadaNegocio.Financeiro.Cartao.TCN_FaturaCartao_X_Caixa.Gravar( new CamadaDados.Financeiro.Cartao.TRegistro_FaturaCartao_X_Caixa() { Cd_contager = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contacartao : lCfg[0].Cd_contaoperacional, Cd_lanctocaixa = rTransf.CD_LANCTOCAIXA_ENT, Id_fatura = v.Id_fatura }, qtb_fatura.Banco_Dados); }); }); if (st_transacao) { qtb_fatura.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_fatura.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar fatura: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_fatura.deletarBanco_Dados(); } } }