& output.html,
titulo => $titulo,
filterstr => $filterstr,
records => $records,
req_credits => $req_credits,
user_credits => $user_credits,
updt => $updt,
reqkey => $reqkey,
message => $message,
status => 'idle' &>
% return;
<%$titulo%>
<% $filterstr %>
<% $labels{registos} %>: <% $records %>
<% $labels{creditos_nec} %>: <% $req_credits %>
<% $labels{creditos_disp} %>: <% $user_credits %>
<%$message%>
<& /_shared/templates/messages/small.html, contents=>$message, bgcolor=>'#f6ffc6', style=>'ticker', bbar=>'#9ea093' &>
<& SELF:TR, label=>$labels{titulo}, value=>$titulo &>
% if ($filterstr){
<& SELF:TR, label=>$labels{opcoes}, value=>$filterstr &>
% }
<& SELF:TR, label=>$labels{registos}, value=>$records &>
<& SELF:TR_SPACE &>
% if ($updtdate){
<& SELF:TR, label=>$labels{actualizacao}, value=>$updtdate &>
% }elsif (!$updt){
<& SELF:TR, label=>$labels{creditos_nec}, value=>$req_credits &>
<& SELF:TR, label=>$labels{creditos_disp}, value=>$user_credits &>
% }
% if ($dl_ok){
|
|
% }else{
|
<%$messages{history}%>
|
% }
%# <% $reqkey %>
<%args>
$qrcd => undef
$zone => undef
$zcod => undef
$zdsc => undef
$net1 => undef
$agnand => undef
$agnlist => undef
$node => undef
$user=>undef
$updt=>undef
$updtkey=>undef
$vrfy=>undef
$options=>undef
%args>
<%init>
#-----------------------------------------------------------
# Ficha de Download de Rubrica
#-----------------------------------------------------------
my $dbh = $m->comp("/_shared/procs/utils/dbi_connect.m", database=>'guianet');
#-----------------------------------------------------------
# Traduções
#-----------------------------------------------------------
my %labels = (
titulo => $m->comp("/_shared/procs/utils/localize.m", str=>'Título'),
opcoes => $m->comp("/_shared/procs/utils/localize.m", str=>'_Opções'),
registos => $m->comp("/_shared/procs/utils/localize.m", str=>'Registos'),
actualizacao => $m->comp("/_shared/procs/utils/localize.m", str=>"Ultima actualização"),
creditos_nec => $m->comp("/_shared/procs/utils/localize.m", str=>"Créditos necessários"),
creditos_disp => $m->comp("/_shared/procs/utils/localize.m", str=>"_Créditos disponíveis"),
cancelar => $m->comp("/_shared/procs/utils/localize.m", str=>'cancelar'),
iniciar => $m->comp("/_shared/procs/utils/localize.m", str=>'iniciar'),
);
my %messages = (
history => $m->comp("/_shared/procs/utils/localize.m", str=>'ver histórico de downloads'),
novo_download => $m->comp("/_shared/procs/utils/localize.m", str=>"clique aqui se deseja fazer um novo download"),
actualizado => $m->comp("/_shared/procs/utils/localize.m", str=>"esta categoria foi já actualizada."),
iniciar => $m->comp("/_shared/procs/utils/localize.m", str=>"clique
para iniciar o download"),
mais_creditos => $m->comp("/_shared/procs/utils/localize.m", str=>"contacte-nos para adquirir mais créditos"),
);
#-----------------------------------------------------------
# Crédito de Downloads para este cliente
#-----------------------------------------------------------
my ($user_credits, $used_credits) = $m->comp("procs/getusercredits.m",user=>$user);
#-----------------------------------------------------------
# Titulo, Opções e Número de registos
#-----------------------------------------------------------
my $titulo;
my $filterstr;
my $records = 0;
my $set;
my $reqkey;
my $extra;
#-----------------------------------------------------------
# specs do item
#-----------------------------------------------------------
my ($tipo_item, $itemid) = $m->comp("/_shared/procs/utils/parseqrcd.m", qrcd=>$qrcd);
#===========================================================
# download de categoria
#===========================================================
# Opções de Pesquisa
#-----------------------------------------------------------
my $filters;
my $demo;
# a partir da chave se for update
if ($updt){
$updtkey = $m->comp("procs/getreqkeybyid.m",id=>$updt) unless $updtkey;
($demo,$qrcd,$zone,$zcod,$zdsc,$net1,$agnlist,$agnand) = $m->comp("procs/parsereqkey.m",reqkey=>$updtkey);
($tipo_item, $itemid) = $m->comp("/_shared/procs/utils/parseqrcd.m", qrcd=>$qrcd);
$filters = $m->comp('/_shared/procs/getfilters.m', srchargs=>{net1=>$net1, net2=>undef, zone=>$zone, zcod=>$zcod, zdsc=>$zdsc, agnlist=>$agnlist, agnand=>$agnand});
# dos cookies se for pesquisa
}else{
my $global_options = $m->comp("/_shared/procs/get_searchoptions.m");
$filters = $m->comp('/_shared/procs/getfilters.m', srchargs=>$global_options);
}
#-----------------------------------------------------------
# actualizar parâmetros
#-----------------------------------------------------------
$zone = $filters->{zone};
$zdsc = $filters->{zdsc};
$zcod = $filters->{zcod};
$net1 = $filters->{net1};
$agnlist = $filters->{agnlist};
$agnand = $filters->{agnand};
$filterstr = $filters->{str};
#-----------------------------------------------------------
# Verificar erros nas opções de pesquisa
#-----------------------------------------------------------
if ($filters->{err}){
my $searchurl = $m->comp("/_shared/procs/utils/get_searchargs.m",currargs=>{net1=>$net1, net2=>undef, zone=>$zone, zcod=>$zcod, zdsc=>$zdsc, agnlist=>$agnlist, agnand=>$agnand});
$node = $m->comp("/_shared/procs/getnodeid.m", itemid=>$itemid, tipo_item=>$tipo_item) unless $node;
my $dir = ($tipo_item eq 'G') ? "vdir":"vcat";
my $returnurl = "/$dir/$node?$searchurl";
return $m->comp("err.html",url=>$returnurl);
}
#-----------------------------------------------------------
# Titulo da Rubrica
#-----------------------------------------------------------
($titulo) = $m->comp("/_shared/procs/getitemtitle.m", itemid=>$itemid, tipo_item=>$tipo_item);
#-----------------------------------------------------------
# Número de Registos
#-----------------------------------------------------------
if ($tipo_item eq 'G'){
$node = $m->comp("/_shared/procs/getnodeid.m", itemid=>$itemid, tipo_item=>$tipo_item) unless $node;
my $srchargs = {qrcd=>$qrcd, net1=>$net1, net2=>undef, zone=>$zone, zcod=>$zcod, zdsc=>$zdsc, agnlist=>$agnlist, agnand=>$agnand};
$records = $m->comp("/_shared/procs/count_group_distinct_clients.m", node=>$node, srchargs=>$srchargs, filters=>$filters)
}else{
$records = $m->comp("/_shared/procs/dosearchrubcli.m", download=>1, justcount=>1, srchargs=>{qrcd=>$qrcd, net1=>$net1, net2=>undef, zone=>$zone, zcod=>$zcod, zdsc=>$zdsc, agnlist=>$agnlist, agnand=>$agnand}, filters=>$filters);
}
#-----------------------------------------------------------
# chave de download
#-----------------------------------------------------------
$reqkey = $m->comp("/downloads/procs/makereqkey.m",user=>$user,qrcd=>$qrcd, zone=>$zone, zcod=>$zcod, zdsc=>$zdsc, net1=>$net1, agnlist=>$agnlist, agnand=>$agnand);
#-----------------------------------------------------------
# criar / actualizar ficha de download
#-----------------------------------------------------------
$m->comp("procs/makedownloadrecord.m",reqkey=>$reqkey, records=>$records, extra=>$extra); # cria/actualiza o registo se necessario
#-----------------------------------------------------------
# procurar no historico para nao duplicar
#-----------------------------------------------------------
my ($reqid, $reqdate, $updated) = $m->comp("/downloads/procs/getreqid.m",reqkey=>$reqkey, user=>$user, extra_info=>1);
my ($id, $filename) = $dbh->selectrow_array("select id,filename from tdownloads where reqkey='$reqkey'");
my $done;
#-----------------------------------------------------------
# download ja foi efectuado se nao é update e existe historico,
# ou se e update e no historico consta como actualizado
# e o ficheiro ainda não foi apagado
#-----------------------------------------------------------
$done = 1 if ($filename && (!$updt && $reqid) || ($updt && $updated));
#-----------------------------------------------------------
# retornar pagina com link se ja foi efectuado
#-----------------------------------------------------------
return $m->comp("done.html",reqkey=>$reqkey) if $done;
#-----------------------------------------------------------
# Créditos necessários
#-----------------------------------------------------------
my $req_credits = $m->comp("procs/getreqcredits.m",records=>$records);
#-----------------------------------------------------------
# Validar update
#-----------------------------------------------------------
my $updtdate = $m->comp("procs/getupdtdate.m",updt=>$updt) if $updt;
#-----------------------------------------------------------
# URL de retorno
#-----------------------------------------------------------
my $dir = ($tipo_item eq 'G') ? "vdir":"vcat";
my $referer = $r->header_in('Referer');
my $fromhistory = ($referer =~ m/history/);
my $returnurl = ($vrfy) ? "/downloads/dbcheck/check.m":(($fromhistory) ? "/downloads/history.html":"/$dir/$node");
my $returnmeth = ($vrfy) ? "POST":(($fromhistory) ? "POST":"GET");
#-----------------------------------------------------------
# URL de encomenda
#-----------------------------------------------------------
my $orderurl = "start.m";
#-----------------------------------------------------------
# Mensagem
#-----------------------------------------------------------
my $dl_ok = 0;
my $message;
if ($updt && $updtdate){
my $searchurl = $m->comp("/_shared/procs/utils/get_searchargs.m",currargs=>{options=>$options, net1=>$net1, net2=>undef, zone=>$zone, zcod=>$zcod, zdsc=>$zdsc, agnlist=>$agnlist, agnand=>$agnand});
$message = $messages{actualizado};
$message .= "".$messages{novo_download}."";
}elsif ($updt || ($user_credits>=$req_credits)){
$message = $messages{iniciar};
$dl_ok = 1;
}else{
$message .= "".$messages{mais_creditos}."";
}
%Init>