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); } }