Esempio n. 1
0
        public List <HistoricoPorPeriodo> FotoAtual(int assinaturaTipoID)
        {
            BD bd = new BD();

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

                List <HistoricoPorPeriodo> lista = new List <HistoricoPorPeriodo>();
                if (DateTime.Now.Date < oAssinaturaTipo.RenovacaoInicio.Valor)
                {
                    return(null);
                }

                bd.Executar("EXEC historicoAcoesPorPeriodo " + assinaturaTipoID + ", '" + oAssinaturaTipo.RenovacaoInicio.Valor.ToString("yyyyMMddHHmmss") + "', '" + oAssinaturaTipo.RenovacaoFim.Valor.AddDays(1).ToString("yyyyMMddHHmmss") + "', '" + (DateTime.Now.Year + 1) + "'");
                if (bd.Consulta().Read())
                {
                    lista.Add(new HistoricoPorPeriodo()
                    {
                        Periodo   = 1,
                        Historico = new HistoricoAcoes()
                        {
                            Renovados         = bd.LerInt("Renovados"),
                            TrocasSinalizadas = bd.LerInt("TrocasSinalizadas"),
                            Aquisicoes        = bd.LerInt("Aquisicoes"),
                            Desistencias      = bd.LerInt("Desistencias"),
                        },
                    });
                }

                bd.FecharConsulta();

                if (DateTime.Now.Date < oAssinaturaTipo.TrocaPrioritariaInicio.Valor)
                {
                    return(lista);
                }

                bd.Executar("EXEC historicoAcoesPorPeriodo " + assinaturaTipoID + ", '" + oAssinaturaTipo.TrocaPrioritariaInicio.Valor.ToString("yyyyMMddHHmmss") + "', '" + oAssinaturaTipo.TrocaFim.Valor.AddDays(1).ToString("yyyyMMddHHmmss") + "', '" + (DateTime.Now.Year + 1) + "'");
                if (bd.Consulta().Read())
                {
                    lista.Add(new HistoricoPorPeriodo()
                    {
                        Periodo   = 2,
                        Historico = new HistoricoAcoes()
                        {
                            Renovados         = bd.LerInt("Renovados"),
                            TrocasSinalizadas = bd.LerInt("TrocasSinalizadas"),
                            Aquisicoes        = bd.LerInt("Aquisicoes"),
                            Desistencias      = bd.LerInt("Desistencias"),
                            TrocasEfetuadas   = bd.LerInt("TrocasEfetuadas"),
                        },
                    });
                }

                bd.FecharConsulta();

                if (DateTime.Now.Date < oAssinaturaTipo.NovaAquisicaoInicio.Valor)
                {
                    return(lista);
                }

                bd.Executar("EXEC historicoAcoesPorPeriodo " + assinaturaTipoID + ", '" + oAssinaturaTipo.NovaAquisicaoInicio.Valor.ToString("yyyyMMddHHmmss") + "', '" + oAssinaturaTipo.NovaAquisicaoFim.Valor.AddDays(1).ToString("yyyyMMddHHmmss") + "', '" + (DateTime.Now.Year + 1) + "'");
                if (bd.Consulta().Read())
                {
                    lista.Add(new HistoricoPorPeriodo()
                    {
                        Periodo   = 3,
                        Historico = new HistoricoAcoes()
                        {
                            Renovados         = bd.LerInt("Renovados"),
                            TrocasSinalizadas = bd.LerInt("TrocasSinalizadas"),
                            Aquisicoes        = bd.LerInt("Aquisicoes"),
                            Desistencias      = bd.LerInt("Desistencias"),
                            TrocasEfetuadas   = bd.LerInt("TrocasEfetuadas"),
                        },
                    });
                }

                return(lista);
            }
            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();
            }
        }