public static function getAllQuota() { $Data = Quota::model()->findAll(); $res = array(); foreach ($Data as $record) { $res[$record->idQuota] = $record->QuotaName; } return $res; }
function deleteQuota($condition = false, $recursive = true) { if ($recursive == true) { $oResult = Quota::model()->findAllByAttributes($condition); foreach ($oResult as $aRow) { Quota_languagesettings::model()->deleteAllByAttributes(array('quotals_quota_id' => $aRow['id'])); Quota_members::model()->deleteAllByAttributes(array('quota_id' => $aRow['id'])); } } Quota::model()->deleteAllByAttributes($condition); }
public function testAddsNewQuota() { $duration = QuotaDuration::Month; $limit = 2.4; $unit = QuotaUnit::Reservations; $resourceId = 2183; $groupId = 123987; $scheduleId = 102983; $quota = Quota::Create($duration, $limit, $unit, $resourceId, $groupId, $scheduleId); $command = new AddQuotaCommand($duration, $limit, $unit, $resourceId, $groupId, $scheduleId); $this->repository->Add($quota); $this->assertEquals($command, $this->db->_LastCommand); }
public function testWhenHourlyLimitIsExceededInYear() { $duration = new QuotaDurationYear(); $limit = new QuotaLimitHours(1.5); $startDate = Date::Parse('2011-04-03 0:30', $this->schedule->GetTimezone()); $endDate = Date::Parse('2011-04-03 1:30', $this->schedule->GetTimezone()); $series = $this->GetHourLongReservation($startDate, $endDate); $quota = new Quota(1, $duration, $limit, $series->ResourceId()); $res1 = new ReservationItemView('ref1', $startDate->SetTimeString('00:00'), $endDate->SetTimeString('00:31'), '', $series->ResourceId(), 98712); $res1->ScheduleId = $series->ScheduleId(); $reservations = array($res1); $this->SearchReturns($reservations); $exceeds = $quota->ExceedsQuota($series, $this->user, $this->schedule, $this->reservationViewRepository); $this->assertTrue($exceeds); }
/** * getQuotaInformation() returns quota information for the current survey * @param string $surveyid - Survey identification number * @param string $language - Language of the quota * @param string $quotaid - Optional quotaid that restricts the result to a given quota * @return array - nested array, Quotas->Members */ function getQuotaInformation($surveyid, $language, $iQuotaID = null) { Yii::log('getQuotaInformation'); $baselang = Survey::model()->findByPk($surveyid)->language; $aAttributes = array('sid' => $surveyid); if ((int) $iQuotaID) { $aAttributes['id'] = $iQuotaID; } $aQuotas = Quota::model()->with(array('languagesettings' => array('condition' => "quotals_language='{$language}'")))->findAllByAttributes($aAttributes); $aSurveyQuotasInfo = array(); $x = 0; $surveyinfo = getSurveyInfo($surveyid, $language); // Check all quotas for the current survey if (count($aQuotas) > 0) { foreach ($aQuotas as $oQuota) { // Array for each quota $aQuotaInfo = array_merge($oQuota->attributes, $oQuota->languagesettings[0]->attributes); // We have only one language, then we can use first only $aQuotaMembers = QuotaMember::model()->findAllByAttributes(array('quota_id' => $oQuota->id)); $aQuotaInfo['members'] = array(); if (count($aQuotaMembers) > 0) { foreach ($aQuotaMembers as $oQuotaMember) { $oMemberQuestion = Question::model()->findByAttributes(array('qid' => $oQuotaMember->qid, 'language' => $baselang)); if ($oMemberQuestion) { $sFieldName = "0"; if ($oMemberQuestion->type == "I" || $oMemberQuestion->type == "G" || $oMemberQuestion->type == "Y") { $sFieldName = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $oQuotaMember->qid; $sValue = $oQuotaMember->code; } if ($oMemberQuestion->type == "L" || $oMemberQuestion->type == "O" || $oMemberQuestion->type == "!") { $sFieldName = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $oQuotaMember->qid; $sValue = $oQuotaMember->code; } if ($oMemberQuestion->type == "M") { $sFieldName = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $oQuotaMember->qid . $oQuotaMember->code; $sValue = "Y"; } if ($oMemberQuestion->type == "A" || $oMemberQuestion->type == "B") { $temp = explode('-', $oQuotaMember->code); $sFieldName = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $oQuotaMember->qid . $temp[0]; $sValue = $temp[1]; } $aQuotaInfo['members'][] = array('title' => $oMemberQuestion->title, 'type' => $oMemberQuestion->type, 'code' => $oQuotaMember->code, 'value' => $sValue, 'qid' => $oQuotaMember->qid, 'fieldname' => $sFieldName); } } } // Push this quota Information to all survey quota array_push($aSurveyQuotasInfo, $aQuotaInfo); } } return $aSurveyQuotasInfo; }
/** * @test */ public function unlimitedQuotaHasAlwaysSpaceLeft() { $this->assertEquals(303, Quota::unlimited()->spaceLeft(303)); }
/** * This function imports a LimeSurvey .lss survey XML file * * @param mixed $sFullFilePath The full filepath of the uploaded file */ function XMLImportSurvey($sFullFilePath, $sXMLdata = NULL, $sNewSurveyName = NULL, $iDesiredSurveyId = NULL, $bTranslateInsertansTags = true, $bConvertInvalidQuestionCodes = true) { Yii::app()->loadHelper('database'); $clang = Yii::app()->lang; $aGIDReplacements = array(); if ($sXMLdata == NULL) { $sXMLdata = file_get_contents($sFullFilePath); } $xml = @simplexml_load_string($sXMLdata, 'SimpleXMLElement', LIBXML_NONET); if (!$xml || $xml->LimeSurveyDocType != 'Survey') { $results['error'] = $clang->gT("This is not a valid LimeSurvey survey structure XML file."); return $results; } $pre_personal_characteristics = ""; $question_groups['R'] = array(); $question_groups['I'] = array(); $question_groups['O'] = array(); $iDBVersion = (int) $xml->DBVersion; $aQIDReplacements = array(); $aQuestionCodeReplacements = array(); $aQuotaReplacements = array(); $results['defaultvalues'] = 0; $results['answers'] = 0; $results['surveys'] = 0; $results['questions'] = 0; $results['subquestions'] = 0; $results['question_attributes'] = 0; $results['groups'] = 0; $results['assessments'] = 0; $results['quota'] = 0; $results['quotals'] = 0; $results['quotamembers'] = 0; $results['survey_url_parameters'] = 0; $results['importwarnings'] = array(); $aLanguagesSupported = array(); foreach ($xml->languages->language as $language) { $aLanguagesSupported[] = (string) $language; } $results['languages'] = count($aLanguagesSupported); // Import surveys table ==================================================== foreach ($xml->surveys->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $iOldSID = $results['oldsid'] = $insertdata['sid']; if ($iDesiredSurveyId != NULL) { $insertdata['wishSID'] = GetNewSurveyID($iDesiredSurveyId); } else { $insertdata['wishSID'] = $iOldSID; } if ($iDBVersion < 145) { if (isset($insertdata['private'])) { $insertdata['anonymized'] = $insertdata['private']; } unset($insertdata['private']); unset($insertdata['notification']); } //Make sure it is not set active $insertdata['active'] = 'N'; //Set current user to be the owner $insertdata['owner_id'] = Yii::app()->session['loginID']; if (isset($insertdata['bouncetime']) && $insertdata['bouncetime'] == '') { $insertdata['bouncetime'] = NULL; } if (isset($insertdata['showXquestions'])) { $insertdata['showxquestions'] = $insertdata['showXquestions']; unset($insertdata['showXquestions']); } // Special code to set javascript in Yii::app()->loadHelper('admin/template'); $newname = "watson_" . time(); $newdirname = Yii::app()->getConfig('usertemplaterootdir') . "/" . $newname; $copydirname = getTemplatePath("watson_personal_constructs_copy_me"); $oFileHelper = new CFileHelper(); $mkdirresult = mkdir_p($newdirname); if ($mkdirresult == 1) { $oFileHelper->copyDirectory($copydirname, $newdirname); $templatename = $newname; //$this->index("startpage.pstpl", "welcome", $templatename); } elseif ($mkdirresult == 2) { $results['Error'] = sprintf($clang->gT("Directory with the name `%s` already exists - choose another name", "js"), $newname); } else { $results['Error'] = sprintf($clang->gT("Unable to create directory `%s`.", "js"), $newname) . " " . $clang->gT("Please check the directory permissions.", "js"); } $insertdata['template'] = $newname; // End special copy code (taken from templates.php templatecopy() method if (isset($insertdata['googleAnalyticsStyle'])) { $insertdata['googleanalyticsstyle'] = $insertdata['googleAnalyticsStyle']; unset($insertdata['googleAnalyticsStyle']); } if (isset($insertdata['googleAnalyticsAPIKey'])) { $insertdata['googleanalyticsapikey'] = $insertdata['googleAnalyticsAPIKey']; unset($insertdata['googleAnalyticsAPIKey']); } if (isset($insertdata['allowjumps'])) { $insertdata['questionindex'] = $insertdata['allowjumps'] == "Y" ? 1 : 0; unset($insertdata['allowjumps']); } /* Remove unknow column */ $aSurveyModelsColumns = Survey::model()->attributes; $aSurveyModelsColumns['wishSID'] = null; // To force a sid surely $aBadData = array_diff_key($insertdata, $aSurveyModelsColumns); $insertdata = array_intersect_key($insertdata, $aSurveyModelsColumns); // Fill a optionnal array of error foreach ($aBadData as $key => $value) { $results['importwarnings'][] = sprintf($clang->gT("This survey setting has not been imported: %s => %s"), $key, $value); } $iNewSID = $results['newsid'] = Survey::model()->insertNewSurvey($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [1]<br />"); $pre_personal_characteristics = file_get_contents($newdirname . "/question.pstpl"); $results['surveys']++; } // Import survey languagesettings table =================================================================================== foreach ($xml->surveys_languagesettings->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['surveyls_language'], $aLanguagesSupported)) { continue; } // Assign new survey ID $insertdata['surveyls_survey_id'] = $iNewSID; // Assign new survey name (if a copy) if ($sNewSurveyName != NULL) { $insertdata['surveyls_title'] = $sNewSurveyName; } if ($bTranslateInsertansTags) { $insertdata['surveyls_title'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_title']); if (isset($insertdata['surveyls_description'])) { $insertdata['surveyls_description'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_description']); } if (isset($insertdata['surveyls_welcometext'])) { $insertdata['surveyls_welcometext'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_welcometext']); } if (isset($insertdata['surveyls_urldescription'])) { $insertdata['surveyls_urldescription'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_urldescription']); } if (isset($insertdata['surveyls_email_invite'])) { $insertdata['surveyls_email_invite'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_invite']); } if (isset($insertdata['surveyls_email_remind'])) { $insertdata['surveyls_email_remind'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_remind']); } if (isset($insertdata['surveyls_email_register'])) { $insertdata['surveyls_email_register'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_register']); } if (isset($insertdata['surveyls_email_confirm'])) { $insertdata['surveyls_email_confirm'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_confirm']); } } if (isset($insertdata['surveyls_attributecaptions']) && substr($insertdata['surveyls_attributecaptions'], 0, 1) != '{') { unset($insertdata['surveyls_attributecaptions']); } $result = SurveyLanguageSetting::model()->insertNewSurvey($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [2]<br />"); } // Import groups table =================================================================================== if (isset($xml->groups->rows->row)) { foreach ($xml->groups->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported)) { continue; } $iOldSID = $insertdata['sid']; $insertdata['sid'] = $iNewSID; $oldgid = $insertdata['gid']; unset($insertdata['gid']); // save the old qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['group_name'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['group_name']); $insertdata['description'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['description']); } // Insert the new group if (isset($aGIDReplacements[$oldgid])) { switchMSSQLIdentityInsert('groups', true); $insertdata['gid'] = $aGIDReplacements[$oldgid]; } $newgid = QuestionGroup::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [3]<br />"); if ($insertdata['group_name'] == 'Real Characteristics' || $insertdata['group_name'] == 'PC - Real Characteristics') { $question_groups['R'][] = $newgid; } else { if ($insertdata['group_name'] == 'Ideal Characteristics' || $insertdata['group_name'] == 'PC - Ideal Characteristics') { $question_groups['I'][] = $newgid; } else { if ($insertdata['group_name'] == 'Ought Characteristics' || $insertdata['group_name'] == 'PC - Ought Characteristics') { $question_groups['O'][] = $newgid; } } } $results['groups']++; if (!isset($aGIDReplacements[$oldgid])) { $aGIDReplacements[$oldgid] = $newgid; // add old and new qid to the mapping array } else { switchMSSQLIdentityInsert('groups', false); } } } // Import questions table =================================================================================== // We have to run the question table data two times - first to find all main questions // then for subquestions (because we need to determine the new qids for the main questions first) if (isset($xml->questions)) { foreach ($xml->questions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported) || $insertdata['gid'] == 0) { continue; } $iOldSID = $insertdata['sid']; $insertdata['sid'] = $iNewSID; $insertdata['gid'] = $aGIDReplacements[$insertdata['gid']]; $oldqid = $insertdata['qid']; unset($insertdata['qid']); // save the old qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['question'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']); $insertdata['help'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']); } // Insert the new question if (isset($aQIDReplacements[$oldqid])) { $insertdata['qid'] = $aQIDReplacements[$oldqid]; switchMSSQLIdentityInsert('questions', true); } if ($insertdata) { XSSFilterArray($insertdata); } if (!$bConvertInvalidQuestionCodes) { $sScenario = 'archiveimport'; } else { $sScenario = 'import'; } $oQuestion = new Question($sScenario); $oQuestion->setAttributes($insertdata, false); // Try to fix question title for valid question code enforcement if (!$oQuestion->validate(array('title'))) { $sOldTitle = $oQuestion->title; $sNewTitle = preg_replace("/[^A-Za-z0-9]/", '', $sOldTitle); if (is_numeric(substr($sNewTitle, 0, 1))) { $sNewTitle = 'q' . $sNewTitle; } $oQuestion->title = $sNewTitle; } $attempts = 0; // Try to fix question title for unique question code enforcement while (!$oQuestion->validate(array('title'))) { if (!isset($index)) { $index = 0; $rand = mt_rand(0, 1024); } else { $index++; } $sNewTitle = 'r' . $rand . 'q' . $index; $oQuestion->title = $sNewTitle; $attempts++; if ($attempts > 10) { safeDie($clang->gT("Error") . ": Failed to resolve question code problems after 10 attempts.<br />"); } } if (!$oQuestion->save()) { // safeDie($clang->gT("Error while saving: "). print_r($oQuestion->errors, true)); // // In PHP 5.2.10 a bug is triggered that resets the foreach loop when inserting a record // Problem is that it is the default PHP version on Ubuntu 12.04 LTS (which is currently very common in use) // For this reason we ignore insertion errors (because it is most likely a duplicate) // and continue with the next one continue; } // Set a warning if question title was updated if (isset($sNewTitle)) { $results['importwarnings'][] = sprintf($clang->gT("Question code %s was updated to %s."), $sOldTitle, $sNewTitle); $aQuestionCodeReplacements[$sOldTitle] = $sNewTitle; unset($sNewTitle); unset($sOldTitle); } $newqid = $oQuestion->qid; if (!isset($aQIDReplacements[$oldqid])) { $aQIDReplacements[$oldqid] = $newqid; $results['questions']++; } else { switchMSSQLIdentityInsert('questions', false); } } } // Import subquestions ------------------------------------------------------- if (isset($xml->subquestions)) { foreach ($xml->subquestions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported) || $insertdata['gid'] == 0) { continue; } if (!isset($insertdata['mandatory']) || trim($insertdata['mandatory']) == '') { $insertdata['mandatory'] = 'N'; } $insertdata['sid'] = $iNewSID; $insertdata['gid'] = $aGIDReplacements[(int) $insertdata['gid']]; $oldsqid = (int) $insertdata['qid']; unset($insertdata['qid']); // save the old qid $insertdata['parent_qid'] = $aQIDReplacements[(int) $insertdata['parent_qid']]; // remap the parent_qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['question'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']); if (isset($insertdata['help'])) { $insertdata['help'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']); } } if (isset($aQIDReplacements[$oldsqid])) { $insertdata['qid'] = $aQIDReplacements[$oldsqid]; switchMSSQLIdentityInsert('questions', true); } if ($insertdata) { XSSFilterArray($insertdata); } if (!$bConvertInvalidQuestionCodes) { $sScenario = 'archiveimport'; } else { $sScenario = 'import'; } $question = new Question($sScenario); $question->setAttributes($insertdata, false); // Try to fix question title for valid question code enforcement if (!$question->validate(array('title'))) { $sOldTitle = $question->title; $sNewTitle = preg_replace("/[^A-Za-z0-9]/", '', $sOldTitle); if (is_numeric(substr($sNewTitle, 0, 1))) { $sNewTitle = 'sq' . $sNewTitle; } $question->title = $sNewTitle; } $attempts = 0; // Try to fix question title for unique question code enforcement while (!$question->validate(array('title'))) { if (!isset($index)) { $index = 0; $rand = mt_rand(0, 1024); } else { $index++; } $sNewTitle = 'r' . $rand . 'sq' . $index; $question->title = $sNewTitle; $attempts++; if ($attempts > 10) { safeDie($clang->gT("Error") . ": Failed to resolve question code problems after 10 attempts.<br />"); } } if (!$question->save()) { // safeDie($clang->gT("Error while saving: "). print_r($question->errors, true)); // // In PHP 5.2.10 a bug is triggered that resets the foreach loop when inserting a record // Problem is that it is the default PHP version on Ubuntu 12.04 LTS (which is currently very common in use) // For this reason we ignore insertion errors (because it is most likely a duplicate) // and continue with the next one continue; } // Set a warning if question title was updated if (isset($sNewTitle)) { $results['importwarnings'][] = sprintf($clang->gT("Title of subquestion %s was updated to %s."), $sOldTitle, $sNewTitle); // Maybe add the question title ? $aQuestionCodeReplacements[$sOldTitle] = $sNewTitle; unset($sNewTitle); unset($sOldTitle); } $newsqid = $question->qid; if (!isset($insertdata['qid'])) { $aQIDReplacements[$oldsqid] = $newsqid; // add old and new qid to the mapping array } else { switchMSSQLIdentityInsert('questions', false); } $results['subquestions']++; } } // Import answers ------------------------------------------------------------ if (isset($xml->answers)) { foreach ($xml->answers->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported) || !isset($aQIDReplacements[(int) $insertdata['qid']])) { continue; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the parent_qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['answer'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['answer']); } if ($insertdata) { XSSFilterArray($insertdata); } if (Answer::model()->insertRecords($insertdata)) { $results['answers']++; } } } // Import questionattributes ------------------------------------------------- if (isset($xml->question_attributes)) { $aAllAttributes = questionAttributes(true); foreach ($xml->question_attributes->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } // take care of renaming of date min/max adv. attributes fields if ($iDBVersion < 170) { if (isset($insertdata['attribute'])) { if ($insertdata['attribute'] == 'dropdown_dates_year_max') { $insertdata['attribute'] = 'date_max'; } if ($insertdata['attribute'] == 'dropdown_dates_year_min') { $insertdata['attribute'] = 'date_min'; } } } unset($insertdata['qaid']); if (!isset($aQIDReplacements[(int) $insertdata['qid']])) { continue; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the qid if ($iDBVersion < 156 && isset($aAllAttributes[$insertdata['attribute']]['i18n']) && $aAllAttributes[$insertdata['attribute']]['i18n']) { foreach ($aLanguagesSupported as $sLanguage) { $insertdata['language'] = $sLanguage; if ($insertdata) { XSSFilterArray($insertdata); } $result = QuestionAttribute::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[7]<br />"); } } else { $result = QuestionAttribute::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[8]<br />"); } $results['question_attributes']++; } } // Import defaultvalues ------------------------------------------------------ if (isset($xml->defaultvalues)) { $results['defaultvalues'] = 0; foreach ($xml->defaultvalues->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the qid if (isset($aQIDReplacements[(int) $insertdata['sqid']])) { $insertdata['sqid'] = $aQIDReplacements[(int) $insertdata['sqid']]; } // remap the subquestion id if ($insertdata) { XSSFilterArray($insertdata); } // now translate any links $result = DefaultValue::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[9]<br />"); $results['defaultvalues']++; } } $aOldNewFieldmap = reverseTranslateFieldNames($iOldSID, $iNewSID, $aGIDReplacements, $aQIDReplacements); // Import conditions --------------------------------------------------------- if (isset($xml->conditions)) { $results['conditions'] = 0; foreach ($xml->conditions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } // replace the qid for the new one (if there is no new qid in the $aQIDReplacements array it mean that this condition is orphan -> error, skip this record) if (isset($aQIDReplacements[$insertdata['qid']])) { $insertdata['qid'] = $aQIDReplacements[$insertdata['qid']]; // remap the qid } else { continue; } // a problem with this answer record -> don't consider if ($insertdata['cqid'] != 0) { if (isset($aQIDReplacements[$insertdata['cqid']])) { $oldcqid = $insertdata['cqid']; //Save for cfield transformation $insertdata['cqid'] = $aQIDReplacements[$insertdata['cqid']]; // remap the qid } else { continue; } // a problem with this answer record -> don't consider list($oldcsid, $oldcgid, $oldqidanscode) = explode("X", $insertdata["cfieldname"], 3); // replace the gid for the new one in the cfieldname(if there is no new gid in the $aGIDReplacements array it means that this condition is orphan -> error, skip this record) if (!isset($aGIDReplacements[$oldcgid])) { continue; } } unset($insertdata["cid"]); // recreate the cfieldname with the new IDs if ($insertdata['cqid'] != 0) { if (preg_match("/^\\+/", $oldcsid)) { $newcfieldname = '+' . $iNewSID . "X" . $aGIDReplacements[$oldcgid] . "X" . $insertdata["cqid"] . substr($oldqidanscode, strlen($oldcqid)); } else { $newcfieldname = $iNewSID . "X" . $aGIDReplacements[$oldcgid] . "X" . $insertdata["cqid"] . substr($oldqidanscode, strlen($oldcqid)); } } else { // The cfieldname is a not a previous question cfield but a {XXXX} replacement field $newcfieldname = $insertdata["cfieldname"]; } $insertdata["cfieldname"] = $newcfieldname; if (trim($insertdata["method"]) == '') { $insertdata["method"] = '=='; } // Now process the value and replace @sgqa@ codes if (preg_match("/^@(.*)@\$/", $insertdata["value"], $cfieldnameInCondValue)) { if (isset($aOldNewFieldmap[$cfieldnameInCondValue[1]])) { $newvalue = '@' . $aOldNewFieldmap[$cfieldnameInCondValue[1]] . '@'; $insertdata["value"] = $newvalue; } } // now translate any links $result = Condition::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[10]<br />"); $results['conditions']++; } } // TMSW Condition->Relevance: Call LEM->ConvertConditionsToRelevance // Import assessments -------------------------------------------------------- if (isset($xml->assessments)) { foreach ($xml->assessments->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if ($insertdata['gid'] > 0) { $insertdata['gid'] = $aGIDReplacements[(int) $insertdata['gid']]; // remap the qid } $insertdata['sid'] = $iNewSID; // remap the survey id unset($insertdata['id']); // now translate any links $result = Assessment::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[11]<br />"); $results['assessments']++; } } // Import quota -------------------------------------------------------------- if (isset($xml->quota)) { foreach ($xml->quota->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['sid'] = $iNewSID; // remap the survey id $oldid = $insertdata['id']; unset($insertdata['id']); // now translate any links $result = Quota::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[12]<br />"); $aQuotaReplacements[$oldid] = getLastInsertID('{{quota}}'); $results['quota']++; } } // Import quota_members ------------------------------------------------------ if (isset($xml->quota_members)) { foreach ($xml->quota_members->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['sid'] = $iNewSID; // remap the survey id $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the qid $insertdata['quota_id'] = $aQuotaReplacements[(int) $insertdata['quota_id']]; // remap the qid unset($insertdata['id']); // now translate any links $result = QuotaMember::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[13]<br />"); $results['quotamembers']++; } } // Import quota_languagesettings---------------------------------------------- if (isset($xml->quota_languagesettings)) { foreach ($xml->quota_languagesettings->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['quotals_quota_id'] = $aQuotaReplacements[(int) $insertdata['quotals_quota_id']]; // remap the qid unset($insertdata['quotals_id']); $result = QuotaLanguageSetting::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['quotals']++; } } // Import survey_url_parameters ---------------------------------------------- if (isset($xml->survey_url_parameters)) { foreach ($xml->survey_url_parameters->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['sid'] = $iNewSID; // remap the survey id if (isset($insertdata['targetsqid']) && $insertdata['targetsqid'] != '') { $insertdata['targetsqid'] = $aQIDReplacements[(int) $insertdata['targetsqid']]; // remap the qid } if (isset($insertdata['targetqid']) && $insertdata['targetqid'] != '') { $insertdata['targetqid'] = $aQIDReplacements[(int) $insertdata['targetqid']]; // remap the qid } unset($insertdata['id']); $result = SurveyURLParameter::model()->insertRecord($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data[14]<br />"); $results['survey_url_parameters']++; } } // Set survey rights Permission::model()->giveAllSurveyPermissions(Yii::app()->session['loginID'], $iNewSID); $aOldNewFieldmap = reverseTranslateFieldNames($iOldSID, $iNewSID, $aGIDReplacements, $aQIDReplacements); $results['FieldReMap'] = $aOldNewFieldmap; LimeExpressionManager::SetSurveyId($iNewSID); translateInsertansTags($iNewSID, $iOldSID, $aOldNewFieldmap); replaceExpressionCodes($iNewSID, $aQuestionCodeReplacements); if (count($aQuestionCodeReplacements)) { array_unshift($results['importwarnings'], "<span class='warningtitle'>" . $clang->gT('Attention: Several question codes were updated. Please check these carefully as the update may not be perfect with customized expressions.') . '</span)>'); } LimeExpressionManager::RevertUpgradeConditionsToRelevance($iNewSID); LimeExpressionManager::UpgradeConditionsToRelevance($iNewSID); $js_variables = array(); if (!empty($question_groups['R'])) { $real_count = 1; $ideal_count = 1; $ought_count = 1; foreach ($results['FieldReMap'] as $code) { $value = explode('X', $code); if (isset($value[1]) && in_array($value[1], $question_groups['R'])) { if (!array_key_exists((int) $value[1], $js_variables)) { $int = substr($value[2], 0, strpos($value[2], 'PC')); $js_variables[$value[1]] = "var realGroupId" . $real_count . " = " . $value[1] . ";"; $js_variables[$value[1] . "-q"] = "var realQuestionId" . $real_count . " = " . $int . ";"; $real_count++; } } else { if (isset($value[1]) && in_array($value[1], $question_groups['I'])) { if (!array_key_exists((int) $value[1], $js_variables)) { $int = substr($value[2], 0, strpos($value[2], 'PC')); $js_variables[$value[1]] = "var idealGroupId" . $ideal_count . " = " . $value[1] . ";"; $js_variables[$value[1] . "-q"] = "var idealQuestionId" . $ideal_count . " = " . $int . ";"; $ideal_count++; } } else { if (isset($value[1]) && in_array($value[1], $question_groups['O'])) { if (!array_key_exists((int) $value[1], $js_variables)) { $int = substr($value[2], 0, strpos($value[2], 'PC')); $js_variables[$value[1]] = "var oughtGroupId" . $ought_count . " = " . $value[1] . ";"; $js_variables[$value[1] . "-q"] = "var oughtQuestionId" . $ought_count . " = " . $int . ";"; $ought_count++; } } } } } $js_variables[] = "var surveyId = " . $value[0] . ";"; } if (!empty($js_variables)) { $pre_personal_characteristics = str_replace("[REPLACE_ME]", implode(PHP_EOL, $js_variables), $pre_personal_characteristics); } else { $pre_personal_characteristics = '<div {QUESTION_ESSENTIALS} class="{QUESTION_CLASS}{QUESTION_MAN_CLASS}{QUESTION_INPUT_ERROR_CLASS}"> <div class="survey-question"> <div class="survey-question-text"> <span class="asterisk">{QUESTION_MANDATORY}</span><span class="qnumcode"> {QUESTION_NUMBER} {QUESTION_CODE} </span>{QUESTION_TEXT}<br /><span class="questionhelp">{QUESTION_HELP}</span> {QUESTION_MAN_MESSAGE} {QUESTION_VALID_MESSAGE} {QUESTION_FILE_VALID_MESSAGE} </div> <div class="survey-question-answer">{ANSWER}</div> <div class="survey-question-help">{QUESTIONHELP}</div> </div> <div class="survey-question-space"></div> </div>'; } file_put_contents($newdirname . "/question.pstpl", $pre_personal_characteristics); return $results; }
</tr> <tr class="row"> <td class="col1"> <?php $sem = AcademicTerm::model()->findByPk($stud_trans[0]['student_academic_term_name_id'])->academic_term_name; $acdm_period = AcademicTermPeriod::model()->findByPk($stud_trans[0]['student_academic_term_period_tran_id'])->academic_term_period;?> Current/Last Semester </td> <td class="col2"> <?php echo "Sem-".$sem; ?></td> </tr> <tr class="row"> <td class="col1">Current/Passing Academic Year </td> <td class="col2"><?php echo $acdm_period ?></td> </tr> <tr class="row"> <td class="col1">Quota </td> <td class="col2"><?php echo Quota::model()->findByPk($stud_trans[0]['student_transaction_quota_id'])->quota_name;?></td> </tr> </table> <div> </div> <?php if(!empty($stud_archive)) { ?> <table class="table_data"> <th colspan="4" style="font-size: 18px; color: rgb(255, 255, 255);"> Student History Record </th> <tr class="table_header"> <th>SI No.</th> <th>Academic Year</th> <th>Semester</th>
/** * Deletes a survey and all its data * * @access public * @param int $iSurveyID * @param bool @recursive * @return void */ public function deleteSurvey($iSurveyID, $recursive = true) { Survey::model()->deleteByPk($iSurveyID); if ($recursive == true) { if (tableExists("{{survey_" . intval($iSurveyID) . "}}")) { Yii::app()->db->createCommand()->dropTable("{{survey_" . intval($iSurveyID) . "}}"); } if (tableExists("{{survey_" . intval($iSurveyID) . "_timings}}")) { Yii::app()->db->createCommand()->dropTable("{{survey_" . intval($iSurveyID) . "_timings}}"); } if (tableExists("{{tokens_" . intval($iSurveyID) . "}}")) { Yii::app()->db->createCommand()->dropTable("{{tokens_" . intval($iSurveyID) . "}}"); } $oResult = Questions::model()->findAllByAttributes(array('sid' => $iSurveyID)); foreach ($oResult as $aRow) { Answers::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); Conditions::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); Question_attributes::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); Defaultvalues::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); } Questions::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); Assessment::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); Groups::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); Surveys_languagesettings::model()->deleteAllByAttributes(array('surveyls_survey_id' => $iSurveyID)); Survey_permissions::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); Saved_control::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); Survey_url_parameters::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); Quota::model()->deleteQuota(array('sid' => $iSurveyID), true); } }
?> <table class="table table-striped table-bordered table-condensed" id="tabellaUtenti"> <thead> <th>N.</th> <th>Nome</th> <th>Cognome</th> <th>Comitato</th> <th>Data versamento</th> <th>Quota</th> <th>Stato</th> <th>Azioni</th> </thead> <?php foreach ($appartenenza as $app) { $q = Quota::filtra([['appartenenza', $app]], 'timestamp DESC'); foreach ($q as $_q) { ?> <tr> <td><?php echo $_q->progressivo(); ?> </td> <td><?php echo $_q->volontario()->nome; ?> </td> <td><?php echo $_q->volontario()->cognome; ?> </td>
<h1>Previous Fees Category</h1> <!--<p> You may optionally enter a comparison operator (<b><</b>, <b><=</b>, <b>></b>, <b>>=</b>, <b><></b> or <b>=</b>) at the beginning of each of your search values to specify how the comparison should be done. </p>--> <?php //echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?> <div class="search-form" style="display:none"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $dataProvider = $model->search(); if (Yii::app()->user->getState("pageSize", @$_GET["pageSize"])) { $pageSize = Yii::app()->user->getState("pageSize", @$_GET["pageSize"]); } else { $pageSize = Yii::app()->params['pageSize']; } $dataProvider->getPagination()->setPageSize($pageSize); ?> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'fees-master-grid', 'dataProvider' => $dataProvider, 'filter' => $model, 'columns' => array(array('header' => 'SI No', 'class' => 'IndexColumn'), 'fees_master_name', array('name' => 'fees_quota_id', 'value' => 'Quota::model()->findByPk($data->fees_quota_id)->quota_name', 'filter' => CHtml::listData(Quota::model()->findAll(array('condition' => 'quota_organization_id=' . Yii::app()->user->getState('org_id'))), 'quota_id', 'quota_name')), array('class' => 'MyCButtonColumn', 'template' => '{view}')), 'pager' => array('class' => 'AjaxList', 'maxButtonCount' => $model->count(), 'header' => '')));
/** * getQuotaInformation() returns quota information for the current survey * @param string $surveyid - Survey identification number * @param string $language - Language of the quota * @param string $quotaid - Optional quotaid that restricts the result to a given quota * @return array - nested array, Quotas->Members->Fields */ function getQuotaInformation($surveyid, $language, $iQuotaID = 'all') { Yii::log('getQuotaInformation'); $baselang = Survey::model()->findByPk($surveyid)->language; $aAttributes = array('sid' => $surveyid); if ($iQuotaID != 'all') { $aAttributes['id'] = $iQuotaID; } $result = Quota::model()->with(array('languagesettings' => array('condition' => "quotals_language='{$language}'")))->findAllByAttributes($aAttributes); $quota_info = array(); $x = 0; $surveyinfo = getSurveyInfo($surveyid, $language); // Check all quotas for the current survey //if ($result->RecordCount() > 0) if (count($result) > 0) { //while ($survey_quotas = $result->FetchRow()) foreach ($result as $_survey_quotas) { $survey_quotas = array_merge($_survey_quotas->attributes, $_survey_quotas->languagesettings[0]->attributes); // We have only one language, then we can use first only array_push($quota_info, $survey_quotas); $result_qe = QuotaMember::model()->findAllByAttributes(array('quota_id' => $survey_quotas['id'])); $quota_info[$x]['members'] = array(); if (count($result_qe) > 0) { foreach ($result_qe as $quota_entry) { $quota_entry = $quota_entry->attributes; $oMemberQuestion = Question::model()->findByAttributes(array('qid' => $quota_entry['qid'], 'language' => $baselang)); if ($oMemberQuestion) { $fieldname = "0"; if ($oMemberQuestion->type == "I" || $oMemberQuestion->type == "G" || $oMemberQuestion->type == "Y") { $fieldname = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $quota_entry['qid']; $value = $quota_entry['code']; } if ($oMemberQuestion->type == "L" || $oMemberQuestion->type == "O" || $oMemberQuestion->type == "!") { $fieldname = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $quota_entry['qid']; $value = $quota_entry['code']; } if ($oMemberQuestion->type == "M") { // Need to remove invalid $quota_entry['code'] $fieldname = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $quota_entry['qid'] . $quota_entry['code']; $value = "Y"; } if ($oMemberQuestion->type == "A" || $oMemberQuestion->type == "B") { $temp = explode('-', $quota_entry['code']); $fieldname = $surveyid . 'X' . $oMemberQuestion->gid . 'X' . $quota_entry['qid'] . $temp[0]; $value = $temp[1]; } array_push($quota_info[$x]['members'], array('Title' => $oMemberQuestion->title, 'type' => $oMemberQuestion->type, 'code' => $quota_entry['code'], 'value' => $value, 'qid' => $quota_entry['qid'], 'fieldname' => $fieldname)); } } } $x++; } } return $quota_info; }
echo $form->labelEx($model, 'student_transaction_religion_id'); ?> <?php echo $form->dropDownList($model, 'student_transaction_religion_id', Religion::items(), array('empty' => 'Select Religion')); ?> <span class="status"> </span> <?php echo $form->error($model, 'student_transaction_religion_id'); ?> </div> <div class="row-right"> <?php echo $form->labelEx($model, 'student_transaction_quota_id'); ?> <?php echo $form->dropDownList($model, 'student_transaction_quota_id', Quota::items(), array('empty' => 'Select Quota')); ?> <span class="status"> </span> <?php echo $form->error($model, 'student_transaction_quota_id'); ?> </div> </div> <div class="row"> <div class="row-left"> <?php echo $form->labelEx($model, 'student_transaction_category_id'); ?> <?php echo $form->dropDownList($model, 'student_transaction_category_id', Category::items(), array('empty' => 'Select Category'));
/** * Restituisce le quote di un particolare tesseramento * @return Quote elenco delle quote di un particolare anno */ public function quote() { return Quota::filtra([['anno', $this->anno]]); }
?> </div> <?php } if (Yii::app()->user->hasFlash('success')) { ?> <div class="flash-success"> <?php echo Yii::app()->user->getFlash('success'); ?> </div> <?php } ?> </div> <?php $dataProvider = $model->search(); if (Yii::app()->user->getState("pageSize", @$_GET["pageSize"])) { $pageSize = Yii::app()->user->getState("pageSize", @$_GET["pageSize"]); } else { $pageSize = Yii::app()->params['pageSize']; } $dataProvider->getPagination()->setPageSize($pageSize); ?> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'student-transaction-grid', 'dataProvider' => $dataProvider, 'filter' => $model, 'ajaxUpdate' => false, 'columns' => array(array('header' => 'SI No', 'class' => 'IndexColumn'), array('name' => 'student_enroll_no', 'value' => '$data->Rel_Stud_Info->student_enroll_no'), array('name' => 'student_roll_no', 'value' => '$data->Rel_Stud_Info->student_roll_no'), array('name' => 'student_first_name', 'value' => '$data->Rel_Stud_Info->student_first_name'), array('name' => 'student_last_name', 'value' => '$data->Rel_Stud_Info->student_last_name'), array('name' => 'student_transaction_branch_id', 'value' => 'Branch::model()->findByPk($data->student_transaction_branch_id)->branch_name', 'filter' => CHtml::listData(Branch::model()->findAll(array('condition' => 'branch_organization_id=' . Yii::app()->user->getState('org_id'))), 'branch_id', 'branch_name')), array('name' => 'student_transaction_quota_id', 'value' => 'Quota::model()->findByPk($data->student_transaction_quota_id)->quota_name', 'filter' => CHtml::listData(Quota::model()->findAll(array('condition' => 'quota_organization_id=' . Yii::app()->user->getState('org_id'))), 'quota_id', 'quota_name')), array('name' => 'student_academic_term_period_tran_id', 'value' => 'AcademicTermPeriod::model()->findByPk($data->student_academic_term_period_tran_id)->academic_term_period'), array('name' => 'student_academic_term_name_id', 'value' => 'AcademicTerm::model()->findByPk($data->student_academic_term_name_id)->academic_term_name', 'filter' => CHtml::listData(AcademicTerm::model()->findAll(array('condition' => 'current_sem=1 and academic_term_organization_id=' . Yii::app()->user->getState('org_id'))), 'academic_term_id', 'academic_term_name')), array('name' => 'student_dtod_regular_status', 'value' => '$data->Rel_Stud_Info->student_dtod_regular_status'), array('name' => 'status_name', 'value' => '$data->Rel_Status->status_name'), array('type' => 'raw', 'value' => 'CHtml::image("../stud_images/" . $data->Rel_Photos->student_photos_path, "No Image",array("width"=>"20px","height"=>"20px"))'), array('class' => 'MyCButtonColumn', 'template' => '{update} {delete} ', 'buttons' => array('Add Fees' => array('label' => 'Pay Fees', 'url' => 'Yii::app()->createUrl("feesPaymentTransaction/create", array("id"=>$data->student_transaction_id))', 'imageUrl' => Yii::app()->baseUrl . '/images/add.jpeg', 'options' => array('class' => 'fees'))))), 'pager' => array('class' => 'AjaxList', 'maxButtonCount' => $model->count(), 'header' => '')));
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = Quota::model()->findByPk((int) $id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** * method to register the stream wrapper * * Please be aware that a call to this method will reset the root element * to null. * If the stream is already registered the method returns silently. If there * is already another stream wrapper registered for the scheme used by * vfsStream a vfsStreamException will be thrown. * * @throws vfsStreamException */ public static function register() { self::$root = null; self::$quota = Quota::unlimited(); if (true === self::$registered) { return; } if (@stream_wrapper_register(vfsStream::SCHEME, __CLASS__) === false) { throw new vfsStreamException('A handler has already been registered for the ' . vfsStream::SCHEME . ' protocol.'); } self::$registered = true; }
echo "</tr>"; $i = 1; $m = 1; //print_r($stud_data); exit; foreach ($stud_data as $t => $sd) { //echo $sd['student_transaction_quota_id']; if ($m % 2 == 0) { $class = "odd"; } else { $class = "even"; } echo "<tr class=" . $class . ">"; echo "<td>" . $i . "</td>"; foreach ($selected_list as $s) { if ($s == 'quota_name') { echo "<td>" . Quota::model()->findByPk($sd['student_transaction_quota_id'])->quota_name . "</td>"; } else { if ($s == 'branch_name') { echo "<td>" . Branch::model()->findByPk($sd['student_transaction_branch_id'])->branch_name . "</td>"; } else { if ($s == 'division_code') { echo "<td>" . Division::model()->findByPk($sd['student_transaction_division_id'])->{$s} . "</td>"; } else { if ($s == 'sem') { echo "<td>" . AcademicTerm::model()->findByPk($sd['student_academic_term_name_id'])->academic_term_name . "</td>"; } else { if ($s == 'student_address_c_line1') { echo "<td>" . StudentAddress::model()->findByPk($sd['student_transaction_student_address_id'])->student_address_c_line1 . " " . StudentAddress::model()->findByPk($sd['student_transaction_student_address_id'])->student_address_c_line2 . "</td>"; } else { if ($s == 'student_address_p_line1') { echo "<td>" . StudentAddress::model()->findByPk($sd['student_transaction_student_address_id'])->student_address_p_line1 . " " . StudentAddress::model()->findByPk($sd['student_transaction_student_address_id'])->student_address_p_line2 . "</td>";
<?php /* * ©2013 Croce Rossa Italiana */ paginaAdmin(); $elenco = Quota::elenco(); foreach ($elenco as $quota) { $data = date('d/m/Y', $quota->timestamp); $anno = date('Y', $quota->timestamp); $quota->anno = $anno; echo 'Quota pagata il: ' . $data . ' anno di riferimento inserito : ' . $quota->anno . '<br>'; }
<?php /* * ©2014 Croce Rossa Italiana */ paginaApp([APP_SOCI, APP_PRESIDENTE]); controllaParametri(array('id'), 'us.dash&err'); $id = $_GET['id']; $q = Quota::id($id); $v = $q->volontario(); $t = $q->tesseramento(); if (!$t || !$t->aperto()) { redirect('errore.permessi&cattivo'); } proteggiDatiSensibili($v, [APP_SOCI, APP_PRESIDENTE]); if ($q->annullata()) { redirect('us.dash&giaAnn'); } $q->pAnnullata = $me; $q->tAnnullata = time(); /* Invio email annullamento quota */ $m = new Email('annullaQuota', 'Annullamento pregistrazione agamento quota'); $m->a = $v; $m->da = $me; $m->_NUMERO = $q->progressivo(); $m->_NOME = $v->nomeCompleto(); $m->_ANNULLATORE = $me->nomeCompleto(); $m->_IMPORTO = soldi($q->quota); $m->_DATA = $q->data()->format('d/m/Y'); $m->invia(); redirect('us.dash&annullata');
$label = null; $field_value = null; ?> <!--Content div--> <div class="front_content"> <div class="contentpic"> <?php echo CHtml::image(Yii::app()->baseUrl . "/college_data/stud_images/" . $studphoto, "no-images", array("width" => "60px", "height" => "60px")); ?> </div> <div class="contentinfo"> <?php foreach ($selected_list as $key => $value) { if ($key == 'quota_name') { $field_value = Quota::model()->findByPk($stud['student_transaction_quota_id'])->quota_name; } else { if ($key == 'branch_name') { $field_value = Branch::model()->findByPk($stud['student_transaction_branch_id'])->branch_name; } else { if ($key == 'division_code') { $field_value = Division::model()->findByPk($stud['student_transaction_division_id'])->{$key}; } else { if ($key == 'sem') { $field_value = AcademicTerm::model()->findByPk($stud['student_academic_term_name_id'])->academic_term_name; } else { if ($key == 'student_first_name') { $lname = $StudentInfo->student_last_name; $fname = $StudentInfo->student_first_name; $mname = $StudentInfo->student_middle_name; $label = $value;
?> </div> <div class="span2"> <?php echo $form->labelEx($model, 'BudgetPlaces'); ?> <?php echo $form->textField($model, 'BudgetPlaces', array('class' => 'span12')); ?> <?php echo $form->error($model, 'BudgetPlaces'); ?> </div> <div class="span1"> <input type="hidden" name="SpecialityQuotesCreate" value="1" /> <?php echo CHtml::label('OK', 'SpecialityQuotesCreateButton'); $this->widget("bootstrap.widgets.TbButton", array('buttonType' => 'submit', 'type' => 'primary', 'icon' => 'star', 'id' => 'SpecialityQuotesCreateButton')); ?> </div> </div> <?php $this->endWidget(); ?> </div><!-- form --> </div> <?php $this->widget('bootstrap.widgets.TbGridView', array('id' => 'specialityquotes-grid', 'type' => 'striped bordered condensed', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array(array("name" => 'idSpecialityQuotes', 'htmlOptions' => array('class' => 'span1'), 'headerHtmlOptions' => array('class' => 'span1')), array('class' => 'bootstrap.widgets.TbEditableColumn', 'name' => 'SpecialityID', 'editable' => array('url' => $this->createUrl('specialityquotes/xedit'), 'type' => 'select', 'source' => Specialities::getAllSpecs(), 'placement' => 'right', 'inputclass' => 'span3'), 'htmlOptions' => array('class' => 'span5'), 'headerHtmlOptions' => array('class' => 'span5')), array('class' => 'bootstrap.widgets.TbEditableColumn', 'name' => 'QuotaID', 'editable' => array('url' => $this->createUrl('specialityquotes/xedit'), 'type' => 'select', 'source' => Quota::getAllQuota(), 'placement' => 'right', 'inputclass' => 'span3'), 'htmlOptions' => array('class' => 'span4'), 'headerHtmlOptions' => array('class' => 'span4')), array('class' => 'bootstrap.widgets.TbEditableColumn', 'name' => 'BudgetPlaces', 'editable' => array('url' => $this->createUrl('specialityquotes/xedit'), 'type' => 'text', 'placement' => 'right', 'inputclass' => 'span3'), 'htmlOptions' => array('class' => 'span2'), 'headerHtmlOptions' => array('class' => 'span2')), array('class' => 'bootstrap.widgets.TbButtonColumn'))));
function new_answer($iSurveyId, $sSubAction = 'new_answer') { $iSurveyId = sanitize_int($iSurveyId); $this->_checkPermissions($iSurveyId, 'update'); $aData = $this->_getData($iSurveyId); $sBaseLang = $aData['sBaseLang']; $aViewUrls = array(); if (($sSubAction == "new_answer" || $sSubAction == "new_answer_two" && !isset($_POST['quota_qid'])) && Permission::model()->hasSurveyPermission($iSurveyId, 'quotas', 'create')) { $result = Quota::model()->findAllByPk(Yii::app()->request->getPost('quota_id')); foreach ($result as $aQuotaDetails) { $quota_name = $aQuotaDetails['name']; } $result = Question::model()->findAllByAttributes(array('type' => array('G', 'M', 'Y', 'A', 'B', 'I', 'L', 'O', '!'), 'sid' => $iSurveyId, 'language' => $sBaseLang, 'parent_qid' => 0)); if (empty($result)) { $aViewUrls[] = 'newanswererror_view'; } else { $aData['newanswer_result'] = $result; $aData['quota_name'] = $quota_name; $aViewUrls[] = 'newanswer_view'; } } if ($sSubAction == "new_answer_two" && isset($_POST['quota_qid']) && Permission::model()->hasSurveyPermission($iSurveyId, 'quotas', 'create')) { $aResults = Quota::model()->findByPk(Yii::app()->request->getPost('quota_qid')); $sQuotaName = $aResults['name']; $aQuestionAnswers = self::getQuotaAnswers(Yii::app()->request->getPost('quota_qid'), $iSurveyId, Yii::app()->request->getPost('quota_id')); $x = 0; foreach ($aQuestionAnswers as $aQACheck) { if (isset($aQACheck['rowexists'])) { $x++; } } reset($aQuestionAnswers); $aData['question_answers'] = $aQuestionAnswers; $aData['x'] = $x; $aData['quota_name'] = $sQuotaName; $aViewUrls[] = 'newanswertwo_view'; } $aData['sidemenu']['state'] = false; $surveyinfo = Survey::model()->findByPk($iSurveyId)->surveyinfo; $aData['title_bar']['title'] = $surveyinfo['surveyls_title'] . "(" . gT("ID") . ":" . $iSurveyId . ")"; $aData['surveybar']['savebutton']['form'] = 'frmeditgroup'; $aData['surveybar']['closebutton']['url'] = 'admin/quotas/sa/index/surveyid/' . $iSurveyId; // Close button $this->_renderWrappedTemplate('quotas', $aViewUrls, $aData); }
echo $stud_info->student_roll_no; ?> </td> </tr> <tr class="row"> <td class="col1"> Current/Last Semester </td> <td class="col2"> <?php echo $semester; ?> </td> </tr> <tr class="row"> <td class="col1">Current/Passing Academic Year </td> <td class="col2"><?php echo $academic_period; ?> </td> </tr> <tr class="row"> <td class="col1">Quota </td> <td class="col2"><?php echo Quota::model()->findByPk($stud_tran_info->student_transaction_quota_id)->quota_name; ?> </td> </tr> </table> </br> <?php echo $this->renderPartial('_form', array('model' => $model));
?> <span class="status"> </span> <?php echo $form->error($model, 'student_transaction_religion_id'); ?> </div>--> </div> <div class="row"> <div class="row-left"> <?php echo $form->labelEx($model, 'student_transaction_quota_id'); ?> <?php echo $form->dropDownList($model, 'student_transaction_quota_id', Quota::items(), array('empty' => '-----------Select---------', 'tabindex' => 19)); ?> <span class="status"> </span> <?php echo $form->error($model, 'student_transaction_quota_id'); ?> </div> <!--<div class="row-right"> <?php echo $form->labelEx($model, 'student_transaction_category_id'); ?> <?php echo $form->dropDownList($model, 'student_transaction_category_id', Category::items(), array('empty' => '-----------Select---------', 'tabindex' => 20)); ?> <span class="status"> </span> <?php
/** * getQuotaInformation() returns quota information for the current survey * @param string $surveyid - Survey identification number * @param string $quotaid - Optional quotaid that restricts the result to a given quota * @return array - nested array, Quotas->Members->Fields */ function getQuotaInformation($surveyid, $language, $iQuotaID = 'all') { global $clienttoken; $baselang = Survey::model()->findByPk($surveyid)->language; $aAttributes = array('sid' => $surveyid); if ($iQuotaID != 'all') { $aAttributes['id'] = $iQuotaID; } $result = Quota::model()->with(array('languagesettings' => array('condition' => "quotals_language='{$language}'")))->findAllByAttributes($aAttributes); $quota_info = array(); $x = 0; $surveyinfo = getSurveyInfo($surveyid); // Check all quotas for the current survey //if ($result->RecordCount() > 0) if (count($result) > 0) { //while ($survey_quotas = $result->FetchRow()) foreach ($result as $_survey_quotas) { $survey_quotas = $_survey_quotas->attributes; // !!! Doubting this foreach ($_survey_quotas->languagesettings[0] as $k => $v) { $survey_quotas[$k] = $v; } //Modify the URL - thanks janokary $survey_quotas['quotals_url'] = str_replace("{SAVEDID}", !empty(Yii::app()->session['srid']) ? Yii::app()->session['srid'] : '', $survey_quotas['quotals_url']); $survey_quotas['quotals_url'] = str_replace("{SID}", $surveyid, $survey_quotas['quotals_url']); $survey_quotas['quotals_url'] = str_replace("{LANG}", Yii::app()->lang->getlangcode(), $survey_quotas['quotals_url']); $survey_quotas['quotals_url'] = str_replace("{TOKEN}", $clienttoken, $survey_quotas['quotals_url']); array_push($quota_info, array('Name' => $survey_quotas['name'], 'Limit' => $survey_quotas['qlimit'], 'Action' => $survey_quotas['action'], 'Message' => $survey_quotas['quotals_message'], 'Url' => $survey_quotas['quotals_url'], 'UrlDescrip' => $survey_quotas['quotals_urldescrip'], 'AutoloadUrl' => $survey_quotas['autoload_url'])); $result_qe = Quota_members::model()->findAllByAttributes(array('quota_id' => $survey_quotas['id'])); $quota_info[$x]['members'] = array(); if (count($result_qe) > 0) { foreach ($result_qe as $quota_entry) { $quota_entry = $quota_entry->attributes; $result_quest = Questions::model()->findByAttributes(array('qid' => $quota_entry['qid'], 'language' => $baselang)); $qtype = $result_quest->attributes; $fieldnames = "0"; if ($qtype['type'] == "I" || $qtype['type'] == "G" || $qtype['type'] == "Y") { $fieldnames = array(0 => $surveyid . 'X' . $qtype['gid'] . 'X' . $quota_entry['qid']); $value = $quota_entry['code']; } if ($qtype['type'] == "L" || $qtype['type'] == "O" || $qtype['type'] == "!") { $fieldnames = array(0 => $surveyid . 'X' . $qtype['gid'] . 'X' . $quota_entry['qid']); $value = $quota_entry['code']; } if ($qtype['type'] == "M") { $fieldnames = array(0 => $surveyid . 'X' . $qtype['gid'] . 'X' . $quota_entry['qid'] . $quota_entry['code']); $value = "Y"; } if ($qtype['type'] == "A" || $qtype['type'] == "B") { $temp = explode('-', $quota_entry['code']); $fieldnames = array(0 => $surveyid . 'X' . $qtype['gid'] . 'X' . $quota_entry['qid'] . $temp[0]); $value = $temp[1]; } array_push($quota_info[$x]['members'], array('Title' => $qtype['title'], 'type' => $qtype['type'], 'code' => $quota_entry['code'], 'value' => $value, 'qid' => $quota_entry['qid'], 'fieldnames' => $fieldnames)); } } $x++; } } return $quota_info; }
if(Yii::app()->controller->action->id=="certiview") { $certi= StudentCertificateDetailsTable::model()->find(array('condition'=>' student_certificate_details_table_student_id='.$trans->student_transaction_id.' and student_certificate_type_id='.$certificate_type,'order'=>'student_certificate_details_table_id desc')); $ref_no = $certi->certificate_reference_number; } else{ $certi = StudentCertificateDetailsTable::model()->find(array('order'=>'student_certificate_details_table_id desc')); $autonum = 0; if(!empty($certi) && $certi->certificate_reference_number!=""){ $arr = explode('/',$certi->certificate_reference_number); $autonum = $arr[3]; } $autonum +=1; $ref_no = $year."/".$branch_model->branch_code."/".date('Y').'/'.$autonum; } $quota = "<b>".Quota::model()->findByPk($trans->student_transaction_quota_id)->quota_name."</b>"; $content = Certificate::model()->findByPk($model->certificatetype)->certificate_content; $content = str_replace('{title}',$titl,$content); $content = str_replace('{name}',$name,$content); $content = str_replace('{branch}',$branch,$content); $content = str_replace('{sem}',$sem,$content); $content = str_replace('{division}',$div,$content); $content = str_replace('{enrollment}',$en_no,$content); $content = str_replace('{gender}',$gender,$content); $content = str_replace('{category}',$category,$content); $content = str_replace('{quota}',$quota,$content); $content = str_replace('{smobile}',$smobile,$content); $content = str_replace('{pmobile}',$pmobile,$content); $content = str_replace('{date}',$cdate,$content); $content = str_replace('{line1}',$lin1,$content);
/** * Deletes a survey and all its data * * @access public * @param int $iSurveyID * @param bool @recursive * @return void */ public function deleteSurvey($iSurveyID, $recursive = true) { Survey::model()->deleteByPk($iSurveyID); if ($recursive == true) { if (tableExists("{{survey_" . intval($iSurveyID) . "}}")) { Yii::app()->db->createCommand()->dropTable("{{survey_" . intval($iSurveyID) . "}}"); } if (tableExists("{{survey_" . intval($iSurveyID) . "_timings}}")) { Yii::app()->db->createCommand()->dropTable("{{survey_" . intval($iSurveyID) . "_timings}}"); } if (tableExists("{{tokens_" . intval($iSurveyID) . "}}")) { Yii::app()->db->createCommand()->dropTable("{{tokens_" . intval($iSurveyID) . "}}"); } $oResult = Question::model()->findAllByAttributes(array('sid' => $iSurveyID)); foreach ($oResult as $aRow) { Answer::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); Condition::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); QuestionAttribute::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); DefaultValue::model()->deleteAllByAttributes(array('qid' => $aRow['qid'])); } Question::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); Assessment::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); QuestionGroup::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); SurveyLanguageSetting::model()->deleteAllByAttributes(array('surveyls_survey_id' => $iSurveyID)); Permission::model()->deleteAllByAttributes(array('entity_id' => $iSurveyID, 'entity' => 'survey')); SavedControl::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); SurveyURLParameter::model()->deleteAllByAttributes(array('sid' => $iSurveyID)); //Remove any survey_links to the CPDB SurveyLink::model()->deleteLinksBySurvey($iSurveyID); Quota::model()->deleteQuota(array('sid' => $iSurveyID), true); } }
/** * This function imports a LimeSurvey .lss survey XML file * * @param mixed $sFullFilepath The full filepath of the uploaded file */ function XMLImportSurvey($sFullFilepath, $sXMLdata = NULL, $sNewSurveyName = NULL, $iDesiredSurveyId = NULL, $bTranslateInsertansTags = true) { Yii::app()->loadHelper('database'); $clang = Yii::app()->lang; $aGIDReplacements = array(); if ($sXMLdata == NULL) { $xml = simplexml_load_file($sFullFilepath); } else { $xml = simplexml_load_string($sXMLdata); } if ($xml->LimeSurveyDocType != 'Survey') { $results['error'] = $clang->gT("This is not a valid LimeSurvey survey structure XML file."); return $results; } $iDBVersion = (int) $xml->DBVersion; $aQIDReplacements = array(); $aQuotaReplacements = array(); $results['defaultvalues'] = 0; $results['answers'] = 0; $results['surveys'] = 0; $results['questions'] = 0; $results['subquestions'] = 0; $results['question_attributes'] = 0; $results['groups'] = 0; $results['assessments'] = 0; $results['quota'] = 0; $results['quotals'] = 0; $results['quotamembers'] = 0; $results['survey_url_parameters'] = 0; $results['importwarnings'] = array(); $aLanguagesSupported = array(); foreach ($xml->languages->language as $language) { $aLanguagesSupported[] = (string) $language; } $results['languages'] = count($aLanguagesSupported); // Import surveys table ==================================================== foreach ($xml->surveys->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $iOldSID = $results['oldsid'] = $insertdata['sid']; if ($iDesiredSurveyId != NULL) { $insertdata['wishSID'] = GetNewSurveyID($iDesiredSurveyId); } if ($iDBVersion <= 143) { if (isset($insertdata['private'])) { $insertdata['anonymized'] = $insertdata['private']; } unset($insertdata['private']); unset($insertdata['notification']); } unset($insertdata['expires']); unset($insertdata['startdate']); //Make sure it is not set active $insertdata['active'] = 'N'; //Set current user to be the owner $insertdata['owner_id'] = Yii::app()->session['loginID']; if (isset($insertdata['bouncetime']) && $insertdata['bouncetime'] == '') { $insertdata['bouncetime'] = NULL; } if (isset($insertdata['showXquestions'])) { $insertdata['showxquestions'] = $insertdata['showXquestions']; unset($insertdata['showXquestions']); } $iNewSID = $results['newsid'] = Survey::model()->insertNewSurvey($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [1]<br />"); $results['surveys']++; } // Import survey languagesettings table =================================================================================== foreach ($xml->surveys_languagesettings->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['surveyls_language'], $aLanguagesSupported)) { continue; } $insertdata['surveyls_survey_id'] = $iNewSID; if ($bTranslateInsertansTags) { if ($sNewSurveyName == NULL) { $insertdata['surveyls_title'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_title']); } else { $insertdata['surveyls_title'] = translateLinks('survey', $iOldSID, $iNewSID, $sNewSurveyName); } if (isset($insertdata['surveyls_description'])) { $insertdata['surveyls_description'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_description']); } if (isset($insertdata['surveyls_welcometext'])) { $insertdata['surveyls_welcometext'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_welcometext']); } if (isset($insertdata['surveyls_urldescription'])) { $insertdata['surveyls_urldescription'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_urldescription']); } if (isset($insertdata['surveyls_email_invite'])) { $insertdata['surveyls_email_invite'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_invite']); } if (isset($insertdata['surveyls_email_remind'])) { $insertdata['surveyls_email_remind'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_remind']); } if (isset($insertdata['surveyls_email_register'])) { $insertdata['surveyls_email_register'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_register']); } if (isset($insertdata['surveyls_email_confirm'])) { $insertdata['surveyls_email_confirm'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['surveyls_email_confirm']); } } $result = Surveys_languagesettings::model()->insertNewSurvey($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [2]<br />"); } // Import groups table =================================================================================== if (isset($xml->groups->rows->row)) { foreach ($xml->groups->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported)) { continue; } $iOldSID = $insertdata['sid']; $insertdata['sid'] = $iNewSID; $oldgid = $insertdata['gid']; unset($insertdata['gid']); // save the old qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['group_name'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['group_name']); $insertdata['description'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['description']); } // Insert the new group if (isset($aGIDReplacements[$oldgid])) { switchMSSQLIdentityInsert('groups', true); $insertdata['gid'] = $aGIDReplacements[$oldgid]; } $newgid = Groups::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [3]<br />"); $results['groups']++; if (!isset($aGIDReplacements[$oldgid])) { $aGIDReplacements[$oldgid] = $newgid; // add old and new qid to the mapping array } else { switchMSSQLIdentityInsert('groups', false); } } } // Import questions table =================================================================================== // We have to run the question table data two times - first to find all main questions // then for subquestions (because we need to determine the new qids for the main questions first) if (isset($xml->questions)) { foreach ($xml->questions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported) || $insertdata['gid'] == 0) { continue; } $iOldSID = $insertdata['sid']; $insertdata['sid'] = $iNewSID; $insertdata['gid'] = $aGIDReplacements[$insertdata['gid']]; $oldqid = $insertdata['qid']; unset($insertdata['qid']); // save the old qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['question'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']); $insertdata['help'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']); } // Insert the new question if (isset($aQIDReplacements[$oldqid])) { $insertdata['qid'] = $aQIDReplacements[$oldqid]; switchMSSQLIdentityInsert('questions', true); } if ($insertdata) { XSSFilterArray($insertdata); } $newqid = Questions::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [4]<br />"); if (!isset($aQIDReplacements[$oldqid])) { $aQIDReplacements[$oldqid] = $newqid; $results['questions']++; } else { switchMSSQLIdentityInsert('questions', false); } } } // Import subquestions ------------------------------------------------------- if (isset($xml->subquestions)) { foreach ($xml->subquestions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported) || $insertdata['gid'] == 0) { continue; } if (!isset($insertdata['mandatory']) || trim($insertdata['mandatory']) == '') { $insertdata['mandatory'] = 'N'; } $insertdata['sid'] = $iNewSID; $insertdata['gid'] = $aGIDReplacements[(int) $insertdata['gid']]; $oldsqid = (int) $insertdata['qid']; unset($insertdata['qid']); // save the old qid $insertdata['parent_qid'] = $aQIDReplacements[(int) $insertdata['parent_qid']]; // remap the parent_qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['question'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['question']); if (isset($insertdata['help'])) { $insertdata['help'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['help']); } } if (isset($aQIDReplacements[$oldsqid])) { $insertdata['qid'] = $aQIDReplacements[$oldsqid]; switchMSSQLIdentityInsert('questions', true); } if ($insertdata) { XSSFilterArray($insertdata); } $newsqid = Questions::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data [5]<br />"); if (!isset($insertdata['qid'])) { $aQIDReplacements[$oldsqid] = $newsqid; // add old and new qid to the mapping array } else { switchMSSQLIdentityInsert('questions', false); } $results['subquestions']++; } } // Import answers ------------------------------------------------------------ if (isset($xml->answers)) { foreach ($xml->answers->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if (!in_array($insertdata['language'], $aLanguagesSupported) || !isset($aQIDReplacements[(int) $insertdata['qid']])) { continue; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the parent_qid // now translate any links if ($bTranslateInsertansTags) { $insertdata['answer'] = translateLinks('survey', $iOldSID, $iNewSID, $insertdata['answer']); } if ($insertdata) { XSSFilterArray($insertdata); } $result = Answers::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['answers']++; } } // Import questionattributes ------------------------------------------------- if (isset($xml->question_attributes)) { $aAllAttributes = questionAttributes(true); foreach ($xml->question_attributes->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } unset($insertdata['qaid']); if (!isset($aQIDReplacements[(int) $insertdata['qid']])) { continue; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the qid if ($iDBVersion < 148 && isset($aAllAttributes[$insertdata['attribute']]['i18n']) && $aAllAttributes[$insertdata['attribute']]['i18n']) { foreach ($aLanguagesSupported as $sLanguage) { $insertdata['language'] = $sLanguage; if ($insertdata) { XSSFilterArray($insertdata); } $result = Question_attributes::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); } } else { $result = Question_attributes::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); } $results['question_attributes']++; } } // Import defaultvalues ------------------------------------------------------ if (isset($xml->defaultvalues)) { $results['defaultvalues'] = 0; foreach ($xml->defaultvalues->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the qid if (isset($aQIDReplacements[(int) $insertdata['sqid']])) { $insertdata['sqid'] = $aQIDReplacements[(int) $insertdata['sqid']]; } // remap the subquestion id if ($insertdata) { XSSFilterArray($insertdata); } // now translate any links $result = Defaultvalues::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['defaultvalues']++; } } $aOldNewFieldmap = reverseTranslateFieldNames($iOldSID, $iNewSID, $aGIDReplacements, $aQIDReplacements); // Import conditions --------------------------------------------------------- if (isset($xml->conditions)) { $results['conditions'] = 0; foreach ($xml->conditions->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } // replace the qid for the new one (if there is no new qid in the $aQIDReplacements array it mean that this condition is orphan -> error, skip this record) if (isset($aQIDReplacements[$insertdata['qid']])) { $insertdata['qid'] = $aQIDReplacements[$insertdata['qid']]; // remap the qid } else { continue; } // a problem with this answer record -> don't consider if ($insertdata['cqid'] != 0) { if (isset($aQIDReplacements[$insertdata['cqid']])) { $oldcqid = $insertdata['cqid']; //Save for cfield transformation $insertdata['cqid'] = $aQIDReplacements[$insertdata['cqid']]; // remap the qid } else { continue; } // a problem with this answer record -> don't consider list($oldcsid, $oldcgid, $oldqidanscode) = explode("X", $insertdata["cfieldname"], 3); // replace the gid for the new one in the cfieldname(if there is no new gid in the $aGIDReplacements array it means that this condition is orphan -> error, skip this record) if (!isset($aGIDReplacements[$oldcgid])) { continue; } } unset($insertdata["cid"]); // recreate the cfieldname with the new IDs if ($insertdata['cqid'] != 0) { if (preg_match("/^\\+/", $oldcsid)) { $newcfieldname = '+' . $iNewSID . "X" . $aGIDReplacements[$oldcgid] . "X" . $insertdata["cqid"] . substr($oldqidanscode, strlen($oldcqid)); } else { $newcfieldname = $iNewSID . "X" . $aGIDReplacements[$oldcgid] . "X" . $insertdata["cqid"] . substr($oldqidanscode, strlen($oldcqid)); } } else { // The cfieldname is a not a previous question cfield but a {XXXX} replacement field $newcfieldname = $insertdata["cfieldname"]; } $insertdata["cfieldname"] = $newcfieldname; if (trim($insertdata["method"]) == '') { $insertdata["method"] = '=='; } // Now process the value and replace @sgqa@ codes if (preg_match("/^@(.*)@\$/", $insertdata["value"], $cfieldnameInCondValue)) { if (isset($aOldNewFieldmap[$cfieldnameInCondValue[1]])) { $newvalue = '@' . $aOldNewFieldmap[$cfieldnameInCondValue[1]] . '@'; $insertdata["value"] = $newvalue; } } // now translate any links $result = Conditions::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['conditions']++; } } // TMSW Conditions->Relevance: Call LEM->ConvertConditionsToRelevance // Import assessments -------------------------------------------------------- if (isset($xml->assessments)) { foreach ($xml->assessments->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } if ($insertdata['gid'] > 0) { $insertdata['gid'] = $aGIDReplacements[(int) $insertdata['gid']]; // remap the qid } $insertdata['sid'] = $iNewSID; // remap the survey id // now translate any links $result = Assessment::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['assessments']++; } } // Import quota -------------------------------------------------------------- if (isset($xml->quota)) { foreach ($xml->quota->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['sid'] = $iNewSID; // remap the survey id $oldid = $insertdata['id']; unset($insertdata['id']); // now translate any links $result = Quota::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $aQuotaReplacements[$oldid] = Yii::app()->db->getCommandBuilder()->getLastInsertID('{{quota}}'); $results['quota']++; } } // Import quota_members ------------------------------------------------------ if (isset($xml->quota_members)) { foreach ($xml->quota_members->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['sid'] = $iNewSID; // remap the survey id $insertdata['qid'] = $aQIDReplacements[(int) $insertdata['qid']]; // remap the qid $insertdata['quota_id'] = $aQuotaReplacements[(int) $insertdata['quota_id']]; // remap the qid unset($insertdata['id']); // now translate any links $result = Quota_members::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['quotamembers']++; } } // Import quota_languagesettings---------------------------------------------- if (isset($xml->quota_languagesettings)) { foreach ($xml->quota_languagesettings->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['quotals_quota_id'] = $aQuotaReplacements[(int) $insertdata['quotals_quota_id']]; // remap the qid unset($insertdata['quotals_id']); $result = Quota_languagesettings::model()->insertRecords($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['quotals']++; } } // Import survey_url_parameters ---------------------------------------------- if (isset($xml->survey_url_parameters)) { foreach ($xml->survey_url_parameters->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { $insertdata[(string) $key] = (string) $value; } $insertdata['sid'] = $iNewSID; // remap the survey id if (isset($insertdata['targetsqid']) && $insertdata['targetsqid'] != '') { $insertdata['targetsqid'] = $aSQIDReplacements[(int) $insertdata['targetsqid']]; // remap the qid } if (isset($insertdata['targetqid']) && $insertdata['targetqid'] != '') { $insertdata['targetqid'] = $aQIDReplacements[(int) $insertdata['targetqid']]; // remap the qid } unset($insertdata['id']); $result = Survey_url_parameters::model()->insertRecord($insertdata) or safeDie($clang->gT("Error") . ": Failed to insert data<br />"); $results['survey_url_parameters']++; } } // Set survey rights Survey_permissions::model()->giveAllSurveyPermissions(Yii::app()->session['loginID'], $iNewSID); $aOldNewFieldmap = reverseTranslateFieldNames($iOldSID, $iNewSID, $aGIDReplacements, $aQIDReplacements); $results['FieldReMap'] = $aOldNewFieldmap; LimeExpressionManager::SetSurveyId($iNewSID); translateInsertansTags($iNewSID, $iOldSID, $aOldNewFieldmap); LimeExpressionManager::RevertUpgradeConditionsToRelevance($iNewSID); LimeExpressionManager::UpgradeConditionsToRelevance($iNewSID); return $results; }
</td> <td> <?php echo AcademicTermPeriod::model()->findByPk($i['fees_academic_term_id'])->academic_term_period; ?> </td> <td> <?php echo AcademicTerm::model()->findByPk($i['fees_academic_term_name_id'])->academic_term_name; ?> </td> <td> <?php echo Quota::model()->findByPk($i['fees_quota_id'])->quota_name; ?> </td> <td> <u> <?php echo CHtml::link($numStud[$j], array('feesPaymentTransaction/total', 'branch_id' => $i['fees_branch_id'], 'acm_id' => $i['fees_academic_term_id'], 'acm_name_id' => $i['fees_academic_term_name_id'], 'quota' => $i['fees_quota_id'])); ?> </u> </td> <td> <u> <?php echo CHtml::link($paid_stud_count[$j], array('feesPaymentTransaction/paid', 'branch_id' => $i['fees_branch_id'], 'acm_id' => $i['fees_academic_term_id'], 'acm_name_id' => $i['fees_academic_term_name_id'], 'quota' => $i['fees_quota_id'])); ?>