????

Your IP : 216.73.216.130


Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/baocao/
Upload File :
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/baocao/hoso.eta

<% layout('../layouts/userLayout.eta') %>
<style type="text/css">
  div .dataTables_length select {
    width: 60px !important;
  }
</style>
<div class="content">
  <div class="page-inner">
    <div class="page-header">
      <div class="page-title">Báo cáo</div>
      <ul class="breadcrumbs">
        <li class="nav-home"><a href="/"><i class="flaticon-home"></i></a></li>
        <li class="separator"><i class="flaticon-right-arrow"></i></li>
        <li class="nav-item"><a href="/main">Giao diện chính</a></li>
        <li class="separator"><i class="flaticon-right-arrow"></i></li>
        <li class="nav-item"><a href="#">Báo cáo mục lục hồ sơ</a></li>
      </ul>
    </div>
    <div class="page-body">
      <div class="row">
        <div class="col-md-12">
          <div class="card mb-0">
            <div class="card-header bg-primary">
              <div class="card-title text-white">Nhập trường thông tin</div>
            </div>
            <form id="report-file-form" action="" method="GET">
              <div class="card-body">
                <div class="row">
                  <div class="col-md-8 mx-auto">
                    <div class="row">
                      <div class="col-md-6 form-group">
                        <label for="jobState">Trạng thái hồ sơ</label>
                        <select id="jobState" class="form-control" name="jobState">
                          <option value="1">Đang số hóa</option>
                          <option value="0">Chưa số hóa</option>
                        </select>
                        <div class="err-div"></div>
                      </div>
                      <div class="col-md-6 form-group">
                        <label for="fond">Tên phông lưu trữ</label>
                        <select id="fond" class="form-control" name="fondCode">
                          <option></option>
                        </select>
                        <div class="err-div"></div>
                      </div>
                      <div class="col-md-6 form-group">
                        <label for="boxNumber1">Hộp số</label>
                        <div class="input-group row mx-0">
                          <div class="col-sm-6 pl-0"><input class="form-control" type="number" min="1" name="boxNumber1"
                              id="boxNumber1" placeholder="Từ hộp số"></div>
                          <div class="col-sm-6 pr-0"><input class="form-control" type="number" min="1" name="boxNumber2"
                              id="boxNumber2" placeholder="Đến hộp số"></div>
                        </div>
                        <div class="err-div"></div>
                      </div>
                      <div class="col-md-6 form-group">
                        <label for="fileNumber1">Hồ sơ số</label>
                        <div class="input-group row mx-0">
                          <div class="col-sm-6 pl-0"><input class="form-control" type="number" min="1"
                              name="fileNumber1" id="fileNumber1" placeholder="Từ hồ sơ số"></div>
                          <div class="col-sm-6 pr-0"><input class="form-control" type="number" min="1"
                              name="fileNumber2" id="fileNumber2" placeholder="Đến hồ sơ số"></div>
                        </div>
                        <div class="err-div"></div>
                      </div>
                      <div class="col-md-6 form-group">
                        <label for="startDate1">Thời gian bắt đầu</label>
                        <div class="input-group" id="startDate">
                          <input class="form-control" type="text" name="startDate1" id="startDate1"
                            placeholder="Từ ngày">
                          <span class="input-group-text"> - </span>
                          <input class="form-control" type="text" name="startDate2" id="startDate2"
                            placeholder="Đến ngày">
                        </div>
                        <div class="err-div"></div>
                      </div>
                      <div class="col-md-6 form-group">
                        <label for="endDate1">Thời gian kết thúc</label>
                        <div class="input-group" id="endDate">
                          <input class="form-control" type="text" name="endDate1" id="endDate1" placeholder="Từ ngày">
                          <span class="input-group-text"> - </span>
                          <input class="form-control" type="text" name="endDate2" id="endDate2" placeholder="Đến ngày">
                        </div>
                        <div class="err-div"></div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              <div class="card-footer" style="background-color: #1556e836">
                <div class="row">
                  <div class="col-md-2"></div>
                  <div class="col-md-8">
                    <div class="row">
                      <div class="col-md-12">
                        <span id="errorFill" style="color: red; font-style: italic"></span>
                        <button id="submit-btn" type="button" class="btn btn-success" style="float: right">Hoàn
                          tất</button>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </form>
          </div>
        </div>
        <div class="col-md-12">
          <div class="card">
            <div class="card-header">
              <div class="card-head-row">
                <div class="card-title">Kết quả</div>
                <div class="card-tools">
                  <div id="tongSo" class="fw-bold"></div>
                </div>
              </div>
            </div>
            <div class="card-body" id="dataToPrint">
              <div class="col-md-12" style="text-align: center; font-size: 14px" id="nameData" hidden="hidden">
                <strong>BÁO CÁO MỤC LỤC HỒ SƠ</strong>
              </div>
              <table id="dataFile" class="table table-striped table-bordered table-hover">
                <thead>
                  <tr>
                    <!-- <th style="width: 10px" class="control"></th> -->
                    <th style="width: 30px" class="control">STT</th>
                    <th class="none">Phông</th>
                    <th style="width: 10px">Mục lục số</th>
                    <th style="width: 10px">Hộp số</th>
                    <th style="width: 30px">Hồ sơ số</th>
                    <th style="min-width: 300px">Tiêu đề hồ sơ</th>
                    <th style="max-width: 100px">Thời gian bắt đầu</th>
                    <th style="max-width: 100px">Thời gian kết thúc</th>
                    <th style="width: 20px">Số tờ</th>
                    <th style="width: 20px">Số trang</th>
                    <th style="width: 20px">Số văn bản</th>
                    <th class="none">Tình trạng vật lý</th>
                    <th class="none">Ghi chú</th>
                    <th class="none">Cán bộ số hóa</th>
                  </tr>
                </thead>
              </table>
            </div>
            <div class="card-footer" style="background-color: #1556e836">
              <div class="row">
                <div class="col-md-2"></div>
                <div class="col-md-8">
                  <div class="row">
                    <div class="col-md-12">
                      <span id="errorReport" style="color: red; font-style: italic"></span>
                      <div class="dropdown" style="float: right">
                        <button class="btn btn-success dropdown-toggle" type="button" id="dropdownMenuButton"
                          data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                          Xuất báo cáo
                        </button>
                        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton" style="font-size: 15px">
                          <a class="dropdown-item" onclick="exportPDF()"><i class="fa fa-file-pdf text-danger mr-2"></i> PDF</a>
                          <a class="dropdown-item" onclick="exportDOCX()"><i class="fa fa-file-word text-primary mr-2"></i> WORD</a>
                          <a class="dropdown-item" onclick="exportXLSX()"><i class="fa fa-file-excel text-success mr-2"></i> EXCEL</a>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
<!--Modal xem chi tiết văn bản trong hồ sơ-->
<div id="detail-win">
  <table id="detailTable" class="table table-bordered table-striped w-100">
    <thead>
      <tr>
        <th style="width: 10px">STT</th>
        <th>Số và ký hiệu</th>
        <th style="min-width: 300px">Trích yếu</th>
        <th>Ngày ban hành</th>
        <th style="width: 10px">Số trang</th>
        <th style="width: 10px">Số tờ</th>
        <th style="width: 10px">Tờ số</th>
        <th>Xóa/Sửa</th>
      </tr>
    </thead>
  </table>
</div>
<script type="text/javascript">
  $('#startDate').datepicker({
    format: "dd/mm/yyyy",
    autoclose: true,
    language: "vi",
    inputs: $("#startDate1, #startDate2"),
    keepEmptyValues: true
  });
  $('#endDate').datepicker({
    format: "dd/mm/yyyy",
    autoclose: true,
    language: "vi",
    inputs: $("#endDate1, #endDate2"),
    keepEmptyValues: true
  });
  $("#startDate1, #startDate2, #endDate1, #endDate2").inputmask('datetime', { inputFormat: "dd/mm/yyyy" });

  $('#jobState').select2({
    theme: 'bootstrap4',
    allowClear: true,
    placeholder: 'Chọn trạng thái hồ sơ'
  });
  $('#fond').select2({
    ajax: {
      url: '/danhmuc/phong/json',
      dataType: 'json',
      processResults: function (data, params) {
        return {
          results: data.map(x => ({ id: x.FondCode, text: x.FondName }))
        }
      }
    },
    theme: 'bootstrap4',
    placeholder: 'Chọn phông lưu trữ'
  });

  $('#dataFile').on('draw.dt', function (e) {
    var data = $('#dataFile').DataTable().data();
	var pageInfo = data.page.info();
    if (data.count()) {
      var listHTML = `<thead><tr><th>Tổng số</th><th>${pageInfo.recordsTotal || 0} hồ sơ</th><th>${data[0].docsTotal || 0} văn bản</th><th>${data[0].pagesTotal || 0} trang</th></tr></thead>`;
      $('#listTong').html(listHTML);
      var html = `Tổng số: <div class="btn-group"><span class="btn btn-primary btn-sm">${pageInfo.recordsTotal || 0} hồ sơ</span><span class="btn btn-success btn-sm">${data[0].docsTotal || 0} văn bản</span><span class="btn btn-secondary btn-sm">${data[0].pagesTotal || 0} trang</span></div>`;
      $('#tongSo').html(html);
    } else { $('#tongSo').empty(); $('#listTong').empty() }
  });
  var reportTable = $('#dataFile').DataTable({
    ajax: {
      url: '/baocao/hoso/json',
      dataType: 'json',
      data: function (data) {
        delete data.columns
      }
    },
    dom: 'ltipr',
    processing: true,
    serverSide: true,
    ordering: false,
    deferRender: true,
    deferLoading: 0,
    select: { style: 'single' },
    language: { url: "/js/plugin/datatables/Vietnamese.json" },
    responsive: {
      details: {
        display: $.fn.dataTable.Responsive.display.modal({
          header: function (row) {
            var data = row.data();
            return 'Chi tiết hồ sơ';
          }
        }),
        renderer: $.fn.dataTable.Responsive.renderer.tableAll({ tableClass: 'table' })
      }
    },
    columns: [
      // { data: null, defaultContent: '', className: 'file-detail-info' },
      { data: 'RowNum', className: 'text-center' },
      { data: 'FondName', className: 'text-justify' },
      { data: "FileCatalog", className: 'text-center' },
      { data: "BoxNumber", className: 'text-center' },
      { data: "FileNumber", className: 'text-center' },
      { data: 'Title', className: 'text-justify' },
      {
        data: "StartDate",
        render: function (data, type, row) {
          return moment(data).isValid() ? moment(data).format("DD/MM/YYYY") : null;
        }
      },
      {
        data: "EndDate",
        render: function (data, type, row) {
          return moment(data).isValid() ? moment(data).format("DD/MM/YYYY") : null;
        }
      },
      { data: 'SheetNumber', className: 'text-center' },
      { data: 'PageNumber', className: 'text-center' },
      { data: 'totalDoc', className: 'text-center' },
      { data: 'Format', className: 'text-justify' },
      { data: 'Description', className: 'text-justify' },
      { data: 'EditedBy', className: 'text-justify' }
    ]
  });
  $('#dataFile').on('click', 'td:first-child', function (e) {
    e.stopPropagation();
  });
  $('#submit-btn').on('click', function (e) {
    reportTable.clear().draw();
    reportTable.ajax.url(`/baocao/hoso/json?${$("#report-file-form").serialize()}`).load();
  });
  //Chi tiết văn bản trong hồ sơ
  $('#detail-win').kendoWindow({
    width: '90%',
    position: { top: 0, left: '5%' },
    title: 'Danh sách văn bản trong hồ sơ',
    animation: {
      open: { duration: 500 },
      close: { duration: 500 }
    },
    modal: true,
    visible: false,
    actions: ['Pin', 'Minimize', 'Maximize', 'Close'],
    close: function (e) {
      reportTable.rows().deselect();
    }
  });
  $('#detailTable').on('xhr.dt', function (e, settings, json, xhr) {
    if (json['data'] && json['data'].length) $('#detail-win').data('kendoWindow').open();
  });
  var detailTable = $('#detailTable').DataTable({
    ajax: {
      url: "/sohoa/vanban",
      dataType: "json",
      headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
    },
    language: {
      url: "/js/plugin/datatables/Vietnamese.json"
    },
    ordering: false,
    columns: [
      { data: "DocOrdinal" },
      {
        data: null,
        render: function (data, type, row) {
          var code = [];
          if (row.CodeNumber) code.push(row.CodeNumber);
          if (row.CodeNotation) code.push(row.CodeNotation);
          return code.join("/");
        }
      },
      { data: "Subject" },
      {
        data: "IssuedDate",
        render: function (data, type, row) {
          return data ? moment(data).format("DD/MM/YYYY") : "";
        }
      },
      { data: "PageAmount" },
      { data: "SheetAmount" },
      { data: "SheetIndex" },
      {
        data: "UUID",
        orderable: false,
        render: function (data, type, row) {
          return `<div class="btn-group">
                        <button class="btn btn-success btn-xs btn-icon preview-btn"><i class="fas fa-eye"></i></button>
                        <a href="/sohoa/vanban/${data}?download=true"><button class="btn btn-primary btn-xs btn-icon"><i class="fas fa-download"></i></button></a>
                      </div>`;
        }
      }
    ]
  });
  reportTable.on("select", function (e, dt, type, indexes) {
    var fileId = reportTable.rows(indexes).data()[0].UUID;
    detailTable.ajax.url(`/sohoa/vanban?fileId=${fileId}`).load();
  });
  //Bảng chi tiết văn bản
  $("#detailTable").on("click", ".preview-btn", function (e) {
    var docId = $("#detailTable").DataTable().row($(this).closest("tr")).data().UUID;
    $("<div/>").kendoDialog({
      width: '80%',
      height: '90%',
      title: 'Xem trước nội dung văn bản',
      content: `<iframe class="w-100 h-100" src="/viewer/${window.encodePath(`/sohoa/vanban/${docId}`)}"></iframe>`,
      modal: true,
      closable: true,
      buttonLayout: 'normal',
      animation: {
        open: { duration: 500 },
        close: { duration: 500 }
      },
      actions: [{ text: 'Đóng lại' }],
      open: function () { $('#detail-win').data('kendoWindow').close() },
      close: function (e) { $('#detail-win').data('kendoWindow').open(); e.sender.destroy() }
    }).data('kendoDialog').open();
  });
  $.validator.addMethod("lessThanEqual", function (value, element, param) {
    var val1 = parseInt(value);
    var val2 = parseInt($(param).val());
    return !(val1 && val2 && val1 > val2);
  });
  $.validator.addMethod("greaterThanEqual", function (value, element, param) {
    var val1 = parseInt(value);
    var val2 = parseInt($(param).val());
    return !(val1 && val2 && val1 < val2);
  });
  $("#report-file-form").validate({
    validClass: "success",
    highlight: function (element) {
      $(element).closest(".form-group").removeClass("has-primary").addClass("has-error");
    },
    unhighlight: function (element) {
      $(element).closest(".form-group").removeClass("has-error").addClass("has-primary");
    },
    errorPlacement: function (error, element) {
      $(element).closest(".form-group").find(".err-div").empty();
      $(element).closest(".form-group").find(".err-div").append(error);
    },
    rules: {
      fileNumber1: {
        lessThanEqual: "#fileNumber2"
      },
      fileNumber2: {
        greaterThanEqual: "#fileNumber1"
      },
      boxNumber1: {
        lessThanEqual: "#boxNumber2"
      },
      boxNumber2: {
        greaterThanEqual: "#boxNumber1"
      }
    },
    messages: {
      fileNumber1: {
        lessThanEqual: "Giá trị hồ sơ số không hợp lý",
        min: 'Hồ sơ số phải lớn hơn 0'
      },
      fileNumber2: {
        greaterThanEqual: "Giá trị hồ sơ số không hợp lý",
        min: 'Hồ sơ số phải lớn hơn 0'
      },
      boxNumber1: {
        lessThanEqual: "Giá trị hộp số không hợp lý",
        min: 'Hộp số phải lớn hơn 0'
      },
      boxNumber2: {
        greaterThanEqual: "Giá trị hộp số không hợp lý",
        min: 'Hộp số phải lớn hơn 0'
      }
    }
  });
  // Xuất báo cáo
  function exportPDF() {
    location.replace(`/baocao/hoso/pdf?${$("#report-file-form").serialize()}`);
  }
  function exportXLSX() {
    location.replace(`/baocao/hoso/excel?${$("#report-file-form").serialize()}`);
  }
  function exportDOCX() {
    location.replace(`/baocao/hoso/docx?${$("#report-file-form").serialize()}`);
  }
</script>