const { database } = require ( '../database.backup' )
/ * *
* 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 query = database . prepare (
'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 response = await query . run (
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 response
} catch ( error ) {
return error
}
}
/ * *
* function to get all etudiants
*
* @ returns JSON
* /
async function getAllEtudiants ( ) {
const query = database . prepare ( '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 response = await query . all ( )
return response
} 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 query = database . prepare ( 'SELECT * FROM etudiants WHERE id = ?' )
try {
const etudiants = await query . get ( id )
if ( etudiants ) {
return etudiants
} else {
return { message : 'etudiants pas trouver' }
}
} catch ( error ) {
return error
}
}
/ * *
* function to get all etudiants M2
*
* @ returns JSON
* /
async function FilterDataByNiveau ( niveau ) {
const query = database . prepare (
'SELECT * FROM etudiants WHERE niveau = ? ORDER BY annee_scolaire DESC'
)
try {
let response = await query . all ( niveau )
return response
} 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 query = database . prepare (
'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 response = await query . run (
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
)
return response
} catch ( error ) {
return error
}
}
/ * *
* function to return the needed data in dashboard
*
* @ returns promise
* /
async function getDataToDashboard ( ) {
const query = database . prepare ( 'SELECT * FROM niveaus' )
const query2 = database . prepare ( 'SELECT * FROM etudiants' )
const query3 = database . prepare ( 'SELECT DISTINCT annee_scolaire FROM etudiants' ) // get all Année Univesitaire sans doublan
try {
let niveau = query . all ( )
let etudiants = query2 . all ( )
let anne_scolaire = query3 . all ( )
return { niveau , etudiants , anne_scolaire }
} catch ( error ) {
return error
}
}
async function changePDP ( photos , id ) {
const query = database . prepare ( 'UPDATE etudiants SET photos = ? WHERE id = ?' )
try {
let response = await query . run ( photos , id )
return response
} catch ( error ) {
return error
}
}
async function updateParcours ( parcours , id ) {
const query = database . prepare ( 'UPDATE etudiants SET parcours = ? WHERE id = ?' )
try {
let response = await query . run ( parcours , id )
return response
} catch ( error ) {
return error
}
}
async function createTranche ( etudiant_id , tranchename , montant ) {
const query = database . prepare (
'INSERT INTO trancheecolage (etudiant_id, tranchename, montant) VALUES (?, ?, ?)'
)
try {
let response = query . run ( etudiant_id , tranchename , montant )
return response
} catch ( error ) {
return error
}
}
async function getTranche ( id ) {
const query = database . prepare ( 'SELECT * FROM trancheecolage WHERE etudiant_id = ?' )
try {
let response = query . all ( id )
return response
} catch ( error ) {
return error
}
}
async function updateTranche ( id , tranchename , montant ) {
const query = database . prepare (
'UPDATE trancheecolage SET tranchename = ?, montant = ? WHERE id = ?'
)
try {
let response = query . run ( tranchename , montant , id )
return response
} catch ( error ) {
return error
}
}
async function deleteTranche ( id ) {
const query = database . prepare ( 'DELETE FROM trancheecolage WHERE id = ?' )
try {
let response = query . run ( id )
return response
} catch ( error ) {
return error
}
}
async function deleteEtudiant ( id ) {
const query = database . prepare ( 'DELETE FROM etudiants WHERE id = ?' )
try {
let response = query . run ( id )
return response
} catch ( error ) {
return error
}
}
async function getSingleTranche ( id ) {
try {
return await database . prepare ( 'SELECT * FROM trancheecolage WHERE id = ?' ) . get ( id )
} catch ( error ) {
return error
}
}
module . exports = {
insertEtudiant ,
getAllEtudiants ,
FilterDataByNiveau ,
getSingleEtudiant ,
updateEtudiant ,
getDataToDashboard ,
changePDP ,
updateParcours ,
createTranche ,
getTranche ,
updateTranche ,
deleteTranche ,
deleteEtudiant ,
getSingleTranche
}