<script>
<?php if ($page_name == 'subcontract_payments') { ?>

  function GetSearchDate() {
    return $('#table_filter_date_range').val();
  }

  function GetSearchWork() {
    return $('#table_filter_work').val();
  }

  function GetSearchWorktype() {
    return $('#table_filter_work_type').val();
  }
  function GetSearchContractor() {
    return $('#table_filter_contractor').val();
  }

  function get_branch_id() {
    return $('#company_branch :selected').val();
  }
  <?php } ?>
  <?php if ($page_name == 'user_profile') { ?>

    function GetStartDate() {
      return $('#table_filter_start_date').val();
    }

    function GetEndDate() {
      return $('#table_filter_end_date').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 GetSearchAccount() {
        return $('#table_filter_account').val();
      }
      function GetSearchUser() {
        return $('#table_filter_user').val();
      }

      function GetSearchApprovalStatus() {
        return $('#table_filter_approval_status').val();
      }
      <?php } ?>
      <?php
      $page_type = '';
      if ($page_name == 'data_entry_approval') {
        $page_type = 'approval_entries';
      }
      ?>
      var subcontract_payments_view_table = $('#subcontract_payments_view_table').DataTable({
        "ajax": {
          url: "<?php echo base_url() . 'accounts/select_account_transactions/subcontract_transactions/' . $page_type ?>", // json datasource
          type: "post", // type of method  , by default would be get
          data: function(d) {
            <?php if ($page_name == 'subcontract_profile') { ?>
              d.contract_id = "<?php echo $subcontract_data->contract_id ?>";
              <?php if (!empty($this->config->item('company_branches'))) { ?>
                d.branch_id = get_branch_id();
                <?php } ?>
                <?php } ?>
                <?php if ($page_name == 'subcontract_payments') { ?>
                  d.date = GetSearchDate();
                  d.work = GetSearchWork();
                  d.contractor = GetSearchContractor();
                  d.work_type = GetSearchWorktype();
                  <?php } ?>
                  <?php if ($page_name == 'work_profile' || $page_name == 'work_summary') { ?>
                    d.work = "<?php echo $work_data->work_id ?>";
                    <?php } ?>
                    <?php if($page_name=='work_profile_master' || $page_name=='work_summary_master'){?>
                      d.work_ids = "<?php echo implode(',',$sub_project_ids)?>";
                      <?php } ?>
                    <?php if ($page_name == 'work_summary') { ?>
                      d.start_date = GetStartDate();
                      d.end_date = GetEndDate();
                      <?php } ?>
                      <?php if ($page_name == 'reports_activity') { ?>
                        d.date = GetSearchDate();
                        d.work = GetSearchWork();
                        <?php } ?>
                        <?php if ($page_name == 'user_profile') { ?>
                          d.acc_user_id = "<?php echo $user_data->user_id ?>";
                          d.start_date = GetStartDate();
                          d.end_date = GetEndDate();
                          <?php } ?>
                          <?php if ($page_name == 'stage_profile' || $page_name == 'stage_summary') { ?>
                            d.stage_id = "<?php echo $stage_data->stage_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.created_by = 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,
                          buttons: [{
                            extend: 'colvis',
                            className: 'btn dark btn-outline',
                            text: 'Columns'
                          }],
                          "dom": "<'row' <'col-md-12'B>><'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: 'Subcontract Payments',
                            <?php if($this->config->item('company_letter_head')!=''){ ?>
                              customize: function ( win ) {
                                $(win.document.body).prepend(
                                  '<img src="<?php echo base_url().'uploads/company/'.$this->config->item('company_letter_head')?>" style="top:0; left:0;width:100%;" />'
                                );
                              }
                              <?php } ?>
                            },
                            {
                              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': [],
                          "columnDefs": [{
                            "targets": [6,7, 19, 20, 21, 22,23 <?php if ($page_name == 'work_profile') {
                              echo ",4";
                            } ?><?php if ($page_name == 'work_summary') {
                              echo ",1,4,8,9,13,14,15,18";
                            } ?>],
                            className: "hidden"
                          },
                          {
                            render: function(data, type, full, meta) {
                              return "<div class='text-wrap width-300'>" + data + "</div>";
                            },
                            targets: 5
                          },
                        ],
                        "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
                          if (aData[23] == '0') {
                            $('td', nRow).css('background-color', '#ffcccc');
                          } else if (aData[23] == '2') {
                            $('td', nRow).css('background-color', '#ffcccc');
                          }
                        }
                      });

                      function get_branch_id() {
                        return $('#company_branch :selected').val();
                      }

                      var subcontracts_payment_by_type_view_table = $('#subcontracts_payment_by_type_view_table').DataTable({
                        "ajax": {
                          url: "<?php echo base_url() . 'subcontracts/select_subcontract_payments_by_type/all' ?>", // json datasource
                          type: "post", // type of method  , by default would be get
                          data: function(d) {
                            <?php if ($page_name == 'subcontract_payments') { ?>
                              d.date = GetSearchDate();
                              d.work = GetSearchWork();
                              d.work_type = GetSearchWorktype();

                              <?php if (!empty($this->config->item('company_branches'))) { ?>
                                d.branch_id = get_branch_id();
                                <?php } ?>

                                <?php } ?>
                                <?php if ($page_name == 'work_profile') { ?>
                                  d.work = "<?php echo $work_data->work_id ?>";
                                  <?php } ?>
                                  <?php if ($page_name == 'reports_activity') { ?>
                                    d.date = GetSearchDate();
                                    d.work = GetSearchWork();
                                    <?php } ?>
                                  }
                                },
                                "bProcessing": true,
                                "deferRender": true,
                                "bDeferRender": true,
                                "scrollX": true,
                                buttons: [{
                                  extend: 'print',
                                  className: 'btn dark btn-outline',
                                  exportOptions: {
                                    columns: ':visible'
                                  },
                                  title: 'Subcontract Payment Summary'
                                },
                                {
                                  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
                              ],
                              'order': []
                            });
                            $(".table_filter").on("change", function() {
                              subcontract_payments_view_table.ajax.reload();
                              subcontracts_payment_by_type_view_table.ajax.reload();
                              <?php if ($page_name == 'subcontract_payments' || $page_name == 'data_entry_approval') { ?>
                                subcontract_bills_view_table.ajax.reload();
                                <?php } ?>
                              });
                              $(".hide_column").hide();
                              <?php if ($page_name == 'subcontract_payments') { ?>

                                $(".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: {
                                      paid_amount: {
                                        number: !0,
                                        required: !0
                                      },
                                      bill_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);
                                        toastr[obj.flashdata_type](obj.flashdata_msg, obj.flashdata_title);
                                        $("#" + modal_id).modal('toggle');
                                        $("." + form_id + "_fields").val('');
                                        $("." + form_id + "_select").val('').trigger("change");
                                        subcontract_payments_view_table.ajax.reload();
                                        subcontracts_payment_by_type_view_table.ajax.reload();
                                        <?php if ($page_name == 'subcontract_payments') { ?>
                                          subcontract_bills_view_table.ajax.reload();
                                          <?php } ?>
                                        } 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");
                                      }
                                    })
                                  )
                                });

                                $(".hidden").hide();
                                <?php } ?>
                              </script>
