Загрузка данных
<!DOCTYPE html>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page session="true" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html lang="ru">
<jsp:include page="head.jsp"/>
<body>
<script type="text/javascript" src="<c:url value='/js/${version}/queryAction.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/${version}/queryTable.js'/>"></script>
<jsp:include page="FormUI.jsp" />
<jsp:include page="Utils.jsp" />
<script sec:authorize="hasRole('ROLE_DSPD_Manager')">
window.userHasRole = true;
</script>
<script sec:authorize="!hasRole('ROLE_DSPD_Manager')">
window.userHasRole = false;
</script>
<script type="text/javascript">
$(function () {
var selAct;
var filter_fields = [
{
id: 'filter_date_from',
label: 'Дата отчета с',
inputClass: 'date-picker-on',
value: "<fmt:formatDate value='' pattern='dd.MM.yyyy' />"
},
{
id: 'filter_date_to',
label: 'Дата отчета по',
inputClass: 'date-picker-on',
value: "<fmt:formatDate value='' pattern='dd.MM.yyyy' />"
}
];
var form_fields = [
{
id: 'date_report',
label: 'Дата',
inputClass: 'date-picker-on',
value: "<fmt:formatDate value='' pattern='dd.MM.yyyy' />"
},
{
id: 'my_report',
label: 'Отчетный месяц, год',
inputClass: 'date-picker-on',
value: "<fmt:formatDate value='' pattern='MM.yyyy' />"
},
{
id: 'service_type',
type: "select2",
label: 'Вид деятельности',
options: [
{
value: "",
text: ""
},
{
value: "OPS",
text: "ОПС"
},
{
value: "NPO",
text: "НПО"
},
{
value: "PDS",
text: "ПДС"
}
]
}
];
// ---- кнопки ----
var actions = [
{
id: 'btn_forming',
text: 'Сформировать',
type: 'submit',
class: 'btn btn-primary',
onClick: function () {
const dateMY = $('#my_report').val();
const [mStr, yStr] = dateMY.split('.');
const year = parseInt(yStr, 10);
const month = parseInt(mStr, 10) - 1;
const startDate = new Date(year, month, 1);
const endDate = new Date(year, month + 1, 0, 23, 59, 59, 999);
console.log(startDate.toLocaleDateString('ru-RU'));
QueryAction.action("a_forming_report_conformity_pu_bu", {
actionComplete: function (data) {
reportsTable.reload();
}
}, ()=>{
return {
startDate:startDate.toLocaleDateString('ru-RU'),
endDate: endDate.toLocaleDateString('ru-RU'),
service_type: $('#service_type').val(),
date_report: dateMY,
date_form: $('#date_report').val()
}
});
}
}
];
var actions_fil = [
{
id: 'btn_search',
text: 'Найти',
type: 'submit',
class: 'btn btn-success',
onClick: function () {
$("#isShow").val(1);
reportsTable.reload();
}
},
{
id: 'btn_clear',
text: 'Сбросить',
type: 'button',
class: 'btn btn-warning',
onClick: function () {
$("#isShow").val(0);
FormUI.clearValues('#form_filter');
reportsTable.reload();
}
}
];
// ---- рендер формы ----
FormUI.render('#form_form',
form_fields,
3,
actions,
{
select2: { allowClear:true },
actionsAlign: 'left'
});
FormUI.render('#form_filter',
filter_fields,
3,
actions_fil,
{
select2: { allowClear:true },
actionsAlign: 'left'
});
$('#my_report').datetimepicker({
date: new Date(),
format: 'MM.YYYY',
minDate: '01.01.1990'
});
$("#btn_search").prepend('<span class="glyphicon glyphicon-search" aria-hidden="true"></span> ');
$("#btn_clear").prepend('<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> ');
const cdate = new Date();
let day = '01';
const month = String(cdate.getMonth() + 1).padStart(2, '0');
const year = cdate.getFullYear();
$('#filter_date_from').val(day+'.'+month+'.'+year);
const lday = new Date(cdate.getFullYear(), cdate.getMonth() + 1, 0);
day = String(lday.getDate()).padStart(2, '0');
$('#filter_date_to').val(day+'.'+month+'.'+year);
$('#date_report').addClass('req');
$('#my_report').addClass('req');
$('#service_type').addClass('req');
$('#btn_forming').prop('disabled', true);
function butState() {
let allField = true;
if ($('#date_report').val()=='' ){
allField = false;
}
if ($('#my_report').val()=='' ){
allField = false;
}
if ($('#service_type').val()=='' ){
allField = false;
}
$('#btn_forming').prop('disabled', !allField);
}
$(document).on('input change changeDate dp.change', '.req', function(){
butState();
})
// Таблица
var reportsTable = new QueryTable("tbl_report_conformity_pu_bu", {
initComplete: function (queryAction) {
reportsTable.addActionButton("delReport", "Удалить", delReport, "btn-danger", true);
},
onRowSelect: function (data, index) {
compareTable.reload();
},
onRowDeselect: function (data, index) {
compareTable.reload();
},
drawCallback: function (settings) {
}
}, function () {
var data = {};
data.date_from = $("#filter_date_from").val();
data.date_to = $("#filter_date_to").val();
data.show_data = ($("#isShow").val() == 1);
return data;
}, {
selectFirstRow: false
});
var compareTable = new QueryTable("tbl_comparison_of_indicators", {
initComplete: function (queryAction) {
if (window.userHasRole) {
compareTable.addActionButton("addDetail", "Добавить", addDetail, "btn-success", false);
compareTable.addActionButton("delDetail", "Удалить", delDetail, "btn-danger", true);
}
compareTable.addActionButton("formReport", "Выгузить отчет", formReport, "btn-primary", false);
},
onRowSelect: function (data, index) {
},
onRowDeselect: function (data, index) {
},
drawCallback: function (settings) {
}
}, function () {
var data = {};
let tbl = reportsTable.data();
data.id = (tbl) ? tbl.id : -1;
return data;
}, {
selectFirstRow: false
});
var deleteReport = new QueryAction("a_del_report_conformity_pu_bu", {
actionComplete: function (data) {
console.log('h');
reportsTable.reload();
},
actionFailed: function(request, status, error) {
console.log('g')
console.log(error);
}
}, () => {
var data = {};
let tbl = reportsTable.data();
console.log(tbl.id);
data.id = (tbl) ? tbl.id : -1;
return data;
}
);
var actDetail = new QueryAction("a_add_del_comparison_indicator", {
initComplete: function (queryAction) {
actDetail.enable();
},
actionComplete: function (data) {
compareTable.reload();
}
}, function() {
let data = {};
data.act = selAct;
if (selAct == 'add') {
data.id = reportsTable.data().id;
data.account = $('#account').val();
data.pension_scheme_id = $('#pension_scheme_id').val();
data.strategy_id = $('#strategy_id').val();
data.operation_sum_pu = $('#sum_pu').val();
data.operation_sum_bu = $('#sum_bu').val();
} else {
data.id = compareTable.data().id;
}
return data;
}
);
$("#paramSignAgentIdBU").select2({
placeholder: "Подписант",
allowClear: true,
minimumInputLength: 0,
multiple: true,
id: function (e) {
return e.id;
},
ajax: {
url: "queryModel?queryModelCode=gM73j3Mo",
dataType: 'json',
data: function (term, page) {
return {
documentTypeId: 61 //Id типа документа подписания
};
},
results: function (data, page) {
return {
results: data.list
};
}
},
formatResult: function (data) {
return '<div>' + data.fio + '</div>';
},
formatSelection: function formatCheckSelection(data) {
return data.fio;
},
initSelection: function (element, callback) {
$.ajax("queryModel?queryModelCode=gM73j3Mo", {
dataType: "json",
data: {
sign_username: $(element).val(),
documentTypeId: 61 //Id типа документа подписания
}
}).done(function (data) {
callback(data.list[0]);
});
}
});
$("#paramSignAgentIdPU").select2({
placeholder: "Подписант",
allowClear: true,
minimumInputLength: 0,
multiple: true,
id: function (e) {
return e.id;
},
ajax: {
url: "queryModel?queryModelCode=gM73j3Mo",
dataType: 'json',
data: function (term, page) {
return {
documentTypeId: 61 //Id типа документа подписания
};
},
results: function (data, page) {
return {
results: data.list
};
}
},
formatResult: function (data) {
return '<div>' + data.fio + '</div>';
},
formatSelection: function formatCheckSelection(data) {
return data.fio;
},
initSelection: function (element, callback) {
$.ajax("queryModel?queryModelCode=gM73j3Mo", {
dataType: "json",
data: {
sign_username: $(element).val(),
documentTypeId: 61 //Id типа документа подписания
}
}).done(function (data) {
callback(data.list[0]);
});
}
});
//FUNCTIONS
function delReport() {
deleteReport.button().click();
}
function addDetail() {
selAct = 'add';
let addDialog = $("#modalWindow");
addDialog.modal('show');
//actDetail.button().click();
}
function delDetail() {
selAct = 'del';
actDetail.button().click();
}
function formReport() {
$("#reportParamModal").modal('show');
}
$('#printReport').click(function () {
let tbl = reportsTable.data();
let $id = (tbl) ? tbl.id : -1;
let st = (tbl) ? tbl.service_type : 'OPS';
var report = new QueryReport("rpt_akt_mapping_pu_bu", null, {
id: $id, signAgentIdPU : $('#paramSignAgentIdPU').val(),
signAgentIdBU : $('#paramSignAgentIdBU').val()});
report.run();
if (st != 'OPS') {
var report = new QueryReport("rpt_akt_mapping_pu_bu_big", null, {
id: $id, signAgentIdPU : $('#paramSignAgentIdPU').val(),
signAgentIdBU : $('#paramSignAgentIdBU').val()});
report.run();
}
$("#reportParamModal").modal('hide');
})
});
</script>
<jsp:include page="header.jsp"/>
<jsp:include page="navbar.jsp"/>
<div id="modalWindow" class="modal fade" tabindex="-1"
role="dialog" data-backdrop="static" aria-labelledby="modalWindow" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span>
<span class="sr-only">
<s:message code="dialog.close" />
</span>
</button>
<h4 class="modal-title">Добавить</h4>
</div>
<div class="modal-body">
<form id="addForm" class="form-vertical" role="form">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="account" class="col-sm-12 control-label">№ счета</label>
<div class="col-sm-12">
<input type="text" class="text-uppercase text-en-to-ru text-only-ru form-control" id="account" name="account" placeholder="№ счета" />
</div>
</div>
<div class="form-group">
<label for="pension_scheme_id" class="col-sm-2 control-label">Пенсионная схема</label>
<div class="col-sm-12">
<input type="text" class="text-uppercase text-en-to-ru text-only-ru form-control" id="pension_scheme_id" name="pension_scheme_id" placeholder="Пенсионная схема" />
</div>
</div>
<div class="form-group">
<label for="strategy_id" class="col-sm-12 control-label">Стратегия</label>
<div class="col-sm-12">
<input type="text" class=" form-control" id="strategy_id" name="strategy_id" placeholder="Стратегия" />
</div>
</div>
<div class="form-group">
<label for="sum_pu" class="col-sm-12 control-label">Сумма ПУ</label>
<div class="col-sm-12">
<input type="text" class="form-control" id="sum_pu" name="sum_pu" placeholder="Сумма ПУ" />
</div>
</div>
<div class="form-group">
<label for="sum_bu" class="col-sm-12 control-label">Сумма БУ</label>
<div class="col-sm-12">
<input type="text" class="form-control" id="sum_bu" name="sum_bu" placeholder="Сумма БУ" />
</div>
</div>
</div>
</div>
</form>
</div>
<!-- modal-body -->
<div class="modal-footer">
<jsp:include page="queryAction.jsp">
<jsp:param name="queryActionCode" value="a_add_del_comparison_indicator"/>
</jsp:include>
<button class="btn btn-default" type="button" data-dismiss="modal">
<s:message code="button.cancel"/>
</button>
</div>
<!-- modal-footer -->
</div>
<!-- modal-content -->
</div>
<!-- modal-dialog -->
</div>
<!-- modal-window -->
<div id="reportParamModal" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" aria-labelledby="reportParamModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span>
<span class="sr-only"><s:message code="dialog.close"/></span></button>
<h4 class="modal-title">Параметры выписки</h4>
</div>
<div class="modal-body">
<form id="reportParam" class="form-vertical" role="form">
<input type="hidden" id="paramReportKind" name='paramReportKind'>
<div class="row" id="paramSignAgentIdPU_div">
<div class="col-sm-8">
<div class="form-group">
<label for="paramSignAgentIdPU">Подписант со стороны ПУ</label>
<input type="text" id="paramSignAgentIdPU" name="SignAgentIdPU" class="form-control">
</div>
</div>
</div>
<div class="row" id="paramSignAgentIdBU_div">
<div class="col-sm-8">
<div class="form-group">
<label for="paramSignAgentIdBU">Подписант со стороны БУ</label>
<input type="text" id="paramSignAgentIdBU" name="SignAgentIdBU" class="form-control">
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" id="printReport" class="btn btn-primary" style="">Сформировать</button>
<button class="btn btn-default" type="button" data-dismiss="modal">
<s:message code="button.cancel"/></button>
</div>
</div>
</div>
</div>
<div class="container" id="mainContainer">
<div class="page-header">
<h1>Акт соответствия ПУ с данными БУ</h1>
</div>
<div class="container-fluid">
<div class="row row-main">
<jsp:include page="sidebar.jsp"/>
<div class="col-sm-10">
<tags:breadcrumbs path="https://portal.futurenpf.ru/knowledgebase/category/32484/"/>
<div id="form_filter"></div>
<input type="hidden" id="isShow" value="0">
<div id="form_form"></div>
<div class="row">
<input type="hidden" id="isShow" value="1">
<div class="col-sm-12">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="tbl_report_conformity_pu_bu"/>
<jsp:param name="queryTableStyle" value="width: 1000px;"/>
</jsp:include>
</div>
</div>
<hr>
<div class="row">
<input type="hidden" id="isShow" value="1">
<div class="col-sm-12">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="tbl_comparison_of_indicators"/>
<jsp:param name="queryTableStyle" value="width: 1000px;"/>
</jsp:include>
</div>
</div>
<div class="btn-group col-sm-12" style="display: none;">
<jsp:include page="queryAction.jsp">
<jsp:param name="queryActionCode" value="a_del_report_conformity_pu_bu"/>
</jsp:include>
</div>
<div class="btn-group col-sm-12" style="display: none;">
<jsp:include page="queryAction.jsp">
<jsp:param name="queryActionCode" value="a_add_del_comparison_indicator"/>
</jsp:include>
</div>
</div>
</div>
</div>
</div>
<jsp:include page="footer.jsp"/>
</body>
</html>
select DISTINCT a.id,
a.user_id,
concat_ws(' ', a.last_name, a.first_name, a.middle_name) as fio,
u.username
FROM ourpension.agent a
join security."USER" u on u.id = a.user_id
join ourpension.agent_position p on a.id = p.agent_id
join ourpension.letter_of_attorney l on p.id = l.agent_position_id
/*Документ-основание */
#if ( $supportingDocumentId )
and l.document_type = :supportingDocumentId
#end
/*дата должна быть в диапозоне действия доверености*/
and case when l.date is not null then COALESCE( CAST( :date AS date), now() ) >= l.date else true end
and case when l.expire_date is not null then COALESCE( CAST( :date AS date), now() ) <= l.expire_date else true end
join ourpension.letter_of_attorney_document_type ladt on ladt.loa_id = l.id
/*id типа документа подписания*/
and case when ladt.dt_id is not null and :documentTypeId is not null and :documentTypeId != 0 then ladt.dt_id = :documentTypeId else true end
where true
/*id типа документа подписания*/
#if ( $id )
and a.id = :id
#end
#if ( $sign_username )
and u.username = :sign_username
#end
#if ( $name && !$name.isEmpty() )
and concat_ws(' ', a.last_name, a.first_name, a.middle_name) ilike '%' || :name || '%'
#end
order by fio