garant/Modele/Quittance.php
2025-12-01 19:18:15 +00:00

245 lines
9.8 KiB
PHP

<?php
require_once 'Framework/Modele.php';
class Quittance extends Modele {
public function existeligne($numeroQuittance) {
$sql = 'select id FROM quittance WHERE (codeSociete=?) and (numeroQuittance=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'],$numeroQuittance));
return ($resultat->rowCount() > 0);
}
public function getDenierNumeroQuittance()
{
$sql = 'select dernierNumeroQuittance from numerotationquittance WHERE (codeSociete=?)';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete']));
if ($resultat->rowCount() == 0)
{
$sql = 'INSERT INTO numerotationquittance (codeSociete, dernierNumeroQuittance) values (?,?)';
$this->executerRequete($sql, array($_SESSION['codeSociete'], "1"));
return "0";
} else
{
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
return $ligne['dernierNumeroQuittance'];
}
}
public function setDenierNumeroQuittance($numeroQuittance)
{
$sql = 'update numerotationquittance set dernierNumeroQuittance=? WHERE (codeSociete=?)';
$this->executerRequete($sql, array($numeroQuittance, $_SESSION['codeSociete']));
}
public function facturer($idPolice, $numeroQuittance, $nbAliment) {
$sql = 'select IFNULL(sum(primeNette),"0") as primeNette, IFNULL(sum(commission),"0") as commission,
IFNULL(sum(primeHt),"0") as primeHt, IFNULL(sum(taxe),"0") as taxe,
IFNULL(sum(fraisCarte),"0") as fraisCarte, IFNULL(sum(primeTtc),"0") as primeTtc
FROM beneficiaire A WHERE (A.codeSociete=?) AND (A.idPolice=?)
AND (A.codeEtatFacturation ="9") AND (A.primeTtc!=0)';
$totaafacturer = $this->executerRequete($sql, array($_SESSION['codeSociete'], $idPolice));
$prime = $totaafacturer->fetch(PDO::FETCH_ASSOC);
$dateEmission = date("Y-m-d");
$dateCre = date("Y-m-d");
$user = $_SESSION['login'];
$primeNette = $prime['primeNette'];
$primeHt = $prime['primeHt'];
$taxe = $prime['taxe'];
$fraisCarte = $prime['fraisCarte'];
$primeTtc = $prime['primeTtc'];
$commission = $prime['commission'];
$idQuittance = $this->ajouter($idPolice, $numeroQuittance, $dateEmission, $primeNette, $primeHt, $taxe, $fraisCarte,
$primeTtc, $commission, $dateCre, $user, $nbAliment);
return $idQuittance;
}
public function ajouter($idPolice, $numeroQuittance, $dateEmission, $primeNette, $primeHt, $taxe,
$fraisCarte, $primeTtc, $commission, $dateCre, $user, $nbAliment)
{
$sql = 'INSERT INTO quittance (codeSociete, idClient, numeroClient, idPolice, numeroPolice, numeroQuittance,
codeTypeAvenant, codeTypeOperation, numeroAvenant, dateEffet, dateEcheance, dateEmission, primeNette,
primeHt, taxe, fraisCarte, primeTtc, commission, dateCre, user, nbAliment, deduireComm)
SELECT codeSociete, idClient, numeroClient, A.id AS idPolice, numeroPolice, ? AS numeroQuittance,
A.codeTypeAvenant, "EMI" AS codeTypeOperation, numeroAvenant, dateEffet, dateEcheance, ? AS dateEmission,
? AS primeNette, ? As primeHt, ? AS taxe, ? AS fraisCarte, ? AS primeTtc, ? AS commission, ? AS dateCre,
? AS user, ? as nbAliment, deduireComm
FROM police A WHERE (id=?)';
$this->executerRequete($sql, array($numeroQuittance, $dateEmission, $primeNette, $primeHt, $taxe,
$fraisCarte, $primeTtc, $commission, $dateCre, $user, $nbAliment, $idPolice));
return $this->dernierId();
}
public function solderquittance($idQuittance)
{
$idEncaissementTemp = $_SESSION['idEncaissementTemp'];
$dateCre = date("Y-m-d");
$user = $_SESSION['login'];
$sql = 'insert into detailencaissement_temp (codeSociete, idEncaissement, idQuittance, numeroQuittance,
primeNette, primeNetteCie, accessoireCie, assesoireApporteur, accessoire, primeHt, taxe, fraisCarte,
commission, commissionAutre, primeTtc, dateCre, user, regle, anc_solde, deduireComm, idPolice)
select codeSociete, ? as idEncaissement, id as idQuittance, numeroQuittance,
primeNette, primeNetteCie, accessoireCie, assesoireApporteur, accessoire, primeHt, taxe, fraisCarte,
commission, commissionAutre, (primeTtc-encaisse) as primeTtc, ? as dateCre, ? user, "1" as regle,
(primeTtc-encaisse) as anc_solde, deduireComm, idPolice
from quittance where id=?';
$this->executerRequete($sql, array($idEncaissementTemp, $dateCre, $user, $idQuittance));
}
public function ajouteracomptequittance($idQuittance, $montantAcpte, $primeTtcAcpte)
{
$idEncaissementTemp = $_SESSION['idEncaissementTemp'];
$dateCre = date("Y-m-d");
$user = $_SESSION['login'];
$rapport = 0;
if($primeTtcAcpte!=0)
{
$rapport =($montantAcpte/$primeTtcAcpte);
}
$sql = 'insert into detailencaissement_temp (codeSociete, idEncaissement, idQuittance, numeroQuittance,
primeNette, primeNetteCie, accessoireCie, assesoireApporteur, accessoire, primeHt, taxe, fraisCarte,
commission, commissionAutre, primeTtc, dateCre, user, anc_solde, deduireComm, idPolice)
select codeSociete, ? as idEncaissement, id as idQuittance, numeroQuittance,
primeNette*?, primeNetteCie*?, accessoireCie*?, assesoireApporteur*?, accessoire*?, primeHt*?, taxe*?, fraisCarte*?,
commission*?, commissionAutre*?, primeTtc*?, ? as dateCre, ? user, (primeTtc-encaisse) as anc_solde, deduireComm, idPolice
from quittance where id=?';
$this->executerRequete($sql, array($idEncaissementTemp, $rapport, $rapport, $rapport, $rapport, $rapport,
$rapport, $rapport, $rapport, $rapport, $rapport, $rapport, $dateCre, $user, $idQuittance));
}
public function getQuittance($numeroQuittance) {
}
public function getQuittanceId($idQuittance)
{
$sql = 'SELECT A.id, A.id AS idQuittance, A.numeroQuittance, A.codeTypeAvenant,
B.libelle AS typeavenant, B.libelleEng AS typeavenantEng,
A.codeTypeOperation, C.libelle AS typeoperation, C.libelleEng AS typeoperationEng,
A.numeroAvenant, A.dateEffet, A.dateEcheance, libelleQuittance,
A.dateEmission, A.primeNette, A.primeHt, A.taxe, A.fraisCarte, A.primeTtc, A.commission, A.encaisse,
(A.primeTtc-A.encaisse) AS solde, nbAliment, numeroEmission
FROM quittance A
LEFT JOIN typeavenant B ON (B.codeTypeAvenant=A.codeTypeAvenant)
LEFT JOIN typeoperation C ON (C.codeTypeOperation=A.codeTypeOperation)
WHERE A.id=?';
$resultat = $this->executerRequete($sql, array($idQuittance));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function supprimer($id) {
$sql = 'DELETE FROM quittance WHERE (id=?)';
$this->executerRequete($sql, array($id));
}
public function getQuittancesId($idPolice)
{
$dateJour = date("Y-m-d");
$sql = 'call sp_emissions_police(?, ?)';
$quittances = $this->executerRequete($sql, array($idPolice, $dateJour));
return $quittances->fetchAll(PDO::FETCH_ASSOC);
}
public function getQuittancesimpayees($idClient)
{
$sql = 'SELECT A.*, (A.primeTtc-A.encaisse) AS solde, B.idEncaissement
FROM quittance A
left join detailencaissement_temp B on (B.codeSociete=A.codeSociete) and (B.idQuittance=A.id)
WHERE (A.idClient=?) AND (A.primeTtc!=A.encaisse)
ORDER BY numeroQuittance';
$quittances = $this->executerRequete($sql, array($idClient));
return $quittances;
}
public function getTotalQuittance($idPolice)
{
$dateJour = date("Y-m-d");
$sql = 'call sp_emissions_total_police(?, ?)';
$totalquittance = $this->executerRequete($sql, array($idPolice, $dateJour));
return $totalquittance->fetch(PDO::FETCH_ASSOC);
}
public function getTotalQuittanceImpayee($idClient) {
$sql = 'select IFNULL(sum(primeNette),"0") as primeNette, IFNULL(sum(commission),"0") as commission,
IFNULL(sum(primeHt),"0") as primeHt, IFNULL(sum(taxe),"0") as taxe,
IFNULL(sum(fraisCarte),"0") as fraisCarte, IFNULL(sum(primeTtc),"0") as primeTtc,
IFNULL(sum(encaisse),"0") as encaisse, IFNULL(sum(primeTtc-encaisse),"0") as solde
FROM quittance A WHERE (idClient=?) AND (primeTtc!=encaisse)';
$totalquittance = $this->executerRequete($sql, array($idClient));
return $totalquittance->fetch(PDO::FETCH_ASSOC);
}
public function getQuittancesEmission($idEmission)
{
$sql = 'call sp_get_quittances_emission(?)';
$resultat = $this->executerRequete($sql, array($idEmission));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getTotalQuittanceEmission($idEmission) {
$sql = 'select IFNULL(sum(primeNette),"0") as primeNette, IFNULL(sum(commission),"0") as commission,
IFNULL(sum(primeHt),"0") as primeHt, IFNULL(sum(taxe),"0") as taxe,
IFNULL(sum(fraisCarte),"0") as fraisCarte, IFNULL(sum(primeTtc),"0") as primeTtc,
IFNULL(sum(encaisse),"0") as encaisse, IFNULL(sum(primeTtc-encaisse),"0") as solde
FROM quittance A WHERE (A.idEmission=?)';
$totalquittance = $this->executerRequete($sql, array($idEmission));
return $totalquittance->fetch(PDO::FETCH_ASSOC);
}
public function getQuittancesPolicePeriode($idPolice, $debut, $fin)
{
$sql = 'call sp_emissions_police_periode(?, ?, ?)';
$quittances = $this->executerRequete($sql, array($idPolice, $debut, $fin));
return $quittances->fetchAll(PDO::FETCH_ASSOC);
}
public function getTotalQuittancePeriode($idPolice, $debut, $fin)
{
$sql = 'call sp_emissions_total_police_periode(?, ?, ?)';
$totalquittance = $this->executerRequete($sql, array($idPolice, $debut, $fin));
return $totalquittance->fetch(PDO::FETCH_ASSOC);
}
public function getQuittanceIdExport($idQuittance)
{
$sql = 'call sp_get_quittance_id(?)';
$resultat = $this->executerRequete($sql, array($idQuittance));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
}