????
Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/views/baocao/ |
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>