comparison reproctool.cgi @ 3:e640eb6cefc3

Making DB stuff more generic, fixing missing mineral
author Dominic Cleal <dominic@computerkb.co.uk>
date Sat, 24 Jan 2009 17:18:17 +0000
parents c39512d94605
children 4351c0bf33d4
comparison
equal deleted inserted replaced
2:731da755d92d 3:e640eb6cefc3
5 5
6 use CGI; 6 use CGI;
7 use DBI; 7 use DBI;
8 8
9 # Settings 9 # Settings
10 my $db_path = 'qr100-sqlite3-v1.db';
11 my $img_http_path = '/itemimgs'; 10 my $img_http_path = '/itemimgs';
12 11
13 my $cgi = new CGI; 12 my $cgi = new CGI;
14 print $cgi->header(-type => 'text/html', 13 print $cgi->header(-type => 'text/html',
15 -pragma => 'no-cache', 14 -pragma => 'no-cache',
27 my $nocx = $cgi->param('nocx') || die('No nocx price'); 26 my $nocx = $cgi->param('nocx') || die('No nocx price');
28 my $zydr = $cgi->param('zydr') || die('No zydr price'); 27 my $zydr = $cgi->param('zydr') || die('No zydr price');
29 my $mega = $cgi->param('mega') || die('No mega price'); 28 my $mega = $cgi->param('mega') || die('No mega price');
30 my $morp = $cgi->param('morp') || die('No morp price'); 29 my $morp = $cgi->param('morp') || die('No morp price');
31 30
32 require 'dbparams.cgi'; 31 our @dbparams;
32 require './dbparams.cgi';
33 my $db = DBI->connect(@dbparams) 33 my $db = DBI->connect(@dbparams)
34 or die("Database connection failure: $DBI::errstr"); 34 or die("Database connection failure: $DBI::errstr");
35 35
36 # Strip out line endings 36 # Strip out line endings
37 $str_items =~ s/[\n\r]+//g; 37 $str_items =~ s/[\n\r]+//g;
43 # SQL lookup for reprocessing amounts 43 # SQL lookup for reprocessing amounts
44 my $sql_reprocess = <<END; 44 my $sql_reprocess = <<END;
45 SELECT 45 SELECT
46 types.typeID, 46 types.typeID,
47 types.typeName, 47 types.typeName,
48 attrs.valueInt [metaLevel], 48 attrs.valueInt, -- metaLevel
49 types.basePrice, 49 types.basePrice,
50 graphics.icon, 50 graphics.icon,
51 SUM(CASE WHEN m1.requiredTypeID = 34 THEN m1.quantity ELSE 0 END) [Tritanium], 51 SUM(CASE WHEN m1.requiredTypeID = 34 THEN m1.quantity ELSE 0 END), -- [Tritanium]
52 SUM(CASE WHEN m1.requiredTypeID = 35 THEN m1.quantity ELSE 0 END) [Pyerite], 52 SUM(CASE WHEN m1.requiredTypeID = 35 THEN m1.quantity ELSE 0 END), -- [Pyerite]
53 SUM(CASE WHEN m1.requiredTypeID = 36 THEN m1.quantity ELSE 0 END) [Mexallon], 53 SUM(CASE WHEN m1.requiredTypeID = 36 THEN m1.quantity ELSE 0 END), -- [Mexallon]
54 SUM(CASE WHEN m1.requiredTypeID = 37 THEN m1.quantity ELSE 0 END) [Isogen], 54 SUM(CASE WHEN m1.requiredTypeID = 37 THEN m1.quantity ELSE 0 END), -- [Isogen]
55 SUM(CASE WHEN m1.requiredTypeID = 38 THEN m1.quantity ELSE 0 END) [Nocxium], 55 SUM(CASE WHEN m1.requiredTypeID = 38 THEN m1.quantity ELSE 0 END), -- [Nocxium]
56 SUM(CASE WHEN m1.requiredTypeID = 39 THEN m1.quantity ELSE 0 END) [Zydrine], 56 SUM(CASE WHEN m1.requiredTypeID = 39 THEN m1.quantity ELSE 0 END), -- [Zydrine]
57 SUM(CASE WHEN m1.requiredTypeID = 40 THEN m1.quantity ELSE 0 END) [Megacyte], 57 SUM(CASE WHEN m1.requiredTypeID = 40 THEN m1.quantity ELSE 0 END), -- [Megacyte]
58 SUM(CASE WHEN m1.requiredTypeID = 11399 THEN m1.quantity ELSE 0 END) [Morphite] 58 SUM(CASE WHEN m1.requiredTypeID = 11399 THEN m1.quantity ELSE 0 END) -- [Morphite]
59 FROM invTypes types 59 FROM invTypes types
60 INNER JOIN dgmTypeAttributes attrs ON types.typeID = attrs.typeID AND attrs.attributeID = 633 60 INNER JOIN dgmTypeAttributes attrs ON types.typeID = attrs.typeID AND attrs.attributeID = 633
61 INNER JOIN typeActivityMaterials m1 ON types.typeID = m1.typeID 61 INNER JOIN typeActivityMaterials m1 ON types.typeID = m1.typeID
62 INNER JOIN eveGraphics graphics ON types.graphicID = graphics.graphicID 62 INNER JOIN eveGraphics graphics ON types.graphicID = graphics.graphicID
63 WHERE types.typeName = ? 63 WHERE types.typeName = ?
71 71
72 my @output = (); 72 my @output = ();
73 for my $sitem (split(/\s*,\s*/, $str_items)) 73 for my $sitem (split(/\s*,\s*/, $str_items))
74 { 74 {
75 my ($tid, $tname, $meta, $basePrice, $icon, 75 my ($tid, $tname, $meta, $basePrice, $icon,
76 $ttrit, $tpyer, $tmexa, $tisog, $tnocx, $tzydr, $tmega); 76 $ttrit, $tpyer, $tmexa, $tisog, $tnocx, $tzydr, $tmega, $tmorp);
77 77
78 $pre_reprocess->execute($sitem) or die("Can't lookup $sitem: $DBI::errstr"); 78 $pre_reprocess->execute($sitem) or die("Can't lookup $sitem: $DBI::errstr");
79 $pre_reprocess->bind_columns(undef, \$tid, \$tname, \$meta, \$basePrice, 79 $pre_reprocess->bind_columns(undef, \$tid, \$tname, \$meta, \$basePrice,
80 \$icon, \$ttrit, \$tpyer, \$tmexa, \$tisog, \$tnocx, \$tzydr, \$tmega); 80 \$icon, \$ttrit, \$tpyer, \$tmexa, \$tisog,
81 \$tnocx, \$tzydr, \$tmega, \$tmorp);
81 82
82 my $item = {}; 83 my $item = {};
83 if ($pre_reprocess->fetch()) 84 if ($pre_reprocess->fetch())
84 { 85 {
85 my $isk = ($trit * $ttrit) + ($pyer * $tpyer) + ($mexa * $tmexa) + 86 my $isk = ($trit * $ttrit) + ($pyer * $tpyer) + ($mexa * $tmexa) +
86 ($isog * $tisog) + ($nocx * $tnocx) + ($zydr * $tzydr) + 87 ($isog * $tisog) + ($nocx * $tnocx) + ($zydr * $tzydr) +
87 ($mega * $tmega); 88 ($mega * $tmega) + ($morp * $tmorp);
88 89
90 $meta = 0 unless defined $meta;
89 $item = { id => $tid, name => $tname, meta => $meta, icon => $icon, 91 $item = { id => $tid, name => $tname, meta => $meta, icon => $icon,
90 price => $basePrice, reprocess => $isk }; 92 price => $basePrice, reprocess => $isk };
91 } 93 }
92 push @output, $item; 94 push @output, $item;
93 } 95 }
98 <head> 100 <head>
99 <style type="text/css"> 101 <style type="text/css">
100 .meta4, .meta5, .meta6, .meta7, .meta8, .meta9 102 .meta4, .meta5, .meta6, .meta7, .meta8, .meta9
101 { 103 {
102 border: 2px #FF0000 solid; 104 border: 2px #FF0000 solid;
105 }
106 .item
107 {
108 width: 64px;
103 } 109 }
104 </style> 110 </style>
105 </head> 111 </head>
106 <body> 112 <body>
107 <table> 113 <table>