Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)