CasperSecurity

Current Path : /var/www/hrms.uiet.co.in/app/Http/Livewire/Request/
Upload File :
Current File : /var/www/hrms.uiet.co.in/app/Http/Livewire/Request/EmployeeAssetRequestLivewire.php

<?php

namespace App\Http\Livewire\Request;

use App\Models\EmployeeAssetDetailRequest;
use App\Models\EmployeeAssetRequest;
use App\Models\InventoryCategory;
use App\Models\InventoryManage;
use App\Models\InventorySubCategory;
use App\Models\Role;
use App\Support\Collection;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
use Livewire\WithPagination;
use Spatie\Activitylog\Models\Activity;

class EmployeeAssetRequestLivewire extends Component
{
    use WithPagination;
    protected $paginationTheme = 'bootstrap';

    public $modelid;

    public $search=null;
    public $orderBy = 'id';
    public $perPage = 10;
    public $orderAsc = 'false';
    public $status=true;
    public $request_id,$request_date,$request_type,$request_description,$employee_id,$created_by;

    public $category_id,$sub_category_id,$inventory_id,$assetnames=[];

    public $newitemshow=false;
    public $activityarray=[];
//    public $allarray=[];


    public function cleanVars()
    {
        $this->modelid=null;
        $this->request_id=null;
        $this->request_date=null;
        $this->request_type=null;
        $this->request_description=null;
        $this->employee_id=null;
        $this->category_id=null;
        $this->sub_category_id=null;
        $this->inventory_id=null;
        $this->status=null;
    }

    //todo::Notifcation Of Success Or Error Message
    public $successcreatemsg="Your informations have been successfully saved!";
    public $successupdatemsg="Your changes have been successfully updated!";
    public $successdeletemsg="Your selected data has been successfully deleted!";
    public $errormsg="Oops !!! Something went wrong.";

    public function createsuccessmsg(){
        $this->dispatchBrowserEvent('showsuccessmsg', [
            'type' => 'success',
            'title'=>'DATA SAVED',
            'message' => $this->successcreatemsg,
        ]);
    }

    public function updatesuccessmsg(){
        $this->dispatchBrowserEvent('showsuccessmsg', [
            'type' => 'success',
            'title'=>'DATA UPDATED',
            'message' => $this->successupdatemsg,
        ]);
    }

    public function deletesuccessmsg(){
        $this->dispatchBrowserEvent('showsuccessmsg', [
            'type' => 'success',
            'title'=>'DATA DELETED',
            'message' => $this->successdeletemsg,
        ]);
    }

    public function errormsg(){
        $this->dispatchBrowserEvent('showsuccessmsg',[
            'type'=>'error',
            'title'=>'Sorry !!!',
            'message'=>$this->errormsg,
        ]);
    }

    public function commonmsg($type,$title,$msg){
        $this->dispatchBrowserEvent('showsuccessmsg', [
            'type' => $type,
            'title'=>$title,
            'message' => $msg,
        ]);
    }

   /* //todo:  Employee Asset Request  Create Rules
    protected $rules=[
        'request_id' => 'nullable',
        'request_date' => 'required|date',
        'request_type' => 'nullable',
        'request_description' => 'required|max:255',
        'employee_id' => 'required|numeric',
        'status' => 'nullable',
    ];

    //todo:  Employee Asset Request  Updated Rules
    protected $updaterules=[
        'request_id' => 'nullable',
        'request_date' => 'required|date',
        'request_type' => 'nullable',
        'request_description' => 'required|max:255',
        'employee_id' => 'required|numeric',
        'status' => 'nullable',
    ];*/

    //todo:  Employee Asset Request  Validation Messages
    protected $messages = [
        'request_date.required' => 'The Request Date field cannot be empty.',
        'request_description.required' => 'The Description field cannot be empty.',
        'status.required' => 'The status cannot be empty.',
    ];

    public function resetvalid()
    {
        $this->resetValidation();
    }

    public function updatingSearch()
    {
        $this->resetPage();
    }


    public function createclick()
    {
        $this->cleanVars();
        $this->resetValidation();
        $this->status = true;
        $this->allarray=[];
        $this->activityarray=[];
    }

    public function updateclick($id)
    {
        $this->inventory_id = null;
        $this->request_description = null;
        $this->category_id = null;
        $this->sub_category_id = null;
        $this->temproleids=[];
        $this->activityarray=[];
        $this->modelid = $id;
        $this->loadData($id);

    }

    public function loadData($id){
        $data = EmployeeAssetDetailRequest::where('asset_request_id',$id)->get();
//        dd($data);
        foreach($data as $key=>$dt){
            $employee = EmployeeAssetRequest::find($id);
            $role = InventoryManage::find($dt->inventory_id);
            $data[$key]['asset_name']= $role['asset_name'];
            $data[$key]['request_type'] = $employee['request_type'];
            $data[$key]['request_date']=$employee['request_date'];
            $data[$key]['request_id']=$employee['request_id'];
            //dd($data[$key]['request_type']);
        }
        if ($data) {
            $this->request_id = $data[0]['request_id'];
            $this->request_date = $data[0]['request_date'];
            $this->activityarray = $data;
            $this->role_data = $this->activityarray;
            // $this->notice_days = $data->notice_days;
//            foreach($this->activityarray as $key=> $activity){
//                $allarray[$key]=$activity['inventory_id'];
//            }
        }
        //dd($this->lat);
    }

    public function deleteclick($id)
    {
        $this->modelid = $id;
    }

    public function addactivity(){

        $match = false;
        $allarray=[];
        if($this->inventory_id != null){
            $asset_info = InventoryManage::find($this->inventory_id);
        }

        if(sizeof($this->activityarray)>0){
            foreach($this->activityarray as $key=> $activity){
                if($this->activityarray[$key]['inventory_id'] == $this->inventory_id){
                    $match = true;
                    break;
//                    $this->dispatchBrowserEvent('showsuccessmsg', [
//                        'type' => 'error',
//                        'message' => 'Sorry!!! asset name already exist!.',
//                    ]);

                }
            }
            if($match == true){
                $this->dispatchBrowserEvent('showsuccessmsg', [
                    'type' => 'error',
                    'message' => 'Sorry!!! asset name already exist!.',
                ]);
            }else{

                array_push($this->activityarray,[
                    'request_id'=>$this->request_id,
                    'request_type'=>$this->request_type,
                    'inventory_id'=>$this->inventory_id,
                    'asset_name' =>$asset_info['asset_name'],
                    'request_description'=>$this->request_description,
                    'status'=>1,
                ]);
            }
//            if(in_array($this->inventory_id,$this->activityarray)){
//                $this->dispatchBrowserEvent('showsuccessmsg', [
//                    'type' => 'error',
//                    'message' => 'Sorry!!! asset name already exist!.',
//                ]);
//            }else{
//                $allarray=[
//                    'request_id'=>$this->request_id,
//                    'request_type'=>$this->request_type,
//                    'inventory_id'=>$this->inventory_id,
//                    'asset_name' =>$asset_info['asset_name'],
//                    'request_description'=>$this->request_description,
//                    'status'=>1,
//                ];
//                array_push($this->activityarray,$allarray);
//            }

        }else{
            $allarray=[
                'request_id'=>$this->request_id,
                'request_type'=>$this->request_type,
                'inventory_id'=>$this->inventory_id,
                'asset_name' =>$asset_info['asset_name'],
                'request_description'=>$this->request_description,
                'status'=>1,
            ];
                array_push($this->activityarray,$allarray);
        }
        //$this->request_id = null;
        //$this->request_type = null;
        $this->inventory_id = null;
        $this->request_description = null;
        $this->category_id = null;
        $this->sub_category_id = null;


//        dd($this->activityarray);
//        $key = sizeof($this->allarray)+1;
////    $activity_arrays = [];
////dd($this->inventory_id);
//        if($this->inventory_id){
////            dd($this->activityarray);
//            $this->validate([
//                'inventory_id'=>'required',
//                'request_description'=>'required'
//            ]);
//
//            $this->allarray=[
//                'inventory_id'=>$this->inventory_id,
//                'request_description'=>$this->request_description,
//            ];
//            //dd($allarray);
//            array_push($this->activityarray,$this->allarray)
//            $count=0;
//            if(in_array($this->inventory_id,$this->activityarray)){
//                $count++;
//                $this->dispatchBrowserEvent('showsuccessmsg', [
//                    'type' => 'error',
//                    'message' => 'Sorry!!! asset name already exist!.',
//                ]);
//            }else {
//                //notfound
//                array_push($this->activityarray,$this->allarray);
//
//
//            }
//
//
//
////            dd($this->temproleids);
//            if($this->allarray){
//            //if($this->temproleids){
//
//                $temp_role = [];
//                foreach($this->allarray as $key=>$tmprole){
//                    //dd($key$tmprole);
//                    $role=InventoryManage::find($tmprole);
//                    //dd($role);
//                    $temp_role[$key]['inventory_id']=$role['id'];
//                    $temp_role[$key]['asset_name']=$role['asset_name'];
//                    $temp_role[$key]['request_description']=$this->request_description;
//
////dd($temp_role);
//                }
//                dd($temp_role);
//                $this->activityarray = $temp_role;
//
//                dd($this->activityarray);
//            }
//
//
//
//        }else{
//            $this->dispatchBrowserEvent('showsuccessmsg',[
//                'type'=>'error',
//                'message'=>'Sorry!!! Please Enter a valid asset name.',
//            ]);
//        }


    }
    /* modelData */


    public function updatedCategoryId($categoryid){
        if($categoryid){
            $this->subcategories=InventorySubCategory::where('category_id',$categoryid)->get();
            //dd($this->subcategories);
           // dd($this->activityarray);
        }
    }

    public function updatedSubCategoryId($subcategoryid){
        if($subcategoryid){
            //dd($subcategoryid);
            $this->assetnames=InventoryManage::where('sub_category_id',$subcategoryid)->get();
            //dd($this->assetnames);
        }
    }


    public function deleteactivity($key){

        unset($this->activityarray[$key]);
        //unset($this->allarray[$key]);
//        dd($this->activityarray);
        foreach($this->activityarray as $key=> $activity_array){
            $role=InventoryCategory::find($activity_array['inventory_id']);
            //$this->activityarray[$key]['display_name'] = $role['display_name'];
        }


    }

    public function submit()
    {
        // $validatedData = $this->validate($this->rules, $this->messages);

        $empAsset=EmployeeAssetRequest::create([
            'request_id'=>$this->request_id,
            'request_date'=>date("Y-m-d"),
            'request_type'=>$this->request_type,
            'employee_id'=>Auth::user()->id,
            'status'=>'1',

        ]);
        //dd($empAsset);
        if($empAsset){
            $empassetid=$empAsset['id'];
            //dd($empassetid);

            if(sizeof($this->activityarray)>0){
                foreach ($this->activityarray as $activity){
//dd($activity);
                    //dd($activity['request_description']);


                    $response=EmployeeAssetDetailRequest::create([
                        'asset_request_id'=>$empassetid,
                        'inventory_id'=>$activity['inventory_id'],
                        'request_description'=>$activity['request_description'],
                        'status'=>'1',
                        //'created_by'=>Auth::user()->id,
                    ]);



                }
                //dd($this->activityarray);
            }
        }

        if ($response) {
            $activity = Activity::all()->last();
                $activity->description;
                $activity->subject;
                $activity->changes;
            //session()->flash('success', $this->successmsg );
            $this->dispatchBrowserEvent('closemodal');
            $this->createsuccessmsg();
        } else {
            $this->dispatchBrowserEvent('closemodal');
            $this->errormsg();
        }

        //dd($validatedData);
    }

    public function update()
    {
        // $validatedData = $this->validate($this->rules, $this->messages);
        $emp_assetdetails = EmployeeAssetDetailRequest::where('asset_request_id', $this->modelid)->get();
        //dd($emp_assetdetails);
        foreach($emp_assetdetails as $emp){
            $emp->delete();
        }

        //dd($empcategory);

           //dd($this->activityarray);
        if(sizeof($this->activityarray)>0){
            foreach ($this->activityarray as $activity){

                $response=EmployeeAssetDetailRequest::create([
                    'asset_request_id'=>$this->modelid,
                    'inventory_id'=>$activity['inventory_id'],
                    'request_description'=>$activity['request_description'],
                    'status'=>'1',
                    //'created_by'=>Auth::user()->id,
                ]);

            }
            //dd($this->activityarray);
        }


        if ($emp_assetdetails) {
            $activity = Activity::all()->last();
                $activity->description;
                $activity->subject;
                $activity->changes;
            //session()->flash('success', $this->successmsg );
            $this->dispatchBrowserEvent('closemodal');
            $this->createsuccessmsg();
        } else {
            $this->dispatchBrowserEvent('closemodal');
            $this->errormsg();
        }

        //dd($validatedData);
    }

    public function delete(){
        $response=EmployeeAssetRequest::find($this->modelid);

        if($response->delete()) {
            $activity = Activity::all()->last();
                $activity->description;
                $activity->subject;
                $activity->changes;

            $this->cleanVars();
            //session()->flash('success', $this->successmsg );
            $this->dispatchBrowserEvent('closemodal');
            $this->deletesuccessmsg();
        }else{
            //session()->flash('error',$this->errormsg);
            $this->dispatchBrowserEvent('closemodal');
            $this->errormsg();
        }
    }

    //todo: Employee Asset Request Get All Data For Table
    public function read($search,$perPage,$orderBy,$orderAsc){
        $request=new Request();
        $request->search = $search;
        $request->orderBy = $orderBy;
        $request->orderAsc = $orderAsc;

        $response=EmployeeAssetRequest::search($search)
            ->orderBy($this->orderBy, $this->orderAsc ? 'asc' : 'desc')
            ->whereNull('deleted_at') //todo: Employee Asset Request Softdelete condition
            ->get();
        if($response) {
            return (new Collection($response))->paginate($perPage);
        }else{
            return (new Collection([]))->paginate($perPage);
        }
    }

    public function render()
    {
//        if($this->match == true){
//            $this->dispatchBrowserEvent('showsuccessmsg', [
//                'type' => 'error',
//                'message' => 'Sorry!!! asset name already exist!.',
//            ]);
//        }
        $datatables=new Collection();
        $this->created_by=Auth::user()->id;
        $datatables=$this->read($this->search,$this->perPage,$this->orderBy,$this->orderAsc);
        if($this->modelid == null) {
            $currentyr = date('Y');
            $assetid = sizeof($datatables) + 1;
            if ($assetid < 10) {
                $empno = "00" . $assetid;
            } else if ($assetid < 100) {
                $assetid = "0" . $assetid;
            } else {
                $assetid = $assetid;
            }
            $this->request_id = "RequestId/" . $currentyr . "/" . $assetid;
        }
        $categories=InventoryCategory::where('status',1)->get();
        $subcategories=InventorySubCategory::where('status',1)
            ->where('category_id',$this->category_id)
            ->get();

        return view('livewire.request.employee-asset-request-livewire',compact('datatables','categories','subcategories'));
    }
}
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY