assure/Modele/Police.php
2025-12-05 09:34:39 +00:00

522 lines
21 KiB
PHP
Executable File

<?php
require_once 'Framework/Modele.php';
class Police extends Modele {
public function getPolices($numeroClient) {
$sql = 'SELECT A.id, A.codeSociete, A.idClient, A.numeroClient, numeroPolice, numeroPoliceSociete,
B.libelle As typeAvenant, dateEffet, dateFin, dateEcheance, numeroAvenant, dateAvenant, numeroDevis,
D.libelle as etatPolice, A.codeFractionnement, IFNULL(A.primeFamille,"0") as primeFamille,
IFNULL(A.primeBeneficiaire,"0") as primeBeneficiaire, rachatTm, TM.libelle as rachattm
FROM police A
left join typeavenant B on (B.codeTypeAvenant=A.codeTypeAvenant)
left join etatpolice D on (D.codeEtatPolice=A.codeEtatPolice)
left join rachattm TM on (TM.codeRachatTm=A.rachatTm)
WHERE (A.codeSociete=?) AND (A.numeroClient=?)';
$polices = $this->executerRequete($sql, array($_SESSION['codeSociete'], $numeroClient));
return $polices;
}
public function getPolicesId($id) {
$sql = 'SELECT A.id, A.codeSociete, A.idClient, A.numeroClient, numeroPolice, numeroPoliceSociete, numeroDevis,
B.libelle As typeAvenant, dateEffet, dateFin, dateEcheance, numeroAvenant, dateAvenant, ADDDATE(A.dateEcheance, +1) as DateRenouvellement,
D.libelle as etatPolice, A.codeFractionnement, T.libelle As typeContrat, IFNULL(A.primeFamille,"0") as primeFamille,
IFNULL(A.primeBeneficiaire,"0") as primeBeneficiaire, rachatTm, rachatTm, TM.libelle as rachattm, garantieArchive, collegeArchive
FROM police A
left join typecontrat T on (T.codeTypeContrat=A.codeTypeContrat)
left join typeavenant B on (B.codeTypeAvenant=A.codeTypeAvenant)
left join etatpolice D on (D.codeEtatPolice=A.codeEtatPolice)
left join rachattm TM on (TM.codeRachatTm=A.rachatTm)
WHERE (A.codeSociete=?) AND (A.idClient=?) order by A.id';
$polices = $this->executerRequete($sql, array($_SESSION['codeSociete'], $id));
return $polices;
}
public function getPolice($numeroPolice) {
$sql = 'SELECT A.id, A.codeSociete, A.idClient, A.numeroClient, numeroPolice, numeroPoliceSociete, numeroDevis,
A.codeTypeContrat, B.libelle As typeContrat, dateEffet, dateFin, dateEcheance, numeroAvenant, ADDDATE(A.dateEcheance, +1) as DateRenouvellement,
A.codeTypeAvenant, D.libelle as typeAvenant, dateAvenant, A.codeApporteur, F.libelle as apporteur, A.codeGestionnaire,
concat(G.nom, " ", G.prenoms) as gestionnaire, A.dateCre, A.userCre, A.dateModif, A.userModif, A.codeEtatPolice,
E.libelle As etatPolice, A.codeFractionnement, IFNULL(A.primeFamille,"0") as primeFamille, garantieArchive, collegeArchive,
IFNULL(A.primeBeneficiaire,"0") as primeBeneficiaire, rachatTm, TM.libelle as rachattm
FROM police A left join typecontrat B on (B.codeTypeContrat=A.codeTypeContrat)
left join typeavenant D on (D.codeTypeAvenant=A.codeTypeAvenant)
left join etatpolice E on (E.codeEtatPolice=A.codeEtatPolice)
left join apporteur F on (F.codeSociete=A.codeSociete AND F.codeApporteur=A.codeApporteur)
left join gestionnaire G on (G.codeSociete=A.codeSociete AND G.codeGestionnaire=A.codeGestionnaire)
left join rachattm TM on (TM.codeRachatTm=A.rachatTm)
WHERE (A.codeSociete=?) AND (A.numeroPolice=?)';
$police = $this->executerRequete($sql, array($_SESSION['codeSociete'], $numeroPolice));
if ($police->rowCount() > 0)
return $police->fetch();
else
throw new Exception("Aucune police ne correspond au numéo '$numeroPolice'");
}
public function getPoliceId($id) {
$sql = 'SELECT A.id, A.codeSociete, A.idClient, A.numeroClient, numeroPolice, numeroPoliceSociete, numeroDevis,
A.codeTypeContrat, B.libelle As typeContrat, dateEffet, dateFin, dateEcheance, numeroAvenant, ADDDATE(A.dateEcheance, +1) as DateRenouvellement,
A.codeTypeAvenant, D.libelle as typeAvenant, dateAvenant, A.codeApporteur, F.libelle as apporteur, A.codeGestionnaire,
concat(G.nom, " ", G.prenoms) as gestionnaire, A.dateCre, A.userCre, A.dateModif, A.userModif, A.codeEtatPolice, A.taciteReconduction,
E.libelle As etatPolice, A.codePeriodicite, A.codeFractionnement, H.libelle as fractionnement, A.deduireComm, A.tauxRachatTm,
IFNULL(B.tauxTaxe,"0") AS tauxTaxe, IFNULL(A.tauxCommission,"0") AS tauxCommission, IFNULL(A.primeFamille,"0") as primeFamille,
IFNULL(A.primeBeneficiaire,"0") as primeBeneficiaire, rachatTm, TM.libelle as rachattm, garantieArchive, collegeArchive
FROM police A
left join typecontrat B on (B.codeTypeContrat=A.codeTypeContrat)
left join typeavenant D on (D.codeTypeAvenant=A.codeTypeAvenant)
left join etatpolice E on (E.codeEtatPolice=A.codeEtatPolice)
left join apporteur F on (F.codeSociete=A.codeSociete AND F.codeApporteur=A.codeApporteur)
left join gestionnaire G on (G.codeSociete=A.codeSociete AND G.codeGestionnaire=A.codeGestionnaire)
left join fractionnement H on (H.codeFractionnement=A.codeFractionnement)
left join rachattm TM on (TM.codeRachatTm=A.rachatTm)
WHERE (A.codeSociete=?) AND (A.id=?)';
$police = $this->executerRequete($sql, array($_SESSION['codeSociete'], $id));
if ($police->rowCount() > 0)
return $police->fetch();
else
throw new Exception("Aucune police ne correspond au ie '$id'");
}
public function getPoliceIdSimple($id) {
$sql = 'SELECT A.* FROM police A WHERE (A.codeSociete=?) AND (A.id=?)';
$police = $this->executerRequete($sql, array($_SESSION['codeSociete'], $id));
if ($police->rowCount() > 0)
return $police->fetch();
else
throw new Exception("Aucune police ne correspond au ie '$id'");
}
public function getTextecp($id) {
$sql = 'select texteCp from police where (id=?)';
$textecp = $this->executerRequete($sql, array($id));
return $textecp->fetch();
}
public function enregistrertexteCp($texteCp, $idPolice) {
$sql = 'update police set texteCp=? where (id=?)';
$this->executerRequete($sql, array($texteCp, $idPolice));
}
public function getNombrePolices($numeroClient)
{
$sql = 'select count(*) as nbPolices FROM polices A WHERE (A.codeSociete=?) AND (A.numeroClient=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'], $numeroClient));
$ligne = $resultat->fetch();
return $ligne['nbPolices'];
}
public function getNombrePolicesId($id)
{
$sql = 'select count(*) as nbPolices FROM police A WHERE (A.codeSociete=?) AND (A.id=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'], $id));
$ligne = $resultat->fetch();
return $ligne['nbPolices'];
}
public function getContextePoliceId($id) {
$sql = 'SELECT A.idClient, A.numeroClient, A.id AS idPolice, A.numeroPolice,
IFNULL(B.tauxTaxe,"0") AS tauxTaxe, A.codeEtape, IFNULL(A.tauxCommission,"0") AS tauxCommission,
IFNULL(A.primeFamille,"0") as primeFamille, IFNULL(A.primeBeneficiaire,"0") as primeBeneficiaire, rachatTm,
TM.libelle as rachattm, garantieArchive, collegeArchive, A.codeTypeAvenant, ADDDATE(A.dateEcheance, +1) as DateRenouvellement,
A.dateEffet, A.dateFin, A.dateEcheance, dateAvenant, A.deduireComm, A.codeEtatPolice
FROM police A
LEFT JOIN typecontrat B ON (B.codeTypeContrat=A.codeTypeContrat)
left join rachattm TM on (TM.codeRachatTm=A.rachatTm)
WHERE (A.codeSociete=?) AND (A.id=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'], $id));
$context = $resultat->fetch();
$_SESSION['idClient_C'] = $context['idClient'];
$_SESSION['numeroClient_C'] = $context['numeroClient'];
$_SESSION['idPolice_C'] = $context['idPolice'];
$_SESSION['numeroPolice_C'] = $context['numeroPolice'];
$_SESSION['codeEtape_C'] = $context['codeEtape'];
$_SESSION['tauxTaxe_C'] = $context['tauxTaxe'];
$_SESSION['tauxCommission_C'] = $context['tauxCommission'];
$_SESSION['deduireComm_C'] = $context['deduireComm'];
$_SESSION['codeTypeAvenant_C'] = $context['codeTypeAvenant'];
$_SESSION['codeEtatPolice_C'] = $context['codeEtatPolice'];
$_SESSION['dateEffet_C'] = $context['dateEffet'];
$_SESSION['dateFin_C'] = $context['dateFin'];
$_SESSION['dateEcheance_C'] = $context['dateEcheance'];
$_SESSION['DateRenouvellement_C'] = $context['DateRenouvellement'];
$_SESSION['dateAvenant_C'] = $context['dateAvenant'];
$_SESSION['idPoliceAjax'] = $_SESSION['idPolice_C'];
$_SESSION['primeFamille_C'] = $context['primeFamille'];
$_SESSION['primeBeneficiaire_C'] = $context['primeBeneficiaire'];
$_SESSION['rachatTm_C'] = $context['rachatTm'];
// $_SESSION['garantieArchive_C'] = $context['garantieArchive'];
$_SESSION['collegeArchive_C'] = $context['collegeArchive'];
// $_SESSION['idAdherent_C'] = "";
// $_SESSION['numeroAdherent_C'] = "";
// $_SESSION['nomAdherent_C'] = "";
$_SESSION['idBeneficiaire_C'] = "";
$_SESSION['numeroBeneficiaire_C'] = "";
$_SESSION['nomBeneficiaire_C'] = "";
$_SESSION['lienPhoto_C'] = "";
// nb famille et de dépendants
$sql = 'select
ifnull(sum(case when codeLienParente="A" then "1" else "0" end), "0") as ndAdh,
ifnull(SUM(case when codeLienParente="A" then "0" else "1" end), "0") as ndDep,
ifnull(SUM(case when codeEtatBeneficiaire="V" then "1" else "0" end), "0") as ndActif
from beneficiaire where (codeSociete=?) AND (idPolice=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'], $id));
$effectif = $resultat->fetch();
$_SESSION['ndAdh_C'] = $effectif['ndAdh'];
$_SESSION['ndDep_C'] = $effectif['ndDep'];
$_SESSION['ndActif_C'] = $effectif['ndActif'];
}
public function getDenierNumeroPolice($annee)
{
$sql = 'select dernierNumeroPolice from numerotationpolice WHERE (codeSociete=? AND annee=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'],$annee));
if ($resultat->rowCount() == 0)
{
$sql = 'insert into numerotationpolice (codeSociete, annee, dernierNumeroPolice) values (?,?,?)';
$this->executerRequete($sql, array($_SESSION['codeSociete'],$annee,"0"));
return "1";
} else
{
$ligne = $resultat->fetch();
return $ligne['dernierNumeroPolice']+1;
}
}
public function setDenierNumeroPolice($annee,$dernierNumeroPolice)
{
$sql = 'update numerotationpolice set dernierNumeroPolice=? WHERE (codeSociete=? AND annee=?)';
$this->executerRequete($sql, array($dernierNumeroPolice, $_SESSION['codeSociete'], $annee));
}
public function ajouter($codeSociete, $idClient, $numeroClient, $numeroPolice, $numeroPoliceSociete, $codeTypeContrat,
$dateEffet, $dateFin, $dateEcheance, $numeroAvenant, $codeTypeAvenant, $dateAvenant, $codeApporteur,
$codeGestionnaire, $dateCre, $userCre, $codeEtatPolice, $codeFractionnement, $codePeriodicite, $tauxCommission,
$primeFamille, $primeBeneficiaire, $rachatTm, $deduireComm, $taciteReconduction, $tauxRachatTm)
{
$sql = 'INSERT INTO police (codeSociete, idClient, numeroClient, numeroPolice, numeroPoliceSociete,
codeTypeContrat, dateEffet, dateFin, dateEcheance, numeroAvenant, codeTypeAvenant, dateAvenant,
codeApporteur, codeGestionnaire, dateCre, userCre, codeEtatPolice, codeFractionnement, codePeriodicite, tauxCommission,
primeFamille, primeBeneficiaire, rachatTm, deduireComm, taciteReconduction, tauxRachatTm)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$this->executerRequete($sql, array($codeSociete, $idClient, $numeroClient, $numeroPolice, $numeroPoliceSociete, $codeTypeContrat,
$dateEffet, $dateFin, $dateEcheance, $numeroAvenant, $codeTypeAvenant, $dateAvenant, $codeApporteur,
$codeGestionnaire, $dateCre, $userCre, $codeEtatPolice, $codeFractionnement, $codePeriodicite, $tauxCommission,
$primeFamille, $primeBeneficiaire, $rachatTm, $deduireComm, $taciteReconduction, $tauxRachatTm));
$dernierId=$this->dernierId();
$sql = 'insert into avenant (codeSociete, idPolice, numeroPolice, codeTypeAvenant, numeroAvenant, dateEffet, dateCre, user, dateSysteme)
select codeSociete, id as idPolice, numeroPolice, codeTypeAvenant, numeroAvenant, dateEffet, dateCre, userCre as `user`, dateSysteme
from police where (id=?)';
$this->executerRequete($sql, array($dernierId));
return $dernierId;
}
public function modifier($id, $tauxCommission, $primeFamille, $primeBeneficiaire, $codeApporteur, $rachatTm)
{
$sql = 'UPDATE police SET tauxCommission=?, primeFamille=?, primeBeneficiaire=?, codeApporteur=?, rachatTm=? where (id=?)';
$this->executerRequete($sql, array($tauxCommission, $primeFamille, $primeBeneficiaire, $codeApporteur, $rachatTm, $id));
}
public function initresiliation($idPolice)
{
$dateAvenant = $_SESSION['dateAvenant_C'];
$motifavenant = $_SESSION['motifavenant_C'];
$user = $_SESSION['login'];
$sql = 'call sp_init_resiliation(?, ?, ?, ?)';
$this->executerRequete($sql, array($idPolice, $dateAvenant, $user, $motifavenant));
}
public function initretrait($idPolice)
{
$dateAvenant = $_SESSION['dateAvenant_C'];
$motifavenant = $_SESSION['motifavenant_C'];
$user = $_SESSION['login'];
$sql = 'call sp_init_retrait(?, ?, ?, ?)';
$this->executerRequete($sql, array($idPolice, $dateAvenant, $user, $motifavenant));
}
public function initrerenouvellement($idPolice)
{
$dateAvenant = $_SESSION['dateAvenant_C'];
$user = $_SESSION['login'];
$sql = 'call sp_init_renouvellement(?, ?, ?)';
$this->executerRequete($sql, array($idPolice, $dateAvenant, $user));
}
public function initLimiteAdditionnelle($idPolice, $dateAvenant)
{
$user = $_SESSION['login'];
$sql = 'call sp_init_limite_additionnelle(?, ?, ?)';
$this->executerRequete($sql, array($idPolice, $dateAvenant, $user));
}
public function getAvenantTemp() {
$user = $_SESSION['login'];
$sql = 'SELECT * FROM avenant_temp WHERE (`user`=?) order by id desc';
$resultat = $this->executerRequete($sql, array($user));
return $resultat->fetch();
}
public function getEmissionTemp() {
$user = $_SESSION['login'];
$sql = 'SELECT * FROM emission_temp WHERE (`user`=?)';
$resultat = $this->executerRequete($sql, array($user));
return $resultat->fetch();
}
public function creeravenant($idPolice, $codeTypeAvenant, $motifavenant, $dateAvenant)
{
$user = $_SESSION['login'];
$sql = 'call sp_creer_avenant(?, ?, ?, ?, ?)';
$this->executerRequete($sql, array($idPolice, $codeTypeAvenant, $motifavenant, $dateAvenant, $user));
}
public function enregistrerresiliation()
{
$user = $_SESSION['login'];
$idPolice = $_SESSION['idPolice_C'];
$sql = 'call sp_avenant_resiliation(?, ?)';
$this->executerRequete($sql, array($idPolice, $user));
}
public function enregistrerretrait()
{
$user = $_SESSION['login'];
$idPolice = $_SESSION['idPolice_C'];
$sql = 'call sp_avenant_retrait(?, ?)';
$this->executerRequete($sql, array($idPolice, $user));
}
public function enregistrerrenouvellement()
{
$user = $_SESSION['login'];
$idPolice = $_SESSION['idPolice_C'];
$sql = 'call sp_avenant_renouvellement(?, ?)';
$this->executerRequete($sql, array($idPolice, $user));
}
public function getIdPolice($numeroPolice) {
$sql = 'SELECT id FROM police WHERE (codeSociete=?) AND (numeroPolice=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'], $numeroPolice));
$ligne = $resultat->fetch();
return $ligne['id'];
}
public function existeligne($numeroPolice) {
$sql = 'select id FROM police WHERE (codeSociete=?) and (numeroPolice=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'],$numeroPolice));
return ($resultat->rowCount() > 0);
}
public function formaterNumeroPolice($annee,$numeroPolice) {
$numeroPolice = "00000".$numeroPolice;
$numeroPolice = substr($numeroPolice, -6);
$numeroPolice = $annee.$numeroPolice;
return $numeroPolice;
}
public function supprimer($idPolice) {
$sql = 'select id from college where (idPolice=?) limit 1';
$resultat = $this->executerRequete($sql, array($idPolice));
if($resultat->rowCount() == 0)
{
$sql = 'DELETE FROM police WHERE (id=?)';
$this->executerRequete($sql, array($idPolice));
return true;
}
else
{
return false;
}
}
public function getExisteQuittance($idPolice) {
$sql = 'select id from emission where (idPolice=?) limit 1';
$resultat = $this->executerRequete($sql, array($idPolice));
if($resultat->rowCount() == 0)
{
return "0";
}
else
{
return "Q";
}
}
public function archivergarantie($id) {
$sql = 'UPDATE police SET garantieArchive="1" where (id=?)';
$this->executerRequete($sql, array($id));
}
public function archivercollege($id) {
$sql = 'UPDATE police SET collegeArchive="1" where (id=?)';
$this->executerRequete($sql, array($id));
}
public function getContexteAjaxPolice($id)
{
$sql = 'SELECT A.id as idPolice FROM police A WHERE (A.id=?)';
$resultat = $this->executerRequete($sql, array($id));
$context = $resultat->fetch();
$_SESSION['idPoliceAjax'] = $context['idPolice'];
$_SESSION['idPolice_C'] = $_SESSION['idPoliceAjax'];
}
public function getEnteteCP($idPolice)
{
$sql = 'call sp_entete_cp(?);';
$entete = $this->executerRequete($sql, array($idPolice));
return $entete->fetch(PDO::FETCH_ASSOC);
}
public function getCollegesCP($idPolice)
{
$sql = 'call sp_collesges_police(?);';
$colleges = $this->executerRequete($sql, array($idPolice));
return $colleges->fetchAll(PDO::FETCH_ASSOC);
}
public function getGarantiesCollegesCP($idPolice)
{
$sql = 'call sp_garanties_colleges_police(?);';
$garantiescolleges = $this->executerRequete($sql, array($idPolice));
return $garantiescolleges->fetchAll(PDO::FETCH_ASSOC);
}
public function gettableauPrestationsCP($idPolice)
{
$sql = 'call sp_tableau_prestation_police(?);';
$colleges = $this->executerRequete($sql, array($idPolice));
return $colleges->fetchAll(PDO::FETCH_ASSOC);
}
public function getRapportSpPolice($idPolice, $dateReference)
{
$sql = 'call sp_rapport_sp_police(?, ?);';
$sppolice = $this->executerRequete($sql, array($idPolice, $dateReference));
return $sppolice->fetch(PDO::FETCH_ASSOC);
}
public function getConsommationPolice($idPolice, $dateReference)
{
// $dj = date("Y-m-d");
$sql = 'call sp_consommation_police(?, ?);';
$consommationpolice = $this->executerRequete($sql, array($idPolice, $dateReference));
return $consommationpolice->fetch(PDO::FETCH_ASSOC);
}
public function getExisteConsommationPolice($idPolice)
{
$dj = date("Y-m-d");
$sql = 'call sp_consommation_police(?, ?);';
$resultat = $this->executerRequete($sql, array($idPolice, $dj));
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
$consommationpolice = $ligne['consommation'];
if($consommationpolice>"0")
{
return "C";
}
else
{
return "0";
}
}
public function gettableauAjustementCP()
{
$sql = 'call sp_tableau_ajustement();';
$tableauajustementcps = $this->executerRequete($sql);
return $tableauajustementcps->fetchAll(PDO::FETCH_ASSOC);
}
public function getClientsearchPol($numeroPolice)
{
$sql = 'select id as idPolice from police WHERE (codeSociete=?) AND (numeroPolice=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'],$numeroPolice));
if ($resultat->rowCount() == 0)
{
return "0";
} else
{
$ligne = $resultat->fetch();
return $ligne['idPolice'];
}
}
public function recapituler_maj_limite_police()
{
$user = $_SESSION['login'];
$sql = 'call sp_recapituller_maj_limite_police(?)';
$this->executerRequete($sql, array($user));
}
public function enregistrerlimiteadditionnelle()
{
$user = $_SESSION['login'];
$idPolice = $_SESSION['idPolice_C'];
$sql = 'call sp_avenant_limite_additionnelle(?, ?)';
$this->executerRequete($sql, array($idPolice, $user));
}
public function getContexteClientId($idPolice) {
$sql = 'SELECT A.id as idClient, A.numeroClient, concat(A.nom," ",A.prenoms) as nomClient
FROM clients A join police B on (B.idClient=A.id) WHERE (B.id=?)';
$resultat = $this->executerRequete($sql, array($idPolice));
$context = $resultat->fetch();
$_SESSION['idClient_C'] = $context['idClient'];
$_SESSION['numeroClient_C'] = $context['numeroClient'];
$_SESSION['nomClient_C'] = $context['nomClient'];
$_SESSION['idClientAjax'] = $context['idClient'];
}
}