<script>

$("#income_receipt_acc_add").select2({
  placeholder: "Select Credit Account",
  dropdownParent: $("#form_income_receipt_add")
})
$("#income_receipt_work_add").select2({
  placeholder: "Select Office/Project",
  dropdownParent: $("#form_income_receipt_add")
})
$("#table_filter_project").select2({
  placeholder: "Select Office/Project",
})

$("#income_receipt_acc_edit").select2({
  placeholder: "Select Credit Account",
  dropdownParent: $("#form_income_receipt_edit")
})
$("#income_receipt_work_edit").select2({
  placeholder: "Select Office/Project",
  dropdownParent: $("#form_income_receipt_edit")
})
$("#income_receipt_received_date_add,#income_receipt_received_date_edit").datepicker( {
  todayHighlight:!0, orientation:"bottom left", templates: {
    leftArrow: '<i class="la la-angle-left"></i>', rightArrow: '<i class="la la-angle-right"></i>'
  },
  endDate: '+0d',
  <?php if($this->session->userdata('user_role')!='admin' && $this->config->item('User_calendar_date_restriction_enabled')==1){ ?>
    startDate: '<?php echo $this->config->item('User_calendar_date_restriction_start_days');?>d'
    <?php } ?>
  })

  $('body').on('click', '#income_receipt_edit_btn', function() {
    var no = $(this).closest('tr').children('td');
    $('#income_receipt_tr_id_edit').val(no.eq(1).text());
    $('#income_receipt_received_amount_edit').val(no.eq(6).text());
    $('#income_receipt_head_edit').val(no.eq(5).text());
    $("#income_receipt_received_date_edit").datepicker("setDate", no.eq(3).text());
    $('#income_receipt_remarks_edit').val(no.eq(9).text());
    $('#income_receipt_receipt_no_edit').val(no.eq(8).text());
    $("#income_receipt_acc_edit").val(no.eq(13).text()).trigger('change');
    $("#income_receipt_work_edit").val(no.eq(14).text()).trigger('change');
    $("#reference_id_edit_income_receipt").val(0);
    $("#reference_type_edit_income_receipt").val('income_receipt');
  })
  <?php if($page_name=='income_receipts'){?>
    function GetSearchDate(){
      return $('#table_filter_date_range').val();
    }
    function GetSearchProject(){
      return $('#table_filter_project').val();
    }
    <?php } ?>
    <?php if($page_name=='data_entry_approval'){?>
      function GetStartDate(){
        return $('#table_filter_start_date').val();
      }
      function GetEndDate(){
        return $('#table_filter_end_date').val();
      }
      function GetSearchWork(){
        return $('#table_filter_work').val();
      }
      function GetSearchUser(){
        return $('#table_filter_user').val();
      }
      function GetSearchApprovalStatus(){
        return $('#table_filter_approval_status').val();
      }
      function GetSearchAccount() {
        return $('#table_filter_account').val();
      }
      <?php } ?>
      <?php
      $page_type='';
      if($page_name=='data_entry_approval'){
        $page_type='approval_entries';
      }
      ?>
    var income_receipts_view_table = $('#income_receipts_view_table').DataTable({
      "ajax":{
        url :"<?php echo base_url().'income/select_income_receipts/'.$page_type ?>", // json datasource
        type: "post", // type of method  , by default would be get
        data: function(d){
          <?php if($page_name=='income_receipts'){?>
            d.date = GetSearchDate();
            d.project = GetSearchProject();
            <?php } ?>
            <?php if($page_name=='reports_activity'){?>
              d.date = GetSearchDate();
              <?php } ?>
              <?php if($page_name=='user_profile'){?>
                d.acc_user_id = "<?php echo $user_data->user_id?>";
                <?php } ?>
                <?php if($page_name=='data_entry_approval'){?>
                  d.start_date = GetStartDate();
                  d.end_date = GetEndDate();
                  d.work = GetSearchWork();
                  d.approval_status = GetSearchApprovalStatus();
                  d.user_id = GetSearchUser();
                  d.acc_head_id = GetSearchAccount();
                  <?php } ?>
              }
            },
            "bProcessing": true,
            "deferRender": true,
            "bDeferRender": true,
            <?php if($page_name=='work_summary'){?>
              "scrollX": false,
              bFilter: false,
              "bLengthChange": false,
              "bPaginate": false,
              "bInfo": false,
              "dom": "<'row' <'col-md-12'>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>", // horizobtal scrollable datatable
              <?php }else{?>
                "scrollX" : true,
                buttons: [
                  { extend: 'print', className: 'btn dark btn-outline',exportOptions: {columns: ':visible'},title: 'Income Receipts' },
                  { extend: 'csv', className: 'btn purple btn-outline ' },
                  { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}
                ],
                dom:"<'row'<'col-sm-6 text-left'B><'col-sm-6 text-right'f>>\n\t\t\t<'row'<'col-sm-12'tr>>\n\t\t\t<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7 dataTables_pager'lp>>", // horizobtal scrollable datatable
                "lengthMenu": [
                  [25, 50, 100, -1],
                  [25, 50, 100, "All"] // change per page values here
                ],
                <?php } ?>
                'order': false,
                "columnDefs": [
                  {
                    "targets": [ 1,13,14,15<?php if($this->session->userdata('user_role')=='auditor') { echo ",12"; } ?> ],
                    className: "hidden"
                  }
                ],
                "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
                  if(aData[15]=='0'){
                    $('td', nRow).css('background-color', '#ffcccc');
                  }else if(aData[15]=='2'){
                    $('td', nRow).css('background-color', '#ffcccc');
                  }
                }
              });
              $(".table_filter").on("change", function() {
                income_receipts_view_table.ajax.reload();
              });
              $(".hide_column").hide();

              <?php if($page_name=='income_receipts'){?>
                // Date Range Picker
                var start = moment();
                var end = moment();

                function cb(start, end) {
                  $('#table_filter_date_range').val(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
                  income_receipts_view_table.ajax.reload();
                }

                $('#table_filter_date_range').daterangepicker({
                  buttonClasses: "m-btn btn",
                  applyClass: "btn-primary",
                  cancelClass: "btn-secondary",
                  startDate: start,
                  endDate: end,
                  locale: {
                    format: 'MMMM D, YYYY'
                  },
                  ranges: {
                    'Today': [moment(), moment()],
                    'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
                    'Last 7 Days': [moment().subtract(6, 'days'), moment()],
                    'Last 30 Days': [moment().subtract(29, 'days'), moment()],
                    'This Month': [moment().startOf('month'), moment().endOf('month')],
                    'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
                    'All time': [moment('1970-01-01'), moment().add(9999, 'days')],
                  }
                }, cb);

                cb(start, end);

                $(".form_submit_btn").click(function (e) {
                  e.preventDefault();
                  var a = $(this),
                  l = $(this).closest("form"),
                  action = l.attr('action');
                  var form_id = l.attr('id');
                  l.validate({
                    rules: {
                      received_amount: {
                        number: !0,
                        required: !0
                      }
                    }, invalidHandler: function (e, r) {
                      var i = $("#" + form_id + "_msg");
                      i.removeClass("m--hide").show(), mUtil.scrollTo(i, -200)
                    }, submitHandler: function (e) {
                    }
                  }), l.valid() && (a.addClass("m-loader m-loader--right m-loader--light").attr("disabled", !0),
                  l.ajaxSubmit({
                    url: action,
                    success: function (e, t, r, s) {
                      var modal_id = l.attr('data-modal-id');
                      var form_type = l.attr('data-form-type');
                      $("#" + form_id + "_msg").addClass("m--hide");
                      // Block UI
                      mApp.blockPage({
                        overlayColor: "#000000",
                        type: "loader",
                        state: "success",
                        message: "Please wait..."
                      }), setTimeout(function () {
                        mApp.unblockPage()
                      }, 2e3);
                      var obj = $.parseJSON(e);
                      if (obj.status == 1) {
                        a.removeClass("m-loader m-loader--right m-loader--light").attr("disabled", !1);
                        $("#"+modal_id).modal('toggle');
                        $("."+form_id+"_fields").val('');
                        $("."+form_id+"_select").val('').trigger("change");
                        income_receipts_view_table.ajax.reload();
                        toastr[obj.flashdata_type](obj.flashdata_msg, obj.flashdata_title);
                      } else {
                        a.removeClass("m-loader m-loader--right m-loader--light").attr("disabled", !1);
                        toastr[obj.flashdata_type](obj.flashdata_msg, obj.flashdata_title);
                      }
                      if (obj == null) {
                        setTimeout(function () {
                          a.removeClass("m-loader m-loader--right m-loader--light").attr("disabled", !1);
                          toastr["warning"]("Your Attempt is Timed Out. Please Try Again.", "Timed Out");
                        }, 2e4)
                      }
                    },error: function() {
                      a.removeClass("m-loader m-loader--right m-loader--light").attr("disabled", !1);
                      toastr["error"]("Sorry. There Has Been Some Error Occurred. Please Try Again.", "Error");
                    }
                  })
                )
              });

              <?php } ?>
              </script>
