materiels/src/lib/Entry.php

92 lines
2.4 KiB
PHP
Raw Normal View History

<?php
namespace Garradin\Plugin\Materiels;
use Garradin\DB;
use Garradin\Plugin\Materiels\Equipment;
use Garradin\Plugin\Materiels\Output;
2021-06-05 18:48:45 +02:00
class Entry
{
public function listKinds()
{
return array(
'Achat',
'Don',
'Récupération',
'Location / Prêt',
);
}
public function add($data = [])
{
DB::getInstance()->insert('plugin_materiels_entry', $data);
}
public function get($id)
{
return DB::getInstance()->first('SELECT * FROM plugin_materiels_entry WHERE id = ?;', $id);
}
public function delete($id)
{
DB::getInstance()->delete('plugin_materiels_entry', 'id = ' . $id);
}
public function listAll()
{
2021-06-06 12:02:18 +02:00
return DB::getInstance()->get('SELECT * FROM plugin_materiels_entry ORDER BY entry_date DESC;');
}
public function listAllByEquipment($eqmt_id)
{
return DB::getInstance()->get('SELECT * FROM plugin_materiels_entry WHERE equipment_id = ? ORDER BY entry_date DESC;', $eqmt_id);
}
public function PossibilityRentEqmtEntry($id, $eqmt_number, $date)
{
$after_entry_dates = DB::getInstance()->get(
"SELECT entry_date FROM plugin_materiels_entry WHERE kind = 'Retour de location / prêt' AND equipment_id = '{$id}' AND entry_date > '{$date}';");
$entry_dates = array($date);
foreach ($after_entry_dates as $row)
{
array_push($entry_dates, $row->entry_date);
}
$eqmt = new Equipment;
foreach ($entry_dates as $entry_date) {
$out_of_stock_eqmt = $eqmt->CalculateOutOfStockByDate($id, $entry_date);
if ($out_of_stock_eqmt - $eqmt_number < 0)
{
return false;
}
}
return true;
}
public function PossibilityDeleteEntry($entry)
{
$output = new Output;
if ($entry->kind == 'Location / Prêt')
{
return $output->PossibilityNoOwnedEqmtOutput(
$entry->equipment_id, $entry->equipment_number, $entry->entry_date);
} else
{
return $output->PossibilityOwnedEqmtOutput(
$entry->equipment_id, $entry->equipment_number, $entry->entry_date);
}
}
public function AllDatesByEquipment($eqmt_id)
{
$entry_dates = DB::getInstance()->get(
'SELECT DISTINCT entry_date FROM plugin_materiels_entry WHERE equipment_id = ? ORDER BY entry_date DESC;', $eqmt_id);
$entry_dates_array = array();
foreach ($entry_dates as $row)
{
array_push($entry_dates_array, $row->entry_date);
}
return $entry_dates_array;
}
}