def __init__(self, objeto = None, usuario = None): """ Constructor. objeto puede ser un objeto de pclases con el que comenzar la ventana (en lugar del primero de la tabla, que es el que se muestra por defecto). """ if utils.dialogo(titulo = "¿EXPORTAR A CSV?", texto = "¿Quiere generar también un archivo CSV por " "cada PDF que se cree a continuación?", defecto = False, tiempo = 15): csv = True ruta_csv = tempfile.NamedTemporaryFile(suffix = ".csv").name else: csv = False ruta_csv = None import informes informes.abrir_pdf(geninformes.existencias_productos( 'rollos', "%s, %s" % (utils.str_fecha(time.localtime()), time.strftime("%H:%M")), ruta_csv = ruta_csv)) if pclases.Almacen.select().count() > 1: for a in pclases.Almacen.select(): if csv: ruta_csv = tempfile.NamedTemporaryFile( suffix = "_%s.csv" % a.nombre, delete = False).name informes.abrir_pdf( geninformes.existencias_productos('rollos', "%s, %s" % ( utils.str_fecha(time.localtime()), time.strftime("%H:%M")), almacen = a, ruta_csv = ruta_csv))
def imprimir(self,boton): """ Prepara la vista preliminar para la impresión del informe """ fechastr = self.wids['e_fecha'].get_text() fecha = utils.parse_fecha(fechastr) fechastr = utils.str_fecha(fecha) fechas = pclases.HistorialExistenciasA.get_fechas_cacheadas() if fecha not in fechas: res = utils.dialogo( titulo = "EXISTENCIAS NO CACHEADAS. ¿CONTINUAR?", texto = "La fecha seleccionada no se encuentra precalculada.\n" "Esto implica que el recuento de existencias puede\n" "demorarse incluso horas. Durante este tiempo es \n" "posible que la aplicación no responda.\n\n" "¿Está seguro de que desea continuar?", padre = self.wids['ventana']) else: res = utils.dialogo(titulo = "¿CONTINUAR?", texto = "La operación puede demorarse durante algún tiempo\n" "y dar la impresión de que la aplicación no responde.\n" "¿Desea continuar?", padre = self.wids['ventana']) if not res: return vpro = ventana_progreso.VentanaProgreso(padre = self.wids['ventana']) self.wids['ventana'].window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) vpro.mostrar() act = 0.0 tot = 2 + pclases.Almacen.select().count() msgtexto = 'Calculando existencias a %s.' % fechastr vpro.set_valor(act/tot, msgtexto) vpro._ventana.realize() vpro._ventana.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) while gtk.events_pending(): gtk.main_iteration(False) import informes try: vpro.set_valor(act/tot, msgtexto) informes.abrir_pdf(geninformes.existencias_productos('rollos', fechastr, hasta = fecha)) act += 1 vpro.set_valor(act/tot, msgtexto) informes.abrir_pdf(geninformes.existencias_productos('balas', fechastr, hasta = fecha)) act += 1 vpro.set_valor(act/tot, msgtexto) for a in pclases.Almacen.select(orderBy = "id"): informes.abrir_pdf(geninformes.existencias_productos('rollos', fechastr, hasta = fecha, almacen = a)) act += 1 vpro.set_valor(act/tot, msgtexto) informes.abrir_pdf(geninformes.existencias_productos('balas', fechastr, hasta = fecha, almacen = a)) act += 1 vpro.set_valor(act/tot, msgtexto) finally: vpro.ocultar() vpro._ventana.window.set_cursor(None) self.wids['ventana'].window.set_cursor(None)
def __init__(self, objeto = None, usuario = None): """ Constructor. objeto puede ser un objeto de pclases con el que comenzar la ventana (en lugar del primero de la tabla, que es el que se muestra por defecto). """ if utils.dialogo(titulo = "¿EXPORTAR A CSV?", texto = "¿Quiere generar también un archivo CSV por " "cada almacén?", defecto = False, tiempo = 15): csv = True ruta_csv = tempfile.NamedTemporaryFile(suffix = ".csv").name else: csv = False ruta_csv = None import informes informes.abrir_pdf(geninformes.existencias_productos( 'balas', "%s, %s" % (utils.str_fecha(time.localtime()), time.strftime("%H:%M")), ruta_csv = ruta_csv)) if pclases.Almacen.select().count() > 1: for a in pclases.Almacen.select(): if csv: ruta_csv = tempfile.NamedTemporaryFile( suffix = "_%s.csv" % a.nombre, delete = False).name informes.abrir_pdf( geninformes.existencias_productos( 'balas', "%s, %s" % ( utils.str_fecha(time.localtime()), time.strftime("%H:%M")), almacen = a, ruta_csv = ruta_csv)) if utils.dialogo(titulo = "¿IMPRIMIR DESGLOSE?", texto = "¿Desea imprimir un desglose por lote de la" " fibra en almacén? \n\nNOTA: Puede " "tardar algún tiempo.", defecto = "No"): informes.abrir_pdf( geninformes.existencias_fibra_por_lote("%s, %s" % ( utils.str_fecha(time.localtime()), time.strftime("%H:%M"))))