Example #1
0
 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));
 }
Example #2
0
 /**
  * @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']);
 }