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/employee-probation-period-modal.blade.php
{{-- Clear / Revise Employee Probation Period --}}
<div class="modal fade" id="ProbationPeriodModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Employee Code <span id="EmployeeCode" 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="changeStatusProbationPeriodForm">
                    <input type="hidden" name="_token" id="token_probation_period" value="{{ csrf_token() }}">
                    <input type="hidden" id="ProbationPeriodId" name="ProbationPeriodId">
                    <div class="card-body">
                        <div class="row">
                            <div class="clearfix mb-4">
                                <div class="icheck-primary" id="ProbationPeriodClear_field">
                                    <input type="radio" name="ProbationPeriodClear" id="ProbationPeriodClear" readonly>
                                    <label class="mb-0" for="ProbationPeriodClear">Clear Probation Period</label>
                                </div>
                                <div class="icheck-primary" id="ProbationPeriodRevise_field">
                                    <input type="radio" name="ProbationPeriodRevise" id="ProbationPeriodRevise"
                                        readonly>
                                    <label class="mb-0" for="ProbationPeriodRevise">Revise Probation Period</label>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="OrderNo">Order No. <span
                                            class="text-danger">*</span></label>
                                    <input type="text" class="form-control form-control-sm" id="ProbationOrderNo"
                                        name="ProbationOrderNo">
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="date">Order Date <span class="text-danger">*</span></label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="ProbationOrderDate" name="ProbationOrderDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#ProbationOrderDate" placeholder="DD/MM/YYYY" required />
                                            <div class="input-group-append" data-target="#ProbationOrderDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="ProbationPeriodClearDate">Prob. Period Clear Date </label>
                                    <input type="text" class="form-control form-control-sm"
                                        id="ProbationPeriodClearDate" name="ProbationPeriodClearDate" readonly>
                                </div>
                            </div>
                            <div class="col-md-6" id="NextProbationClearDate_field">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="date" id="NextProbationPeriodClearDate">Next Clear
                                        Date<span class="text-danger">*</span></label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="NextProbationClearDate" name="NextProbationClearDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#NextProbationClearDate" placeholder="DD/MM/YYYY"
                                                required />
                                            <div class="input-group-append" data-target="#NextProbationClearDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="date" id="DateOfClear">Date of Clear<span
                                            class="text-danger">*</span></label>
                                    <label class="mb-0" for="date" id="DateOfRevise">Date of Revise<span
                                            class="text-danger">*</span></label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="ClearReviseDate" name="ClearReviseDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#ClearReviseDate" placeholder="DD/MM/YYYY" required />
                                            <div class="input-group-append" data-target="#ClearReviseDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-12">
                                <div class="form-group mb-0">
                                    <label for="ProbationPeriodCertificate" class="mb-0">Upload Order</label>
                                    <div class="input-group input-group-sm">
                                        <div class="custom-file">
                                            <input type="file" class="custom-file-input"
                                                name="ProbationPeriodCertificate" id="ProbationPeriodCertificate"
                                                accept="image/*, .pdf">
                                            <label class="custom-file-label" for="ProbationPeriodCertificate">Choose
                                                file</label>
                                        </div>
                                    </div>
                                </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-name" name="Save" value="Save"
                                        class="btn btn-sm btn-info mx-1">Save</button>
                                </div>
                            </div>
                        </div>
                </form>
            </div>
        </div>
    </div>
    <!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->

{{-- Edit Probation Period Modal --}}
<div class="modal fade" id="EditProbationPeriodModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Employee Code <span id="EditProbationPeriodEmployeeCodeClear"
                        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="EditProbationPeriodClearForm">
                    <input type="hidden" name="_token" id="token_probation_period_edit_clear"
                        value="{{ csrf_token() }}">
                    <input type="hidden" id="EditProbationPeriodIdClear" name="ProbationPeriodId">
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-12">
                                <div class="form-group">
                                    <div class="form-group clearfix">
                                        <label class="mb-0" for="date">Joining Time: </label>
                                        <div class="col-sm-12">
                                            <div class="icheck-primary d-inline">
                                                <input type="radio" id="forenoon" value="Forenoon" name="JoiningTime">
                                                <label class="mb-0" for="forenoon">Forenoon</label>
                                            </div>
                                            <div class="icheck-primary d-inline">
                                                <input type="radio" id="afternoon" value="Afternoon" name="JoiningTime">
                                                <label class="mb-0" for="afternoon">Afternoon</label>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="date">Joining Date <span
                                            class="text-danger">*</span></label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="EditProbationJoiningDate" name="ProbationJoiningDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#EditProbationJoiningDate" placeholder="DD/MM/YYYY"
                                                required />
                                            <div class="input-group-append" data-target="#EditProbationJoiningDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="ProbationPeriodClearDate">Prob. Period Clear Date </label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="EditProbationPeriodDate"
                                                name="ProbationPeriodClearDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#EditProbationPeriodDate" placeholder="DD/MM/YYYY"
                                                required />
                                            <div class="input-group-append" data-target="#EditProbationPeriodDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </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" name="Update" value="Update"
                                        class="btn btn-sm btn-info mx-1">Update</button>
                                </div>
                            </div>
                        </div>
                </form>
            </div>
        </div>
    </div>
    <!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->

{{-- Edit Clear / Revise Probation Period Modal --}}
<div class="modal fade" id="EditClearReviseProbationPeriodModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Employee Code <span id="EditProbationPeriodEmployeeCode"
                        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="updatedStatusProbationPeriodForm">
                    <input type="hidden" name="_token" id="token_probation_period_edit" value="{{ csrf_token() }}">
                    <input type="hidden" id="EditProbationPeriodId" name="ProbationPeriodId">
                    <div class="card-body">
                        <div class="row" id="checkbox_field">
                            <div class="clearfix mb-4">
                                <div class="icheck-primary" id="EditProbationPeriodClear_field">
                                    <input type="checkbox" name="EditProbationPeriodClear"
                                        id="EditProbationPeriodClear">
                                    <label class="mb-0" for="EditProbationPeriodClear">Clear Probation Period</label>
                                </div>
                                <div class="icheck-primary" id="EditProbationPeriodRevise_field">
                                    <input type="checkbox" name="EditProbationPeriodRevise"
                                        id="EditProbationPeriodRevise">
                                    <label class="mb-0" for="EditProbationPeriodRevise">Revise Probation Period</label>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="OrderNo">Order No. <span
                                            class="text-danger">*</span></label>
                                    <input type="text" class="form-control form-control-sm" id="EditProbationOrderNo"
                                        name="ProbationOrderNo">
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="date">Order Date <span class="text-danger">*</span></label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="EditProbationOrderDate" name="ProbationOrderDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#EditProbationOrderDate" placeholder="DD/MM/YYYY"
                                                required />
                                            <div class="input-group-append" data-target="#EditProbationOrderDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="ProbationPeriodClearDate">Prob. Period Clear Date </label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="EditProbationPeriodClearDate"
                                                name="ProbationPeriodClearDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#EditProbationPeriodClearDate" placeholder="DD/MM/YYYY"
                                                required />
                                            <div class="input-group-append" data-target="#EditProbationPeriodClearDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group mb-2">
                                    <label class="mb-0" for="date" id="EditDateOfClear">Date of Clear<span
                                            class="text-danger">*</span></label>
                                    <label class="mb-0" for="date" id="EditDateOfRevise">Date of Revise<span
                                            class="text-danger">*</span></label>
                                    <div class="form-group mb-2">
                                        <div class="input-group date" data-target-input="nearest">
                                            <input type="text" id="EditClearReviseDate" name="ClearReviseDate"
                                                class="form-control form-control-sm datetimepicker-input"
                                                data-target="#EditClearReviseDate" placeholder="DD/MM/YYYY" required />
                                            <div class="input-group-append" data-target="#EditClearReviseDate"
                                                data-toggle="datetimepicker">
                                                <div class="input-group-text"><i class="fa fa-calendar"></i>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-12">
                                <div class="form-group mb-0">
                                    <label for="ProbationPeriodCertificate" class="mb-0">Upload Order</label>
                                    <div class="input-group input-group-sm">
                                        <div class="custom-file">
                                            <input type="file" class="custom-file-input"
                                                name="ProbationPeriodCertificate" id="EditProbationPeriodCertificate"
                                                accept="image/*, .pdf">
                                            <label class="custom-file-label" for="ProbationPeriodCertificate">Choose
                                                file</label>
                                        </div>
                                    </div>
                                </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" name="Update" value="Update"
                                        class="btn btn-sm btn-info mx-1">Update</button>
                                </div>
                            </div>
                        </div>
                </form>
            </div>
        </div>
    </div>
    <!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->

{{-- JS Start Here --}}

{{-- Clear Employee Probation Period Modal --}}
<script>
    function clearProbationPeriod(ProbationPeriodId)
  {
      var ProbationPeriodId = ProbationPeriodId;
      $('#ProbationPeriodModal').modal('show');
      $.ajax({
          type: "POST",
          url: "{{ url('/') }}/edit-employee-probation-period",
          dataType: 'json',
          data: {
            ProbationPeriodId: ProbationPeriodId,
            _token: "{{ csrf_token() }}",
          },
          success: function (response) {
              $('#ProbationPeriodId').val(response.GetEmpProbationPeriod.ProbationPeriodId);
              $('span#EmployeeCode').html('#' +response.GetEmpProbationPeriod.EmployeeCode);
              //$('#ProbationPeriodClearDate').val(response.GetEmpProbationPeriod.ProbationPeriodClearDate);
              var ClearDate = new Date(response.GetEmpProbationPeriod.ProbationPeriodClearDate);
              $('#ProbationPeriodClearDate').val(((ClearDate.getDate() > 9) ? ClearDate.getDate() : ('0' + ClearDate.getDate())) + '/' + ((ClearDate.getMonth() > 8) ? (ClearDate.getMonth() + 1) : ('0' + (ClearDate.getMonth() + 1))) + '/' + ClearDate.getFullYear());
              
              $('#ClearReviseDate').val('');
              // Clear Checkbox
              $("#ProbationPeriodClear_field").css('display', 'block');
              $("#DateOfClear").css('display', 'block');
              $("input#ProbationPeriodClear").prop('checked', true);
              // Revise Checkbox
              $("#ProbationPeriodRevise_field").css('display', 'none');
              $("#NextProbationClearDate_field").css('display', 'none');
              $("#NextProbationClearDate").prop('required', false);
              $("#DateOfRevise").css('display', 'none');
              $("input#ProbationPeriodRevise").prop('checked', false);
          }
      });
  }
</script>

{{-- Revised Employee Probation Period Modal --}}
<script>
    function reviseProbationPeriod(ProbationPeriodId)
  {
      var ProbationPeriodId = ProbationPeriodId;
      $('#ProbationPeriodModal').modal('show');
      $.ajax({
          type: "POST",
          url: "{{ url('/') }}/edit-employee-probation-period",
          dataType: 'json',
          data: {
            ProbationPeriodId: ProbationPeriodId,
            _token: "{{ csrf_token() }}",
          },
          success: function (response) {
              $('#ProbationPeriodId').val(response.GetEmpProbationPeriod.ProbationPeriodId);
              $('#EmployeeCode').val(response.GetEmpProbationPeriod.EmployeeCode);
              $('span#EmployeeCode').html('#' +response.GetEmpProbationPeriod.EmployeeCode);

              var ClearDate = new Date(response.GetEmpProbationPeriod.ProbationPeriodClearDate);
              $('#ProbationPeriodClearDate').val(((ClearDate.getDate() > 9) ? ClearDate.getDate() : ('0' + ClearDate.getDate())) + '/' + ((ClearDate.getMonth() > 8) ? (ClearDate.getMonth() + 1) : ('0' + (ClearDate.getMonth() + 1))) + '/' + ClearDate.getFullYear());
              $('#ClearReviseDate').val('');
              // Clear Checkbox
              $("#ProbationPeriodClear_field").css('display', 'none');
              $("label#DateOfClear").css('display', 'none');
              $("#NextProbationClearDate_field").css('display', 'none');
              $("input#ProbationPeriodClear").prop('checked', false);
              // Revise Checkbox
              $("#ProbationPeriodRevise_field").css('display', 'block');
              $("#NextProbationClearDate_field").css('display', 'block');
              $("#NextProbationClearDate").prop('required', true);
              $("label#DateOfRevise").css('display', 'block');
              $("input#ProbationPeriodRevise").prop('checked', true);
          }
      });
  }
</script>

{{-- Validate form and Change Status Employee Probation Period --}}
<script>
    $(function () {
      $.validator.setDefaults({
        submitHandler: function () {
            event.preventDefault();
            // Get Form Data
        var token = $("#token_probation_period").val();
        var ProbationPeriodId = $("#ProbationPeriodId").val();
        var ProbationOrderNo = $('#ProbationOrderNo').val();
        var ProbationOrderDate = $('#ProbationOrderDate').val();
        var IsCleared = '';
        var IsRevised = '';
        if ($("input:radio[name=ProbationPeriodClear]").is(":checked"))
        {
            var IsCleared = '1';
            var IsRevised = '0';
        } else if($("input:radio[name=ProbationPeriodRevise]").is(":checked"))
        {
            var IsRevised = '1';
            var IsCleared = '0';
        }
        var ClearReviseDate = $('#ClearReviseDate').val();
        var NextProbationClearDate = $('#NextProbationClearDate').val();
        var ProbationPeriodCertificate = $('#ProbationPeriodCertificate')[0].files;
        
        var fd = new FormData();
            fd.append('_token',token);
            fd.append('ProbationPeriodId',ProbationPeriodId);
            fd.append('ProbationOrderNo',ProbationOrderNo);
            fd.append('OrderDate',ProbationOrderDate);
            fd.append('IsCleared',IsCleared);
            fd.append('IsRevised',IsRevised);
            fd.append('ClearAndReviseDate',ClearReviseDate);
            fd.append('NextProbationClearDate',NextProbationClearDate);
            // files data
            fd.append('ProbationPeriodCertificate',ProbationPeriodCertificate[0]);

        $.ajax({
                type: "post",
                url: "{{ url('change-status-employee-probation-period') }}",
                data: fd,
                contentType: false,
                processData: false,
                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: 'Employee Record updated successfully!'
                    });
                    setTimeout(function(){
                    window.location.reload(1);
                  }, 2000);
                },
                error: function(data) {
                  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: 'error',
                      title: 'Something went wrong!'
                    });
                }
            });
        }
      });
      $('#changeStatusProbationPeriodForm').validate({
        rules: {
            ProbationOrderNo: {
            required: true,
          },
          ProbationOrderDate: {
            required: true,
          },
          ClearProbationPeriodDate: {
            required: true,
          },
          ProbationPeriodCertificate: {
            //required: true,
            accept: "image/*, pdf",
          },
        },
        messages: {
            ProbationOrderNo: {
            required: "Order number is required.",
          }, 
          ProbationOrderDate: {
            required: "Order date is required.",
          }, 
          ClearProbationPeriodDate: {
            required: "Date of Clear is required.",
          }, 
        },
        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>

{{-- Edit Record Employee Probation Period --}}
<script>
    function editProbationPeriod(ProbationPeriodId)
  {
      var ProbationPeriodId = ProbationPeriodId;
      $.ajax({
          type: "POST",
          url: "{{ url('/') }}/edit-employee-probation-period",
          dataType: 'json',
          data: {
            ProbationPeriodId: ProbationPeriodId,
            _token: "{{ csrf_token() }}",
          },
          success: function (response) {
              $('#EditProbationPeriodIdClear').val(response.GetEmpProbationPeriod.ProbationPeriodId);
              $('span#EditProbationPeriodEmployeeCodeClear').html('#' +response.GetEmpProbationPeriod.EmployeeCode);

              if (response.GetEmpProbationPeriod.JoiningTime == 'Forenoon') {
                    $("input#forenoon").prop('checked', true);
                } else {
                    $("input#afternoon").prop('checked', true);
              }
              
              var joinDate = new Date(response.GetEmpProbationPeriod.JoiningDate);
              $('#EditProbationJoiningDate').val(((joinDate.getDate() > 9) ? joinDate.getDate() : ('0' + joinDate.getDate())) + '/' + ((joinDate.getMonth() > 8) ? (joinDate.getMonth() + 1) : ('0' + (joinDate.getMonth() + 1))) + '/' + joinDate.getFullYear());

              var ProbDate = new Date(response.GetEmpProbationPeriod.ProbationPeriodClearDate);
              $('#EditProbationPeriodDate').val(((ProbDate.getDate() > 9) ? ProbDate.getDate() : ('0' + ProbDate.getDate())) + '/' + ((ProbDate.getMonth() > 8) ? (ProbDate.getMonth() + 1) : ('0' + (ProbDate.getMonth() + 1))) + '/' + ProbDate.getFullYear());

          }
      });
      $('#EditProbationPeriodModal').modal('show');
  }
</script>

{{-- Edit Clear / Revised Record Employee Probation Period --}}
<script>
    function editClearReviseProbationPeriod(ProbationPeriodId)
  {
      var ProbationPeriodId = ProbationPeriodId;
      $.ajax({
          type: "POST",
          url: "{{ url('/') }}/edit-employee-probation-period",
          dataType: 'json',
          data: {
            ProbationPeriodId: ProbationPeriodId,
            _token: "{{ csrf_token() }}",
          },
          success: function (response) {
              $('#EditProbationPeriodId').val(response.GetEmpProbationPeriod.ProbationPeriodId);
              $('span#EditProbationPeriodEmployeeCode').html('#' +response.GetEmpProbationPeriod.EmployeeCode);
              var ProbPeriodDate = new Date(response.GetEmpProbationPeriod.ProbationPeriodClearDate);
              $('#EditProbationPeriodClearDate').val(((ProbPeriodDate.getDate() > 9) ? ProbPeriodDate.getDate() : ('0' + ProbPeriodDate.getDate())) + '/' + ((ProbPeriodDate.getMonth() > 8) ? (ProbPeriodDate.getMonth() + 1) : ('0' + (ProbPeriodDate.getMonth() + 1))) + '/' + ProbPeriodDate.getFullYear());
              
              
              if (response.GetEmpProbationPeriod.IsCleared == '1') {
                $("#checkbox_field").css('display', 'block');
                $("#EditProbationPeriodClear_field").css('display', 'block');
                $("#EditDateOfClear").css('display', 'block');
                $("input#EditProbationPeriodClear").prop('checked', true);
                $("#EditProbationPeriodRevise_field").css('display', 'none');
                $("#EditNextProbationClearDate_field").css('display', 'none');
                $("#EditNextProbationClearDate").prop('required', false);
                $("#EditDateOfRevise").css('display', 'none');
                $("input#EditProbationPeriodRevise").prop('checked', false);

                $('#EditProbationPeriodClearDate').prop('disabled', true)

                $('#EditProbationOrderNo').val(response.GetEmpProbationPeriod.ProbationOrderNo);
                
                if (response.GetEmpProbationPeriod.ProbationOrderDate) {
                    var OrderDate = new Date(response.GetEmpProbationPeriod.ProbationOrderDate);
                    $('#EditProbationOrderDate').val(((OrderDate.getDate() > 9) ? OrderDate.getDate() : ('0' + OrderDate.getDate())) + '/' + ((OrderDate.getMonth() > 8) ? (OrderDate.getMonth() + 1) : ('0' + (OrderDate.getMonth() + 1))) + '/' + OrderDate.getFullYear());
                }
                $('#EditClearReviseDate').val('');
                if (response.GetEmpProbationPeriod.ClearReviseDate) {
                    var CRDate = new Date(response.GetEmpProbationPeriod.ClearReviseDate);
                    $('#EditClearReviseDate').val(((CRDate.getDate() > 9) ? CRDate.getDate() : ('0' + CRDate.getDate())) + '/' + ((CRDate.getMonth() > 8) ? (CRDate.getMonth() + 1) : ('0' + (CRDate.getMonth() + 1))) + '/' + CRDate.getFullYear());
                }
               
              } else if (response.GetEmpProbationPeriod.IsRevised == '1') {
                $('#EditProbationOrderNo').val('');
                $('#EditProbationOrderDate').val('');
                $('#EditClearReviseDate').val('');

                $("#checkbox_field").css('display', 'block');
                $("#EditProbationPeriodClear_field").css('display', 'none');
                $("label#EditDateOfClear").css('display', 'none');
                $("#EditNextProbationClearDate_field").css('display', 'none');
                $("input#EditProbationPeriodClear").prop('checked', false);
                $("#EditProbationPeriodRevise_field").css('display', 'block');
                $("#EditNextProbationClearDate_field").css('display', 'block');
                $("#EditNextProbationClearDate").prop('required', true);
                $("label#EditDateOfRevise").css('display', 'block');
                $("input#EditProbationPeriodRevise").prop('checked', true);
                
                $('#EditProbationPeriodClearDate').prop('disabled', false)

                $('#EditProbationOrderNo').val(response.GetEmpProbationPeriod.ProbationOrderNo);
                
                if (response.GetEmpProbationPeriod.ProbationOrderDate) {
                    var OrderDate = new Date(response.GetEmpProbationPeriod.ProbationOrderDate);
                    $('#EditProbationOrderDate').val(((OrderDate.getDate() > 9) ? OrderDate.getDate() : ('0' + OrderDate.getDate())) + '/' + ((OrderDate.getMonth() > 8) ? (OrderDate.getMonth() + 1) : ('0' + (OrderDate.getMonth() + 1))) + '/' + OrderDate.getFullYear());
                }
                
                if (response.GetEmpProbationPeriod.ClearReviseDate) {
                    var CRDate = new Date(response.GetEmpProbationPeriod.ClearReviseDate);
                    $('#EditClearReviseDate').val(((CRDate.getDate() > 9) ? CRDate.getDate() : ('0' + CRDate.getDate())) + '/' + ((CRDate.getMonth() > 8) ? (CRDate.getMonth() + 1) : ('0' + (CRDate.getMonth() + 1))) + '/' + CRDate.getFullYear());
                }

              } else {

                $('#EditProbationOrderNo').val('');
                $('#EditProbationOrderDate').val('');
                $('#EditClearReviseDate').val('');

                $("#checkbox_field").css('display', 'none');
                $("#EditProbationPeriodClear_field").css('display', 'none');
                $("input#EditProbationPeriodClear").prop('checked', false);
                $("#EditProbationPeriodRevise_field").css('display', 'none');
                $("input#EditProbationPeriodRevise").prop('checked', false);
              }
              
              
              
          }
      });
      $('#EditClearReviseProbationPeriodModal').modal('show');
  }
</script>

{{-- Validate form and Update Clear / Revise Employee Probation Period --}}
<script>
    $(function () {
      $.validator.setDefaults({
        submitHandler: function () {
            event.preventDefault();
            // Get Form Data
        var token = $("#token_probation_period_edit").val();
        var ProbationPeriodId = $("#EditProbationPeriodId").val();
        var ProbationOrderNo = $('#EditProbationOrderNo').val();
        var ProbationOrderDate = $('#EditProbationOrderDate').val();
        var IsCleared = '0';
        var IsRevised = '0';
        if ($('#EditProbationPeriodClear').is(':checked'))
        {
            var IsCleared = '1';
            var IsRevised = '0';
        } else if($('#EditProbationPeriodRevise').is(':checked'))
        {
            var IsRevised = '1';
            var IsCleared = '0';
        }
        
        var ProbationPeriodClearDate = $('#EditProbationPeriodClearDate').val();
        var ClearReviseDate = $('#EditClearReviseDate').val();
        var ProbationPeriodCertificate = $('#ProbationPeriodCertificate')[0].files;
        
        var fd = new FormData();
            fd.append('_token',token);
            fd.append('ProbationPeriodId',ProbationPeriodId);
            fd.append('ProbationOrderNo',ProbationOrderNo);
            fd.append('OrderDate',ProbationOrderDate);
            fd.append('IsCleared',IsCleared);
            fd.append('IsRevised',IsRevised);
            fd.append('ClearAndReviseDate',ClearReviseDate);
            fd.append('ProbationClearDate',ProbationPeriodClearDate);
            // files data
            fd.append('ProbationPeriodCertificate',ProbationPeriodCertificate[0]);

        $.ajax({
                type: "post",
                url: "{{ url('update-status-employee-probation-period') }}",
                data: fd,
                contentType: false,
                processData: false,
                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: 'Employee Record updated successfully!'
                    });
                    setTimeout(function(){
                    window.location.reload(1);
                  }, 2000);
                },
                error: function(data) {
                  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: 'error',
                      title: 'Something went wrong!'
                    });
                }
            });
        }
      });
      $('#updatedStatusProbationPeriodForm').validate({
        rules: {
            ProbationOrderNo: {
            //required: true,
          },
          ProbationOrderDate: {
            //required: true,
          },
          ClearProbationPeriodDate: {
            //required: true,
          },
          ProbationPeriodCertificate: {
            //required: true,
            accept: "image/*, pdf",
          },
        },
        messages: {
            ProbationOrderNo: {
            required: "Order number is required.",
          }, 
          ProbationOrderDate: {
            required: "Order date is required.",
          }, 
          ClearProbationPeriodDate: {
            required: "Date of Clear is required.",
          }, 
        },
        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>

{{-- Validate form and Update data --}}
<script>
    $(function () {
    $.validator.setDefaults({
      submitHandler: function () {
          event.preventDefault();
      $.ajax({
              type: "post",
              url: "{{ url('update-employee-probation-period') }}",
              data: $("#EditProbationPeriodClearForm").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: 'Employee Record updated successfully!'
                  });
                  setTimeout(function(){
                  window.location.reload(1);
                }, 2000);
              },
              error: function(data) {
                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: 'error',
                    title: 'Something went wrong!'
                  });
              }
          });
      }
    });
    $('#EditProbationPeriodClearForm').validate({
      rules: {
        JoiningTime: {
          required: true,
        },
        ProbationJoiningDate: {
          required: true,
        },
        ProbationPeriodClearDate: {
          required: true,
        },
      },
      messages: {
        JoiningTime: {
          required: "Joining time is required.",
        }, 
        ProbationJoiningDate: {
          required: "Joining date is required.",
        }, 
        ProbationPeriodClearDate: {
          required: "Clear date is required.",
        }, 
      },
      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>

{{-- Delete Employee Probation Period --}}
<script>
    function deleteProbationPeriod(ProbationPeriodId) {
      var ProbationPeriodId = ProbationPeriodId;
              Swal.fire({
                  title: "Delete Employee Probation Period?",
                  text: "Are you sure you want to delete this Employee Probation Period?",
                  icon: "warning",
                  icon: "warning",
                  showCancelButton: true,
                  confirmButtonColor: "#3085d6",
                  cancelButtonColor: "#d33",
                  confirmButtonText: "Yes, delete it!",
              }).then((result) => {
                  if (result.isConfirmed) {
                      $.ajax({
                          type: "post",
                          url: "{{ url('/') }}/delete-employee-probation-period",
                          dataType: "json",
                          data: {
                              _token: "{{csrf_token()}}",
                              ProbationPeriodId: ProbationPeriodId,
                          },
                          success: function (response) {
                              Swal.fire({
                                  icon: "success",
                                  title: "Employee Probation Period has been deleted!",
                                  showConfirmButton: false,
                                  timer: 1500,
                              }).then(function () {
                                  location.reload();
                              });
                          },
                      });
                  }
              });
  }
</script>