where('id', $tarifs)); return $db->get($sql); } /** * @return activités correspondant aux tarifs demandés * @param array $tarifs */ public static function getActivites($tarifs) { $db = DB::getInstance(); $sql = sprintf( 'SELECT services.id, services.label, services.description FROM services LEFT JOIN services_fees ON services_fees.id_service = services.id WHERE services_fees.%s GROUP BY services.id', $db->where('id', $tarifs)); return $db->get($sql); } /** * @return versements correspondants à l'année et aux tarifs donnés * @param $annee * @param array $tarifs */ public static function getVersementsTarifs($annee, $tarifs) { $db = DB::getInstance(); $sql = sprintf( 'SELECT services_fees.id as idTarif, membres.id as idUser, acc_transactions_lines.credit as versement, acc_transactions.date FROM acc_transactions_users INNER JOIN membres on acc_transactions_users.id_user = membres.id INNER JOIN acc_transactions on acc_transactions_users.id_transaction = acc_transactions.id INNER JOIN services_users on acc_transactions_users.id_service_user = services_users.id INNER JOIN services_fees on services_users.id_fee = services_fees.id INNER JOIN acc_transactions_lines on acc_transactions_lines.id_transaction = acc_transactions.id WHERE (strftime(%s, acc_transactions.date) = "%d" AND services_fees.%s AND acc_transactions_lines.credit > 0) ORDER by services_fees.id, membres.nom, acc_transactions.date', '"%Y"', $annee, $db->where('id', $tarifs)); return $db->get($sql); } /** * Versements totaux par personne pour une année donnée * @param année */ public static function getVersementsTotaux($annee) { $sql = "SELECT membres.id as idUser, sum(acc_transactions_lines.credit) AS versement FROM acc_transactions_users, membres, acc_transactions INNER JOIN acc_transactions_lines ON acc_transactions_lines.id_transaction = acc_transactions.id WHERE ( strftime('%Y', acc_transactions.date) = ? AND acc_transactions_lines.credit > 0 AND acc_transactions_users.id_transaction = acc_transactions.id AND acc_transactions_users.id_user = membres.id ) GROUP by acc_transactions_users.id_user ORDER by membres.nom COLLATE U_NOCASE; "; return DB::getInstance()->get($sql, $annee); } /** * @return personnes ayant versé des dons pour une année donnée * @param $annee */ public static function getDonateurs($annee) { $sql = "SELECT membres.id as idUser, membres.nom as nom, membres.adresse as adresse, membres.code_postal as codePostal, membres.ville as ville FROM acc_transactions_users, membres, acc_transactions INNER JOIN acc_transactions_lines ON acc_transactions_lines.id_transaction = acc_transactions.id WHERE ( strftime('%Y', acc_transactions.date) = ? AND acc_transactions_lines.credit > 0 AND acc_transactions_users.id_transaction = acc_transactions.id AND acc_transactions_users.id_user = membres.id ) GROUP by membres.id ORDER by membres.nom COLLATE U_NOCASE; "; return DB::getInstance()->get($sql, $annee); } public static function getLignesReduction($lesTaux) { foreach ($lesTaux as $elem) { /* $ligne = "taux " . $elem->taux . ", ligne " . $elem->ligne; if ($elem->remarque != "") { $ligne .= ", " . $elem->remarque; } $lignes[$elem->taux] = $ligne; */ $lignes[$elem->taux] = $elem->remarque; } return $lignes; } public static function getLigneReduction($taux) { return $_SESSION['ligneReduction'][$taux]; } /** * @return liste de toutes les activités, tarifs et comptes associés */ public static function getActivitesTarifsEtComptes() { return DB::getInstance()->get( "SELECT services.id as idActivite, services.label as titreActivite, services.description as descActivite, services_fees.id as idTarif, services_fees.label as titreTarif, services_fees.description as descTarif, acc_accounts.code as numeroCpt, acc_accounts.label as nomCpt FROM services LEFT JOIN services_fees ON services_fees.id_service = services.id LEFT JOIN acc_accounts ON services_fees.id_account = acc_accounts.id ORDER BY services.label" ); } /** * @return nom de l'association */ public static function getNomAsso() { return DB::getInstance()->first( "SELECT value FROM config WHERE key = 'nom_asso'" )->value; } /** * @return adresse de l'association */ public static function getAdresseAsso() { return DB::getInstance()->first( "SELECT value FROM config WHERE key = 'adresse_asso'" )->value; } /** * @return liste des années fiscales */ public static function getAnneesFiscales() { $rows = DB::getInstance()->get( "SELECT strftime('%Y', start_date) as annee FROM acc_years ORDER by start_date DESC" ); $anneesFiscales = array(); foreach ($rows as $row) { $anneesFiscales[] = $row->annee; } return $anneesFiscales; } /** * enregistrer les fichiers dans une archive zip * @param $fileList : liste des fichiers à archiver * @param $year : pour générer le nom de l'archive * @param $archiveDir : ne sert plus */ static function makeArchive( $fileList, $year, $archiveDir = null) { $zipFilename = "recus_dons" . $year . ".zip"; header('Content-type: application/zip'); header(sprintf('Content-Disposition: attachment; filename="%s"', $zipFilename)); $zip = new ZipWriter('php://output'); $zip->setCompression(0); foreach ($fileList as $fileName) { $zip->add(basename($fileName), null, $fileName); } $zip->close(); } // makeArchive }