{#
    ledger-pyreport
    Copyright © 2020  Lee Yingtong Li (RunasSudo)
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.
 
    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
#}

{% extends 'base.html' %}

{% block title %}ledger-pyreport{% endblock %}

{% block head %}
	<style type="text/css">
		body {
			padding: 2em;
		}
	</style>
{% endblock %}

{% block body %}
	<div class="index-group">
		<form action="{{ url_for('trial') }}">
			<button type="submit">Trial balance</button>
			<label>Date: <input name="date" data-inputgroup="date" value="{{ date.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<button class="fy-btn">FY</button>
			<label>Period start: <input name="pstart" data-inputgroup="pstart" value="{{ pstart.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<label>
				Compare <input type="number" name="compare" data-inputgroup="compare" value="0" style="width: 2em;" oninput="txtc(this)">
				<select name="cmpperiod" data-inputgroup="cmpperiod" oninput="selc(this)">
					<option value="year" selected>years</option>
					<option value="month">months</option>
				</select>
			</label>
			{#<label><input name="cash" data-inputgroup="cash" type="checkbox" oninput="chbc(this)"> Cash basis</label>#}
		</form>
	</div>
	
	<div class="index-group">
		<form action="{{ url_for('balance') }}">
			<button type="submit">Balance sheet</button>
			<label>Date: <input name="date" data-inputgroup="date" value="{{ date.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<button class="fy-btn">FY</button>
			<label>Period start: <input name="pstart" data-inputgroup="pstart" value="{{ pstart.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<label>
				Compare <input type="number" name="compare" data-inputgroup="compare" value="0" style="width: 2em;" oninput="txtc(this)">
				<select name="cmpperiod" data-inputgroup="cmpperiod" oninput="selc(this)">
					<option value="year" selected>years</option>
					<option value="month">months</option>
				</select>
			</label>
			{#<label><input name="cash" data-inputgroup="cash" type="checkbox" oninput="chbc(this)"> Cash basis</label>#}
		</form>
	</div>
	
	<div class="index-group">
		<form action="{{ url_for('pandl') }}">
			<button type="submit">Income statement</button>
			<label>Begin date: <input name="date_beg" data-inputgroup="pstart" value="{{ pstart.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<label>End date: <input name="date_end" data-inputgroup="date" value="{{ date.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<button class="fy-btn">FY</button>
			<label>
				Compare <input type="number" name="compare" data-inputgroup="compare" value="0" style="width: 2em;" oninput="txtc(this)">
				<select name="cmpperiod" data-inputgroup="cmpperiod" oninput="selc(this)">
					<option value="year" selected>years</option>
					<option value="month">months</option>
				</select>
			</label>
			{#<label><input name="cash" data-inputgroup="cash" type="checkbox" oninput="chbc(this)"> Cash basis</label>#}
			<label>Scope: <select name="scope">
				<option value="pandl" selected>P&L only</option>
				<option value="oci">OCI only</option>
				<option value="both">P&L and OCI</option>
			</select></label>
		</form>
	</div>
	
	<div class="index-group">
		<form action="{{ url_for('cashflow') }}">
			<button type="submit">Cash flows</button>
			<label>Begin date: <input name="date_beg" data-inputgroup="pstart" value="{{ pstart.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<label>End date: <input name="date_end" data-inputgroup="date" value="{{ date.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<button class="fy-btn">FY</button>
			<label>
				Compare <input type="number" name="compare" data-inputgroup="compare" value="0" style="width: 2em;" oninput="txtc(this)">
				<select name="cmpperiod" data-inputgroup="cmpperiod" oninput="selc(this)">
					<option value="year" selected>years</option>
					<option value="month">months</option>
				</select>
			</label>
			<label>Method: <select name="method">
				<option value="indirect" selected>Indirect</option>
				<option value="direct">Direct</option>
			</select></label>
		</form>
	</div>
	
	<div class="index-group">
		<form action="{{ url_for('transactions') }}">
			<button type="submit">General ledger</button>
			<label>Begin date: <input name="date_beg" data-inputgroup="pstart" value="{{ pstart.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<label>End date: <input name="date_end" data-inputgroup="date" value="{{ date.strftime('%Y-%m-%d') }}" style="width: 6em;" oninput="txtc(this)"></label>
			<button class="fy-btn">FY</button>
			{#<label><input name="cash" data-inputgroup="cash" type="checkbox" oninput="chbc(this)"> Cash basis</label>#}
		</form>
	</div>
	
	<script>
		// Called whenever a text input changes - update others to match
		function txtc(el) {
			for (var e2 of document.querySelectorAll('input[data-inputgroup="' + el.dataset['inputgroup'] + '"]')) {
				e2.value = el.value;
			}
		}
		
		// Ditto for checkboxes
		function chbc(el) {
			for (var e2 of document.querySelectorAll('input[data-inputgroup="' + el.dataset['inputgroup'] + '"]')) {
				e2.checked = el.checked;
			}
		}
		
		// Ditto for dropdowns
		function selc(el) {
			for (var e2 of document.querySelectorAll('select[data-inputgroup="' + el.dataset['inputgroup'] + '"]')) {
				e2.value = el.value;
			}
		}
		
		for (var el of document.querySelectorAll('button.fy-btn')) {
			(function(el) {
				el.addEventListener('click', function(evt) {
					var d_pstart = el.parentNode.querySelector('input[data-inputgroup="pstart"]').value;
					var bits = d_pstart.split('-');
					var d_date = (parseInt(bits[0]) + 1) + '-06-30';
					
					var e2 = el.parentNode.querySelector('input[data-inputgroup="date"]')
					e2.value = d_date;
					
					txtc(e2);
					evt.preventDefault();
				});
			})(el);
		}
	</script>
{% endblock %}