radiantproduction/api/nikao/creer.php

296 lines
7.9 KiB
PHP

<?php
session_start();
// Headers requis
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
//ajout du 26/01/2021
$seceretKey = '$2y$10$A0stANKY6LUCuSf/hdw9N.pVharAm/9U5wmUdhEbS2zjqdW9yIQNy';
$headers = apache_request_headers();
if(isset($headers['Authorization'])){
$api_key = $headers['Authorization'];
if($api_key != $seceretKey)
{
http_response_code(403);
$message = "Autoirisation refusée! / Authorization faild!";
echo json_encode(["success" => "0", "message" => $message]);
exit;
}
}
else
{
http_response_code(403);
$message = "Autorisation refusée! / Authorization faild!";
echo json_encode(["success" => "0", "message" => $message]);
exit;
}
// fin 26/01/2021
// On vérifie la méthode
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
require_once 'Modele_api.php';
require_once 'Police_api.php';
$_SESSION['codeTypeApporteur_C'] = "AP";
$_SESSION['codeApporteur_C'] = "nikao";
$_SESSION['libelleApporteur_C'] = "NIKAO";
$_SESSION['login'] = "nikao";
$codeTypeAvenant = "INC";
$motifavenant = "INCORPORATION NIKAO";
$police= new Police_api();
$idPolice = $police->fn_get_id_police_familliale();
$dateEffetPolice = $police->fn_date_effet_police($idPolice);
$dateFinPolice = $police->fn_date_fin_police($idPolice);
$_SESSION['idPolice_C'] = $idPolice;
$idAvenant = $police->creeravenantapi($idPolice);
$_SESSION['idAvenant_C'] = $idAvenant;
$idSaisie = uniqid();
$_SESSION['idSaisie'] = $idSaisie;
$police->viderbeneficiairemodeltempapi();
$police->initIinsererLigneModeleAssureFamilialeApi($idPolice, $idSaisie);
$donnees = json_decode(file_get_contents("php://input"));
$nb = count($donnees);
if ($nb == 0)
{
http_response_code(503);
$message = "Pas de données! / No data!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
else
{
foreach ($donnees as $donnee)
{
$numeroAdherent = $donnee->{'numeroAdherent'};
$noFamille = $donnee->{'noFamille'};
$nom = $donnee->{'nom'};
$prenoms = $donnee->{'prenoms'};
$codeLienParente = $donnee->{'codeLienParente'};
$codeNaturePiece = $donnee->{'codeNaturePiece'};
$numeroPiece = $donnee->{'numeroPiece'};
$sexe = $donnee->{'sexe'};
$codeGroupeSanguin = $donnee->{'codeGroupeSanguin'};
$dateNaissance = $donnee->{'dateNaissance'};
$telephonePortable = $donnee->{'telephonePortable'};
$email = $donnee->{'email'};
$codeTypeEcheancier = $donnee->{'codeTypeEcheancier'};
$primeBase = $donnee->{'primeBase'};
$dateEntree = $donnee->{'dateEntree'};
$codecommercial = "nikao";
$idExterne = $donnee->{'id'};
if ($noFamille<=" ")
{
$noFamille = "0";
}
$primeBase = str_replace(",", "", $primeBase);
$primeBase = str_replace(".", "", $primeBase);
if ($primeBase<=" ")
{
$primeBase = "0";
}
settype($primeBase, "double");
$nomComplet = $nom . " " . $prenoms;
if ($idExterne<="0")
{
http_response_code(503);
$message = "$nomComplet => ID manquant / Missing ID!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
$liste_liens = array("A", "C", "E", "O");
if (!in_array($codeLienParente, $liste_liens))
{
http_response_code(503);
$message = "$nomComplet => Revoir lien de parenté! / Review relationship!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
$liste_sexes = array("M", "F");
if (!in_array($sexe, $liste_sexes))
{
http_response_code(503);
$message = "$nomComplet => Revoir le sexe! / Review the gender!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
if ( ($codeLienParente=="A") && ($codeTypeEcheancier<=" "))
{
http_response_code(503);
$message = "$nomComplet => Pas de type echéancier! / No schedule type!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
if ( ($codeLienParente=="A") && ($primeBase<="0"))
{
http_response_code(503);
$message = "$nomComplet => Pas de prime base! / No basic premium!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
if($dateEntree>$dateFinPolice || $dateEntree<$dateEffetPolice)
{
http_response_code(503);
$message = "$nomComplet => Revoir la date d'entrée! / Review the entry date!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
// Penser à gérer les erreurs de date
$police->insererLigneModeleAssureFamilialeApi($idAvenant, $numeroAdherent, $noFamille, $nom, $prenoms,
$codeLienParente, $codeNaturePiece, $numeroPiece, $sexe, $codeGroupeSanguin, $dateNaissance, $telephonePortable, $email,
$codecommercial, $codeTypeEcheancier, $primeBase, $dateEntree, $idExterne);
}
$police->gererIncorporationSurFamExistanteApi();
// Vérification de certaines erreurs :
// 1 => Si nouvelle famille sans Adhérent
$noFamilleSansAdherent = $police->getadhimpfamillesansadherentapi();
if ($noFamilleSansAdherent>"0")
{
$police->viderbeneficiairemodeltempapi();
http_response_code(405);
$message = "Famille $noFamilleSansAdherent => Adhérent Principal manquant! / Principal Member missing!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
// 2 => Si plus d'1 Adhérent dans une même famille
$noFamillePlusieursAdherent = $police->getadhimpfamilleplusieursadherentapi();
if ($noFamillePlusieursAdherent>"0")
{
$police->viderbeneficiairemodeltempapi();
http_response_code(405);
$message = "Famille $noFamillePlusieursAdherent => Plusieurs Adherents Principaux! / Several Main Members!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
// 3 => Incorporation sur une ancienne famille introuvable dans la police
$noFamilleExistantSansAdherent = $police->getadhimpfamilleexistantsansadherentapi();
if ($noFamilleExistantSansAdherent>"0")
{
$police->viderbeneficiairemodeltempapi();
http_response_code(405);
$message = "Famille $noFamilleExistantSansAdherent => Ancienne famille introuvable! / Old family not found!";
echo json_encode(["message" => $message]);
exit();
}
// Ajout du 03/12/2020 => renseigner les primes de base des dépendans
$police->recapitulerImportationAssuresFamlialeApi();
$police->incorpoerassuresimportesfamilialeapi();
/*
http_response_code(201);
$message = "Insertions réussies! / Successful insertions";
echo json_encode(["success" => "1", "message" => $message]);
exit();
*/
// retourner es données à NIKAO
$donnees = $police->retourdonneesapi();
if(count($donnees)>"0")
{
$numeroAdherentRetour = $donnees['0']['numeroAdherent'];
}
else
{
http_response_code(503);
$message = "Pas de données à retourner! / NNo data to return!";
echo json_encode(["success" => "0", "message" => $message]);
exit();
}
$tableau_retour = array();
/*
$tableau_retour[] =
[
"numeroAdherent" => $numeroAdherentRetour,
"member" => array(),
];
*/
/*
$tableau_retour[] =
[
"numeroAdherent" => $numeroAdherentRetour
];
*/
$tableau_member = array();
foreach ($donnees as $donnee)
{
$tableau_member[] =
[
"id" => $donnee['idExterne'],
"nocarte" => $donnee['numeroBeneficiaire']
];
}
// $tableau_retour[] = $tableau_member;
$tableau_retour[] =
[
"numeroAdherent" => $numeroAdherentRetour,
"member" => $tableau_member,
];
echo json_encode($tableau_retour);
exit();
}
}
else
{
// On gère l'erreur
// $police->viderbeneficiairemodeltempapi();
http_response_code(405);
$message = "Méthode non autoirisée! / Method Not Allowed!";
echo json_encode(["success" => "0", "message" => $message]);
}