/** * Function to fetch data used to populate form and display view page. */ public function getDataForForm($activityId) { $data = array(); // Get title $titleEle = new Iati_Aidstream_Element_Activity_Title(); $titleValue = $titleEle->fetchData($activityId, true); $data['title_id'] = $titleValue[0]['id']; $data['title'] = $titleValue[0]['text']; // Get description $descriptionEle = new Iati_Aidstream_Element_Activity_Description(); $descriptionValue = $descriptionEle->fetchData($activityId, true); $data['description_id'] = $descriptionValue[0]['id']; $data['description'] = $descriptionValue[0]['text']; // Get participating org $participatingOrgEle = new Iati_Aidstream_Element_Activity_ParticipatingOrg(); $participatingOrgValue = $participatingOrgEle->fetchData($activityId, true); if (!empty($participatingOrgValue)) { $count = 0; foreach ($participatingOrgValue as $participatingOrg) { $data['funding_org'][$count] = $participatingOrg['text']; $count++; } } // Get Activity date (start data and end date) $activityDateEle = new Iati_Aidstream_Element_Activity_ActivityDate(); $activityDateValues = $activityDateEle->fetchData($activityId, true); foreach ($activityDateValues as $activityDateValue) { if ($activityDateValue['@type'] == 3) { $data['start_date_id'] = $activityDateValue['id']; $data['start_date'] = $activityDateValue['@iso_date']; } else { if ($activityDateValue['@type'] == 4) { $data['end_date_id'] = $activityDateValue['id']; $data['end_date'] = $activityDateValue['@iso_date']; } } } // Get Document $documentEle = new Iati_Aidstream_Element_Activity_DocumentLink(); $documentValue = $documentEle->fetchData($activityId, true); $count = 0; if (!empty($documentValue)) { foreach ($documentValue as $document) { $data['document'][$count]['id'] = $document['id']; $data['document'][$count]['url'] = $document['@url']; // get document category $docCat = $document['Category']; if (!empty($docCat)) { $data['document'][$count]['category_id'] = $docCat[0]['id']; $data['document'][$count]['category_code'] = $docCat[0]['@code']; } // get document title $docTitle = $document['Title']; if (!empty($docTitle)) { $data['document'][$count]['title_id'] = $docTitle[0]['id']; $data['document'][$count]['title'] = $docTitle[0]['text']; } $count++; } } // Get location $locationEle = new Iati_Aidstream_Element_Activity_Location(); $locationValues = $locationEle->fetchData($activityId, true); $count = 0; if (!empty($locationValues)) { foreach ($locationValues as $locationValue) { $data['location'][$count]['location_id'] = $locationValue['id']; //get location name $locationName = $locationValue['Name']; if (!empty($locationName)) { $data['location'][$count]['location_name_id'] = $locationName[0]['id']; $data['location'][$count]['location_name'] = $locationName[0]['text']; } //get location description $locationDesc = $locationValue['Description']; if (!empty($locationDesc)) { $data['location'][$count]['location_desc_id'] = $locationDesc[0]['id']; $vdcs = preg_replace('/ -.*$/', '', $locationDesc[0]['text']); if ($vdcs == VDCS_DEFAULT_VALUE) { $vdcs = ''; } $data['location'][$count]['location_vdcs'] = $vdcs; } //get location coordinates $locationCoords = $locationValue['Coordinates']; if (!empty($locationCoords)) { $data['location'][$count]['location_coord_id'] = $locationCoords['id']; } //get location administrative $locationAdm = $locationValue['Administrative']; if (!empty($locationAdm)) { $data['location'][$count]['location_adm_id'] = $locationAdm['id']; } $count++; } } // Get budget $budgetEle = new Iati_Aidstream_Element_Activity_Budget(); $budgetValues = $budgetEle->fetchData($activityId, true); $count = 0; if (!empty($budgetValues)) { foreach ($budgetValues as $budget) { $data['budget'][$count]['id'] = $budget['id']; //get budget value $budgetVal = $budget['Value']; if (!empty($budgetVal)) { $data['budget'][$count]['value_id'] = $budgetVal['id']; $data['budget'][$count]['currency'] = $budgetVal['@currency']; $data['budget'][$count]['amount'] = $budgetVal['text']; $data['budget'][$count]['signed_date'] = $budgetVal['@value_date']; } //get budget start date $budgetStart = $budget['PeriodStart']; if (!empty($budgetStart)) { $data['budget'][$count]['start_id'] = $budgetStart['id']; $data['budget'][$count]['start_date'] = $budgetStart['@iso_date']; } //get budget end date $budgetEnd = $budget['PeriodEnd']; if (!empty($budgetEnd)) { $data['budget'][$count]['end_id'] = $budgetEnd['id']; $data['budget'][$count]['end_date'] = $budgetEnd['@iso_date']; } $count++; } } // Get transaction $transactionEle = new Iati_Aidstream_Element_Activity_Transaction(); $transactionValues = $transactionEle->fetchData($activityId, true); $expCount = 0; $incomCount = 0; $commCount = 0; if (!empty($transactionValues)) { foreach ($transactionValues as $transaction) { //get transaction start date $transactionType = $transaction['TransactionType']; if (!empty($transactionType)) { $code = $transactionType['@code']; if ($code == 4) { $type = 'expenditure'; $count = $expCount; $expCount++; } elseif ($code == 5) { $type = 'incommingFund'; $count = $incomCount; $incomCount++; } } //get transaction value $transactionVal = $transaction['TransactionValue']; if (!empty($transactionVal)) { $data[$type][$count]['id'] = $transaction['id']; $data[$type][$count]['value_id'] = $transactionVal['id']; $data[$type][$count]['currency'] = $transactionVal['@currency']; $data[$type][$count]['start_date'] = $transactionVal['@value_date']; $data[$type][$count]['amount'] = $transactionVal['text']; } } } // Get sector $sectorEle = new Iati_Aidstream_Element_Activity_Sector(); $sectors = $sectorEle->fetchData($activityId, true); if (!empty($sectors)) { $count = 0; foreach ($sectors as $sector) { $data['sector'][$count]['sector'] = $sector['@code']; $count++; } } //Get Status $statusEle = new Iati_Aidstream_Element_Activity_ActivityStatus(); $status = $statusEle->fetchData($activityId, true); if (!empty($status)) { $data['status_id'] = $status['id']; $data['status'] = $status['@code']; } //Get Result $count = 0; $resultEle = new Iati_Aidstream_Element_Activity_Result(); $results = $resultEle->fetchData($activityId, true); foreach ($results as $result) { $data['result'][$count]['id'] = $result['id']; $data['result'][$count]['result_type'] = $result['@type']; $data['result'][$count]['title_id'] = $result['Title'][0]['id']; $data['result'][$count]['title'] = $result['Title'][0]['text']; $data['result'][$count]['description_id'] = $result['Description'][0]['id']; $data['result'][$count]['description'] = $result['Description'][0]['text']; $data['result'][$count]['indicator_id'] = $result['Indicator'][0]['id']; $data['result'][$count]['indicator_title_id'] = $result['Indicator'][0]['Title'][0]['id']; $data['result'][$count]['indicator'] = $result['Indicator'][0]['Title'][0]['text']; $data['result'][$count]['period_id'] = $result['Indicator'][0]['Period'][0]['id']; $data['result'][$count]['actual_id'] = $result['Indicator'][0]['Period'][0]['Actual'][0]['id']; $data['result'][$count]['achievement'] = $result['Indicator'][0]['Period'][0]['Actual'][0]['@value']; $data['result'][$count]['period_end_id'] = $result['Indicator'][0]['Period'][0]['PeriodEnd'][0]['id']; $data['result'][$count]['end_date'] = $result['Indicator'][0]['Period'][0]['PeriodEnd'][0]['@iso_date']; $count++; } return $data; }
public function prepareTransactionCsvData($transactionData) { if (empty($transactionData)) { return; } $csvData = array(); $identity = Zend_Auth::getInstance()->getIdentity(); $accountId = $identity->account_id; $model = new Model_DefaultFieldValues(); $defaults = $model->getByOrganisationId($accountId); $currency = $defaults['currency'] ? Iati_Core_Codelist::getCodeByAttrib('Transaction', 'currency', $defaults['currency']) : ''; $element = new Iati_Aidstream_Element_Activity_Transaction(); $element->setIsMultiple(false); $identifierText = array(); $titleText = array(); foreach ($transactionData as $transactionElementData) { $activityId = $transactionElementData['activity_id']; if (!$identifierText[$activityId]) { // fetch identifier for activity Id $identifierEle = new Iati_Aidstream_Element_Activity_IatiIdentifier(); $identifierData = $identifierEle->fetchData($activityId, true); $identifierText[$activityId] = $identifierData['text']; } if (!$titleText[$activityId]) { // fetch title for activity Id $titleEle = new Iati_Aidstream_Element_Activity_Title(); $titleData = $titleEle->fetchData($activityId, true); $titleText[$activityId] = $titleData[0]['text']; } $data = $this->prepareCsvDataForElement($element, $transactionElementData, false); $extras = array('Activity_Identifier' => $identifierText[$activityId], 'Activity_Title' => $titleText[$activityId], 'Default_currency' => $currency); $data = array_merge($extras, $data); // Add identifier and title to csv data $csvData[] = $data; } return $csvData; }