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.6 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 * FROM etudiants 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 * FROM etudiants WHERE 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 * FROM etudiants 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 Scolaire non trouvé.'
}
}
return {
success: true,
message: 'Année Scolaire 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 scolaire 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 Scolaire non trouvé.'
}
}
return {
success: true,
message: 'Année Scolaire 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 Scolaire non trouvé.'
}
}
return {
success: true,
message: 'Année Scolaire 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 Scolaire non trouvé.'
}
}
return {
success: true,
message: 'Année Scolaire 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 Scolaire non trouvé.'
}
}
return {
success: true,
message: 'Année Scolaire 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
}