EVOLUTION-NINJA
Edit File: ae_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');?>"> <style> .table-responsive{ overflow-x: auto; width: 100%; } #aeTable th, #aeTable td{ white-space: nowrap; } </style> <section class="home-section"> <div class="home-content"> <!--<i class='bx bx-menu'></i>--> </div> <!-- 🔷 TITLE --> <div class="row m-0"> <div class="col-sm-12"> <h1 class="crt-pjt">AE Report</h1> </div> </div> <!-- 🔷 FILTER FORM --> <form id="aeFilter"> <div class="row m-0"> <div class="constuency_page"> <div class="constuencydetails"> <div class="constuencydetail row"> <div class="col-sm-4"> <label class="inpfieldname">Farmer</label> <select name="farmer_name" class="form-control fieldsbox"></select> </div> <div class="col-sm-4"> <label class="inpfieldname">Dealer</label> <select name="dealer_name" class="form-control fieldsbox"></select> </div> <div class="col-sm-4"> <label class="inpfieldname">Model</label> <select name="model_name" class="form-control fieldsbox"></select> </div> </div> <div class="col-sm-6 buttns-cnl mt-3"> <button type="submit" class="submit" style="width:200px">Get Report</button> </div> </div> </div> </div> </form> <br><br> <!--<div class="container-fluid inp-lbl">--> <div class="container-fluid inp-lbl table-responsive"> <!--<table id="aeTable" class="display" style="width:100%">--> <table id="aeTable" class="display nowrap" style="width:100%"> <thead> <tr> <th>SL NO</th> <th>Farmer</th> <th>Dealer</th> <th>Model</th> <th>RC Price</th> <th>Subsidy</th> <th>Subsidy Status</th> <th>Farmer Share</th> <th>Farmer Paid</th> <th>Farmer Share Status</th> <th>AE Comm</th> <th>TDS</th> <th>GST</th> <th>UTR</th> <th>Action</th> </tr> </thead> </table> </div> </section> <script> $(document).ready(function () { console.log("✅ AE REPORT READY"); loadAEFilters(); // dropdown loadAEReport(); // table // 🔍 FILTER SUBMIT $('#aeFilter').on('submit', function (e) { e.preventDefault(); const formData = new FormData(this); loadAEReport(formData); }); }); // ✅ LOAD DROPDOWNS function loadAEFilters() { $.ajax({ url: "<?= base_url('ae/get-filters') ?>", type: "GET", success: function(res) { console.log("📦 FILTER DATA:", res); let farmer = $("select[name='farmer_name']"); let dealer = $("select[name='dealer_name']"); let model = $("select[name='model_name']"); farmer.html('<option value="">All</option>'); dealer.html('<option value="">All</option>'); model.html('<option value="">All</option>'); res.farmer.forEach(f => { farmer.append(`<option value="${f.farmer_name}">${f.farmer_name}</option>`); }); res.dealer.forEach(d => { dealer.append(`<option value="${d.dealer_name}">${d.dealer_name}</option>`); }); res.model.forEach(m => { model.append(`<option value="${m.model_name}">${m.model_name}</option>`); }); }, error: function(err){ console.log("❌ FILTER ERROR:", err.responseText); toastr.error("Failed to load filters"); } }); } // ✅ LOAD DATATABLE function loadAEReport(formData = null) { if ($.fn.DataTable.isDataTable('#aeTable')) { $('#aeTable').DataTable().destroy(); } $('#aeTable').DataTable({ processing: true, pageLength: 10, scrollX: true, ajax: { url: "<?= base_url('ae/get-report') ?>", type: "POST", data: function (d) { if (formData) { formData.forEach((value, key) => { d[key] = value; }); } }, dataSrc: function (json) { console.log("📊 AE DATA:", json); return json; }, error: function(xhr){ console.log("❌ TABLE ERROR:", xhr.responseText); toastr.error("Failed to load report"); } }, columns: [ { data: "id" }, { data: "farmer_name" }, { data: "dealer_name" }, { data: "model_name" }, { data: "rc_price" }, { data: "subsidy_amount" }, { data: null, render: function(data, type, row){ if(parseFloat(row.paid_subsidy) > 0){ return `<span class="badge bg-success">Paid to Dealer</span>`; } return `<span class="badge bg-warning">Pending</span>`; } }, { data: "farmer_share" }, { data: "farmer_paid" }, { data: null, render: function(data, type, row){ if(parseFloat(row.paid_farmer_share) > 0){ return `<span class="badge bg-success">Paid to Dealer</span>`; } return `<span class="badge bg-warning">Pending</span>`; } }, { data: "ae_commission" }, { data: "tds" }, { data: "gst" }, { data: "subsidy_utr" }, // { data: "payment_status" }, // ✅ NEW // { data: "paid_amount" }, // { data: "balance_amount" }, // ✅ ACTION BUTTONS { data: null, render: function (data, type, row) { // ✅ CHECK PAYMENT STATUS let subsidyPaid = parseFloat(row.paid_subsidy || 0) > 0; let farmerPaid = parseFloat(row.paid_farmer_share || 0) > 0; let paymentBtn = ''; // ✅ BOTH PAYMENTS COMPLETED if (subsidyPaid && farmerPaid) { paymentBtn = ` <button class="btn btn-sm btn-secondary" disabled> Paid </button> `; } else { paymentBtn = ` <button class="btn btn-sm btn-success paymentBtn" data-id="${row.id}"> Payment </button> `; } // ✅ RETURN BUTTONS return ` <div style="display:flex; gap:6px;"> <button class="btn btn-sm btn-warning editBtn" data-id="${row.id}"> Edit </button> <button class="btn btn-sm btn-danger deleteBtn" data-id="${row.id}"> Delete </button> ${paymentBtn} </div> `; // return ` // <div style="display:flex; gap:6px; align-items:center; white-space:nowrap;"> // <button class="btn btn-sm btn-warning editBtn" // data-id="${row.id}"> // Edit // </button> // <button class="btn btn-sm btn-danger deleteBtn" // data-id="${row.id}"> // Delete // </button> // ${paymentBtn} // <button class="btn btn-sm btn-primary invoiceBtn" // data-id="${row.id}"> // Invoice // </button> // </div> // `; } } ] }); } // ✅ EDIT $(document).on('click', '.editBtn', function () { let id = $(this).data('id'); window.location.href = "<?= base_url('ae/edit') ?>/" + id; }); // ✅ DELETE $(document).on('click', '.deleteBtn', function () { let id = $(this).data('id'); if (confirm("Are you sure to delete?")) { $.ajax({ url: "<?= base_url('ae/delete/') ?>" + id, type: "POST", success: function () { toastr.success("Deleted successfully"); loadAEReport(); }, error: function () { toastr.error("Delete failed"); } }); } }); </script> <script> $(document).on('click', '.paymentBtn', function () { let id = $(this).data('id'); // Example: redirect to payment page window.location.href = "<?= base_url('ae-payment-edit') ?>/" + id; // OR if you want popup / API call instead, tell me 👍 }); </script> <script> // $(document).on('click', '.invoiceBtn', function () { // let id = $(this).data('id'); // window.location.href = // "<?= base_url('view-invoice2') ?>/" + id; // }); // </script> <?php echo view('includes/footer'); ?>