} else {
    $current_pg = 0;
    $current_cpu = 0;
}
if ($current_cpu <= 0 && $tower_cpu > 0) {
    $current_cpu = $tower_cpu;
}
if ($current_pg <= 0 && $tower_pg > 0) {
    $current_pg = $tower_pg;
}
$tower['current_pg'] = $current_pg;
$tower['current_cpu'] = $current_cpu;
$row2 = $posmgmt->GetLastPosUpdate($pos_id);
$last_update = gmdate("Y-m-d H:i:s", $row2['datetime']);
$hoursago = $posmgmt->hoursago($pos_id, 1);
$optimal = $posmgmt->posoptimaluptime($tower);
$optimalDiff = $posmgmt->getOptimalDifference($optimal, $tower);
$avail_fuelblock = $current_fuelblock;
$avail_strontium = $current_strontium;
$avail_charters = $current_charters;
if ($avail_charters <= 0 && $required_charters) {
    $avail_charters = $current_charters - $required_charters * floor($current_charters / $required_charters);
}
$tower['avail_fuelblock'] = $avail_fuelblock;
$tower['avail_strontium'] = $avail_strontium;
$tower['avail_charters'] = $avail_charters;
$res0 = $posmgmt->GetPosSilos($pos_id);
$silocap = array(1 => 30000, 2 => 20000, 3 => 40000, 4 => 20000, 5 => 20000, 6 => 30000, 7 => 30000, 8 => 20000, 9 => 20000, 10 => 20000, 11 => 30000, 12 => 40000, 13 => 40000, 14 => 30000);
$x = 0;
$display_silo = false;
foreach ($res0 as $row0) {
     $tower['required_fuelblock'] = ceil($row3['fuelblock'] * $tower['hasSov']);
     $tower['required_strontium'] = ceil($row3['strontium'] * $tower['hasSov']);
     $tower['required_charters'] = $charters_needed ? 1 : 0;
     $row3['charters'] = $tower['required_charters'];
     $tower['total_pg'] = $row3['pg'];
     $tower['total_cpu'] = $row3['cpu'];
     $tower['uptimecalc'] = $posmgmt->uptimecalc($row['pos_id']);
     $tower['pos_capacity'] = $tower['fuel_hangar'] = $row3['fuel_hangar'];
 }
 $row['result_uptimecalc'] = $posmgmt->uptimecalc($row['pos_id']);
 $row['result_online'] = $posmgmt->online($row['result_uptimecalc']);
 $row['last_update'] = gmdate("Y-m-d H:i:s", $row2['datetime']);
 $row['online'] = $posmgmt->daycalc($row['result_online']);
 $row['region'] = $posmgmt->getRegionNameFromMoonID($row['MoonName']);
 $row['system'] = $posmgmt->getSystemName($row['systemID']);
 $row['result_optimal'] = $posmgmt->posoptimaluptime($tower);
 $rows[$key] = $row;
 $characterInfo = $posmgmt->GetUserInfofromID($row['owner_id']);
 $secondary_characterInfo = $posmgmt->GetUserInfofromID($row['secondary_owner_id']);
 $diff = array('fuelblock' => $row['result_optimal']['optimum_fuelblock'] - $row['fuelblock'], 'charters' => $row['result_optimal']['optimum_charters'] - $row['charters']);
 if ($row['pos_status'] >= 2) {
     if ($characterInfo['away'] != 1 && isset($characterInfo['email'])) {
         if ($row['result_online'] < $config['minimal_fuel']) {
             $mail->posalert($characterInfo['email'], $characterInfo['name'], $row, $row3, $diff);
         }
     }
     if ($secondary_characterInfo['away'] != 1 && isset($secondary_characterInfo['email'])) {
         if ($row['result_online'] < $config['minimal_fuel']) {
             $mail->posalert($secondary_characterInfo['email'], $secondary_characterInfo['name'], $row, $row3, $diff);
         }
     }
     $tower['required_charters'] = $charters_needed ? 1 : 0;
     $tower['total_pg'] = $row['pg'];
     $tower['total_cpu'] = $row['cpu'];
     $total_pg = $row['pg'];
     $total_cpu = $row['cpu'];
     $tower['pos_capacity'] = $tower['fuel_hangar'] = $row['fuel_hangar'];
 }
 if ($current_cpu <= 0 && $tower['cpu'] > 0) {
     $current_cpu = $tower_cpu;
 }
 if ($current_pg <= 0 && $tower_pg > 0) {
     $current_pg = $tower_pg;
 }
 $tower['current_pg'] = $current_pg;
 $tower['current_cpu'] = $current_cpu;
 $optimal = $posmgmt->posoptimaluptime($tower);
 $optimalDiff = $posmgmt->getOptimalDifference($optimal, $tower);
 if ($partial_fuelup == 1) {
     $tower['fuel_hangar'] = $cargosize;
     $partial_optimal = $posmgmt->posoptimaluptime($tower);
     $partial_optimal['total'] = $partial_optimal['optimum_fuelblock'] * $pos_Fbl;
     if ($tower['charters_needed'] == 1) {
         $partial_optimal['total'] = $partial_optimal['total'] + $partial_optimal['optimum_charters'] * $pos_Cha;
     }
 }
 if ($cargosize > 0) {
     $fuel['trips2'] = ceil($optimalDiff['totalDiff'] / $cargosize);
 }
 $eveRender->Assign('optimal', $optimal);
 $eveRender->Assign('optimalDiff', $optimalDiff);
 $eveRender->Assign('partial_optimal', $partial_optimal);