shell bypass 403

UnknownSec Shell

: /home/anyleson/public_html/app/Models/ [ drwxr-xr-x ]

name : Installment.php
<?php

namespace App\Models;

use App\User;
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;
use Astrotomic\Translatable\Translatable;
use Illuminate\Database\Eloquent\Model;

class Installment extends Model implements TranslatableContract
{
    use Translatable;

    protected $table = 'installments';
    public $timestamps = false;
    protected $guarded = ['id'];

    static $optionsExplodeKey = "8888";
    // Enums
    static $targetTypes = ['all', 'courses', 'store_products', 'bundles', 'meetings', 'registration_packages', 'subscription_packages'];
    static $courseTargets = ['all_courses', 'live_classes', 'video_courses', 'text_courses', 'specific_categories', 'specific_instructors', 'specific_courses'];
    static $productTargets = ['all_products', 'virtual_products', 'physical_products', 'specific_categories', 'specific_sellers', 'specific_products'];
    static $bundleTargets = ['all_bundles', 'specific_categories', 'specific_instructors', 'specific_bundles'];
    static $meetingTargets = ['all_meetings', 'specific_instructors'];
    static $subscriptionTargets = ['all_packages', 'specific_packages'];
    static $registrationPackagesTargets = ['all_packages', 'specific_packages'];


    public $translatedAttributes = ['title', 'main_title', 'description', 'banner', 'options', 'verification_description', 'verification_banner', 'verification_video'];

    public function getTitleAttribute()
    {
        return getTranslateAttributeValue($this, 'title');
    }

    public function getMainTitleAttribute()
    {
        return getTranslateAttributeValue($this, 'main_title');
    }

    public function getDescriptionAttribute()
    {
        return getTranslateAttributeValue($this, 'description');
    }

    public function getBannerAttribute()
    {
        return getTranslateAttributeValue($this, 'banner');
    }

    public function getOptionsAttribute()
    {
        return getTranslateAttributeValue($this, 'options');
    }

    public function getVerificationDescriptionAttribute()
    {
        return getTranslateAttributeValue($this, 'verification_description');
    }

    public function getVerificationBannerAttribute()
    {
        return getTranslateAttributeValue($this, 'verification_banner');
    }

    public function getVerificationVideoAttribute()
    {
        return getTranslateAttributeValue($this, 'verification_video');
    }

    public function getUpfrontAttribute()
    {
        return $this->attributes['upfront'] + 0;
    }

    // #############
    // Relations
    // ############

    public function userGroups()
    {
        return $this->hasMany(InstallmentUserGroup::class, 'installment_id', 'id');
    }

    public function specificationItems() // used just in query
    {
        return $this->hasMany(InstallmentSpecificationItem::class, 'installment_id', 'id');
    }

    public function categories()
    {
        return $this->belongsToMany(Category::class, 'installment_specification_items', 'installment_id', 'category_id');
    }

    public function instructors()
    {
        return $this->belongsToMany(User::class, 'installment_specification_items', 'installment_id', 'instructor_id');
    }

    public function sellers()
    {
        return $this->belongsToMany(User::class, 'installment_specification_items', 'installment_id', 'seller_id');
    }

    public function webinars()
    {
        return $this->belongsToMany(Webinar::class, 'installment_specification_items', 'installment_id', 'webinar_id');
    }

    public function products()
    {
        return $this->belongsToMany(Product::class, 'installment_specification_items', 'installment_id', 'product_id');
    }

    public function bundles()
    {
        return $this->belongsToMany(Bundle::class, 'installment_specification_items', 'installment_id', 'bundle_id');
    }

    public function subscribes()
    {
        return $this->belongsToMany(Subscribe::class, 'installment_specification_items', 'installment_id', 'subscribe_id');
    }

    public function registrationPackages()
    {
        return $this->belongsToMany(RegistrationPackage::class, 'installment_specification_items', 'installment_id', 'registration_package_id');
    }

    public function steps()
    {
        return $this->hasMany(InstallmentStep::class, 'installment_id', 'id');
    }

    public function orders()
    {
        return $this->hasMany(InstallmentOrder::class, 'installment_id', 'id');
    }


    // #############
    // Helpers
    // ############

    public function reachedCapacityPercent()
    {
        $orders = InstallmentOrder::query()
            ->where('installment_id', $this->id)
            ->whereIn('status', ['open', 'pending_verification'])
            ->count();

        $percent = 0;

        if ($orders > 0 and $this->capacity > 0) {
            $percent = ($orders / $this->capacity) * 100;
        }

        return $percent;
    }

    public function hasCapacity()
    {
        $result = true;

        if (!empty($this->capacity)) {
            $orders = InstallmentOrder::query()
                ->where('installment_id', $this->id)
                ->whereIn('status', ['open', 'pending_verification'])
                ->count();

            if ($orders >= $this->capacity) {
                $result = false;
            }
        }

        return $result;
    }


    public function getUpfront($itemPrice = 1)
    {
        $result = 0;

        if (!empty($this->upfront) and $this->upfront > 0) {
            if ($this->upfront_type == 'percent') {
                $result = ($itemPrice * $this->upfront) / 100;
            } else {
                $result = $this->upfront;
            }
        }

        return $result;
    }

    public function totalPayments($itemPrice = 1, $withUpfront = true)
    {
        $total = 0;

        if (!empty($this->upfront) and $withUpfront) {
            if ($this->upfront_type == 'percent') {
                $total += ($itemPrice * $this->upfront) / 100;
            } else {
                $total += $this->upfront;
            }
        }

        foreach ($this->steps as $step) {
            $total += $step->getPrice($itemPrice);
        }

        return $total;
    }

    public function totalInterest($itemPrice = 1, $totalPayments = null)
    {
        if (empty($totalPayments)) {
            $totalPayments = $this->totalPayments($itemPrice);
        }

        $result = 0;
        $tmp = ($totalPayments - $itemPrice);

        if ($tmp > 0) {
            $tmp2 = ($tmp / $itemPrice) * 100;

            if ($tmp2 > 0) {
                $result = number_format($tmp2, 2);
            }
        }

        return $result;
    }

    public function needToVerify($user = null)
    {
        $result = false;

        if (empty($user)) {
            $user = auth()->user();
        }

        if ($this->verification) {
            $result = true;

            if (!empty($user) and $this->bypass_verification_for_verified_users and $user->installment_approval) {
                $result = false;
            }
        }

        return $result;
    }
}

© 2025 UnknownSec
Solar Energy Design Course From Zero To Hero | Anyleson - Learning Platform
INR (₹)
India Rupee
$
United States Dollar
Solar Energy Design Course From Zero To Hero

Solar Energy Design Course From Zero To Hero

in Science
5.00
(1 Ratings)
Created by Kate Williams

Share

Share course with your friends

Buy with points