208 lines
10 KiB
PHP
208 lines
10 KiB
PHP
<?php
|
|
require_once 'Framework/Modele.php';
|
|
class Encaissement extends Modele {
|
|
|
|
public function existeligne($numeroEncaissement) {
|
|
$sql = 'select id FROM encaissement WHERE (codeSociete=?) and (numeroEncaissement=?)';
|
|
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete'],$numeroEncaissement));
|
|
return ($resultat->rowCount() > 0);
|
|
}
|
|
|
|
public function getDenierNumeroEncaissement()
|
|
{
|
|
$sql = 'select dernierNumeroEncaissement from numerotationencaissement WHERE (codeSociete=?)';
|
|
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete']));
|
|
|
|
if ($resultat->rowCount() == 0)
|
|
{
|
|
$sql = 'INSERT INTO numerotationencaissement (codeSociete, dernierNumeroEncaissement) values (?,?)';
|
|
$this->executerRequete($sql, array($_SESSION['codeSociete'], "1"));
|
|
return "0";
|
|
} else
|
|
{
|
|
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
|
|
return $ligne['dernierNumeroEncaissement'];
|
|
}
|
|
}
|
|
|
|
public function setDenierNumeroEncaissement($numeroEncaissement)
|
|
{
|
|
$sql = 'update numerotationencaissement set dernierNumeroEncaissement=? WHERE (codeSociete=?)';
|
|
$this->executerRequete($sql, array($numeroEncaissement, $_SESSION['codeSociete']));
|
|
}
|
|
|
|
public function EnregistrerDepot($idEncaissementTemp, $numeroEncaissement) {
|
|
|
|
$sql = 'insert into encaissement (codeSociete, sens, numeroEncaissement, codeApporteur, codeModePaiement, codeMoyenPaiement,
|
|
referencePaiement, nomTireur, banquePayeur, numeroBordereau, dateBordereau, montant, libelleOperation, dateEncaissement,
|
|
dateComptable, ecart, codeEcart, dateCre, user, affecte)
|
|
select codeSociete, sens, ? as numeroEncaissement, codeApporteur, codeModePaiement, codeMoyenPaiement,
|
|
referencePaiement, nomTireur, banquePayeur, numeroBordereau, dateBordereau, montant, libelleOperation, dateEncaissement,
|
|
dateComptable, ecart, codeEcart, dateCre, user, 0 as affecte from encaissement_temp
|
|
where id=?';
|
|
|
|
$encaissement = $this->executerRequete($sql, array($numeroEncaissement, $idEncaissementTemp));
|
|
$dernierId = $this->dernierId();
|
|
|
|
$user = $_SESSION['login'];
|
|
|
|
$sql = 'DELETE FROM encaissement_temp WHERE (user=?)';
|
|
$this->executerRequete($sql, array($user));
|
|
|
|
return $dernierId;
|
|
}
|
|
|
|
public function EnregistrerBordereau($idEncaissementTemp, $numeroEncaissement)
|
|
{
|
|
$sql = 'insert into encaissement (codeSociete, sens, numeroEncaissement, codeApporteur, codeModePaiement, codeMoyenPaiement,
|
|
referencePaiement, nomTireur, banquePayeur, numeroBordereau, dateBordereau, montant, libelleOperation, dateEncaissement,
|
|
dateComptable, ecart, codeEcart, dateCre, user, affecte)
|
|
select codeSociete, sens, ? as numeroEncaissement, codeApporteur, codeModePaiement, codeMoyenPaiement,
|
|
referencePaiement, nomTireur, banquePayeur, numeroBordereau, dateBordereau, montant, libelleOperation, dateEncaissement,
|
|
dateComptable, ecart, codeEcart, dateCre, user, montantSelection as affecte
|
|
from encaissement_temp where id=?';
|
|
|
|
$this->executerRequete($sql, array($numeroEncaissement, $idEncaissementTemp));
|
|
$dernierId = $this->dernierId();
|
|
|
|
$idEncaissement = $dernierId;
|
|
$_SESSION['idEncaissement'] = $idEncaissement;
|
|
|
|
$sql = 'insert into detailencaissement (codeSociete, idEncaissement, numeroEncaissement, idQuittance, numeroQuittance,
|
|
primeNette, primeNetteCie, accessoireCie, assesoireApporteur, accessoire, primeHt, taxe, fraisCarte,
|
|
commission, commissionAutre, primeTtc, dateCre, user, regle, anc_solde, deduireComm, idPolice)
|
|
|
|
select codeSociete, ? as idEncaissement, ? as numeroEncaissement, idQuittance, numeroQuittance,
|
|
primeNette, primeNetteCie, accessoireCie, assesoireApporteur, accessoire, primeHt, taxe, fraisCarte,
|
|
commission, commissionAutre, primeTtc, dateCre, user, regle, anc_solde, deduireComm, idPolice
|
|
from detailencaissement_temp where idEncaissement=?';
|
|
|
|
$this->executerRequete($sql, array($idEncaissement, $numeroEncaissement, $idEncaissementTemp));
|
|
|
|
$sql = 'update quittance A
|
|
join detailencaissement_temp B on (B.idQuittance=A.id)
|
|
set A.encaisse = (A.encaisse+B.primeTtc), A.regle=B.regle
|
|
where (B.idEncaissement=?)';
|
|
$this->executerRequete($sql, array($idEncaissementTemp));
|
|
|
|
$sql = 'update quittance A
|
|
join detailencaissement_temp B on (B.idQuittance=A.id)
|
|
set A.regle="1" where (B.idEncaissement=?) and (A.primeTtc=A.encaisse)';
|
|
$this->executerRequete($sql, array($idEncaissementTemp));
|
|
|
|
$user = $_SESSION['login'];
|
|
|
|
$sql = 'DELETE FROM encaissement_temp WHERE (user=?)';
|
|
$this->executerRequete($sql, array($user));
|
|
|
|
$sql = 'DELETE FROM detailencaissement_temp WHERE (user=?)';
|
|
$this->executerRequete($sql, array($user));
|
|
|
|
return $dernierId;
|
|
}
|
|
|
|
public function EncaisserQuittance($montant, $primeTtc_Q, $idQuittance, $numeroEncaissement, $codeModePaiement, $codeMoyenPaiement,
|
|
$referencePaiement, $nomTireur, $banquePayeur, $libelleOperation, $dateEncaissement, $dateComptable, $dateCre, $anc_solde)
|
|
{
|
|
$user = $_SESSION['login'];
|
|
$rapport = 0;
|
|
if($primeTtc_Q!=0)
|
|
{
|
|
$rapport =($montant/$primeTtc_Q);
|
|
}
|
|
|
|
$sql = 'insert into encaissement (codeSociete, numeroEncaissement, codeApporteur, codeModePaiement, codeMoyenPaiement,
|
|
referencePaiement, nomTireur, banquePayeur, numeroBordereau, dateBordereau, montant, libelleOperation, dateEncaissement,
|
|
dateComptable, ecart, codeEcart, dateCre, user, affecte, idClient, idPolice)
|
|
|
|
select A.codeSociete, ? as numeroEncaissement, B.codeApporteur, ? as codeModePaiement, ? as codeMoyenPaiement,
|
|
? as referencePaiement, ? as nomTireur, ? as banquePayeur, ? as numeroBordereau, ? as dateBordereau, ? as montant, ? as libelleOperation,
|
|
? as dateEncaissement, ? as dateComptable, "0" as ecart, "0" as codeEcart, ? as dateCre, ? as user, ? as affecte, A.idClient, A.idPolice
|
|
from quittance A join police B on (B.id=A.idPolice) where A.id=?';
|
|
|
|
$this->executerRequete($sql, array($numeroEncaissement, $codeModePaiement, $codeMoyenPaiement, $referencePaiement, $nomTireur, $banquePayeur,
|
|
$numeroEncaissement, $dateEncaissement, $montant, $libelleOperation, $dateEncaissement, $dateComptable, $dateCre, $user, $montant, $idQuittance));
|
|
|
|
$dernierId = $this->dernierId();
|
|
|
|
$idEncaissement = $dernierId;
|
|
$_SESSION['idEncaissement'] = $idEncaissement;
|
|
|
|
$sql = 'insert into detailencaissement (codeSociete, idEncaissement, numeroEncaissement, idQuittance, numeroQuittance,
|
|
primeNette, primeNetteCie, accessoireCie, assesoireApporteur, accessoire, primeHt, taxe, fraisCarte,
|
|
commission, commissionAutre, primeTtc, dateCre, user, anc_solde, deduireComm, idPolice)
|
|
|
|
select codeSociete, ? as idEncaissement, ? as numeroEncaissement, id as idQuittance, numeroQuittance,
|
|
primeNette*?, primeNetteCie*?, accessoireCie*?, assesoireApporteur*?, accessoire*?, primeHt*?, taxe*?, fraisCarte*?,
|
|
commission*?, commissionAutre*?, primeTtc*?, ? as dateCre, ? as user, (primeTtc-encaisse) as anc_solde, deduireComm, idPolice
|
|
from quittance where id=?';
|
|
|
|
$this->executerRequete($sql, array($idEncaissement, $numeroEncaissement, $rapport, $rapport, $rapport, $rapport, $rapport,
|
|
$rapport, $rapport, $rapport, $rapport, $rapport, $rapport, $dateCre, $user, $idQuittance));
|
|
|
|
$sql = 'update quittance set encaisse = (encaisse+?) where (id=?)';
|
|
$this->executerRequete($sql, array($montant, $idQuittance));
|
|
|
|
if($anc_solde==$montant)
|
|
{
|
|
$sql = 'update quittance set regle="1" where (id=?)';
|
|
$this->executerRequete($sql, array($idQuittance));
|
|
}
|
|
|
|
return $dernierId;
|
|
}
|
|
|
|
|
|
public function getEncaissementId($idEncaissement)
|
|
{
|
|
$sql = 'SELECT A.id AS idEncaissement, A.*, B.libelle as apporteur, C.libelle as modepaiement,
|
|
D.libelle as moyenpaiement, D.numeroCompte, (A.montant-A.affecte) As montantEcart
|
|
from encaissement A
|
|
left join apporteur B on (B.codeSociete=A.codeSociete) AND (B.codeApporteur=A.codeApporteur)
|
|
left join modepaiement C on (C.codeModePaiement=A.codeModePaiement)
|
|
left join moyenpaiement D on (D.codeSociete=A.codeSociete) AND (D.codeMoyenPaiement=A.codeMoyenPaiement)
|
|
where A.id=?';
|
|
|
|
$encaissement = $this->executerRequete($sql, array($idEncaissement));
|
|
return $encaissement->fetch(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
public function supprimer($id) {
|
|
$sql = 'DELETE FROM encaissement WHERE (id=?)';
|
|
$this->executerRequete($sql, array($id));
|
|
}
|
|
|
|
public function getEncaissementsPolice($idPolice) {
|
|
$sql = 'SELECT id, numeroQuittance, numeroAvenant, codeTypeOperation, codeTypeAvenant,
|
|
dateEffet, dateEcheance, dateEmission, primeNette, commission, commissionAutre, accessoire, primeHt, taxe, fraisCarte,
|
|
primeTtc, encaisse, (primeTtc-encaisse) AS solde, nbAliment FROM quittance WHERE (idPolice=?)
|
|
ORDER BY numeroQuittance DESC';
|
|
|
|
$quittances = $this->executerRequete($sql, array($idPolice));
|
|
return $quittances;
|
|
}
|
|
|
|
public function getTotalENcaissementPolice($idPolice) {
|
|
$sql = 'select IFNULL(sum(primeNette),"0") as primeNette, IFNULL(sum(commission),"0") as commission,
|
|
IFNULL(sum(commissionAutre),"0") as commissionAutre, IFNULL(sum(accessoire),"0") as accessoire,
|
|
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.idPolice=?)';
|
|
|
|
$totalquittance = $this->executerRequete($sql, array($idPolice));
|
|
return $totalquittance->fetch(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
public function getEncaissementNo($numeroEncaissement)
|
|
{
|
|
$codeSociete = $_SESSION['codeSociete'];
|
|
|
|
$sql = 'CALL sp_get_ancaissement_no(?, ?);';
|
|
|
|
$resultat = $this->executerRequete($sql, array($codeSociete, $numeroEncaissement));
|
|
|
|
return $resultat->fetch(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
} |