chiark / gitweb /
Report glpsol errors much better
[ypp-sc-tools.db-live.git] / yarrg / web / routetrade
index e4e583a83a190f1f33a77411c8533fdf50b505a8..6fe34fee16d382e0eb0e954a2e9fa6f174f04e23 100644 (file)
  This Mason component is the core trade planner for a specific route.
 
 
-========== TODO ==========
-16:36 <ceb> alpha,byrne,papaya,turtle,jorvik,luthien is my example
-
-use POST for update.  Hrrm.
-
-LATER OR NOT AT ALL
-
-adjustable potential cost of losses (rather than fixed 1e-BIG per league)
-
-max volume/mass
-
-========== TODO ==========
-
 </%doc>
 <%args>
 $dbh
@@ -423,7 +410,9 @@ if ($qa->{'debug'}) {
                qw(glpsol --cpxlp /dev/stdin -o /dev/stdout));
        print "<pre>\n" if $qa->{'debug'};
        my $found_section= 0;
+       my $glpsol_out= '';
        while (<$output>) {
+               $glpsol_out.= $_;
                print encode_entities($_) if $qa->{'debug'};
                if (m/^\s*No\.\s+Column name\s+St\s+Activity\s/) {
                        die if $found_section>0;
@@ -444,8 +433,9 @@ if ($qa->{'debug'}) {
                $flow->{OptCapital}= $flow->{OptQty} * $flow->{'org_price'};
        }
        print "</pre>\n" if $qa->{'debug'};
-       pipethrough_run_finish($output, 'glpsol');
-       die unless $found_section;
+       my $prerr= "\n=====\n$cplex\n=====\n$glpsol_out\n=====\n ";
+       pipethrough_run_finish($output,$prerr);
+       die $prerr unless $found_section;
 };
 
 $addcols->({ DoReverse => 1 }, qw(
@@ -587,7 +577,8 @@ Sail to <% $islandname |h %>
                my $stallname= $f->{"${od}_stallname"};
                my $todo= \$flowlists{$od}{
                                $f->{'commodname'},
-                               (sprintf "%07d", $price),
+                               (sprintf "%07d", ($od eq 'dst' ?
+                                               9999999-$price : $price)),
                                $stallname
                        };
                $$todo= {
@@ -668,9 +659,9 @@ Sail to <% $islandname |h %>
 <%perl>
      };
 
-     $show_flows->('org',1,'Collect');  $show_total->('(Arbitrage) outlay');
-     $show_flows->('dst',1,'Deliver');
      $show_flows->('dst',0,'Deliver');  $show_total->('Proceeds');
+     $show_flows->('org',1,'Collect');  $show_total->('(Arbitrage) outlay');
+     $show_flows->('dst',1,'Deliver');  $show_total->('(Arbitrage) proceeds');
      $show_flows->('org',0,'Collect');  $show_total->('Outlay');
 
 }