Пример #1
0
 protected function prepareRecipientRegionSimpleFormat($activityId)
 {
     $returnData = array();
     $element = new Iati_Aidstream_Element_Activity_RecipientRegion();
     $data = $element->fetchData($activityId, true);
     $csvData = $this->prepareCsvDataForElement($element, $data, false);
     $returnData['recipient-region'] = $csvData['RecipientRegion-text'];
     $returnData['recipient-region-codes'] = $csvData['RecipientRegion-code'];
     $returnData['recipient-region-percentages'] = $csvData['RecipientRegion-percentage'];
     return $returnData;
 }
Пример #2
0
 /**
  * 
  * Function to fetch data from the local database and generates array of activities base on segmentation.
  */
 public function getDataToPublish()
 {
     $activityCollection = new Iati_ActivityCollection();
     $activitiesId = $activityCollection->getPublishedActivityCollection($this->publisherOrgId);
     if ($this->segmented) {
         /**
          *Seperate activities by country or region
          *
          *foreach activity
          *if number of country is 1 i.e count of country is one and size is not zero, use country code 
          *else
          *  if number of region is 1 i.e count of region is one and size is not zero, use region code 
          *  else if number of regions is greater than 1 , use 998
          *  else
          *      if number of countries is 0, use 998
          *      else use the country with max percentage, if no percentage use first inserted.
          **/
         $segmentedActivities = array();
         foreach ($activitiesId as $activityId) {
             $recipientCountryObj = new Iati_Aidstream_Element_Activity_RecipientCountry();
             $countries = $recipientCountryObj->fetchData($activityId, true);
             $recipientRegionObj = new Iati_Aidstream_Element_Activity_RecipientRegion();
             $regions = $recipientRegionObj->fetchData($activityId, true);
             if ($countries[0]['@code']) {
                 $countryCode = Iati_Core_Codelist::getCodeByAttrib('RecipientCountry', '@code', $countries[0]['@code']);
             }
             if ($regions[0]['@code']) {
                 $regionCode = Iati_Core_Codelist::getCodeByAttrib('RecipientRegion', '@code', $regions[0]['@code']);
             }
             if (count($countries) == 1) {
                 $segmentedActivities[$countryCode][] = $activityId;
             } else {
                 if (count($regions) == 1) {
                     $segmentedActivities[$regionCode][] = $activityId;
                 } elseif (count($regions) > 1) {
                     $segmentedActivities[998][] = $activityId;
                 } else {
                     if (count($countries) == 0) {
                         $segmentedActivities[998][] = $activityId;
                     } else {
                         $maxPercent = '';
                         foreach ($countries as $country) {
                             $percent = $country['@percentage'];
                             if ($percent > $maxPercent) {
                                 $maxPercent = $percent;
                                 $maxPercentCountry = Iati_Core_Codelist::getCodeByAttrib('RecipientCountry', '@code', $country['@code']);
                             }
                         }
                         if ($maxPercentCountry) {
                             $segmentedActivities[$maxPercentCountry][] = $activityId;
                         } else {
                             $segmentedActivities[$countryCode][] = $activityId;
                         }
                     }
                 }
             }
         }
         return $segmentedActivities;
     } else {
         return $activitiesId;
     }
 }