HOME
Documentação
Download
Contribuições
Links
Contato
Versão Atual: GIT IBQUOTA 3.1
Versão Antiga: IBQUOTA 2.4.1
|
Modelagem de Implementação do IBQUOTA 2
Descrição das funções PERL
Função |
Descrição |
Responsável |
Status |
LER_CONFIGURACOES |
Lê as variáveis GLOBAIS do sistema, do arquivo de configuração ibquota.conf. PATH_LPR; PATH_LPSTAT; PATH_LPRM; TEMPO_DE_ESPERA; PATH_MYSQL; HOST_BANCO; PORTA_BANCO; USUARIO_BANCO; SENHA_BANCO; NOME_BANCO; Se alguma destas variáveis não pude ser preenchida com sucesso, gravar no arquivo de log, ibquota.log, o erro ocorrido.
|
Rodrigo Zadra Armond |
OK |
INICIALIZA _QUOTA_PADRAO |
Inicializa as quotas de impressão automaticamente de acordo com a tabela "INICIALIZACAO".
Deve ser observado que há tipos de políticas que possuem as seguintes peculiaridades:
QUOTA_ACUMULATIVA: Se este campo estiver setado (1) a nova quota será: quota antiga mais quota padrão.
QUOTA_INFINITA: Se estiver setado (1), não fazer nada.
OBS: No campo "tabela_modulo_perl" está o nome da tabela onde as quotas de usuários deverão ser inicializadas.
OBS1: Limitar a quantidade maxima de quota de um usuário, quando este estiver com quota_acululativa setado. Limitar em 16000.
|
Valcir C. |
OK |
GRAVA_LOG (mensagem) |
Grava a "mensagem" no arquivo de log, ibquota.log. |
Rodrigo Zadra Armond |
OK |
REMOVE_JOB (impressora, job) |
Remove o job especificado da impressora. Utilizado para remover jobs da impressora VIRTUAL. |
Valcir C. |
OK |
TESTA_JOB (nome_arq_job) |
Testar: se o arquivo temporário do job existe; |
Valcir C. |
OK |
MONTA_ARQUIVO _JOB (job) |
Retornar o nome do arquivo temporário na fila de impressão virtual de um job especificado. Lembre-se que o arquivo tem o formato d00001-001 (quase sempre), onde o "00001" é o número do job. |
Valcir C. |
OK |
NUMERO_PAGINAS _JOB (arquivo_job) |
Se o tipo do job for PostScript, chamar a função PSCOUNTER(). Se for PCL, chamar a PCLCOUNTER(). Se for outro tipo retornar ZERO e gravar a mensagem de log "Formato de arquivo invalido.". O parametro "arquivo_job" dever ter o path inteiro do arquivo. |
Valcir C. |
OK |
FORMATO_ARQ (arquivo_job) |
Retorna o formato do arquivo. O parametro deve tb conter o path do arquivo. |
Valcir C. |
OK |
PSCOUNTER (arquivo_job) |
Retorna o número de páginas do arquivo PS. |
Valcir C. |
OK |
PCLCOUNTER (arquivo_job) |
Retorna o número de páginas do arquivo PCL. |
Rodrigo Zadra Armond |
OK |
LISTA_IMPRESSORAS |
Retorna a lista de impressoras cadastradas no sistema QUE esteja atribuída a pelo menos um grupo de usuários. |
Valcir C. |
OK |
LISTA_JOBS _IMPRESSORA (impressora) |
Retorna uma lista com os jobs da impressora especificada. |
Valcir C. |
OK |
DONO_JOB (impressora,job) |
Retorna o dono do job. |
Valcir C. |
OK |
TABELA_QUOTA_IMPRESSAO (impressora, login) |
Retorna o nome da tabela de quotas do usuário, que se encontra no campo "tabela_modulo_perl" da tabela tipo_politica.
|
Valcir C. |
OK |
VALOR_PAGINA_IMPRESSAO (impressora, login) |
Retorna o valor de cada pagina. Se quota infinita retornar 0.
|
Valcir C. |
OK |
QUOTA_LOGIN (impressora, login) |
Retorna a quota de impressão do usuário (login) para a impressora especificada.
Se a quota for infinita, retornar "-1".
Esta função serve para a maioria das políticas de impressão.
Ela acessa a tabela de quotas do usuário que se encontra no campo "tabela_modulo_perl" que se encontra na tabela tipo_politica.
Se a tabela contida no campo "tabela_modulo_perl" não existir retornar "0" e gravar no log que a mesma não existe.
|
Valcir C. |
OK |
IMPRIME_BANNER (login, impressora) |
Se o tipo de política aceitar banner: ler o arquivo de banner e trocar os símbolos.
Veja tabela de símbolos:
_USUARIO_ = Nome do dono do job.
_JOB_ = Número do job.
_IMPRESSORA_ = Nome da impressora.
_PAGINAS_ = Quantidade de páginas do job.
_QUOTA_ATUAL_ = Imprime a quota atual do
usuário (já debitado a
impressão corrente).
_DATA_ = Data atual.
_HORA_ = Hora Atual.
OBS: O Banner será impresso diretamente na impressora REAL.
|
Valcir C. |
OK |
DEBITA_QUOTA _USUARIO (arquivo_job,login, impressora) |
Verifica o valor da impressão por página e debita da quota do usuário(login). Evetuar os logs de impressoes. Se quota infinita retornar 1. Se quota insuficiente retornar 0. Se quota suficiente retornar 1. |
Valcir C. |
OK |
TESTA_QUOTA _INFINITA (login, impressora) |
Através do login e impressora verificar se a política está setada como quota infinita. Se for quota infinita retornar 1. |
Valcir C. |
OK |
TESTA_QUOTA _ACUMULATIVA (login, impressora) |
Através do login e impressora verificar se a política está setada como quota acumulativa. Se for quota acumulativa retornar 1. |
Valcir C. |
OK |
EXECUTA_MODULO _IMPRESSAO_USUARIO (login,impressora, arquivo) |
Identifica e executa a função que controla o módulo de impressão. Se o campo "funcao_perl" estiver em branco ou conter a string "padrao" chamar a função "IMPRIME_JOB" |
Valcir C. |
OK |
IMPRIME_JOB (login,impressora, arquivo) |
Imprime o arquivo passado por parametro. Verifica se quota infinita. Verifica quota do usuario. Verifica BANNER. Está função serve para a maioria das politicas de impressão. |
Valcir C. |
OK |
MANDA_ARQ_IMPRESSORA (impressora,arquivo,login) |
Imprime o arquivo passado por parametro na impressora REAL. A impressora passador por parametro é a VIRTUAL. Imprimir o arquivo como o login sendo o dono do job. |
Valcir C. |
OK |
DORMIR(segundos) |
Coloca o IBQUOTA para "dormir" os seguntos especificados. Utilizando o comando sleep do Sistema Operacional. |
Valcir C. |
OK |
NOME_ESTACAO_JOB |
Retorna o nome da estação que enviou o JOB. |
Valcir C. |
OK |
DIA_DO_MES |
Retorna o dia do mes. |
Valcir C. |
OK |
SPOOL_IMPRESSORA(impressora) |
Retorna o path da fila de impressão da impressora Virtual especificada. Ex "/usr/local/cups/var/spool/" |
Valcir C. |
OK |
MANDA_ARQ _IMPRESSORA (impressora,arquivo_job,login) |
Manda o arquivo literalmente para a impressora, utiliza o comando LPR. Retorna 0 se tudo ok e 1 se houve algum problema. |
Valcir C. |
OK |
EXECUTA_BANCO(sql) |
Executa a variavel sql passada como parametro e retorna de resultado uma lista. Se houver erro mostrar o variavel sql na tela e retornar NULL. Decidir o acesso ao banco, via script ou via DBI. |
Valcir C. |
50% |
GRAVA_LOG_ IMPRESSOES (login,impressora,erro) |
Preenche o registro da tabela "impressoes". |
Valcir C. |
OK |
|
|
|
- |
Código fonte do "main" do IBQUOTA 2
#!/usr/bin/perl -w
#
# IBQUOTA 2.0
# 29/03/04 - Valcir C.
#
# Inserir cabecalho padrao, com a GPL
# Variavel com valores das configuracoes utilizadas no script
%configuracoes=("PATH_LPR"," ","PATH_LPSTAT"," ",
"PATH_LPRM"," ","TEMPO_DE_ESPERA"," ",
"PATH_MYSQL"," ","USUARIO_BANCO"," ",
"SENHA_BANCO"," ","NOME_BANCO"," ",
"HOST_BANCO"," ","PORTA_BANCO"," ");
#Adiciona as funcoes utilizadas
require "funcoes.pl";
#use DBI();
#Ler as configuracoes
&LER_CONFIGURACOES();
$dia = &DIA_DO_MES();
$hoje = $dia;
while (1 == 1) { # "infinito"
#Verifica se eh um novo dia, se sim, executar a funcao INICIALIZA_QUOTA_PADRAO
$hoje = &DIA_DO_MES;
if ($hoje != $dia) {
&INICIALIZA_QUOTA_PADRAO();
$dia = $hoje;
}
@impressoras = &LISTA_IMPRESSORAS();
foreach $impressora (@impressoras) {
@jobs = &LISTA_JOBS_IMPRESSORA($impressora);
#Verifica se ha jobs
if ($#jobs < 1) {
next; # proxima impressora
}
$SPOOL_IMPRESSORA=&SPOOL_IMPRESSORA($impressora);
foreach $job (@jobs) {
$arquivo_job = &MONTA_ARQUIVO_JOB($job);
if (&TESTA_JOB($SPOOL_IMPRESSORA + $arquivo_job) == 0) {
# Arquivo temporário de impressão inexistente
&GRAVA_LOG(4); #Arquivo temporario do job nao identificado
&REMOVE_JOB($impressora,$job);
next; # proximo job
}
$dono_job = &DONO_JOB($arquivo_job);
if ($dono_job == NULL) { # Login não cadastrado
&GRAVA_LOG(4); #Arquivo temporario do job nao identificado
&REMOVE_JOB($impressora,$job);
next; # proximo job
}
&EXECUTA_MODULO_IMPRESSAO_USUARIO($dono_job,$impressora,$arquivo_job);
}
}
&DORMIR($configuracoes{'TEMPO_DE_ESPERA'});
}
Descrição das páginas do GERENCIADOR GRÁFICO(GG)
Função / Página |
Descrição |
Responsável |
Status |
ibquotagg.gif |
Logo do Gerenciador Gráfico do IBQUOTA. |
Valcir C. |
- |
cabecalho.php |
Retorna o código HTML do cabeçalho. |
Valcir C. |
OK |
menu |
Função que retorna o código HTML do menu lateral esquerdo. |
Valcir C. |
OK |
rodape.php |
Retorna o código HTML do rodapé. |
Valcir C. |
OK |
inc_usuario.php |
Cadastra Usuário. Verificar se não há mais de um usuário com o mesmo login. Atribuir um grupo. |
Valcir C. |
OK |
alt_usuario.php |
Alterar Usuário, apenas o login. |
Valcir C. |
OK |
exc_usuario.php |
Excluir Usuário. Excluir o histórico deste usuário. |
Valcir C. |
OK |
inc_grupo.php |
Cadastra Grupo. Verificar se não há mais de um grupo com o mesmo nome. |
Carlos A N Pereira |
OK |
alt_grupo.php |
Alterar Grupo. |
Carlos A N Pereira |
OK |
exc_grupo.php |
Excluir Grupo. Verificar todos os usuários deste grupo e apagá-los. Incluindo o histórico dos mesmos. |
Carlos A N Pereira |
OK |
cad_impressora.php |
Cadastra Impressora. Verificar se não há mais de uma impressora com o mesmo nome. |
Valcir C. |
OK |
alt_impressora.php |
Alterar Impressora. |
Valcir C. |
OK |
exc_impressora.php |
Excluir Impressora. Verificar todas as políticas que utilizam esta impressora e apagá-las. Incluindo o histórico das mesmas. |
Valcir C. |
OK |
atribuir_politica.php |
Atribuir uma política de impressão a um grupo de usuários. |
Valcir C. |
95% |
alt_quota_usuario.php |
Alterar quota de impressão de um usuário especifico. Verificar se o usuário já possui quota infinita. |
NONE |
- |
rel_impressoes.php |
Relatório: Impressões, apresentar todas as impressões (com o sem sucesso) da última para a primeira. |
Valcir C. |
OK |
rel_imp_usuario.php |
Relatório: Impressões por usuário. Dado um usuário, mostrar as impressões deste. |
Valcir C. |
OK |
rel_imp_grupo.php |
Relatório: Impressões por grupo. Dado um grupo, mostrar as impressões realizadas pelos usuários deste grupo. |
Valcir C. |
OK |
rel_imp_impressora.php |
Relatório: Impressões por impressora. Dado uma impressora, mostrar as impressões realizadas pelos usuários que imprimiu. |
Valcir C. |
OK |
rel_dezultimas.php |
Relatório: 10 últimas Impressões com ou sem sucesso. Com reload de 8 segundos. |
NONE |
- |
rel_imp_erro.php |
Relatório: Impressões sem sucesso. Mostrar as impressões com o status de erro setado. |
NONE |
- |
rel_geral.php |
Relatório: Gerencial. Mostrar o total de páginas impressas, quantidade de páginas impressas por cada grupo. Quantidade de páginas impressas por impressora. |
NONE |
- |
|
|
NONE |
- |
Tabela de código de status de Impressão(status_impressao)
Código |
Descrição |
ERRO |
1 |
OK - Impresso com sucesso |
0 |
2 |
Usuário não cadastrado |
1 |
3 |
Usuário sem quota |
1 |
4 |
Arquivo temporário de impressão não encontrado |
1 |
5 |
Formato de arquivo não PS (postscript) |
1 |
6 |
Formato de arquivo não PCL |
1 |
7 |
Não foi possível determinar quantidade de páginas |
1 |
8 |
Usuario com Quota insuficiente |
1 |
9 |
Função da tabela de modulos de impressão inexistente |
1 |
10 |
|
|
*ERRO=0: Arquivo impresso.
*ERRO=1: Impressão cancelada.
|