X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Froutetrade;h=4885782e58a440b7a773510a049daf363e5e0838;hb=66482684911b5a12a5182797de54a24c2b31c29a;hp=80fc2b13d5e8cf78f5ba1c61d0310e5de0280318;hpb=a4e2383b30189c028ae35d2f587b084803e5d888;p=ypp-sc-tools.db-live.git diff --git a/yarrg/web/routetrade b/yarrg/web/routetrade index 80fc2b1..4885782 100644 --- a/yarrg/web/routetrade +++ b/yarrg/web/routetrade @@ -50,6 +50,7 @@ my $loss_per_league= 1e-7; my @flow_conds; my @query_params; +my %dists; my $sd_condition= sub { my ($bs, $ix) = @_; @@ -161,6 +162,20 @@ my $sth= $dbh->prepare($stmt); $sth->execute(@query_params); my @flows; +my $distquery= $dbh->prepare(" + SELECT dist FROM dists WHERE aiid = ? AND biid = ? + "); +my $distance= sub { + my ($from,$to)= @_; + my $d= $dists{$from}{$to}; + return $d if defined $d; + $distquery->execute($from,$to); + $d = $distquery->fetchrow_array(); + defined $d or die "$from $to ?"; + $dists{$from}{$to}= $d; + return $d; +}; + my @cols= ({ NoSort => 1 }); my $addcols= sub { @@ -190,7 +205,7 @@ $addcols->({ DoReverse => 1, SortColKey => 'MarginSortKey' }, qw( Margin )); $addcols->({ DoReverse => 1 }, - qw( unitprofit MaxQty + qw( unitprofit dist MaxQty MaxCapital MaxProfit )); @@ -263,6 +278,8 @@ foreach my $f (@flows) { $f->{'dst_price'} * (1.0 - $loss_per_league) ** $f->{'dist'} - $f->{'org_price'}; + $dists{'org_id'}{'dst_id'}= $f->{'dist'}; + my @uid= $f->{commodid}; foreach my $od (qw(org dst)) { push @uid, @@ -469,6 +486,7 @@ $addcols->({ Total => 0, DoReverse => 1 }, qw(
+
% $iquery->execute($islandids[$i]);
% my ($islandname) = $iquery->fetchrow_array();
+% my $this_dist= $distance->($islandids[$i-1],$islandids[$i]);
+% $total_dist += $this_dist;
% if (!$i) {
-Start at <% $islandname |h %>
+Start at <% $islandname |h %>
% } else {
-Sail to <% $islandname |h %>
+Sail to <% $islandname |h %>
+- <% $this_dist |h %> leagues |
% }
-
<%perl>
my $age_reported= 0;
my %flowlists;
@@ -680,7 +698,7 @@ Sail to <% $islandname |h %>
}
%perl>
+ | Total distance: <% $total_dist %> leagues.
| Overall net cash flow
| <%
$total_total < 0 ? -$total_total." loss" : $total_total." gain"
| |