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
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;
$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(
my $stallname= $f->{"${od}_stallname"};
my $todo= \$flowlists{$od}{
$f->{'commodname'},
- (sprintf "%07d", $price),
+ (sprintf "%07d", ($od eq 'dst' ?
+ 9999999-$price : $price)),
$stallname
};
$$todo= {
<%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');
}