319 lines
11 KiB
PHP
319 lines
11 KiB
PHP
<script>
|
|
function getTotalQuantity(counter) {
|
|
var selectedMedicine = $('#medicine' + counter).val();
|
|
|
|
console.log("Selected medicine ID: " + selectedMedicine); // Debugging line
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "stock_update.php",
|
|
dataType: "json",
|
|
data: { medicine_id: selectedMedicine, row_id: counter },
|
|
success: function (response) {
|
|
console.log(response);
|
|
if (response.error) {
|
|
alert('Error: ' + response.error);
|
|
} else {
|
|
$('#total_qty' + counter).val(response.total_quantity || 'Not available');
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
console.error('AJAX error: ' + textStatus + ', ' + errorThrown);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
// Aasish add the Function to fetch total quantity using AJAX
|
|
|
|
|
|
function save_consume() {
|
|
$.ajax({
|
|
url: 'save_consumables.php',
|
|
type: "POST",
|
|
data: $("#consume_form").serialize(),
|
|
success: function(data) {
|
|
|
|
BootstrapDialog.show({
|
|
message: 'Details Saved Successfully.',
|
|
buttons: [{
|
|
label: 'OK',
|
|
action: function(dialogItself) {
|
|
$('#consumables').modal("hide");
|
|
dialogItself.close();
|
|
|
|
|
|
|
|
|
|
}
|
|
}]
|
|
|
|
});
|
|
},
|
|
error: function(data) {
|
|
BootstrapDialog.alert('Error Saving Details');
|
|
//return;
|
|
}
|
|
});
|
|
}
|
|
function setConsumableItemBatchNo(count, batch) {
|
|
var item_id=$('#medicine'+count).val();
|
|
$.ajax({
|
|
url: 'get_item_batch_nos.php',
|
|
type: 'POST',
|
|
data: {
|
|
item_id: item_id,
|
|
batch:batch,
|
|
},
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
var content_item_batch =
|
|
"<option value=\"\" selected disabled >Please Select Batch No</option>";
|
|
if (data != null && data != "") {
|
|
item_batch = data;
|
|
for (var i = 0; i < data.length; i++) {
|
|
var select = '';
|
|
|
|
if ((batch == '' || batch == null) && i == 0) {
|
|
select = 'selected';
|
|
}
|
|
if (batch == data[i].item_batch_no) {
|
|
select = 'selected';
|
|
}
|
|
const expiryDate = new Date(data[i].expiry_date);
|
|
const currentDate = new Date();
|
|
const sixtyDaysLater = new Date(currentDate);
|
|
sixtyDaysLater.setDate(currentDate.getDate() + 60);
|
|
|
|
// Check if expiry is within the next 60 days
|
|
if (expiryDate > currentDate && expiryDate <= sixtyDaysLater) {
|
|
console.log("Alert condition reached.");
|
|
BootstrapDialog.alert("This " + data[i].item_batch_no + " batch no has expiry within the next 60 days");
|
|
}
|
|
|
|
content_item_batch += "<option value='" + data[i].item_batch_no + "' " + select + ">" +
|
|
data[i]
|
|
.item_batch_no + " (Expiry Date:" + myDateFormaterMonthYear(data[i].expiry_date) +
|
|
", Stock Qty:" + data[i].stock_qty + ")</option>"
|
|
}
|
|
}
|
|
$("#consum_item_batch_no" + count).html(content_item_batch);
|
|
},
|
|
error: function(data) {}
|
|
});
|
|
}
|
|
|
|
</script>
|
|
<div class="modal fade" id="consumables" role="dialog" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg">
|
|
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
|
|
</div>
|
|
<form role="form" id="consume_form" name="consume_form" action="#" method="post">
|
|
<div class="modal-body">
|
|
|
|
|
|
<div class="row">
|
|
<div class="col-sm-12 table-responsive">
|
|
<table id="intake_table" class="table table-striped table-bordered ordered-list" style="padding: 2px; margin: 2px;">
|
|
<thead>
|
|
<h3>
|
|
<center>CONSUMABLES</center>
|
|
</h3>
|
|
<tr class="success">
|
|
<!-- <th style="font-size: 9px; text-align: center;">Time</th> -->
|
|
<th style="font-size: 9px; text-align: center;">Item</th>
|
|
<th style="font-size: 9px; text-align: center;">Batch</th>
|
|
<!-- Aasish -->
|
|
<th style="font-size: 9px; text-align: center;">Available qty</th>
|
|
<!-- Aasish -->
|
|
<th style="font-size: 9px; text-align: center;">Issued qty</th>
|
|
<th style="font-size: 9px; text-align: center;"></th>
|
|
|
|
</tr>
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
|
<?php $i = 0;
|
|
$row = null;
|
|
if (isset($_REQUEST['appointmentId'])) {
|
|
$sql_intake = "select * from opd_consumables where consume_id ='" . $_REQUEST['appointmentId'] . "'";
|
|
error_log("ksfjckesncf" . $sql_intake);
|
|
$result_intake = mysqli_query($conn, $sql_intake);
|
|
$num_intake = @mysqli_num_rows($result_intake);
|
|
$row_intake = @mysqli_fetch_array($result_intake);
|
|
}
|
|
do {
|
|
?>
|
|
|
|
|
|
<tr>
|
|
|
|
<td style="width:20%">
|
|
<select class="form-control select2" id="medicine<?php echo $i ?>" name="medicine<?php echo $i ?>" data-placeholder="Choose a item..." style="width: 100%;" onchange="setConsumableItemBatchNo('<?php echo $i ?>','<?=$row_intake['medicine']?>'),getTotalQuantity(<?php echo $i; ?>)">
|
|
<option value=""></option>
|
|
<?php echo generate_options("SELECT item_id,trim(concat(ifnull(form_name,''),' ',item_name)) item_name FROM tbl_items i left join medicine_form f on i.item_form_id=f.form_id where status='1' and is_prescription!='1' and cat='8' order by item_name", $row_intake['medicine'], 'item_id', 'item_name', '', ''); ?>
|
|
|
|
</select>
|
|
|
|
</td>
|
|
<td style="width:20%">
|
|
<select onchange='' name="consum_item_batch_no<?php echo $i; ?>" id="consum_item_batch_no<?php echo $i; ?>" class="form-control">
|
|
<option value="" selected>Batches</option>
|
|
</select>
|
|
</td>
|
|
<!-- Aasish -->
|
|
<td style="width:20%">
|
|
<input class="form-control" value="<?php echo $total_quantity; ?>" name="total_qty<?php echo $i; ?>" id="total_qty<?php echo $i; ?>" type="text" readonly />
|
|
</td>
|
|
<!-- Aasish -->
|
|
|
|
<td style="width:20%">
|
|
<input class="form-control" value="<?php echo $row_intake['issued_qty'] ?>" name="issued_qty<?php echo $i ?>" id="issued_qty<?php echo $i ?>" type="text" />
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td style="width:20%; text-align:center">
|
|
<a href="#" class="btn-lg" data-toggle="tooltip" id="deletebtn" title="Delete"><span class="glyphicon glyphicon-trash"></span></a>
|
|
</td>
|
|
|
|
</tr>
|
|
<script>
|
|
setConsumableItemBatchNo('<?php echo $i ?>','<?=$row_intake['consum_item_batch_no']?>');
|
|
getTotalQuantity(<?php echo $i; ?>);
|
|
</script>
|
|
|
|
<?php
|
|
|
|
$i++;
|
|
} while ($row_intake = @mysqli_fetch_array($result_intake)) //end of while
|
|
?>
|
|
|
|
|
|
</tbody>
|
|
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="4" style="text-align: center; width:100%">
|
|
<button type="button" class="btn btn-block btn-primary btn-sm" id="addrow1">Add Consumable</button>
|
|
<input type="hidden" name="count_items1" id="count_items1" value="<?php echo $i ?>" />
|
|
<input id="appointment_id" type="hidden" style="height: 30px" class="form-control" name="appointment_id" value="<?php echo $_REQUEST['appointmentId'] ?>" />
|
|
|
|
<input id="emp_id" name="emp_id" type="hidden" value="<?php if ($row['emp_id'] != '' || $row['emp_id'] != null) {$emp_id = $row['emp_id'];
|
|
echo $row['emp_id'];
|
|
} else {$emp_id = $_REQUEST['emp_id'];
|
|
echo $_REQUEST['emp_id']; } ?>" />
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
</tr>
|
|
</tfoot>
|
|
|
|
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
|
|
<button type="button" class="btn btn-info btn-sm save_button" onclick="save_consume();">
|
|
SAVE
|
|
</button>
|
|
|
|
<button type="button" class="btn btn-danger btn-sm" data-dismiss="modal">
|
|
<i class="ace-icon fa fa-times bigger-110"></i>CANCEL
|
|
</button>
|
|
</div>
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
|
|
var itemOptions = "<?php echo generate_options("SELECT item_id,trim(concat(ifnull(form_name,''),' ',item_name)) item_name FROM tbl_items i left join medicine_form f on i.item_form_id=f.form_id where status='1' and is_prescription!='1' and cat='11' order by item_name", $row_treatment['item_id'], 'item_id', 'item_name', '', ''); ?> ";
|
|
|
|
|
|
$("#addrow1").on("click", function() {
|
|
var newRow = $("<tr>");
|
|
var counter = $("#count_items1").val();
|
|
var cols = "";
|
|
var select_treatment = "";
|
|
select_treatment += "<select ";
|
|
select_treatment += 'onchange= " setConsumableItemBatchNo(`'+ counter + '`,``),getTotalQuantity(' + counter + ')"';
|
|
select_treatment += "id=\"medicine" + counter + "\"name=\"medicine" + counter + "\" data-placeholder=\"Choose a item...\" class=\"form-control select2\" style=\"width: 100%;\" ";
|
|
//select_treatment+="style=\"display: none;\"";
|
|
select_treatment += ">";
|
|
|
|
select_treatment += "<option value=\"\"> </option>";
|
|
select_treatment += itemOptions
|
|
select_treatment += "</select>";
|
|
|
|
|
|
cols += '<td>' + select_treatment + '</td><td style="width:20%"><select name="consum_item_batch_no' + counter + '" id="consum_item_batch_no' + counter + '" class="form-control"><option value="" selected>Batches</option></select></td>';
|
|
|
|
cols += '<td><input type="text" readonly class="form-control" id="total_qty' + counter + '" name="total_qty' + counter + '"/></td>';
|
|
|
|
cols += '<td><input type="text" class="form-control" id="issued_qty' + counter + '" name="issued_qty' + counter + '"/></td>';
|
|
|
|
cols += '<td align="center"><a href="#" class="btn-lg" data-toggle="tooltip" id="deletebtn" title="Delete"><span class="glyphicon glyphicon-trash"></span></a></td>';
|
|
|
|
newRow.append(cols);
|
|
$("#intake_table").append(newRow);
|
|
/*$('#item_id'+counter).chosen({allow_single_deselect:true});
|
|
$('#item_id'+counter).next().css({'width': $('#item_id'+counter).parent().width()});*/
|
|
|
|
$('.date-picker').datepicker({
|
|
autoclose: true,
|
|
todayHighlight: true
|
|
})
|
|
$('#consume_time' + counter).datetimepicker({
|
|
format: 'DD/MM/YYYY h:mm A', //use this option to display seconds
|
|
defaultDate: new Date(),
|
|
maxDate: new Date(),
|
|
icons: {
|
|
time: 'fa fa-clock-o',
|
|
date: 'fa fa-calendar',
|
|
up: 'fa fa-chevron-up',
|
|
down: 'fa fa-chevron-down',
|
|
previous: 'fa fa-chevron-left',
|
|
next: 'fa fa-chevron-right',
|
|
today: 'fa fa-arrows',
|
|
clear: 'fa fa-trash',
|
|
close: 'fa fa-times'
|
|
}
|
|
}).next().on(ace.click_event, function() {
|
|
$(this).prev().focus();
|
|
});
|
|
|
|
counter++;
|
|
$('.select2').select2()
|
|
$("#count_items1").val(counter);
|
|
});
|
|
|
|
|
|
|
|
$("#intake_table").on("click", "#deletebtn", function(event) {
|
|
$(this).closest("tr").remove();
|
|
// counter -= 1
|
|
// $("#count_items1").val(counter);
|
|
});
|
|
$('.select2').select2()
|
|
|
|
});
|
|
|
|
// Aasish add the Function to fetch total quantity using AJAX
|
|
|
|
</script>
|