Esempio n. 1
0
        /// <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;
            }
        }
Esempio n. 2
0
        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();
            }
        }