Skip to content

Commit b23a10b

Browse files
Update status conditions and add date fields
1 parent 9dedab2 commit b23a10b

File tree

14 files changed

+3671
-56
lines changed

14 files changed

+3671
-56
lines changed

assets/css/bootstrap-select.min.css

Lines changed: 501 additions & 0 deletions
Large diffs are not rendered by default.

assets/js/bootstrap-select.min.js

Lines changed: 2915 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

functions/down-transaction.php

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,42 @@
11
<?php
22
include_once 'connection.php';
3-
3+
if (session_status() === PHP_SESSION_NONE) {
4+
session_start();
5+
}
46
$id = $_POST['data_id'];
57

68
$sql = "SELECT status FROM laundry WHERE id = :id";
79
$statement = $db->prepare($sql);
810
$statement->bindValue(':id', $id);
911
$statement->execute();
1012
$result = $statement->fetch();
11-
if($result['status'] == 0){
13+
if ($result['status'] == 0) {
1214
header('Location: ../queue.php?type=error&message=Transaction is pending and cannot be updated.');
1315
exit();
1416
}
1517

18+
if ($result['status'] == 0) {
19+
$status = 'Washing';
20+
$dateField = 'date0';
21+
} else if ($result['status'] == 1) {
22+
$status = 'Folding';
23+
$dateField = 'date1';
24+
} else if ($result['status'] == 2) {
25+
$status = 'Ready for Pickup';
26+
$dateField = 'date2';
27+
} else if ($result['status'] == 3) {
28+
$status = 'Order Claimed';
29+
$dateField = 'date3';
30+
}
31+
1632
$sql = "UPDATE laundry SET
17-
status = status - 1
33+
status = status - 1,
34+
$dateField = NOW()
1835
WHERE id = :id";
1936
$statement = $db->prepare($sql);
2037
$statement->bindValue(':id', $id);
2138
$statement->execute();
2239

23-
generate_logs('Update Transaction', $id.'| Transaction was updated to '.$status.' by '.$_SESSION['username'].'.');
40+
generate_logs('Update Transaction', $id . '| Transaction was updated to ' . $status . ' by ' . $_SESSION['username'] . '.');
2441
header('Location: ../queue.php?type=success&message=Transaction updated successfully!');
2542
exit();
26-
27-
?>

functions/modals/transaction-modal.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</div>
1010
<div class="modal-body">
1111
<form action="functions/transaction.php" method="post">
12-
<div class="mb-3"><label class="form-label" for="first_name"><strong>Select Customer</strong></label><select class="form-select" name="id">
12+
<div class="mb-3"><label class="form-label" for="first_name"><strong>Select Customer</strong></label><select class="selectpicker select" data-live-search="true" name="id">
1313
<optgroup label="Select Customer">
1414
<?php customer_list(); ?>
1515
</optgroup>

functions/proceed-transaction.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@
6060

6161
echo $total_price;
6262

63-
$sql = "UPDATE laundry SET status = 1 WHERE transaction_id = :id AND status = 0";
64-
$stmt = $db->prepare($sql);
65-
$stmt->bindParam(':id', $transaction_id);
66-
$stmt->execute();
63+
// $sql = "UPDATE laundry SET status = 1 WHERE transaction_id = :id AND status = 0";
64+
// $stmt = $db->prepare($sql);
65+
// $stmt->bindParam(':id', $transaction_id);
66+
// $stmt->execute();
6767

6868
$sql = "UPDATE transactions SET total = :total, status = 'completed' WHERE id = :id AND status = 'pending'";
6969
$stmt = $db->prepare($sql);

functions/setup.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@
5858
kilo DOUBLE,
5959
type INT,
6060
status VARCHAR(255),
61+
date0 DATETIME,
62+
date1 DATETIME,
63+
date2 DATETIME,
64+
date3 DATETIME,
6165
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
6266
FOREIGN KEY (transaction_id) REFERENCES transactions(id) ON DELETE CASCADE,
6367
FOREIGN KEY (type) REFERENCES prices(id) ON DELETE CASCADE

functions/up-transaction.php

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,44 @@
11
<?php
22
include_once 'connection.php';
3-
3+
if (session_status() === PHP_SESSION_NONE) {
4+
session_start();
5+
}
46
$id = $_POST['data_id'];
57

68
$sql = "SELECT status FROM laundry WHERE id = :id";
79
$statement = $db->prepare($sql);
810
$statement->bindValue(':id', $id);
911
$statement->execute();
1012
$result = $statement->fetch();
11-
if($result['status'] == 0){
12-
header('Location: ../queue.php?type=error&message=Transaction is pending and cannot be updated.');
13-
exit();
13+
// if($result['status'] == 0){
14+
// header('Location: ../queue.php?type=error&message=Transaction is pending and cannot be updated.');
15+
// exit();
16+
// }
17+
if ($result['status'] == 0) {
18+
$status = 'Pending';
19+
$dateField = 'date0';
20+
} else if ($result['status'] == 1) {
21+
$status = 'Washing';
22+
$dateField = 'date1';
23+
} else if ($result['status'] == 2) {
24+
$status = 'Folding';
25+
$dateField = 'date2';
26+
} else if ($result['status'] == 3) {
27+
$status = 'Ready for Pickup';
28+
$dateField = 'date3';
29+
} else if ($result['status'] == 4) {
30+
$status = 'Order Claimed';
31+
$dateField = 'date4';
1432
}
1533

1634
$sql = "UPDATE laundry SET
17-
status = status + 1
18-
WHERE id = :id";
35+
status = status + 1,
36+
$dateField = NOW()
37+
WHERE id = :id";
1938
$statement = $db->prepare($sql);
2039
$statement->bindValue(':id', $id);
2140
$statement->execute();
2241

23-
generate_logs('Update Transaction', $id.'| Transaction was updated to '.$status.' by '.$_SESSION['username'].'.');
42+
generate_logs('Update Transaction', $id . '| Transaction was updated to ' . $status . ' by ' . $_SESSION['username'] . '.');
2443
header('Location: ../queue.php?type=success&message=Transaction updated successfully!');
2544
exit();
26-
27-
?>
Lines changed: 73 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<?php
22
include_once 'functions/connection.php';
33

4-
function daily_chart(){
4+
function daily_chart()
5+
{
56
global $db;
67
$sql = "SELECT DATE(created_at) AS date, SUM(total) AS total_sales
78
FROM transactions
@@ -14,7 +15,7 @@ function daily_chart(){
1415

1516
$labels = [];
1617
$data = [];
17-
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
18+
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
1819
$date = date("M d, Y", strtotime($row['date']));
1920
$labels[] = $date;
2021
$data[] = $row['total_sales'];
@@ -33,13 +34,14 @@ function daily_chart(){
3334
];
3435

3536
$chartDataJson = json_encode($chartData);
36-
?>
37+
?>
3738
<canvas data-bss-chart='{"type":"line","data":<?php echo $chartDataJson; ?>,"options":{"maintainAspectRatio":false,"legend":{"display":false,"labels":{"fontStyle":"normal"}},"title":{"fontStyle":"normal"},"scales":{"xAxes":[{"gridLines":{"color":"rgb(234, 236, 244)","zeroLineColor":"rgb(234, 236, 244)","drawBorder":false,"drawTicks":false,"borderDash":["2"],"zeroLineBorderDash":["2"],"drawOnChartArea":false},"ticks":{"fontColor":"#858796","fontStyle":"normal","padding":20}}],"yAxes":[{"gridLines":{"color":"rgb(234, 236, 244)","zeroLineColor":"rgb(234, 236, 244)","drawBorder":false,"drawTicks":false,"borderDash":["2"],"zeroLineBorderDash":["2"]},"ticks":{"fontColor":"#858796","fontStyle":"normal","padding":20}}]}}}'></canvas>
38-
<?php
39+
<?php
3940
}
4041

4142

42-
function month_chart(){
43+
function month_chart()
44+
{
4345
global $db;
4446
$sql = "SELECT YEAR(created_at) AS year, MONTH(created_at) AS month, SUM(total) AS total_sales
4547
FROM transactions
@@ -52,28 +54,78 @@ function month_chart(){
5254

5355
$labels = [];
5456
$data = [];
55-
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
56-
$monthName = date("M", mktime(0, 0, 0, $row['month'], 10));
57-
$labels[] = $monthName . ' ' . $row['year'];
58-
$data[] = $row['total_sales'];
57+
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
58+
$monthName = date("M", mktime(0, 0, 0, $row['month'], 10));
59+
$labels[] = $monthName . ' ' . $row['year'];
60+
$data[] = $row['total_sales'];
5961
}
6062
$chartData = [
61-
'labels' => $labels,
62-
'datasets' => [
63-
[
64-
'label' => 'Earnings',
65-
'fill' => true,
66-
'data' => $data,
67-
'backgroundColor' => 'rgba(78, 115, 223, 0.05)',
68-
'borderColor' => 'rgba(78, 115, 223, 1)'
69-
]
70-
]
63+
'labels' => $labels,
64+
'datasets' => [
65+
[
66+
'label' => 'Earnings',
67+
'fill' => true,
68+
'data' => $data,
69+
'backgroundColor' => 'rgba(78, 115, 223, 0.05)',
70+
'borderColor' => 'rgba(78, 115, 223, 1)'
71+
]
72+
]
7173
];
7274

7375

7476
$chartDataJson = json_encode($chartData);
75-
?>
77+
?>
7678
<canvas data-bss-chart='{"type":"line","data":<?php echo $chartDataJson; ?>,"options":{"maintainAspectRatio":false,"legend":{"display":false,"labels":{"fontStyle":"normal"}},"title":{"fontStyle":"normal"},"scales":{"xAxes":[{"gridLines":{"color":"rgb(234, 236, 244)","zeroLineColor":"rgb(234, 236, 244)","drawBorder":false,"drawTicks":false,"borderDash":["2"],"zeroLineBorderDash":["2"],"drawOnChartArea":false},"ticks":{"fontColor":"#858796","fontStyle":"normal","padding":20}}],"yAxes":[{"gridLines":{"color":"rgb(234, 236, 244)","zeroLineColor":"rgb(234, 236, 244)","drawBorder":false,"drawTicks":false,"borderDash":["2"],"zeroLineBorderDash":["2"]},"ticks":{"fontColor":"#858796","fontStyle":"normal","padding":20}}]}}}'></canvas>
77-
<?php
79+
<?php
7880
}
7981

82+
83+
84+
85+
function expenditures_month_chart()
86+
{
87+
global $db;
88+
$sql = "SELECT i.name AS label, YEAR(e.created_at) AS year, MONTH(e.created_at) AS month, SUM(e.qty) AS total_expenditures
89+
FROM expenditures e
90+
INNER JOIN items i ON e.item_id = i.id
91+
WHERE MONTH(e.created_at) = MONTH(CURRENT_TIMESTAMP)
92+
GROUP BY i.name, YEAR(e.created_at), MONTH(e.created_at)
93+
ORDER BY YEAR(e.created_at), MONTH(e.created_at)";
94+
95+
$stmt = $db->prepare($sql);
96+
$stmt->execute();
97+
98+
$labels = [];
99+
$datasets = [];
100+
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
101+
$monthName = date("M", mktime(0, 0, 0, $row['month'], 10));
102+
$labels[] = $monthName . ' ' . $row['year'];
103+
$itemLabel = $row['label'];
104+
$data = $row['total_expenditures'];
105+
106+
$existingDatasetIndex = array_search($itemLabel, array_column($datasets, 'label'));
107+
if ($existingDatasetIndex !== false) {
108+
109+
$datasets[$existingDatasetIndex]['data'][] = $data;
110+
} else {
111+
112+
$datasets[] = [
113+
'label' => $itemLabel,
114+
'fill' => true,
115+
'data' => [$data],
116+
'backgroundColor' => 'rgba(78, 115, 223, 0.05)',
117+
'borderColor' => 'rgba(78, 115, 223, 1)'
118+
];
119+
}
120+
}
121+
122+
$chartData = [
123+
'labels' => $labels,
124+
'datasets' => $datasets
125+
];
126+
127+
$chartDataJson = json_encode($chartData);
128+
?>
129+
<canvas data-bss-chart='{"type":"line","data":<?php echo $chartDataJson; ?>,"options":{"maintainAspectRatio":false,"legend":{"display":true,"labels":{"fontStyle":"normal"}},"title":{"fontStyle":"normal"},"scales":{"xAxes":[{"gridLines":{"color":"rgb(234, 236, 244)","zeroLineColor":"rgb(234, 236, 244)","drawBorder":false,"drawTicks":false,"borderDash":["2"],"zeroLineBorderDash":["2"],"drawOnChartArea":false},"ticks":{"fontColor":"#858796","fontStyle":"normal","padding":20}}],"yAxes":[{"gridLines":{"color":"rgb(234, 236, 244)","zeroLineColor":"rgb(234, 236, 244)","drawBorder":false,"drawTicks":false,"borderDash":["2"],"zeroLineBorderDash":["2"]},"ticks":{"fontColor":"#858796","fontStyle":"normal","padding":20}}]}}}'></canvas>
130+
<?php
131+
}

functions/views/queue.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
JOIN prices AS p ON l.type = p.id
66
JOIN transactions AS t ON l.transaction_id = t.id
77
JOIN customers AS c ON t.customer_id = c.id
8-
WHERE l.status > 0 AND l.status < 4';
8+
WHERE l.status >= 0 AND l.status < 4';
99

1010
$stmt = $db->prepare($sql);
1111
$stmt->execute();

index.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,27 @@
207207
</div>
208208
</div>
209209
</div>
210+
<div class="col">
211+
<div class="card shadow mb-4">
212+
<div class="card-header d-flex justify-content-between align-items-center">
213+
<h6 class="text-primary fw-bold m-0">Expenditures Overview</h6>
214+
<div class="dropdown no-arrow"><button class="btn btn-link btn-sm dropdown-toggle" aria-expanded="false" data-bs-toggle="dropdown" type="button"><i class="fas fa-ellipsis-v text-gray-400"></i></button>
215+
<div class="dropdown-menu shadow dropdown-menu-end animated--fade-in">
216+
<p class="text-center dropdown-header">Under Maintainance:</p>
217+
<a class="dropdown-item" href="#">&nbsp;Under Maintainance</a><a class="dropdown-item" href="#">&nbsp;Under Maintainance</a>
218+
<div class="dropdown-divider"></div><a class="dropdown-item" href="#">&nbsp;Something else here</a>
219+
</div>
220+
</div>
221+
</div>
222+
<div class="card-body">
223+
<div class="chart-area">
224+
<?php
225+
expenditures_month_chart();
226+
?>
227+
</div>
228+
</div>
229+
</div>
230+
</div>
210231
</div>
211232
<div class="row">
212233
<div class="col">

0 commit comments

Comments
 (0)