86 lines
2.1 KiB
PHP
86 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Garradin\Plugin\Materiels;
|
|
|
|
use Garradin\DB;
|
|
use Garradin\Plugin\Materiels\Equipment;
|
|
use Garradin\Plugin\Materiels\Output;
|
|
|
|
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 edit($id, $data = [])
|
|
{
|
|
$db = DB::getInstance();
|
|
$db->update('plugin_materiels_entry', $data, $db->where('id', $id));
|
|
}
|
|
|
|
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()
|
|
{
|
|
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);
|
|
}
|
|
}
|
|
}
|