db-functions.php 34.3 KB
Newer Older
Gabriel Moreau's avatar
Gabriel Moreau committed
1
<?php if (!$web_page) exit() ?>
2

Gabriel Moreau's avatar
Gabriel Moreau committed
3
<?php
4
require_once('base-functions.php');
5
6
require_once('connect.php');

Gabriel Moreau's avatar
Gabriel Moreau committed
7
// ---------------------------------------------------------------------
8

9
10
11
12
define('GESTEX_DB_VERSION', 4);

// ---------------------------------------------------------------------

Gabriel Moreau's avatar
Gabriel Moreau committed
13
// connexion au serveur mySQL
14

15
function connect_db_minimal() {
16
17
18
19
20
21
22
23
	try{
		$pdo = new PDO('mysql:host='.GESTEX_DB_SERVER.'; dbname='.GESTEX_DB_DATABASE, GESTEX_DB_USER, GESTEX_DB_PASSWORD);
	}
	catch(PDOException $exception){
		error_log('Connection error: '.$exception->getMessage());
		echo $exception->getMessage();
		return false;
	}
24

25
26
27
28
29
30
31
32
33
34
35
36
	return $pdo;
}

// ---------------------------------------------------------------------

function connect_db() {
	if ($pdo = connect_db_minimal()) {
		try{
			$datasheet_version = get_version_by_name($pdo, 'datasheet');
			if ($datasheet_version < GESTEX_DB_VERSION) {
				error_log('Database version error: update the database schema');
				echo "Mettre à jour le schéma de la base de données";
37
				return false;
38
39
40
41
42
43
			}
		}
		catch(PDOException $exception){
			error_log('Database version error: '.$exception->getMessage());
			echo $exception->getMessage();
			return false;
44
45
46
		}
	}

47
48
49
	return $pdo;
}

Gabriel Moreau's avatar
Gabriel Moreau committed
50
// ---------------------------------------------------------------------
51

52
53
54
55
56
57
58
59
60
61
function connect_db_or_alert() {
	if ($pdo = connect_db())
		return $pdo;

	include_once('include/alert-db.php');
	exit();
}

// ---------------------------------------------------------------------

62
63
64
65
66
67
function query_db($statement) {
	$result   = mysql_query($statement) or die("<pre>\n\nCan't perform query: " . mysql_error() . " \n\n$statement\n\n</pre>");
	$num_rows = numrows_db($result);
	return array($result, $num_rows);
}

Gabriel Moreau's avatar
Gabriel Moreau committed
68
// ---------------------------------------------------------------------
69
70
71
72
73

function numrows_db($result) {
	return @mysql_num_rows($result);
}

Gabriel Moreau's avatar
Gabriel Moreau committed
74
// ---------------------------------------------------------------------
75
76
77
78
79
80
81
82

function result_db($result,$i=-1) {
	if ($i >= 0) {
		@mysql_data_seek($result,$i);
	}
	return mysql_fetch_array($result);
}

Gabriel Moreau's avatar
Gabriel Moreau committed
83
// ---------------------------------------------------------------------
84
85
86
87
88

function last_id_db() {
	return mysql_insert_id();
}

Gabriel Moreau's avatar
Gabriel Moreau committed
89
// ---------------------------------------------------------------------
90
91
92
93

function check_val_in_db($pdo, $table, $col, $value) {
	//teste l'existence de $value dans le champ $col de la table $table
	//echo "check in:".$table.":".$col." for ".$value."<br />";
94
95
96
	//$sql = 'SELECT * FROM ? WHERE ? = ?;';
	$stmt = $pdo->prepare("SELECT * FROM $table WHERE $col = '$value'");
	$stmt->execute();
97
98
99
100
101
102
103
104
105
106
	$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

	///echo "check_val:".numrows_db($reponse)."<br />";
	//renvoie 0 si non trouve
	//renvoie le nbre d'occurences autrement
	if (count($result) > 0)
		return true;
	return false;
}

107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
// ---------------------------------------------------------------------
// Category
// ---------------------------------------------------------------------

function get_category_by_id($pdo, $id) {
	$sql = 'SELECT id, nom FROM categorie WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
	$category_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $category_fetch[0];
}

// ---------------------------------------------------------------------

function get_category_listshort($pdo) {
	$sql = 'SELECT id, nom FROM categorie ORDER BY nom;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute();
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

// ---------------------------------------------------------------------

function check_category_by_name($pdo, $name) {
	$sql = 'SELECT COUNT(*) as count FROM categorie WHERE nom = ?';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($name));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]['count'] > 0 ? true : false;
}

// ---------------------------------------------------------------------

function set_category_new($pdo, $name) {
	$sql = 'INSERT INTO categorie (nom) VALUE (?);';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($name));
	return $pdo->lastInsertId();
}

// ---------------------------------------------------------------------

function set_category_update($pdo, $id_category, $name) {
	$sql = 'UPDATE categorie SET nom = ? WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($name, $id_category));
}

// ---------------------------------------------------------------------

function del_category_by_id($pdo, $id) {
	$sql = 'DELETE LOW_PRIORITY FROM categorie WHERE id = ? LIMIT 1';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
161
162
	$iostat = $stmt->execute(array($id));
	return $iostat;
163
164
}

165
166
// ---------------------------------------------------------------------
// Datasheet
Gabriel Moreau's avatar
Gabriel Moreau committed
167
// ---------------------------------------------------------------------
168

Gabriel Moreau's avatar
Gabriel Moreau committed
169
function get_datasheet_basepath() {
170
171
172
173
174
	return './data/datasheet';
}

// ---------------------------------------------------------------------

175
176
177
178
179
180
181
182
183
184
185
186
function get_datasheet_all_by_id($pdo, $id) {
	$sql = 'SELECT * FROM datasheet WHERE id = ?;' ;
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

// ---------------------------------------------------------------------

187
188
189
190
191
192
193
194
function get_datasheet_listall_by_equipment($pdo, $id_equipment) {
	$sql = 'SELECT * FROM datasheet WHERE id_equipment = ?;' ;
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_equipment));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

Gabriel Moreau's avatar
Gabriel Moreau committed
195
// ---------------------------------------------------------------------
196

197
198
199
200
201
202
203
204
function get_datasheet_count_by_equipment($pdo, $id_equipment) {
	$sql = 'SELECT COUNT(*) as count FROM datasheet WHERE id_equipment = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_equipment));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]['count'];
}

205
206
// ---------------------------------------------------------------------

207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
function set_datasheet_new($pdo, $equipment_id, $file_field_name) {
	$datasheet_filename_upload = $_FILES[$file_field_name]['name'];
	$datasheet_tmp_file        = $_FILES[$file_field_name]['tmp_name'];
	$datasheet_io_error        = $_FILES[$file_field_name]['error'];

	$file_upload_errors = array(
		0 => 'There is no error, the file uploaded with success',
		1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini',
		2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
		3 => 'The uploaded file was only partially uploaded',
		4 => 'No file was uploaded',
		6 => 'Missing a temporary folder',
		7 => 'Failed to write file to disk.',
		8 => 'A PHP extension stopped the file upload.',
	);
	if (!is_uploaded_file($datasheet_tmp_file) or $datasheet_io_error > 0) {
		error_log('Error: not uploaded datasheet file - '.$datasheet_filename_upload.' - '.$file_upload_errors[$datasheet_io_error]);
224
		return false;
225
226
227
228
229
230
	}

	if (!preg_match('/\.pdf$/i', $datasheet_filename_upload)) {
		error_log('Error: datasheet file not a pdf - '.$datasheet_filename_upload);
		return false;
	}
231
232
233
234
235

	$new_datasheet_path = './data/datasheet';
	if (!is_dir($new_datasheet_path))
		mkdir($new_datasheet_path, 0755);

Gabriel Moreau's avatar
Gabriel Moreau committed
236
	$datasheet_filename_no_ext = pathinfo($datasheet_filename_upload, PATHINFO_FILENAME);
Gabriel Moreau's avatar
Gabriel Moreau committed
237
	$datasheet_filename_kebab = string_to_filename_kebab($datasheet_filename_no_ext).'.pdf';
238
239
240

	$sql1 = 'INSERT INTO datasheet (description, id_equipment) VALUES (?, ?);';
	$stmt1 = $pdo->prepare($sql1);
Gabriel Moreau's avatar
Gabriel Moreau committed
241
	$stmt1->execute(array($datasheet_filename_no_ext, $equipment_id));
242
243
244
245
246
	$id_datasheet = $pdo->lastInsertId();

	$sub_path = $id_datasheet.'-'.random_string(8);
	$sql2 = 'UPDATE datasheet SET pathname = ? WHERE id = ?;';
	$stmt2 = $pdo->prepare($sql2);
Gabriel Moreau's avatar
Gabriel Moreau committed
247
	$stmt2->execute(array($sub_path.'/'.$datasheet_filename_kebab, $id_datasheet));
248
249
250
251

	$new_dir = $new_datasheet_path.'/'.$sub_path;
	if (!is_dir($new_dir))
		mkdir($new_dir, 0755);
252

Gabriel Moreau's avatar
Gabriel Moreau committed
253
254
	$iostat = move_uploaded_file($datasheet_tmp_file, $new_dir.'/'.$datasheet_filename_kebab);
	if (!$iostat) {
255
		error_log('Error: not move datasheet file '.$datasheet_filename_upload.' to '.$datasheet_filename_kebab);
256
		del_datasheet_by_id($pdo, $id_datasheet);
257
258
		return false;
	}
259
260
261
262

	return $id_datasheet;
}

263
264
// ---------------------------------------------------------------------

265
function del_datasheet_by_id($pdo, $id) {
266
267
268
269
270
271
272
	$datasheet_selected = get_datasheet_all_by_id($pdo, $id);

	$datasheet_basepath = get_datasheet_basepath();
	$datasheet_pathname = $datasheet_selected['pathname'];
	$datasheet_dirname  = pathinfo($datasheet_pathname, PATHINFO_DIRNAME);

	if (is_file($datasheet_basepath.'/'.$datasheet_pathname))
Gabriel Moreau's avatar
Gabriel Moreau committed
273
		$iostat = unlink($datasheet_basepath.'/'.$datasheet_pathname);
274
275

	if (!empty($datasheet_dirname) and is_dir($datasheet_basepath.'/'.$datasheet_dirname))
Gabriel Moreau's avatar
Gabriel Moreau committed
276
		$iostat = rmdir($datasheet_basepath.'/'.$datasheet_dirname);
277
278
279

	$sql = 'DELETE LOW_PRIORITY FROM datasheet WHERE id = ? LIMIT 1;';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
280
281
	$iostat = $stmt->execute(array($id));
	return $iostat;
282
283
}

284
285
// ---------------------------------------------------------------------
// Equipment
Gabriel Moreau's avatar
Gabriel Moreau committed
286
// ---------------------------------------------------------------------
287

288
function get_equipment_by_id($pdo, $id) {
289
290
291
	$sql = 'SELECT id, nom FROM Listing WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
292
293
294
295
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
296
297
}

Gabriel Moreau's avatar
Gabriel Moreau committed
298
// ---------------------------------------------------------------------
299

300
function get_equipment_all_by_id($pdo, $id) {
301
302
303
	$sql = 'SELECT * FROM Listing WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
304
305
306
307
308
309
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

Gabriel Moreau's avatar
Gabriel Moreau committed
310
// ---------------------------------------------------------------------
311

312
function get_equipment_listall($pdo) {
313
314
	// $sql = 'SELECT * FROM Listing ORDER BY categorie, nom;';
	$sql = 'SELECT DISTINCT e.*, c.nom AS category_name FROM Listing AS e INNER JOIN categorie AS c ON e.categorie = c.id ORDER BY c.nom, e.nom;';
315
316
317
318
319
320
321
322
323
	$stmt = $pdo->prepare($sql);
	$stmt->execute();
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

// ---------------------------------------------------------------------

function get_equipment_listall_by_team($pdo, $id_team) {
324
325
	//$sql = 'SELECT * FROM Listing WHERE equipe = ? ORDER BY categorie, nom;';
	$sql = 'SELECT DISTINCT e.*, c.nom AS category_name FROM Listing AS e INNER JOIN categorie AS c ON e.categorie = c.id WHERE e.equipe = ? ORDER BY c.nom, e.nom;';
326
327
328
329
330
331
332
333
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_team));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

// ---------------------------------------------------------------------

334
335
336
337
338
339
340
341
342
343
function get_equipment_count_loanable_by_team($pdo, $id_team) {
	$sql = 'SELECT COUNT(*) as count FROM Listing AS e WHERE e.loanable = 1 and e.equipe = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_team));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]['count'];
}

// ---------------------------------------------------------------------

344
function get_equipment_listall_by_category($pdo, $id_category) {
345
	$sql = 'SELECT * FROM Listing WHERE categorie = ? ORDER BY nom;';
346
347
348
349
350
351
352
353
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_category));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

// ---------------------------------------------------------------------

354
function get_equipment_listshort($pdo) {
355
	$sql = 'SELECT id, nom FROM Listing ORDER BY categorie, nom;';
356
357
	$stmt = $pdo->prepare($sql);
	$stmt->execute();
358
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
359
	return $result_fetch;
360
361
}

Gabriel Moreau's avatar
Gabriel Moreau committed
362
// ---------------------------------------------------------------------
363

364
365
366
367
368
369
370
371
372
373
function get_equipment_by_loan_id($pdo, $id_loan) {
	$sql = 'SELECT nom FROM pret WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_loan));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]["nom"];
}

// ---------------------------------------------------------------------

Estéban Ristich's avatar
Estéban Ristich committed
374
375
376
377
378
379
/**
 * Créer un équipement
 * 
 * @return array|string Renvoie une chaine si echec sinon 
 * un tableau avec l'ID et un msg d'erreur eventuellement
 */
Gabriel Moreau's avatar
Gabriel Moreau committed
380
function set_equipment_new($pdo, $categorie, $nom, $modele, $feature, $equipe, $fourn, $achat, $tech, $reparation, $accessoires, $inventaire, $notice, $barcode, $loanable) {
Gabriel Moreau's avatar
Gabriel Moreau committed
381
	$sql = 'INSERT INTO Listing (categorie, nom, modele, gamme, equipe, fournisseur, achat, responsable, reparation, accessoires, inventaire, notice, barcode, loanable)';
382
	$sql .=            ' VALUES (?,         ?,   ?,      ?,     ?,      ?,           ?,     ?,           ?,          ?,           ?,          ?,      ?,       ?);';
383
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
384
	$iostat = $stmt->execute(array($categorie, $nom, $modele, $feature, $equipe, $fourn, $achat, $tech, $reparation, $accessoires, $inventaire, $notice, $barcode, $loanable));
385
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
386
	if (!$iostat)
Gabriel Moreau's avatar
Gabriel Moreau committed
387
		$err_msg = $stmt->errorInfo()[2];
388
	return array($pdo->lastInsertId(), $err_msg);
389
390
391
392
}

// ---------------------------------------------------------------------

Estéban Ristich's avatar
Estéban Ristich committed
393
394
395
396
397
398
/**
 * Met à jour un équipement par son ID
 *
 * @return string Renvoie une chaine vide
 * si réussite sinon une chaine d'erreurs
 */
399
400
401
function set_equipment_update($pdo, $id_equipment, $categorie, $nom, $modele, $feature, $equipe, $fourn, $achat, $tech, $reparation, $accessoires, $inventaire, $notice, $barcode, $loanable) {
	$sql = 'UPDATE Listing SET categorie = ?, nom = ?, modele = ?, gamme = ?, equipe = ?, fournisseur = ?, achat = ?, responsable = ?, reparation = ?, accessoires = ?, inventaire = ?, notice = ?, barcode = ?, loanable = ? WHERE id = ?;)';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
402
	$iostat = $stmt->execute(array($categorie, $nom, $modele, $feature, $equipe, $fourn, $achat, $tech, $reparation, $accessoires, $inventaire, $notice, $barcode, $loanable, $id_equipment));
403
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
404
	if (!$iostat)
405
406
407
408
409
410
		$err_msg = $stmt->errorInfo()[2];
	return $err_msg;
}

// ---------------------------------------------------------------------

Estéban Ristich's avatar
Estéban Ristich committed
411
412
413
/**
 * Supprime un equipement par son ID
 */
414
function del_equipment_by_id($pdo, $id) {
415
416
	$sql = 'DELETE LOW_PRIORITY FROM Listing WHERE id = ? LIMIT 1;';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
417
418
	$iostat = $stmt->execute(array($id));
	return $iostat;
419
420
421
422
}

// ---------------------------------------------------------------------
// Loan
423
424
// ---------------------------------------------------------------------

Estéban Ristich's avatar
Estéban Ristich committed
425
426
427
428
429
430
/**
 * Récupère tout le contenu d'un pret par son ID
 * 
 * @return array|false S'il n'est pas "false", le 
 * retour ne sera qu'un seul objet
 */
431
432
433
434
435
436
437
438
439
440
function get_loan_all_by_id($pdo, $id) {
	$sql = 'SELECT * FROM pret WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

441
442
// ---------------------------------------------------------------------

Estéban Ristich's avatar
Estéban Ristich committed
443
444
445
446
447
/**
 * Récupere tout les prets liés à un équipement qui ne sont pas retourné
 * 
 * @deprecated Remplacé par la fonction get_loan_active_listall_by_equipment()
 */
448
function get_loans_by_equipment($pdo, $equipment_id) {
449
	$sql = 'SELECT * FROM pret WHERE nom = ? AND NOT status = ?;';
450
	$stmt = $pdo->prepare($sql);
451
	$stmt->execute(array($equipment_id, STATUS_LOAN_RETURNED));
452
453
454
455
456
457
458
459
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch;
	return false;
}

// ---------------------------------------------------------------------

460
461
462
463
464
/**
* Récupere tout les prets liés à un équipement qui ne sont pas retourné,
* rangé dans un certaine ordre de priorité.
*/
function get_loan_active_listall_by_equipment($pdo, $id_equipment) {
465
	$sql = 'SELECT * FROM pret WHERE nom = ? AND status != ? ORDER BY status DESC, emprunt ASC, retour ASC;';
466
	$stmt = $pdo->prepare($sql);
467
	$stmt->execute(array($id_equipment, STATUS_LOAN_RETURNED));
468
469
470
471
472
473
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch;
	return false;
}

474
475
476
// ---------------------------------------------------------------------

function get_loan_short_by_id_equipment($pdo, $id_equipment) {
Gabriel Moreau's avatar
Gabriel Moreau committed
477
	// recupere l'appareil via l'id qui est mis dans un champs texte (nom) !
Estéban Ristich's avatar
Estéban Ristich committed
478
	$sql = 'SELECT id, status FROM pret WHERE nom = ?;';
Gabriel Moreau's avatar
Gabriel Moreau committed
479
480
481
482
483
484
485
486
487
488
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_equipment));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

// ---------------------------------------------------------------------

489
490
491
function get_loan_all_by_id_equipment($pdo, $id_equipment) {
	// recupere l'appareil via l'id qui est mis dans un champs texte (nom) !
	$sql = 'SELECT * FROM pret WHERE nom = ?;';
Gabriel Moreau's avatar
Gabriel Moreau committed
492
	$stmt = $pdo->prepare($sql);
493
	$stmt->execute(array($id_equipment));
Gabriel Moreau's avatar
Gabriel Moreau committed
494
495
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
496
		return $result_fetch;
Gabriel Moreau's avatar
Gabriel Moreau committed
497
498
499
500
501
	return false;
}

// ---------------------------------------------------------------------

502
function get_loan_listall($pdo) {
503
	//$sql = 'SELECT * FROM pret;';
504
	$sql = 'SELECT DISTINCT l.*, e.nom AS equipment_name FROM pret AS l INNER JOIN Listing AS e ON l.nom = e.id WHERE status = ? ORDER BY l.retour DESC, l.emprunt DESC, e.nom;';
505
	$stmt = $pdo->prepare($sql);
506
	$stmt->execute(array(STATUS_LOAN_BORROWED));
507
508
509
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}
Gabriel Moreau's avatar
Gabriel Moreau committed
510
511
512
// ---------------------------------------------------------------------

function get_loan_listall_by_team($pdo, $id_team) {
513
	$sql = 'SELECT DISTINCT l.*, e.nom AS equipment_name FROM pret AS l INNER JOIN Listing AS e ON l.nom = e.id WHERE l.equipe = ? AND status = ? ORDER BY l.retour DESC, l.emprunt DESC, e.nom;';
Gabriel Moreau's avatar
Gabriel Moreau committed
514
	$stmt = $pdo->prepare($sql);
515
	$stmt->execute(array($id_team, STATUS_LOAN_BORROWED));
Gabriel Moreau's avatar
Gabriel Moreau committed
516
517
518
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}
519
520
521

// ---------------------------------------------------------------------

522
523
// ---------------------------------------------------------------------

524
525
526
527
528
529
530
531
532
533
function get_loan_count_by_team($pdo, $id_team) {
	$sql = 'SELECT COUNT(*) as count FROM pret AS l INNER JOIN Listing AS e ON l.nom = e.id WHERE e.equipe = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_team));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]['count'];
}

// ---------------------------------------------------------------------

534
535
536
537
538
539
540
541
542
543
function get_loan_find($pdo, $find) {
	$sql = 'SELECT * FROM pret WHERE commentaire RLIKE ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($find));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

// ---------------------------------------------------------------------

544
function get_loans_blacklist_by_equipment($pdo, $id_equipment) {
545
	$sql = 'SELECT * FROM pret WHERE nom = ? AND status = ?;';
546
	$stmt = $pdo->prepare($sql);
547
	$stmt->execute(array($id_equipment, STATUS_LOAN_BORROWED));
548
549
550
551
552
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch;
	return false;
}
553

554
555
// ---------------------------------------------------------------------

556
function get_loans_interval_by_id($pdo, $id_equipment, $from, $to) {
557
	$sql = 'SELECT * FROM pret WHERE ((`emprunt` <= ? AND `retour` >= ?) AND `nom` = ?) OR ((`emprunt` <= ? AND `retour` >= ?) AND `nom` = ?) OR ((`emprunt` >= ? AND `retour` <= ?) AND `nom` = ?);';
558
	$stmt = $pdo->prepare($sql);
559
	$stmt->execute(array($from, $from, $id_equipment, $to, $to, $id_equipment, $from, $to, $id_equipment));
Estéban Ristich's avatar
Fix bug    
Estéban Ristich committed
560
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
561
562
563
	if (count($result_fetch) > 0)
		return $result_fetch;
	return false;
564
565
566
567
}

// ---------------------------------------------------------------------

Estéban Ristich's avatar
Estéban Ristich committed
568
function get_loans_interval_by_id_except_loan($pdo, $id_equipment, $from, $to, $except_id) {
569
570
571
572
573
574
575
576
577
578
579
	$sql = 'SELECT * FROM pret WHERE (((`emprunt` <= ? AND `retour` >= ?) AND `nom` = ?) OR ((`emprunt` <= ? AND `retour` >= ?) AND `nom` = ?) OR ((`emprunt` >= ? AND `retour` <= ?) AND `nom` = ?)) AND NOT id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($from, $from, $id_equipment, $to, $to, $id_equipment, $from, $to, $id_equipment, $except_id));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch;
	return false;
}

// ---------------------------------------------------------------------

580
581
582
583
584
585
586
587
588
589
function get_loan_status_by_id($pdo, $id_loan) {
	$sql = 'SELECT status FROM pret WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_loan));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]["status"];
}

// ---------------------------------------------------------------------

590
function get_last_reserved_loan($pdo, $id_equipment) {
591
	$sql = 'SELECT * FROM pret WHERE nom = ? AND status = ? ORDER BY retour DESC LIMIT 1;';
592
	$stmt = $pdo->prepare($sql);
593
	$stmt->execute(array($id_equipment, STATUS_LOAN_RETURNED));
594
595
596
597
598
599
600
601
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch;
	return false;
}

// ---------------------------------------------------------------------

602
function set_loan_borrowed_new($pdo, $id_equipment, $id_team, $date_begin, $date_end, $comment) {
603
	$sql = 'INSERT INTO pret (nom, equipe, emprunt, retour, commentaire, status) VALUES (?, ?, ?, ?, ?, ?);';
604
	$stmt = $pdo->prepare($sql);
605
	$stmt->execute(array($id_equipment, $id_team, $date_begin, $date_end, $comment, STATUS_LOAN_BORROWED));
606
607
608
609
610
	return $pdo->lastInsertId();
}

// ---------------------------------------------------------------------

611
612
function set_loan_reserved_new($pdo, $id_equipment, $id_team, $date_begin, $date_end, $comment) {
	$sql = 'INSERT INTO pret (nom, equipe, emprunt, retour, commentaire, status) VALUES (?, ?, ?, ?, ?, ?);';
613
	$stmt = $pdo->prepare($sql);
614
615
	$stmt->execute(array($id_equipment, $id_team, $date_begin, $date_end, $comment, STATUS_LOAN_RESERVED));
	return $pdo->lastInsertId();
616
617
618
619
}

// ---------------------------------------------------------------------

620
621
function set_booking_update_to_loan($pdo, $id_loan) {
	$sql = 'UPDATE pret SET status = ?, emprunt = CURRENT_DATE WHERE id = ?;';
Gabriel Moreau's avatar
Gabriel Moreau committed
622
	$stmt = $pdo->prepare($sql);
623
	$stmt->execute(array(STATUS_LOAN_BORROWED, $id_loan));
Gabriel Moreau's avatar
Gabriel Moreau committed
624
625
}

Gabriel Moreau's avatar
Gabriel Moreau committed
626
627
628
629
630
631
632
633
// ---------------------------------------------------------------------

function set_loan_update($pdo, $id_loan, $id_equipment, $id_team, $date_begin, $date_end, $comment) {
	$sql = 'UPDATE pret SET nom = ?, equipe = ?, emprunt = ?, retour = ?, commentaire = ? WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id_equipment, $id_team, $date_begin, $date_end, $comment, $id_loan));
}

Gabriel Moreau's avatar
Gabriel Moreau committed
634
635
// ---------------------------------------------------------------------

636
function del_loan_by_id($pdo, $id_loan) {
Gabriel Moreau's avatar
Gabriel Moreau committed
637
638
	$sql = 'DELETE LOW_PRIORITY FROM pret WHERE id = ? LIMIT 1;';
	$stmt = $pdo->prepare($sql);
639
	$iostat = $stmt->execute(array($id_loan));
Gabriel Moreau's avatar
Gabriel Moreau committed
640
	return $iostat;
Gabriel Moreau's avatar
Gabriel Moreau committed
641
642
}

643
644
// ---------------------------------------------------------------------

645
646
function set_loan_to_returned($pdo, $id_loan) {
	$sql = 'UPDATE LOW_PRIORITY pret SET status = ?, retour = CURRENT_DATE WHERE id = ?;';
647
	$stmt = $pdo->prepare($sql);
648
	$iostat = $stmt->execute(array(STATUS_LOAN_RETURNED, $id_loan));
649
650
651
	return $iostat;
}

652

653
654
// ---------------------------------------------------------------------
// Supplier
Gabriel Moreau's avatar
Gabriel Moreau committed
655
656
// ---------------------------------------------------------------------

657
658
function get_supplier_by_id($pdo, $id) {
	$sql = 'SELECT id, nom FROM fournisseurs WHERE id = ?;';
659
660
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
661
662
663
664
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
665
666
}

Gabriel Moreau's avatar
Gabriel Moreau committed
667
// ---------------------------------------------------------------------
668

669
670
671
672
673
674
675
676
677
678
679
680
function get_supplier_all_by_id($pdo, $id) {
	$sql = 'SELECT * FROM fournisseurs WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

// ---------------------------------------------------------------------

681
function get_supplier_listshort($pdo) {
682
	$sql = 'SELECT id, nom FROM fournisseurs ORDER BY nom;';
683
	$stmt = $pdo->prepare($sql);
684
	$stmt->execute();
685
	$supplier_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
686
	return $supplier_fetch;
687
688
}

Gabriel Moreau's avatar
Gabriel Moreau committed
689
// ---------------------------------------------------------------------
690

691
function get_supplier_listall($pdo) {
692
	$sql = 'SELECT * FROM fournisseurs ORDER BY nom;';
693
	$stmt = $pdo->prepare($sql);
694
	$stmt->execute();
695
	$supplier_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
696
	return $supplier_fetch;
697
698
}

Gabriel Moreau's avatar
Gabriel Moreau committed
699
// ---------------------------------------------------------------------
700

701
702
703
704
function get_supplier_find($pdo, $find='') {
	if (empty($find) or ($find === true))
		return get_supplier_listall($pdo);
	$sql = 'SELECT * FROM fournisseurs WHERE nom RLIKE ? OR descr RLIKE ?;';
705
	$stmt = $pdo->prepare($sql);
706
	$stmt->execute(array($find, $find));
707
	$supplier_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
708
	return $supplier_fetch;
709
710
}

711
712
// ---------------------------------------------------------------------

Gabriel Moreau's avatar
Gabriel Moreau committed
713
714
715
function set_supplier_new($pdo, $name, $address, $tel, $fax, $email, $www, $contact, $description) {
	$sql = 'INSERT INTO fournisseurs (nom, adresse, mail, www, tel, fax, contact, descr) VALUES (?, ?, ?, ?, ?, ?, ?, ?)';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
716
	$iostat = $stmt->execute(array($name, $address, $tel, $fax, $email, $www, $contact, $description));
Gabriel Moreau's avatar
Gabriel Moreau committed
717
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
718
	if (!$iostat)
Gabriel Moreau's avatar
Gabriel Moreau committed
719
720
721
722
723
724
		$err_msg = $stmt->errorInfo()[2];
	return array($pdo->lastInsertId(), $err_msg);
}

// ---------------------------------------------------------------------

725
726
727
function set_supplier_update($pdo, $id_supplier, $name, $address, $tel, $fax, $email, $www, $contact, $description) {
	$sql = 'UPDATE LOW_PRIORITY fournisseurs  SET nom = ?, adresse = ?, tel = ?, fax = ?, mail = ?, www = ?, contact = ?, descr = ? WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
728
	$iostat = $stmt->execute(array($name, $address, $tel, $fax, $email, $www, $contact, $description, $id_supplier));
729
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
730
	if (!$iostat)
731
732
733
734
		$err_msg = $stmt->errorInfo()[2];
	return $err_msg;
}

735
// ---------------------------------------------------------------------
Gabriel Moreau's avatar
Gabriel Moreau committed
736
737
738
739

function del_supplier_by_id($pdo, $id) {
	$sql = 'DELETE LOW_PRIORITY FROM fournisseurs WHERE id = ? LIMIT 1;';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
740
741
	$iostat = $stmt->execute(array($id));
	return $iostat;
Gabriel Moreau's avatar
Gabriel Moreau committed
742
743
744
}

// ---------------------------------------------------------------------
745
// Team
Gabriel Moreau's avatar
Gabriel Moreau committed
746
// ---------------------------------------------------------------------
747

748
749
function get_team_by_id($pdo, $id) {
	$sql = 'SELECT id, nom FROM equipe WHERE id = ?;';
750
751
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
752
753
754
755
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
756
757
}

Gabriel Moreau's avatar
Gabriel Moreau committed
758
// ---------------------------------------------------------------------
759

760
761
762
763
764
765
766
767
768
769
770
771
function get_team_all_by_id($pdo, $id) {
	$sql = 'SELECT * FROM equipe WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

// ---------------------------------------------------------------------

772
function get_team_listshort($pdo) {
773
	$sql = 'SELECT id, nom FROM equipe ORDER BY nom;';
774
	$stmt = $pdo->prepare($sql);
775
	$stmt->execute();
776
	$team_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
777
	return $team_fetch;
778
779
}

Gabriel Moreau's avatar
Gabriel Moreau committed
780
// ---------------------------------------------------------------------
781

782
function get_team_listall($pdo) {
783
	$sql = 'SELECT * FROM equipe ORDER BY nom;';
784
	$stmt = $pdo->prepare($sql);
785
	$stmt->execute();
786
	$team_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
787
	return $team_fetch;
788
789
}

Gabriel Moreau's avatar
Gabriel Moreau committed
790
// ---------------------------------------------------------------------
791

792
function get_team_with_appareil($pdo) {
793
	$sql = 'SELECT DISTINCT equipe.id, equipe.nom FROM equipe INNER JOIN Listing ON equipe.id = Listing.equipe ORDER BY equipe.nom;';
794
	$stmt = $pdo->prepare($sql);
795
	$stmt->execute();
796
	$team_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
797
	return $team_fetch;
798
799
}

Gabriel Moreau's avatar
Gabriel Moreau committed
800
801
// ---------------------------------------------------------------------

802
803
804
805
806
807
808
809
810
811
function get_team_count($pdo) {
	$sql = 'SELECT COUNT(*) as count FROM equipe;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute();
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]['count'];
}

// ---------------------------------------------------------------------

Gabriel Moreau's avatar
Gabriel Moreau committed
812
813
814
function set_team_new($pdo, $name, $description, $account, $manager) {
	$sql = 'INSERT INTO equipe (nom, descr, compte, chef) VALUES (?,  ?, ?, ?);';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
815
	$iostat = $stmt->execute(array($name, $description, $account, $manager));
Gabriel Moreau's avatar
Gabriel Moreau committed
816
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
817
	if (!$iostat)
Gabriel Moreau's avatar
Gabriel Moreau committed
818
819
		$err_msg = $stmt->errorInfo()[2];
	return array($pdo->lastInsertId(), $err_msg);
Gabriel Moreau's avatar
Gabriel Moreau committed
820
821
}

Gabriel Moreau's avatar
Gabriel Moreau committed
822
823
824
825
826
// ---------------------------------------------------------------------

function set_team_update($pdo, $id_team, $name, $description, $account, $manager) {
	$sql = 'UPDATE LOW_PRIORITY equipe SET nom = ?, descr = ?, compte = ?, chef = ? WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
827
	$iostat = $stmt->execute(array($name, $description, $account, $manager, $id_team));
Gabriel Moreau's avatar
Gabriel Moreau committed
828
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
829
	if (!$iostat)
Gabriel Moreau's avatar
Gabriel Moreau committed
830
831
832
833
		$err_msg = $stmt->errorInfo()[2];
	return $err_msg;
}

834
835
836
837
838
// ---------------------------------------------------------------------

function del_team_by_id($pdo, $id) {
	$sql = 'DELETE LOW_PRIORITY FROM equipe WHERE id = ? LIMIT 1';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
839
840
	$iostat = $stmt->execute(array($id));
	return $iostat;
841
842
}

843
844
// ---------------------------------------------------------------------
// User
Gabriel Moreau's avatar
Gabriel Moreau committed
845
// ---------------------------------------------------------------------
846
847

function get_user_by_id($pdo, $id) {
Gabriel Moreau's avatar
Gabriel Moreau committed
848
	$sql = 'SELECT id, nom, prenom FROM users WHERE id = ?;';
849
850
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
851
852
853
854
855
856
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

Gabriel Moreau's avatar
Gabriel Moreau committed
857
// ---------------------------------------------------------------------
858
859
860
861
862
863
864
865
866

function get_user_all_by_id($pdo, $id) {
	$sql = 'SELECT * FROM users WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($id));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
867
868
}

Gabriel Moreau's avatar
Gabriel Moreau committed
869
// ---------------------------------------------------------------------
870

871
872
873
874
875
876
877
878
879
880
function get_user_all_by_login($pdo, $login) {
	$sql = 'SELECT * FROM users WHERE loggin = ?;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($login));
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	if (count($result_fetch) > 0)
		return $result_fetch[0];
	return false;
}

Gabriel Moreau's avatar
Gabriel Moreau committed
881
// ---------------------------------------------------------------------
882

883
884
function get_user_listall_by_logged_level($pdo, $logged_level) {
	if ($logged_level > 3)       // lorsqu'on est haut place, on voit tout le monde
885
		$sql = 'SELECT * FROM users ORDER BY nom, prenom;';
886
	else if ($logged_level == 3) // losrqu'on est de niveau 3, on voit tout le monde sauf les users de plus haut level
887
		$sql = 'SELECT * FROM users WHERE level < 4 ORDER BY nom, prenom;';
888
	else                         // lorsqu'on est < 3, on voit tout le monde sauf le suser de level > 3 et les users non valides
889
		$sql = 'SELECT * FROM users WHERE valid = 1 and level < 3 ORDER BY nom, prenom;';
890
891
892
893
894
895
	$stmt = $pdo->prepare($sql);
    $stmt->execute();
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

896
897
// ---------------------------------------------------------------------

898
899
function get_user_listshort_with_right($pdo, $level_min=1, $id_bonus=0) {
	$sql = 'SELECT id, nom, prenom FROM users WHERE (valid = 1 and level >= ?) or id = ? ORDER BY nom, prenom;';
900
	$stmt = $pdo->prepare($sql);
901
    $stmt->execute(array($level_min, $id_bonus));
902
903
904
905
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch;
}

906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
// ---------------------------------------------------------------------

function get_user_count($pdo) {
	$sql = 'SELECT COUNT(*) as count FROM users;';
	$stmt = $pdo->prepare($sql);
	$stmt->execute();
	$result_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
	return $result_fetch[0]['count'];
}

// ---------------------------------------------------------------------

function set_user_new($pdo, $familyname, $firstname, $login, $password, $email, $level, $tel, $team_id, $theme) {
	$sql = 'INSERT INTO users (nom, prenom, loggin, password, email, level, tel, equipe, valid, theme) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, ?);';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
921
	$iostat = $stmt->execute(array($familyname, $firstname, $login, $password, $email, $level, $tel, $team_id, $theme));
922
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
923
	if (!$iostat)
924
925
926
927
		$err_msg = $stmt->errorInfo()[2];
	return array($pdo->lastInsertId(), $err_msg);
}

928
929
// ---------------------------------------------------------------------

930
931
932
function set_user_password_by_id($pdo, $user_id, $user_password) {
	$sql = 'UPDATE users SET password = ? WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
933
934
	$iostat = $stmt->execute(array($user_password, $user_id));
	return $iostat;
935
936
937
938
}

// ---------------------------------------------------------------------

939
940
941
function set_user_status_by_id($pdo, $user_id, $user_status) {
	$sql = 'UPDATE users SET valid = ? WHERE id = ?;';
	$stmt = $pdo->prepare($sql);
Gabriel Moreau's avatar
Gabriel Moreau committed
942
943
	$iostat = $stmt->execute(array($user_status, $user_id));
	return $iostat;
944
945
}

Gabriel Moreau's avatar
Gabriel Moreau committed
946
947
948
// ---------------------------------------------------------------------

function set_user_update($pdo, $user_id, $familyname, $firstname, $email, $level, $tel, $team_id, $theme) {
Gabriel Moreau's avatar
Gabriel Moreau committed
949
	$sql = 'UPDATE LOW_PRIORITY users SET nom = ?, prenom = ?, email = ?, level = ?, tel = ?, equipe = ?, theme = ? WHERE id = ?;';
Gabriel Moreau's avatar
Gabriel Moreau committed
950
	$stmt = $pdo->prepare($sql);
Estéban Ristich's avatar
Estéban Ristich committed
951
	$iostat = $stmt->execute(array($familyname, $firstname, $email, $level, $tel, $team_id, $theme, $user_id));
Gabriel Moreau's avatar
Gabriel Moreau committed
952
	$err_msg = '';
Gabriel Moreau's avatar
Gabriel Moreau committed
953
	if (!$iostat)
Gabriel Moreau's avatar
Gabriel Moreau committed
954
955
956
957
		$err_msg = $stmt->errorInfo()[2];
	return $err_msg;
}

958
959
// ---------------------------------------------------------------------
// Version
960
961
// ---------------------------------------------------------------------

962
function get_version_by_name($pdo, $name) {
Estéban Ristich's avatar
Estéban Ristich committed
963
	$sql = 'SELECT version FROM version WHERE soft = ?;';
964
965
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($name));
966
	$version_fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
967
968
969
970
	if (count($version_fetch) > 0)
		return $version_fetch[0];
	return false;
}
Gabriel Moreau's avatar
Gabriel Moreau committed
971
// ---------------------------------------------------------------------
972
973

function set_version_by_name($pdo, $name, $version) {
Estéban Ristich's avatar
Estéban Ristich committed
974
	$sql = 'INSERT INTO version (soft, version) VALUES (?, ?);';
975
	if (get_version_by_name($pdo, $name))
Estéban Ristich's avatar
Estéban Ristich committed
976
		$sql = 'UPDATE version SET version = ? WHERE soft = ?;';
977
978
979
980
	$stmt = $pdo->prepare($sql);
	$stmt->execute(array($name, $version));
}

981
?>