App\Ninja\Datatables\AccountGatewayDatatable::columns PHP Méthode

columns() public méthode

public columns ( )
    public function columns()
    {
        return [['name', function ($model) {
            if ($model->deleted_at) {
                return $model->name;
            } elseif ($model->gateway_id == GATEWAY_CUSTOM) {
                $accountGateway = $this->getAccountGateway($model->id);
                $name = $accountGateway->getConfigField('name') . ' [' . trans('texts.custom') . ']';
                return link_to("gateways/{$model->public_id}/edit", $name)->toHtml();
            } elseif ($model->gateway_id != GATEWAY_WEPAY) {
                return link_to("gateways/{$model->public_id}/edit", $model->name)->toHtml();
            } else {
                $accountGateway = $this->getAccountGateway($model->id);
                $config = $accountGateway->getConfig();
                $endpoint = WEPAY_ENVIRONMENT == WEPAY_STAGE ? 'https://stage.wepay.com/' : 'https://www.wepay.com/';
                $wepayAccountId = $config->accountId;
                $wepayState = isset($config->state) ? $config->state : null;
                $linkText = $model->name;
                $url = $endpoint . 'account/' . $wepayAccountId;
                $html = link_to($url, $linkText, ['target' => '_blank'])->toHtml();
                try {
                    if ($wepayState == 'action_required') {
                        $updateUri = $endpoint . 'api/account_update/' . $wepayAccountId . '?redirect_uri=' . urlencode(URL::to('gateways'));
                        $linkText .= ' <span style="color:#d9534f">(' . trans('texts.action_required') . ')</span>';
                        $url = $updateUri;
                        $html = "<a href=\"{$url}\">{$linkText}</a>";
                        $model->setupUrl = $url;
                    } elseif ($wepayState == 'pending') {
                        $linkText .= ' (' . trans('texts.resend_confirmation_email') . ')';
                        $model->resendConfirmationUrl = $url = URL::to("gateways/{$accountGateway->public_id}/resend_confirmation");
                        $html = link_to($url, $linkText)->toHtml();
                    }
                } catch (\WePayException $ex) {
                }
                return $html;
            }
        }], ['limit', function ($model) {
            if ($model->gateway_id == GATEWAY_CUSTOM) {
                $gatewayTypes = [GATEWAY_TYPE_CUSTOM];
            } else {
                $accountGateway = $this->getAccountGateway($model->id);
                $paymentDriver = $accountGateway->paymentDriver();
                $gatewayTypes = $paymentDriver->gatewayTypes();
                $gatewayTypes = array_diff($gatewayTypes, array(GATEWAY_TYPE_TOKEN));
            }
            $html = '';
            foreach ($gatewayTypes as $gatewayTypeId) {
                $accountGatewaySettings = AccountGatewaySettings::scope()->where('account_gateway_settings.gateway_type_id', '=', $gatewayTypeId)->first();
                $gatewayType = GatewayType::find($gatewayTypeId);
                if (count($gatewayTypes) > 1) {
                    if ($html) {
                        $html .= '<br>';
                    }
                    $html .= $gatewayType->name . ' &mdash; ';
                }
                if ($accountGatewaySettings && $accountGatewaySettings->min_limit !== null && $accountGatewaySettings->max_limit !== null) {
                    $html .= Utils::formatMoney($accountGatewaySettings->min_limit) . ' - ' . Utils::formatMoney($accountGatewaySettings->max_limit);
                } elseif ($accountGatewaySettings && $accountGatewaySettings->min_limit !== null) {
                    $html .= trans('texts.min_limit', array('min' => Utils::formatMoney($accountGatewaySettings->min_limit)));
                } elseif ($accountGatewaySettings && $accountGatewaySettings->max_limit !== null) {
                    $html .= trans('texts.max_limit', array('max' => Utils::formatMoney($accountGatewaySettings->max_limit)));
                } else {
                    $html .= trans('texts.no_limit');
                }
            }
            return $html;
        }]];
    }