Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/job-board.corals.io/Corals/modules/Marketplace/Policies/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/job-board.corals.io/Corals/modules/Marketplace/Policies/OrderPolicy.php
<?php

namespace Corals\Modules\Marketplace\Policies;

use Corals\Foundation\Policies\BasePolicy;
use Corals\Modules\Marketplace\Models\Order;
use Corals\User\Models\User;

class OrderPolicy extends BasePolicy
{
    protected $skippedAbilities = ['canDoPayout'];

    /**
     * @param User $user
     * @param Order $order
     * @return bool
     */
    public function refund(User $user, Order $order)
    {
        if ($user->cant('Marketplace::order.update_payment_details')) {
            return false;
        }

        $payment_status = $order->billing['payment_status'] ?? '';

        if ($payment_status && $payment_status != 'refunded' && $order->status != 'canceled') {
            return true;
        }

        return false;
    }

    public function canDoPayout(User $user, Order $order)
    {
        $store = $order->store;

        $billingDetails = $order->billing;

        $gateway = data_get($billingDetails, 'gateway');

        $paymentReference = data_get($order->billing, 'payment_reference');

        if (!$gateway || !$paymentReference) {
            return false;
        }

        $storeUser = $store->user;

        if (!$storeUser) {
            return false;
        }

        if ($storeUser->id != $user->id && !($user->hasPermissionTo($this->administrationPermission) || isSuperUser($user))) {
            return false;
        }

        $gatewayStatus = $storeUser->getGatewayStatus($gateway, 'AccountConnect', true)->first();

        if (!$gatewayStatus || $gatewayStatus->status !== 'PAYOUTS_ENABLED') {
            return false;
        }

        $invoice = $order->invoice;

        if (!$invoice) {
            return false;
        }

        $amount = $invoice->transactions()->where('status', '!=', 'cancelled')->sum('amount');

        if ($amount <= 0) {
            return false;
        }

        return true;
    }
}

Spamworldpro Mini