/** * @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; } }
/** * @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; }
/** * @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; } }
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); }
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; } }
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; }