ok to modify equipment

This commit is contained in:
JBthePenguin 2021-06-05 16:45:03 +02:00
parent c3eb06ce0d
commit 35c88400b0
7 changed files with 111 additions and 17 deletions

View File

@ -28,6 +28,12 @@ class Entry // entrées définitives
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 listAll()
{
return DB::getInstance()->get('SELECT * FROM plugin_materiels_entry ORDER BY date_of_entry DESC;');

View File

@ -20,6 +20,12 @@ class Equipment
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);

View File

@ -18,13 +18,13 @@
<table class="list">
<thead>
<th>Nom</th>
<td></td>
<th><b>Nom</b></th>
<th></th>
</thead>
<tbody>
{foreach from=$list item="cat"}
<tr>
<th>{$cat.name}</th>
<td>{$cat.name}</td>
<td class="actions">
{linkbutton shape="upload" label="Liste des matériels" href="materiels_par_categorie.php?id=%d"|args:$cat.id}
{linkbutton shape="edit" label="Modifier" href="modifier_categorie.php?id=%d"|args:$cat.id}

View File

@ -10,18 +10,18 @@
<table class="list">
<thead>
<th>Date</th>
<td>Type</td>
<td>Nombre</td>
<td>Matériel</td>
<th><b>Date</b></th>
<th><b>Type</b></th>
<th><b>Nombre</b></th>
<th><b>Matériel</b></th>
</thead>
<tbody>
{foreach from=$entries item="entry"}
<tr>
<th>{$entry.date_of_entry}</th>
<th>{$entry.kind}</th>
<th>{$entry.number_of_equipments}</th>
<th>{$entry.equipment.designation}</th>
<td>{$entry.date_of_entry}</td>
<td>{$entry.kind}</td>
<td>{$entry.number_of_equipments}</td>
<td>{$entry.equipment.designation}</td>
</tr>
{/foreach}
</tbody>

View File

@ -4,16 +4,20 @@
<table class="list">
<thead>
<th>Nombre en stock</th>
<td>Categorie</td>
<td>Désignation</td>
<th><b>Nombre</b></th>
<th><b>Désignation</b></th>
<th><b>Categorie</b></th>
<th></th>
</thead>
<tbody>
{foreach from=$eqmts item="eqmt"}
<tr>
<th>{$eqmt.number_of_equipments}</th>
<th>{$eqmt.category.name}</th>
<th>{$eqmt.designation}</th>
<td>{$eqmt.number_of_equipments}</td>
<td>{$eqmt.designation}</td>
<td>{$eqmt.category.name}</td>
<td class="actions">
{linkbutton shape="edit" label="Modifier" href="modifier_materiel.php?id=%d"|args:$eqmt.id}
</td>
</tr>
{/foreach}
</tbody>

View File

@ -0,0 +1,28 @@
{include file="admin/_head.tpl" title="%s"|args:$plugin.nom current="plugin_%s"|args:$plugin.id}
{include file="%s_nav.tpl"|args:$plugin_tpl current="index"}
<form method="post" action="{$self_url}" data-focus="1">
{form_errors}
<fieldset>
<legend>Modifier ce matériel</legend>
<dl>
<dt><label for="f_cat">Catégorie</label> <b>(obligatoire)</b></dt>
<dd>
<select name="category_id" id="f_cat">
{foreach from=$cats item="cat"}
<option value="{$cat.id}"{if $selected_cat == $cat.id} selected="selected"{/if}>{$cat.name}</option>
{/foreach}
</select>
</dd>
{input type="text" name="designation" label="Désignation" required=true source=$eq maxlength="255"}
</dl>
</fieldset>
<p class="submit">
{csrf_field key=$csrf_key}
{button type="submit" name="save" label="Enregistrer" shape="right" class="main"}
{linkbutton label="Annuler" shape="export" href=$cancel_link}
</p>
</form>
{include file="admin/_foot.tpl"}

View File

@ -0,0 +1,50 @@
<?php
namespace Garradin;
use Garradin\Plugin\Materiels\Equipment;
use Garradin\Plugin\Materiels\Category;
use Garradin\Utils;
require_once __DIR__ . '/_inc.php';
$eqmt = new Equipment;
$eq = $eqmt->get((int) qg('id'));
if (!$eq) {
throw new UserException("Ce matériel n'existe pas.");
}
$cat = new Category;
$cats = $cat->listAll();
$selected_cat = $eq->category_id;
$csrf_key = 'edit_equipment_' . $eq->id;
if (f('save') && $form->check($csrf_key) && !$form->hasErrors())
{
try
{
$eqmt->edit($eq->id, [
'category_id' => (int) f('category_id'),
'designation' => ucfirst(strtolower(f('designation'))),
]);
Utils::redirect(PLUGIN_URL . 'index.php');
}
catch (\RuntimeException $e)
{
if (strstr($e->getMessage(), 'UNIQUE constraint failed'))
{
$form->addError('Ce matériel avec cette désignation existe déjà.');
} else
{
$form->addError($e->getMessage());
}
}
}
$cancel_link = PLUGIN_URL . 'index.php';
$tpl->assign(compact('eq', 'cats', 'selected_cat', 'csrf_key', 'cancel_link'));
$tpl->display(PLUGIN_ROOT . '/templates/modifier_materiel.tpl');