ok for all calculation, next add output

This commit is contained in:
JBthePenguin 2021-06-08 00:23:17 +02:00
parent 71775c0f67
commit 54858e2d18
14 changed files with 259 additions and 39 deletions

Binary file not shown.

View File

@ -47,21 +47,62 @@ class Equipment
return $entries - $outputs;
}
public function listAllOwnedByCategory()
public function CalculateOutOfStock($id)
{
$entries = DB::getInstance()->firstColumn(
"SELECT sum(equipment_number) FROM plugin_materiels_entry WHERE kind = 'Retour de location / prêt' AND equipment_id = ?;", $id);
$outputs = DB::getInstance()->firstColumn(
"SELECT sum(equipment_number) FROM plugin_materiels_output WHERE kind = 'Location / Prêt' AND equipment_id = ?;", $id);
return $outputs - $entries;
}
public function CalculateNoOwned($id)
{
$entries = DB::getInstance()->firstColumn(
"SELECT sum(equipment_number) FROM plugin_materiels_entry WHERE kind = 'Location / Prêt' AND equipment_id = ?;", $id);
$outputs = DB::getInstance()->firstColumn(
"SELECT sum(equipment_number) FROM plugin_materiels_output WHERE kind = 'Retour de location / prêt' AND equipment_id = ?;", $id);
return $entries - $outputs;
}
public function GetAllListByCategory()
{
$eqmts_by_cat = $this->listAllByCategory();
$eqmts_owned_by_cat = array();
$eqmts_no_owned_by_cat = array();
$eqmts_just_listed_by_cat = array();
foreach ($eqmts_by_cat as $cat => $eqmts) {
$eqmts_owned = array();
$eqmts_no_owned = array();
$eqmts_just_listed = array();
foreach ($eqmts as $eqmt) {
$stock = $this->CalculateStock($eqmt->id);
if ($stock) {
$eqmt->stock = $this->CalculateStock($eqmt->id);
$eqmt->stock = $stock;
$out_of_stock = $this->CalculateOutOfStock($eqmt->id);
if ($out_of_stock) {
$eqmt->out_of_stock = $out_of_stock;
} else {
$eqmt->out_of_stock = 0;
}
array_push($eqmts_owned, $eqmt);
}
$no_owned = $this->CalculateNoOwned($eqmt->id);
if ($no_owned) {
$eqmt->no_owned = $no_owned;
array_push($eqmts_no_owned, $eqmt);
}
if ($stock + $no_owned == 0) {
array_push($eqmts_just_listed, $eqmt);
}
}
$eqmts_owned_by_cat[$cat] = $eqmts_owned;
$eqmts_no_owned_by_cat[$cat] = $eqmts_no_owned;
$eqmts_just_listed_by_cat[$cat] = $eqmts_just_listed;
}
return $eqmts_owned_by_cat;
return array(
$eqmts_owned_by_cat, $eqmts_no_owned_by_cat,
$eqmts_just_listed_by_cat
);
}
}

View File

@ -17,4 +17,20 @@ class Output
'Retour de location / prêt',
);
}
public function add($data = [])
{
DB::getInstance()->insert('plugin_materiels_output', $data);
}
public function edit($id, $data = [])
{
$db = DB::getInstance();
$db->update('plugin_materiels_output', $data, $db->where('id', $id));
}
public function listAll()
{
return DB::getInstance()->get('SELECT * FROM plugin_materiels_output ORDER BY output_date DESC;');
}
}

View File

@ -3,7 +3,7 @@
<li class="{if $current == 'index'}current{/if}"><a href="{plugin_url}">Inventaire</a></li>
<li class="{if $current == 'categories'}current{/if}"><a href="{plugin_url file="categories/index.php"}">Catégories</a></li>
<li class="{if $current == 'entrees'}current{/if}"><a href="{plugin_url file="entrees/index.php"}">Entrées</a></li>
<li class="{if $current == 'sorties_definitives'}current{/if}"><a href="{plugin_url file="sorties.php"}">Sorties</a></li>
<li class="{if $current == 'sorties'}current{/if}"><a href="{plugin_url file="sorties/index.php"}">Sorties</a></li>
<li class="{if $current == 'recherche'}current{/if}"><a href="{plugin_url file="recherche.php"}">Recherche</a></li>
</ul>
</nav>

View File

@ -5,11 +5,13 @@
<dd>
<select name="equipment_id" id="f_eqmt">
{foreach from=$eqmts_by_cat key='cat' item="eqmts"}
{if $eqmts}
<optgroup label="-- {$cat} --">
{foreach from=$eqmts item="eqmt"}
<option value="{$eqmt.id}">{$eqmt.designation}</option>
{/foreach}
</optgroup>
{/if}
{/foreach}
</select>
</dd>

View File

@ -8,7 +8,8 @@
{linkbutton shape="plus" label="Matériel déjà répertorié" href="deja_repertorie.php"}
</fieldset>
<table class="list">
{if $entries}
<table class="list">
<thead>
<th><b>Date</b></th>
<th><b>Type</b></th>
@ -27,6 +28,7 @@
</tr>
{/foreach}
</tbody>
</table>
</table>
{/if}
{include file="admin/_foot.tpl"}

View File

@ -21,8 +21,8 @@
<tr>
<td>{$eqmt.designation}</td>
<td>{$eqmt.stock}</td>
<td>0</td>
<td>0</td>
<td>{$eqmt.out_of_stock}</td>
<td>{$eqmt.stock - $eqmt.out_of_stock}</td>
<td class="actions">
{linkbutton shape="edit" label="Modifier" href="modifier_materiel.php?id=%d"|args:$eqmt.id}
</td>
@ -33,8 +33,56 @@
{/if}
{/foreach}
<h2>Matériel dont l'association n'est pas propriétaire</h2>
<h2>Matériel dont l'association n'est pas propriétaire (loué ou prêté)</h2>
{foreach from=$eqmts_no_owned_by_cat key='cat' item="eqmts"}
{if $eqmts}
<h3>{$cat}</h3>
<table class="list">
<thead>
<tr>
<th><b>Désignation</b></th>
<th><b>Nombre</b></th>
<th></th>
</tr>
</thead>
<tbody>
{foreach from=$eqmts item="eqmt"}
<tr>
<td>{$eqmt.designation}</td>
<td>{$eqmt.no_owned}</td>
<td class="actions">
{linkbutton shape="edit" label="Modifier" href="modifier_materiel.php?id=%d"|args:$eqmt.id}
</td>
</tr>
{/foreach}
</tbody>
</table>
{/if}
{/foreach}
<h2>Matériel déjà répertorié qui n'est plus en possession de l'association</h2>
<h2>Matériel dont l'association n'est plus en possession</h2>
{foreach from=$eqmts_just_listed_by_cat key='cat' item="eqmts"}
{if $eqmts}
<h3>{$cat}</h3>
<table class="list">
<thead>
<tr>
<th><b>Désignation</b></th>
<th></th>
</tr>
</thead>
<tbody>
{foreach from=$eqmts item="eqmt"}
<tr>
<td>{$eqmt.designation}</td>
<td class="actions">
{linkbutton shape="edit" label="Modifier" href="modifier_materiel.php?id=%d"|args:$eqmt.id}
</td>
</tr>
{/foreach}
</tbody>
</table>
{/if}
{/foreach}
{include file="admin/_foot.tpl"}

View File

@ -2,4 +2,6 @@
{include file="%s_nav.tpl"|args:$plugin_tpl current="sorties"}
en stock sortie
{include file="admin/_foot.tpl"}

View File

@ -0,0 +1,34 @@
{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="sorties"}
<fieldset>
<legend>Ajouter une sortie pour du </legend>
{linkbutton shape="plus" label="Matériel en stock" href="en_stock.php"}
{linkbutton shape="plus" label="Matériel emprunté" href="pas_proprietaire.php"}
</fieldset>
{if $outputs}
<table class="list">
<thead>
<th><b>Date</b></th>
<th><b>Type</b></th>
<th><b>Nombre</b></th>
<th><b>Matériel</b></th>
<th><b>Remarques</b></th>
</thead>
<tbody>
{foreach from=$outputs item="output"}
<tr>
<td>{$output.output_date}</td>
<td>{$output.kind}</td>
<td>{$output.equipment_number}</td>
<td>{$output.equipment.designation}</td>
<td>{$output.additional_comment}</td>
</tr>
{/foreach}
</tbody>
</table>
{/if}
{include file="admin/_foot.tpl"}

View File

@ -0,0 +1,7 @@
{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="sorties"}
pas propriétaire sortie
{include file="admin/_foot.tpl"}

View File

@ -13,8 +13,13 @@ require_once __DIR__ . '/_inc.php';
$eqmt = new Equipment;
$eqmts_owned_by_cat = $eqmt->listAllOwnedByCategory();
list(
$eqmts_owned_by_cat, $eqmts_no_owned_by_cat,
$eqmts_just_listed_by_cat) = $eqmt->GetAllListByCategory();
$tpl->assign(compact('eqmts_owned_by_cat'));
$tpl->assign(compact(
'eqmts_owned_by_cat', 'eqmts_no_owned_by_cat',
'eqmts_just_listed_by_cat'
));
$tpl->display(PLUGIN_ROOT . '/templates/index.tpl');

View File

@ -0,0 +1,21 @@
<?php
namespace Garradin;
use Garradin\Plugin\Materiels\Output;
use Garradin\Plugin\Materiels\Equipment;
use Garradin\Utils;
require_once __DIR__ . '/../_inc.php';
$output = new Output;
$eqmt = new Equipment;
$csrf_key = 'add_output';
$cancel_link = PLUGIN_URL . 'sorties/index.php';
$tpl->assign(compact('csrf_key'));
$tpl->display(PLUGIN_ROOT . '/templates/sorties/en_stock.tpl');

View File

@ -0,0 +1,21 @@
<?php
namespace Garradin;
use Garradin\Plugin\Materiels\Equipment;
use Garradin\Plugin\Materiels\Output;
require_once __DIR__ . '/../_inc.php';
$eqmt = new Equipment;
$output = new Output;
$outputs = $output->listAll();
foreach ($outputs as $key => $value) {
$outputs[$key]->equipment = $eqmt->get($value->equipment_id);
}
$tpl->assign(compact('outputs'));
$tpl->display(PLUGIN_ROOT . '/templates/sorties/index.tpl');

View File

@ -0,0 +1,21 @@
<?php
namespace Garradin;
use Garradin\Plugin\Materiels\Output;
use Garradin\Plugin\Materiels\Equipment;
use Garradin\Utils;
require_once __DIR__ . '/../_inc.php';
$output = new Output;
$eqmt = new Equipment;
$csrf_key = 'add_output';
$cancel_link = PLUGIN_URL . 'sorties/index.php';
$tpl->assign(compact('csrf_key'));
$tpl->display(PLUGIN_ROOT . '/templates/sorties/pas_proprietaire.tpl');