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