ESH/medicine_details_chart.php
2024-10-23 18:28:06 +05:30

128 lines
3.5 KiB
PHP

<?php
include('log_entry.php');
$label=array();
$data=array();
$v=array();
$colors=array("#FF7733",
"#F6FF33",
"#33FFDF",
"#334BFF" );
$backColor=array();
function isBinary(string $string):bool
{
if (strpos($string, ".")===FALSE){
return false;
}
return true;
}
$sql_query="SELECT t.item_id,sum(t.issued_qty) as total FROM `treatment` t left join employee_appointment a on t.appointment_id=a.appointment_id where Month(a.appointment_date) = Month(current_date)-1 GROUP by item_id order by total desc LIMIT 0,10";
error_log("id query:".$sql_query);
//$result=mysqli_query($conn,$sql_query);
if (!$result = @mysqli_query($conn,$sql_query)) {
exit(mysqli_error($conn));
}
if(mysqli_num_rows($result) > 0) {
$i=0;
while ($row = @mysqli_fetch_array($result)) {
// $item_sql="select item_name from tbl_items where item_id='".$row[0]."'";
// error_log("name query:".$item_sql);
// // $name_result=mysqli_query($conn,$item_sql);
// if (!$name_result = @mysqli_query($conn,$item_sql)) {
// exit(mysqli_error($conn));
// }
// while($name=mysqli_fetch_array($name_result))
// {
// array_push($label,$name[0]);
// }
$name="";
$name=getTableFieldValue("tbl_items","item_name","item_id",$row[0]);
array_push($label,$name);
error_log("type".gettype($row[1]));
if(isBinary($row[1])== true){
error_log("isbinary".bindec($row[1]));
$row[1]=bindec($row[1]);
}else{
$row[1]=($row[1]);
}
array_push($data,($row[1]));
array_push($backColor,$colors[$i]);
error_log("name".$label[$i]);
$i++;
error_log("in medicine chart".$data." ".($row[1]));
$v=$data;
}
} else {
echo '0';
}
?>
<script>
var xaxis = [<?php echo json_encode($label); ?>];
var chartData = [<?php echo join(',',$v); ?>];
// var color = [<?php echo join(',',$backColor); ?>];
console.log(chartData);
// function formatDate(input) {
// var datePart = input.match(/\d+/g),
// year = datePart[0],
// month = datePart[1],
// day = datePart[2];
// return day + '-' + month + '-' + year;
// }
for (let i = 0; i < 7; i++) {
xaxis[0][i] = (xaxis[0][i]);
}
var pieOptions = {
tooltips: {
enabled: false
},
responsive: true,
title: {
display: true,
text: "Top Medicines"
},
legend: {
position: "bottom"
},
tooltips: {
enabled: false
},
plugins: {
datalabels: {
formatter: (value, ctx) => {
let datasets = ctx.chart.data.datasets;
if (datasets.indexOf(ctx.dataset) === datasets.length - 1) {
let sum = datasets[0].data.reduce((a, b) => a + b, 0);
let percentage = Math.round((value / sum) * 100) + '%';
return percentage;
} else {
return percentage;
}
},
color: '#fff',
}
}
};
var ctx = document.getElementById('piechart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: xaxis[0],
datasets: [{
data: chartData,
label: "Medicine",
//borderColor: "#3e95cd",
backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc', '#d2d6de',
"#FF3383", "#33A4FF", "#43FF33", "#B9FF33"
],
options: pieOptions,
}]
},
options: pieOptions
});
</script>