# Copyright (c) 2003 AdCycle.com All rights reserved.
# http://www.adcycle.com - download the lastest version of adcycle
package AdReports;
use strict;
sub new {
my $this = shift;
my $class = ref($this) || $this;
my $self = {};
bless $self, $class;
return $self;
}
# >> CREATE DATA TABLE
sub create_data_table{
my($self,$master,$where,$group)=@_;
my $date=$master->{env}->get_date;
$master->{db}->{adcycle}->do("DELETE FROM temp_log");
my $update=$master->{db}->{adcycle}->do("
INSERT INTO temp_log (CID,GID,MID,IMPR,CLICK,ACTION,LOG_DATE)
SELECT
CID,
GID,
MID,
sum(IMPR) as IMPR,
sum(CLICK) as CLICK,
sum(ACTION) as ACTION,
LOG_DATE
FROM
daily_log
GROUP BY
CID,
MID,
GID,
LOG_DATE
");
my(@tempref)=$master->{db}->select_multi_row_hash("
SELECT
GID,
CID,
MID,
HOUR_IMPR,
HOUR_CLICK
FROM
cp_grouping
WHERE
HOUR_IMPR>0 OR
HOUR_CLICK>0
");
my $temptot=@tempref;
for(my $k=0;$k<$temptot;$k++){
my $update=$master->{db}->{adcycle}->do("
UPDATE temp_log
SET
IMPR=IMPR+$tempref[$k]->{HOUR_IMPR},
CLICK=CLICK+$tempref[$k]->{HOUR_CLICK}
WHERE
CID=$tempref[$k]->{CID} AND
GID=$tempref[$k]->{GID} AND
MID=$tempref[$k]->{MID} AND
LOG_DATE=$date
");
if($update+0==0){
my $insert_list=[
["CID",$tempref[$k]->{CID}],
["GID",$tempref[$k]->{GID}],
["MID",$tempref[$k]->{MID}],
["IMPR",$tempref[$k]->{HOUR_IMPR}],
["CLICK",$tempref[$k]->{HOUR_CLICK}],
["LOG_DATE",$date]];
$master->{db}->insert_row("temp_log",$insert_list);
}
}
return
}
# << CREATE DATA TABLE
# >> CAMPAIGN HISTORY
sub campaign_history{
my($self,$master)=@_;
$master->{charts}="yes";
# get config and env vars
my $images_url=$master->{config}->get_images_url;
my $cgi_bin_url=$master->{config}->get_cgi_bin_url;
my $cache=$master->{env}->get_cache;
# input vars
my $cid=$master->{query}->param('cid');
#get the campaign ref
my $cidref=$master->{db}->select_single_row_hash("SELECT * FROM cp where CID='$cid'");
#get the campaign ref
my $aidref=$master->{db}->select_single_row_hash("SELECT * FROM ad where AID='$cidref->{AID}'");
# print header
$master->{LINK}="campaigns";
$master->{html}->header($master,"Campaign History");
# >> top menu
print qq~
~;
# << top menu
$master->{html}->footer($master);
}
# << CAMPAIGN HISTORY
# >> VIEW CAMPAIGN HISTORY
sub view_campaign_history{
my($self,$master)=@_;
$master->{charts}="yes";
# get config and env vars
my $images_url=$master->{config}->get_images_url;
my $cgi_bin_url=$master->{config}->get_cgi_bin_url;
my $cache=$master->{env}->get_cache;
# input vars
my $cid=$master->{query}->param('cid');
#get the campaign ref
my $cidref=$master->{db}->select_single_row_hash("SELECT * FROM cp where CID='$cid'");
#get the campaign ref
my $aidref=$master->{db}->select_single_row_hash("SELECT * FROM ad where AID='$cidref->{AID}'");
if($master->{whoami} ne "ADMIN"){
my $tmpref=$master->{db}->select_single_row_hash("SELECT * FROM ad where LOGIN='$master->{whoami}'");
if($tmpref->{AID} != $cidref->{AID}){
exit(0);
}
}
# create data table
$master->{reports}->create_data_table($master);
# print header
$master->{LINK}="campaigns";
$master->{html}->header($master,"View Campaign History");
# >> top menu
if($master->{whoami} eq "ADMIN"){
print qq~
~;
}
# << top menu
print qq~
|
for: $cidref->{CAMPAIGN_NAME}

|
~;
$master->{reports}->hour_chart_generator($master);
print qq~
|
Impressions
|
|
Clicks (x10)
|
|
~;
print qq~

~;
$master->{reports}->day_table_generator($master);
if($master->{whoami} eq "ADMIN"){
print qq~

~;
$master->{reports}->group_table_generator($master);
}
print qq~
~;
$master->{html}->footer($master);
}
# << VIEW CAMPAIGN HISTORY
# >> VIEW GROUP HISTORY
sub view_group_history{
my($self,$master)=@_;
$master->{charts}="yes";
# get config and env vars
my $images_url=$master->{config}->get_images_url;
my $cgi_bin_url=$master->{config}->get_cgi_bin_url;
my $cache=$master->{env}->get_cache;
# input vars
my $gid=$master->{query}->param('gid');
#get the campaign ref
my $gidref=$master->{db}->select_single_row_hash("SELECT * FROM groups where GID='$gid'");
$master->{reports}->create_data_table($master);
# print header
$master->{LINK}="groups";
$master->{html}->header($master,"View Group History");
# >> top menu
print qq~
~;
# << top menu
print qq~
|
for: $gidref->{GROUP_NAME}

|
~;
$master->{reports}->group_hour_chart_generator($master);
print qq~
|
Impressions
|
|
Clicks (x10)
|
|
~;
print qq~

~;
$master->{reports}->group_day_table_generator($master);
print qq~
Back to Group: $gidref->{GROUP_NAME}

Back to Group Manager
~;
$master->{html}->footer($master);
}
# << VIEW GROUP HISTORY
# >> VIEW ADTYPE HISTORY
sub view_adtype_history{
my($self,$master)=@_;
$master->{charts}="yes";
# get config and env vars
my $images_url=$master->{config}->get_images_url;
my $cgi_bin_url=$master->{config}->get_cgi_bin_url;
my $cache=$master->{env}->get_cache;
# input vars
my $tid=$master->{query}->param('tid');
#get the campaign ref
my $tidref=$master->{db}->select_single_row_hash("SELECT * FROM adtype where TID='$tid'");
$master->{reports}->create_data_table($master);
# print header
$master->{LINK}="groups";
$master->{html}->header($master,"View AdType History");
# >> top menu
print qq~
~;
# << top menu
print qq~

~;
$master->{reports}->adtype_day_table_generator($master);
print qq~
~;
print qq~
|
Impressions
|
|
Clicks (x10)
|
|
~;
$master->{html}->footer($master);
}
# << VIEW ADTYPE HISTORY
# >> HOUR CHART GENERATOR
sub hour_chart_generator{
my($self,$master)=@_;
# get config and env vars
my $images_url=$master->{config}->get_images_url;
my $cgi_bin_url=$master->{config}->get_cgi_bin_url;
my $cache=$master->{env}->get_cache;
my $hour=$master->{env}->get_hour;
# input vars
my $cid=$master->{query}->param('cid');
#get the ad media
my(@dailyref)=$master->{db}->select_multi_row_hash("SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK,LOG_HOUR FROM daily_log where CID='$cid' GROUP BY CID,LOG_DATE,LOG_HOUR ORDER BY LOG_DATE DESC,LOG_HOUR DESC LIMIT 23");
my $dailytot=@dailyref;
my $gridref=$master->{db}->select_single_row_hash("SELECT SUM(HOUR_IMPR) as IMPR,SUM(HOUR_CLICK) as CLICK FROM cp_grouping WHERE CID='$cid'");
$gridref->{CLICK}*=10+0;
my $sample_Values="$gridref->{IMPR}";
my $sample_Values2="$gridref->{CLICK}";
my $sample_Labels="$hour";
for(my $k=0;$k<$dailytot;$k++){
$dailyref[$k]->{CLICK}*=10+0;
$sample_Values2="$dailyref[$k]->{CLICK},".$sample_Values2;
$sample_Values="$dailyref[$k]->{IMPR},".$sample_Values;
$sample_Labels="$dailyref[$k]->{LOG_HOUR},".$sample_Labels;
}
print qq~
~;
}
# << HOUR CHART GENERATOR
# >> DAY TABLE GENERATOR
sub day_table_generator{
my($self,$master)=@_;
# get config and env vars
my $images_url=$master->{config}->get_images_url;
my $cgi_bin_url=$master->{config}->get_cgi_bin_url;
my $cache=$master->{env}->get_cache;
my $hour=$master->{env}->get_hour;
my $date=$master->{env}->get_date;
# input vars
my $cid=$master->{query}->param('cid');
my $month=$master->{query}->param('month');
my $year=$master->{query}->param('year');
my $where="";
if($year+0==0){
$month=$master->{db}->single_result("SELECT MONTHNAME('$date')");
$year=$master->{db}->single_result("SELECT YEAR('$date')");
$where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~;
}
if($year>0 && length($month)>0){
$where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~;
}
#get the ad media
my(@dailyref)=$master->{db}->select_multi_row_hash("
SELECT
sum(IMPR) as IMPR,
sum(CLICK) as CLICK,
DATE_FORMAT(LOG_DATE,'%M, %d %Y') as COOL,
LOG_DATE
FROM
temp_log
WHERE CID='$cid' $where
GROUP BY
CID,
LOG_DATE
ORDER BY
LOG_DATE DESC
");
my $dailytot=@dailyref;
# find max
$master->{IMPR}=0;
$master->{CLICK}=0;
for(my $k=0;$k<$dailytot;$k++){
if($dailyref[$k]->{IMPR}>$master->{IMPR}){
$master->{IMPR}=$dailyref[$k]->{IMPR};
}
if($dailyref[$k]->{CLICK}>$master->{CLICK}){
$master->{CLICK}=$dailyref[$k]->{CLICK};
}
}
$master->{WIDTH}=200;
# >>
print "