'error', 'message' => fxBibMsg('bib_v4_ajax_session_invalid')); break; } if (!fxBibValidateCsrf($_POST['csrf_token'] ?? '')) { $tabRetour = array('state' => 'error', 'message' => fxBibMsg('bib_v4_ajax_unauthorized')); break; } $intEveId = fxBibResolveEveIdFromRequest(); $blnCanEditQte = !empty($_SESSION['usa_id']) || (!empty($_SESSION['com_id']) && $intEveId > 0 && fxEveAccesHasPermission($_SESSION['com_id'], $intEveId, 'epreuves.edit_qte')); if (!$blnCanEditQte) { $tabRetour = array('state' => 'error', 'message' => fxBibMsg('bib_v4_ajax_unauthorized')); break; } if ($strQuantiteTotale === '' || strlen($strQuantiteTotale) > 7 || !ctype_digit($strQuantiteTotale)) { $tabRetour = array('state' => 'error', 'message' => afficheTexte('promoteur_bad_qte_update', 0)); break; } $tabRetour = fxUpdateQuantiteTotale($intEpreuve, intval($strQuantiteTotale)); if (($tabRetour['state'] ?? 'error') !== 'success') { if (($tabRetour['error_code'] ?? '') === 'total_below_registrations') { $tabRetour['message'] = fxBibMsg( 'bib_v5_qte_total_min', intval($tabRetour['qte_inscrits'] ?? 0) ); } else { $tabRetour['message'] = afficheTexte('promoteur_bad_qte_update', 0); } } break; case 'no_equipe': case 'no_bib': $tabRetour = fxSetBibManuel($strAction, $intEvenement, $intNewNoBib, $intEpreuveCommandee, $intEpreuve, $intPartipcipant, $strLangue); break; case 'par_statut_course': $tabRetour = fxSetParStatutCourse($intPartipcipant, $strStatutCourse, $strLangue); break; case 'teammates': $tabRetour = fxShowTeammates($intEvenement, $intEpreuve, $intEpreuveCommandee); break; } unset($_SESSION['msg']); echo json_encode($tabRetour);