prestation/Modele/Facture.php
2025-12-05 10:42:46 +00:00

505 lines
17 KiB
PHP
Executable File

<?php
require_once 'Framework/Modele.php';
class Facture extends Modele {
public function getfacture($idFacture)
{
$sql = 'call sp_r_get_facture(?)';
$facture = $this->executerRequete($sql, array($idFacture));
$ligne = $facture->fetch(PDO::FETCH_ASSOC);
$_SESSION['p_idFacture_C'] = $ligne['idFacture'];
$_SESSION['p_numeroFeuilleMaladie_C'] = $ligne['numeroFeuilleMaladie'];
$_SESSION['p_numeroPrescription_C'] = $ligne['numeroPrescription'];
$_SESSION['p_numeroBonConsultation_C'] = $ligne['numeroBonConsultation'];
$_SESSION['p_numeroBonOrdonnance_C'] = $ligne['numeroBonOrdonnance'];
$_SESSION['p_numeroBonHospitalisation_C'] = $ligne['numeroBonHospitalisation'];
$_SESSION['p_hospitalisation_C'] = $ligne['hospitalisation'];
$_SESSION['p_chirurgie_C'] = $ligne['chirurgie'];
$_SESSION['p_numeroBonOptique_C'] = $ligne['numeroBonOptique'];
$_SESSION['p_numeroOptique_C'] = $ligne['numeroOptique'];
return $ligne;
}
public function getdetfeuilleMaladie($idFacture)
{
$sql = 'call sp_p_getdetfeuilleMaladie(?)';
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getmotifententeprealablenew($feuilleMaladie ,$codeActe)
{
$codeProfil = $_SESSION['p_codeProfil_C'];
$sql = 'call sp_p_get_motif_entente_prealable(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($feuilleMaladie, $codeActe, $codeProfil));
return $resultat->fetch(PDO::FETCH_ASSOC);
/*
if($_SESSION['p_codeProfil_C']=="PHA"){
$sql = 'SELECT
DISTINCT D.codeMedicament as codeActes,
numeroEntentePrealable,
dateDemande,
dateReponse,
motifReel,
motifRefusAssure,
-- motifPrestataire,
libelleMedicament,
responsableAccord,
reponsentEnteprealable
FROM vw_p_demandes_ententeprealables_pha D
INNER JOIN `p_prestationactes` prt ON prt.numeroFeuilleMaladie = D.numeroFeuilleMaladie
WHERE D.numeroFeuilleMaladie=? AND D.codeMedicament = ? ;';
} elseif ($_SESSION['p_codeProfil_C']=="OPT") {
$sql = 'SELECT
DISTINCT prt.codeActe AS codeActes,
numeroEntentePrealable,
dateDemande,
dateReponse,
motifReel,
motifRefusAssure,
-- motifPrestataire,
libelleOptique,
responsableAccord,
reponsentEnteprealable
FROM `vw_p_demandes_ententeprealables_opt` D
INNER JOIN `p_prestationactes` prt ON prt.numeroFeuilleMaladie = D.numeroFeuilleMaladie
WHERE D.numeroFeuilleMaladie= ? AND prt.codeActe = ? ;';
}else{
$sql = 'SELECT
DISTINCT D.codeActe as codeActes,
numeroEntentePrealable,
dateDemande,
dateReponse,
motifReel,
motifRefusAssure,
motifPrestataire,
libelleActe,
responsableAccord,
reponsentEnteprealable
FROM vw_p_demandes_ententeprealables D
INNER JOIN `p_prestationactes` prt ON prt.numeroFeuilleMaladie = D.numeroFeuilleMaladie
WHERE D.numeroFeuilleMaladie=? AND D.codeActe = ? ;';
}
$resultat = $this->executerRequete($sql, array($feuilleMaladie,$codeActe));
return $resultat->fetch(PDO::FETCH_ASSOC);
*/
}
public function getmotifententeprealable($feuilleMaladie, $idEnteteFacture)
{
if($_SESSION['p_codeProfil_C']=="PHA"){
$sql = 'SELECT
DISTINCT D.codeMedicament as codeActes,
numeroEntentePrealable,
dateDemande,
dateReponse,
motifReel,
motifRefusAssure,
-- motifPrestataire,
libelleMedicament,
responsableAccord,
reponsentEnteprealable
FROM vw_p_demandes_ententeprealables_pha D
JOIN `p_prestationactes` prt ON prt.numeroFeuilleMaladie = D.numeroFeuilleMaladie
WHERE D.numeroFeuilleMaladie=?;';
} else{
$sql = 'SELECT
DISTINCT D.codeActe as codeActes,
numeroEntentePrealable,
dateDemande,
dateReponse,
motifReel,
motifRefusAssure,
motifPrestataire,
SUBSTRING_INDEX(libelleActe, " / ", 1) as libelleActe,
responsableAccord,
reponsentEnteprealable
FROM vw_p_demandes_ententeprealables D
JOIN `p_prestationactes` prt ON prt.numeroFeuilleMaladie = D.numeroFeuilleMaladie
WHERE (D.numeroFeuilleMaladie= ?
AND D.codeActe IN (SELECT codeActe FROM p_facturepartielle WHERE idEnteteFacture = ?));';
}
$resultat = $this->executerRequete($sql, array($feuilleMaladie, $idEnteteFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getplafondacte($beneficiaire,$codeacte)
{
$sql = 'CALL `sp_pec_afficher_plafondActe`(?,?);';
$resultat = $this->executerRequete($sql, array($beneficiaire,$codeacte));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getfacturesprestataire($codePrestataire, $idBeneficiaire, $d1, $d2)
{
$sql = 'call sp_p_get_factures_ben(?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codePrestataire, $idBeneficiaire, $d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getfacturesben($idBeneficiaire, $d1, $d2)
{
$sql = 'call sp_r_get_factures(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($idBeneficiaire, $d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getfacturesprestatairecons($codePrestataire, $d1, $d2)
{
$sql = 'call sp_p_get_factures_cons(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codePrestataire, $d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function gettotalfacturesprestatairecons($codePrestataire, $d1, $d2)
{
$sql = 'call sp_p_get_total_factures_cons(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codePrestataire, $d1, $d2));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function getContexteAjaxFacture($numeroFacture)
{
$_SESSION['p_numeroFacture_C'] = $numeroFacture;
}
public function requetesfacture($codePrestataire, $dateFacture1, $dateFacture2, $numeroAdherent, $numeroBeneficiaire,
$numeroBonConsultation1, $numeroBonConsultation2, $numeroBonOrdonnance1, $numeroBonOrdonnance2, $numeroBonHospitalisation1, $numeroBonHospitalisation2, $numeroBonOptique1, $numeroBonOptique2,
$codeTypePrestataire, $numeroDecompte1, $numeroDecompte2, $hospitalisation, $numeroChambre, $chirurgie, $adherent, $beneficiaire)
{
$codePrestataire = contruireParamLike($codePrestataire);
$numeroAdherent = contruireParamLike($numeroAdherent);
$numeroBeneficiaire = contruireParamLike($numeroBeneficiaire);
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
/*
$hospitalisation = contruireParamLike($hospitalisation);
$numeroChambre = contruireParamLike($numeroChambre);
$chirurgie = contruireParamLike($chirurgie);
*/
$adherent = contruireParamLike($adherent);
$beneficiaire = contruireParamLike($beneficiaire);
$sql = 'call sp_requetes_factures(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codePrestataire, $dateFacture1, $dateFacture2, $numeroAdherent, $numeroBeneficiaire,
$numeroBonConsultation1, $numeroBonConsultation2, $numeroBonOrdonnance1, $numeroBonOrdonnance2, $numeroBonHospitalisation1, $numeroBonHospitalisation2, $numeroBonOptique1, $numeroBonOptique2,
$codeTypePrestataire, $numeroDecompte1, $numeroDecompte2, $hospitalisation, $numeroChambre, $chirurgie, $adherent, $beneficiaire));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function requetesfacturetotal($codePrestataire, $dateFacture1, $dateFacture2, $numeroAdherent, $numeroBeneficiaire,
$numeroBonConsultation1, $numeroBonConsultation2, $numeroBonOrdonnance1, $numeroBonOrdonnance2, $numeroBonHospitalisation1, $numeroBonHospitalisation2, $numeroBonOptique1, $numeroBonOptique2,
$codeTypePrestataire, $numeroDecompte1, $numeroDecompte2, $hospitalisation, $numeroChambre, $chirurgie, $adherent, $beneficiaire)
{
$codePrestataire = contruireParamLike($codePrestataire);
$numeroAdherent = contruireParamLike($numeroAdherent);
$numeroBeneficiaire = contruireParamLike($numeroBeneficiaire);
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
/*
$hospitalisation = contruireParamLike($hospitalisation);
$numeroChambre = contruireParamLike($numeroChambre);
$chirurgie = contruireParamLike($chirurgie);
*/
$adherent = contruireParamLike($adherent);
$beneficiaire = contruireParamLike($beneficiaire);
$sql = 'call sp_requetes_factures_total(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codePrestataire, $dateFacture1, $dateFacture2, $numeroAdherent, $numeroBeneficiaire,
$numeroBonConsultation1, $numeroBonConsultation2, $numeroBonOrdonnance1, $numeroBonOrdonnance2, $numeroBonHospitalisation1, $numeroBonHospitalisation2, $numeroBonOptique1, $numeroBonOptique2,
$codeTypePrestataire, $numeroDecompte1, $numeroDecompte2, $hospitalisation, $numeroChambre, $chirurgie, $adherent, $beneficiaire));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function requetesfactureexport($codePrestataire, $dateFacture1, $dateFacture2, $numeroAdherent, $numeroBeneficiaire,
$numeroBonConsultation1, $numeroBonConsultation2, $numeroBonOrdonnance1, $numeroBonOrdonnance2, $numeroBonHospitalisation1, $numeroBonHospitalisation2, $numeroBonOptique1, $numeroBonOptique2,
$codeTypePrestataire, $numeroDecompte1, $numeroDecompte2, $hospitalisation, $numeroChambre, $chirurgie, $adherent, $beneficiaire)
{
$codePrestataire = contruireParamLike($codePrestataire);
$numeroAdherent = contruireParamLike($numeroAdherent);
$numeroBeneficiaire = contruireParamLike($numeroBeneficiaire);
$codeTypePrestataire = contruireParamLike($codeTypePrestataire);
/*
$hospitalisation = contruireParamLike($hospitalisation);
$numeroChambre = contruireParamLike($numeroChambre);
$chirurgie = contruireParamLike($chirurgie);
*/
$adherent = contruireParamLike($adherent);
$beneficiaire = contruireParamLike($beneficiaire);
$sql = 'call sp_requetes_factures_export(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codePrestataire, $dateFacture1, $dateFacture2, $numeroAdherent, $numeroBeneficiaire,
$numeroBonConsultation1, $numeroBonConsultation2, $numeroBonOrdonnance1, $numeroBonOrdonnance2, $numeroBonHospitalisation1, $numeroBonHospitalisation2, $numeroBonOptique1, $numeroBonOptique2,
$codeTypePrestataire, $numeroDecompte1, $numeroDecompte2, $hospitalisation, $numeroChambre, $chirurgie, $adherent, $beneficiaire));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function init_facture_sans_bon()
{
$codeSociete = $_SESSION['p_codeSociete'];
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$user = $_SESSION['p_login'];
$idSaisie = $_SESSION['p_idSaisie'];
$idAdherent = $_SESSION['p_idAdherent_C'];
$numeroAdherent = $_SESSION['p_numeroAdherent_C'];
$idBeneficiaire = $_SESSION['p_idBeneficiaire_C'];
$numeroBeneficiaire = $_SESSION['p_numeroBeneficiaire_C'];
$sql = 'call sp_r_init_facture_classique(?, ?, ?, ?, ?, ?, ?, ?)';
$this->executerRequete($sql, array($codeSociete, $codePrestataire, $idBeneficiaire, $user,
$idAdherent, $numeroAdherent, $numeroBeneficiaire, $idSaisie));
}
public function getfacture_sans_bon_temp()
{
$idBeneficiaire = $_SESSION['p_idBeneficiaire_C'];
$idSaisie = $_SESSION['p_idSaisie'];
$user = $_SESSION['p_login'];
$sql = 'call sp_r_get_facture_classique_temp(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($idBeneficiaire, $idSaisie, $user));
// return $resultat->fetchAll(PDO::FETCH_ASSOC);
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function getprestations_sans_bon_temp()
{
$idBeneficiaire = $_SESSION['p_idBeneficiaire_C'];
$idSaisie = $_SESSION['p_idSaisie'];
$user = $_SESSION['p_login'];
$sql = 'call sp_r_get_prestation_classique_temp(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($idBeneficiaire, $idSaisie, $user));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function consulterfacturefacture($idFacture)
{
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$sql = 'call sp_p_consulter_facture_facture(?, ?)';
$resultat = $this->executerRequete($sql, array($idFacture, $codePrestataire));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function consulterfacturefeuillemaladie($idFacture)
{
$sql = 'call sp_p_consulter_facture_feuillemaladie(?)';
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function consulterfactureprestationactes($idFacture)
{
$sql = 'call sp_p_consulter_facture_prestationactes(?)';
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function consulterfacturemedicaments($idFacture)
{
$sql = 'call sp_p_consulter_facture_medicaments(?)';
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function consulterfactureverres($idFacture)
{
$codeActeOptique = $_SESSION['p_codeActeOptique_C'];
if (est_anglophone())
{
$sql = 'call sp_r_consulter_facture_verres_eng(?)';
}
else
{
$sql = 'call sp_r_consulter_facture_verres(?)';
}
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getgedfacture($idFacture)
{
$sql = 'call sp_r_get_ged_facture(?)';
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function requetesfacturenew($codePrestataire,$codeGarantie, $dateFacture1, $dateFacture2, $chrono)
{
if ($chrono=="1")
{
//highlight_string("<?php\n\$datas =\n" . var_export($codeGarantie, true) . ";\n>");
$sql = 'call sp_requetes_factures_new_chrono(?,?, ?, ?)';
}
else
{
$sql = 'call sp_requetes_factures_new(?, ?, ?)';
}
$resultat = $this->executerRequete($sql, array($codePrestataire,$codeGarantie, $dateFacture1, $dateFacture2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
/* public function requetesfacturenew($codePrestataire, $dateFacture1, $dateFacture2, $chrono)
{
if ($chrono=="1")
{
$sql = 'call sp_requetes_factures_new_chrono(?, ?, ?)';
}
else
{
$sql = 'call sp_requetes_factures_new(?, ?, ?)';
}
$resultat = $this->executerRequete($sql, array($codePrestataire, $dateFacture1, $dateFacture2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
*/
public function requetesfactureexportnew($codePrestataire, $dateFacture1, $dateFacture2)
{
$sql = 'call sp_requetes_factures_export_new(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($codePrestataire, $dateFacture1, $dateFacture2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function consulterfacturediagnostics($idFacture)
{
$sql = 'call sp_r_consulter_facture_diagnostics(?)';
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getPrestataire($codePrestataire){
$sql = 'SELECT fn_libelle_prestataire(?) AS prestataire';
$resultat = $this->executerRequete($sql, array($codePrestataire))->fetch(PDO::FETCH_ASSOC);
return $resultat['prestataire'];
}
public function getlibelleGarantie($codePrestataire){
$sql = 'SELECT fn_libelle_garantie(?) AS libelleGarantie';
$resultat = $this->executerRequete($sql, array($codePrestataire))->fetch(PDO::FETCH_ASSOC);
return $resultat['libelleGarantie'];
}
public function gettotalfature($feuilleMaladie){
$sql = 'SELECT fraisRetenu AS fraisRetenutotal from p_facture where id = ?;';
$resultat = $this->executerRequete($sql, array($feuilleMaladie))->fetch(PDO::FETCH_ASSOC);
return $resultat['fraisRetenutotal'];
}
// 01-11-2022
public function getmotifententeprealabletypeprestation($feuilleMaladie, $codeTypePrestation, $codeActe)
{
$sql = 'SELECT
codeActe as codeActes,
codeTypePrestation,
numeroEntentePrealable,
idProlongation,
idProlongationHospit,
dateDemande,
dateReponse,
motifReel,
motifRefusAssure,
motifPrestataire,
SUBSTRING_INDEX(libelleActe, " / ", 1) as libelleActe,
responsableAccord,
reponsentEnteprealable
FROM vw_p_demandes_ententeprealables
WHERE numeroFeuilleMaladie=?
AND codeTypePrestation = ?
AND codeActe = ?
ORDER BY id;';
$resultat = $this->executerRequete($sql, array($feuilleMaladie, $codeTypePrestation, $codeActe));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function consulterfactureoptique($idFacture)
{
if (est_anglophone())
{
$sql = 'call sp_p_consulter_facture_optique_eng(?)';
}
else
{
$sql = 'call sp_p_consulter_facture_optique(?)';
}
$resultat = $this->executerRequete($sql, array($idFacture));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
}