insert('plugin_materiels_equipment', $data); return $db->lastInsertRowId(); } public function edit($id, $data = []) { $db = DB::getInstance(); $db->update('plugin_materiels_equipment', $data, $db->where('id', $id)); } public function get($id) { return DB::getInstance()->first('SELECT * FROM plugin_materiels_equipment WHERE id = ?;', $id); } public function listAllByCategory() { $category = new Category; $cats = $category->listAll(); $eqmts_by_cat = array(); foreach ($cats as $cat) { $eqmts_by_cat[$cat->name] = $category->listAllEquipments($cat->id); } return $eqmts_by_cat; } public function CalculateStock($id) { $entries = DB::getInstance()->firstColumn( "SELECT sum(equipment_number) FROM plugin_materiels_entry WHERE kind IN ( 'Achat', 'Don', 'Récupération') AND equipment_id = ?;", $id); $outputs = DB::getInstance()->firstColumn( "SELECT sum(equipment_number) FROM plugin_materiels_output WHERE kind IN ( 'Vente', 'Don', 'Besoin', 'Autre (perte, vol, ...)') AND equipment_id = ?;", $id); return $entries - $outputs; } public function listAllOwnedByCategory() { $eqmts_by_cat = $this->listAllByCategory(); $eqmts_owned_by_cat = array(); foreach ($eqmts_by_cat as $cat => $eqmts) { $eqmts_owned = array(); foreach ($eqmts as $eqmt) { $stock = $this->CalculateStock($eqmt->id); if ($stock) { $eqmt->stock = $this->CalculateStock($eqmt->id); array_push($eqmts_owned, $eqmt); } } $eqmts_owned_by_cat[$cat] = $eqmts_owned; } return $eqmts_owned_by_cat; } }