Sh3ll
OdayForums


Server : Apache
System : Linux 145.162.205.92.host.secureserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64
User : tradze ( 1001)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /home/tradze/www/app/Modules/Vouchers/Http/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/tradze/www/app/Modules/Vouchers/Http/Controllers/Admin/VouchersController.php
<?php
namespace App\Modules\Vouchers\Http\Controllers\Admin;

use App\Http\Controllers\AdminController;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Modules\Vouchers\Models\Voucher;
use App\Modules\Vouchers\Repositories\VoucherRepository;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Laracasts\Flash\Flash;
use Yajra\Datatables\Datatables;

class VouchersController extends AdminController
{

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index(Request $request)
    {
        //store filters to sessions
        if ($request->get('search')) {
            $request->session()->put('vouchers.codes.filters', $request->except(['_token', 'search']));
            return redirect(route('admin.vouchers.codes.index'));
        } elseif ($request->get('reset')) {
            $request->session()->forget('vouchers.codes.filters');
            return redirect(route('admin.vouchers.codes.index'));
        }


        $this->data['page_title'] = trans('vouchers::codes.page_title');
        $this->data['filters'] = $request->session()->get('vouchers.codes.filters');
        return view('vouchers::admin.codes_index', $this->data);
    }

    /**
     * Show a list of all companies
     *
     * @return mixed
     */
    public function data(Request $request)
    {
        //create object contact
        $obj = $this->getData($request);

        //create array with permissions access
        $this->data['can'] = [
            'show'   => $this->data['user']->roles->pluck('slug')[0] == 'developer',
            'delete' => $this->data['user']->roles->pluck('slug')[0] == 'developer',
        ];

        //return datatables data
        return Datatables::of($obj)
            ->addColumn('availability', function($o){
                $availability = Carbon::createFromFormat('Y-m-d H:i:s',$o->date_start)->format('d M Y').' - '.Carbon::createFromFormat('Y-m-d H:i:s',$o->date_end)->format('d M Y');
                return $availability;
            })
            ->addColumn('status', function($o){
                return $o->status['message'];
            })
            ->addColumn('remaining_value', function($o){
                $data = '';
                switch (class_basename($o->parentable()->withTrashed()->first())){
                    case 'VoucherOffer':
                        $string = $o->max_no_usage.' <i class="fa fa-paw"></i>';
                        $data = $this->text_right($string,false,false);
                        break;
                    case 'VoucherPackage':
                        $data = $this->text_right(number_format($o->value,2),true);
                        break;
                    default:
                        break;
                } //endswitch

                return $data;
            })
            ->addColumn('counter', function($o){
                return $this->text_right($o->counter,false,false);
            })

            ->addColumn('actions', function ($o) {
                $this->data['o']=$o;
                return view('vouchers::admin.codes_list_actions',$this->data)->render();
            })
            ->rawColumns([
                'remaining_value',
                'counter',
                'actions'
            ])
            ->removeColumn('id')
            ->removeColumn('updated_at')
            ->make(true);
    }

    /**
     * Get object entries
     * @param Request $request
     */
    protected function getData(Request $request)
    {
        $filters = $request->session()->get('vouchers.codes.filters');
        $obj = Voucher::query()
                        ->OfVoucherCode(isset($filters['search_voucher_code']) ? $filters['search_voucher_code'] : null)
                        ->OfEmail(isset($filters['search_voucher_email']) ? $filters['search_voucher_email'] : null)
                        ->orderBy('created_at','desc')
                        ->get();

        //return object
        return $obj;
    }

    /**
     * Voucher code details
     * @param Voucher $codes
     */
    public function show(Voucher $codes,$id)
    {
        $data =  Voucher::find($id);
        //create data array
        $this->data['obj'] = $data;
        $this->data['info'] = json_decode($data->user_info,true);

        //render page
        return view('vouchers::admin.codes_show', $this->data);
    }

    /**
     * Delete page
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function delete(Voucher $codes)
    {
        $this->data['obj'] = $codes;

        return view('vouchers::admin.codes_delete', $this->data);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function destroy(Voucher $codes)
    {
        $obj = $codes;
        //set object name
        $obj_name = $obj->name;

        //delete contact
        $obj->delete();

        //set success message
        Flash::info(trans('vouchers::codes.message_confirm_delete', ['name' => $obj->name]));

        //redirect to contacts list
        return redirect(route('admin.vouchers.codes.index'));
    }

    /**
     * Format text right
     * @param $string
     * @param bool $number
     * @return string
     */
    protected function text_right($string,$number=true,$has_ccy=true)
    {
        $value = $string;
        if ($number)
            $value = number_format($string,2,'.',',');
        if ($has_ccy)
            $value .= ' <i class="fa fa-gbp"></i>';


        return "<div class='text-right'>{$value}</div>";
    }

}

ZeroDay Forums Mini