-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathhistory.php
More file actions
111 lines (93 loc) · 2.88 KB
/
history.php
File metadata and controls
111 lines (93 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
// -----------------------
// DEBT HISTORY MANAGEMENT
// -----------------------
// HISTORY_BILL_PUT
// enter a new history item for a bill
function event_put($debt_id,$user_id,$event,$details) {
global $db;
$statement = $db->prepare("INSERT INTO history (debt_id,user_id,event,details,timestamp) VALUES (?,?,?,?,?)");
$statement->bind_param("iissi",$debt_id,$user_id,$event,$details,time());
if ( $statement->execute() ) {
$statement->close();
// create a message
message_history_event_create($user_id,$debt_id,$event,$details);
return true;
}
else return false;
}
// EVENT_DETAILS
// get details for a single debt history event
function event_details($event_id) {
global $db;
$statement = $db->prepare("SELECT event_id, debt_id, user_id, event, details, timestamp FROM history WHERE event_id = ?");
$statement->bind_param("i",$event_id);
if ( $statement->execute() ) {
$e = array();
$statement->bind_result($e["event_id"],$e["debt_id"],$e["user_id"],$e["event"],$e["details"],$e["timestamp"]);
$statement->fetch();
$statement->close();
// build return data
$details = array();
$details["event_id"] = $e["event_id"];
$details["debt_id"] = $e["debt_id"];
$details["user_id"] = $e["user_id"];
$details["event"] = $e["event"];
$details["timestamp"] = $e["timestamp"];
global $remote_user;
if ( $e["user_id"] == $remote_user ) $details["string"] = "You ".$e["details"];
else {
$user = user_details($e["user_id"]);
$details["string"] = $user["fname"]." ".$e["details"];
}
return $details;
}
else return false;
}
// HISTORY_DEBT_ALL
// show details for all history items for a single bill
function history_debt_all($debt_id) {
global $db;
$statement = $db->prepare("SELECT event_id FROM history WHERE debt_id = ?");
$statement->bind_param("i",$debt_id);
if ( $statement->execute() ) {
// get all matching event_ids
$statement->bind_result($event_id);
$ids = array();
while ( $statement->fetch() ) {
$ids[] = $event_id;
}
$statement->close();
// get details for each event_id
$events = array();
foreach ( $ids as $event_id ) {
$events[] = event_details($event_id);
}
return $events;
}
else return false;
}
// HISTORY_USER_ALL
// show details for all history items for all bills for a single user
function history_user_all($user_id) {
global $db;
$statement = $db->prepare("SELECT event_id FROM history WHERE debt_id IN (SELECT debt_id FROM debts WHERE (borrower_id = ? OR lender_id = ?))");
$statement->bind_param("ii",$user_id,$user_id);
if ( $statement->execute() ) {
// get all matching event_ids
$statement->bind_result($event_id);
$ids = array();
while ( $statement->fetch() ) {
$ids[] = $event_id;
}
$statement->close();
// get details for each event_id
$events = array();
foreach ( $ids as $event_id ) {
$events[] = event_details($event_id);
}
return $events;
}
else return false;
}
?>