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 ($error) { echo '

'.escape($error).'

'; } if ($step == STEP_GENERAL) { echo '
Informations personnelles
(jj/mm/aaaa)
Période de travail
(jj/mm/aaaa)
(jj/mm/aaaa)

'; } elseif ($step == STEP_REMUNERATION) { echo '
Revenus des derniers mois
Salaires bruts
Attention, ne pas inclure ici les primes, indemnité de 13ème mois, salaire supplémentaire dû à des heures supplémentaires et autres gratifications exceptionnelles.
'; foreach ($calcul->getListeMois() as $mois) { echo ' '; } echo '
Rémunérations, primes et gratifications annuelles
Recopier ici la somme des revenus supplémentaires (prime de bilan, indemnité de 13ème mois, prime de vacances, prime de fin de projet, heures supplémentaires, etc.) afférents à l\'année indiquée. Ne pas indiquer les revenus qui ne sont pas afférents à l\'année indiquée.
Exemple : vous avez perçu en 2010 une indemnité de 13ème mois relevant de l\'année 2009, mais l\'année 2010 ne fait pas partie des années indiquées. Comme l\'indemnité est perçue pour la période de 2009, l\'indiquer pour l\'année 2009. Par contre si vous avez perçu en 2009 une indemnité relevant de 2008 alors que 2008 n\'est pas indiqué, il ne faut pas tenir compte de cette somme.
'; foreach ($calcul->getListeAnnees() as $annee) { echo ' '; } echo '
Jours à ne pas prendre en compte
Inscrire ici pour chaque mois le nombre de jours de maladie, de maternité ou toute autre suspension du contrat de travail n\'ayant pas donné lieu à une rémunération normale (congé sans solde, congé sabbatique, etc.).
Ne pas inscrire les jours d\'absence ayant donné lieu à une rémunération normale, par exemple les jours de maladie qui ont donné lieu à un maintien du salaire.
'; foreach ($calcul->getListeMois() as $mois) { echo ' '; } echo '

'; } elseif ($step == STEP_INDEMNITE) { echo '
Sommes perçues à l\'occasion de la fin du contrat
Concerne uniquement les sommes que vous avez touché qui font partie d\'une transaction extra-légale.

Ces indemnités ne sont pas à indiquer en tant qu\'extra-légal : indemnité de préavis, indemnité légale de licenciement, indemnité minimale de rupture conventionnelle, indemnité de fin de contrat à durée déterminée, indemnité résultant d\'une convention collective, etc.

'; } else { $duree = $calcul->getDureeIndemnisation(); $sjr = $calcul->getSJR(); $alloc = $calcul->getAllocation(); $alloc_nette = $calcul->getAllocationNette(); $carence_minimale = $calcul->getCarenceMinimale(); $carence_conges = $calcul->getCarenceConges(); $carence_extra = $calcul->getCarenceExtra(); $debut_indemnisation = $calcul->Date_Fin + (($carence_minimale + $carence_conges + $carence_extra + 1) * 3600 * 24); echo '
Durée d\'indemnisation
'.$duree.' jours
Salaire journalier de référence
'.$sjr.' €
Allocation journalière brute
'.$alloc.' €
(Soit '.($alloc*30).' € brut par mois)
Allocation journalière nette
'.$alloc_nette.' €
(Soit '.($alloc_nette*30).' € net par mois)
Délai de carence minimal
'.$carence_minimale.' jours
Délai de carence correspondant à l\'indemnité congés payés
'.$carence_conges.' jours
Délai de carence correspondant aux indemnités extra-légales
'.$carence_extra.' jours
Début de prise en charge
'.date('d/m/Y', $debut_indemnisation).'
'; $liste_mois = $calcul->getListeMois(); foreach ($liste_mois as $mois) { echo ' '; } echo '
Mois Salaire Jours anormaux
'.utils::getNomMois(substr($mois, 4)).' '.substr($mois, 0, 4).' '.input('Salaires', $mois).' '; if ($v = input('Suspensions', $mois)) echo ''.$v.''; else echo $v; echo '
Montant de l\'indemnité congés payés
'.(int)$calcul->Indemnite_Conges.' €
Montant des indemnités extra-légales de fin de contrat
'.(int)$calcul->Indemnite_Extra.' €
'; $annees = $calcul->getListeAnnees(); foreach ($annees as $annee) { echo '
Montant des primes, rémunération et gratifications afférentes à l\'année '.$annee.'
'.input('Primes_Annuelles', $annee).' €
'; } echo '

Voir cette simulation sur le site Pole-Emploi.fr

Pour sauvegarder cette simulation, enregistrez le lien suivant dans vos favoris : Ma simulation ARE

'; } echo '
'; if (ENV_TEST) { echo '
Importer


'.utils::saveToJSON($calcul).'

'.utils::saveToHash($calcul).'
'; } echo ' '; ?>