Beispiel #1
0
 public HammerHead()
 {
     oVendaBilheteria = new VendaBilheteria(ConfiguracaoAccertify.Instancia.Chaves.UsuarioID.Valor);
     oVendaBilheteriaFormaPagamento = new VendaBilheteriaFormaPagamento();
     oProcessamento = new ProcessamentoPagamentos();
     Vendas         = new List <EstruturaVenda>();
     email          = new EmailAccertify();
     ingressos      = new IngressoGerenciadorAccertify();
 }
Beispiel #2
0
        public HammerHead()
        {
            LogUtil.Info(string.Format("##HammerHead.Constructor##"));

            oVendaBilheteria = new VendaBilheteria(ConfiguracaoAccertify.Instancia.Chaves.UsuarioID.Valor);
            oVendaBilheteriaFormaPagamento = new VendaBilheteriaFormaPagamento();
            oProcessamento = new ProcessamentoPagamentos();
            email          = new EmailAccertify();
            ingressos      = new IngressoGerenciadorAccertify();
        }
Beispiel #3
0
        public void MudarClientes()
        {
            BD bd    = new BD();
            BD bdAux = new BD();

            try
            {
                var obj = new
                {
                    UserID        = 0,
                    ClienteID     = 0,
                    NovoClienteID = 0,
                    CPF           = string.Empty,
                };


                var listaAnonima = VendaBilheteria.ToAnonymousList(obj);

                string sql =
                    @"
                        SELECT UserID, ClienteID, ClienteIDBase, CPFBase FROM ClientesCultura WHERE ClienteID <> ClienteIDBase AND CPFBase IS NOT NULL AND Importado = 0
                    ";

                bd.Consulta(sql);

                if (!bd.Consulta().Read())
                {
                    throw new Exception("No more entries!");
                }

                do
                {
                    listaAnonima.Add(new
                    {
                        UserID        = bd.LerInt("UserID"),
                        ClienteID     = bd.LerInt("ClienteID"),
                        NovoClienteID = bd.LerInt("ClienteIDBase"),
                        CPF           = bd.LerString("CPFBase")
                    });
                } while (bd.Consulta().Read());
                bd.FecharConsulta();

                foreach (var cliente in listaAnonima)
                {
                    try
                    {
                        bd.IniciarTransacao();

                        //Tem o CPF na base CC mas o cliente não existe e foi criado um novo, só altera o CPF dele.
                        if (cliente.NovoClienteID == 0)
                        {
                            bd.Executar("UPDATE tCliente SET CPF = '" + cliente.CPF + "' WHERE ID = " + cliente.ClienteID);
                            bd.Executar("UPDATE ClientesCultura SET Importado = 1 WHERE UserID = " + cliente.UserID);
                            bd.FinalizarTransacao();
                            continue;
                        }


                        var objAssinatura = new
                        {
                            AssinaturaClienteID = 0,
                            VendaBilheteriaID   = 0,
                        };

                        var listaAssinaturaAnonima = VendaBilheteria.ToAnonymousList(objAssinatura);

                        bdAux.Consulta("SELECT ac.ID, ac.VendaBilheteriaID FROM tAssinaturaCliente ac (NOLOCK) INNER JOIN tAssinatura a (NOLOCK) ON a.ID = ac.AssinaturaID WHERE ClienteID = " + cliente.ClienteID + " AND a.AssinaturaTipoID = 3");

                        if (!bdAux.Consulta().Read())
                        {
                            throw new Exception("Não existem assinaturas para este cliente.");
                        }

                        do
                        {
                            listaAssinaturaAnonima.Add(new
                            {
                                AssinaturaClienteID = bdAux.LerInt("ID"),
                                VendaBilheteriaID   = bdAux.LerInt("VendaBilheteriaID"),
                            });
                        } while (bdAux.Consulta().Read());

                        foreach (var assinatura in listaAssinaturaAnonima)
                        {
                            bd.Executar(string.Format("UPDATE tAssinaturaCliente SET ClienteID = {0} WHERE ID = {1}", cliente.NovoClienteID, assinatura.AssinaturaClienteID));
                            bd.Executar(string.Format("UPDATE tIngresso SET ClienteID = {0} WHERE AssinaturaClienteID = {1} AND Status IN ('B', 'V')", cliente.NovoClienteID, assinatura.AssinaturaClienteID));
                        }

                        if (listaAssinaturaAnonima.Where(c => c.VendaBilheteriaID > 0).Count() > 0)
                        {
                            if (bd.Executar("UPDATE tVendaBilheteria SET ClienteID = " + cliente.NovoClienteID + " WHERE ID " + listaAssinaturaAnonima.Where(c => c.VendaBilheteriaID > 0).FirstOrDefault()) != 1)
                            {
                                throw new Exception("Existe registro de Venda mas não foi possível alterar o registro");
                            }
                        }

                        bd.Executar("UPDATE ClientesCultura SET Importado = 1 WHERE UserID = " + cliente.UserID);

                        bd.FinalizarTransacao();
                    }
                    catch (Exception ex)
                    {
                        bd.DesfazerTransacao();
                        bd.Executar("UPDATE ClientesCultura SET Erro = '" + ex.Message + "' WHERE UserID = " + cliente.UserID);
                    }
                    finally
                    {
                        bd.FecharConsulta();
                        bdAux.FecharConsulta();
                    }
                }
            }
            finally
            {
                bd.Fechar();
            }
        }
        public Models.TotaisPorProcessoAssinatura BuscarRelatorio(int assinaturaTipoID, string ano)
        {
            try
            {
                Models.TotaisPorProcessoAssinatura oTotais = new Models.TotaisPorProcessoAssinatura();
                string sqlBusca =
                    string.Format(
                        @"SELECT 
	                        ac.ID as AssinaturaClienteID, 
	                        ac.Status, 
	                        ac.TimeStamp,
	                        ac.UsuarioID
	                        FROM tAssinaturaCliente  ac(NOLOCK)
                        INNER JOIN tAssinatura ass(NOLOCK) ON ass.ID = ac.AssinaturaID
                        INNER JOIN tAssinaturaAno aa (NOLOCK) ON ass.ID = aa.AssinaturaID
                        where ass.AssinaturaTipoID = {0} AND aa.Ano = '{1}'
                    ", assinaturaTipoID, ano);

                bd.Consulta(sqlBusca);
                if (!bd.Consulta().Read())
                {
                    throw new Exception("Não foi possível encontrar seus ingressos.");
                }

                var assinaturaAnonimo = new
                {
                    AssinaturaCliente = 0,
                    Status            = string.Empty,
                    UsuarioID         = 0,
                    TimeStamp         = DateTime.MinValue,
                };

                var listaAssinatura = VendaBilheteria.ToAnonymousList(assinaturaAnonimo);

                do
                {
                    var assinaturaAnonimoInsert = (new
                    {
                        AssinaturaCliente = bd.LerInt("AssinaturaClienteID"),
                        Status = bd.LerString("Status"),
                        UsuarioID = bd.LerInt("UsuarioID"),
                        TimeStamp = bd.LerDateTime("TimeStamp"),
                    });

                    listaAssinatura.Add(assinaturaAnonimoInsert);
                } while (bd.Consulta().Read());

                bd.FecharConsulta();

                AssinaturaTipo oAssinaturaTipo = new AssinaturaTipo();
                oAssinaturaTipo.Ler(assinaturaTipoID);

                oTotais.InternetRenovacaoNaRenovacao = listaAssinatura.Where(c => (Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Renovado) || Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.RenovadoSemPagamento)) && c.TimeStamp <= oAssinaturaTipo.RenovacaoFim.Valor && c.UsuarioID == Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.InternetRenovacaoNaTroca     = listaAssinatura.Where(c => (Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Renovado) || Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.RenovadoSemPagamento)) && c.TimeStamp > oAssinaturaTipo.RenovacaoFim.Valor && c.TimeStamp <= oAssinaturaTipo.NovaAquisicaoInicio.Valor && c.UsuarioID == Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.InternetRenovacaoNaAquisicao = listaAssinatura.Where(c => (Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Renovado) || Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.RenovadoSemPagamento)) && c.TimeStamp > oAssinaturaTipo.NovaAquisicaoInicio.Valor && c.UsuarioID == Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.InternetTroca     = listaAssinatura.Where(c => Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Troca) && c.UsuarioID == Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.InternetAquisicao = listaAssinatura.Where(c => Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Aquisicao) && c.UsuarioID == Usuario.INTERNET_USUARIO_ID).Count();

                oTotais.OperadorRenovacaoNaRenovacao = listaAssinatura.Where(c => (Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Renovado) || Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.RenovadoSemPagamento)) && c.TimeStamp <= oAssinaturaTipo.RenovacaoFim.Valor && c.UsuarioID != Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.OperadorRenovacaoNaTroca     = listaAssinatura.Where(c => (Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Renovado) || Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.RenovadoSemPagamento)) && c.TimeStamp > oAssinaturaTipo.RenovacaoFim.Valor && c.TimeStamp <= oAssinaturaTipo.NovaAquisicaoInicio.Valor && c.UsuarioID != Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.OperadorRenovacaoNaAquisicao = listaAssinatura.Where(c => (Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Renovado) || Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.RenovadoSemPagamento)) && c.TimeStamp > oAssinaturaTipo.NovaAquisicaoInicio.Valor && c.UsuarioID != Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.OperadorTroca     = listaAssinatura.Where(c => Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Troca) && c.UsuarioID != Usuario.INTERNET_USUARIO_ID).Count();
                oTotais.OperadorAquisicao = listaAssinatura.Where(c => Convert.ToChar(c.Status) == Convert.ToChar(AssinaturaCliente.EnumStatus.Aquisicao) && c.UsuarioID != Usuario.INTERNET_USUARIO_ID).Count();

                return(oTotais);
            }
            finally
            {
                bd.Fechar();
            }
        }
Beispiel #5
0
        public void FilarminicaImportar(int entregaID)
        {
            List <string> listaCPF = this.AlimentarListaCPF();
            List <Assinaturas.Models.AcaoProvisoria> listaProvisoria = new List <Models.AcaoProvisoria>();

            var estruturaIdentificacaoUsuario = new IRLib.ClientObjects.EstruturaReservaInternet
            {
                CaixaID   = 488695,
                CanalID   = 2276,
                UsuarioID = 11003,
                LojaID    = 3394,
                EmpresaID = 653,
            };

            BD bdAux = new BD();

            #region CPF a CPF
            foreach (string cpf in listaCPF.Distinct())
            {
                try
                {
                    var objeto = new
                    {
                        ID             = 0,
                        CPF            = string.Empty,
                        Assinatura     = string.Empty,
                        Setor          = string.Empty,
                        Lugar          = string.Empty,
                        Acao           = string.Empty,
                        Preco          = string.Empty,
                        FormaPagamento = string.Empty,
                        Parcelas       = 0,
                        NotaFiscal     = string.Empty,
                        Indice         = 0,
                    };

                    var lista = VendaBilheteria.ToAnonymousList(objeto);

                    #region Buscar Lugares do CPF
                    string sql =
                        @"
                            SELECT
	                            f.ID, f.CPF, f.Assinatura, f.Setor, 
	                            f.Lugar, fa.Acao, fp.Preco, fh.FormaPagamento, fh.Parcelas, fh.NotaFiscal
	
	                        FROM tFilarmonica f (NOLOCK)
	                        INNER JOIN tFilarmonicaAcao fa (NOLOCK) ON fa.FilarmonicaID = f.ID
	                        INNER JOIN tFilarmonicaHistorico fh (NOLOCK) ON fa.tFilarmonicaHistoricoID = fh.ID
	                        LEFT JOIN tFilarmonicaPreco fp (NOLOCK) ON fa.FilarmonicaPrecoID = fp.ID
	                        WHERE CPF = '"     + cpf + "' AND fa.Acao <> 'D'";

                    if (!bd.Consulta(sql).Read())
                    {
                        continue;
                    }

                    int i = 1;
                    do
                    {
                        lista.Add(new
                        {
                            ID             = bd.LerInt("ID"),
                            CPF            = cpf,
                            Assinatura     = bd.LerString("Assinatura"),
                            Setor          = bd.LerString("Setor"),
                            Lugar          = bd.LerString("Lugar"),
                            Acao           = bd.LerString("Acao"),
                            Preco          = bd.LerString("Preco"),
                            FormaPagamento = bd.LerString("FormaPagamento"),
                            Parcelas       = bd.LerInt("Parcelas"),
                            NotaFiscal     = bd.LerString("NotaFiscal"),
                            Indice         = i
                        });
                        i++;
                    } while (bd.Consulta().Read());

                    bd.FecharConsulta();

                    #endregion

                    decimal valorTotal = Convert.ToDecimal(bd.ConsultaValor(
                                                               @"
                                            SELECT
	                                            SUM(Valor)
	                                            FROM tFilarmonica f (NOLOCK)
	                                            INNER JOIN tFilarmonicaAcao fa (NOLOCK) ON fa.FilarmonicaID = f.ID
	                                            INNER JOIN tFilarmonicaPreco fp (NOLOCK) ON fa.FilarmonicaPrecoID = fp.ID
	                                            WHERE CPF = '"     + cpf + "'"));
                    bd.FecharConsulta();

                    #region Busca ClienteID
                    int clienteID = Convert.ToInt32(bd.ConsultaValor("SELECT TOP 1 ID FROM tCliente WHERE CPF = '" + cpf + "'"));
                    if (clienteID == 0)
                    {
                        throw new Exception("Não existe cliente com CPF : " + cpf);
                    }

                    bd.FecharConsulta();

                    Cliente oCliente = new Cliente(estruturaIdentificacaoUsuario.UsuarioID);
                    oCliente.Ler(clienteID);

                    ClienteEndereco oClienteEndereco = new ClienteEndereco();

                    oClienteEndereco.Nome.Valor              = oCliente.Nome.Valor;
                    oClienteEndereco.CPF.Valor               = oCliente.CPF.Valor;
                    oClienteEndereco.ClienteID.Valor         = oCliente.Control.ID;
                    oClienteEndereco.Endereco.Valor          = oCliente.EnderecoCliente.Valor;
                    oClienteEndereco.Numero.Valor            = oCliente.NumeroCliente.Valor;
                    oClienteEndereco.Complemento.Valor       = oCliente.ComplementoCliente.Valor;
                    oClienteEndereco.Bairro.Valor            = oCliente.BairroCliente.Valor;
                    oClienteEndereco.CEP.Valor               = oCliente.CEPCliente.Valor;
                    oClienteEndereco.Cidade.Valor            = oCliente.CidadeCliente.Valor;
                    oClienteEndereco.Estado.Valor            = oCliente.EstadoCliente.Valor;
                    oClienteEndereco.EnderecoPrincipal.Valor = true;
                    oClienteEndereco.EnderecoTipoID.Valor    = 1;

                    int ClienteEnderecoID = oClienteEndereco.VerificaEnderecoCliente(oCliente.Control.ID, oCliente.CEPCliente.Valor);

                    if (ClienteEnderecoID == 0)
                    {
                        oClienteEndereco.Inserir(bd);
                    }
                    else
                    {
                        oClienteEndereco.Control.ID = ClienteEnderecoID;
                        oClienteEndereco.Atualizar(bd);
                    }

                    #endregion

                    #region Preenche item a item a assinatura do cliente
                    listaProvisoria.Clear();

                    foreach (var item in lista)
                    {
                        sql =
                            string.Format(
                                @"
                                SELECT 
	                                TOP 1
	                                a.ID AS AssinaturaID, l.ID AS LugarID, an.ID AS AssinaturaAnoID, s.ID AS SetorID
	                                FROM tAssinatura a (NOLOCK)
	                                INNER JOIN tAssinaturaAno an (NOLOCK) ON an.AssinaturaID = a.ID
	                                INNER JOIN tAssinaturaItem ai (NOLOCK) ON ai.AssinaturaAnoID = an.ID
	                                INNER JOIN tSetor s (NOLOCK) ON s.ID = ai.SetorID
	                                INNER JOIN tLugar l (NOLOCK) ON l.SetorID = s.ID
	                                WHERE a.Nome = '{0}' AND s.Nome = '{1}' AND l.Codigo = '{2}'
                            ", item.Assinatura, item.Setor, item.Lugar);

                        if (!bd.Consulta(sql).Read())
                        {
                            throw new Exception("Não foi possível encontrar o Lugar: Código " + item.Lugar);
                        }

                        listaProvisoria.Add(new Models.AcaoProvisoria()
                        {
                            ClienteID       = clienteID,
                            AssinaturaID    = bd.LerInt("AssinaturaID"),
                            LugarID         = bd.LerInt("LugarID"),
                            AssinaturaAnoID = bd.LerInt("AssinaturaAnoID"),
                            SetorID         = bd.LerInt("SetorID"),
                            IndiceImportar  = item.Indice
                        });
                    }
                    bd.FecharConsulta();
                    #endregion

                    try
                    {
                        bd.IniciarTransacao();

                        //listaProvisoria = new AssinaturaCliente().EfetuarAcoes(bd, clienteID, Usuario.INTERNET_USUARIO_ID, listaProvisoria);
                        foreach (var item in listaProvisoria)
                        {
                            AssinaturaCliente assinaturaCLiente = new AssinaturaCliente();
                            assinaturaCLiente.Reservar(bd, clienteID, item.AssinaturaID, item.SetorID, item.LugarID, DateTime.Now.Year + 1, estruturaIdentificacaoUsuario, 0);
                            item.AssinaturaClienteID = assinaturaCLiente.Control.ID;
                        }

                        List <IRLib.ClientObjects.Assinaturas.EstruturaAssinaturaAcao> listaNova = new List <IRLib.ClientObjects.Assinaturas.EstruturaAssinaturaAcao>();

                        foreach (var item in lista)
                        {
                            int precoTipoID = 0;

                            if (item.Acao == "R")
                            {
                                precoTipoID = Convert.ToInt32(
                                    bdAux.ConsultaValor(
                                        string.Format(
                                            @"
                                                SELECT 
	                                                DISTINCT pt.ID
	                                                FROM tAssinatura a (NOLOCK)
	                                                INNER JOIN tAssinaturaAno an (NOLOCK) ON an.AssinaturaID = a.ID
	                                                INNER JOIN tAssinaturaItem ai (NOLOCK) ON ai.AssinaturaAnoID = an.ID
	                                                INNER JOIN tSetor s (NOLOCK) ON s.ID = ai.SetorID
	                                                INNER JOIN tPrecoTipo pt (NOLOCK) ON pt.ID = ai.PrecoTipoID
	                                                WHERE a.Nome = '{0}' AND s.Nome = '{1}' AND pt.Nome = '{2}'
                                            ", item.Assinatura, item.Setor, item.Preco)));

                                if (precoTipoID == 0)
                                {
                                    throw new Exception("O preco tipo " + item.Preco + " não existe");
                                }
                            }

                            var acaoProvisoria = listaProvisoria.Where(c => c.IndiceImportar == item.Indice).FirstOrDefault();
                            acaoProvisoria.PrecoTipoID = precoTipoID;
                            acaoProvisoria.Acao        = (AssinaturaCliente.EnumAcao)Convert.ToChar(item.Acao);
                            bdAux.FecharConsulta();

                            listaNova.Add(new ClientObjects.Assinaturas.EstruturaAssinaturaAcao()
                            {
                                AssinaturaClienteID = acaoProvisoria.AssinaturaClienteID.ToString(),
                                PrecoTipo           = acaoProvisoria.PrecoTipoID.ToString(),
                                Acao = item.Acao
                            });
                        }

                        new AssinaturaAcaoProvisoria().AdicionarAcoes(bd, clienteID, entregaID, listaNova, estruturaIdentificacaoUsuario.UsuarioID);

                        var listaFinal = new IRLib.AssinaturaAcaoProvisoria().BuscarLista(clienteID, false);

                        string senha = string.Empty;
                        if (listaFinal.Where(c => c.Acao == AssinaturaCliente.EnumAcao.Renovar).Count() > 0)
                        {
                            senha = new AssinaturaCliente().Vender(bd, clienteID, estruturaIdentificacaoUsuario.UsuarioID, lista.FirstOrDefault().FormaPagamento,
                                                                   lista.FirstOrDefault().Parcelas, string.Empty, string.Empty, string.Empty, estruturaIdentificacaoUsuario,
                                                                   listaFinal.Where(c => c.Acao == AssinaturaCliente.EnumAcao.Renovar).ToList(), 0, entregaID, 10, false, oCliente.Email.Valor);
                        }

                        new AssinaturaCliente().EfetuarAcoes(bd, clienteID, estruturaIdentificacaoUsuario.UsuarioID, listaFinal.Where(c => c.Acao == AssinaturaCliente.EnumAcao.Trocar).ToList());

                        bd.Executar("UPDATE tFilarmonica SET Importado = 'T' WHERE CPF = '" + cpf + "'");
                        if (!string.IsNullOrEmpty(senha))
                        {
                            valorTotal += 10;

                            decimal valorVenda = Convert.ToDecimal(bd.ConsultaValor("SELECT ValorTotal FROM tVendaBilheteria WHERE Senha = '" + senha + "'"));

                            if (valorVenda != valorTotal)
                            {
                                throw new Exception("O Valor total da venda está incompativel com o valor da assinatura.");
                            }
                        }

                        bd.FinalizarTransacao();
                    }
                    catch (Exception)
                    {
                        bd.DesfazerTransacao();
                        throw;
                    }
                }
                catch (Exception ex)
                {
                    bdAux.Fechar();
                    bd.Executar("UPDATE tFilarmonica SET Importado = 'F', MotivoErro = '" + ex.Message.Replace("'", "") + "' WHERE CPF = '" + cpf + "'");
                }
            }
            #endregion
        }
Beispiel #6
0
        public void ImportarClientes()
        {
            BD bd = new BD();

            try
            {
                var obj = new
                {
                    ClienteID         = 0,
                    Login             = string.Empty,
                    Nome              = string.Empty,
                    Senha             = string.Empty,
                    CPF               = string.Empty,
                    Sexo              = string.Empty,
                    CEP               = string.Empty,
                    Endereco          = string.Empty,
                    Numero            = string.Empty,
                    Complemento       = string.Empty,
                    Estado            = string.Empty,
                    Cidade            = string.Empty,
                    Bairro            = string.Empty,
                    Email             = string.Empty,
                    DDDResidencial    = string.Empty,
                    TelResidencial    = string.Empty,
                    DDDCelular        = string.Empty,
                    TelCelular        = string.Empty,
                    DDDComercial1     = string.Empty,
                    TelComercial1     = string.Empty,
                    DDDComercial2     = string.Empty,
                    TelComercial2     = string.Empty,
                    DDDFax            = string.Empty,
                    TelFax            = string.Empty,
                    Profissao         = string.Empty,
                    ProfissaoSituacao = string.Empty,
                    DataNascimento    = DateTime.MinValue,
                    ValorDesconto     = 0m,
                    TextoDesconto     = string.Empty,
                };

                var listaAnonima = VendaBilheteria.ToAnonymousList(obj);

                bd.Consulta("SELECT * FROM ClientesOSESP WHERE Importado = 0");

                if (!bd.Consulta().Read())
                {
                    throw new Exception("Todos os clientes foram importados.");
                }

                var listaSitProfissional = new SituacaoProfissional().ListaTudo();

                do
                {
                    string[] residencial = bd.LerString("Tel_Residencial").Replace("-", "").Split(' ');
                    string[] celular     = bd.LerString("Tel_Celular").Replace("-", "").Split(' ');
                    string[] comercial1  = bd.LerString("Tel_Comercial1").Replace("-", "").Split(' ');
                    string[] comercial2  = bd.LerString("Tel_Comercial2").Replace("-", "").Split(' ');
                    string[] fax         = bd.LerString("Tel_Fax").Replace("-", "").Split(' ');
                    string   sexo        = bd.LerString("Sexo");
                    sexo = sexo.Length == 0 ? string.Empty : sexo.Substring(0, 1);


                    listaAnonima.Add(new
                    {
                        ClienteID         = bd.LerInt("ClienteID"),
                        Login             = bd.LerString("Login").Replace("'", ""),
                        Nome              = bd.LerString("Nome").Replace("'", ""),
                        Senha             = bd.LerString("Senha").Replace("'", ""),
                        CPF               = bd.LerString("CPF").Replace("'", ""),
                        Sexo              = sexo,
                        CEP               = bd.LerString("CEP").Replace("'", ""),
                        Endereco          = bd.LerString("Endereco").Replace("'", ""),
                        Numero            = bd.LerString("Numero").Replace("'", ""),
                        Complemento       = bd.LerString("Complemento").Replace("'", ""),
                        Estado            = bd.LerString("Estado").Replace("'", ""),
                        Cidade            = bd.LerString("Cidade").Replace("'", ""),
                        Bairro            = bd.LerString("Bairro").Replace("'", ""),
                        Email             = bd.LerString("Email").Replace("'", ""),
                        DDDResidencial    = residencial.Length > 1 ? residencial[0] : string.Empty,
                        TelResidencial    = residencial.Length > 1 ? residencial[1] : string.Empty,
                        DDDCelular        = celular.Length > 1 ? celular[0] : string.Empty,
                        TelCelular        = celular.Length > 1 ? celular[1] : string.Empty,
                        DDDComercial1     = comercial1.Length > 1 ? comercial1[0] : string.Empty,
                        TelComercial1     = comercial1.Length > 1 ? comercial1[1] : string.Empty,
                        DDDComercial2     = comercial2.Length > 1 ? comercial2[0] : string.Empty,
                        TelComercial2     = comercial2.Length > 1 ? comercial2[1] : string.Empty,
                        DDDFax            = fax.Length > 1 ? fax[0] : string.Empty,
                        TelFax            = fax.Length > 1 ? fax[1] : string.Empty,
                        Profissao         = bd.LerString("Profissao").Replace("'", ""),
                        ProfissaoSituacao = bd.LerString("ProfissaoSituacao").Replace("'", ""),
                        DataNascimento    = bd.LerDateTime("Data_Nascimento"),
                        ValorDesconto     = bd.LerDecimal("ValorDesconto"),
                        TextoDesconto     = bd.LerString("TextoDesconto").Replace("'", ""),
                    });
                } while (bd.Consulta().Read());

                IRLib.Cliente oCliente = new Cliente();
                foreach (var cliente in listaAnonima)
                {
                    try
                    {
                        oCliente.Limpar();
                        if (cliente.ClienteID > 0)
                        {
                            oCliente.Ler(cliente.ClienteID);
                        }

                        oCliente.LoginOsesp.Valor             = cliente.Login;
                        oCliente.Nome.Valor                   = cliente.Nome;
                        oCliente.Senha.Valor                  = cliente.Senha;
                        oCliente.CPF.Valor                    = cliente.CPF;
                        oCliente.Sexo.Valor                   = cliente.Sexo;
                        oCliente.CEPCliente.Valor             = cliente.CEP;
                        oCliente.EnderecoCliente.Valor        = cliente.Endereco;
                        oCliente.NumeroCliente.Valor          = cliente.Numero;
                        oCliente.ComplementoCliente.Valor     = cliente.Complemento;
                        oCliente.EstadoCliente.Valor          = cliente.Estado;
                        oCliente.CidadeCliente.Valor          = cliente.Cidade;
                        oCliente.BairroCliente.Valor          = cliente.Bairro;
                        oCliente.Email.Valor                  = cliente.Email.Split(',').FirstOrDefault().Trim();
                        oCliente.DDDTelefone.Valor            = cliente.DDDResidencial;
                        oCliente.Telefone.Valor               = cliente.TelResidencial;
                        oCliente.DDDCelular.Valor             = cliente.DDDCelular;
                        oCliente.Celular.Valor                = cliente.TelCelular;
                        oCliente.DDDTelefoneComercial.Valor   = cliente.DDDComercial1;
                        oCliente.TelefoneComercial.Valor      = cliente.TelComercial1;
                        oCliente.DDDTelefoneComercial2.Valor  = cliente.DDDComercial2;
                        oCliente.TelefoneComercial2.Valor     = cliente.TelComercial2;
                        oCliente.Profissao.Valor              = cliente.Profissao;
                        oCliente.SituacaoProfissionalID.Valor = listaSitProfissional.Where(c => string.Compare(c.Nome, cliente.ProfissaoSituacao, true) == 0).FirstOrDefault().ID;
                        oCliente.DataNascimento.Valor         = cliente.DataNascimento;

                        var retorno = oCliente.Salvar(IRLib.Usuario.INTERNET_USUARIO_ID);

                        switch (retorno.RetornoProcedure)
                        {
                        case Cliente.RetornoProcSalvar.InsertOK:
                        case Cliente.RetornoProcSalvar.UpdateOK:
                            bd.Executar("UPDATE ClientesOSESP SET Importado = 1, ClienteID = " + retorno.ClienteID + " WHERE Login = '******'");
                            break;

                        case Cliente.RetornoProcSalvar.CPF_Email_JaExistem:
                            throw new Exception("CPF/Email/Login já existe e houve tentativa de inclusão");

                        case Cliente.RetornoProcSalvar.CPF_Email_Vazios:
                            throw new Exception("CPF/Email/Login vazios");

                        case Cliente.RetornoProcSalvar.CNPJ_JaExiste:
                            throw new Exception("CNPJ já existem");

                        default:
                            break;
                        }

                        if (cliente.ValorDesconto > 0)
                        {
                            bd.Executar(
                                @"INSERT INTO tAssinaturaDesconto (ClienteID, Valor, Utilizado, TextoDesconto) 
								VALUES ("                                 + retorno.ClienteID + ", " + cliente.ValorDesconto.ToString("#.00").Replace(",", ".") + ", 'F', '" + cliente.TextoDesconto + "')");
                        }
                    }
                    catch (Exception ex)
                    {
                        try
                        {
                            bd.Executar("UPDATE ClientesOSESP SET ErroImportacao = '" + ex.Message + "' WHERE Login = '******'");
                        }
                        catch { }
                    }
                }
            }
            finally
            {
                bd.Fechar();
            }
        }
Beispiel #7
0
        public void FixEleazar(int assinaturaID)
        {
            BD bd = new BD();

            try
            {
                string buscaInicial = @"
                        SELECT ap.AssinaturaClienteID 
	                    FROM AssinaturasProblemasCaioUCO ap (NOLOCK)
	                    LEFT JOIN tAssinaturaErroFix af (NOLOCK) ON af.AssinaturaClienteID = ap.AssinaturaClienteID
                        WHERE (af.ID IS NULL OR af.Fixed = 0) AND AssinaturaID = " + assinaturaID;

                bd.Consulta(buscaInicial);

                if (!bd.Consulta().Read())
                {
                    throw new Exception("Nenhuma inconsistencia");
                }

                List <int> listAssinaturaClienteID = new List <int>();

                do
                {
                    listAssinaturaClienteID.Add(bd.LerInt("AssinaturaClienteID"));
                } while (bd.Consulta().Read());
                bd.FecharConsulta();


                var itemAnonimo = new
                {
                    ID                  = 0,
                    ClienteID           = 0,
                    Status              = string.Empty,
                    BloqueioID          = 0,
                    EventoID            = 0,
                    VendaBilheteriaID   = 0,
                    PrecoTipoID         = 0,
                    ApresentacaoSetorID = 0,
                    Valor               = 0m,
                };

                var listaAnonima = VendaBilheteria.ToAnonymousList(itemAnonimo);

                foreach (int id in listAssinaturaClienteID)
                {
                    try
                    {
                        bd.Consulta(string.Format(@"SELECT 
	                        i.ID, i.Status, ac.ClienteID, a.BloqueioID, i.EventoID, i.VendaBilheteriaID, ac.PrecoTipoID, i.ApresentacaoSetorID, p.Valor
	                        FROM tAssinaturaCliente ac (NOLOCK)
	                        INNER JOIN tAssinatura a (NOLOCK) ON a.ID = ac.AssinaturaID
	                        INNER JOIN tAssinaturaAno an (NOLOCK) ON an.ID = ac.AssinaturaAnoID
	                        INNER JOIN tAssinaturaItem ai (NOLOCK) ON ai.AssinaturaAnoID = an.ID
	                        INNER JOIN tIngresso i (NOLOCK) ON i.ApresentacaoID = ai.ApresentacaoID AND i.SetorID = ai.SetorID AND i.LugarID = ac.LugarID
	                        LEFT JOIN tPreco p (NOLOCK) ON p.ID = i.PrecoID
	                        WHERE ac.ID = {0} AND ai.PrecoTipoID = 1
                            ORDER BY i.ID ASC", id));

                        if (!bd.Consulta().Read())
                        {
                            throw new Exception("Sem ingressos!!!!");
                        }

                        listaAnonima.Clear();

                        do
                        {
                            listaAnonima.Add(new
                            {
                                ID                  = bd.LerInt("ID"),
                                ClienteID           = bd.LerInt("ClienteID"),
                                Status              = bd.LerString("Status"),
                                BloqueioID          = bd.LerInt("BloqueioID"),
                                EventoID            = bd.LerInt("EventoID"),
                                VendaBilheteriaID   = bd.LerInt("VendaBilheteriaID"),
                                PrecoTipoID         = bd.LerInt("PrecoTipoID"),
                                ApresentacaoSetorID = bd.LerInt("ApresentacaoSetorID"),
                                Valor               = bd.LerDecimal("Valor"),
                            });
                        } while (bd.Consulta().Read());


                        bd.FecharConsulta();
                        bd.IniciarTransacao();

                        int    ingressoIDAtualizar = 0;
                        int    vendaBilheteriaID   = 0;
                        int    precoTipoID         = 0;
                        string status = string.Empty;
                        foreach (var ingresso in listaAnonima)
                        {
                            //Aqui entra o ingresso ANTIGO
                            if (ingresso.EventoID == 18253)
                            {
                                ingressoIDAtualizar = ingresso.ID;
                                vendaBilheteriaID   = ingresso.VendaBilheteriaID;
                                precoTipoID         = ingresso.PrecoTipoID;
                                status = ingresso.Status;

                                if (bd.Executar(string.Format("UPDATE tIngresso SET PrecoID = 0, Status = 'D', ClienteID = 0, BloqueioID = 0, AssinaturaClienteID = 0, VendaBilheteriaID = 0 WHERE ID = {0}", ingresso.ID)) != 1)
                                {
                                    throw new Exception("Não foi possível atualizar o status do ingresso" + ingresso.ID);
                                }
                            }
                            //Esse aqui é o NOVO EventoID
                            else if (ingresso.EventoID == 18489)
                            {
                                if (ingressoIDAtualizar == 0)
                                {
                                    throw new Exception("Não encontrou ingresso correspondente no evento errado.");
                                }

                                if (status == Ingresso.VENDIDO)
                                {
                                    int precoID = Convert.ToInt32(bd.ConsultaValor("SELECT ID FROM tPreco WHERE PrecoTipoID = " + precoTipoID + " AND ApresentacaoSetorID = " + ingresso.ApresentacaoSetorID));
                                    if (precoID == 0)
                                    {
                                        throw new Exception("PrecoID invalido");
                                    }

                                    if (bd.Executar(string.Format("UPDATE tIngresso SET Status = '{0}', ClienteID = {1}, BloqueioID = {2}, AssinaturaClienteID = {3}, VendaBilheteriaID = {4}, PrecoID = {5} WHERE ID = {6} AND Status <> 'V' AND Status <> 'I'",
                                                                  Ingresso.VENDIDO, ingresso.ClienteID, ingresso.BloqueioID, id, vendaBilheteriaID, precoID, ingresso.ID)) != 1)
                                    {
                                        throw new Exception("Não foi possível atualizar o status do ingresso" + ingresso.ID);
                                    }

                                    bd.Executar("UPDATE tIngressoLOG SET IngressoID = " + ingresso.ID + ", PrecoID = " + precoID + " WHERE IngressoID = " + ingressoIDAtualizar);
                                }
                                else
                                {
                                    if (bd.Executar(string.Format("UPDATE tIngresso SET Status = '{0}', ClienteID = {1}, BloqueioID = {2}, AssinaturaClienteID = {3}, VendaBilheteriaID = 0, PrecoID = 0 WHERE ID = {4} AND Status <> 'V' AND Status <> 'I'",
                                                                  Ingresso.BLOQUEADO, ingresso.ClienteID, ingresso.BloqueioID, id, ingresso.ID)) != 1)
                                    {
                                        throw new Exception("Não foi possível atualizar o status do ingresso" + ingresso.ID);
                                    }
                                }
                                break;
                            }
                        }

                        bd.Executar("INSERT INTO tAssinaturaErroFix (AssinaturaClienteID, Fixed, Erro) VALUES (" + id + ", 1, '')");
                        bd.FinalizarTransacao();
                    }
                    catch (Exception ex)
                    {
                        bd.DesfazerTransacao();
                        bd.Fechar();
                        bd.Executar("INSERT INTO tAssinaturaErroFix (AssinaturaClienteID, Fixed, Erro) VALUES (" + id + ", 0, '" + ex.Message + "') ");
                    }
                    finally
                    {
                        bd.FecharConsulta();
                    }
                }
            }
            finally
            {
                bd.Fechar();
            }
        }
Beispiel #8
0
        public void Fix(int assinaturaID)
        {
            BD bd = new BD();

            try
            {
                string buscaInicial = @"
                        SELECT ap.AssinaturaClienteID 
	                    FROM AssinaturasProblemasCaioDesistencias ap (NOLOCK)
	                    LEFT JOIN tAssinaturaErroFix af (NOLOCK) ON af.AssinaturaClienteID = ap.AssinaturaClienteID
                    WHERE (af.ID IS NULL OR af.Fixed = 0) AND Acao <> 'R' AND Status <> 'R' AND AssinaturaID = " + assinaturaID;

                bd.Consulta(buscaInicial);

                if (!bd.Consulta().Read())
                {
                    throw new Exception("Nenhuma inconsistencia");
                }

                List <int> listAssinaturaClienteID = new List <int>();

                do
                {
                    listAssinaturaClienteID.Add(bd.LerInt("AssinaturaClienteID"));
                } while (bd.Consulta().Read());
                bd.FecharConsulta();

                string consultaAssinaturaCliente =
                    @"
                        SELECT 
	                        i.ID, i.Status, ac.ClienteID, a.BloqueioID, i.AssinaturaClienteID
	                        FROM tAssinaturaCliente ac (NOLOCK)
	                        INNER JOIN tAssinatura a (NOLOCK) ON a.ID = ac.AssinaturaID
	                        INNER JOIN tAssinaturaAno an (NOLOCK) ON an.ID = ac.AssinaturaAnoID
	                        INNER JOIN tAssinaturaItem ai (NOLOCK) ON ai.AssinaturaAnoID = an.ID
	                        INNER JOIN tIngresso i (NOLOCK) ON i.ApresentacaoID = ai.ApresentacaoID AND i.SetorID = ai.SetorID AND i.LugarID = ac.LugarID
	                        WHERE ac.ID = {0} AND ai.PrecoTipoID = 1
                    ";

                var itemAnonimo = new
                {
                    ID                  = 0,
                    ClienteID           = 0,
                    Status              = string.Empty,
                    AssinaturaClienteID = 0,
                    BloqueioID          = 0
                };

                var listaAnonima = VendaBilheteria.ToAnonymousList(itemAnonimo);

                foreach (int id in listAssinaturaClienteID)
                {
                    try
                    {
                        bd.Consulta(string.Format(consultaAssinaturaCliente, id));

                        if (!bd.Consulta().Read())
                        {
                            throw new Exception("Sem ingressos!!!!");
                        }

                        listaAnonima.Clear();

                        do
                        {
                            listaAnonima.Add(new
                            {
                                ID                  = bd.LerInt("ID"),
                                ClienteID           = bd.LerInt("ClienteID"),
                                Status              = bd.LerString("Status"),
                                AssinaturaClienteID = bd.LerInt("AssinaturaClienteID"),
                                BloqueioID          = bd.LerInt("BloqueioID"),
                            });
                        } while (bd.Consulta().Read());


                        bd.FecharConsulta();
                        bd.IniciarTransacao();

                        foreach (var ingresso in listaAnonima)
                        {
                            if (ingresso.Status == "V" || ingresso.Status == "I")
                            {
                                throw new Exception("Ingresso com status: " + ingresso.Status);
                            }


                            if (ingresso.AssinaturaClienteID == id)
                            {
                                continue;
                            }

                            //Deve assicuar
                            if (ingresso.AssinaturaClienteID != 0)
                            {
                                if (bd.Executar(string.Format("UPDATE tIngresso SET Status = '{0}', ClienteID = {1}, BloqueioID = {2}, AssinaturaClienteID = {3} WHERE ID = {4} AND Status <> 'V' AND Status <> 'I'",
                                                              Ingresso.BLOQUEADO, ingresso.ClienteID, ingresso.BloqueioID, id, ingresso.ID)) != 1)
                                {
                                    throw new Exception("Não foi possível atualizar o status do ingresso" + ingresso.ID);
                                }
                            }
                            //Reseta esta porcaria, porque qndo passar a outra assinatura, deve associar este ingresso!
                            else
                            if (bd.Executar(string.Format("UPDATE tIngresso SET Status = 'D', ClienteID = 0, BloqueioID = 0, AssinaturaClienteID = 0 WHERE ID = {0} AND Status <> 'V' AND Status <> 'I'", ingresso.ID)) != 1)
                            {
                                throw new Exception("Não foi possível atualizar o status do ingresso" + ingresso.ID);
                            }
                        }


                        bd.Executar("INSERT INTO tAssinaturaErroFix (AssinaturaClienteID, Fixed, Erro) VALUES (" + id + ", 1, '')");
                        bd.FinalizarTransacao();
                    }
                    catch (Exception ex)
                    {
                        bd.DesfazerTransacao();
                        bd.Fechar();
                        bd.Executar("INSERT INTO tAssinaturaErroFix (AssinaturaClienteID, Fixed, Erro) VALUES (" + id + ", 0, '" + ex.Message + "') ");
                    }
                    finally
                    {
                        bd.FecharConsulta();
                    }
                }
            }
            finally
            {
                bd.Fechar();
            }
        }
Beispiel #9
0
        public void Importar(int id)
        {
            BD bd = new BD();

            try
            {
                var obj = new
                {
                    ID                = 0,
                    ClienteID         = 0,
                    AssinaturaID      = 0,
                    Lugares           = new List <int>(),
                    AssinaturaAnoID   = 0,
                    SetorID           = 0,
                    BloqueioID        = 0,
                    ExtintoBloqueioID = 0,
                };

                var listaAnonina = VendaBilheteria.ToAnonymousList(obj);

                string sql =
                    @"
						SELECT DISTINCT 
							    ac.UserId AS ID, ac.ClienteID, a.ID AS AssinaturaID, ac.LugarID, ac.LugarID1,ac.LugarID2,ac.LugarID3,ac.LugarID4,ac.LugarID5, an.ID AS AssinaturaAnoID, ac.SetorID,
								a.BloqueioID, a.ExtintoBloqueioID
							FROM AssinantesCultura ac (NOLOCK)
							INNER JOIN tAssinatura a (NOLOCK) ON a.ID = ac.AssinaturaID
							INNER JOIN tAssinaturaAno an (NOLOCK) ON a.ID = an.AssinaturaID
							WHERE ac.SetorID IS NOT NULL AND ac.Importado = 0 AND a.ID = "                             + id;

                if (!bd.Consulta(sql).Read())
                {
                    throw new Exception("Não existem mais assinaturas a serem importadas.");
                }

                do
                {
                    List <int> lugares = new List <int>();
                    if (bd.LerInt("LugarID") > 0)
                    {
                        lugares.Add(bd.LerInt("LugarID"));
                    }

                    if (bd.LerInt("LugarID1") > 0)
                    {
                        lugares.Add(bd.LerInt("LugarID1"));
                    }

                    if (bd.LerInt("LugarID2") > 0)
                    {
                        lugares.Add(bd.LerInt("LugarID2"));
                    }

                    if (bd.LerInt("LugarID3") > 0)
                    {
                        lugares.Add(bd.LerInt("LugarID3"));
                    }

                    if (bd.LerInt("LugarID4") > 0)
                    {
                        lugares.Add(bd.LerInt("LugarID4"));
                    }

                    if (bd.LerInt("LugarID5") > 0)
                    {
                        lugares.Add(bd.LerInt("LugarID5"));
                    }

                    listaAnonina.Add(new
                    {
                        ID           = bd.LerInt("ID"),
                        ClienteID    = bd.LerInt("ClienteID"),
                        AssinaturaID = bd.LerInt("AssinaturaID"),
                        Lugares      = lugares,

                        AssinaturaAnoID = bd.LerInt("AssinaturaAnoID"),
                        SetorID         = bd.LerInt("SetorID"),

                        BloqueioID        = bd.LerInt("BloqueioID"),
                        ExtintoBloqueioID = bd.LerInt("ExtintoBloqueioID"),
                    });
                } while (bd.Consulta().Read());

                bd.FecharConsulta();
                foreach (var assinatura in listaAnonina)
                {
                    try
                    {
                        foreach (int lugarID in assinatura.Lugares)
                        {
                            List <int>        ingressos          = new List <int>();
                            AssinaturaCliente oAssinaturaCliente = new AssinaturaCliente();

                            sql = string.Format(@"
                                SELECT 
	                                i.ID, i.Status, i.BloqueioID
	                            FROM tAssinaturaAno an (NOLOCK)
	                            INNER JOIN tAssinaturaItem ai (NOLOCK) ON an.ID = ai.AssinaturaAnoID
	                            INNER JOIN tIngresso i (NOLOCK) ON i.ApresentacaoID = ai.ApresentacaoID AND i.SetorID = ai.SetorID
	                            WHERE an.ID = {0} AND i.LugarID = {1} AND PrecoTipoID = 8
                                ", assinatura.AssinaturaAnoID, lugarID);

                            if (!bd.Consulta(sql).Read())
                            {
                                throw new Exception("Não foi possível encontrar os ingressos desta assinatura.");
                            }

                            int bloqueioID = bd.LerInt("BloqueioID");
                            do
                            {
                                if (bd.LerString("Status") != Ingresso.DISPONIVEL && bd.LerString("Status") != Ingresso.BLOQUEADO)
                                {
                                    throw new Exception("Ingresso com status: " + bd.LerString("Status"));
                                }

                                ingressos.Add(bd.LerInt("ID"));
                            } while (bd.Consulta().Read());

                            bd.FecharConsulta();

                            oAssinaturaCliente.Limpar();
                            oAssinaturaCliente.ClienteID.Valor         = assinatura.ClienteID;
                            oAssinaturaCliente.AssinaturaID.Valor      = assinatura.AssinaturaID;
                            oAssinaturaCliente.PrecoTipoID.Valor       = 0;
                            oAssinaturaCliente.LugarID.Valor           = lugarID;
                            oAssinaturaCliente.AssinaturaAnoID.Valor   = assinatura.AssinaturaAnoID;
                            oAssinaturaCliente.VendaBilheteriaID.Valor = 0;
                            oAssinaturaCliente.SetorID.Valor           = assinatura.SetorID;
                            oAssinaturaCliente.Acao.Valor = Convert.ToChar((AssinaturaCliente.EnumStatus.Aguardando)).ToString();

                            string status = string.Empty;

                            if (bloqueioID == assinatura.ExtintoBloqueioID)
                            {
                                oAssinaturaCliente.Status.Valor = Convert.ToChar((AssinaturaCliente.EnumStatus.Indisponivel)).ToString();
                                bloqueioID = assinatura.ExtintoBloqueioID;
                            }
                            else
                            {
                                oAssinaturaCliente.Status.Valor = Convert.ToChar((AssinaturaCliente.EnumStatus.Aguardando)).ToString();
                                bloqueioID = assinatura.BloqueioID;
                            }

                            try
                            {
                                bd.IniciarTransacao();

                                oAssinaturaCliente.Inserir(bd);

                                if (ingressos.Count != 10)
                                {
                                    throw new Exception("Quantidade de ingressos diferente de 10!!!!");
                                }

                                foreach (var ingresso in ingressos)
                                {
                                    if (bd.Executar(
                                            string.Format(
                                                @"UPDATE tIngresso SET Status = 'B', BloqueioID = {0}, ClienteID = {1}, AssinaturaClienteID = {2} WHERE ID = {3} ",
                                                bloqueioID, assinatura.ClienteID, oAssinaturaCliente.Control.ID, ingresso)) != 1)
                                    {
                                        throw new Exception("Não foi possível atualizar o ingresso: " + ingresso);
                                    }
                                }


                                bd.Executar("UPDATE AssinantesCultura SET Importado = 1, Erro = '' WHERE UserID = " + assinatura.ID);

                                bd.FinalizarTransacao();
                            }
                            catch (Exception ex)
                            {
                                bd.DesfazerTransacao();
                                throw ex;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        bd.Executar("UPDATE AssinantesCultura SET Importado = 0, Erro = '" + ex.Message + "' WHERE UserID = " + assinatura.ID);
                    }
                }
            }
            finally
            {
                bd.Fechar();
            }
        }