public static string Excluir(TRegistro_Convenio_Clifor val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Convenio_Clifor qtb_conv = new TCD_Convenio_Clifor(); try { if (st_transacao) { st_transacao = qtb_conv.CriarBanco_Dados(true); } else { qtb_conv.Banco_Dados = banco; } //Excluir placa val.lPlaca.ForEach(p => TCN_Convenio_Placa.Excluir(p, qtb_conv.Banco_Dados)); val.lPlacaDel.ForEach(p => TCN_Convenio_Placa.Excluir(p, qtb_conv.Banco_Dados)); //Excluir motorista val.lMotorista.ForEach(p => TCN_Motorista_Convenio.Excluir(p, qtb_conv.Banco_Dados)); val.lMotDel.ForEach(p => TCN_Motorista_Convenio.Excluir(p, qtb_conv.Banco_Dados)); //Verificar se o convenio possui movimentacao if (new TCD_VendaCombustivel(qtb_conv.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_convenio", vOperador = "=", vVL_Busca = val.Id_conveniostr }, new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim( ) + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + val.Cd_produto.Trim() + "'" } }, "1") != null) { val.St_registro = "C"; Gravar(val, qtb_conv.Banco_Dados); } else { qtb_conv.Excluir(val); } if (st_transacao) { qtb_conv.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_conv.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir clifor: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_conv.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_Convenio_Clifor val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Convenio_Clifor qtb_conv = new TCD_Convenio_Clifor(); try { if (st_transacao) { st_transacao = qtb_conv.CriarBanco_Dados(true); } else { qtb_conv.Banco_Dados = banco; } if (!val.St_registro.Trim().ToUpper().Equals("C")) { //Verificar se nao e permitido ter mais de um convenio por cliente if (!CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVlBool("ST_CLIFOR_MULTIPLOS_CONV", qtb_conv.Banco_Dados)) { //Verificar se o clifor ja possui convenio amarrado TList_Convenio_Clifor lConvCli = new TCD_Convenio_Clifor(qtb_conv.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_endereco", vOperador = "=", vVL_Busca = "'" + val.Cd_endereco.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + val.Cd_produto.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.id_convenio", vOperador = "<>", vVL_Busca = val.Id_conveniostr } }, 0, string.Empty); lConvCli.ForEach(p => { p.lMotorista = TCN_Motorista_Convenio.Buscar(p.Id_conveniostr, p.Cd_empresa, p.Cd_clifor, p.Cd_endereco, p.Cd_produto, string.Empty, string.Empty, string.Empty, qtb_conv.Banco_Dados); p.lPlaca = TCN_Convenio_Placa.Buscar(p.Id_conveniostr, p.Cd_empresa, p.Cd_clifor, p.Cd_endereco, p.Cd_produto, qtb_conv.Banco_Dados); Excluir(p, qtb_conv.Banco_Dados); }); } } string retorno = qtb_conv.Gravar(val); //Gravar placa val.lPlacaDel.ForEach(p => TCN_Convenio_Placa.Excluir(p, qtb_conv.Banco_Dados)); val.lPlaca.ForEach(p => { p.Id_convenio = val.Id_convenio; p.Cd_empresa = val.Cd_empresa; p.Cd_clifor = val.Cd_clifor; p.Cd_endereco = val.Cd_endereco; p.Cd_produto = val.Cd_produto; TCN_Convenio_Placa.Gravar(p, qtb_conv.Banco_Dados); }); //Gravar motorista val.lMotDel.ForEach(p => TCN_Motorista_Convenio.Excluir(p, qtb_conv.Banco_Dados)); val.lMotorista.ForEach(p => { p.Id_convenio = val.Id_convenio; p.Cd_empresa = val.Cd_empresa; p.Cd_clifor = val.Cd_clifor; p.Cd_endereco = val.Cd_endereco; p.Cd_produto = val.Cd_produto; TCN_Motorista_Convenio.Gravar(p, qtb_conv.Banco_Dados); }); if (st_transacao) { qtb_conv.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_conv.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar clifor: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_conv.deletarBanco_Dados(); } } }