C-university/database/Models/AnneeScolaire.js
andrymodeste 6e43b5256c Normalisation BDD : séparation données permanentes / inscriptions annuelles
Module écolage complet : configuration, paiement par tranche, suivi intégré

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 10:14:38 +01:00

137 lines
3.0 KiB
JavaScript

const { pool } = require('../database')
/**
* function to create annee scolaire
* @param {*} code
* @param {*} debut
* @param {*} fin
* @returns promise
*/
async function createAnneeScolaire(code, debut, fin) {
const sql = 'INSERT INTO anneescolaire (code, debut, fin) VALUES (?, ?, ?)'
try {
let [result] = await pool.query(sql, [code, debut, fin])
return {
success: true,
id: result.insertId
}
} catch (error) {
return { success: false, error: 'Erreur veullez réeseyer' }
}
}
/**
* function to get all Année Univesitaire
* @returns promise
*/
async function getAnneeScolaire() {
const sql = 'SELECT * FROM anneescolaire ORDER BY code DESC'
try {
let [rows] = await pool.query(sql)
return rows
} catch (error) {
return { success: false, error: 'Erreur veullez réeseyer' }
}
}
async function getInterval() {
const sql = 'SELECT debut, fin FROM anneescolaire ORDER BY id DESC'
try {
let [rows] = await pool.query(sql)
return rows
} catch (error) {
return { success: false, error: 'Erreur veullez réeseyer' }
}
}
async function getSingleAnneScolaire(id) {
const sql = 'SELECT * FROM anneescolaire WHERE id = ?'
try {
let [rows] = await pool.query(sql, [id])
return rows[0]
} catch (error) {
return { success: false, error: 'Erreur veullez réeseyer' }
}
}
async function deleteAnneeScolaire(id) {
const sql = 'DELETE FROM anneescolaire WHERE id = ?'
try {
let [result] = await pool.query(sql, [id])
if (result.affectedRows === 0) {
return {
success: false,
message: 'Année universitaire non trouvé.'
}
}
return {
success: true,
message: 'Année universitaire supprimé avec succès.'
}
} catch (error) {
return { success: false, error: 'Erreur veullez réeseyer' }
}
}
async function updateAnneeScolaire(id, code, debut, fin) {
const sql = 'UPDATE anneescolaire SET code = ?, debut = ?, fin = ? WHERE id = ?'
try {
let [result] = await pool.query(sql, [code, debut, fin, id])
if (result.affectedRows === 0) {
return {
success: false,
message: 'Année universitaire non trouvé ou aucune modification effectuée.'
}
}
return {
success: true,
message: 'Année universitaire mis à jour avec succès.'
}
} catch (error) {
return { success: false, error: 'Erreur veullez réeseyer' }
}
}
async function setCurrent(id) {
const sql = 'UPDATE anneescolaire SET is_current = 0 WHERE id > 0 AND is_current = 1'
const sql2 = 'UPDATE anneescolaire SET is_current = 1 WHERE id = ?'
await pool.query(sql)
try {
const [result] = await pool.query(sql2, [id])
console.log(result)
return {
success: true,
id: result.insertId
}
} catch (error) {
return { success: false, error: 'Erreur veullez réeseyer' }
}
}
module.exports = {
createAnneeScolaire,
getAnneeScolaire,
getInterval,
deleteAnneeScolaire,
getSingleAnneScolaire,
updateAnneeScolaire,
setCurrent
}