123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <?php
- require_once 'career.lib.php';
- require_once 'fckeditor/fckeditor.php';
- define ('PROMOTION_STATUS_ACTIVE', 1);
- define ('PROMOTION_STATUS_INACTIVE',0);
- class Promotion extends Model {
-
- var $table;
- var $columns = array('id','name','description','career_id','status','created_at','updated_at');
-
- public function __construct() {
- $this->table = Database::get_main_table(TABLE_PROMOTION);
- }
-
-
- public function get_count() {
- $row = Database::select('count(*) as count', $this->table, array(),'first');
- return $row['count'];
- }
-
-
-
- public function copy($id, $career_id = null, $copy_sessions = false) {
- $pid = false;
- $promotion = $this->get($id);
- if (!empty($promotion)) {
- $new = array();
- foreach ($promotion as $key => $val) {
- switch ($key) {
- case 'id':
- case 'updated_at':
- break;
- case 'name':
- $val .= ' '.get_lang('Copy');
- $new[$key] = $val;
- break;
- case 'created_at':
- $val = api_get_utc_datetime();
- $new[$key] = $val;
- break;
- case 'career_id':
- if (!empty($career_id)) {
- $val = (int)$career_id;
- }
- $new[$key] = $val;
- default:
- $new[$key] = $val;
- break;
- }
- }
-
- if ($copy_sessions) {
-
-
- $session_list = SessionManager::get_all_sessions_by_promotion($id);
-
- if (!empty($session_list)) {
- $pid = $this->save($new);
- if (!empty($pid)) {
- $new_session_list = array();
-
- foreach($session_list as $item) {
- $sid = SessionManager::copy_session($item['id'], true, false, true, true);
- $new_session_list[] = $sid;
- }
-
- if (!empty($new_session_list)) {
- SessionManager::suscribe_sessions_to_promotion($pid, $new_session_list);
- }
- }
- }
- } else {
- $pid = $this->save($new);
- }
- }
- return $pid;
- }
-
-
- public function get_all_promotions_by_career_id($career_id, $order = false) {
- return Database::select('*', $this->table, array('where'=>array('career_id = ?'=>$career_id),'order' =>$order));
- }
-
- public function get_status_list() {
- return array(PROMOTION_STATUS_ACTIVE => get_lang('Active'), PROMOTION_STATUS_INACTIVE => get_lang('Inactive'));
- }
-
-
- function display() {
-
- echo '<div class="actions" style="margin-bottom:20px">';
- echo '<a href="career_dashboard.php">'.Display::return_icon('back.png',get_lang('Back'),'','32').'</a>';
- echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('new_promotion.png',get_lang('Add'),'','32').'</a>';
- echo '<a href="'.api_get_path(WEB_CODE_PATH).'admin/session_add.php">'.Display::return_icon('new_session.png',get_lang('AddSession'),'','32').'</a>';
- echo '</div>';
- echo Display::grid_html('promotions');
- }
-
-
- public function update_all_sessions_status_by_promotion_id($promotion_id, $status) {
- $session_list = SessionManager::get_all_sessions_by_promotion($promotion_id);
- if (!empty($session_list)) {
- foreach($session_list as $item) {
- SessionManager::set_session_status($item['id'], $status);
- }
- }
- }
-
-
-
-
- function return_form($url, $action = 'add') {
-
- $oFCKeditor = new FCKeditor('description') ;
- $oFCKeditor->ToolbarSet = 'careers';
- $oFCKeditor->Width = '100%';
- $oFCKeditor->Height = '200';
- $oFCKeditor->Value = '';
- $oFCKeditor->CreateHtml();
-
- $form = new FormValidator('promotion', 'post', $url);
-
- $header = get_lang('Add');
- if ($action == 'edit') {
- $header = get_lang('Modify');
- }
- $id = isset($_GET['id']) ? intval($_GET['id']) : '';
-
- $form->addElement('header', '', $header);
- $form->addElement('hidden', 'id', $id);
- $form->addElement('text', 'name', get_lang('Name'), array('size' => '70','id' => 'name'));
- $form->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'careers','Width' => '100%', 'Height' => '250'));
- $career = new Career();
- $careers = $career->get_all();
- $career_list = array();
- foreach($careers as $item) {
- $career_list[$item['id']] = $item['name'];
- }
- $form->addElement('select', 'career_id', get_lang('Career'), $career_list);
-
- $status_list = $this->get_status_list();
- $form->addElement('select', 'status', get_lang('Status'), $status_list);
- if ($action == 'edit') {
- $form->addElement('text', 'created_at', get_lang('CreatedAt'));
- $form->freeze('created_at');
- }
- if ($action == 'edit') {
- $form->addElement('style_submit_button', 'submit', get_lang('Modify'), 'class="save"');
- } else {
- $form->addElement('style_submit_button', 'submit', get_lang('Add'), 'class="save"');
- }
-
-
- $defaults = $this->get($id);
- if (!empty($defaults['created_at'])) {
- $defaults['created_at'] = api_convert_and_format_date($defaults['created_at']);
- }
- if (!empty($defaults['updated_at'])) {
- $defaults['updated_at'] = api_convert_and_format_date($defaults['updated_at']);
- }
- $form->setDefaults($defaults);
-
-
- $form->addRule('name', get_lang('ThisFieldIsRequired'), 'required');
-
- return $form;
- }
-
- public function save($params, $show_query = false) {
- $id = parent::save($params, $show_query);
- if (!empty($id)) {
- event_system(LOG_PROMOTION_CREATE, LOG_PROMOTION_ID, $id, api_get_utc_datetime(), api_get_user_id());
- }
- return $id;
- }
-
- public function delete($id) {
- parent::delete($id);
- event_system(LOG_PROMOTION_DELETE, LOG_PROMOTION_ID, $id, api_get_utc_datetime(), api_get_user_id());
- }
-
-
- }
|