#!/usr/bin/perl
use DBI;
use strict;
use vars qw ($rootdir $scripturl $dbh $sth $noheader %FORM $random %config %msg $dbquery $fecha $usuario %Cookie $id_usuario_autentificado $hora $iframe %scripts $nivel %cache_template);
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
BEGIN {
if ($0 =~ m!(.*[/\\])!) {
$rootdir = $1;
$rootdir =~ s/\\/\//g;
} else {
$rootdir = './';
}
unshift @INC, $rootdir . 'admin/ofertas/lib';
}
require "lib.pl";
require "common.pl";
require "cookie.pl";
require "init.pl";
InitPersistente();
Inicio();
exit;
sub Inicio {
my @exportar = qw (query);
my $buscar_tag = "grillaofertas";
my $templatefile = "template_listado_ofertas.htm";
my ($grillaofertas,$paginas) = GrillaOfertas($templatefile);
my %namespace = (
PAGINAS => $paginas,
GRILLAOFERTAS => $grillaofertas,
RANDOM => $random
);
Template($templatefile,\%namespace,\@exportar,$buscar_tag);
exit;
}
sub GrillaOfertas {
my $templatefile = shift;
my $renglon_grilla = ExtraerDesdeTemplate("grillaofertas",$templatefile);
my $grilla;
$FORM{'page'} = 1 if (!$FORM{page});
$FORM{'perpage'} = 20 if (!$FORM{perpage});
$FORM{'maxp'} = 15 if (!$FORM{maxp});
my ($cp,$cp_bk);
my $filtros;
$FORM{query} = Trim($FORM{query});
if ($FORM{query}) {
my $query = $FORM{query};
$query =~ s/\\//g;
$query =~ s/\'/\\\'/g;
$filtros .= qq~ and (id_ofertas like '%$query%' or nombre like '%$query%' or emisor like '%$query%' ) ~;
}
if ($FORM{id_categorias}) {
$filtros .= qq~ and c.id_categorias = $FORM{id_categorias}~;
}
my $stop = $FORM{page} * $FORM{perpage};
my $start = $stop - $FORM{perpage};
my $q = qq~select o.*, c.descripcion as categoria from ofertas o, categorias c where o.id_categorias = c.id_categorias
$filtros and o.publicar = 'S'
order by o.fecha_alta desc
~;
my $count = ContarRegistros($q);
$q .= qq~ limit $start,$FORM{perpage} ~;
my $h = $dbh->prepare($q) || die SqlError("$!
$DBI::errstr
$q");
$h->execute() || die SqlError("$!
$DBI::errstr
$q");
my %r;
$h->bind_columns( \( @r{ @{$h->{NAME_lc} } } ));
while ($h->fetch) {
#$r{nombre} = ReducirPorPalabras($r{nombre},6);
my $renglon = $renglon_grilla;
#if ($r{publicar} eq 'S') { $renglon =~ s/\#FFFFFF/#E2F5E2/g }
#if ($r{publicar} eq 'N') { $renglon =~ s/\#FFFFFF/#FFEAEA/g }
$renglon =~ s/\%([A-Z_1-9]+)/$r{lc($1)}/g;
$grilla .= $renglon;
}
$h->finish;
### seperacion por páginas
my $cantpaginas = $count / $FORM{'perpage'};
for (my $i=0;$i < $cantpaginas; $i++) { $cp ++ }
my $cp_bk = $cp;
$stop = $count if ($stop > $cp && $FORM{'page'} eq $cp); #### FIX PARA EL MOSTRANDO
my $otros_links = "query=$FORM{query}&id_categorias=$FORM{id_categorias}&r=$random";
my %separar = (
CANT_ELEMENTOS => $count,
CANT_PAGINAS => $cp,
CANT_PAGINAS_BK => $cp_bk,
PAGINA_ACTUAL => $FORM{page},
ELEMENTOS_POR_PAGINA => $FORM{perpage},
MAXIMO_PAGINAS_MOSTRAR => $FORM{maxp},
MULTIPLICADOR => $FORM{mul},
OTROS_LINKS => $otros_links,
#SCRIPT => "$scripts{cursos}",
);
my $paginas = SepararEnPaginas(\%separar);
return ($grilla,$paginas,$count);
}