245 lines
9.8 KiB
PHP
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);
|
|
}
|
|
} |