VŠTJ Stavební fakulta Praha - Oddíl OB
VŠTJ Stavební fakulta Praha - Oddíl OB

Přihlášky - vyúčtování

Tady je odkaz na Finanční pravidla, která platí už od roku 2023, měnilo se tam akorát výše příspěvků a kolik se platí jednotě...

Finanční pravidla

Finanční pravidla

{% set requestedYear = uri.query('year')|default(0)|int %} {% set requestedUserId = (uri.query('userid')|default('') ~ '')|trim %} {% set requestedFamilyId = (uri.query('family')|default('') ~ '')|trim %} {% set latestEntriesYear = oris_user_entries_latest_year()|default("now"|date("Y"))|int %} {% set year = requestedYear > 0 ? requestedYear : latestEntriesYear %} {% set currentYear = "now"|date("Y")|int %} {% set yearOptions = range(currentYear - 5, currentYear + 1)|reverse %}

{% set entries = oris_calculated_entries_data(year)|default([]) %} {% set familyData = oris_families_data()|default({'families': [], 'memberships': {}}) %} {% set families = familyData.families|default([]) %} {% set memberships = familyData.memberships|default({}) %} {% set userGroupsByKey = {} %} {% for entry in entries %} {% set entryUserId = (entry.UserID|default('') ~ '')|trim %} {% set entryRegNo = (entry.RegNo|default('') ~ '')|trim %} {% set entryName = (entry.Name|default('') ~ '')|trim %} {% set groupKey = entryRegNo ? ('r:' ~ entryRegNo) : (entryName ? ('n:' ~ entryName) : ('u:' ~ entryUserId)) %} {% set existingGroup = userGroupsByKey[groupKey]|default({'label': '', 'regNo': '', 'ids': [], 'primaryId': ''}) %} {% set groupIds = existingGroup.ids|default([]) %} {% if entryUserId and entryUserId not in groupIds %} {% set groupIds = groupIds|merge([entryUserId]) %} {% endif %} {% set groupPrimaryId = existingGroup.primaryId|default('') %} {% if groupPrimaryId == '' and entryUserId %} {% set groupPrimaryId = entryUserId %} {% endif %} {% set groupLabel = existingGroup.label|default('') %} {% if groupLabel == '' %} {% set groupLabel = entryName ? entryName : (entryRegNo ? entryRegNo : entryUserId) %} {% endif %} {% set groupRegNo = existingGroup.regNo|default('') %} {% if groupRegNo == '' and entryRegNo %} {% set groupRegNo = entryRegNo %} {% endif %} {% set userGroupsByKey = userGroupsByKey|merge({ (groupKey): {'label': groupLabel, 'regNo': groupRegNo, 'ids': groupIds, 'primaryId': groupPrimaryId} }) %} {% endfor %}

{% set usersById = {} %} {% set userIdToGroupKey = {} %} {% for groupKey, group in userGroupsByKey %} {% set groupPrimaryId = (group.primaryId|default('') ~ '')|trim %} {% if groupPrimaryId %} {% set groupLabel = (group.label|default('') ~ '')|trim %} {% set groupRegNo = (group.regNo|default('') ~ '')|trim %} {% set dropdownLabel = groupLabel %} {% if groupRegNo %} {% set dropdownLabel = groupLabel ~ ' (' ~ groupRegNo ~ ')' %} {% endif %} {% set usersById = usersById|merge({ ('k' ~ groupKey): {'id': groupPrimaryId, 'label': dropdownLabel} }) %} {% endif %} {% for groupedUserId in group.ids|default([]) %} {% set normalizedGroupedUserId = (groupedUserId ~ '')|trim %} {% if normalizedGroupedUserId %} {% set userIdToGroupKey = userIdToGroupKey|merge({ (normalizedGroupedUserId): groupKey }) %} {% endif %} {% endfor %} {% endfor %}

{% set selectedGroupKey = userIdToGroupKey[requestedUserId]|default('') %} {% set selectedGroup = selectedGroupKey ? userGroupsByKey[selectedGroupKey]|default(null) : null %} {% set selectedGroupUserIds = selectedGroup ? selectedGroup.ids|default([]) : [] %} {% set selectedPrimaryUserId = selectedGroup ? (selectedGroup.primaryId|default(requestedUserId)) : requestedUserId %}

{% set familyMembersByFamilyId = {} %} {% for userId, familyId in memberships %} {% set normalizedFamilyId = (familyId ~ '')|trim %} {% set normalizedUserId = (userId ~ '')|trim %} {% if normalizedFamilyId and normalizedUserId %} {% set existingMembers = familyMembersByFamilyId[normalizedFamilyId]|default([]) %} {% if normalizedUserId not in existingMembers %} {% set familyMembersByFamilyId = familyMembersByFamilyId|merge({ (normalizedFamilyId): existingMembers|merge([normalizedUserId]) }) %} {% endif %} {% endif %} {% endfor %}

{% set selectedFamilyMembers = requestedFamilyId ? familyMembersByFamilyId[requestedFamilyId]|default([]) : [] %}

{% set filteredEntries = [] %} {% for entry in entries %} {% set entryUserId = (entry.UserID|default('') ~ '')|trim %} {% if not requestedUserId and not requestedFamilyId %} {% set filteredEntries = filteredEntries|merge([entry]) %} {% elseif requestedUserId %} {% if selectedGroupUserIds|length > 0 and entryUserId in selectedGroupUserIds %} {% set filteredEntries = filteredEntries|merge([entry]) %} {% elseif selectedGroupUserIds|length == 0 and entryUserId == requestedUserId %} {% set filteredEntries = filteredEntries|merge([entry]) %} {% endif %} {% elseif requestedFamilyId %} {% if entryUserId in selectedFamilyMembers %} {% set filteredEntries = filteredEntries|merge([entry]) %} {% endif %} {% endif %} {% endfor %}

{% set totalFee = 0 %} {% set totalDoplatit = 0 %} {% set totalProplaciFsp = 0 %}

<style> .oris-entries-toolbar { margin: 15px 0; padding: 15px; background: #f5f5f5; border-radius: 5px; } .oris-entries-toolbar label { margin-right: 10px; font-weight: bold; } .oris-entries-toolbar select { margin-right: 15px; padding: 5px; min-width: 120px; } .oris-entries-summary { margin: 12px 0; } .oris-entries-table { width: 100%; border-collapse: collapse; margin-top: 15px; font-size: 14px; } .oris-entries-table th, .oris-entries-table td { border: 1px solid #ddd; padding: 8px; text-align: left; } .oris-entries-table th { background-color: #f5f5f5; font-weight: bold; } .oris-entries-table tfoot td { background-color: #f5f5f5; font-weight: bold; } .oris-entries-table tr.is-entry-stop-problem { background-color: #fdeaea; } .oris-entries-table tr.is-entry-stop-problem:hover { background-color: #f9dede; } .oris-entries-table tr:hover { background-color: #f9f9f9; } .oris-entries-empty { margin-top: 20px; color: #666; } </style>

{% if filteredEntries|length > 0 %}

Záznamů: {{ filteredEntries|length }}
{% for entry in filteredEntries %} {% set feeAmount = (entry.Fee|default('0')|replace({',': '.'})) + 0 %} {% set totalFee = totalFee + feeAmount %} {% set baseFeeValue = entry.BaseFee|default(entry.Fee|default('')) %} {% set refundedLabel = (entry.RefundAmount|default('0')|replace({',': '.'})) + 0 %} {% set paidLabel = entry.PaidLabel|default(entry.IsPaid|default(false) ? 'Ano' : 'Ne') %} {% set doplatit = (entry.Doplatit|default('0')|replace({',': '.'})) + 0 %} {% set doplatitReason = entry.DoplatitReason|default('') %} {% set classDesc = entry.ClassDesc|default('') %} {% set totalProplaciFsp = totalProplaciFsp + refundedLabel %} {% set totalDoplatit = totalDoplatit + doplatit %} {% endfor %}
EventID Datum Název Pořadatel Kat RegNo Jméno UserID Fee Termín Základní startovné Platila FSP Proplácí FSP Doplatit Důvod doplatku
{{ entry.EventID|default('') }} {{ entry.EventDate|default('') }} {{ entry.EventName|default('') }} {{ entry.EventOrgAbbr|default('') }} {{ classDesc }} {{ entry.RegNo|default('') }} {{ entry.Name|default('') }} {{ entry.UserID|default('') }} {{ entry.Fee|default('') }} {{ entry.EntryStop|default('') }} {{ baseFeeValue }} {{ paidLabel }} {{ refundedLabel }} {{ doplatit }} {{ doplatitReason }}
Celkem {{ totalFee }} {{ totalProplaciFsp }} {{ totalDoplatit }}

{% elseif entries|length == 0 %}

Pro rok {{ year }} nejsou k dispozici vypočtené přihlášky.

{% else %}

Pro uživatele {{ requestedUserId }} nejsou v roce {{ year }} k dispozici žádné záznamy.

{% endif %}

<script> (function() { var yearSelect = document.getElementById('entries-year'); var userSelect = document.getElementById('entries-user'); function updateUrl() { var url = new URL(window.location.href); if (yearSelect) { url.searchParams.set('year', yearSelect.value); } var familySelect = document.getElementById('entries-family'); if (userSelect && userSelect.value) { url.searchParams.set('userid', userSelect.value); url.searchParams.delete('family'); } else if (familySelect && familySelect.value) { url.searchParams.set('family', familySelect.value); url.searchParams.delete('userid'); } else { url.searchParams.delete('userid'); url.searchParams.delete('family'); } window.location.href = url.toString(); } if (yearSelect) { yearSelect.addEventListener('change', updateUrl); } var familySelect = document.getElementById('entries-family'); if (userSelect) { userSelect.addEventListener('change', function() { if (userSelect.value && familySelect) { familySelect.value = ''; } updateUrl(); }); } if (familySelect) { familySelect.addEventListener('change', function() { if (familySelect.value && userSelect) { userSelect.value = ''; } updateUrl(); }); } })(); </script>
expand_less <!script src="user/themes/fsp/js/material.min.js">