You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
384 lines
7.9 KiB
384 lines
7.9 KiB
const { pool } = require('../database')
|
|
|
|
/**
|
|
* function to insert etudiant into databases
|
|
*/
|
|
async function insertEtudiant(
|
|
nom,
|
|
prenom,
|
|
photos,
|
|
date_de_naissances,
|
|
niveau,
|
|
annee_scolaire,
|
|
status,
|
|
num_inscription,
|
|
mention_id,
|
|
sexe,
|
|
nationaliter,
|
|
cin,
|
|
date_delivrence,
|
|
annee_bacc,
|
|
serie,
|
|
boursier,
|
|
domaine,
|
|
contact,
|
|
parcours
|
|
) {
|
|
const sql =
|
|
'INSERT INTO etudiants (nom, prenom, photos, date_de_naissances, niveau, annee_scolaire, status, mention_id, num_inscription, sexe, cin, date_delivrance, nationalite, annee_bacc, serie, boursier, domaine, contact, parcours) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'
|
|
|
|
try {
|
|
let [result] = await pool.query(sql, [
|
|
nom,
|
|
prenom,
|
|
photos,
|
|
date_de_naissances,
|
|
niveau,
|
|
annee_scolaire,
|
|
status,
|
|
mention_id,
|
|
num_inscription,
|
|
sexe,
|
|
cin,
|
|
date_delivrence,
|
|
nationaliter,
|
|
annee_bacc,
|
|
serie,
|
|
boursier,
|
|
domaine,
|
|
contact,
|
|
parcours
|
|
])
|
|
|
|
return {
|
|
success: true,
|
|
id: result.insertId
|
|
}
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
/**
|
|
* function to get all etudiants
|
|
*
|
|
* @returns JSON
|
|
*/
|
|
async function getAllEtudiants() {
|
|
const sql = 'SELECT e.*, m.uniter AS mentionUnite, m.nom As nomMention FROM etudiants e JOIN mentions m ON e.mention_id = m.id ORDER BY annee_scolaire DESC'
|
|
try {
|
|
let [rows] = await pool.query(sql)
|
|
|
|
return rows
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
/**
|
|
* function to return a single etudiant
|
|
* and display it on the screen
|
|
*
|
|
* @param {int} id
|
|
* @returns Promise
|
|
*/
|
|
async function getSingleEtudiant(id) {
|
|
const sql = 'SELECT e.*, m.uniter AS mentionUnite, m.nom As nomMention FROM etudiants e JOIN mentions m ON e.mention_id = m.id WHERE e.id = ?'
|
|
|
|
try {
|
|
const [rows] = await pool.query(sql, [id])
|
|
|
|
return rows[0]
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
/**
|
|
* function to get all etudiants M2
|
|
*
|
|
* @returns JSON
|
|
*/
|
|
async function FilterDataByNiveau(niveau) {
|
|
const sql = 'SELECT e.*, m.uniter AS mentionUnite, m.nom As nomMention FROM etudiants e JOIN mentions m ON e.mention_id = m.id WHERE niveau = ? ORDER BY annee_scolaire DESC'
|
|
try {
|
|
let [rows] = await pool.query(sql, [niveau])
|
|
|
|
return rows
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
/**
|
|
* function to update etudiants
|
|
*
|
|
* @param {*} nom
|
|
* @param {*} prenom
|
|
* @param {*} photos
|
|
* @param {*} date_de_naissances
|
|
* @param {*} niveau
|
|
* @param {*} annee_scolaire
|
|
* @param {*} status
|
|
* @param {*} num_inscription
|
|
* @param {*} id
|
|
* @returns promise
|
|
*/
|
|
async function updateEtudiant(
|
|
nom,
|
|
prenom,
|
|
photos,
|
|
date_de_naissances,
|
|
niveau,
|
|
annee_scolaire,
|
|
status,
|
|
mention_id,
|
|
num_inscription,
|
|
id,
|
|
sexe,
|
|
nationalite,
|
|
cin,
|
|
date_delivrence,
|
|
annee_bacc,
|
|
serie,
|
|
boursier,
|
|
domaine,
|
|
contact,
|
|
parcours
|
|
) {
|
|
const sql =
|
|
'UPDATE etudiants SET nom = ?, prenom = ?, photos = ?, date_de_naissances = ?, niveau = ?, annee_scolaire = ?, status = ?, mention_id = ?, num_inscription = ?, sexe = ?, cin = ?, date_delivrance = ?, nationalite = ?, annee_bacc = ?, serie = ?, boursier = ?, domaine = ?, contact = ?, parcours = ? WHERE id = ?'
|
|
|
|
try {
|
|
let [result] = await pool.query(sql, [
|
|
nom,
|
|
prenom,
|
|
photos,
|
|
date_de_naissances,
|
|
niveau,
|
|
annee_scolaire,
|
|
status,
|
|
mention_id,
|
|
num_inscription,
|
|
sexe,
|
|
cin,
|
|
date_delivrence,
|
|
nationalite,
|
|
annee_bacc,
|
|
serie,
|
|
boursier,
|
|
domaine,
|
|
contact,
|
|
parcours,
|
|
id
|
|
])
|
|
|
|
if (result.affectedRows === 0) {
|
|
return {
|
|
success: false,
|
|
message: 'Année Univesitaire non trouvé.'
|
|
}
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: 'Année Univesitaire supprimé avec succès.'
|
|
}
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
/**
|
|
* function to return the needed data in dashboard
|
|
*
|
|
* @returns promise
|
|
*/
|
|
async function getDataToDashboard() {
|
|
const query = 'SELECT * FROM niveaus'
|
|
const query2 = 'SELECT * FROM etudiants'
|
|
const query3 = 'SELECT DISTINCT annee_scolaire FROM etudiants' // get all Année Univesitaire sans doublan
|
|
|
|
try {
|
|
let [rows] = await pool.query(query)
|
|
let niveau = rows
|
|
;[rows] = await pool.query(query2)
|
|
let etudiants = rows
|
|
;[rows] = await pool.query(query3)
|
|
let anne_scolaire = rows
|
|
|
|
return { niveau, etudiants, anne_scolaire }
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
async function changePDP(photos, id) {
|
|
const sql = 'UPDATE etudiants SET photos = ? WHERE id = ?'
|
|
|
|
try {
|
|
let [result] = await pool.query(sql, [photos, id])
|
|
|
|
if (result.affectedRows === 0) {
|
|
return {
|
|
success: false,
|
|
message: 'Année Univesitaire non trouvé.'
|
|
}
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: 'Année Univesitaire supprimé avec succès.'
|
|
}
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
async function updateParcours(parcours, id) {
|
|
const sql = 'UPDATE etudiants SET parcours = ? WHERE id = ?'
|
|
|
|
try {
|
|
let [result] = await pool.query(sql, [parcours, id])
|
|
|
|
if (result.affectedRows === 0) {
|
|
return {
|
|
success: false,
|
|
message: 'Année Univesitaire non trouvé.'
|
|
}
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: 'Année Univesitaire supprimé avec succès.'
|
|
}
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
async function createTranche(etudiant_id, tranchename, montant) {
|
|
const sql = 'INSERT INTO trancheecolage (etudiant_id, tranchename, montant) VALUES (?, ?, ?)'
|
|
|
|
try {
|
|
let [result] = await pool.query(sql, [etudiant_id, tranchename, montant])
|
|
|
|
return {
|
|
success: true,
|
|
id: result.insertId
|
|
}
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
async function getTranche(id) {
|
|
const sql = 'SELECT * FROM trancheecolage WHERE etudiant_id = ?'
|
|
|
|
try {
|
|
let [rows] = await pool.query(sql, [id])
|
|
|
|
return rows
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
async function updateTranche(id, tranchename, montant) {
|
|
const sql = 'UPDATE trancheecolage SET tranchename = ?, montant = ? WHERE id = ?'
|
|
|
|
try {
|
|
const [result] = await pool.query(sql, [tranchename, montant, id])
|
|
console.log('resultat tranche:',result);
|
|
|
|
if (result.affectedRows === 0) {
|
|
return {
|
|
success: false,
|
|
message: 'Année Univesitaire non trouvé.'
|
|
}
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: 'Année Univesitaire supprimé avec succès.'
|
|
}
|
|
} catch (error) {
|
|
console.log('resultat error:',error);
|
|
return error
|
|
}
|
|
}
|
|
|
|
async function deleteTranche(id) {
|
|
const sql = 'DELETE FROM trancheecolage WHERE id = ?'
|
|
|
|
try {
|
|
let [result] = await pool.query(sql, [id])
|
|
|
|
if (result.affectedRows === 0) {
|
|
return {
|
|
success: false,
|
|
message: 'Année Univesitaire non trouvé.'
|
|
}
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: 'Année Univesitaire supprimé avec succès.'
|
|
}
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
async function deleteEtudiant(id) {
|
|
console.log("id: ", id);
|
|
const sql = 'DELETE FROM etudiants WHERE id = ?';
|
|
|
|
try {
|
|
let [result] = await pool.query(sql, [id]);
|
|
console.log("Résultat DELETE:", result);
|
|
|
|
if (result.affectedRows === 0) {
|
|
return {
|
|
success: false,
|
|
message: 'Etudiant non trouvée.'
|
|
};
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: 'Matière supprimée avec succès.'
|
|
};
|
|
} catch (error) {
|
|
console.log("err: ",+ error)
|
|
return { success: false, error: 'Erreur, veuillez réessayer: ' + error };
|
|
|
|
}
|
|
}
|
|
|
|
async function getSingleTranche(id) {
|
|
const sql = 'SELECT * FROM trancheecolage WHERE id = ?'
|
|
try {
|
|
const [rows] = await pool.query(sql, [id])
|
|
return rows[0]
|
|
} catch (error) {
|
|
return error
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
insertEtudiant,
|
|
getAllEtudiants,
|
|
FilterDataByNiveau,
|
|
getSingleEtudiant,
|
|
updateEtudiant,
|
|
getDataToDashboard,
|
|
changePDP,
|
|
updateParcours,
|
|
createTranche,
|
|
getTranche,
|
|
updateTranche,
|
|
deleteTranche,
|
|
deleteEtudiant,
|
|
getSingleTranche
|
|
}
|
|
|