En esta sección puede encontrar ejemplos que cubren una variedad de opciones de gestión de trabajos. Estos ejemplos deberían darle una idea de cómo utilizar los scripts de PHP en MyQ. También puede sustituir las propiedades y métodos de los ejemplos para utilizarlos como bloques de construcción de scripts más complejos.

  • Acciones basadas en el número de páginas
    Mueve los trabajos con un mayor número de páginas en color a una cola monocromática.
    if ($this->colorCount>20) {$this->moveToQueue("ForceMonochrome");}
    Eliminar trabajos con un gran número de páginas.
    if ($this->pageCount>500) {$this->delete();}

  • Acciones basadas en el tamaño del trabajo
    Mueve los trabajos grandes a una cola dedicada.
    if ($this->dataSize>1000000) {$this->moveToQueue("LargeJobs");}
    Eliminar los trabajos de gran tamaño.
    if ($this->dataSize>5000000) {$this->delete();}

  • Acciones basadas en el formato del papel
    Mueve los trabajos con el formato de papel a3 a una cola dedicada.
    if ($this->paper===6) {$this->moveToQueue("LargePaperFormat");}

  • Acciones basadas en el propietario del trabajo
    Mueve los trabajos de un determinado propietario a una cola dedicada.
    if ($this->owner->name==="eliot.kate") {$this->moveToQueue("EliotKate");}
    Cambiar el propietario del trabajo.
    if ($this->owner->name==="eliot.kate")
    {$this->owner=MyQ()->getUserByUserName("simon.kate");}

  • Acciones basadas en la propiedad del dúplex
    Mover los trabajos dúplex a una cola dúplex.
    if ($this->duplex) {$this->moveToQueue("Duplex");}
    Mueve los trabajos simplex a una cola simplex.
    if ($this->duplex===false) {$this->moveToQueue("Simplex");}

  • Acciones basadas en la propiedad del color
    Mueve los trabajos de color a una cola de color.
    if ($this->color) {$this->moveToQueue("Color");}

  • Acciones basadas en el nombre del trabajo o la aplicación de origen
    Mueve los trabajos impresos en MS Word a una cola dedicada.
    if (strpos($this->nombre, "Microsoft Word")!==false)
    {$this->moveToQueue("MSWord");}
    Eliminar trabajos enviados desde Facebook.
    if (strpos($this->nombre,'Facebook')!==false) {$this->delete();}

  • Acciones basadas en los derechos de una cola
    Mover los trabajos de los usuarios que no pueden imprimir en una cola a otra cola diferente
    if ($this->owner->canPrintToQueue(Color)===false)
    {$this->moveToQueue(Monochrome);}

  • Acciones basadas en la pertenencia a un grupo
    Mover los trabajos enviados por los miembros de un grupo a una cola dedicada
    if ($this->owner->hasGroup(Clerks)){$this->moveToQueue(Clerks);}

  • Acciones basadas en el PDL del trabajo
    Mover todos los trabajos enviados en un determinado PDL a una cola dedicada
    if ($this->lang===0){$this->moveToQueue(UnknownPDL);}

  • Envío de mensajes de registro personalizados a MyQ
    Enviar un mensaje de información de registro a MyQ Log
    MyQ()->logInfo("Este mensaje aparece en el registro de MyQ");

  • Acciones complejas

    • Si el número de páginas multiplicado por el número de copias supera un número determinado, elimina el trabajo e informa al usuario
      // obtener el número de páginas y el número de copias
      $pages_number = $this->pageCount; $copies_number = $this->copies;
      // si el total (pagescopies) excede de 500, eliminar el trabajo y notificar a su propietario
      si ( $número_de_páginas $número_de_copias>500)
      {$this->delete(); $this->owner->sendNotification("error", "Trabajo rechazado", "No se puede
      trabajos de impresión que superen las 500 páginas");
      }

    • Enviar los trabajos de color a una cola dedicada; si el propietario del trabajo no tiene derechos sobre esta cola, eliminar el trabajo e informar al usuario
      // si el trabajo es de color, realiza la siguiente acción
      if ($this->color) {
      // si el propietario tiene derechos sobre la cola, mueve el trabajo a la cola de Color
      if ($this->owner->canPrintToQueue("Color")) {
      $this->moveToQueue("Color"); }
      // si no tienen derechos sobre la cola, eliminar el trabajo e informar al usuario
      si no {
      $this->owner->sendNotification("error", "Trabajo rechazado", "Impresión en color denegada");
      $this->delete(); }}