diff --git a/app/Filters/PaymentFilters.php b/app/Filters/PaymentFilters.php
index 4b9c80269056..e69b0c4a7d8f 100644
--- a/app/Filters/PaymentFilters.php
+++ b/app/Filters/PaymentFilters.php
@@ -13,6 +13,7 @@ namespace App\Filters;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
+use Illuminate\Support\Facades\Log;
/**
* PaymentFilters
@@ -30,7 +31,8 @@ class PaymentFilters extends QueryFilters
*
*/
public function filter(string $filter = '') : Builder
- {
+ {Log::error('ewwo');
+ Log::error($filter);
if(strlen($filter) == 0)
return $this->builder;
diff --git a/app/Http/Controllers/ClientPortal/PaymentController.php b/app/Http/Controllers/ClientPortal/PaymentController.php
index 28142ce5565d..2f2779ad9887 100644
--- a/app/Http/Controllers/ClientPortal/PaymentController.php
+++ b/app/Http/Controllers/ClientPortal/PaymentController.php
@@ -39,19 +39,19 @@ class PaymentController extends Controller
*/
public function index(PaymentFilters $filters, Builder $builder)
{
- $payments = Payment::filter($filters);
-
+ //$payments = Payment::filter($filters);
+ $payments = Payment::all();
if (request()->ajax()) {
return DataTables::of($payments)->addColumn('action', function ($payment) {
return ''.ctrans('texts.view').'';
})->editColumn('payment_type_id', function ($payment) {
- return Payment::typeForKey($payment->payment_type_id);
+ return $payment->type->name;
})
->editColumn('status_id', function ($payment){
- return Payment::badgeForStatus($invoice->status);
+ return Payment::badgeForStatus($payment->status_id);
})
- ->rawColumns(['action', 'status_id'])
+ ->rawColumns(['action', 'status_id','payment_type_id'])
->make(true);
}
diff --git a/app/Models/Payment.php b/app/Models/Payment.php
index 577493869e83..8369530506c9 100644
--- a/app/Models/Payment.php
+++ b/app/Models/Payment.php
@@ -11,6 +11,7 @@
namespace App\Models;
+use App\Models\BaseModel;
use App\Models\Filterable;
use App\Utils\Traits\MakesHash;
use Illuminate\Database\Eloquent\Model;
@@ -27,6 +28,21 @@ class Payment extends BaseModel
const STATUS_PARTIALLY_REFUNDED = 5;
const STATUS_REFUNDED = 6;
+ const TYPE_CREDIT_CARD = 1;
+ const TYPE_BANK_TRANSFER = 2;
+ const TYPE_PAYPAL = 3;
+ const TYPE_BITCOIN = 4;
+ const TYPE_DWOLLA = 5;
+ const TYPE_CUSTOM1 = 6;
+ const TYPE_ALIPAY = 7;
+ const TYPE_SOFORT = 8;
+ const TYPE_SEPA = 9;
+ const TYPE_GOCARDLESS = 10;
+ const TYPE_APPLE_PAY = 11;
+ const TYPE_CUSTOM2 = 12;
+ const TYPE_CUSTOM3 = 13;
+ const TYPE_TOKEN = 'token';
+
protected $fillable = [
'client_id',
'payment_type_id',
@@ -65,18 +81,32 @@ class Payment extends BaseModel
return $this->morphMany(CompanyLedger::class, 'company_ledgerable');
}
- public static function typeForId(int $payment_type_id)
+ public function type()
{
-
+ return $this->hasOne(PaymentType::class,'id','payment_type_id');
}
public static function badgeForStatus(int $status)
{
switch ($status) {
- case 'value':
- # code...
+ case self::STATUS_PENDING:
+ return '
'.ctrans('texts.payment_status_1').'
';
break;
-
+ case self::STATUS_VOIDED:
+ return ''.ctrans('texts.payment_status_2').'
';
+ break;
+ case self::STATUS_FAILED:
+ return ''.ctrans('texts.payment_status_3').'
';
+ break;
+ case self::STATUS_COMPLETED:
+ return ''.ctrans('texts.payment_status_4').'
';
+ break;
+ case self::STATUS_PARTIALLY_REFUNDED:
+ return ''.ctrans('texts.payment_status_5').'
';
+ break;
+ case self::STATUS_REFUNDED:
+ return ''.ctrans('texts.payment_status_6').'
';
+ break;
default:
# code...
break;
diff --git a/database/factories/PaymentFactory.php b/database/factories/PaymentFactory.php
index 8cceae8779cc..d42007047be2 100644
--- a/database/factories/PaymentFactory.php
+++ b/database/factories/PaymentFactory.php
@@ -2,6 +2,7 @@
use App\DataMapper\ClientSettings;
use App\DataMapper\CompanySettings;
+use App\Models\Payment;
use Faker\Generator as Faker;
$factory->define(App\Models\Payment::class, function (Faker $faker) {
@@ -10,6 +11,8 @@ $factory->define(App\Models\Payment::class, function (Faker $faker) {
'amount' => $faker->numberBetween(1,10),
'payment_date' => $faker->date(),
'transaction_reference' => $faker->text(10),
+ 'payment_type_id' => Payment::TYPE_CREDIT_CARD,
+ 'status_id' => Payment::STATUS_COMPLETED
];
});
diff --git a/database/seeds/RandomDataSeeder.php b/database/seeds/RandomDataSeeder.php
index 2b751688c4f7..e7814791e079 100644
--- a/database/seeds/RandomDataSeeder.php
+++ b/database/seeds/RandomDataSeeder.php
@@ -101,6 +101,8 @@ class RandomDataSeeder extends Seeder
/** Recurring Invoice Factory */
factory(\App\Models\RecurringInvoice::class,20)->create(['user_id' => $user->id, 'company_id' => $company->id, 'client_id' => $client->id]);
+ factory(\App\Models\Payment::class,20)->create(['user_id' => $user->id, 'company_id' => $company->id, 'client_id' => $client->id]);
+
$clients = Client::all();
diff --git a/resources/views/portal/default/invoices/index.blade.php b/resources/views/portal/default/invoices/index.blade.php
index 6499e14b9378..3778a5cbe96c 100644
--- a/resources/views/portal/default/invoices/index.blade.php
+++ b/resources/views/portal/default/invoices/index.blade.php
@@ -117,12 +117,12 @@ $(function() {
columns: [
{data: 'checkbox', name: 'checkbox', title: '', searchable: false, orderable: false},
- {data: 'invoice_number', name: 'invoice_number', title: '{{trans('texts.invoice_number')}}', visible: true},
- {data: 'invoice_date', name: 'invoice_date', title: '{{trans('texts.invoice_date')}}', visible: true},
- {data: 'amount', name: 'amount', title: '{{trans('texts.total')}}', visible: true},
- {data: 'balance', name: 'balance', title: '{{trans('texts.balance')}}', visible: true},
- {data: 'due_date', name: 'due_date', title: '{{trans('texts.due_date')}}', visible: true},
- {data: 'status_id', name: 'status_id', title: '{{trans('texts.status')}}', visible: true},
+ {data: 'invoice_number', name: 'invoice_number', title: '{{ctrans('texts.invoice_number')}}', visible: true},
+ {data: 'invoice_date', name: 'invoice_date', title: '{{ctrans('texts.invoice_date')}}', visible: true},
+ {data: 'amount', name: 'amount', title: '{{ctrans('texts.total')}}', visible: true},
+ {data: 'balance', name: 'balance', title: '{{ctrans('texts.balance')}}', visible: true},
+ {data: 'due_date', name: 'due_date', title: '{{ctrans('texts.due_date')}}', visible: true},
+ {data: 'status_id', name: 'status_id', title: '{{ctrans('texts.status')}}', visible: true},
{data: 'action', name: 'action', title: '', searchable: false, orderable: false},
]
});
diff --git a/resources/views/portal/default/payments/index.blade.php b/resources/views/portal/default/payments/index.blade.php
index 9553efcc7e1b..129dff936214 100644
--- a/resources/views/portal/default/payments/index.blade.php
+++ b/resources/views/portal/default/payments/index.blade.php
@@ -54,7 +54,7 @@ $(function() {
zeroRecords: "{{ trans('texts.no_records_found') }}"
},
ajax: {
- url: '{!! route('client.recurring_invoices.index') !!}',
+ url: '{!! route('client.payments.index') !!}',
data: function(data) {
}
@@ -62,16 +62,16 @@ $(function() {
drawCallback: function(settings){
data = this.api().ajax.json().data;
-
+ console.log(data);
},
columns: [
- {data: 'payment_date', name: 'payment_date', title: '{{trans('texts.payment_date')}}', visible: true},
- {data: 'payment_type_id', name: 'payment_type_id', title: '{{trans('texts.payment_type_id')}}', visible: true},
- {data: 'amount', name: 'amount', title: '{{trans('texts.amount')}}', visible: true},
- {data: 'status_id', name: 'status_id', title: '{{trans('texts.status')}}', visible: true},
- {data: 'transaction_reference', name: 'transaction_reference', title: '{{trans('texts.transaction_reference')}}', visible: true},
- {data: 'action', name: 'action', title: '', searchable: false, orderable: false},
+ {data: 'payment_date', name: 'payment_date', title: '{{ctrans('texts.payment_date')}}', visible: true},
+ {data: 'payment_type_id', name: 'payment_type_id', title: '{{ctrans('texts.payment_type_id')}}', visible: true},
+ {data: 'amount', name: 'amount', title: '{{ctrans('texts.amount')}}', visible: true},
+ {data: 'transaction_reference', name: 'transaction_reference', title: '{{ctrans('texts.transaction_reference')}}', visible: true},
+ {data: 'status_id', name: 'status_id', title: '{{ctrans('texts.status')}}', visible: true},
+ {data: 'action', name: 'action', title: '', searchable: false, orderable: false}
]
});