HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //www/wwwroot/www.shooperm.com/Modules/Shipping/Repositories/OrderRepository.php
<?php

namespace Modules\Shipping\Repositories;

use App\Models\GuestOrderDetail;
use App\Models\OrderAddressDetail;
use App\Models\OrderPackageDetail;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Modules\Customer\Entities\CustomerAddress;
use Modules\OrderManage\Repositories\OrderManageRepository;
use Modules\Shipping\Http\Controllers\OrderSyncWithCarrierController;
use Modules\ShipRocket\Repositories\ShipRocketRepository;

class OrderRepository
{
    public function pendingOrder($filterData)
    {


        $seller_id = getParentSellerId();

        $query = OrderPackageDetail::query()->whereHas('order', function ($q) {
            $q->where('is_cancelled', 0)->where('delivery_type', 'home_delivery');
        })->where('is_cancelled', 0)->where('delivery_status','<=', 2)->where('shipping_method','>',1)->with('order', 'seller', 'order.customer','shipping')->where('seller_id', $seller_id);

        if(!empty($filterData['carrier'])){
            $query = $query->where('carrier_id',$filterData['carrier']);
        }
        if (!empty($filterData['shipping_method'])){
           $query = $query->where('shipping_method',$filterData['shipping_method']);
        }
        if(!empty($filterData['package_code'])){
            $query = $query->where('package_code',$filterData['package_code']);
        }
        if(!empty($filterData['date_range_filter'])){
            $query = $query->whereBetween('created_at',filterDateFormatingForSearchQuery($filterData['date_range_filter']));
        }
        return $query->latest()->get();

    }


    public function order($id)
    {
        return OrderPackageDetail::with('order', 'seller', 'order.customer','shipping')->findOrFail($id);
    }


    public function shippingMethodChange(array $data)
    {
        if(isset($data['multiple_order'])){
            $order_ids = json_decode($data['order_ids']);
            foreach ($order_ids as $id){
                OrderPackageDetail::where('id',$id)->update(['shipping_method'=>$data['shipping_method']]);
                //shipping carrier config
                $order = OrderPackageDetail::find($id);
                $orderManageRepo = new OrderManageRepository();
                $orderManageRepo->orderConfirm($order->order_id);
                //end shipping carrier
            }
            return true;
        }else{



            $response = OrderPackageDetail::where('id',$data['order_id'])->update([
                'shipped_by'=>isset($data['shipping_method'])?$data['shipping_method']:null,
                'carrier_order_id'=>isset($data['tracking_id']) ? $data['tracking_id'] :null,
                'carrier_id'=>$data['carrier'],
                'shipping_method'=>$data['c_shipping_method'],
                'pickup_point_id'=>pickupLocationData('id'),
            ]);
            //shipping carrier config
            $order = OrderPackageDetail::find($data['order_id']);

            if($order->seller_id ==1){
                $orderManageRepo = new OrderManageRepository();
                $orderManageRepo->orderConfirm($order->order_id);
            }
            $syncController = new OrderSyncWithCarrierController();
            $syncController->OrderSyncWithCarrier($order);
            //end shipping carrier

            return true;
        }

    }


    public function findOrderByTrackingId($trackingId)
    {
        return OrderPackageDetail::with(['shipping'])->where('carrier_order_id',$trackingId)->first();
    }

    public function updateCarrierOrder($id)
    {
        $order = $this->order($id);
        if($order->carrier->slug == 'Shiprocket' && $order->carrier->status ==1){
            $shipRocketRepo = new ShipRocketRepository();
            $res = $shipRocketRepo->tracking($order->carrier_order_id);
            return $res['status'];
        }else{
            return 'failed';
        }

    }

    public function updatePackaging(array $data)
    {
        return OrderPackageDetail::where('id',$data['id'])->update([
            'weight'=>$data['weight'],
            'length'=>$data['length'],
            'breadth'=>$data['breadth'],
            'height'=>$data['height'],
        ]);
    }

    public function updateCustomerAddress(array $data)
    {
        if(isset($data['customer_address_id'])){
            OrderAddressDetail::where('id', $data['customer_address_id'])->update([
                'shipping_name'=>$data['shipping_name'],
                'shipping_email'=>$data['shipping_email'],
                'shipping_phone'=>$data['shipping_phone'],
                'shipping_address'=>$data['shipping_address'],
                'shipping_postcode'=>$data['shipping_postcode'],
                'shipping_country_id'=>$data['shipping_country'],
                'shipping_state_id'=>$data['shipping_state'],
                'shipping_city_id'=>$data['shipping_city'],
                'billing_name'=>$data['billing_name'],
                'billing_email'=>$data['billing_email'],
                'billing_phone'=>$data['billing_phone'],
                'billing_address'=>$data['billing_address'],
                'billing_postcode'=>$data['billing_postcode'],
                'billing_country_id'=>$data['billing_country'],
                'billing_state_id'=>$data['billing_state'],
                'billing_city_id'=>$data['billing_city']
            ]);

        }

        if(isset($data['guest_address_id'])){
            GuestOrderDetail::where('id',$data['guest_address_id'])->update([
                'shipping_name'=>$data['shipping_name'],
                'shipping_email'=>$data['shipping_email'],
                'shipping_phone'=>$data['shipping_phone'],
                'shipping_address'=>$data['shipping_address'],
                'shipping_post_code'=>$data['shipping_postcode'],
                'shipping_country_id'=>$data['shipping_country'],
                'shipping_state_id'=>$data['shipping_state'],
                'shipping_city_id'=>$data['shipping_city'],
                'billing_name'=>$data['billing_name'],
                'billing_email'=>$data['billing_email'],
                'billing_phone'=>$data['billing_phone'],
                'billing_address'=>$data['billing_address'],
                'billing_post_code'=>$data['billing_postcode'],
                'billing_country_id'=>$data['billing_country'],
                'billing_state_id'=>$data['billing_state'],
                'billing_city_id'=>$data['billing_city'],
            ]);
        }
        return true;

    }
}