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.
|