def prueba_rollo(codigo=None): """ Si no se especifica, manda el último rollo (A) fabricado. """ if not codigo: r = pclases.Rollo.select(orderBy="-id")[0] else: try: r = pclases.Rollo.selectBy(codigo=codigo)[0] except IndexError: # Será un rollo B entonces. try: r = pclases.RolloDefectuoso.selectBy(codigo=codigo)[0] except IndexError: # Es un rollo C. No queda otra. r = pclases.RolloC.selectBy(codigo=codigo)[0] logging.info("Insertando rollo %s (%s) [%s]...", r.codigo, r.articulo.productoVenta.descripcion, r.puid) murano.create_rollo(r) if r.articulo.parteDeProduccion: logging.warning( "WARNING: Considerando consumos del parte de producción completo.") for c in r.articulo.parteDeProduccion.consumos: logging.info("Consumiendo %f de %s...", c.cantidad, c.productoCompra.descripcion) murano.consumir(c.productoCompra, c.cantidad) # Para probar, consumiré la partida de carga completa: if r.articulo.parteDeProduccion.partidaCarga: for b in r.articulo.parteDeProduccion.partidaCarga.balas: # El almacén donde estaba la bala **antes** de consumirla está # en Murano. En ginn el almacén es None. Confiamos en Murano # (mediante la función delete_articulo del módulo murano) # para buscar e indicar de qué almacén debe consumir la bala. # Sería muy complicado (y más lento) determinarlo en ginn antes # de lanzar el consumo a la pasarela. logging.info("Consumiendo %s (%s)...", b.codigo, b.puid) murano.delete_articulo(b.articulo)
def prueba_bala(codigo=None): """ Inserta la bala del código recibido o la última del sistema si es None. """ if not codigo: b = pclases.Bala.select(orderBy="-id")[0] else: try: b = pclases.Bala.selectBy(codigo=codigo)[0] except IndexError: # Debe ser una bala de cable (serie Z). b = pclases.BalaCable.selectBy(codigo=codigo)[0] logging.info("Insertando bala %s (%s) [%s]...", b.codigo, b.articulo.productoVenta.descripcion, b.puid) murano.create_bala(b) if hasattr(b, "parteDeProduccion") and b.articulo.parteDeProduccion: # TODO: PORASQUI. ¿Se podría calcular la parte proporcional, o es # demasiado para unas pruebas? logging.warning( "WARNING: Considerando consumos del parte de producción completo.") for c in b.articulo.parteDeProduccion.consumos: if c.silo: logging.info("Consumiendo %f de %s (%s)...", c.cantidad, c.productoCompra.descripcion, c.silo.nombre) else: logging.info("Consumiendo %f de %s...", c.cantidad, c.productoCompra.descripcion) murano.consumir(c.productoCompra, c.cantidad, consumo=c)
def prueba_bigbag(codigo=None): """ Inserta el último bigbag del sistema o el del código recibido. """ if not codigo: bb = pclases.Bigbag.select(orderBy="-id")[0] else: bb = pclases.Bigbag.selectBy(codigo=codigo)[0] logging.info("Insertando bigbag %s (%s) [%s]...", bb.codigo, bb.articulo.productoVenta.descripcion, bb.puid) murano.create_bigbag(bb) if bb.articulo.parteDeProduccion: logging.warning( "WARNING: Considerando consumos del parte de producción completo.") for c in bb.articulo.parteDeProduccion.consumos: if c.silo: logging.info("Consumiendo %f de %s (%s)...", c.cantidad, c.productoCompra.descripcion, c.silo.nombre) else: logging.info("Consumiendo %f de %s...", c.cantidad, c.productoCompra.descripcion) murano.consumir(c.productoCompra, c.cantidad, consumo=c)
def prueba_pale(codigo=None): """ Inserta el último palé o el del código recibido. """ if not codigo: p = pclases.Pale.select(orderBy="-id")[0] else: p = pclases.Pale.selectBy(codigo=codigo)[0] logging.info("Insertando pale %s (%s) [%s]...", p.codigo, p.productoVenta.descripcion, p.puid) murano.create_pale(p) if p.parteDeProduccion: logging.warning( "WARNING: Considerando consumos del parte de producción completo.") for c in p.parteDeProduccion.consumos: logging.info("Consumiendo %f de %s...", c.cantidad, c.productoCompra.descripcion) murano.consumir(c.productoCompra, c.cantidad) # Consumo los bigbags de fibra empleados en rellenar las bolsas for bb in p.parteDeProduccion.bigbags: logging.info("Consumiendo %s (%s)...", bb.codigo, bb.puid) murano.delete_articulo(bb.articulo)