def get(self, request, *args, **kwargs): # Indicamos el tipo de contenido a devolver, en este caso un pdf campana = Campana.objects.get(pk=self.kwargs['pk_campana']) service = EstadisticasService() hoy_ahora = datetime.datetime.today() hoy = hoy_ahora.date() # hoy = datetime.date(2015, 1, 1) estadisticas = service.general_campana(campana, hoy, hoy_ahora) response = HttpResponse(content_type='application/pdf') buffer = BytesIO() # Canvas nos permite hacer el reporte con coordenadas X y Y pdf = canvas.Canvas(buffer) self.cabecera(pdf, campana) self.tabla_calificacion(pdf, estadisticas['dict_campana_counter'], estadisticas['total_asignados']) self.tabla_no_atendidos(pdf, estadisticas['dict_no_atendido_counter'], estadisticas['total_no_atendidos']) pdf.showPage() self.tabla_agente(pdf, estadisticas['agentes_venta'], estadisticas['calificaciones']) pdf.showPage() pdf.save() pdf = buffer.getvalue() buffer.close() response.write(pdf) return response
def form_valid(self, form): fecha = form.cleaned_data.get('fecha') fecha_desde, fecha_hasta = fecha.split('-') fecha_desde = convert_fecha_datetime(fecha_desde) fecha_hasta = convert_fecha_datetime(fecha_hasta) fecha_desde = datetime.datetime.combine(fecha_desde, datetime.time.min) fecha_hasta = datetime.datetime.combine(fecha_hasta, datetime.time.max) # generar el reporte grafico de acuerdo al periodo de fecha seleccionado service = EstadisticasService(self.get_object(), fecha_desde, fecha_hasta) graficos_estadisticas = service.general_campana() # genera el reporte pdf de la campana service_pdf = ReporteCampanaPDFService() service_pdf.crea_reporte_pdf(self.get_object(), graficos_estadisticas) return self.render_to_response( self.get_context_data(graficos_estadisticas=graficos_estadisticas, pk_campana=self.kwargs['pk_campana']))
def get(self, request, *args, **kwargs): campana = self.get_object() if not campana: messages.warning(self.request, _(u"Usted no puede acceder a esta campaña.")) return redirect('index') hoy_ahora = fecha_hora_local(timezone.now()) hoy = hoy_ahora.date() fecha_desde = datetime.datetime.combine(hoy, datetime.time.min) fecha_hasta = datetime.datetime.combine(hoy_ahora, datetime.time.max) service = EstadisticasService(campana, fecha_desde, fecha_hasta) # genera los reportes grafico de la campana graficos_estadisticas = service.general_campana() # generar el reporte pdf service_pdf = ReporteCampanaPDFService() service_pdf.crea_reporte_pdf(campana, graficos_estadisticas) return self.render_to_response( self.get_context_data(graficos_estadisticas=graficos_estadisticas, pk_campana=self.kwargs['pk_campana']))
def get(self, request, *args, **kwargs): campana = self.get_object() if not campana: messages.warning(self.request, _(u"Usted no puede acceder a esta campaña.")) return redirect('index') service = EstadisticasService() hoy_ahora = fecha_hora_local(timezone.now()) hoy = hoy_ahora.date() # genera reporte de llamadas contactados calificados_csv = ReporteCampanaContactadosCSV() calificados_csv.crea_reporte_csv(campana, hoy, hoy_ahora) # genera los reportes grafico de la campana graficos_estadisticas = service.general_campana( campana, hoy, hoy_ahora) # generar el reporte pdf service_pdf = ReporteCampanaPDFService() service_pdf.crea_reporte_pdf(campana, graficos_estadisticas) return self.render_to_response( self.get_context_data(graficos_estadisticas=graficos_estadisticas, pk_campana=self.kwargs['pk_campana']))