public function columns() { return [['invoice_number', function ($model) { if (!Auth::user()->can('viewByOwner', [ENTITY_INVOICE, $model->invoice_user_id])) { return $model->invoice_number; } return link_to("invoices/{$model->invoice_public_id}/edit", $model->invoice_number, ['class' => Utils::getEntityRowClass($model)])->toHtml(); }], ['client_name', function ($model) { if (!Auth::user()->can('viewByOwner', [ENTITY_CLIENT, $model->client_user_id])) { return Utils::getClientDisplayName($model); } return $model->client_public_id ? link_to("clients/{$model->client_public_id}", Utils::getClientDisplayName($model))->toHtml() : ''; }, !$this->hideClient], ['transaction_reference', function ($model) { return $model->transaction_reference ? $model->transaction_reference : '<i>' . trans('texts.manual_entry') . '</i>'; }], ['payment_type', function ($model) { return $model->payment_type && !$model->last4 ? $model->payment_type : ($model->account_gateway_id ? $model->gateway_name : ''); }], ['payment_type_id', function ($model) { $code = str_replace(' ', '', strtolower($model->payment_type)); $card_type = trans('texts.card_' . $code); if ($model->payment_type_id != PAYMENT_TYPE_ACH) { if ($model->last4) { $expiration = Utils::fromSqlDate($model->expiration, false)->format('m/y'); return '<img height="22" src="' . URL::to('/images/credit_cards/' . $code . '.png') . '" alt="' . htmlentities($card_type) . '"> •••' . $model->last4 . ' ' . $expiration; } elseif ($model->email) { return $model->email; } } elseif ($model->last4) { if ($model->bank_name) { $bankName = $model->bank_name; } else { $bankData = PaymentMethod::lookupBankData($model->routing_number); if ($bankData) { $bankName = $bankData->name; } } if (!empty($bankName)) { return $bankName . ' •••' . $model->last4; } elseif ($model->last4) { return '<img height="22" src="' . URL::to('/images/credit_cards/ach.png') . '" alt="' . htmlentities($card_type) . '"> •••' . $model->last4; } } }], ['amount', function ($model) { return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); }], ['payment_date', function ($model) { if ($model->is_deleted) { return Utils::dateToString($model->payment_date); } else { return link_to("payments/{$model->public_id}/edit", Utils::dateToString($model->payment_date))->toHtml(); } }], ['payment_status_name', function ($model) { return self::getStatusLabel($model); }]]; }
/** * @param $routingNumber * @return \Illuminate\Http\JsonResponse */ public function getBankInfo($routingNumber) { if (strlen($routingNumber) != 9 || !preg_match('/\\d{9}/', $routingNumber)) { return response()->json(['message' => 'Invalid routing number'], 400); } $data = PaymentMethod::lookupBankData($routingNumber); if (is_string($data)) { return response()->json(['message' => $data], 500); } elseif (!empty($data)) { return response()->json($data); } return response()->json(['message' => 'Bank not found'], 404); }
/** * @return mixed|null|\stdClass|string */ public function getBankDataAttribute() { if (!$this->routing_number) { return null; } return PaymentMethod::lookupBankData($this->routing_number); }