HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/hrms-production/resources/views/components/pay-level-modal.blade.php
{{-- Add Pay Level --}}
<div class="modal fade" id="addPayLevel">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Add Pay Level</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <!-- Main content -->
                <form id="addPayLevelform">
                    <input type="hidden" name="_token" id="token_paylevel" value="{{ csrf_token() }}">
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group mb-">
                                  <label class="mb-0" for="Pay Scale">Pay Scale/Pay Commision <span class="text-danger">*</label></label>
                                  <select class="form-control form-control-sm select2" style="width: 100%;" aria-hidden="true" name="PayScaleId" id="PayScaleIdPayLevel" data-placeholder="Select PayScale" required>
                                  <option value="" disabled selected>Select PayScale</option>
                                </select>
                                </div>
                              </div>
                            <div class="col-md-6" id="PayBandIdPayLevel_field" style="display: none;">
                                <div class="form-group mb-">
                                  <label class="mb-0" for="PayBand">Pay Band <span class="text-danger">*</label></label>
                                  <select class="form-control form-control-sm select2" style="width: 100%;" aria-hidden="true" name="PayBandId" id="PayBandIdPayLevel" data-placeholder="Select Pay Band">
                                  <option value="" disabled selected>Select Pay Band</option>
                                </select>
                                </div>
                            </div>
                        
                            <div class="col-md-6" id="GradePayIdPayLevel_field" style="display: none;">
                                <div class="form-group mb-">
                                  <label class="mb-0" for="GradePay">GradePay <span class="text-danger">*</label></label>
                                  <select class="form-control form-control-sm select2" style="width: 100%;" aria-hidden="true" name="GradePayId" id="GradePayIdPayLevel" data-placeholder="Select GradePay">
                                  <option value="" disabled selected>Select GradePay</option>
                                </select>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="name">PayLevel Name <span class="text-danger">*</label>
                                    <input type="text" class="form-control form-control-sm" id="PayLevelName" name="PayLevelName" required>
                                </div>
                            </div>
                        </div>
                        <div class="row" id="AmountRange_field">
                            <div class="col-md-12">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="AmountRange">PayLevel Range <span class="text-danger">*</label>
                                    <input type="text" class="form-control form-control-sm" id="AmountRange" name="AmountRange">
                                </div>
                            </div>
                        </div>
                        <hr />
                        <div class="row">
                            <div class="col-12">
                                <div class="d-flex align-items-center justify-content-center">
                                    <button type="button" class="btn btn-sm btn-outline-secondary mx-1"
                                        data-dismiss="modal" aria-label="Close">Cancel</button>
                                    <button type="submit" id="btn-save-new-paylevel"
                                        class="btn btn-sm btn-outline-info mx-1">Save &amp; New</button>
                                    <button type="submit" id="btn-save-paylevel"
                                        class="btn btn-sm btn-info mx-1">Save</button>
                                </div>
                            </div>
                        </div>
                </form>
            </div>
        </div>
    </div>
    <!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->

{{-- Update Pay Level --}}
<div class="modal fade" id="updatePayLevel">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Pay Level <span id="PayLevelName" class="text-info"></span></h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <!-- Main content -->
                <form id="updatePayLevelform">
                    <input type="hidden" name="_token" id="token_paylevel_update" value="{{ csrf_token() }}">
                    <input type="hidden" id="PayLevelId" name="PayLevelId">
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-12">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="name">PayLevel Name<span class="text-danger">*</span></label>
                                    <input type="text" class="form-control form-control-sm"
                                        id="editPayLevelName" name="PayLevelName"
                                        onkeyup="checkDuplicatePayLevel(this);" required>
                                    <span id='editCheckPayLevel'></span>
                                </div>
                            </div>
                        </div>
                        <hr />
                        <div class="row">
                            <div class="col-12">
                                <div class="d-flex align-items-center justify-content-center">
                                    <button type="button" class="btn btn-sm btn-outline-secondary mx-1"
                                        data-dismiss="modal" aria-label="Close">Cancel</button>
                                    <button type="button" id="btn-update-paylevel" name="Update" value="Update"
                                        class="btn btn-sm btn-info mx-1" disabled>Update</button>
                                </div>
                            </div>
                        </div>
                </form>
            </div>
        </div>
    </div>
    <!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->

{{-- JS Start Here --}}
{{-- PayScale List / PayBand List --}}
<script>
    $(document).ready(function() {
        $.ajax({
          type: "GET",
          url: "{{ url('/payscale-list') }}",
          dataType: "json",
          success: function(response) {
            var json = response.PayScale;
            $.each(json, function(i, payscale) {
              $("#PayScaleIdPayLevel").append("<option value='" + payscale.PayScaleId + "'>" + payscale.PayScaleName + "</option>");
              $('#PayScaleIdPayLevel').trigger('change');
            });
          }
        });
    });
    $(document).ready(function() {
        $.ajax({
          type: "GET",
          url: "{{ url('/payband-list') }}",
          dataType: "json",
          success: function(response) {
            var json = response.PayBand;
            $.each(json, function(i, payband) {
              $("#PayBandIdPayLevel").append("<option value='" + payband.PayBandId + "'>" + payband.PayBandName + "</option>");
              $('#PayBandIdPayLevel').trigger('change');
            });
          }
        });
    });
</script>

{{-- Change Field based on payscale --}}
<script>
    $(document).ready(function() {
          $("#PayScaleIdPayLevel").change(function() {
              //alert($(this).val())
              if ($(this).val() == "l7Is9HD8Yr2nMQKmSwm189AEr3yawtvPrZrn4") { // 6th payscale
                  $("#PayBandIdPayLevel_field").css('display', 'block');
                  $("#PayBandIdPayLevel").prop('required', true);
                  $("#GradePayIdPayLevel_field").css('display', 'block');
                  $("#GradePayIdPayLevel").prop('required', true);
              } else {
                  $("#PayBandIdPayLevel_field").css('display', 'none');
                  $("#PayBandIdPayLevel").prop('required', false);
                  $("#GradePayIdPayLevel_field").css('display', 'none');
                  $("#GradePayIdPayLevel").prop('required', false);
              }
          });
      });
  </script>
{{-- Get GradePay select on PayBand --}}
<script>
    $('#PayBandIdPayLevel').on('select2:select', function (e) {
      //alert(e.params.data);
        var data = e.params.data;
        var PayBandId = data.id;
        getGradePayList(PayBandId);
    });
    function getGradePayList(PayBandId){
        var PayBandId = PayBandId;
        $('#GradePayIdPayLevel').empty();
            $.ajax({
            type: "GET",
            url: "{{ url('/') }}/get-gradepay-list/" +PayBandId,
            dataType: "json",
            success: function(response) {
                var json = response.GradePay;
                $.each(json, function(i, gradepay) {
                    $("#GradePayIdPayLevel").append("<option value='" + gradepay.GradePayId + "'>" + gradepay.GradePayName + "</option>");
                    $('#GradePayIdPayLevel').val(null).trigger('change');
                    
                });
            }
        });
    }
</script>

{{-- Check Availablity --}}
<script>
    function checkDuplicatePayLevel(element, id){
        var id = id;
        var PayLevel = $(element).val();
        if (PayLevel == "") {
            $('span#CheckPayLevel, #editCheckPayLevel').css("display", "none");
        } else {
            $('span#CheckPayLevel, #editCheckPayLevel').css("display", "block");
        }
        //alert (PayLevel);
        $.ajax({
            type: "GET",
            url: '{{ url("/") }}/check-pay-level/',
            data: {PayLevel:PayLevel, id:id},
            dataType: "json",
            success: function(res) {
                if(res.exists){
                    $('span#CheckPayLevel, span#editCheckPayLevel').html('<span class="text-danger">PayLevel name is already exist!</span>');
                    $('#btn-save-new-paylevel, #btn-save-paylevel, #btn-update-paylevel').attr('disabled', true);
                } else {
                    $('span#CheckPayLevel, span#editCheckPayLevel').html('<span class="text-success">PayLevel name is available!</span>');
                    $('#btn-save-new-paylevel, #btn-save-paylevel, #btn-update-paylevel').attr('disabled', false);
                }
            },
            error: function (jqXHR, exception) {
            }
        });
    }
</script>

{{-- Store Pay Level --}}
<script>
    var reload = 0;
    $(function () {
      $.validator.setDefaults({
        submitHandler: function () {
            savePayLevelRecord();
        }
      });
      // Reload page after data save 
      $('#btn-save-paylevel').click(function(){
        reload = 1;
      });

      // Validate Fields
      $('#addPayLevelform').validate({
        rules: {
            PayLevelName: {
            required: true,
            remote: {
                type: "POST",
                url:'{{ url("/") }}/check-duplicate-paylevel',
                data: {
                    PayLevelName: function() {
                    return $( "#PayLevelName" ).val();
                    },
                    PayScaleId: function() {
                        return $('#PayScaleIdPayLevel').find(":selected").val();
                    },
                    PayBandId: function() {
                        return $('#PayBandIdPayLevel').find(":selected").val();
                    },
                    GradePayId: function() {
                        return $('#GradePayIdPayLevel').find(":selected").val();
                    },
                    AmountRange: function() {
                        return $('#AmountRange').val();
                    },
                    '_token':$('meta[name="csrf-token"]').attr('content')
                    }
            },
          },
        },
        messages: {
          PayLevelName: {
            required: "Please enter the PayLevel name",
            remote: "The PayLevel already exists in the selected PayBand.",
          },
        },
        errorElement: 'span',
        errorPlacement: function (error, element) {
          error.addClass('invalid-feedback');
          element.closest('.form-group').append(error);
        },
        highlight: function (element, errorClass, validClass) {
          $(element).addClass('is-invalid');
        },
        unhighlight: function (element, errorClass, validClass) {
          $(element).removeClass('is-invalid');
        }
      });
    });
</script>

{{-- Save Data Function --}}
<script>
    function savePayLevelRecord() {
        event.preventDefault();
        $.ajax({
            type: "post",
            url: "{{ url('store-pay-level') }}",
            dataType: "json",
            data: $('form#addPayLevelform').serialize(),
            success: function(response) {
                const Toast = Swal.mixin({
                      toast: true,
                      position: 'top-end',
                      showConfirmButton: false,
                      timer: 2000,
                      timerProgressBar: true,
                      didOpen: (toast) => {
                        toast.addEventListener('mouseenter', Swal.stopTimer)
                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                      }
                    })
                    Toast.fire({
                      icon: 'success',
                      title: 'PayLevel added successfully!'
                    });
                    $('#PayScaleIdPayLevel').val(null).trigger('change');
                    $('#PayBandIdPayLevel').val(null).trigger('change');
                    $('#GradePayIdPayLevel').val(null).trigger('change');
                    $('form#addPayLevelform').each(function() {
                    this.reset();
                });
                $('span#CheckPayLevel').html('');

                if(reload)
                {
                    location.reload();
                }
            },
            error: function(response) {
                const Toast = Swal.mixin({
                      toast: true,
                      position: 'top-end',
                      showConfirmButton: false,
                      timer: 3000,
                      timerProgressBar: true,
                      didOpen: (toast) => {
                        toast.addEventListener('mouseenter', Swal.stopTimer)
                        toast.addEventListener('mouseleave', Swal.resumeTimer)
                      }
                    })
                    Toast.fire({
                      icon: 'error',
                      title: 'Sorry, Something went wrong!'
                    })
            }
        });
    }
</script>
{{-- Activate / De-Activate --}}
<script>
    // Activate
    function activatePayLevel(PayLevelId) {
        var PayLevelId = PayLevelId;
        Swal.fire({
            title: 'Activate PayLevel?',
            text: "Are you sure you want to activate PayLevel!",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, activate it!'
        }).then((result) => {
            if (result.isConfirmed) {
                $.ajax({
                    type: "get",
                    url: "{{ url('/') }}/change-status-pay-level/" + PayLevelId,
                    success: function(response) {
                        Swal.fire({
                            icon: 'success',
                            title: 'PayLevel has been activated!',
                            showConfirmButton: false,
                            timer: 1500
                        }).then(function() {
                            location.reload();
                        });
                    }
                });
            }
        });
    }
    // Deactivate
    function deactivatePayLevel(PayLevelId) {
        var PayLevelId = PayLevelId;
        Swal.fire({
            title: 'De-activate PayLevel?',
            text: "Are you sure you want to De-activate PayLevel!",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, De-activate it!'
        }).then((result) => {
            if (result.isConfirmed) {
                $.ajax({
                    type: "get",
                    url: "{{ url('/') }}/change-status-pay-level/" + PayLevelId,
                    success: function(response) {
                        Swal.fire({
                            icon: 'success',
                            title: 'PayLevel has been De-activated!',
                            showConfirmButton: false,
                            timer: 1500
                        }).then(function() {
                            location.reload();
                        });
                    }
                });
            }
        });
    }
</script>
{{-- Edit Pay Level --}}
<script>
    function editPayLevel(PayLevelId)
  {
      var PayLevelId = PayLevelId;
      $('#updatePayLevel').modal('show');
      $.ajax({
          type: "GET",
          url: "{{ url('/') }}/edit-pay-level/" +PayLevelId,
          success: function (response) {
              $('#editPayLevelName').val(response.PayLevel.PayLevelName);
              $('#PayLevelId').val(PayLevelId);
              $('span#PayLevelName').html('#' +response.PayLevel.PayLevelName);
          }
      });
  }
</script>

{{-- Update Pay Level --}}
<script>
    $("#btn-update-paylevel").click(function (event) {
    event.preventDefault();
    var Name = $("#editPayLevelName").val();
    if (Name == "") {
        Swal.fire({
            icon: "warning",
            title: "Name is required!",
            showConfirmButton: false,
            timer: 2000,
        });
    } else {
        $.ajax({
            type: "post",
            url: "{{ url('update-pay-level') }}",
            dataType: "json",
            data: $("form#updatePayLevelform").serialize(),
            success: function (response) {
                Swal.fire({
                    icon: "success",
                    title: "PayLevel has been updated!",
                    showConfirmButton: false,
                    timer: 2000,
                }).then(function () {
                    location.reload();
                });
            },
            error: function (response) {
                Swal.fire({
                    icon: "error",
                    title: "Some thing went wrong!",
                    showConfirmButton: false,
                    timer: 2000,
                });
            },
        });
    }
    });

</script>

{{-- Delete Pay Level --}}
<script>
    //Delete Pay Level
    function deletePayLevel(PayLevelId) {
    var PayLevelId = PayLevelId;
    $.ajax({
        type: "GET",
        url: "{{ url('/') }}/check-employee-pay-level/" +PayLevelId,
        success: function (response) {
            if (response.exists) {
                Swal.fire({
                    icon: "warning",
                    title: "Can't be deleted!",
                    text: "This PayLevel is associated with empolyee(s)!",
                    showConfirmButton: true,
                });
            } else {
                Swal.fire({
                    title: "Delete PayLevel?",
                    text: "Are you sure you want to delete this PayLevel?",
                    icon: "warning",
                    showCancelButton: true,
                    confirmButtonColor: "#3085d6",
                    cancelButtonColor: "#d33",
                    confirmButtonText: "Yes, delete it!",
                }).then((result) => {
                    if (result.isConfirmed) {
                        $.ajax({
                            type: "get",
                            url:
                                "{{ url('/') }}/delete-pay-level/" +
                                PayLevelId,
                            success: function (response) {
                                Swal.fire({
                                    icon: "success",
                                    title: "PayLevel has been deleted!",
                                    showConfirmButton: false,
                                    timer: 1500,
                                }).then(function () {
                                    location.reload();
                                });
                            },
                        });
                    }
                });
            }
        },
    });
    }

</script>