IMMREX7

aku nok ndi : /home/spdtg/www/schoolmis/resources/views/schools/hrms/
File Up :
aku nok ndi : /home/spdtg/www/schoolmis/resources/views/schools/hrms/leave.blade.php

@extends('schools.school_layout')
@section('content')
<div class="row clearfix">
    <div class="col-sm-12">
        <div class="card">
            <div class="header">
                <h2><strong>Leave Master</strong></h2>
            </div>
            <div class="body">
                @if(isset($leave))
                {!! Form::model($leave, ['method' => 'PATCH', 'action' => ['School\LeaveController@update', $leave->idLeave], 'class' => 'form-horizontal','files'=>true]) !!}
                @else
                {!! Form::open(['url' => 'school/leaves', 'class' => 'form-horizontal','id'=>'form','files'=>true]) !!}
                @endif
                <div class="row clearfix">
                    <div class="col-sm-2 form-control-label required">
                        <label for="classname">Department</label>
                    </div>
                    <div class="col-sm-3">
                        <div class="form-group">
                            {!! Form::select('idDepartment',$departments,null,['class' => 'form-control show-tick ms select2']) !!}
                            @if ($errors->has('idDepartment'))
                            <label id="minmaxlength-error" class="error" for="minmaxlength">
                                <strong>{{ $errors->first('idDepartment') }}</strong>
                            </label>
                            @endif
                            <span id='depterror'></span>
                        </div>
                    </div>
                    <div class="col-sm-2 form-control-label">
                        <label for="classname" class="required">Designation</label>
                    </div>
                    <div class="col-sm-3">
                        <div class="form-group">
                            @if(isset($leave))
                            {!! Form::select('idDesignation',$designations,null,['class' => 'form-control show-tick ms','id'=>'idDesignation']) !!}
                            @else
                            <div id="idDesignation" style="border:1px solid #ccc; width:200px; height: 110px; overflow-y: scroll;">
                                
                            </div>
                            @endif
                            @if ($errors->has('idDesignation'))
                            <label id="minmaxlength-error" class="error" for="minmaxlength">
                                <strong>{{ $errors->first('idDesignation') }}</strong>
                            </label>
                            @endif
                            <span id='desigerror'></span>
                        </div>
                    </div>
                </div>
                <div class="row clearfix">
                    <div class="col-sm-2 form-control-label">
                        <label for="classname">EC No.</label>
                    </div>
                    <div class="col-sm-3">
                        <div class="form-group">
                            @if(isset($leave))
                            {!! Form::select('idEmployee',$employees,null,['class' => 'form-control show-tick ms']) !!}
                            
                            @else
                            <span style="color:red; font-size: 12px;">Please don't select this list if you want to assign a shift on whole department or designation.</span>
                            <div id="idEmployee" style="border:1px solid #ccc; width:250px; height: 140px; overflow-y: scroll;">
                                
                            </div>
                            @if ($errors->has('ecNO'))
                            <label id="minmaxlength-error" class="error" for="minmaxlength">
                                <strong>{{ $errors->first('ecNO') }}</strong>
                            </label>
                            @endif
                            @endif
                        </div>
                    </div>
                    <div class="col-sm-2 form-control-label required">
                        <label for="classname">Paid Leave Days</label>
                    </div>
                    <div class="col-sm-3">
                        <div class="form-group">
                            {!! Form::text('paidLeaves',null,['class' => 'form-control','placeholder'=>'eg:2,5,10','minlength'=>'1','maxlength'=>'2','onkeypress'=>'return isNumber(event)']) !!}
                            @if ($errors->has('paidLeaves'))
                            <label id="minmaxlength-error" class="error" for="minmaxlength">
                                <strong>{{ $errors->first('paidLeaves') }}</strong>
                            </label>
                            @endif
                            <span id='leaveerror'></span>
                        </div>
                    </div>
                </div>
                <div class="row clearfix">
                    <div class="col-sm-2 form-control-label">
                        <label for="classname">Leave Type</label>
                    </div>
                    <div class="col-sm-3">
                        {!! Form::select('leaveType',['monthly' => 'Monthly','yearly' => 'Yearly'],null,['class' => 'form-control show-tick ms']) !!}
                    </div>

                    <div class="col-sm-2 form-control-label">
                        <label for="classname">Max Allowed Per Month</label>
                    </div>
                    <div class="col-sm-3">
                        {!! Form::number('max_allowed',null,['class' => 'form-control']) !!}
                    </div>

                </div>
                <div class="row clearfix" style="margin-top:1rem;">
                    <div class="col-sm-2 form-control-label">
                        <label for="classname">Excluding Month</label>
                    </div>
                    <div class="col-sm-3">
                        @php $months = [];
                        if(isset($leave)){
                            if(isset($leave->exclude_month))
                            $months = \App\Month::whereIn('idMonth',json_decode($leave->exclude_month,true))->get()->pluck('idMonth')->toArray();
                        }@endphp
                        <select class="selectpicker form-control" multiple name="exclude_month[]"><option value="" disabled>--Select Month---</option><option value="1" @if(isset($leave))  @if(in_array("1", $months)) selected @endif @endif>January</option><option value="2" @if(isset($leave))  @if(in_array("2", $months)) selected @endif @endif>February</option><option value="3" @if(isset($leave))  @if(in_array("3", $months)) selected @endif @endif>March</option><option value="4" @if(isset($leave))  @if(in_array("4", $months)) selected @endif @endif>April</option><option value="5" @if(isset($leave))  @if(in_array("5", $months)) selected @endif @endif>May</option><option value="6" @if(isset($leave))  @if(in_array("6", $months)) selected @endif @endif>June</option><option value="7" @if(isset($leave))  @if(in_array("7", $months)) selected @endif @endif>July</option><option value="8" @if(isset($leave))  @if(in_array("8", $months)) selected @endif @endif>August</option><option value="9" @if(isset($leave))  @if(in_array("9", $months)) selected @endif @endif>September</option><option value="10" @if(isset($leave))  @if(in_array("10", $months)) selected @endif @endif>October</option><option value="11" @if(isset($leave))  @if(in_array("11", $months)) selected @endif @endif>November</option><option value="12" @if(isset($leave))  @if(in_array("12", $months)) selected @endif @endif>December</option></select>
                    </div>
                    <div class="col-sm-2 form-control-label">
                        <label for="classname">Mark Holiday On Leave, If</label>
                    </div>
                    <div class="col-sm-3">
                        <select class="selectpicker form-control" name="sandwich"><option value="0">--Select Pattern---</option><option value="1" @if(isset($leave))  @if($leave->sandwich == 1) selected @endif @endif>If Absent Before & After</option><option value="2" @if(isset($leave))  @if($leave->sandwich == 2) selected @endif @endif>If Absent Before/After</option></select>
                    </div>
                </div>
                <div class="row clearfix" style="margin-top:1rem;">
                    <div class="col-sm-2 form-control-label">
                        <label for="classname">Leave Allocated</label>
                    </div>
                    <div class="col-sm-6">
                    <input type="radio" id="auto" name="leave_allocation" value="A"  @if(isset($leave)) @if($leave->leave_allocation == 'A') checked @endif @endif>
                        <label for="auto">Auto</label><br>
                        <input type="radio" id="manual" name="leave_allocation" value="M" @if(isset($leave)) @if($leave->leave_allocation == 'M') checked @endif @endif>
                        <label for="manual">Manual</label><br>
                    </div>
                </div>
                <div class="row clearfix">
                    <div class="col-sm-8 offset-sm-2">
                        @if(isset($leave))
                        {!! Form::submit('UPDATE',['class' => 'btn btn-raised btn-primary btn-round waves-effect']) !!}
                        @else
                        {!! Form::submit('SAVE',['class' => 'btn btn-raised btn-primary btn-round waves-effect','id'=>'submit-btn']) !!}
                        @endif
                        {!! Form::close() !!} 
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="row clearfix">
    <div class="col-sm-12">
        <div class="card">
            <div class="header">
                <h2><strong>Leaves</strong></h2>
            </div>
            <div class="body table-responsive">
                {!! Form::open(['method' => 'GET',  'action' => ['School\LeaveController@index'], 'class' => 'form-horizontal']) !!}
                <div class="row clearfix">
                    <div class="col-sm-2"></div>
                    <div class="col-sm-2 form-control-label">
                        <label for="classname">Financial Year</label>
                    </div>
                    <div class="col-sm-3">
                        <div class="form-group">
                           {!! Form::select('idFinancialYear',fys(),null,['class' => 'form-control show-tick ms']) !!}
                        </div>
                    </div>
                    <div class="col-sm-2">
                        {!! Form::submit('Search',['class' => 'btn btn-raised btn-primary btn-round waves-effect']) !!}
                    </div>
                </div>
                {!! Form::close() !!} 
            <br>
                <table class="table table-bordered table-striped table-hover js-basic-example dataTable">
                    <thead>
                        <tr>
                            <th>S. No.</th>
                            <th>Department</th>
                            <th>Designation</th>
                            <th>Ec No.</th>
                            <th>Paid Leave Days</th>
                            <th>Leave Type</th>
                            <th>Max Allowed</th>
                            <th>Excluding (Month)</th>
                            <th>Policy</th>
                            <th>Action</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php $i = 1; ?>
                        @foreach($leaves as $value)
                        <tr>
                            <th scope="row">{{$i}}</th>
                            @if(isset($value->department))
                            <td>{{$value->department->departmentName}}</td>
                            @else<td></td>
                            @endif
                            @if(isset($value->designation))
                            <td>{{$value->designation->designationName}}</td>
                            @else<td></td>
                            @endif
                            <td>{{$value->employee->enrollmentNo or ''}}</td>
                            <td>{{$value->paidLeaves}}</td>
                            @if(isset($value->leaveType))
                            <td>{{strtoupper($value->leaveType)}}</td>
                            @else<td></td>
                            @endif
                            <td>@if($value->max_allowed > 0){{$value->max_allowed}} @else Not Applicable @endif</td>
                            @if(isset($value->exclude_month))
                            @php 
                                $month = \App\Month::whereIn('idMonth',json_decode($value->exclude_month,true))->get();
                            @endphp
                            <td>
                                @foreach ( $month as $var)
                                {{$var->monthName}}, 
                                @endforeach
                            
                            </td>
                            @else<td>Not Applicable</td>
                            @endif
                            <td> Mark Holiday On Leave, If : @if($value->sandwich == 0) Not Applicable @else @if($value->sandwich == 1) If Absent Befor & After @else If Absent Before/After @endif @endif<br>
                            Leave Allocated : @if($value->leave_allocation == 'N') Not Applicable @else @if($value->leave_allocation == 'A') Auto @else Manual @endif @endif
                            </td>
                            <td>
                                <a href="{{ url('school/leaves/' . $value->idLeave . '/edit') }}"  class="btn btn-raised btn-info waves-effect btn-round">Edit </a>
                                <button class="btn btn-raised btn-danger waves-effect btn-round js-sweetalert" data-id="{{$value->idLeave}}" data-type="confirm">DELETE</button>
                            </td>
                        </tr>
                        <?php $i++; ?>
                        @endforeach
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>
@stop
@section('script')
<script>
    // Delete Feehead
$(document).on('click', '.js-sweetalert', function (e) {
    $.ajaxSetup({
        headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    e.preventDefault();
    var id = $(this).data('id');
    swal({
            title: "Are you sure?",
            text: "Are You sure you want to delete this Leave Master!",
            type: "warning",
            showCancelButton: true,
            confirmButtonColor: "#DD6B55",
            confirmButtonText: "Yes, delete it!",
            closeOnConfirm: true
        },
        function() {
         //   console.log('here');
            $.ajax({
                type: "DELETE",
                url: "{{url('/school/leaves/')}}" +"/"+id,
                data: {id:id}
                       
            })
            .done(function(data) {
                swal({
                    title: "Deleted", 
                    text: "Leave Master has been successfully deleted", 
                    type: "success"
                },function() {
                    location.reload();
                });
            })
            .error(function(data) {
              swal("Oops", "We couldn't connect to the server!", "error");
            });
            return false;
    });
});

$(document).ready(function() {
    $('select[name="idDepartment"]').on('change', function() {
        var departmentID = $(this).val();
        if(departmentID) {
            $.ajax({
                url: "{{url('/school/departments') }}"+'/' +departmentID + "/designations",
                type: "GET",
                dataType: "json",
                success:function(data) {
                    $('#idDesignation').empty();
                    $('#idDesignation').append('<div class="checkbox-inline" style="padding-left:10px;padding-top:5px;"><label style="margin-right:42px;"><strong>Select All</label></strong><input type="checkbox" class="select-all" id="selectall"></div>');
                    $.each(data, function(key, value) {
                       $('#idDesignation').append('<div class="checkbox-inline" style="padding-left:10px;"><label style="margin-right:100px;">'+value+'</label><input type="checkbox" name="designations[]" value="'+key+'" class="designationclass"></div>');
                        
                    });
                }
            });
        }else{
            $('select[name="idDesignation"]').empty();
        }
    });
});
$(document).on('click', '.select-all', function(){
    var checkAll = this.checked;
        if(checkAll === true){
            $('input[type=checkbox]').each(function () {
                this.checked = checkAll;
            });
            var designationIds = [];
            $("input:checkbox[name='designations[]']:checked").each(function () {
                designationIds.push($(this).val());
            });
            if (designationIds.length > 0) {
                    $.ajax({
                        url: "{{url('/school/designations') }}"+'/' +designationIds + "/employees",
                        type: "GET",
                        dataType: "json",
                        success:function(data) {
                            $('#idEmployee').empty();
                            $('#idEmployee').append('<div class="checkbox-inline" style="padding-left:10px;padding-top:5px;"><label style="margin-right:42px;"><strong>Select All</label></strong><input type="checkbox" class="select-allstd" id="selectallstd"></div>');
                            $.each(data, function(key, value) {
                               $('#idEmployee').append('<div class="checkbox-inline" style="padding-left:10px;"><label style="margin-right:50px;">'+value+'</label><input type="checkbox" name="employees[]" value="'+key+'" class="empallselect"></div>');

                            });
                        }
                    });
                }
        }else{
            $('#idEmployee').empty();
            $('input[type=checkbox]').each(function () {
                this.checked = checkAll;
            });
        }
        
    
});
$(document).on('click', '.designationclass', function(){
    var designationIds = [];
        $("input:checkbox[name='designations[]']:checked").each(function () {
            designationIds.push($(this).val());
        });
        if (designationIds.length > 0) {
                $.ajax({
                        url: "{{url('/school/designations') }}"+'/' +designationIds + "/employees",
                        type: "GET",
                        dataType: "json",
                        success:function(data) {
                            $('#idEmployee').empty();
                            $('#idEmployee').append('<div class="checkbox-inline" style="padding-left:10px;padding-top:5px;"><label style="margin-right:42px;"><strong>Select All</label></strong><input type="checkbox" class="select-allstd" id="selectallstd"></div>');
                            $.each(data, function(key, value) {
                               $('#idEmployee').append('<div class="checkbox-inline" style="padding-left:10px;"><label style="margin-right:50px;">'+value+'</label><input type="checkbox" name="employees[]" value="'+key+'" class="empallselect"></div>');

                            });
                        }
                    });
            }else{
                $('#idEmployee').empty();
            }
});
$(document).on('click', '.select-allstd', function(){
    var checkAllstd = this.checked;
        if(checkAllstd === true){
            $("input:checkbox[name='employees[]']").each(function () {
               this.checked = checkAllstd;
           });
        }else{
            $('.empallselect').each(function () {
                this.checked = checkAllstd;
            });
        }
});
// Saving form data
$('#form').on('submit',function(e){
    $.ajaxSetup({
    header:$('meta[name="_token"]').attr('content')
});
 var formData =  new FormData($('#form')[0]);
 $("#submit-btn").prop('disabled', true);
    $.ajax({
        type:"POST",
        url: "{{url('school/leaves') }}",
        processData: false,
        contentType: false,
        data:formData,
        dataType: 'json',
        success:function(data){
            if( data[Object.keys(data)[0]] === 'SUCCESS' ){
                $("#submit-btn").prop('disabled', true);
                window.location = "{{url('school/leaves')}}";
            }
            else {                  //False Case: With error msg
            $("#msg").html(data);   //$msg is the id of empty msg
            }

        },

        error: function(data){
                    if( data.status === 422 ) {
                        $("#submit-btn").prop('disabled', false);
                        var errors = data.responseJSON.errors;
                        var errorHtml = '<div class="alert alert-danger"><ul>';
                           $('#formerrors').html(errorHtml);
                                if(errors['idDepartment']=== undefined){
                                    $( '#depterror' ).empty();
                                }else{
                                   errorname = '<span class="help-block"><strong>'+errors['idDepartment']+'</strong></span>';
                                   $( '#depterror' ).html( errorname );
                                }
                                if(errors['idDesignation']=== undefined){
                                    $( '#desigerror' ).empty();
                                }else{
                                   errorname = '<span class="help-block"><strong>'+errors['idDesignation']+'</strong></span>';
                                   $( '#desigerror' ).html( errorname );
                                }
                                if(errors['paidLeaves']=== undefined){
                                    $( '#leaveerror' ).empty();
                                }else{
                                   errorname = '<span class="help-block"><strong>'+errors['paidLeaves']+'</strong></span>';
                                   $( '#leaveerror' ).html( errorname );
                                }
                                
                    }
            }
    });
    return false;
});
</script>
@stop

Copyright © 2021 - 2025 IMMREX7