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_objeto(objeto, consumir=False): """ Inserta el objeto recibido, sea del tipo de producto que sea. """ # pylint: disable=too-many-branches if isinstance(objeto, (pclases.Rollo, pclases.RolloDefectuoso, pclases.RolloC)): if not consumir: logging.info("Insertando rollo %s (%s)...", objeto.codigo, objeto.puid) murano.create_rollo(objeto) else: prueba_rollo(objeto.codigo) elif isinstance(objeto, (pclases.Bala, pclases.BalaCable)): if not consumir: logging.info("Insertando bala %s (%s)...", objeto.codigo, objeto.puid) murano.create_bala(objeto) else: prueba_bala(objeto.codigo) elif isinstance(objeto, pclases.Bigbag): if not consumir: logging.info("Insertando bigbag %s (%s)...", objeto.codigo, objeto.puid) murano.create_bigbag(objeto) else: prueba_bigbag(objeto.codigo) elif isinstance(objeto, pclases.Caja): if not consumir: logging.info("Insertando caja %s (%s)...", objeto.codigo, objeto.puid) murano.create_caja(objeto) else: raise NotImplementedError("No se permite la creación de cajas " "sueltas con consumo. Se debe insertar" " el palé completo.") # prueba_caja(objeto.codigo) elif isinstance(objeto, pclases.Pale): if not consumir: logging.info("Insertando palé %s (%s)...", objeto.codigo, objeto.puid) murano.create_pale(objeto) else: prueba_pale(objeto.codigo) else: raise NotImplementedError("%s no soportado" % (objeto.puid))