Viewing file: WorkFlowController.php (6.34 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Customer;
use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\WorkFlow; use App\Models\WorkFlowDetail; use App\Models\WorkFlowSetting; use App\Models\Label; class WorkFlowController extends Controller { public function index(){ return view('customer.work_flow.index'); } public function getAll(){
$work_flow= WorkFlow::where('customer_id',auth('customer')->user()->id); return datatables()->of($work_flow) ->addColumn('created_at',function($q){
return formatDate($q->created_at); }) ->addColumn('action',function($q){ return "<a class='btn btn-sm btn-info' href='" . route('customer.work_flow.edit', [$q->id]) . "' title='Edit'><i class='fa fa-pencil-alt'></i></a> " . '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this Work Flow?" data-action=' . route('customer.work_flow.destroy', [$q]) . ' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm" title="Delete"><i class="fa fa-trash"></i></button>'; }) ->addColumn('status',function($q){ $status=''; if($q->status=='active'){ $status='<span class="badge badge-success">'.ucfirst($q->status).'</span>'; }else{ $status='<span class="badge badge-danger">'.ucfirst($q->status).'</span>'; } return $status; }) ->rawColumns(['action','status']) ->toJson();
} public function edit(WorkFlow $workFlow){ $data['workflows'] = WorkFlowDetail::where('work_flow_id',$workFlow->id)->get(); $data['workFlow_settings'] = WorkFlowSetting::where('work_flow_id',$workFlow->id)->first(); $data['workFlow_id'] = $workFlow->id; $data['numbers'] = auth('customer')->user()->numbers; $data['tags'] = Label::where('customer_id',auth('customer')->user()->id)->where('status','active')->get(); return view('customer.work_flow.create',$data); } public function store(Request $request){
$request->validate([ 'name'=>'required', 'status'=>'required|in:active,inactive' ]);
$new = new WorkFlow; $new->customer_id=auth('customer')->user()->id; $new->name = $request->name; $new->status = $request->status; $new->save();
return redirect()->route('customer.work_flow.edit',$new); } public function update_flow_detail(Request $request){
$work_flow = WorkFlowDetail::find($request->id); if($request->type == 'sms'){ $work_flow->message = $request->message; $work_flow->name = $request->smsName; }else{ $work_flow->name = $request->delayName; $work_flow->time = $request->time; $work_flow->time_type = $request->timeType; } $work_flow->save();
return response()->json(['status' => 'success', 'message' => 'Flow updated successfully','data'=>$work_flow]); } public function store_flow(Request $request){ $workFlow = new WorkFlowDetail;
if($request->type == 'sms'){ $workFlow->name = $request->smsName; $workFlow->message = $request->message; }else{ $workFlow->name = $request->delayName; $workFlow->time = $request->time; $workFlow->time_type = $request->timeType; }
$workFlow->type = $request->type; $workFlow->work_flow_id = $request->work_flow_id; $workFlow->serial = $request->serial;
$workFlow->save();
return response()->json(['status' => 'success', 'message' => 'Flow created successfully','data'=>$workFlow]);
}
public function update_serial(Request $request){ $ids = $request->ids; $lines = $request->index;
if(!$ids){ return response()->json(['status' => 'error', 'message' => 'Flow updated fail']); }
foreach($ids as $index => $id){
$line = $lines[$index];
WorkFlowDetail::where('id', $id)->update(['serial' => $line]); }
return response()->json(['status' => 'success', 'message' => 'Flow updated successfully']); }
public function destroy(WorkFlow $workFlow) { if ($workFlow->details) { WorkFlowDetail::where('work_flow_id', $workFlow->id)->delete(); }
$workFlow->delete();
return redirect()->back()->with('success', 'Work Flow with details successfully deleted'); }
public function flow_delete(Request $request){
WorkFlowDetail::where('id', $request->id)->delete();
return redirect()->back()->with('success', 'Work Flow Detail successfully deleted'); } public function update_setting(Request $request){ $customer = auth('customer')->user(); // $dates = ''; // $start_time = ''; // $end_time = '';
// if($request->time_window == 'enable'){ $dates = $request->dates; $start_time = $request->start_time; $end_time = $request->end_time; // } // $tags = ''; // if($request->default_tag == 'enable'){ $tags = json_encode($request->tag_ids); // } $workFlowSetting = WorkFlowSetting::where('work_flow_id',$request->work_flow_id)->firstOrNew(); $workFlowSetting->customer_id = $customer->id; $workFlowSetting->work_flow_id = $request->work_flow_id; $workFlowSetting->numbers = $request->number_ids; $workFlowSetting->tags = $tags; $workFlowSetting->dates = $dates; $workFlowSetting->start_time = $start_time; $workFlowSetting->end_time = $end_time; $workFlowSetting->end_time = $end_time; $workFlowSetting->multiple = $request->allow_multiple; $workFlowSetting->waiting = $request->waiting_list; $workFlowSetting->time_window = $request->time_window; $workFlowSetting->default_tag = $request->default_tag; $workFlowSetting->save();
return response()->json(['status' => 'success', 'message' => 'Work Flow updated successfully','data'=>$workFlowSetting]); } }
|