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-encashment-modal.blade.php
{{-- Modal for Add Encashment of Leave --}}
{{-- Add Encashment of Leave --}}
<div class="modal fade" id="AddEncashment">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Employee Encashment of Leave</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="empEncashmentFormAdd">
                    <input type="hidden" name="_token" id="csrf_token_add" value="{{ csrf_token() }}">
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="Employee">Employee Code <span
                                            class="text-danger">*</span></label>
                                    <select class="form-control form-control-sm select2" style="width: 100%;"
                                        aria-hidden="true" name="EmployeeCode" id="EmployeeCode"
                                        data-placeholder="Employee Code" required>
                                        <option value="" selected="selected" disabled>Employee Code</option>
                                    </select>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="Designation">Designation</label>
                                    <input type="text" class="form-control form-control-sm" name="Designation"
                                        id="designation" readonly>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="UniversityOrder">Order No. <span
                                            class="text-danger">*</span></label>
                                    <input type="text" id="OrderNo" name="OrderNo" class="form-control form-control-sm">
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="Date">Order Date <span class="text-danger">*</span></label>
                                    <div class="input-group date" data-target-input="nearest">
                                        <input type="text" id="OrderDate" name="OrderDate"
                                            class="form-control form-control-sm datetimepicker-input"
                                            placeholder="DD/MM/YYYY" data-target="#OrderDate" />
                                        <div class="input-group-append" data-target="#OrderDate"
                                            data-toggle="datetimepicker">
                                            <div class="input-group-text"><i class="fa fa-calendar"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="OrderFile">Order file</label>
                                    <div class="input-group input-group-sm">
                                        <div class="custom-file">
                                            <input type="file" class="custom-file-input" name="EncashmentOrderFile"
                                                id="EncashmentOrderFile" accept="image/*, .pdf">
                                            <label class="custom-file-label" for="EncashmentOrderFile">Choose
                                                file</label>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="NoOfDays">No. of Leave <span
                                            class="text-danger">*</span></label>
                                    <input type="text" id="NoOfDays" name="NoOfDays"
                                        class="form-control form-control-sm">
                                </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="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 -->



{{-- Modal for Update Encashment of Leave --}}
{{-- Update Encashment of Leave --}}
<div class="modal fade" id="updateEncashment">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Edit Encashment of Leave <span id="EmployeeName" 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="updateEncashmentForm">
                    <input type="hidden" name="_token" id="csrf_token_update" value="{{ csrf_token() }}">
                    <input type="hidden" id="EncashmentId" name="EncashmentId">
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="UniversityOrder">Order No. <span
                                            class="text-danger">*</span></label>
                                    <input type="text" id="EditOrderNo" name="OrderNo"
                                        class="form-control form-control-sm">
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="Date">Order Date <span class="text-danger">*</span></label>
                                    <div class="input-group date" data-target-input="nearest">
                                        <input type="text" id="EditOrderDate" name="OrderDate"
                                            class="form-control form-control-sm datetimepicker-input"
                                            placeholder="DD/MM/YYYY" data-target="#EditOrderDate" />
                                        <div class="input-group-append" data-target="#EditOrderDate"
                                            data-toggle="datetimepicker">
                                            <div class="input-group-text"><i class="fa fa-calendar"></i>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="OrderFile">Order file</label>
                                    <div class="input-group input-group-sm">
                                        <div class="custom-file">
                                            <input type="file" class="custom-file-input" name="EncashmentOrderFile"
                                                id="EditEncashmentOrderFile" accept="image/*, .pdf">
                                            <label class="custom-file-label" for="EncashmentOrderFile">Choose
                                                file</label>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label class="mb-0" for="NoOfDays">No. of Leave <span
                                            class="text-danger">*</span></label>
                                    <input type="text" id="EditNoOfDays" name="NoOfDays"
                                        class="form-control form-control-sm">
                                </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 --}}
{{-- Employee List --}}
<script>
    $(document).ready(function() {
        $.ajax({
          type: "GET",
          url: "{{ url('/employee-list') }}",
          dataType: "json",
          success: function(response) {
            var json = response.EmployeeList;
            $.each(json, function(i, employee) {
              $("#EmployeeCode").append("<option value='" + employee.EmployeeId + "'>" + employee.EmployeeCode + " (" + employee.EmployeeName + ") " + "</option>");
              $('#EmployeeCode').val(null).trigger('change');
            });
          }
        });
    });

    // Get Employee Details
    $('#EmployeeCode').on('select2:select', function (e) {
      
        var data = e.params.data;
        var EmployeeId = data.id;
        getEmployeeDetail(EmployeeId);
        // Reset Form field on change Employee Code
        //$('#NameOfUniversity, #ResignationNo, #RetirementDate, #NameOfPost, #Resignation').val('');
    });

    function getEmployeeDetail(EmployeeId)
    {
        var EmployeeId = EmployeeId;
            $.ajax({
            type: "post",
            url: "{{ url('/') }}/get-employee-current-detail",
            dataType: "json",
            data: { 
                    _token: "{{csrf_token()}}",
                    EmployeeId: EmployeeId,
                },
            success: function(response) {
                var json = response.GetEmpCurrentDetail;
                $('#EmployeeId').val(json.EmployeeId);
                $('#EmpCode').val(json.EmployeeCode);
                $('#employeeName').val(json.EmployeeName);
                $('#ActualWorkPlace').val(json.ActualWorkPlace);
                $('#EmployeeDDO').val(json.DDOName);
                $('#department').val(json.DepartmentName);
                $('#designation').val(json.DesignationName);
                $('span#TableEmployeeTitle').html('#' +json.EmployeeName+ ' (' +json.EmployeeCode+ ')' );
            }
        });
    }
</script>

{{-- Validate form and Save data --}}
<script>
    $(function () {
      $.validator.setDefaults({
        submitHandler: function () {
            event.preventDefault();
            // Get Form Data
        var token = $("#csrf_token_add").val();
        var EmpCode = $("#EmployeeCode").find('option:selected').text();
        var EmployeeCode = EmpCode.split(' ')[0];
        var EmployeeId = $('#EmployeeCode :selected').val();
        var OrderNo = $('#OrderNo').val();
        var DateOfOrder = $('#OrderDate').val();
        var NoOfDays = $('#NoOfDays').val();
        var EncashmentOrderFile = $('#EncashmentOrderFile')[0].files;
        
        var fd = new FormData();
            fd.append('_token',token);
            fd.append('EmployeeId',EmployeeId);
            fd.append('EmployeeCode',EmployeeCode);
            fd.append('OrderNo',OrderNo)
            fd.append('DateOfOrder',DateOfOrder);
            fd.append('NoOfDays',NoOfDays);
            
            // files data
            fd.append('EncashmentOrderFile',EncashmentOrderFile[0]);
            
        $.ajax({
                type: "post",
                url: "{{ url('store-employee-encashment') }}",
                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: 'Encashment added 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!'
                    });
                }
            });
        }
      });
      $('#empEncashmentFormAdd').validate({
        rules: {
            EmployeeCode: {
            required: true,
            remote: {
                type: "post",
                url:'{{ url("/") }}/check-duplicate-encashment',
                data: {
                    EmployeeId: function() {
                    return $('#EmployeeCode :selected').val();
                },
                '_token':$('meta[name="csrf-token"]').attr('content')
                }
            },
          },
          EncashmentOrderFile: {
            //required: true,
            accept: "image/*, pdf",
          },
          OrderNo: {
            required: true,
          },
          OrderDate: {
            required: true,
          },
          Encashment: {
            required: true,
          },
          PayeeName: {
            required: true,
          },
        },
        messages: {
            EmployeeCode: {
            required: "Please select employee code.",
            remote: 'Employee already exist.',
            },
            OrderNo: {
                required: 'Order No. is required.',
            },
            OrderDate: {
                required: 'Order Date is required.',
            },
            Encashment: {
                required: 'Amount is required.',
            },
            PayeeName: {
                required: 'Payee name is required.',
            },
            ResignationOrderFile: {
                required: 'Upload the Order file.',
                accept: 'Please upload only image or pdf file.'
            },
        },
        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 Encashment of Leave --}}
<script>
    function deleteEmpEncashment(EncashmentId) {
    var EncashmentId = EncashmentId;
                Swal.fire({
                    title: "Delete Encashment ?",
                    text: "Are you sure you want to delete this Encashment?",
                    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-encashment",
                            dataType: "json",
                            data: {
                                _token: "{{csrf_token()}}",
                                EncashmentId: EncashmentId,
                            },
                            success: function (response) {
                                Swal.fire({
                                    icon: "success",
                                    title: "Encashment has been deleted!",
                                    showConfirmButton: false,
                                    timer: 1500,
                                }).then(function () {
                                    location.reload();
                                });
                            },
                        });
                    }
                });
    }
</script>

{{-- Edit Encashment of Leave --}}
<script>
    function editEmpEncashment(EncashmentId)
  {
      var EncashmentId = EncashmentId;
      $.ajax({
          type: "post",
          url: "{{ url('/') }}/edit-employee-encashment",
          dataType: "json",
          data: { 
                    _token: "{{csrf_token()}}",
                    EncashmentId: EncashmentId,
                },
          success: function (response) {
               $('#EncashmentId').val(response.GetEncashment.EncashmentId);
               $('span#EmployeeName').html('#' +response.GetEncashment.EmployeeName);
               $('#EditOrderNo').val(response.GetEncashment.OrderNo);
               if (response.GetEncashment.OrderDate) {
                var OrDate = new Date(response.GetEncashment.OrderDate);
                $('#EditOrderDate').val(((OrDate.getDate() > 9) ? OrDate.getDate() : ('0' + OrDate.getDate())) + '/' + ((OrDate.getMonth() > 8) ? (OrDate.getMonth() + 1) : ('0' + (OrDate.getMonth() + 1))) + '/' + OrDate.getFullYear());
               }

               $('#EditNoOfDays').val(response.GetEncashment.NoOfDays);
          }
      });
      $('#updateEncashment').modal('show');
  }
</script>

{{-- Validate and Update Resignation --}}
<script>
    $(function () {
      $.validator.setDefaults({
        submitHandler: function () {
            event.preventDefault();
            // Get Form Data
        var token = $("#csrf_token_update").val();
        var EncashmentId = $('#EncashmentId').val();
        var OrderNo = $('#EditOrderNo').val();
        var DateOfOrder = $('#EditOrderDate').val();
        var NoOfDays = $('#EditNoOfDays').val();
        var EncashmentOrderFile = $('#EditEncashmentOrderFile')[0].files;
        
        var fd = new FormData();
            fd.append('_token',token);
            fd.append('EncashmentId',EncashmentId);
            fd.append('OrderNo',OrderNo)
            fd.append('DateOfOrder',DateOfOrder);
            fd.append('NoOfDays',NoOfDays);
            
            // files data
            fd.append('EncashmentOrderFile',EncashmentOrderFile[0]);
            
        $.ajax({
                type: "post",
                url: "{{ url('update-employee-encashment') }}",
                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: 'Encashment update 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!'
                    });
                }
            });
        }
      });
      $('#updateEncashmentForm').validate({
        rules: {
          EncashmentOrderFile: {
            //required: true,
            accept: "image/*, pdf",
          },
          OrderNo: {
            required: true,
          },
          OrderDate: {
            required: true,
          },
          NoOfDays: {
            required: true,
          },
        },
        messages: {
            OrderNo: {
                required: 'Order No. is required.',
            },
            OrderDate: {
                required: 'Order Date is required.',
            },
            NoOfDays: {
                required: 'No. of days required.',
            },
            EncashmentOrderFile: {
                required: 'Upload the Order file.',
                accept: 'Please upload only image or pdf file.'
            },
        },
        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>