Subversion Repositories CoffeeCatalog

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 - 1
#######################################################################
2
# A set of functions to assist the scan data display tool.
3
#	Kept here to unclutter the main script.
4
#######################################################################
5
#
6
#
7
# $Log: scanFunctions.pm,v $
8
#
9
 
10
use DBI ();
11
 
12
my $internalDBH = &getDBConnection || die "Unable to connect to Database\n\n";
13
my $nowhan = $internalDBH->prepare("select now()");
14
$nowhan->execute();
15
our ($now) = $nowhan->fetchrow;
16
$now =~ s/ / at /;
17
 
18
 
19
sub byfield { $colOrderHash{$a} <=> $colOrderHash{$b};	}
20
 
21
 
22
sub fetchColEntries {
23
	my $colName = shift;
24
	my $selection = shift;
25
	my $table = $DBTABLE;
26
	my $optionList = "";
27
 
28
	# project table in new DB?
29
#	my $cathan = $internalDBH->prepare("select distinct $colName from $table where $colName <> '' and isNull($colName) = 0 order by $colName");
30
	my $cathan = $internalDBH->prepare("select distinct $colName from $table order by $colName");
31
 
32
	$cathan->execute();
33
	while (my ($cat) = $cathan->fetchrow) {
34
	  if ($cat eq "") { $cat = "-blank-"; }
35
	  if ($cat eq $selection) {
36
	    $optionList .= "<OPTION selected>$cat</OPTION>";
37
	  } else {
38
		  $optionList .= "<OPTION>$cat</OPTION>";
39
		}
40
	}
41
 
42
	return $optionList;
43
}
44
 
45
sub fetchDerbyNameWithRCid {
46
	my $optionList = "";
47
 
48
	my $cathan = $internalDBH->prepare("select RCid, derby_name from official order by derby_name");
49
 
50
	$cathan->execute();
51
	while (my ($id, $cat) = $cathan->fetchrow) {
52
		$optionList .= "<OPTION value=$id>$cat</OPTION>";
53
	}
54
 
55
	return $optionList;
56
}
57
 
58
 
59
sub filter {
60
	my $colName = shift;
61
	my $filter = shift;
62
 
63
	if ($colFilterTypeHash{$colName} eq 'select')
64
	{
65
		if (defined $filter)	{
66
			if ($filter eq "-blank-") {
67
				return "($colName = '' or isNull($colName) = 1)";
68
			}
69
#			$filter = s/'/\'/g;
70
			return "$colName = \"$filter\"";
71
		}
72
		else
73
		{
74
			my $thing = "filter-${colName}";
75
			my $categories = &fetchColEntries($colName, $FORM{$thing});
76
			my $Options = "<OPTION></OPTION>".$categories;
77
 
78
			$Options =~ s/>($FORM{$thing})/ selected>$1/;
79
			return "<SELECT name=filter-${colName} $onChange>$Options</SELECT>";
80
		}
81
	} elsif ($colFilterTypeHash{$colName} eq 'text') {
82
		if (defined $filter)
83
		{
84
			if ($filter =~ s/^=\s*//) { return "$colName = \"$filter\""; }
85
 
86
			if ($filter !~ s/^\^\s*//) { $filter = "\%$filter"; }
87
			if ($filter !~ s/\s*\$$//) { $filter = "$filter\%"; }
88
			$filter =~ s/\*/%/g;
89
 
90
			return "$colName like \"$filter\"";
91
		}
92
		else
93
		{
94
			my $thing = "filter-${colName}";
95
			return "<INPUT type=text name=$thing value=\"$FORM{$thing}\" size=15 $onChange>";
96
		}
97
	} elsif ($colFilterTypeHash{$colName} eq 'number') {
98
		if (defined $filter)
99
		{
100
			if ($filter =~ /^[>=<]\s*/) { return "$colName $filter"; }
101
			else { return "$colName = $filter"; }
102
		}
103
		else
104
		{
105
			my $thing = "filter-${colName}";
106
			return "<INPUT type=text name=$thing value=\"$FORM{$thing}\" size=15 $onChange>";
107
		}
108
	} elsif ($colFilterTypeHash{$colName} eq 'date') {
109
		if (defined $filter)
110
		{
111
			if ($filter =~ s/^<\s*//) { return "$colName < '$filter'"; }
112
			if ($filter =~ s/^>\s*//) { return "$colName > '$filter'"; }
113
 
114
			return "$colName = '$filter'";
115
		}
116
		else
117
		{
118
			my $thing = "filter-${colName}";
119
			return "<INPUT type=text name=$thing value=\"$FORM{$thing}\" size=15 $onChange>";
120
		}
121
	} elsif ($colFilterTypeHash{$colName} eq 'ERROR') {
122
		return "<center><strong><font color=red>ERROR!</font>";
123
	}
124
}
125
 
126
 
127
sub getData {
128
	my $fields = shift;
129
	my $whereClause = shift;
130
	my $table = shift;
131
	my $orderby = shift;
132
#	my $RCid = shift;
133
#	my $SecLvl = shift;
134
 
135
#	my $selected = join ", ",  @{$fields};
136
	my $selected = '*';
137
	$whereClause = scalar @{$whereClause} > 0 ? "where ".join " and ", @{$whereClause} : '';
138
        # project in new DB?
139
	# my $getMe = "select distinct $selected from HOST left join PRODUCT_INSTANCE on HOST.server = PRODUCT_INSTANCE.server left join project on hostID = projectHostID $whereClause";
140
	#my $getMe = "select distinct $selected from HOST left join PRODUCT_INSTANCE on HOST.server=PRODUCT_INSTANCE.server $whereClause and HOST.page=HOST.maxPage and PRODUCT_INSTANCE.page = PRODUCT_INSTANCE.maxPage";
141
 
142
	$orderby = $orderby eq "" ? "" : "order by $orderby";
143
#	my $getMe = "select distinct $selected from $table $whereClause $orderby";
144
	my $getMe = "select distinct * from $table $whereClause $orderby";
145
#warn($getMe);
146
 
147
	my $limhan = $internalDBH->prepare($getMe);			# Get the tickets from the DB
148
	$limhan->execute();
149
 
150
	my @results = ();
151
	while (my $P = $limhan->fetchrow_hashref)
152
	{
153
#		if ($P->{assignee_id} == $RCid or ($SecLvl >= 3 and $P->{derby_name})) {
154
#			$P->{derby_name} = "$P->{derby_name} <A HREF='#' onClick=\"window.open('make_lead_shift_change.pl?change=del&shift=$P->{id}','Confirm Shift Change','resizable,height=260,width=370'); return false;\">[DROP]</a>";
155
#		} elsif (!$P->{derby_name}) {
156
#			$P->{derby_name} = "<A HREF='#' onClick=\"window.open('make_lead_shift_change.pl?change=add&shift=$P->{id}','Confirm Shift Change','resizable,height=260,width=370'); return false;\">[SIGN UP]</a>";
157
#		}
158
 
159
		push @results, $P;
160
	}
161
 
162
	return \@results;
163
}
164
 
165
 
166
 
167
sub getDBConnection {
168
#    $dbh = DBI->connect('DBI:mysql:database=rollerco_data;host=localhost;port=3306', 'rollerco_www', 'www-data'
169
#                   ) || die "Could not connect to database: $DBI::errstr";
170
    use WebDB;
171
    $dbh = WebDB::connect ();
172
    return $dbh;
173
}
174
 
175
 
176
sub inArray {
177
	my $item = shift;
178
	my $array = shift;
179
	foreach (@{$array})
180
	{
181
		return 1 if $item eq $_;
182
	}
183
	return 0;
184
}
185
 
186
sub notInArray {
187
	return ! inArray (@_);
188
}
189
 
190
 
191
sub uniq (@) {
192
    # From CPAN List::MoreUtils, version 0.22
193
    my %h;
194
    map { $h{$_}++ == 0 ? $_ : () } @_;
195
}
196
 
197
 
198
sub whereInArray {
199
	my $item = shift;
200
	my $array = shift;
201
	my $i = 0;
202
	foreach (@{$array})
203
	{
204
		return $i if $item eq $_;
205
		$i++;
206
	}
207
	return -1;
208
}
209
 
210
 
211
 
212
# Leave this alone, it's needed to compile correctly
213
return 1;