EVOLUTION-NINJA
Edit File: subsidy_report.php
<!-- app/Views/reports/subsidy_report.php --> <?php echo view('includes/sidebar'); ?> <!-- ✅ JQUERY --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- ✅ DATATABLE --> <link rel="stylesheet" href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css"> <script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script> <!-- ✅ TOASTR --> <script src="<?php echo base_url('public/assets/toastr/toastr.min.js');?>"></script> <link rel="stylesheet" href="<?php echo base_url('public/assets/toastr/toastr.min.css');?>"> <section class="home-section" style="padding:15px"> <div class="home-content"></div> <!-- TITLE --> <div class="row m-0"> <div class="col-sm-12"> <h1 class="crt-pjt"> Subsidy Tracking Report </h1> </div> </div> <!-- FILTER FORM --> <form id="subsidyFilter"> <div class="row m-0"> <div class="constuency_page"> <div class="constuencydetails"> <div class="constuencydetail row"> <!-- FARMER --> <div class="col-sm-3"> <label class="inpfieldname"> Farmer Name </label> <select name="farmer_name" id="farmer_name" class="form-control fieldsbox"> <option value=""> All Farmers </option> </select> </div> <!-- UTR --> <div class="col-sm-3"> <label class="inpfieldname"> UTR No </label> <select name="subsidy_utr" id="subsidy_utr" class="form-control fieldsbox"> <option value=""> All UTR </option> </select> </div> <!-- FROM DATE --> <div class="col-sm-3"> <label class="inpfieldname"> From Date </label> <input type="date" name="from_date" id="from_date" class="form-control fieldsbox"> </div> <!-- TO DATE --> <div class="col-sm-3"> <label class="inpfieldname"> To Date </label> <input type="date" name="to_date" id="to_date" class="form-control fieldsbox"> </div> </div> <!-- BUTTONS --> <div class="row mt-4 align-items-center"> <div class="col-sm-6"> <button type="submit" class="submit" style="width:200px"> Get Report </button> </div> <div class="col-sm-6 d-flex justify-content-end"> <button type="button" id="downloadExcel" class="btn btn-success"> Download Excel </button> </div> </div> </div> </div> </div> </form> <br><br> <!-- TABLE --> <div class="container-fluid table-responsive"> <table id="subsidyTable" class="display nowrap" style="width:100%"> <thead> <tr> <th>S N</th> <th>FARMER ID</th> <th>FARMER NAME</th> <th>FARMER ADDRESS</th> <th>SUBSIDY AMOUNT</th> <th>UTR NO</th> <th>SUBSIDY DATE</th> <th>RC PRICE</th> <th>TDS</th> <th>GST</th> <th>TAN NO</th> </tr> </thead> <!-- FOOTER --> <tfoot> <tr> <th colspan="4" style="text-align:right"> </th> <th id="totalSubsidy"> 0 </th> <th></th> <th></th> <th id="totalRCPrice"> 0 </th> <th></th> <th></th> <th></th> </tr> </tfoot> </table> </div> </section> <script> let table; $(document).ready(function () { loadFilters(); loadTable(); }); /* LOAD FILTERS */ function loadFilters() { $.ajax({ url: "<?= base_url('subsidy/get-report') ?>", type: "POST", dataType: "json", success: function(data) { let farmers = []; let utrs = []; data.forEach(function(row){ // FARMER if(row.farmer_name && !farmers.includes(row.farmer_name)) { farmers.push(row.farmer_name); $('#farmer_name').append( `<option value="${row.farmer_name}"> ${row.farmer_name} </option>` ); } // UTR if(row.subsidy_utr && !utrs.includes(row.subsidy_utr)) { utrs.push(row.subsidy_utr); $('#subsidy_utr').append( `<option value="${row.subsidy_utr}"> ${row.subsidy_utr} </option>` ); } }); } }); } /* LOAD TABLE */ function loadTable(filters = {}) { if ($.fn.DataTable.isDataTable('#subsidyTable')) { $('#subsidyTable').DataTable().destroy(); } // table = $('#subsidyTable').DataTable({ // processing: true, // destroy: true, // scrollX: true, // responsive: false, // autoWidth: false, // pageLength: 10, // ajax: { // url: // "<?= base_url('subsidy/get-report') ?>", // type: "POST", // data: filters, // dataSrc: "" // }, // columns: [ // { // data: null, // render: function(data, type, row, meta) // { // return meta.row + 1; // } // }, // { data: "farmer_code" }, // { data: "farmer_name" }, // { data: "farmer_address" }, // { data: "subsidy_amount" }, // { data: "subsidy_utr" }, // { // data: "subsidy_date", // render: function(data) // { // if(!data) return ''; // let d = new Date(data); // return d.toLocaleDateString('en-GB'); // } // }, // { data: "total_amt" }, // { data: "tds" }, // { data: "gst" }, // { data: "tan_no" } // ], // footerCallback: function(row, data, start, end, display) // { // let api = this.api(); // // TOTAL SUBSIDY // let subsidyTotal = api // .column(4, { page: 'current' }) // .data() // .reduce(function(a, b){ // return parseFloat(a || 0) // + parseFloat(b || 0); // }, 0); // // TOTAL RC PRICE // let rcTotal = api // .column(7, { page: 'current' }) // .data() // .reduce(function(a, b){ // return parseFloat(a || 0) // + parseFloat(b || 0); // }, 0); // // FOOTER DISPLAY // $('#totalSubsidy').html( // subsidyTotal.toLocaleString('en-IN') // ); // $('#totalRCPrice').html( // rcTotal.toLocaleString('en-IN') // ); // } // }); table = $('#subsidyTable').DataTable({ processing: true, destroy: true, scrollX: false, scrollCollapse: false, responsive: false, autoWidth: false, pageLength: 10, fixedHeader: false, ajax: { url: "<?= base_url('subsidy/get-report') ?>", type: "POST", data: filters, dataSrc: "" }, columns: [ { data: null, render: function(data, type, row, meta) { return meta.row + 1; } }, { data: "farmer_code" }, { data: "farmer_name" }, { data: "farmer_address" }, { data: "subsidy_amount" }, { data: "subsidy_utr" }, { data: "subsidy_date", render: function(data) { if(!data) return ''; let d = new Date(data); return d.toLocaleDateString('en-GB'); } }, { data: "total_amt" }, { data: "tds" }, { data: "gst" }, { data: "tan_no" } ], footerCallback: function(row, data, start, end, display) { let api = this.api(); let subsidyTotal = api .column(4, { page: 'current' }) .data() .reduce(function(a, b){ return parseFloat(a || 0) + parseFloat(b || 0); }, 0); let rcTotal = api .column(7, { page: 'current' }) .data() .reduce(function(a, b){ return parseFloat(a || 0) + parseFloat(b || 0); }, 0); $('#totalSubsidy').html( subsidyTotal.toLocaleString('en-IN') ); $('#totalRCPrice').html( rcTotal.toLocaleString('en-IN') ); } }); } /* FILTER SUBMIT */ $('#subsidyFilter').submit(function(e){ e.preventDefault(); let filters = { farmer_name: $('#farmer_name').val(), subsidy_utr: $('#subsidy_utr').val(), from_date: $('#from_date').val(), to_date: $('#to_date').val() }; loadTable(filters); }); /* EXCEL DOWNLOAD */ $('#downloadExcel').click(function () { window.location.href = "<?= base_url('subsidy/export-excel') ?>"; }); </script> <?php echo view('includes/footer'); ?>