GST Release Add, Edit, Delete Working
This commit is contained in:
@@ -15,17 +15,21 @@
|
||||
<button id="addButton" class="action-button">Add</button>
|
||||
<button id="displayButton" class="action-button">Display</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="addForm" style="display: none;">
|
||||
<h2>Add GST Release</h2>
|
||||
<form action="/add_gst_release" method="POST" onsubmit="showSuccessAlert(event)">
|
||||
<div class="row1">
|
||||
<div>
|
||||
<label for="subcontractor">Subcontractor Name:</label>
|
||||
<input type="text" id="subcontractor" name="subcontractor" required autocomplete="off"/>
|
||||
<input type="hidden" id="subcontractor_id" name="subcontractor_id"/>
|
||||
<div id="subcontractor_list" class="autocomplete-items"></div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="subcontractor">Subcontractor Name:</label>
|
||||
<!-- Text input for user-friendly autocomplete -->
|
||||
<input type="text" id="subcontractor" name="subcontractor" required autocomplete="off"/>
|
||||
|
||||
<!-- Hidden input for backend; must match model's Contractor_ID -->
|
||||
<input type="hidden" id="subcontractor_id" name="Contractor_ID"/>
|
||||
|
||||
<div id="subcontractor_list" class="autocomplete-items"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label for="PMC_No">PMC No:</label><br>
|
||||
@@ -37,19 +41,19 @@
|
||||
</select><br><br>
|
||||
|
||||
<label for="invoice_No">Invoice No:</label><br>
|
||||
<input type="text" id="invoice_No" name="invoice_No" required><br><br>
|
||||
<input type="text" id="invoice_No" name="Invoice_No" required><br><br>
|
||||
|
||||
<label for="basic_amount">Basic Amount:</label><br>
|
||||
<input type="number" step="0.01" id="basic_amount" name="basic_amount" placeholder="₹ - 00.00" required><br><br>
|
||||
<input type="number" step="0.01" id="basic_amount" name="Basic_Amount" placeholder="₹ - 00.00" required><br><br>
|
||||
|
||||
<label for="final_amount">Final Amount:</label><br>
|
||||
<input type="number" step="0.01" id="final_amount" name="final_amount" placeholder="₹ - 00.00" required><br><br>
|
||||
<input type="number" step="0.01" id="final_amount" name="Final_Amount" placeholder="₹ - 00.00" required><br><br>
|
||||
|
||||
<label for="total_amount">Total Amount:</label><br>
|
||||
<input type="number" step="0.01" id="total_amount" name="total_amount" placeholder="₹ - 00.00" required><br><br>
|
||||
<input type="number" step="0.01" id="total_amount" name="Total_Amount" placeholder="₹ - 00.00" required><br><br>
|
||||
|
||||
<label for="utr">UTR:</label><br>
|
||||
<input type="text" id="utr" name="utr" required><br><br>
|
||||
<input type="text" id="utr" name="UTR" required><br><br>
|
||||
|
||||
<button type="submit">Submit GST Release</button>
|
||||
</form>
|
||||
@@ -117,46 +121,61 @@
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Handle subcontractor autocomplete
|
||||
document.getElementById("subcontractor").addEventListener("input", function () {
|
||||
|
||||
const subcontractorInput = document.getElementById("subcontractor");
|
||||
const subcontractorIdInput = document.getElementById("subcontractor_id");
|
||||
const subcontractorList = document.getElementById("subcontractor_list");
|
||||
const pmcDropdown = document.getElementById("PMC_No");
|
||||
const form = document.querySelector('form');
|
||||
|
||||
// --------------------------
|
||||
// Subcontractor autocomplete
|
||||
// --------------------------
|
||||
subcontractorInput.addEventListener("input", function () {
|
||||
const query = this.value;
|
||||
const list = document.getElementById("subcontractor_list");
|
||||
|
||||
if (query.length < 2) {
|
||||
list.innerHTML = '';
|
||||
subcontractorList.innerHTML = '';
|
||||
subcontractorIdInput.value = ''; // reset hidden id
|
||||
pmcDropdown.innerHTML = '<option value="">Select PMC No</option>'; // reset PMC dropdown
|
||||
return;
|
||||
}
|
||||
|
||||
fetch(`/search_subcontractor?query=${encodeURIComponent(query)}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
list.innerHTML = '';
|
||||
subcontractorList.innerHTML = '';
|
||||
data.results.forEach(item => {
|
||||
const div = document.createElement("div");
|
||||
div.setAttribute("data-id", item.id);
|
||||
div.textContent = item.name;
|
||||
list.appendChild(div);
|
||||
subcontractorList.appendChild(div);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Handle subcontractor selection
|
||||
document.getElementById("subcontractor_list").addEventListener("click", function (e) {
|
||||
// --------------------------
|
||||
// Subcontractor selection
|
||||
// --------------------------
|
||||
subcontractorList.addEventListener("click", function (e) {
|
||||
const selectedId = e.target.getAttribute("data-id");
|
||||
const selectedName = e.target.textContent;
|
||||
|
||||
if (selectedId) {
|
||||
document.getElementById("subcontractor_id").value = selectedId;
|
||||
document.getElementById("subcontractor").value = selectedName;
|
||||
document.getElementById("subcontractor_list").innerHTML = "";
|
||||
// Set hidden field for backend
|
||||
subcontractorIdInput.value = selectedId;
|
||||
|
||||
// Update PMC dropdown for selected subcontractor
|
||||
// Set text input to selected name
|
||||
subcontractorInput.value = selectedName;
|
||||
|
||||
// Clear the autocomplete list
|
||||
subcontractorList.innerHTML = "";
|
||||
|
||||
// Fetch and populate PMC dropdown
|
||||
fetch(`/get_pmc_nos_by_subcontractor/${encodeURIComponent(selectedId)}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
const pmcDropdown = document.getElementById("PMC_No");
|
||||
pmcDropdown.innerHTML = '<option value="">Select PMC No</option>';
|
||||
|
||||
data.pmc_nos.forEach(pmc => {
|
||||
const option = document.createElement("option");
|
||||
option.value = pmc;
|
||||
@@ -166,6 +185,22 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// --------------------------
|
||||
// Form submit validation
|
||||
// --------------------------
|
||||
form.addEventListener('submit', function(e) {
|
||||
if (!subcontractorIdInput.value) {
|
||||
e.preventDefault();
|
||||
alert("Please select a subcontractor from the list.");
|
||||
subcontractorInput.focus();
|
||||
} else if (!pmcDropdown.value) {
|
||||
e.preventDefault();
|
||||
alert("Please select a PMC No.");
|
||||
pmcDropdown.focus();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user