Загрузка данных


<!DOCTYPE html>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/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>

<style>
    #searchUnvFilter .filter-wrapper {
        padding-left: 0;
        padding-right: 0;
        margin-bottom: 10px;
    }
    #searchUnvFilter .main-filter-buttons {
        margin-top: 12px;
        margin-bottom: 12px;
        white-space: nowrap;
    }
    #searchUnvFilter .main-filter-buttons .btn {
        margin-right: 8px;
    }
    #unvItemBlock {
        margin-top: 15px;
        display: none;
    }
</style>

<script type="text/javascript">
$(function () {

    var rowRegistry = null;

    // ==================== ЖУРНАЛ РЕЕСТРОВ (верхняя таблица) ====================
    var registryJournal = new QueryTable("UNV_REGISTRY_TABLE", {
        initComplete: function (queryAction) {
            registryJournal.queryAction = queryAction;

            registryJournal.addActionButton("CreateRegistry", "Создать", createRegistry, "btn-success", false);

            <sec:authorize access="hasAnyAuthority('ROLE_ADMIN')">
            registryJournal.addActionButton("DeleteRegistry", "Аннулировать", deleteRegistry, "btn-danger", true);
            </sec:authorize>

            registryJournal.addActionButton("SendToLkk", "Отправить в ЛКК", sendToLkk, "btn-primary", true);
            registryJournal.addActionButton("SendToFns", "Отправить в ФНС", sendToFns, "btn-primary", true);
        },

        onRowSelect: function (data, index) {
            rowRegistry = data;
            // Показываем нижнюю таблицу и перезагружаем её
            $('#unvItemBlock').stop(true, true).slideDown(150);
            registryItems.reload();
        },

        onRowDeselect: function (data, index) {
            rowRegistry = null;
            $('#unvItemBlock').stop(true, true).slideUp(150);
        }

    }, function () {
        var data = {};

        if ($("#filter\\.registry_date_from").val()) {
            data.registry_date_from = $("#filter\\.registry_date_from").val();
        }
        if ($("#filter\\.registry_date_to").val()) {
            data.registry_date_to = $("#filter\\.registry_date_to").val();
        }
        if ($("#filter\\.registry_number").val()) {
            data.registry_number = $("#filter\\.registry_number").val();
        }
        if ($("#filter\\.sent_date_from").val()) {
            data.sent_date_from = $("#filter\\.sent_date_from").val();
        }
        if ($("#filter\\.sent_date_to").val()) {
            data.sent_date_to = $("#filter\\.sent_date_to").val();
        }
        if ($("#filter\\.tax_period_year").val()) {
            data.tax_period_year = $("#filter\\.tax_period_year").val();
        }
        if ($("#filter\\.status").val()) {
            data.status = $("#filter\\.status").val();
        }
        if ($("#filter\\.error_code").val()) {
            data.error_code = $("#filter\\.error_code").val();
        }
        if ($("#filter\\.error_status").val()) {
            data.error_status = $("#filter\\.error_status").val();
        }

        return data;
    });

    // ==================== ДЕТАЛИЗАЦИЯ ПО КЛИЕНТАМ (нижняя таблица) ====================
    var registryItems = new QueryTable("UNV_REGISTRY_ITEM_TABLE", {
        initComplete: function (queryAction) {
        },
        onRowSelect: function (data, index) {
        },
        onRowDeselect: function (data, index) {
        }
    }, function () {
        var data = {};
        if (rowRegistry) {
            data.registry_id = rowRegistry.id;
        }
        return data;
    });

    // ==================== КНОПКИ ====================
    function createRegistry() {
        QueryAction.action("UNV_CREATE_REGISTRY", {
            actionComplete: function (data) {
                registryJournal.reload();
            }
        }, function () {
            return {};
        });
    }

    function deleteRegistry() {
        if (!confirm("Вы уверены, что хотите аннулировать реестр?")) return;

        QueryAction.action("UNV_DELETE_REGISTRY", {
            actionComplete: function (data) {
                registryJournal.reload();
                $('#unvItemBlock').stop(true, true).slideUp(150);
            }
        }, function () {
            return { registry_id: rowRegistry.id };
        });
    }

    function sendToLkk() {
        QueryAction.action("UNV_SEND_TO_LKK", {
            actionComplete: function (data) {
                registryJournal.reload();
            }
        }, function () {
            return { registry_id: rowRegistry.id };
        });
    }

    function sendToFns() {
        QueryAction.action("UNV_SEND_TO_FNS", {
            actionComplete: function (data) {
                registryJournal.reload();
            }
        }, function () {
            return { registry_id: rowRegistry.id };
        });
    }

    // ==================== ФИЛЬТР ====================
    $('#filter\\.search').click(function () {
        registryJournal.reload();
        $('#unvItemBlock').stop(true, true).slideUp(150);
    });

    $('#filter\\.cleanFilter').click(function () {
        $('#searchUnvFilter')[0].reset();
        registryJournal.reload();
        $('#unvItemBlock').stop(true, true).slideUp(150);
    });

});
</script>

<jsp:include page="header.jsp"/>
<jsp:include page="navbar.jsp"/>

<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="Персонифицированный учет / Отчетность / ФНС / Реестр на УНВ"/>

                <!-- ==================== ФИЛЬТР ==================== -->
                <form id="searchUnvFilter" class="form-horizontal">
                    <div class="col-sm-12 filter-wrapper">

                        <div class="col-sm-3">
                            <label for="filter.registry_date_from">Дата реестра с</label>
                            <input type="date" id="filter.registry_date_from"
                                   name="filter.registry_date_from" class="form-control">
                        </div>

                        <div class="col-sm-3">
                            <label for="filter.registry_date_to">Дата реестра по</label>
                            <input type="date" id="filter.registry_date_to"
                                   name="filter.registry_date_to" class="form-control">
                        </div>

                        <div class="col-sm-3">
                            <label for="filter.registry_number">№ реестра</label>
                            <input type="text" id="filter.registry_number"
                                   name="filter.registry_number" class="form-control"
                                   placeholder="№ реестра">
                        </div>

                        <div class="col-sm-3">
                            <label for="filter.tax_period_year">Налоговый период (год)</label>
                            <input type="text" id="filter.tax_period_year"
                                   name="filter.tax_period_year" class="form-control"
                                   placeholder="ГГГГ">
                        </div>

                        <div class="clearfix"></div>

                        <div class="col-sm-3" style="margin-top:10px;">
                            <label for="filter.sent_date_from">Дата отправки в ФНС с</label>
                            <input type="date" id="filter.sent_date_from"
                                   name="filter.sent_date_from" class="form-control">
                        </div>

                        <div class="col-sm-3" style="margin-top:10px;">
                            <label for="filter.sent_date_to">Дата отправки в ФНС по</label>
                            <input type="date" id="filter.sent_date_to"
                                   name="filter.sent_date_to" class="form-control">
                        </div>

                        <div class="col-sm-3" style="margin-top:10px;">
                            <label for="filter.status">Статус</label>
                            <select id="filter.status" name="filter.status" class="form-control">
                                <option value=""></option>
                                <option value="FORMED">Сформирован</option>
                                <option value="SENT_LKK">Отправлен в ЛКК</option>
                                <option value="ACCEPTED_LKK">Принят в ЛКК</option>
                                <option value="SENT_FNS">Отправлен в ФНС</option>
                                <option value="ACCEPTED_FNS">Принят в ФНС</option>
                                <option value="FNS_RESPONSE">Ответ ФНС</option>
                            </select>
                        </div>

                        <div class="col-sm-3" style="margin-top:10px;">
                            <label for="filter.error_code">Значение ошибки</label>
                            <input type="text" id="filter.error_code"
                                   name="filter.error_code" class="form-control"
                                   placeholder="Например: 01">
                        </div>

                        <div class="clearfix"></div>

                        <div class="col-sm-3" style="margin-top:10px;">
                            <label for="filter.error_status">Статус ошибки</label>
                            <select id="filter.error_status" name="filter.error_status" 
                                    class="form-control">
                                <option value=""></option>
                                <option value="NOT_FIXED">Не исправлено</option>
                                <option value="FIXED">Исправлено</option>
                            </select>
                        </div>

                        <div class="clearfix"></div>

                        <div class="col-sm-12 main-filter-buttons">
                            <button id="filter.search" type="button" class="btn btn-success">
                                <span class="glyphicon glyphicon-search"></span> Найти
                            </button>
                            <button id="filter.cleanFilter" type="button" class="btn btn-warning">
                                <span class="glyphicon glyphicon-trash"></span> Сбросить
                            </button>
                        </div>

                        <div class="clearfix"></div>
                    </div>
                </form>

                <!-- ==================== ВЕРХНЯЯ ТАБЛИЦА: РЕЕСТРЫ ==================== -->
                <jsp:include page="queryTable.jsp">
                    <jsp:param name="queryTableCode" value="UNV_REGISTRY_TABLE"/>
                </jsp:include>

                <!-- ==================== НИЖНЯЯ ТАБЛИЦА: КЛИЕНТЫ РЕЕСТРА ==================== -->
                <div id="unvItemBlock" class="panel panel-info">
                    <div class="panel-heading">Клиенты реестра</div>
                    <div class="panel-body">
                        <jsp:include page="queryTable.jsp">
                            <jsp:param name="queryTableCode" value="UNV_REGISTRY_ITEM_TABLE"/>
                        </jsp:include>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>

<jsp:include page="footer.jsp"/>

</body>
</html>