123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
-
- namespace App\Http\Controllers\API;
-
- use Illuminate\Http\Request;
- use App\Http\Requests\RegisterRequest;
- use App\Http\Controllers\Api\BaseController;
- use Illuminate\Support\Facades\Auth;
-
- use App\Staff;
- use App\Model\StaffDetail;
- use App\Model\Docket;
- use App\Model\WorkOrder;
- use App\Model\Company;
- use App\Model\Form;
- use App\Model\PackageDetail;
- use App\Model\Subscriber;
- use App\Model\FormStatus;
-
- use App\Jobs\StoreDocket;
-
- use Carbon\Carbon;
- use File;
-
- class DocketMobile extends BaseController
- {
-
- function random_code($limit) {
- return substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, $limit);
- }
-
- function createDocketID($limit){
- $numberOnly = str_replace('DO-','',Docket::select('id','docket_id')->orderBy('created_at','DESC')->first()->docket_id);
- info('before3'.$numberOnly);
- $numberOnly++;
- info('after3'.$numberOnly);
- return $numberOnly;
-
- // $allowedNumbers = range(0, 9);
- // shuffle($allowedNumbers);
- // $digits = array_rand($allowedNumbers, $limit);
- // $number = '';
-
- // foreach($digits as $d){
- // $number .= $allowedNumbers[$d];
- // }
- // $unique_id = $number;
- // return $unique_id;
- }
-
- public function createDocket(Request $request){
-
- $loginUser = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
- if(!empty($loginUser)) {
-
- $wo = WorkOrder::where('wo',$request->wo)->first();
-
- if(!empty($wo)){
-
- $woD = Docket::where('work_order_id', $request->wo)->first();
- if(empty($woD)){
- $subs = Subscriber::where('_id',$wo->_id)->first();
- $destinationPath = 'document/'.$subs->subscriber_id;
-
- // create folder/dir if not exist
- if(!File::exists(public_path().'/'.$destinationPath)){
- File::makeDirectory(public_path().'/'.$destinationPath,0777,true);
- }
-
- $uploaded = public_path().'/'.$destinationPath;
- // Signature
- $signature_docket = $request->data_uris;
- $signature_docket = explode(",", $signature_docket)[1];
- //convert signature_form
- $data = base64_decode($signature_docket);
- $file = $uploaded."/signature_docket.png";
- $savetoServer = file_put_contents($file,$data);
-
- if (($savetoServer === false) || ($savetoServer == -1)) {
- return $this->sendError('', "Couldn't save signature to jpeg");
- }else {
-
- do {
- $do = 'DO-'.$this->createDocketID(4);
- } while (Docket::where("docket_id", "=", $do)->first() instanceof Docket);
-
- $signature = '/'.$destinationPath.'/signature_docket.png';
- $this->dispatch(new StoreDocket($request->all(), $do, $wo->nature_work, $wo->installer_id, $signature));
-
- // $docket = new Docket();
- // $docket->work_order_id = $request->wo;
- // $docket->docket_id = $do;
- // $docket->nature_work = $wo->nature_work;
- // $docket->installer_id = $loginUser->_id;
- // $docket->end_job = Carbon::now()->toDateTimeString();
- // $docket->router_serial_number = $request->router_serial_number;
- // $docket->mac_router = $request->mac_router;
- // $docket->cable_read = $request->cable_read;
- // $docket->condition = $request->condition;
- // $docket->Note = $request->Note;
- // $docket->Rating1 = $request->Rating1;
- // $docket->Rating2 = $request->Rating2;
- // $docket->Rating3 = $request->Rating3;
- // $docket->customer_signature = '/'.$destinationPath.'/signature_docket.png';
-
- // $wo->docket()->save($docket);
-
- // $wo->status = 'Completed';
- // $wo->docket_id = $do;
- // $wo->save();
-
- // $fm = Form::where('_id',$wo->_id)->first();
- // $stat = new FormStatus();
- // $stat->form_id = $fm->_id;
- // $stat->status_id = 8;
- // $stat->date = new \MongoDB\BSON\UTCDateTime(time()*1000);
- // $stat->status = 'Completed';
- // $stat->desc = 'This work order already been completed';
- // $fm->formstatus()->save($stat);
-
- return $this->sendResponse($do, 'Create Docket Successfully');
- }
-
- }else{
- return $this->sendError('', 'Work Order Already Existed!');
- }
- }else{
- return $this->sendError('', 'Work Order Not Exist!');
- }
- }else {
- return $this->sendError('Invalid User', 'User Not Exist!');
- }
- }
-
- public function getResetDocket(Request $request)
- {
-
- $data = array();
- $loginUser = Staff::with('StaffDetail')->where('api_token', $request->api_token)->where('roles_access', 'Installer')->first();
- if (!empty($loginUser)) {
-
- $docket = Docket::with('WorkOrder')->where('installer_id', $loginUser->_id)->where('condition', '')->get();
-
- if (!empty($docket)) {
- foreach ($docket as $a) {
-
- array_push($data, array(
- "docket_id" => $a->docket_id,
- "wo_id" => $a->work_order_id,
- ));
- }
- return $this->sendResponse($data, 'Successful display reset docket');
- }
- } else {
- return $this->sendError('Invalid User', 'User Not Exist!');
- }
- }
-
- public function saveResetDocket(Request $request)
- {
-
- $loginUser = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
- if (!empty($loginUser)) {
-
- $docket = Docket::where('docket_id', $request->do)->first();
- if (!empty($docket)) {
- $docket->router_serial_number = $request->router_serial_number;
- $docket->modem_sn = $request->modem_sn;
- $docket->cable_read = $request->cable_read;
- $docket->condition = $request->condition;
- $docket->save();
-
- return $this->sendResponse($docket->docket_id, 'Save Reset Docket Successfully');
- } else {
- return $this->sendError('', 'Docket not exist!');
- }
-
- } else {
- return $this->sendError('Invalid User', 'User Not Exist!');
- }
- }
- }
|