Beispiel #1
0
 /**
  * @author Thuanth6589 <*****@*****.**>
  * delete media
  * @param $media_id
  * @return bool
  */
 public function delete_media($media_id)
 {
     $media = Model_Mmedia::find_by_pk($media_id);
     if ($media) {
         try {
             $media_in_job = Model_Job::count('job_id', false, array(array('media_list', 'like', '%,' . $media_id . ',%')));
             $media_in_order = Model_Orders::count('order_id', false, array(array('media_list', 'like', '%,' . $media_id . ',%')));
             if ($media_in_job || $media_in_order) {
                 return false;
             }
             \Fuel\Core\DB::start_transaction();
             $post = new Model_Mpost();
             $delete_post = $post->delete_by_media($media_id);
             if (!isset($delete_post)) {
                 \Fuel\Core\DB::rollback_transaction();
                 return false;
             }
             if ($media->delete() != 1) {
                 \Fuel\Core\DB::rollback_transaction();
                 return false;
             }
             \Fuel\Core\DB::commit_transaction();
             return true;
         } catch (Exception $e) {
             \Fuel\Core\DB::rollback_transaction();
         }
     }
     return false;
 }
Beispiel #2
0
 /**
  * @author Thuanth6589 <*****@*****.**>
  * action delete ss
  * @param null $ss_id
  * @return bool
  */
 public static function delete_ss($ss_id = null)
 {
     if (!isset($ss_id)) {
         return false;
     }
     $ss = Model_Mss::find_by_pk($ss_id);
     if (!isset($ss)) {
         return false;
     }
     try {
         \Fuel\Core\DB::start_transaction();
         $sssale = new Model_Sssale();
         $delete = $sssale->delete_by_ss($ss_id);
         if (!isset($delete)) {
             return false;
         }
         if (!$ss->delete()) {
             \Fuel\Core\DB::rollback_transaction();
             return false;
         }
         \Fuel\Core\DB::commit_transaction();
         return true;
     } catch (Exception $e) {
         \Fuel\Core\DB::rollback_transaction();
         return false;
     }
 }
 public static function add_fanpage($fanpage_id, $user_id, $access_token)
 {
     //*** Call api to get fanpage info
     $facebook = new \Libs\Facebook();
     $page = $facebook->get_page_information($fanpage_id, $access_token);
     //*** Add to DB
     \Fuel\Core\DB::start_transaction();
     if (!\Model_Pages::check_page_exist($fanpage_id)) {
         if (!\Model_Pages::add_fanpage($page)) {
             return false;
         }
     }
     $data = array('user_id' => $user_id, 'fanpage_id' => $fanpage_id);
     $user_page = \Model_UserPage::forge($data);
     if (!$user_page->save()) {
         return false;
     }
     \Fuel\Core\DB::commit_transaction();
     return true;
 }
Beispiel #4
0
 /**
  * @author dangbc <*****@*****.**>
  * save data plan
  */
 public function save_plan($current_date, $data_post = array())
 {
     try {
         \Fuel\Core\DB::start_transaction();
         $delete = \Fuel\Core\DB::query('DELETE FROM plan where start_date = :start_date')->bind('start_date', $current_date)->execute();
         $plan = \Fuel\Core\DB::insert(self::$_table_name)->columns(array('start_date', 'area_id', 'job_cost', 'expenses', 'created_at', 'updated_at'));
         foreach ($data_post['area_id'] as $k => $v) {
             $plan->values(array($current_date, $k, $data_post['job_cost'][$k] == '' ? 0 : $data_post['job_cost'][$k], $data_post['expenses'][$k] == '' ? 0 : $data_post['expenses'][$k], date('Y-m-d h:s'), date('Y-m-d h:s')));
         }
         if (!$plan->execute()) {
             \Fuel\Core\DB::rollback_transaction();
             return false;
         }
         \Fuel\Core\DB::commit_transaction();
         return true;
     } catch (Exception $ex) {
         \Fuel\Core\DB::rollback_transaction();
         return false;
     }
 }
Beispiel #5
0
 public function post_create()
 {
     $val = Validation::forge();
     $val->add_callable('MyRules');
     $val->add_field('category_name', Lang::get('label.category_name'), 'required|max_length[255]');
     $val->add_field('id', Lang::get('label.category'), 'trim|valid_numeric|valid_category');
     $val->add_field('parent_category_id', Lang::get('label.parent_category'), 'trim|valid_numeric|valid_category');
     if ($val->run()) {
         DB::start_transaction();
         $category_id = $val->validated('id');
         $parent_category_id = (int) $val->validated('parent_category_id');
         $category_props = array('category_name' => Model_Service_Util::mb_trim($val->validated('category_name')), 'parent_category_id' => $parent_category_id, 'level' => !empty($parent_category_id) ? Model_Category::find($parent_category_id)->level + 1 : 1);
         $create_id = !empty($category_id) ? Model_Base_Category::update($category_id, $category_props) : Model_Base_Category::insert($category_props);
         if ($create_id) {
             $type = !empty($category_id) ? 'update' : 'new';
             $category_id = !empty($category_id) ? $category_id : $create_id;
             $photo_props = array('type' => $type, 'category_id' => $category_id);
             if ($type === 'new' || Input::file('category_photo')) {
                 $upload = Model_Service_Upload::run('category', $photo_props);
             }
             if (empty($upload['error'])) {
                 DB::commit_transaction();
                 $this->data['category'] = array('type' => $type, 'id' => $category_id, 'parent_category_id' => $parent_category_id, 'category_name' => $val->validated('category_name'), 'category_name_display' => Model_Base_Category::get_parent($category_id), 'category_photo_display' => empty($upload['photo_name']) ?: $upload['photo_name'], 'no_image' => _PATH_NO_IMAGE_);
                 $this->data['success'] = true;
                 $this->data['msg'] = Lang::get($this->controller . '.' . $this->action . '.success');
             } else {
                 DB::rollback_transaction();
                 $this->data['msg'] = $upload['error'];
             }
         } else {
             DB::rollback_transaction();
             $this->data['msg'] = Lang::get($this->controller . '.' . $this->action . '.error');
         }
     } else {
         $this->data['errors'] = $val->error_message();
     }
     return $this->response($this->data);
 }
Beispiel #6
0
 public function save_partner($arr_partner = array(), $arr_partner_code = array())
 {
     if (empty($arr_partner) || !isset($arr_partner['type'])) {
         return false;
     }
     try {
         DB::start_transaction();
         //Arr_partner['type'] is value before form submit
         $arr_partner_code['ident'] = \Utility::partner_code($arr_partner['type']);
         $m_partner_code = \Model_Partnercode::forge($arr_partner_code);
         if ($m_partner_code->save()) {
             //Get ident and seq_no before partner_code save
             $ident = $m_partner_code->ident;
             $seq_no = sprintf("%'.05d", $m_partner_code->seq_no);
             $arr_partner['partner_code'] = $ident . $seq_no;
         } else {
             DB::rollback_transaction();
             return false;
         }
         $arr_partner['status'] = \Constants::$_status_partner['pending'];
         $arr_partner['created_at'] = date('Y-m-d H:i:s');
         $m_partner = Model_Mpartner::forge();
         $m_partner->is_new(true);
         $m_partner->set($arr_partner);
         if (!$m_partner->save()) {
             DB::rollback_transaction();
             return false;
         } else {
             DB::commit_transaction();
             return true;
         }
     } catch (Exception $ex) {
         DB::rollback_transaction();
         return false;
     }
 }
Beispiel #7
0
 public function post_update()
 {
     $val = Validation::forge();
     $val->add_callable('MyRules');
     $val->add_field('id', Lang::get('label.product'), 'required|valid_product');
     $val->add_field('category_ids', Lang::get('label.category'), 'required');
     $val->add_field('product_name', Lang::get('label.product_name'), 'required|max_length[255]');
     $val->add_field('product_description', Lang::get('label.description'), 'trim|max_length[1024]');
     $val->add_field('product_info', Lang::get('label.information'), 'trim|max_length[10000]');
     if ($val->run()) {
         DB::start_transaction();
         $product_id = $val->validated('id');
         $category_ids = implode(',', $val->validated('category_ids'));
         $category_name = Model_Service_Util::mb_trim($val->validated('product_name'));
         $product_description = Model_Service_Util::mb_trim($val->validated('product_description'));
         $product_info = $val->validated('product_info');
         $product_props = array('product_name' => $category_name, 'product_description' => $product_description, 'product_info' => $product_info);
         if (Model_Base_Product::update($product_id, $product_props) && Model_Base_ProductCategory::update($product_id, $category_ids)) {
             DB::commit_transaction();
             $this->data['success'] = Lang::get($this->controller . '.' . $this->action . '.success');
         } else {
             DB::rollback_transaction();
             $this->data['error'] = Lang::get($this->controller . '.' . $this->action . '.error');
         }
     } else {
         $this->data['errors'] = $val->error_message();
     }
     return $this->response($this->data);
 }
 public function action_logtimes($timestamp = null)
 {
     if (!Auth\Auth::has_access('timesheets.read')) {
         Fuel\Core\Session::set_flash('error', 'You do not have access to view timesheets');
         Fuel\Core\Response::redirect('user');
     }
     if (!$timestamp) {
         $timestamp = \Fuel\Core\Date::forge()->get_timestamp();
         // today
     }
     if (Fuel\Core\Input::method() == 'POST') {
         try {
             // start a db transaction
             \Fuel\Core\DB::start_transaction();
             // find all logs for this task for this day
             $date = date('Y-m-d', $timestamp);
             $starts = date('Y-m-d 00:00:00', $timestamp);
             $ends = date('Y-m-d 23:59:59', $timestamp);
             $project_task_logs = Model_Projecttasklog::find('all', array('related' => array('project_task'), 'where' => array(array('project_task.user_id', $this->current_user->id), array('task_started', 'BETWEEN', array($starts, $ends)))));
             foreach ($project_task_logs as $log) {
                 $date_starts = date('Y-m-d', $timestamp);
                 $date_ends = date('Y-m-d 23:59:59', $timestamp);
                 if ($log->get_project_task()->user_id == $this->current_user->id) {
                     if (in_array(strtotime($log->task_started), range(strtotime($date_starts), strtotime($date_ends)))) {
                         // delete the logs
                         $log->delete();
                     }
                 }
             }
             // insert new logs
             if (Fuel\Core\Input::post('timeslots')) {
                 $date = date('Y-m-d', $timestamp);
                 $last_comment = '';
                 $last_task_id = '';
                 foreach (Fuel\Core\Input::post('timeslots') as $str) {
                     $times = explode('_', $str);
                     $is_billable = 0;
                     $task_started = $date . ' ' . $times[0] . ':00';
                     $task_completed = $date . ' ' . $times[1] . ':00';
                     $project_task_id_array = Fuel\Core\Input::post('project_task_id');
                     $task_id = $project_task_id_array["'{$str}'"];
                     if (Fuel\Core\Input::post('comment_' . $str) != '') {
                         $last_comment = Fuel\Core\Input::post('comment_' . $str);
                     }
                     if (intval(Fuel\Core\Input::post('is_billable_' . $str, '0')) == 1) {
                         $is_billable = 1;
                     }
                     if (empty($task_id)) {
                         $task_id = $last_task_id;
                     } else {
                         $last_task_id = $task_id;
                     }
                     if (empty($task_id)) {
                         continue;
                         // todo - display error
                     }
                     $task_log = Model_Projecttasklog::forge(array('project_task_id' => $task_id, 'comment' => $last_comment, 'task_started' => $task_started, 'task_completed' => $task_completed, 'is_billable' => $is_billable));
                     $task_log->save();
                 }
             }
             // commit to database
             \Fuel\Core\DB::commit_transaction();
             \Fuel\Core\Session::set_flash('success', 'Time logs saved successfully.');
             Fuel\Core\Response::redirect('user/timesheets/index/' . $timestamp);
         } catch (Exception $ex) {
             // rollback on error
             \Fuel\Core\DB::rollback_transaction();
             \Fuel\Core\Session::set_flash('error', $ex->getMessage());
             Fuel\Core\Response::redirect('user/timesheets/advanced/logtimes/' . $timestamp);
         }
     }
     $now = \Fuel\Core\Date::forge($timestamp)->format('mysql');
     $day_starts = date('Y-m-d 00:00:00', strtotime($now));
     $day_ends = date('Y-m-d 23:59:59', strtotime($now));
     $today_logs = Model_Projecttasklog::find('all', array('related' => array('project_task', 'project_task.project', 'project_task.project_task_name', 'project_task.user'), 'where' => array(array('task_started', 'BETWEEN', array($day_starts, $day_ends)), array('project_task.user_id', $this->current_user->id)), 'order_by' => array(array('task_started', 'asc'))));
     // todo: use DB::query() instead
     $this->template->set_global('today_logs', $today_logs);
     $this->template->set_global('projects', Model_Project::find('all', array('order_by' => array(array('name', 'asc')))));
     $this->template->set_global('timezones', Model_Timezone::find('all', array('order_by' => array(array('starts', 'asc')))));
     $this->template->set_global('my_tasks', Model_Projecttask::find('all', array('where' => array(array('user_id', $this->current_user->id)), 'related' => array('project_task_name'), 'order_by' => array(array('project_task_description', 'asc')))));
     $this->template->set_global('timestamp', $timestamp);
     $this->template->set_global('date', \Fuel\Core\Date::forge($timestamp)->format('mysql_date'));
     $this->template->title = 'Timesheets';
     $this->template->content = View::forge('user/timesheets/advanced/_advanced_form');
 }
 /**
  * 
  * @param type $timestamp
  */
 public function action_logtimes($timestamp = null)
 {
     if (!Auth\Auth::has_access('timesheets.read')) {
         Fuel\Core\Session::set_flash('error', 'You do not have access to view timesheets');
         Fuel\Core\Response::redirect('user');
     }
     Fuel\Core\Response::redirect('user/timesheets/advanced/logtimes/' . $timestamp);
     $task_id = 0;
     try {
         if (Fuel\Core\Input::method() == 'GET') {
             $task_id = Fuel\Core\Input::get('id');
         } else {
             if (Fuel\Core\Input::method() == 'POST') {
                 $task_id = Fuel\Core\Input::post('id');
             }
         }
     } catch (\Exception $ex) {
         $task_id = 0;
     }
     if (!($task = Model_Projecttask::find($task_id))) {
         Fuel\Core\Session::set_flash('error', 'Cannot find selected task # ' . $task_id);
         Fuel\Core\Response::redirect('user/timesheets');
     }
     if ($timestamp == null || !is_numeric($timestamp) || intval($timestamp) <= 0) {
         $timestamp = strtotime(date('d M Y'));
     }
     if (Fuel\Core\Input::method() == 'POST') {
         try {
             // start a db transaction
             \Fuel\Core\DB::start_transaction();
             // find all logs for this task for this day
             $date = date('Y-m-d', $timestamp);
             foreach ($task->project_task_logs as $log) {
                 $date_starts = date('Y-m-d', $timestamp);
                 $date_ends = date('Y-m-d 23:59:59', $timestamp);
                 if (in_array(strtotime($log->task_started), range(strtotime($date_starts), strtotime($date_ends)))) {
                     $id = $log->id;
                     // delete the logs
                     $log->delete();
                 }
             }
             // insert new logs
             if (Fuel\Core\Input::post('timeslots')) {
                 $date = date('Y-m-d', $timestamp);
                 $last_comment = '';
                 foreach (Fuel\Core\Input::post('timeslots') as $str) {
                     $times = explode('_', $str);
                     $is_billable = 0;
                     $task_started = $date . ' ' . $times[0] . ':00';
                     $task_completed = $date . ' ' . $times[1] . ':00';
                     if (Fuel\Core\Input::post('comment_' . $str) != '') {
                         $last_comment = Fuel\Core\Input::post('comment_' . $str);
                     }
                     if (intval(Fuel\Core\Input::post('is_billable_' . $str, '0')) == 1) {
                         $is_billable = 1;
                     }
                     $task_log = Model_Projecttasklog::forge(array('project_task_id' => $task->id, 'comment' => $last_comment, 'task_started' => $task_started, 'task_completed' => $task_completed, 'is_billable' => $is_billable));
                     $task_log->save();
                 }
             }
             // commit to database
             \Fuel\Core\DB::commit_transaction();
             \Fuel\Core\Session::set_flash('success', 'Time logs saved successfully.');
             Fuel\Core\Response::redirect('user/timesheets/index/' . $timestamp);
         } catch (Exception $ex) {
             // rollback on error
             \Fuel\Core\DB::rollback_transaction();
             \Fuel\Core\Session::set_flash('error', $ex->getMessage());
             Fuel\Core\Response::redirect('user/timesheets/index/' . $timestamp);
         }
     }
     $user_id = $this->current_user->id;
     $view = View::forge('user/timesheets/logtimes');
     $view->set_global('timestamp', $timestamp);
     $view->set_global('task', $task);
     $view->set_global('timezones', Model_Timezone::find('all'));
     $view->set_global('project_tasks', array_merge(array('0' => '- Select Task -'), \Fuel\Core\Arr::assoc_to_keyval(Model_Projecttask::find('all', array('where' => array(array('user_id', $user_id)))), 'id', 'project_task_description')));
     $this->template->user_is_admin = $this->check_user_is_admin();
     $this->template->title = 'Timesheets';
     $this->template->content = $view;
 }