Licensed under the GNU AGPL v3 license.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Affero Public License as published by
the Free Software Foundation, version 3.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Affero Public License for more details.
You should have received a copy of the GNU General Affero Public License
along with this program. If not, see .
*/
if (substr($_SERVER['HTTP_HOST'], -4) == '.svn')
define('ENV_TEST', true);
else
define('ENV_TEST', false);
error_reporting(E_ALL);
define('STEP_GENERAL', 1);
define('STEP_REMUNERATION', 2);
define('STEP_INDEMNITE', 3);
define('STEP_RESULTS', 10);
// Making shure we don't get GPC loosy variables
if (get_magic_quotes_gpc())
{
function strip_slashes_from_user_data(&$array)
{
foreach($array as $k => $v)
{
if (is_array($v))
{
strip_slashes_from_user_data($array[$k]);
continue;
}
$array[$k] = stripslashes($v);
}
}
strip_slashes_from_user_data($_GET);
strip_slashes_from_user_data($_POST);
strip_slashes_from_user_data($_COOKIE);
}
function escape($s)
{
return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
}
// Renvoie une valeur, qu'elle vienne de _POST ou de l'objet calcul
function input($k, $key = null)
{
if (isset($_POST[$k]))
{
$r = $_POST[$k];
}
elseif (isset($GLOBALS['calcul']->$k))
{
$r = $GLOBALS['calcul']->$k;
if (strpos($k, 'Date_') !== false)
$r = date('d/m/Y', $r);
}
else
{
$r = '';
}
if (!is_null($key))
{
if (is_array($r) && array_key_exists($key, $r))
$r = $r[$key];
else
$r = '';
}
return escape($r);
}
require dirname(__FILE__) . '/class.calcul.php';
require dirname(__FILE__) . '/lib.utils.php';
$calcul = new Calcul;
// Chargement d'une simulation précédente
if (!empty($_GET['my']))
{
utils::loadFromHash($calcul, $_GET['my']);
utils::saveToSession($calcul);
header('Location: ./');
exit;
}
else
{
utils::loadFromSession($calcul);
}
if (!isset($_SESSION['step']))
{
$_SESSION['step'] = STEP_GENERAL;
}
$step =& $_SESSION['step'];
$error = false;
// Outil de test
if (ENV_TEST && !empty($_POST['import']))
{
if (!empty($_POST['type']) && $_POST['type'] == 'json')
utils::loadFromJSON($calcul, $_POST['import']);
else
utils::loadFromHash($calcul, $_POST['import']);
utils::saveToSession($calcul);
header('Location: ./');
exit;
}
// Vérif / Enregistrement des données
if (isset($_POST['next']) || isset($_POST['prev']))
{
if ($step == STEP_GENERAL)
{
if (!isset($_POST['Date_Naissance']) || !utils::dateCheck($_POST['Date_Naissance']))
{
$error = 'Date de naissance vide ou invalide.';
}
else if (!isset($_POST['Date_Debut']) || !utils::dateCheck($_POST['Date_Debut']))
{
$error = 'Date de début vide ou invalide.';
}
elseif (!isset($_POST['Date_Fin']) || !utils::dateCheck($_POST['Date_Fin']))
{
$error = 'Date de fin vide ou invalide.';
}
elseif (utils::dateToTS($_POST['Date_Debut']) > utils::dateToTS($_POST['Date_Fin']))
{
$error = 'La date de début ne peut être postérieure à la date de fin.';
}
else
{
$calcul->Date_Naissance = utils::dateToTS($_POST['Date_Naissance']);
$calcul->Date_Debut = utils::dateToTS($_POST['Date_Debut']);
$calcul->Date_Fin = utils::dateToTS($_POST['Date_Fin']);
}
if ($calcul->getDuree() < Calcul::DUREE_MINIMALE_COTISATION)
{
$error = 'La durée de cotisation minimale pour avoir droit à l\'ARE est de '.Calcul::DUREE_MINIMALE_COTISATION.' jours.';
}
}
elseif ($step == STEP_REMUNERATION)
{
$mois = $calcul->getListeMois();
$annees = $calcul->getListeAnnees();
foreach ($mois as $k)
{
if (!isset($_POST['Salaires'][$k]) || (!trim($_POST['Salaires'][$k]) === false && !is_numeric($_POST['Salaires'][$k])))
{
$error = 'Salaire invalide pour '.utils::getNomMois(substr($k, 4)).' '.substr($k, 0, 4).'.';
break;
}
if (!isset($_POST['Suspensions'][$k]) || (!trim($_POST['Suspensions'][$k]) === false && !is_numeric($_POST['Suspensions'][$k])))
{
$error = 'Nombre de jours invalide pour '.utils::getNomMois(substr($k, 4)).' '.substr($k, 0, 4).'.';
break;
}
}
if (!$error)
{
foreach ($annees as $v)
{
if (!isset($_POST['Primes_Annuelles'][$v])
|| (!trim($_POST['Primes_Annuelles'][$v]) === false && !is_numeric($_POST['Primes_Annuelles'][$v])))
{
$error = 'Primes annuelles invalides pour '.$v.'.';
break;
}
}
}
if (!$error)
{
foreach ($mois as $k)
{
if (isset($_POST['Salaires'][$k]))
$calcul->AjouterSalaire($k, $_POST['Salaires'][$k]);
if (isset($_POST['Suspensions'][$k]))
$calcul->AjouterSuspensions($k, $_POST['Suspensions'][$k]);
}
foreach ($annees as $v)
{
if (isset($_POST['Primes_Annuelles'][$v]))
$calcul->AjouterPrimesAnnuelles($v, $_POST['Primes_Annuelles'][$v]);
}
}
}
elseif ($step == STEP_INDEMNITE)
{
if (!isset($_POST['Indemnite_Conges']) || (!trim($_POST['Indemnite_Conges']) === false && !is_numeric($_POST['Indemnite_Conges'])))
{
$error = 'Indemnité de congés payés invalide.';
}
else if (!isset($_POST['Indemnite_Extra']) || (!trim($_POST['Indemnite_Extra']) === false && !is_numeric($_POST['Indemnite_Extra'])))
{
$error = 'Indemnité extra-légale invalide.';
}
else
{
$calcul->Indemnite_Extra = (int) $_POST['Indemnite_Extra'];
$calcul->Indemnite_Conges = (int) $_POST['Indemnite_Conges'];
}
}
if (!$error)
{
if (isset($_POST['prev']))
{
$step--;
}
else
{
$step++;
}
// Sauvegarde en session de l'objet
utils::saveToSession($calcul);
header('Location: ./');
exit;
}
}
echo '
ARE - Simulation du calcul de l\'indemnisation à l\'assurance chômage
Simulation du calcul de l\'ARE
Pour calculer son indemnisation chômage
Ce service est gratuit et sans publicité.
Attention
cette simulation du calcul de l\'allocation de retour à l\'emploi, délivrée par Pole Emploi,
ne se veut en aucun cas exhaustive même si elle tente de l\'être. Les calculs indiqués
ne représentent en aucun cas une interprétation exhaustive du
règlement général
de l\'assurance chômage mais seulement une lecture attentive par un chômeur.
Dernière mise à jour des taux et autres données utilisées dans le calcul : '.Calcul::MISE_A_JOUR.'.
Ce calcul ne prends pas encore en compte certains paramètres liés à des situations particulières et notamment :
le travail à temps partiel, le chômage saisonnier, le licenciement économique, les réductions de cotisations sociales,
les salariés en âge de pré-retraite, etc.
';
if (ENV_TEST)
{
echo '
'.utils::saveToJSON($calcul).'
'.utils::saveToHash($calcul).'
';
}
echo '
';
?>