Nesta seção, você encontrará exemplos que abrangem uma variedade de opções de gerenciamento de trabalhos. Esses exemplos devem dar uma ideia de como usar os scripts PHP no MyQ. Você também pode substituir as propriedades e métodos nos exemplos para usá-los como blocos de construção de scripts mais complexos.
Ações baseadas no número de páginas
Mova trabalhos com um número maior de páginas coloridas para uma fila de trabalhos monocromática.
if ($this->colorCount>20) {
$this->moveToQueue("ForceMonochrome");
}
Excluir trabalhos com um grande número de páginas.
if ($this->pageCount>500) {
$this->delete();
}
Ações baseadas no tamanho do trabalho
Mova trabalhos grandes para uma fila dedicada.
if ($this->dataSize>1000000) {
$this->moveToQueue("LargeJobs");
}
Exclua trabalhos com tamanho excessivo.
if ($this->dataSize>5000000) {
$this->delete();
}
Ações com base no formato
do papel Mova trabalhos no formato A3 para uma fila de trabalhos dedicada.
if ($this->paper==="a3") {
$this->moveToQueue("LargePaperFormat");
}
Ações com base no proprietário
do trabalho Mova trabalhos de um determinado proprietário para uma fila dedicada.
if ($this->owner->name==="eliot.kate") {
$this->moveToQueue("EliotKate");
}
Altere o proprietário do trabalho.
if ($this->owner->name==="eliot.kate") {
$this->owner=MyQ()->getUserByUserName("simon.kate");
}
Ações com base na propriedade
de frente e verso Mova trabalhos em duplex para uma fila de duplex.
if ($this->duplex) {
$this->moveToQueue("Duplex");
}
Mova trabalhos simplex para uma fila simplex.
if ($this->duplex===false) {
$this->moveToQueue("Simplex");
}
Ações baseadas na propriedade
de cor Mova trabalhos coloridos para uma fila de cor.
if ($this->color) {
$this->moveToQueue("Color");
}
Ações baseadas no nome do trabalho ou no aplicativo
de origem Mova trabalhos impressos no MS Word para uma fila dedicada.
if (strpos($this->name,"Microsoft Word")!==false) {
$this->moveToQueue("MSWord");
}
Excluir trabalhos enviados do Facebook.
if (strpos($this->name,'Facebook')!==false) {
$this->delete();
}
Ações baseadas nos direitos de acesso a uma fila
Mova os trabalhos de usuários que não têm permissão para imprimir em uma fila de impressão para uma fila de trabalhos diferente
if ($this->owner->canPrintToQueue("Color")===false) {
$this->moveToQueue("Monochrome");
}
Ações baseadas na filiação
a um grupo Mova os trabalhos enviados por membros de um grupo para uma fila dedicada
if ($this->owner->hasGroup("Clerks")) {
$this->moveToQueue("Clerks");
}
Ações baseadas na PDL do trabalho
: mova todos os trabalhos enviados em uma determinada PDL para uma fila dedicada
if ($this->lang===0) {
$this->moveToQueue("UnknownPDL");
}
Envio de mensagens de log personalizadas para o MyQ
Envie uma mensagem de informação de log para o MyQ Log
MyQ()->logInfo("This message appears in the MyQ log.");
Ações complexas
Se o número de páginas multiplicado pelo número de cópias exceder um determinado valor, exclua o trabalho e informe o usuário
// 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.");
}
Mover o trabalho para uma fila de trabalhos, se permitido
if ($this->color) {
if ($this->owner->canPrintToQueue("JPS2")) {
$this->moveToQueue("JPS2");
} else {
$this->owner->sendEmail("Job error", "Color printing denied");
$this->delete();
}
}
Mover o trabalho para a primeira fila pessoal disponível
// 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;
}