コード例 #1
0
 /**
  * Delete a schedule (throw to queue)
  *
  * @return Response
  */
 public function delete($org_id = null, $cal_id = null, $id = null)
 {
     //
     $schedule = \App\Models\Schedule::id($id)->calendarid($cal_id)->with(['calendar', 'calendar.calendars'])->first();
     if (!$schedule) {
         return new JSend('error', (array) Input::all(), 'Jadwal tidak ditemukan.');
     }
     $errors = new MessageBag();
     DB::beginTransaction();
     //1. store schedule of calendar to queue
     $schedule = $schedule->toArray();
     //1a. Validate Basic schedule Parameter
     $parameter = $schedule;
     unset($parameter['calendar']);
     $total = \App\Models\Work::calendarid($cal_id)->count();
     $queue = new \App\Models\Queue();
     $queue->fill(['process_name' => 'hr:schedules', 'process_option' => 'delete', 'parameter' => json_encode($parameter), 'total_process' => $total, 'task_per_process' => 1, 'process_number' => 0, 'total_task' => $total, 'message' => 'Initial Commit']);
     if (!$queue->save()) {
         $errors->add('Schedule', $queue->getError());
     }
     //End of validate schedule
     //2. store schedule of calendars to queue
     if (!$errors->count() && isset($schedule['calendar']['calendars']) && is_array($schedule['calendar']['calendars'])) {
         foreach ($schedule['calendar']['calendars'] as $key => $value) {
             $cals_data = \App\Models\Calendar::id($value['id'])->calendarid($cal_id)->first();
             if (!$cals_data) {
                 $errors->add('Calendar', 'Tidak ada kalender ' . $value['name']);
             }
             if (!$errors->count()) {
                 $total = \App\Models\Work::calendarid($value['id'])->count();
                 $parameter['calendar_id'] = $value['id'];
                 $queue = new \App\Models\Queue();
                 $queue->fill(['process_name' => 'hr:schedules', 'process_option' => 'delete', 'parameter' => json_encode($parameter), 'total_process' => $total, 'task_per_process' => 1, 'process_number' => 0, 'total_task' => $total, 'message' => 'Initial Commit']);
                 if (!$queue->save()) {
                     $errors->add('Schedule', $queue->getError());
                 }
             }
         }
     }
     //End of validate calendar schedule
     if ($errors->count()) {
         DB::rollback();
         return new JSend('error', (array) Input::all(), $errors);
     }
     DB::commit();
     return new JSend('success', (array) $schedule);
 }
コード例 #2
0
 /**
  * Store a queue
  *
  * 1. Validate Price Parameter
  * 
  * @return Response
  */
 public function price()
 {
     if (!Input::has('price')) {
         return new JSend('error', (array) Input::all(), 'Tidak ada data price.');
     }
     $user = \LucaDegasperi\OAuth2Server\Facades\Authorizer::getResourceOwnerId();
     $user = json_decode($user, true)['data'];
     if ($user) {
         $userid = $user['id'];
     } else {
         \App::abort(404);
     }
     $errors = new MessageBag();
     DB::beginTransaction();
     //1. Validate Price Parameter
     $price = Input::get('price');
     $price_rules = ['discount_amount' => 'required_without:discount_percentage|numeric', 'discount_percentage' => 'required_without:discount_amount|numeric', 'started_at' => 'required|date_format:"Y-m-d H:i:s"', 'ended_at' => 'required|date_format:"Y-m-d H:i:s"|after:started_at', 'category_ids' => 'required_if:item,category|array', 'tag_ids' => 'required_if:item,tag|array', 'is_labeled' => 'boolean'];
     $validator = Validator::make($price, $price_rules);
     if (!$validator->passes()) {
         $errors->add('Price', $validator->errors());
     } else {
         $products = new \App\Models\Product();
         $products = $products->sellable(true);
         if (isset($price['category_ids'])) {
             $products = $products->categoriesid($price['category_ids']);
         } elseif (isset($price['tag_ids'])) {
             $products = $products->tagsid($price['tag_ids']);
         }
         $products = $products->get(['id']);
         $parameter = $price;
         $queue = new \App\Models\Queue();
         $queue->fill(['user_id' => $userid, 'process_name' => 'broadcast:discount', 'parameter' => json_encode($parameter), 'total_process' => count($products), 'task_per_process' => 1, 'process_number' => 0, 'total_task' => count($products), 'message' => 'Initial Commit']);
         if (!$queue->save()) {
             $errors->add('Product', $queue->getError());
         }
     }
     //End of validate price
     if ($errors->count()) {
         DB::rollback();
         return new JSend('error', (array) Input::all(), $errors);
     }
     DB::commit();
     $final_queue = \App\Models\Queue::id($queue['id'])->first()->toArray();
     return new JSend('success', (array) $final_queue);
 }
コード例 #3
0
 /**
  * delete Personschedule and update for persons
  *
  * @return void
  **/
 public function delete($id)
 {
     $queue = new \App\Models\Queue();
     $pending = $queue->find($id);
     $parameters = json_decode($pending->parameter, true);
     $messages = json_decode($pending->message, true);
     $errors = new MessageBag();
     $personschedule_data = \App\Models\PersonSchedule::id($parameters['id'])->with(['person'])->first();
     if (!$personschedule_data) {
         $errors->add('Batch', 'Tidak ada Personschedule.');
     } elseif (!$personschedule_data->delete()) {
         $errors->add('Batch', $personschedule_data->getError());
     }
     if (!$errors->count()) {
         $pnumber = $pending->total_process;
         $messages['message'][$pnumber] = 'Sukses Menghapus Jadwal ' . (isset($personschedule_data['person']['name']) ? $personschedule_data['person']['name'] : '');
         $pending->fill(['process_number' => $pnumber, 'message' => 'Sukses']);
     } else {
         $pnumber = $pending->total_process;
         $messages['message'][$pnumber] = 'Gagal Menghapus Jadwal ' . (isset($personschedule_data['person']['name']) ? $personschedule_data['person']['name'] : '');
         $messages['errors'][$pnumber] = $errors;
         $pending->fill(['process_number' => $pnumber, 'message' => 'Sukses']);
     }
     $pending->save();
     return true;
 }