suncontractor and client download ui changes -a
This commit is contained in:
@@ -2,10 +2,8 @@
|
||||
|
||||
{% block content %}
|
||||
<div class="container mt-4">
|
||||
<h2 class="mb-4 text-center">Generate Subcontractor Report</h2>
|
||||
|
||||
<h2 class="mb-4">File Report</h2>
|
||||
|
||||
<!-- FLASH MESSAGES -->
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
{% if messages %}
|
||||
{% for category, message in messages %}
|
||||
@@ -17,23 +15,123 @@
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
<div class="card p-4 shadow-sm">
|
||||
<div class="card p-4 shadow-sm mx-auto" style="max-width: 600px;">
|
||||
<form method="POST" id="reportForm">
|
||||
<div class="mb-3">
|
||||
<label class="form-label fw-semibold">Select Subcontractor</label>
|
||||
<select name="subcontractor_id" class="form-select" required>
|
||||
<option value="">-- Select Subcontractor --</option>
|
||||
{% for sc in subcontractors %}
|
||||
<option value="{{ sc.id }}" {% if selected_sc_id==sc.id|string %}selected{% endif %}>
|
||||
{{ sc.subcontractor_name }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<form method="POST">
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input class="form-check-input" type="checkbox" name="download_all" value="true" id="downloadAllSwitch"
|
||||
onchange="toggleRAInput(this)" {% if download_all %}checked{% endif %}>
|
||||
<label class="form-check-label fw-bold text-primary" for="downloadAllSwitch">
|
||||
Download All RA Bills for this Contractor
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<!-- SELECT SUBCONTRACTOR -->
|
||||
<label class="form-label fw-semibold">Select Subcontractor</label>
|
||||
<select name="subcontractor_id" id="subcontractor_id" class="form-select mb-3" required>
|
||||
<option value="">-- Select Subcontractor --</option>
|
||||
<div class="mb-4" id="ra_bill_container">
|
||||
<label class="form-label fw-semibold">RA Bill Number</label>
|
||||
<input type="text" name="ra_bill_no" id="ra_bill_input" class="form-control" placeholder="e.g. 01"
|
||||
value="{{ ra_bill_no or '' }}">
|
||||
<small class="text-muted">Required if "Download All" is off.</small>
|
||||
</div>
|
||||
|
||||
{% for sc in subcontractors %}
|
||||
<option value="{{ sc.id }}">{{ sc.subcontractor_name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
|
||||
<button class="btn btn-primary w-100">Generate Report</button>
|
||||
<div class="row g-2">
|
||||
<div class="col-md-6">
|
||||
<button type="submit" name="action" value="preview" class="btn btn-outline-primary w-100 py-2">
|
||||
<i class="fas fa-eye me-2"></i>Preview Data
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<button type="submit" name="action" value="download" class="btn btn-primary w-100 py-2">
|
||||
<i class="fas fa-download me-2"></i>Download Excel
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
{% if tables %}
|
||||
<div class="mt-5 mb-5">
|
||||
<hr>
|
||||
<h3 class="text-center mb-4">Report Preview</h3>
|
||||
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header bg-light">
|
||||
<ul class="nav nav-tabs card-header-tabs" id="reportTabs" role="tablist">
|
||||
<li class="nav-item">
|
||||
<button class="nav-link active" id="tr-tab" data-bs-toggle="tab" data-bs-target="#tr"
|
||||
type="button">Transport (Tr.Ex.)</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" id="mh-tab" data-bs-toggle="tab" data-bs-target="#mh"
|
||||
type="button">Manpower (MH.Ex.)</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" id="dc-tab" data-bs-toggle="tab" data-bs-target="#dc" type="button">MH
|
||||
& DC</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-body tab-content" id="reportTabsContent">
|
||||
<div class="tab-pane fade show active" id="tr" role="tabpanel">
|
||||
<div class="table-responsive">
|
||||
{{ tables.tr | safe }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="mh" role="tabpanel">
|
||||
<div class="table-responsive">
|
||||
{{ tables.mh | safe }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="dc" role="tabpanel">
|
||||
<div class="table-responsive">
|
||||
{{ tables.dc | safe }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
/* Styling specifically for pandas output */
|
||||
.table-responsive .table {
|
||||
font-size: 0.9rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.table-responsive thead {
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function toggleRAInput(checkbox) {
|
||||
const input = document.getElementById('ra_bill_input');
|
||||
const container = document.getElementById('ra_bill_container');
|
||||
if (checkbox.checked) {
|
||||
input.value = "";
|
||||
input.disabled = true;
|
||||
container.style.opacity = "0.5";
|
||||
} else {
|
||||
input.disabled = false;
|
||||
container.style.opacity = "1";
|
||||
}
|
||||
}
|
||||
|
||||
// Check status on load to handle form persistence
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
toggleRAInput(document.getElementById('downloadAllSwitch'));
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user