????

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/vanban.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 văn bản</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-doc-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="state">Trạng thái văn bản số</label>
                        <select id="state" class="form-control" name="state">
                          <option></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="issuedDate1">Ngày tháng văn bản</label>
                        <div class="input-group" id="issuedDate">
                          <input class="form-control" type="text" name="issuedDate1" id="issuedDate1"
                            placeholder="Từ ngày">
                          <span class="input-group-text"> - </span>
                          <input class="form-control" type="text" name="issuedDate2" id="issuedDate2"
                            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-8 mx-auto">
                    <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
                  VĂN BẢN</strong></div>
              <table id="dataDocument" 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 class="none">Mục lục số</th>
                    <th class="none">Hộp số</th>
                    <th class="none">Hồ sơ số</th>
                    <th class="none">Số thứ tự trong hồ sơ</th>
                    <th class="none">Loại văn bản</th>
                    <th style="max-width: 100px">Số, ký hiệu</th>
                    <th style="max-width: 100px">Ngày ban hành</th>
                    <th style="min-width: 100px">Tác giả văn bản</th>
                    <th style="min-width: 300px">Trích yếu nội dung</th>
                    <th style="width: 10px">Số trang</th>
                    <th class="none">Tờ số</th>
                    <th class="none">Số tờ</th>
                    <th class="none">Độ mật</th>
                    <th class="none">Ghi chú</th>
                    <th style="width: 80px">Cán bộ số hóa</th>
                    <th style="max-width: 80px" class="control">Xem/Tải</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 view văn bản-->
<div class="modal" id="view-modal">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <!-- Modal body -->
      <div class="modal-body" id="view-frame">
        <iframe class="w-100" style="min-height:100vh"></iframe>
      </div>
      <!-- Modal footer -->
      <div class="modal-footer">
        <a id="doc-view-link"><button class="btn btn-primary btn-sm">Tải xuống</button></a>
        <button type="button" class="btn btn-danger btn-sm" data-dismiss="modal">Đóng lại</button>
      </div>
    </div>
  </div>
</div>
<script type="text/javascript" src="/js/baocao/file-save.js"></script>
<script type="text/javascript">
  $('#issuedDate').datepicker({
    format: "dd/mm/yyyy",
    autoclose: true,
    language: "vi",
    inputs: $("#issuedDate1, #issuedDate2"),
    keepEmptyValues: true
  });
  $("#issuedDate1, #issuedDate2").inputmask('datetime', { inputFormat: "dd/mm/yyyy" });

  $('#state').select2({
    data: [
      { id: 1, text: 'Chưa số hóa' },
      { id: 2, text: 'Đã số hóa' }
    ],
    allowClear: true,
    theme: 'bootstrap4',
    placeholder: 'Chọn trạng thái số hóa văn bản'
  });
  $('#fond').select2({
    ajax: {
      url: '/danhmuc/phong/json',
      dataType: 'json',
      processResults: function (data, params) {
        return {
          results: data.map(x => ({ id: x.FondCode, text: x.FondName }))
        }
      }
    },
    allowClear: true,
    theme: 'bootstrap4',
    placeholder: 'Chọn phông lưu trữ'
  });
  $('#dataDocument').on('draw.dt', function (e) {
    var data = reportTable.data();
    if (data.count()) {
      var html = `Tổng số: <div class="btn-group"><span class="btn btn-primary btn-sm">${data[0].recordsTotal || 0} văn bản</span><span class="btn btn-secondary btn-sm">${data[0].tongSoTrang || 0} trang</span></div>`;
      $('#tongSo').html(html);
    } else { $('#tongSo').empty() }
  });
  var reportTable = $('#dataDocument').DataTable({
    ajax: {
      url: '/baocao/vanban/json',
      dataType: 'json',
      data: function (data) {
        delete data.columns
      }
    },
    dom: 'ltipr',
    processing: true,
    serverSide: true,
    ordering: false,
    deferRender: true,
    deferLoading: 0,
    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 văn bản';
          }
        }),
        renderer: $.fn.dataTable.Responsive.renderer.tableAll({ tableClass: 'table' })
      }
    },
    columns: [
      { data: null, defaultContent: '' },
      { 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: "DocOrdinal", className: 'text-center' },
      { data: 'TypeName', className: 'text-justify' },
      {
        data: "CodeNumber",
        className: 'text-center',
        render: function (data, type, row) {
          var code = [];
          if (data) code.push(data);
          if (row.CodeNotation) code.push(row.CodeNotation);
          return code.join('/');
        }
      },
      {
        data: "IssuedDate",
        render: function (data, type, row) {
          return moment(data).isValid() ? moment(data).format("DD/MM/YYYY") : null;
        }
      },
      { data: 'OrganName', className: 'text-justify' },
      { data: 'Subject', className: 'text-justify' },
      { data: 'PageAmount', className: 'text-center' },
      { data: 'SheetIndex', className: 'text-center' },
      { data: 'SheetAmount', className: 'text-center' },
      { data: 'ModeName', className: 'text-justify' },
      { data: 'Description', className: 'text-justify' },
      { data: 'CreatedBy', className: 'text-justify' },
      {
        data: 'UUID',
        render: function (data, type, row) {
          return `<div class="btn-group">
                    <button class="btn btn-success btn-xs btn-icon preview-btn" onclick="viewPDF('${data}')"><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>`;
        }
      }
    ]
  });
  $('#submit-btn').on('click', function (e) {
    reportTable.clear().draw();
    reportTable.ajax.url(`/baocao/vanban/json?${$("#report-doc-form").serialize()}`).load();
  });
  function exportPDF() {
    location.replace(`/baocao/vanban/pdf?${$("#report-doc-form").serialize()}`);
  }
  function exportXLSX() {
    location.replace(`/baocao/vanban/excel?${$("#report-doc-form").serialize()}`);
  }
  function exportDOCX() {
    location.replace(`/baocao/vanban/docx?${$("#report-doc-form").serialize()}`);
  }
  $.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-doc-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'
      }
    }
  });
  function viewPDF(docId) {
    $("#view-frame iframe").attr("src", "/viewer/" + window.encodePath(`/sohoa/vanban/${docId}`));
    $("#view-modal").modal("show");
  }
</script>