<?php if(isset($_GET['id']) && $_GET['id'] > 0){ $qry = $conn->query("SELECT * from `collection_list` where id = '{$_GET['id']}'"); if($qry->num_rows > 0){ foreach($qry->fetch_assoc() as $k => $v){ $$k=$v; } }else{ ?> <center>Unknown Collection ID</center> <style> #uni_modal .modal-footer{ display:none } </style> <div class="text-right"> <button class="btn btn-default bg-gradient-dark btn-flat" data-dismiss="modal"><i class="fa fa-times"></i> Close</button> </div> <?php exit; } } ?> <div class="container-fluid"> <form action="" id="collection-form"> <input type="hidden" name ="id" value="<?php echo isset($id) ? $id : '' ?>"> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label for="date_collected" class="control-label">Date Collected</label> <input name="date_collected" id="date_collected" type="date" class="form-control form-control-sm rounded-0" value="<?php echo isset($date_collected) ? $date_collected : ''; ?>" required> </div> <div class="form-group"> <label for="receipt" class="control-label">Receipt Number</label> <input name="receipt" id="receipt" type="text" class="form-control form-control-sm rounded-0" value="<?php echo isset($receipt) ? $receipt : ''; ?>" required> </div> <div class="form-group"> <label for="collection_method" class="control-label">Payment Method</label> <select name="collection_method" id="collection_method" class="form-control form-control-sm rounded-0 select2" required> <option value="" disabled <?= !isset($collection_method) ? "selected" : "" ?>>Select Payment Method</option> <?php $payment_method = $conn->query("SELECT * FROM `payment_method` ORDER BY `payment_method_name` ASC"); while($row = $payment_method->fetch_assoc()): ?> <option value="<?= $row['payment_method_name'] ?>" <?= isset($collection_method) && $collection_method == $row['payment_method_name'] ? "selected" : "" ?>><?= $row['payment_method_name'] ?></option> <?php endwhile; ?> </select> </div> <?php if(isset($_GET['mid'])): ?> <input type="hidden" name="member_id" value="<?= $_GET['mid'] ?>"> <?php else: ?> <div class="form-group"> <label for="member_id" class="control-label">Client Name</label> <select name="member_id" id="member_id" class="form-control form-control-sm rounded-0 select2" required> <option value="" disabled <?= !isset($member_id) ? "selected" : "" ?>></option> <?php $member = $conn->query("SELECT *,CONCAT(firstname, ' ',COALESCE(middlename,''), ' ' ,lastname) as fullname FROM `member_list` order by CONCAT(firstname, ' ',COALESCE(middlename,''), ' ' ,lastname) asc "); while($row = $member->fetch_assoc()): ?> <option value="<?= $row['id'] ?>" <?= isset($member_id) && $member_id == $row['id'] ? "selected" : "" ?>><?= $row['fullname'] ?></option> <?php endwhile; ?> </select> </div> <div class="form-group"> <label for="collected_by" class="control-label">Collected By</label> <select name="collected_by" id="collected_by" class="form-control form-control-sm rounded-0 select2" required> <option value="" disabled <?= !isset($collected_by) ? "selected" : "" ?>>Select Collector</option> <?php $collectors = $conn->query("SELECT * FROM `collectors` ORDER BY `collector_name` ASC"); while($row = $collectors->fetch_assoc()): ?> <option value="<?= $row['collector_name'] ?>" <?= isset($collected_by) && $collected_by == $row['collector_name'] ? "selected" : "" ?>><?= $row['collector_name'] ?></option> <?php endwhile; ?> </select> </div> <?php endif; ?> </div> <div class="col-md-6"> <table class="table table-stripped table-bordered"> <thead> <tr> <th class="text-center"> <div class="custom-control custom-checkbox"> <input class="custom-control-input custom-control-input-primary custom-control-input-outline" type="checkbox" id="checkall"> <label for="checkall" class="custom-control-label">All</label> </div> </th> <th class="text-center">Category</th> <th class="text-center">Fee</th> </tr> </thead> <tbody> <?php $collection_item = []; if(isset($id)){ $collection_qry = $conn->query("SELECT * FROM `collection_items` where collection_id = '{$id}' "); while($row = $collection_qry->fetch_assoc()){ $collection_item[$row['category_id']] = $row; } } $category = $conn->query("SELECT * FROM `category_list` " . (isset($id) ? "WHERE id in (SELECT category_id FROM `collection_items` WHERE collection_id = '{$id}')" : "") . " ORDER BY `name` ASC"); while($row = $category->fetch_assoc()): ?> <tr> <td class="px-2 py-1 align-middle text-center"> <input type="hidden" class="fee" id="fee<?= $row['id'] ?>" name="fee[<?= $row['id'] ?>]" value="<?= (isset($collection_item[$row['id']])) ? ($collection_item[$row['id']]['fee']) : ($row['fee']) ?>"> <div class="custom-control custom-checkbox"> <input name ="category_id[<?= $row['id'] ?>]" class="custom-control-input custom-control-input-primary custom-control-input-outline check-item" type="checkbox" id="cat_<?= $row['id'] ?>" value="<?= $row['id'] ?>" <?= (isset($collection_item[$row['id']])) ? 'checked' : '' ?>> <label for="cat_<?= $row['id'] ?>" class="custom-control-label"></label> </div> </td> <td class="px-2 py-1 align-middle"><?= $row['name'] ?></td> <td class="px-2 py-1 align-middle"><input class="form-control form-control-sm rounded-0" value="<?= $row['fee'] ?>" type="text" name="" id="<?= $row['id'] ?>"></td> </tr> <?php endwhile; ?> </tbody> </table> <div class="form-group"> <label for="total_amount" class="control-label">Total Collection</label> <input name="total_amount" id="total_amount" type="text"class="form-control form-control-sm rounded-0" value="<?php echo isset($total_amount) ? $total_amount : 0; ?>" readonly tabindex="-1"> </div> </div> </div> </form> </div> <script> function _checkAll(){ var total = $('.check-item').length var checked = $('.check-item:checked').length if(total == checked){ $('#checkall').prop('checked',true) }else{ $('#checkall').prop('checked',false) } } function calc_total(){ var total= 0; $('.check-item:checked').each(function(){ var tr = $(this).closest('tr') var fee = tr.find('input.fee').val() total += parseFloat(fee) }) $('#total_amount').val(total) } $('input[type="text"]').on('input', function() { var id = $(this).attr('id'); var value = $(this).val(); $('#fee'+id).val(value); // Create a new FormData object var formData = new FormData(); // Append key-value pairs to the FormData object formData.append('fee', value); formData.append('id', id); $.ajax({ url:_base_url_+"classes/Master.php?f=save_payment", data: formData, cache: false, contentType: false, processData: false, method: 'POST', type: 'POST', dataType: 'json', error:err=>{ console.error(err) }, success:function(resp){ } }) }); $(document).ready(function(){ $('#uni_modal').on('shown.modal.bs',function(){ $('.select2').select2({ placeholder:'Please Select Here', width:'100%', dropdownParent:$('#uni_modal') }) }) _checkAll() calc_total(); $('.check-item').change(function(){ _checkAll(); calc_total(); }) $('#checkall').change(function(){ if($(this).is(':checked') == true){ $('.check-item').prop('checked',true).trigger('change') }else{ $('.check-item').prop('checked',false).trigger('change') } _checkAll(); calc_total(); }) $('#uni_modal #collection-form').submit(function(e){ e.preventDefault(); var _this = $(this) $('.err-msg').remove(); var el = $('<div>') el.addClass("alert err-msg") el.hide() if(_this[0].checkValidity() == false){ _this[0].reportValidity(); return false; } if( $('.check-item:checked').length <=0){ alert_toast("Please Select at least 1 category first.",'error'); return false; } start_loader(); $.ajax({ url:_base_url_+"classes/Master.php?f=save_collection", data: new FormData($(this)[0]), cache: false, contentType: false, processData: false, method: 'POST', type: 'POST', dataType: 'json', error:err=>{ console.error(err) el.addClass('alert-danger').text("An error occured"); _this.prepend(el) el.show('.modal') end_loader(); }, success:function(resp){ if(typeof resp =='object' && resp.status == 'success'){ location.reload(); }else if(resp.status == 'failed' && !!resp.msg){ el.addClass('alert-danger').text(resp.msg); _this.prepend(el) el.show('.modal') }else{ el.text("An error occured"); console.error(resp) } $("html, body").scrollTop(0); end_loader() } }) }) $('.summernote').summernote({ height: 200, toolbar: [ [ 'style', [ 'style' ] ], [ 'font', [ 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear'] ], [ 'fontname', [ 'fontname' ] ], [ 'fontsize', [ 'fontsize' ] ], [ 'color', [ 'color' ] ], [ 'para', [ 'ol', 'ul', 'paragraph', 'height' ] ], [ 'table', [ 'table' ] ], [ 'view', [ 'undo', 'redo', 'fullscreen', 'codeview', 'help' ] ] ] }) }) </script>