예제 #1
0
파일: gift.php 프로젝트: stripthis/donate
 /**
  * undocumented function
  *
  * @param string $type 
  * @param string $query 
  * @return void
  * @access public
  */
 function find($type, $query = array())
 {
     $args = func_get_args();
     switch ($type) {
         case 'gift_types':
             $query['office_id'] = Gift::officeId();
             $conditions = array();
             if (!empty($query['office_id'])) {
                 $conditions['GiftTypesOffice.office_id'] = $query['office_id'];
             }
             $types = ClassRegistry::init('GiftTypesOffice')->find('all', array('conditions' => $conditions, 'contain' => array('GiftType(name, id, humanized)'), 'order' => array('GiftType.name' => 'asc')));
             $result = array();
             foreach ($types as $t) {
                 $result[$t['GiftType']['id']] = $t['GiftType']['humanized'];
             }
             return $result;
         case 'frequencies':
             $query['office_id'] = Gift::officeId();
             $conditions = array();
             if (!empty($query['office_id'])) {
                 $conditions['FrequenciesOffice.office_id'] = $query['office_id'];
             }
             $frequencies = ClassRegistry::init('FrequenciesOffice')->find('all', array('conditions' => $conditions, 'contain' => array('Frequency(name, id, humanized)'), 'order' => array('Frequency._order' => 'asc')));
             $result = array();
             foreach ($frequencies as $f) {
                 $result[$f['Frequency']['id']] = $f['Frequency']['humanized'];
             }
             return $result;
         case 'amounts':
             $query['office_id'] = Gift::officeId();
             $amounts = '5,10,15';
             if (!isset($query['options']) && !empty($query['office_id'])) {
                 $amounts = ClassRegistry::init('Office')->find('first', array('conditions' => array('id' => $query['office_id']), 'fields' => array('amounts')));
                 $amounts = $amounts['Office']['amounts'];
             }
             return $amounts;
         case 'min_amount':
             $amounts = Gift::find('amounts', $query);
             return $amounts[0];
         case 'currencies':
             $query['office_id'] = Gift::officeId();
             $conditions = array();
             if (!empty($query['office_id'])) {
                 $conditions['CurrenciesOffice.office_id'] = $query['office_id'];
             }
             $currencies = ClassRegistry::init('CurrenciesOffice')->find('all', array('conditions' => $conditions, 'contain' => array('Currency(iso_code, id)'), 'order' => array('Currency.iso_code' => 'asc')));
             return Set::combine($currencies, '/Currency/id', '/Currency/iso_code');
     }
     return call_user_func_array(array('parent', 'find'), $args);
 }