En esta sección puede encontrar ejemplos que cubren una variedad de opciones de administración de trabajos. Estos ejemplos deberían darle una idea sobre cómo usar las secuencias de comandos PHP en MyQ. También puede sustituir las propiedades y los métodos de los ejemplos para usarlos como componentes básicos de secuencias de comandos más complejas.

Acciones en función del número de páginas
Mueva trabajos con una mayor cantidad de páginas en color a una cola monocromática.

if ($this->colorCount>20) {
 $this->moveToQueue("ForceMonochrome");
 }
PHP

Elimine trabajos con una gran cantidad de páginas.

if ($this->pageCount>500) {
 $this->delete();
 }
PHP

Acciones basadas en el tamaño del trabajo
Mueva trabajos grandes a una cola dedicada.

if ($this->dataSize>1000000) {
 $this->moveToQueue("LargeJobs");
 }
PHP

Eliminar trabajos de gran tamaño.

if ($this->dataSize>5000000) {
 $this->delete();
 }
PHP

Acciones basadas en formato papel
Mueva trabajos con formato de papel A3 a una cola dedicada.

if ($this->paper===6) {
 $this->moveToQueue("LargePaperFormat");
 }
PHP

Acciones basadas en el propietario del trabajo
Mueva los trabajos de un determinado propietario a una cola dedicada.

if ($this->owner->name==="eliot.kate") {
 $this->moveToQueue("EliotKate");
 }
PHP

Cambiar el propietario del trabajo.

if ($this->owner->name==="eliot.kate") {
 $this->owner=MyQ()->getUserByUserName("simon.kate");
 }
PHP

Acciones basadas en la propiedad dúplex
Mueva trabajos dúplex a una cola dúplex.

if ($this->duplex) {
 $this->moveToQueue("Duplex");
 }
PHP

Mover trabajos simplex a una cola simplex.

if ($this->duplex===false) {
 $this->moveToQueue("Simplex");
 }
PHP

Acciones basadas en la propiedad del color.
Mueva trabajos de color a una cola de color.

if ($this->color) {
 $this->moveToQueue("Color");
 }
PHP

Acciones basadas en el nombre del trabajo o la aplicación de origen
Mover trabajos impresos en MS Word a una cola dedicada.

if (strpos($this->name,"Microsoft Word")!==false) {
 $this->moveToQueue("MSWord");
 }
PHP

Eliminar trabajos enviados desde Facebook.

if (strpos($this->name,'Facebook')!==false) {
 $this->delete();
 }
PHP

Acciones basadas en los derechos a una cola
Mueva los trabajos de los usuarios que no pueden imprimir de una cola a una cola diferente.

if ($this->owner->canPrintToQueue(Color)===false) {
 $this->moveToQueue(Monochrome);
 }
PHP

Acciones basadas en la pertenencia al grupo
Mover trabajos enviados por miembros de un grupo a una cola dedicada.

if ($this->owner->hasGroup(Clerks)) {
 $this->moveToQueue(Clerks);
 }
PHP

Acciones basadas en la PDL del trabajo
Mueva todos los trabajos enviados en un PDL determinado a una cola dedicada.

if ($this->lang===0) {
 $this->moveToQueue(UnknownPDL);
 }
PHP

Envío de mensajes de registro personalizados a MyQ
Enviar un mensaje de información de registro a MyQ Log.

MyQ()->logInfo("This message appears in the MyQ log.");
PHP

Acciones complejas

Si el número de páginas multiplicado por el número de copias supera un cierto número, elimine el trabajo e informe al usuario.

// get the number of pages and the number of copies
$pages_number = $this->pageCount; $copies_number = $this->copies;
// if total (pagescopies) exceeds 500, delete the job and notify its owner
if ( $pages_number $copies_number>500) {
 $this->delete(); $this->owner->sendNotification("error","Job refused", "Cannot
 print jobs exceeding 500 pages.");
}
PHP

Mover el trabajo a una cola, si está permitido.

if ($this->color) {
  if ($this->owner->canPrintToQueue("JPS2")) {
     $this->moveToQueue("JPS2");
  } else {
     $this->owner->sendEmail("Job error", "Color printing denied");
     $this->delete();
  }
}
PHP

Mover el trabajo a la primera cola personal disponible.

// get all user's queues sorted by priority
$personalQueues = $this->owner->personalQueues;
 
// loop them
foreach ($personalQueues as $q) {
    // skip queue if no printer is available
    if ($q->isAnyPrinterAvailable() === false) {
        continue;
    }
 
    // queue printer is available, move job to queue
    $this->moveToQueue($q->name);
    // job is moved, stop the loop
    break;
}
PHP