def generar_etiquetas(self, balas): """ Genera una lista de diccionarios con los datos de las balas para generar sus etiquetas. """ from listado_balas import preparar_datos_etiquetas_balas_cable data = preparar_datos_etiquetas_balas_cable(balas) if data: from formularios import reports reports.abrir_pdf(geninformes.etiquetasBalasCableEtiquetadora(data)) for bala in balas: pclases.Auditoria.modificado(bala.articulo, None, __file__, "Impresión de etiqueta para bala %s." % ( bala.articulo.get_info()))
def etiquetar(self, boton): """ Genera el PDF de las etiquetas seleccionadas en el TreeView. Para poder imprimir es necesario que el usuario tenga el permiso "escritura" sobre la ventana. """ # TODO: Falta adaptar esto a cajas. Para palés ya está. ventana = pclases.Ventana.select( # OJO: HARCODED pclases.Ventana.q.fichero == "listado_balas.py")[0] if (self.usuario == None or self.usuario.get_permiso(ventana).escritura): sel = self.wids['tv_balas'].get_selection() model, paths = sel.get_selected_rows() balas_defecto = [] for path in paths: balas_defecto.append(model[path][0]) balas_defecto.sort() balas_defecto = ', '.join(balas_defecto) from formularios import reports entrada = utils.dialogo_entrada(titulo='ETIQUETAS', texto="Introduzca los números de bala o bigbags que " "desea etiquetar separados por coma o espacio." "\nUse guiones para especificar rangos.)", valor_por_defecto = balas_defecto, padre = self.wids['ventana']) if entrada != None: entrada = entrada.replace(",", " ") codigos = [c for c in entrada.split() if c.strip() != ""] balas, bigbags, balas_cable, pales = separar_balas_y_bigbags_from_codigos(codigos) etiqsbalas = preparar_datos_etiquetas_balas(balas) etiqsbalascable = preparar_datos_etiquetas_balas_cable(balas_cable) if etiqsbalas: etpdf = geninformes.etiquetasBalasEtiquetadora(etiqsbalas) for bala in balas: pclases.Auditoria.modificado(bala.articulo, self.usuario, __file__, "Impresión de etiqueta para bala %s" % ( bala.articulo.get_info())) reports.abrir_pdf(etpdf) if bigbags: try: fetiqueta = bigbags[0].productoVenta.camposEspecificosBala.modeloEtiqueta.get_func() etpdf = geninformes.etiquetasBigbags(bigbags, hook=fetiqueta) except: etpdf = geninformes.etiquetasBigbags(bigbags) for bigbag in bigbags: pclases.Auditoria.modificado(bigbag.articulo, self.usuario, __file__, "Impresión de etiqueta para bigbag %s" % ( bigbag.articulo.get_info())) reports.abrir_pdf(etpdf) if balas_cable: etpdf = geninformes.etiquetasBalasCableEtiquetadora( etiqsbalascable) for bala_cable in balas_cable: pclases.Auditoria.modificado(bala_cable.articulo, self.usuario, __file__, "Impresión de etiqueta para bala de cable %s"%( bala_cable.articulo.get_info())) reports.abrir_pdf(etpdf) if pales: from partes_de_fabricacion_bolsas import imprimir_etiquetas_pales imprimir_etiquetas_pales(pales, self.wids['ventana'], mostrar_dialogo = True) else: utils.dialogo_info(titulo = "USUARIO SIN PRIVILEGIOS", texto = "Para poder crear etiquetas de balas existentes es ne"\ "cesario\nque tenga permiso de escritura sobre la ven"\ "tana actual.", padre = self.wids['ventana'])