X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Froutetrade;h=e6aff44eece5329da0bccc817e641ac7597f7d92;hb=21023ed45c8db0ff06c0106593123d5b84a19c72;hp=9a7b036cdde9b468233f5a770a2dafec1d59420e;hpb=4e84fbcc162553d4520a4d68c2d46978ba7a514c;p=ypp-sc-tools.db-test.git diff --git a/yarrg/web/routetrade b/yarrg/web/routetrade index 9a7b036..e6aff44 100644 --- a/yarrg/web/routetrade +++ b/yarrg/web/routetrade @@ -1,7 +1,43 @@ +<%doc> + + This is part of the YARRG website. YARRG is a tool and website + for assisting players of Yohoho Puzzle Pirates. + + Copyright (C) 2009 Ian Jackson + Copyright (C) 2009 Clare Boothby + + YARRG's client code etc. is covered by the ordinary GNU GPL (v3 or later). + The YARRG website is covered by the GNU Affero GPL v3 or later, which + basically means that every installation of the website will let you + download the source. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + Yohoho and Puzzle Pirates are probably trademarks of Three Rings and + are used without permission. This program is not endorsed or + sponsored by Three Rings. + + + This Mason component is the core trade planner for a specific route. + + + <%args> $dbh @islandids @archipelagoes +$qa <%perl> @@ -39,18 +75,21 @@ foreach my $src_i (0..$#islandids) { } my $stmt= " - SELECT commods.commodname commodname, - commods.commodid commodid, - commods.unitmass mass, - commods.unitvolume volume, - sell_islands.islandid org_id, - sell_islands.islandname org_name, - sell.price org_price, - sum(sell.qty) org_qty, - buy_islands.islandid dst_id, - buy_islands.islandname dst_name, - buy.price dst_price, - sum(buy.qty) dst_qty + SELECT sell_islands.islandname org_name, + sell_islands.islandid org_id, + sell.price org_price, + sum(sell.qty) org_qty, + buy_islands.islandname dst_name, + buy_islands.islandid dst_id, + buy.price dst_price, + sum(buy.qty) dst_qty, + commods.commodname commodname, + commods.commodid commodid, + commods.unitmass mass, + commods.unitvolume volume, + buy.price - sell.price unitprofit, + min(sell.qty,buy.qty) tqty, + min(sell.qty,buy.qty) * (buy.price-sell.price) profit FROM commods JOIN buy on commods.commodid = buy.commodid JOIN sell on commods.commodid = sell.commodid @@ -63,16 +102,20 @@ my $stmt= " AND buy.price > sell.price GROUP BY commodname, commods.commodid, org_id, org_price, dst_id, dst_price + ORDER BY org_name, dst_name, profit DESC, commodname, + org_price, dst_price DESC "; my $sth= $dbh->prepare($stmt); $sth->execute(@query_params); +% if ($qa->{'debug'}) {
 <% $stmt |h %>
 <% join(' | ',@query_params) |h %>
 
+% } <& dumpqueryresults, sth =>$sth &>