public function getFundingOrgsAction() { $model = new Simplified_Model_DbTable_FundingOrg(); $data = $model->getAllFundingOrgs(); $fundingOrgsData = array(); if ($data) { foreach ($data as $fundingOrg) { $fundingOrgsData[] = $fundingOrg['text']; } } print implode(';', array_unique($fundingOrgsData)); }
/** * @todo break this function to smaller functions */ public function updateActivity($data, $default) { // var_dump($data);exit; $model = $this->model; $activityId = $data['activity_id']; $this->activityId = $activityId; $this->defaults = $default; //Update Reporting Organisation $repOrg = $model->getRowsByFields('iati_reporting_org', 'activity_id', $activityId); $reportingOrg = array(); $reportingOrg['id'] = $repOrg[0]['id']; $reportingOrg['@ref'] = $default['reporting_org_ref']; $reportingOrg['text'] = $default['reporting_org']; $reportingOrg['@type'] = $default['reporting_org_type']; $reportingOrg['@xml_lang'] = $default['reporting_org_lang']; $model->updateRowsToTable('iati_reporting_org', $reportingOrg); //Update Activity Identifier if ($data['identifier_id']) { $iatiIdentifier['activity_identifier'] = $data['identifier']; $iatiIdentifier['text'] = $default['reporting_org_ref'] . "-" . trim($data['identifier']); $iatiIdentifier['id'] = $data['identifier_id']; $model->updateRowsToTable('iati_identifier', $iatiIdentifier); } //Update title if ($data['title_id']) { $title['text'] = $data['title']; $title['@xml_lang'] = $default['language']; $title['id'] = $data['title_id']; $model->updateRowsToTable('iati_title', $title); } else { $title['text'] = $data['title']; $title['@xml_lang'] = $default['language']; $title['activity_id'] = $activityId; $model->insertRowsToTable('iati_title', $title); } //Update Description if ($data['description_id']) { $description['@xml_lang'] = $default['language']; $description['text'] = $data['description']; $description['id'] = $data['description_id']; $model->updateRowsToTable('iati_description', $description); } else { $description['@type'] = 1; //@todo check. $description['@xml_lang'] = $default['language']; $description['text'] = $data['description']; $description['activity_id'] = $activityId; $model->insertRowsToTable('iati_description', $description); } //Update funding org // First fetch all funding orgs for the activity. $fundingOrgModel = new Simplified_Model_DbTable_FundingOrg(); $fundingOrganisations = $fundingOrgModel->getFundingOrgsByActivityId($activityId); $fundingOrganisationCodes = array(); if (!empty($fundingOrganisations)) { foreach ($fundingOrganisations as $fundingOrganisationValues) { $fundingOrganisationCodes[$fundingOrganisationValues['id']] = $fundingOrganisationValues['text']; } } if ($data['funding_org']) { $fundingOrgs = explode(',', $data['funding_org']); // Check already present Funding Orgs in the input data. unset existing data from input data and remove ids. foreach ($fundingOrgs as $key => $fundingOrgData) { if (!empty($fundingOrganisationCodes)) { foreach ($fundingOrganisationCodes as $id => $code) { if ($code == $fundingOrgData) { unset($fundingOrganisationCodes[$id]); unset($fundingOrgs[$key]); } } } } } if ($fundingOrgs) { foreach ($fundingOrgs as $fundingOrg) { $funding = array(); $funding['@role'] = 1; $funding['text'] = $fundingOrg; $funding['@xml_lang'] = $default['language']; $funding['activity_id'] = $activityId; $model->insertRowsToTable('iati_participating_org', $funding); } } if (!empty($fundingOrganisationCodes)) { $fundingOrgModel->deleteFundingOrgsByIds(array_keys($fundingOrganisationCodes)); } //Update Start date if ($data['start_date_id']) { $startData = array(); $startDate['@iso_date'] = $data['start_date']; $startDate['@xml_lang'] = $default['language']; $startDate['id'] = $data['start_date_id']; $model->updateRowsToTable('iati_activity_date', $startDate); } else { $startData = array(); $startDate['@iso_date'] = $data['start_date']; $startDate['@type'] = 3; $startDate['@xml_lang'] = $default['language']; $startDate['text'] = ''; $startDate['activity_id'] = $activityId; $model->insertRowsToTable('iati_activity_date', $startDate); } //Update End date if ($data['end_date_id']) { $endDate = array(); $endDate['@iso_date'] = $data['end_date']; $endDate['@xml_lang'] = $default['language']; $endDate['text'] = ''; $endDate['id'] = $data['end_date_id']; $model->updateRowsToTable('iati_activity_date', $endDate); } else { $endDate = array(); $endDate['@iso_date'] = $data['end_date']; $endDate['@type'] = 4; $endDate['@xml_lang'] = $default['language']; $endDate['text'] = ''; $endDate['activity_id'] = $activityId; $model->insertRowsToTable('iati_activity_date', $endDate); } //Update Status $this->saveStatus($data); //Update Document $this->updateDocument($data['document_wrapper']['document']); //Update Location $this->updateLocation($data['location']); //Update Budget $this->updateBudget($data['budget_wrapper']['budget']); //Update Incomming Fund $this->updateIncommingFund($data['incomming_fund_wrapper']['incommingFund']); //Update Expenditure $this->updateExpenditure($data['expenditure_wrapper']['expenditure']); //Update Sector // First fetch all sectors for the activity. $sectors = $model->listAll('iati_sector', 'activity_id', $activityId); $sectorIds = array(); if (!empty($sectors)) { foreach ($sectors as $sectorValues) { $sectorIds[$sectorValues['id']] = $sectorValues['@code']; } } if ($this->hasValue($data['sector'])) { // Check already present sectors in the input data. unset existing data from input data and remove ids. foreach ($data['sector'] as $key => $sectorData) { if (!empty($sectorIds)) { foreach ($sectorIds as $id => $code) { if ($code == $sectorData) { unset($sectorIds[$id]); unset($data['sector'][$key]); } } } } } // Insert remaining input data to table if any if (!empty($data['sector'])) { foreach ($data['sector'] as $sectorData) { $sector = array(); $sector['@code'] = $sectorData; $sector['@vocabulary'] = 3; // @todo check $sector['activity_id'] = $activityId; $model->insertRowsToTable('iati_sector', $sector); } } // Remove existing sector data for the activity that is not entered as input if any. if (!empty($sectorIds)) { $secModel = new Simplified_Model_DbTable_Sector(); $secModel->deleteSectorsByIds(array_keys($sectorIds)); } $this->saveResult($data['result_wrapper']['result']); }