public function processFieldUpdate(\Gems_Tracker_RespondentTrack $respTrack, $userId)
    {
        $agenda = $this->loader->getAgenda();
        $change = false;
        $token  = $respTrack->getFirstToken();

        if (! $token) {
            return;
        }

        do {
            if ($token->isCompleted()) {
                continue;
            }

            $appId = $respTrack->getRoundAfterAppointmentId($token->getRoundId());

            // Not a round without appointment id
            if ($appId !== false) {
                if ($appId) {
                    $appointment = $agenda->getAppointment($appId);
                } else {
                    $appointment = null;
                }

                if ($appointment && $appointment->isActive()) {
                    $newCode = \GemsEscort::RECEPTION_OK;
                    $newText = null;
                } else {
                    $newCode = 'skip';
                    $newText = $this->_('Skipped until appointment is set');
                }
                $oldCode = \GemsEscort::RECEPTION_OK === $newCode ? 'skip' : \GemsEscort::RECEPTION_OK;
                $curCode = $token->getReceptionCode()->getCode();
                // \MUtil_Echo::track($token->getTokenId(), $curCode, $oldCode, $newCode);
                if (($oldCode === $curCode) && ($curCode !== $newCode)) {
                    $change = true;
                    $token->setReceptionCode($newCode, $newText, $userId);
                }
            }
        } while ($token = $token->getNextToken());

        if ($change) {
            $respTrack->refresh();
        }
    }
public function processFieldUpdate(\Gems_Tracker_RespondentTrack $respTrack, $userId)
    {
        $agenda = $this->loader->getAgenda();
        $change = false;
        $token  = $respTrack->getFirstToken();

        if (! $token) {
            return;
        }

        do {
            if ($token->isCompleted()) {
                continue;
            }

            $appId = $respTrack->getRoundAfterAppointmentId($token->getRoundId());

            // Not a round without appointment id
            if ($appId !== false) {
                if ($appId) {
                    $appointment = $agenda->getAppointment($appId);
                } else {
                    $appointment = null;
                }

                if ($appointment && $appointment->isActive()) {
                    $newCode = \GemsEscort::RECEPTION_OK;
                    $newText = null;
                } else {
                    $newCode = 'skip';
                    $newText = $this->_('Skipped until appointment is set');
                }
                $oldCode = \GemsEscort::RECEPTION_OK === $newCode ? 'skip' : \GemsEscort::RECEPTION_OK;
                $curCode = $token->getReceptionCode()->getCode();
                // \MUtil_Echo::track($token->getTokenId(), $curCode, $oldCode, $newCode);
                if (($oldCode === $curCode) && ($curCode !== $newCode)) {
                    $change = true;
                    $token->setReceptionCode($newCode, $newText, $userId);
                }
            }
        } while ($token = $token->getNextToken());

        if ($change) {
            $respTrack->refresh();
        }
    }
public function processFieldUpdate ( \ Gems_Tracker_RespondentTrack $ respTrack , $ userId ) { $ agenda = $ this -> loader -> getAgenda ( ) ; $ change = false ; $ token = $ respTrack -> getFirstToken ( ) ; if ( ! $ token ) { return ; } do { if ( $ token -> isCompleted ( ) ) { continue ; } $ appId = $ respTrack -> getRoundAfterAppointmentId ( $ token -> getRoundId ( ) ) ; // Not a round without appointment id if ( $ appId !== false ) { if ( $ appId ) { $ appointment = $ agenda -> getAppointment ( $ appId ) ; } else { $ appointment = null ; } if ( $ appointment && $ appointment -> isActive ( ) ) { $ newCode = \ GemsEscort :: RECEPTION_OK ; $ newText = null ; } else { $ newCode = 'skip' ; $ newText = $ this -> _ ( 'Skipped until appointment is set' ) ; } $ oldCode = \ GemsEscort :: RECEPTION_OK === $ newCode ? 'skip' : \ GemsEscort :: RECEPTION_OK ; $ curCode = $ token -> getReceptionCode ( ) -> getCode ( ) ; // \MUtil_Echo::track($token->getTokenId(), $curCode, $oldCode, $newCode); if ( ( $ oldCode === $ curCode ) && ( $ curCode !== $ newCode ) ) { $ change = true ; $ token -> setReceptionCode ( $ newCode , $ newText , $ userId ) ; } } } while ( $ token = $ token -> getNextToken ( ) ) ; if ( $ change ) { $ respTrack -> refresh ( ) ; } }
Process the data and do what must be done

Storing the changed $values is handled by the calling function.

@param \Gems_Tracker_RespondentTrack $respTrack Gems respondent track object
@param int   $userId The current userId
@return void
Process the data and do what must be done