CasperSecurity

Current Path : /var/www/orientalss.com/app/Http/Livewire/Hrms/
Upload File :
Current File : /var/www/orientalss.com/app/Http/Livewire/Hrms/LeaveRuleLivewire.php

<?php

namespace App\Http\Livewire\Hrms;

use Livewire\Component;
use App\Models\LeaveRule;
use App\Models\EmployeeType;
use App\Models\LeaveTypes;
use Livewire\WithPagination;

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

    public $search;
    public $perPage=10;
    public $orderBy='id';
    public $orderAsc='1';
    public $status;
    public $modelid;
    public $showmodal=false;

    public $leave_type_id,$leave_max_days_apply,$attendance_dependent,$attendance_days,$credit_no_days,$completion_month,$encashment_amt,$encashment_resign,$advance_leave,$half_day,$carry_forwarded,$max_days,$after_carry_forward_lapsed,$after_carry_forward_encash,$certificate_required,$certificate_required_days,$leave_employee_type_id,$leave_employee_gender,$created_by;
    public $credit_period=null;
    public $carry_forward_date=null;

    protected $listeners = ['delete'];

    //todo::Notifcation Of Success Or Error Message

    public $successmsg="The Leave Rule has been created successfully.";
    public $updatemsg="The Leave Rule has been updated successfully.";
    public $deletemsg="The Leave Rule has been deleted successfully.";
    public $duplicateerrormsg="Sorry !!!  has already exists in our database. Please Try Another Name";
    public $errormsg="Sorry !!! Something went wrong. Please Try Again.";

    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,
        ]);
    }

    // public function updatedCarryForwarded($value){
    //     dd($value);
    // }

    protected $rules=[
        'leave_type_id' => 'required|max:255',
        'leave_max_days_apply' => 'nullable',
        'attendance_dependent' => 'nullable',
        'attendance_days' => 'nullable',
        'credit_period' => 'nullable',
        'credit_no_days' => 'nullable',
        'completion_month' => 'nullable',
        'carry_forwarded' => 'nullable',
        'max_days' => 'nullable',
        'carry_forward_date' => 'nullable',
        'after_carry_forward_lapsed' => 'nullable',
        'after_carry_forward_encash' => 'nullable',
        'certificate_required' => 'nullable',
        'certificate_required_days' => 'nullable',
        'leave_employee_type_id' => 'nullable',
        'leave_employee_gender' => 'nullable',
        'encashment_amt' => 'nullable',
        'encashment_resign' => 'nullable',
        'advance_leave' => 'nullable',
        'half_day' => 'nullable',
        'status' => 'nullable',
    ];

    protected $updaterules=[
        'leave_type_id' => 'required|max:255',
        'leave_max_days_apply' => 'nullable',
        'attendance_dependent' => 'nullable',
        'attendance_days' => 'nullable',
        'credit_period' => 'nullable',
        'credit_no_days' => 'nullable',
        'completion_month' => 'nullable',
        'carry_forwarded' => 'nullable',
        'max_days' => 'nullable',
        'carry_forward_date' => 'nullable',
        'after_carry_forward_lapsed' => 'nullable',
        'after_carry_forward_encash' => 'nullable',
        'certificate_required' => 'nullable',
        'certificate_required_days' => 'nullable',
        'leave_employee_type_id' => 'nullable',
        'leave_employee_gender' => 'nullable',
        'encashment_amt' => 'nullable',
        'encashment_resign' => 'nullable',
        'advance_leave' => 'nullable',
        'half_day' => 'nullable',
        'status' => 'nullable',
    ];
    protected $messages = [
        'leave_type_id.required' => 'This field cannot be empty.',
        'leave_type_id.max' => 'This field is exceeding the limit.',
        'leave_max_days_apply.required' => 'This field cannot be empty.',
        'status.required' => 'This field cannot be empty.',
    ];

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

    public function showmodalclick(){
        $this->resetValidation();
        $this->showmodal=true;
    }

    public function closemodalclick(){
        $this->resetValidation();
        $this->showmodal=false;
        $this->cleanVar();
    }

    public function updateclick($id){
        $this->modelid=$id;
        $this->loadData($this->modelid);
        $this->showmodal=true;
    }

    public function deleteclick($id){
        $this->modelid=$id;
        $this->dispatchBrowserEvent('confirmdelete',[
            'message'=>'Are you sure want to delete this data ?',
            'funcname'=>'delete'
        ]);
    }


     public function updatdLeaveTypeId($value){
        $this->leave_type_id=$value;
     }

    public function cleanVar()
    {
        $this->modelid=null;
        $this->leave_type_id=null;
        $this->leave_max_days_apply=null;
        $this->attendance_dependent=null;
        $this->attendance_days=null;
        $this->credit_period=null;
        $this->credit_no_days=null;
        $this->completion_month=null;
        $this->carry_forwarded=null;
        $this->max_days=null;
        $this->carry_forward_date=null;
        $this->after_carry_forward_lapsed=null;
        $this->after_carry_forward_encash=null;
        $this->certificate_required=null;
        $this->certificate_required_days=null;
        $this->leave_employee_type_id=null;
        $this->leave_employee_gender=null;
        $this->encashment_amt=null;
        $this->encashment_resign=null;
        $this->advance_leave=null;
        $this->half_day=null;
        $this->status=null;
    }

    public function loadData($id){
        $data=LeaveRule::find($id);
        if($data){
            $this->leave_type_id=$data['leave_type_id'];
            $this->leave_max_days_apply=$data['leave_max_days_apply'];
            $this->attendance_dependent=$data['attendance_dependent'];
            $this->attendance_days=$data['attendance_days'];
            $this->credit_period=$data['credit_period'];
            $this->credit_no_days=$data['credit_no_days'];
            $this->completion_month=$data['completion_month'];
            $this->carry_forwarded=$data['carry_forwarded'];
            $this->max_days=$data['max_days'];
            $this->carry_forward_date=$data['carry_forward_date'];
            $this->after_carry_forward_lapsed=$data['after_carry_forward_lapsed'];
            $this->after_carry_forward_encash=$data['after_carry_forward_encash'];
            $this->certificate_required=$data['certificate_required'];
            $this->certificate_required_days=$data['certificate_required_days'];
            $this->leave_employee_type_id=$data['leave_employee_type_id'];
            $this->leave_employee_gender=$data['leave_employee_gender'];
            $this->encashment_amt=$data['encashment_amt'];
            $this->encashment_resign=$data['encashment_resign'];
            $this->advance_leave=$data['advance_leave'];
            $this->half_day=$data['half_day'];
        }
    }


    /* modelData */
    public function setDataForPostPut(){

        // $attdetils=AttendanceRule::where('status',1)->first();
        //  if($attdetils){

        //     $workhours=Carbon::parse($attdetils->start_time)->diff(Carbon::parse($attdetils->end_time));
        //     //dd($workhours);
        //     $totalHours=$workhours->h;
        //     $totalMinutes=$workhours->i;
        //     $totalMinutesInHour=$totalMinutes/60;
        //     $totalTimeInHours=$totalHours+$totalMinutesInHour;
        //     //$monthly_workhour=$this->total_days*$totalTimeInHours;

        //    }

        if(!$this->credit_period){
            $this->credit_period=null;
        }
        if(!$this->carry_forward_date){
            $this->carry_forward_date=null;
        }

        if($this->status){

            return [
                'leave_type_id' => $this->leave_type_id,
                'leave_max_days_apply' => $this->leave_max_days_apply,
                'attendance_dependent' => $this->attendance_dependent,
                'attendance_days' => $this->attendance_days,
                'credit_period' => $this->credit_period,
                'credit_no_days' => $this->credit_no_days,
                'credit_no_hours' => null,
                'completion_month' => $this->completion_month,
                'carry_forwarded' => $this->carry_forwarded,
                'max_days' => $this->max_days,
                'carry_forward_date' => $this->carry_forward_date,
                'after_carry_forward_lapsed' => $this->after_carry_forward_lapsed,
                'after_carry_forward_encash' => $this->after_carry_forward_encash,
                'certificate_required' => $this->certificate_required,
                'certificate_required_days' => $this->certificate_required_days,
                'leave_employee_type_id' => $this->leave_employee_type_id,
                'leave_employee_gender' => $this->leave_employee_gender,
                'encashment_amt' => $this->encashment_amt,
                'encashment_resign' => $this->encashment_resign,
                'advance_leave' => $this->advance_leave,
                'half_day' => $this->half_day,
                'status' => $this->status,
                'created_by' => $this->created_by,
            ];
        }else{
            return [
                'leave_type_id' => $this->leave_type_id,
                'leave_max_days_apply' => $this->leave_max_days_apply,
                'attendance_dependent' => $this->attendance_dependent,
                'attendance_days' => $this->attendance_days,
                'credit_period' => $this->credit_period,
                'credit_no_days' => $this->credit_no_days,
                'credit_no_hours' => null,
                'completion_month' => $this->completion_month,
                'carry_forwarded' => $this->carry_forwarded,
                'max_days' => $this->max_days,
                'carry_forward_date' => $this->carry_forward_date,
                'after_carry_forward_lapsed' => $this->after_carry_forward_lapsed,
                'after_carry_forward_encash' => $this->after_carry_forward_encash,
                'certificate_required' => $this->certificate_required,
                'certificate_required_days' => $this->certificate_required_days,
                'leave_employee_type_id' => $this->leave_employee_type_id,
                'leave_employee_gender' => $this->leave_employee_gender,
                'encashment_amt' => $this->encashment_amt,
                'encashment_resign' => $this->encashment_resign,
                'advance_leave' => $this->advance_leave,
                'half_day' => $this->half_day,
                'created_by' => $this->created_by,
            ];
        }
    }

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

        $response=LeaveRule::create($this->setDataForPostPut());
        if($response) {
            $this->cleanVar();
            $this->dispatchBrowserEvent('closeOffCanvas');
            $this->dispatchBrowserEvent('showsuccessmsg',[
                'type'=>'success',
                'message'=>$this->successmsg
            ]);

        }else{
            $this->dispatchBrowserEvent('showsuccessmsg',[
                'type'=>'error',
                'message'=>$this->errormsg
            ]);
        }
    }


    public function update()
    {
        $validatedData = $this->validate($this->updaterules,$this->messages);
        $response=LeaveRule::find($this->modelid);
       $response->update($this->setDataForPostPut());
        if($response) {
            $this->leave_type_id=$response['leave_type_id'];
            $this->leave_max_days_apply=$response['leave_max_days_apply'];
            $this->attendance_dependent=$response['attendance_dependent'];
            $this->attendance_days=$response['attendance_days'];
            $this->credit_period=$response['credit_period'];
            $this->credit_no_days=$response['credit_no_days'];
            $this->completion_month=$response['completion_month'];
            $this->carry_forwarded=$response['carry_forwarded'];
            $this->max_days=$response['max_days'];
            $this->carry_forward_date=$response['carry_forward_date'];
            $this->after_carry_forward_lapsed=$response['after_carry_forward_lapsed'];
            $this->after_carry_forward_encash=$response['after_carry_forward_encash'];
            $this->certificate_required=$response['certificate_required'];
            $this->certificate_required_days=$response['certificate_required_days'];
            $this->leave_employee_type_id=$response['leave_employee_type_id'];
            $this->leave_employee_gender=$response['leave_employee_gender'];
            $this->encashment_amt=$response['encashment_amt'];
            $this->encashment_resign=$response['encashment_resign'];
            $this->advance_leave=$response['advance_leave'];
            $this->half_day=$response['half_day'];
            $this->status=$response['status'];

            $this->cleanVar();
            $this->dispatchBrowserEvent('closeOffCanvas');
            $this->dispatchBrowserEvent('showsuccessmsg',[
                'type'=>'success',
                'message'=>$this->updatemsg
            ]);
        }else{
            $this->dispatchBrowserEvent('showsuccessmsg',[
                'type'=>'error',
                'message'=>$this->errormsg
            ]);
        }
    }

    public function delete(){
        $response=LeaveRule::find($this->modelid);
        if($response){
            if($response->delete()){
                $this->cleanVar();
                $this->dispatchBrowserEvent('showsuccessmsg',[
                    'type'=>'success',
                    'message'=>$this->deletemsg
                ]);
            }else{
                $this->dispatchBrowserEvent('showsuccessmsg',[
                    'type'=>'error',
                    'message'=>$this->errormsg
                ]);
            }
        }
    }

    public function read(){
        $leave_rules=LeaveRule::search($this->search)
            ->orderBy($this->orderBy, $this->orderAsc ? 'asc' : 'desc')
            ->paginate($this->perPage);
        return $leave_rules;
    }

    public function render()
    {
        $datatable=$this->read();
        $leavetypes=LeaveTypes::where('status',1)->get();
        $employeetypes=EmployeeType::where('status',1)->get();
        return view('livewire.hrms.leave-rule-livewire',compact('datatable','leavetypes','employeetypes'));
    }
}
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