File src/www/admin/compta/comptes/ajouter.php artifact df1d8630ca part of check-in 0a855a0a53


<?php
namespace Garradin;

require_once __DIR__ . '/../_inc.php';

$session->requireAccess('compta', Membres::DROIT_ADMIN);

$classe = (int) qg('classe');

if (!$classe || $classe < 1 || $classe > 9)
{
    throw new UserException("Cette classe de compte n'existe pas.");
}

$error = false;

if (!empty($_POST['add']))
{
    if (!Utils::CSRF_check('compta_ajout_compte'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    else
    {
        try
        {
            $id = $comptes->add([
                'id'            =>  Utils::post('numero'),
                'libelle'       =>  Utils::post('libelle'),
                'parent'        =>  Utils::post('parent'),
                'position'      =>  Utils::post('position'),
            ]);

            Utils::redirect('/admin/compta/comptes/?classe='.$classe);
        }
        catch (UserException $e)
        {
            $error = $e->getMessage();
        }
    }
}

$tpl->assign('error', $error);

$parent = $comptes->get(Utils::post('parent') ?: $classe);

$tpl->assign('positions', $comptes->getPositions());
$tpl->assign('position', Utils::post('position') ?: $parent['position']);
$tpl->assign('comptes', $comptes->listTree($classe));

$tpl->display('admin/compta/comptes/ajouter.tpl');