all()); # Get the Calling User $SHUSER = m3_user() !== '' ? Str::upper(m3_user()) : 'WebUser'; $SHSOURCE = 'PdfStorageAPI'; # PDF File PATH $pdfFilePath = Config::get('arrays.PdfPath'); try { # Get URL PARAMS $urlParams = count($request->all())>0 ? $request->all() : ''; // dd($urlParams); $COMPANY = isset($urlParams["COMPANY"]) ? trim($urlParams["COMPANY"]) : ''; # Company $WHS = isset($urlParams["WHS"]) ? trim($urlParams["WHS"]) : ''; # WareHouse $DOCTYPE = isset($urlParams["DOCTYPE"]) ? trim($urlParams["DOCTYPE"]) : ''; # document type (PackingList, CarrierLabel, ContentLabel) $FILENAME = isset($urlParams["FILENAME"]) ? trim($urlParams["FILENAME"]) : ''; # PDF File name $DOCNUM = isset($urlParams["DOCNUM"]) ? trim($urlParams["DOCNUM"]) : ''; # document number (ie the internal box number, the pick list number) $A4MACPKR = isset($urlParams["A4MACPKR"]) ? trim($urlParams["A4MACPKR"]) : ''; # Delivery note number if($urlParams!=''){ # Key Combination : COMPANY WHS A4MACPKR DOCTYPE DOCNUM # Document type (PackingList, CarrierLabel, ContentLabel) $DELIVERYNO = isset($A4MACPKR) ? $A4MACPKR : '000000'; $DELIVERYNO = $DELIVERYNO!="" && $DELIVERYNO!=null ? $DELIVERYNO : '000000'; # Write to Logs : Params In $IncomingParams = ['COMPANY'=> $COMPANY,'WHS'=> $WHS,'DOCTYPE'=> $DOCTYPE,'FILENAME'=> $FILENAME,'A4MACPKR'=> $A4MACPKR,'DOCNUM' => $DOCNUM]; $data = ['SHMACPKR'=>$DELIVERYNO,'SHDT'=> date('Y-m-d'),'SHTIME'=> date('H:i:s') ,'SHERROR'=> '','SHINTBOX'=> $DOCNUM,'SHTYPE'=> 'M3-Req-out' , 'SHDATA'=>json_encode($IncomingParams) ,'SHUSER'=> $SHUSER,'SHSOURCE'=> $SHSOURCE,'SHCO'=>$COMPANY,'SHWHS'=>$WHS ]; Helper::logToICM699M($data); # Make Key and Test Validity if ($A4MACPKR!='' && $DOCTYPE!='' && $DOCNUM!='' && $COMPANY!='' && $WHS!=''){ $cacheKey = $A4MACPKR.$DOCTYPE.$DOCNUM.$COMPANY.$WHS; } else{ $cacheKey =''; } # Read PDF File and Encode to Base64 $pdfFileName = $pdfFilePath.$FILENAME.'.pdf'; // dd($pdfFileName); // dd(File::exists($pdfFileName)); if (File::exists($pdfFileName) && $cacheKey!='') { // dd(File::exists($pdfFileName)); // Parse PDF file and build necessary objects. $parser = new \Smalot\PdfParser\Parser(); // $pdf = $parser->parseFile('/www/sentm3test/htdocs/labels/E1232824-10826596.pdf'); // dump($pdf); // $text = $pdf->getText(); // dump("Text Only"); // dump($text); $pdfFile = File::get($pdfFileName); // Transform content to base64 $base64PDF = base64_encode($pdfFile); // Output base64 string // dump($base64PDF); # Save Cache Cache::forever($cacheKey, $base64PDF); // Cache::put($cacheKey, $base64PDF, now()->addMinutes(60)); # Retrieve Cache // $cachedPdfFile = Cache::get($cacheKey); // dump("Retrieve Base64 Encoded PDF saved in Cache:"); // dump($cachedPdfFile); // $pdfData = substr($cachedPdfFile,0,50); # remove File from Cache // Cache::put(pdfFileName, 'value', -5); // Cache::forget($pdfFileName); # Base64 Decode and Display // $pdf = $parser->parseContent(base64_decode($base64PDF)); // $text = $pdf->getText(); // dump($text); # Write to Logs Out : Success $data = ['SHMACPKR'=>$DELIVERYNO,'SHDT'=> date('Y-m-d'),'SHTIME'=> date('H:i:s') ,'SHERROR'=> '','SHINTBOX'=> $DOCNUM,'SHTYPE'=> 'M3-Res-out' , 'SHDATA'=>'PDF File converted to Base64 and Saved to Cache.Key: '.$cacheKey,'SHUSER'=> $SHUSER,'SHSOURCE'=> $SHSOURCE,'SHCO'=>$COMPANY,'SHWHS'=>$WHS]; // dd($data); Helper::logToICM699M($data); return response()->json([ 'code' => '200', 'status' => 'Success', 'cacheKey'=> $cacheKey // 'PDFData' => $pdfData ]); } else { $SHDATA = File::exists($pdfFileName) ? '' : 'PDF File Not Found-'; $SHDATA = $cacheKey!='' ? $SHDATA.'' : $SHDATA.'Cache Key is missing Params'; # Write to Logs Out : Error $data = ['SHMACPKR'=>$DELIVERYNO,'SHDT'=> date('Y-m-d'),'SHTIME'=> date('H:i:s') ,'SHERROR'=> 'X','SHINTBOX'=> $DOCNUM,'SHTYPE'=> 'M3-Res-out' , 'SHDATA'=>'An Error Occured -'.$SHDATA,'SHUSER'=> $SHUSER,'SHSOURCE'=> $SHSOURCE,'SHCO'=>$COMPANY,'SHWHS'=>$WHS]; Helper::logToICM699M($data); # Return Error return response()->json([ 'code' => '405', 'status' => 'Error', 'message'=> $SHDATA ]); } } else { # Write to Logs Out : Error $DELIVERYNO = isset($DELIVERYNO) ? $DELIVERYNO : '000000'; $data = ['SHMACPKR'=>$DELIVERYNO,'SHDT'=> date('Y-m-d'),'SHTIME'=> date('H:i:s') ,'SHERROR'=> 'X','SHINTBOX'=> '','SHTYPE'=> 'M3-Res-out' , 'SHDATA'=>'No URL Parameters Sent.','SHUSER'=> $SHUSER,'SHSOURCE'=> $SHSOURCE,'SHCO'=>$COMPANY,'SHWHS'=>$WHS]; Helper::logToICM699M($data); # Return Error return response()->json([ 'code' => '405', 'status' => 'Error', 'message'=> 'No URL Parameters Sent' ]); } } catch (\Throwable $th) { // Log::error($th); # Write to Logs Out : Error $DELIVERYNO = isset($DELIVERYNO) ? $DELIVERYNO : '000000'; $data = ['SHMACPKR'=>$DELIVERYNO,'SHDT'=> date('Y-m-d'),'SHTIME'=> date('H:i:s') ,'SHERROR'=> 'X','SHINTBOX'=> '','SHTYPE'=> 'M3-Res-out' , 'SHDATA'=>'An Error Occured - '.substr($th,0,300) ,'SHUSER'=> $SHUSER,'SHSOURCE'=> $SHSOURCE,'SHCO'=>$COMPANY,'SHWHS'=>$WHS]; Helper::logToICM699M($data); return response()->json([ 'code'=>'405', 'status'=>'error', 'message'=>'Catched Error: '.$th ]); } } # End PdfStorageAPI }