/// <summary> /// Inseri novo(a) AssinaturaBancoIngressoCredito na lista /// </summary> /// <returns></returns> public override bool Inserir() { try { bool ok = assinaturaBancoIngressoCredito.Inserir(); if (ok) { lista.Add(assinaturaBancoIngressoCredito.Control.ID); Indice = lista.Count - 1; } return(ok); } catch (Exception ex) { throw ex; } }
public int EfetuarDoacao(List <int> ingressos, int clienteID, int usuarioID) { try { bd.BulkInsert(ingressos, "#tmpIngressos", false, true); List <int> bancoIngressoID = new List <int>(); bd.Consulta( @" SELECT bi.ID FROM tAssinaturaBancoIngresso bi (NOLOCK) INNER JOIN #tmpIngressos ti ON ti.ID = bi.IngressoID WHERE bi.ClienteID = " + clienteID); if (!bd.Consulta().Read()) { throw new Exception("Os ingressos selecionados não estão associados a você, caso já tenha efetuado a ação de doação ou devolução, por favor, verifique os comprovantes."); } do { bancoIngressoID.Add(bd.LerInt("ID")); } while (bd.Consulta().Read()); bd.FecharConsulta(); if (bancoIngressoID.Count != ingressos.Count) { throw new Exception("Um dos ingressos selecionados não está associado a você, caso já tenha efetuado a ação de doação ou devolução, por favor, verifique os comprovantes."); } bd.IniciarTransacao(); this.ClienteID.Valor = clienteID; this.UsuarioID.Valor = usuarioID; this.Timestamp.Valor = DateTime.Now; this.Acao.Valor = ((char)AcaoComprovante.Doar).ToString(); this.Inserir(bd); AssinaturaBancoIngressoHistorico oHistorico = new AssinaturaBancoIngressoHistorico(); AssinaturaBancoIngressoCredito oCredito = new AssinaturaBancoIngressoCredito(); foreach (var bancoIngresso in bancoIngressoID) { if (bd.Executar(string.Format("UPDATE tAssinaturaBancoIngresso SET ClienteID = 0 WHERE ID = {0} AND ClienteID = {1}", bancoIngresso, clienteID)) != 1) { throw new Exception("Não foi possível efetuar a ação de doação de um dos ingressos selecionados, caso já tenha efetuado sua ação de doação ou devolução, por favor, verifique os comprovantes."); } oHistorico.Limpar(); oCredito.Limpar(); oCredito.ClienteID.Valor = clienteID; oCredito.Utilizado.Valor = false; oCredito.Inserir(bd); oHistorico.AssinaturaBancoIngressoID.Valor = bancoIngresso; oHistorico.AssinaturaBancoIngressoCreditoID.Valor = oCredito.Control.ID; oHistorico.AssianturaBancoIngressoComprovanteID.Valor = this.Control.ID; oHistorico.Inserir(bd); } bd.FinalizarTransacao(); return(this.Control.ID); } catch (Exception ex) { bd.DesfazerTransacao(); throw ex; } finally { bd.Fechar(); } }