⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.77
Server IP:
13.127.59.50
Server:
Linux ip-172-31-46-210 5.15.0-1033-aws #37~20.04.1-Ubuntu SMP Fri Mar 17 11:39:30 UTC 2023 x86_64
Server Software:
Apache/2.4.41 (Ubuntu)
PHP Version:
7.4.3-4ubuntu2.29
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
ecommerce_pg
/
app
/
Http
/
Controllers
/
Admin
/
View File Name :
TransactionCrudController.php
<?php namespace App\Http\Controllers\Admin; use App\Http\Requests\TransactionRequest; use Backpack\CRUD\app\Http\Controllers\CrudController; use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD; use Illuminate\Http\Request; use App\Models\Transaction; use App\Models\ClientUser; /** * Class TransactionCrudController * @package App\Http\Controllers\Admin * @property-read \Backpack\CRUD\app\Library\CrudPanel\CrudPanel $crud */ class TransactionCrudController extends CrudController { use \Backpack\CRUD\app\Http\Controllers\Operations\ListOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation; /** * Configure the CrudPanel object. Apply settings to all operations. * * @return void */ public function setup() { CRUD::setModel(\App\Models\Transaction::class); CRUD::setRoute(config('backpack.base.route_prefix') . '/transaction'); CRUD::setEntityNameStrings('transaction', 'transactions'); CRUD::setListView('admin.transactions.list'); } /** * Define what happens when the List operation is loaded. * * @see https://backpackforlaravel.com/docs/crud-operation-list-entries * @return void */ protected function setupListOperation() { // CRUD::column('amount'); CRUD::addColumn([ 'name'=>'', 'label'=>'Name', 'type'=>'bank_details', 'key'=>'name' ]); CRUD::addColumn([ 'name'=>'', 'label'=>'Email', 'type'=>'bank_details', 'key'=>'email' ]); CRUD::addColumn([ 'name'=>'', 'label'=>'Phone', 'type'=>'bank_details', 'key'=>'phone' ]); // CRUD::column('back23'); // CRUD::column('email'); // CRUD::column('id'); // CRUD::column('name'); // CRUD::column('orderId'); // CRUD::column('orderId'); // CRUD::column('phone'); // CRUD::column('phone'); CRUD::addColumn([ 'name'=>'', 'label'=>'orderId', 'type'=>'bank_details', 'key'=>'orderId' ]); CRUD::addColumn([ 'name'=>'', 'label'=>'Amount', 'type'=>'bank_details', 'key'=>'amount' ]); CRUD::addColumn([ 'name'=>'', 'label'=>'productInfo', 'type'=>'bank_details', 'key'=>'productInfo' ]); CRUD::addColumn('gatewayId'); // CRUD::column('responseJson'); CRUD::addColumn([ 'name' => 'sent21', 'label' => 'Sent to Client', 'type' => 'select_from_array', 'options' => config('app.sent21') ]); CRUD::addColumn([ 'name' => 'status', 'label' => 'Status', 'type' => 'select_from_array', 'options' => config('app.status') ]); CRUD::addColumn([ 'name' => 'vpa', 'label' => 'VPA', ]); CRUD::addColumn([ 'name' => 'back23', 'label' => 'Callback Received', 'type' => 'select_from_array', 'options' => config('app.back23') ]); CRUD::addColumn([ 'name' => 'message', ]); CRUD::addColumn('created_at'); CRUD::addColumn('updated_at'); // CRUD::column('user_id'); $this->crud->removeAllButtons(); $this->crud->addFilter([ 'name' => 'gatewayId', 'type' => 'select2', 'label' => 'gatewayId' ], function() { return \App\Models\Transaction::all()->pluck('gatewayId','gatewayId')->toArray(); }, function($value) { // if the filter is active $this->crud->addClause('where', 'gatewayId', $value); }); $this->crud->addFilter([ 'name' => 'status', 'type' => 'select2', 'label' => 'Status' ], function () { return config('app.status'); }, function ($value) { // if the filter is active $this->crud->addClause('where', 'status', $value); }); $this->crud->addFilter([ 'name' => 'sent21', 'type' => 'select2', 'label' => 'Sent To Client' ], function () { return [ 0=>'No', 1=>'Yes',]; }, function ($value) { // if the filter is active if ($value==0) { $this->crud->addClause('where', 'sent21', $value)->orWhereNull('sent21'); }else{ $this->crud->addClause('where', 'sent21', $value); } }); $this->crud->addFilter([ 'name' => 'back23', 'type' => 'select2', 'label' => 'Callback Received' ], function () { return [ 0=>'No', 1=>'Yes', ]; }, function ($value) { // if the filter is active $this->crud->addClause('where', 'back23', $value); }); // daterange filter $this->crud->addFilter([ 'type' => 'date_range', 'name' => 'from_to', 'label' => 'Date range' ], false, function ($value) { // if the filter is active, apply these constraints $dates = json_decode($value); $this->crud->addClause('whereDate', 'created_at', '>=', $dates->from); $this->crud->addClause('whereDate', 'created_at', '<=', $dates->to . ' 23:59:59'); }); /** * Columns can be defined using the fluent syntax or array syntax: * - CRUD::column('price')->type('number'); * - CRUD::addColumn(['name' => 'price', 'type' => 'number']); */ } /** * Define what happens when the Create operation is loaded. * * @see https://backpackforlaravel.com/docs/crud-operation-create * @return void */ protected function setupCreateOperation() { CRUD::setValidation(TransactionRequest::class); /** * Fields can be defined using the fluent syntax or array syntax: * - CRUD::field('price')->type('number'); * - CRUD::addField(['name' => 'price', 'type' => 'number'])); */ } /** * Define what happens when the Update operation is loaded. * * @see https://backpackforlaravel.com/docs/crud-operation-update * @return void */ protected function setupUpdateOperation() { $this->setupCreateOperation(); } public function getTxnStatusSummary(Request $request) { $from = $to = null; if ($request && $request->has('from_to')) { $from = json_decode($request['from_to'],true)['from']; $to = json_decode($request['from_to'],true)['to']; } $q = \DB::table('transactions'); if ($from) { $q->where('created_at','>=',$from); } if ($to) { $q->where('created_at','<=',$to); } if (isset($request->user_id) && $request->user_id) { $q->where('user_id',$request->user_id); } if (isset($request->gatewayId) && $request->gatewayId) { $q->where('gatewayId',$request->gatewayId); } if (isset($request->status) && $request->status) { $q->where('status',$request->status); } if (isset($request->sent21) && $request->sent21) { $q->where('sent21',$request->sent21); } if (isset($request->back23) && $request->back23) { $q->where('back23',$request->back23); } $q->groupBy('status'); $q->select( 'status as status', \DB::raw('SUM(amount) as TotalAmount') ); $results = $q->get(); $summary = []; foreach($results as $key => $item) { array_push($summary,[ 'status' => $item->status, 'statusText' => config('app.status')[$item->status], 'total' => round($item->TotalAmount,2) ]); } $data['summary'] = $summary; $data['total_rows'] = \DB::table('transactions')->count(); return $data; } }