/** * Change the status of a PIREP. For the status, use the constants: * PIREP_PENDING, PIREP_ACCEPTED, PIREP_REJECTED,PIREP_INPROGRESS * * Also handle paying the pilot, and handle PIREP rejection, etc * * @param int $pirepid The PIREP ID of status to change * @param int $status Use consts: PIREP_PENDING, PIREP_ACCEPTED, PIREP_REJECTED,PIREP_INPROGRESS * @return bool */ public static function changePIREPStatus($pirepid, $status) { # Look up the status of the PIREP of previous $pirep_details = PIREPData::getReportDetails($pirepid); if (!$pirep_details) { return false; } if ($pirep_details->accepted == $status) { return true; } $ret = self::editPIREPFields($pirepid, array('accepted' => $status)); # Do something if the PIREP was previously marked as pending if ($pirep_details->accepted == PIREP_PENDING) { if ($status == PIREP_ACCEPTED) { self::calculatePIREPPayment($pirepid); SchedulesData::changeFlownCount($pirep_details->code, $pirep_details->flightnum, '+1'); } elseif ($status == PIREP_REJECTED) { // Do nothing, since nothing in the PIREP was actually counted } } elseif ($pirep_details->accepted == PIREP_ACCEPTED) { # If already accepted if ($status == PIREP_REJECTED) { LedgerData::deletePaymentByPIREP($pirep_details->pirepid); PilotData::resetPilotPay($pirep_details->pilotpay); SchedulesData::changeFlownCount($pirep_details->code, $pirep_details->flightnum, '-1'); } } PilotData::updatePilotStats($pirep_details->pilotid); RanksData::calculateUpdatePilotRank($pirep_details->pilotid); PilotData::generateSignature($pirep_details->pilotid); StatsData::updateTotalHours(); return $ret; }
public function testTotalTime() { StatsData::updateTotalHours(); }
/** * Change the status of a PIREP. For the status, use the constants: * PIREP_PENDING, PIREP_ACCEPTED, PIREP_REJECTED,PIREP_INPROGRESS * * Also handle paying the pilot, and handle PIREP rejection, etc * * @deprecated Use editPIREPFields instead */ public static function changePIREPStatus($pirepid, $status) { # Look up the status of the PIREP of previous $pirep_details = PIREPData::getReportDetails($pirepid); if (!$pirep_details) { return false; } if ($pirep_details->accepted == $status) { return true; } $ret = self::editPIREPFields($pirepid, array('accepted' => $status)); # Do something if the PIREP was previously marked as pending if ($pirep_details->accepted == PIREP_PENDING) { if ($status == PIREP_ACCEPTED) { # Pay per-schedule if (!empty($pirep_details->payforflight)) { $sql = 'UPDATE ' . TABLE_PREFIX . "pilots \n \t\t\t\tSET totalpay=totalpay+{$pirep_details->payforflight} \n \t\t\t\tWHERE pilotid={$pirep_details->pilotid}"; DB::query($sql); } else { # Pay by hour PilotData::updatePilotPay($pirep_details->pilotid, $pirep_details->flighttime, true); } SchedulesData::changeFlownCount($pirep_details->code, $pirep_details->flightnum, '+1'); } elseif ($status == PIREP_REJECTED) { // Do nothing, since nothing in the PIREP was actually counted } } elseif ($pirep_details->accepted == PIREP_ACCEPTED) { # If already accepted if ($status == PIREP_REJECTED) { # Subtract their pay for the rejected flight if (!empty($pirep_details->payforflight)) { $sql = 'UPDATE ' . TABLE_PREFIX . "pilots \n \t\t\t\tSET totalpay=totalpay-{$pirep_details->payforflight} \n \t\t\t\tWHERE pilotid={$pirep_details->pilotid}"; DB::query($sql); } else { PilotData::updatePilotPay($pirep_details->pilotid, $pirep_details->flighttime, false); } SchedulesData::changeFlownCount($pirep_details->code, $pirep_details->flightnum, '-1'); } } PilotData::updatePilotStats($pirep_details->pilotid); RanksData::calculateUpdatePilotRank($pirep_details->pilotid); PilotData::generateSignature($pirep_details->pilotid); StatsData::updateTotalHours(); return $ret; }