コード例 #1
0
ファイル: sbr_emp.php プロジェクト: kapai69/fl-ru-damp
 /**
  * Инициализирует форму новой СБР по заданному проекту (из таблицы projects).
  *
  * @param int     $project_id ид. проекта.
  * @param inetger $exec_id    ИД Исполнителя СБР
  */
 public function initFromProject($project_id, $exec_id = false)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
     $this->checkProject($project_id);
     if (!$this->error['project_id']) {
         $this->data['project_id'] = $this->project['id'];
         $this->data['name'] = $this->project['name'];
         $this->data['frl_id'] = $exec_id ? $exec_id : $this->project['exec_id'];
         $stage = new sbr_stages($this);
         $this->stages = array($stage);
         $stage->data['name'] = $this->project['name'];
         $stage->data['descr'] = $this->project['descr'];
         $allSpecs = projects::getProjectCategories($this->project['id']);
         $this->data['professions'] = $allSpecs;
         foreach ($this->data['professions'] as &$spec) {
             $spec['prof_name'] = $spec['subcategory_id'] ? professions::GetProfNameWP($spec['subcategory_id'], ': ', '', false) : professions::GetGroupName($spec['category_id']);
         }
         unset($spec);
         $stage->data['category'] = $allSpecs[0]['category_id'];
         //$this->project['category'];
         $stage->data['sub_category'] = $allSpecs[0]['subcategory_id'];
         //$this->project['subcategory'];
         $cost = $this->project['cost'];
         $cex = array(project_exrates::USD, project_exrates::EUR, project_exrates::RUR, project_exrates::FM);
         // конвертер кода projects.currency в коды project_exrates.
         $ccex = $cex[$this->project['currency']];
         switch ($ccex) {
             case project_exrates::RUR:
                 $cost_sys = exrates::BANK;
                 break;
             case project_exrates::FM:
             case project_exrates::EUR:
             case project_exrates::USD:
                 $prj_exrates = project_exrates::GetAll(false);
                 $cost_sys = exrates::BANK;
                 $cost *= $prj_exrates[$ccex . project_exrates::RUR];
                 break;
         }
         $stage->data['cost'] = (int) $cost === 0 ? '' : $cost;
         $this->data['cost_sys'] = $cost_sys;
         if ($this->project['attach']) {
             $stage->data['attach'] = $this->project['attach'];
         }
         return true;
     }
     return false;
 }
コード例 #2
0
ファイル: autoresponse.php プロジェクト: kapai69/fl-ru-damp
 /**
  * Извлечение автоответов которые соответсвуют критериям проекта.
  *
  * @param project $project Проект (объект класса project)
  *
  * @return array (autoresponse a1, autoresponse a2, ... autoresponse a1)
  */
 public static function getListForProject($project)
 {
     global $DB;
     $list = array();
     // Специализация проекта
     $sql_spec = '';
     $specs = projects::getProjectCategories($project['id']);
     foreach ($specs as $spec) {
         if ($sql_spec) {
             $sql_spec .= ' OR ';
         }
         $sql_spec .= sprintf(' 
             (filter_category_id = %d AND filter_subcategory_id = %d) 
             OR 
             (filter_category_id = %d AND filter_subcategory_id = 0)', $spec['category_id'], $spec['subcategory_id'], $spec['category_id']);
     }
     // Запрос на извлечение автоответов, подходящих к выбранному проекту
     $sql = sprintf("SELECT DISTINCT ON (user_id) user_id, id, post_date, descr, only_4_cust \n                FROM autoresponse \n                WHERE \n                    active = 't' AND remained > 0 \n                    AND (filter_budget = 0 OR \n                            (filter_budget <= %d AND filter_budget_currency = %d AND filter_budget_priceby = %d)\n                    )\n                    AND ({$sql_spec}) \n                ORDER BY user_id, post_date", intval($project['cost']), $project['currency'], $project['priceby']);
     if ($res = $DB->rows($sql)) {
         foreach ($res as $data) {
             $freelancer = new freelancer();
             $freelancer->GetUserByUID($data['user_id']);
             if (!$freelancer->uid) {
                 continue;
             }
             $data['freelancer'] = $freelancer;
             $data['contacts_freelancer'] = array('phone' => array('name' => 'Телефон', 'value' => $freelancer->phone), 'site' => array('name' => 'Сайт', 'value' => $freelancer->site), 'icq' => array('name' => 'ICQ', 'value' => $freelancer->icq), 'skype' => array('name' => 'Skype', 'value' => $freelancer->skype), 'email' => array('name' => 'E-mail', 'value' => $freelancer->second_email));
             $list[] = new self($data);
         }
     }
     return $list;
 }