Commit 59c0b16b authored by Your Name's avatar Your Name
parents 07de3a37 c70d10a4
......@@ -111,29 +111,29 @@ app.post('/create-performance',(req,res)=>{
let {data} = req.body;
data = {...data, "recorded_date": new Date(data['recorded_date']) };
let query = {empId:empId };
db.collection('performance_master').findOne(query).then((result)=>{
db.collection('performance_master').findOne(query).then( (result)=>{
if(result){
db.collection('performance_master').updateOne(query,{ $push: { "activities":data } })
.then((updateRes)=>{
.then(async (updateRes)=>{
await calculateAverage(query);
res.json({"reuslt":updateRes});
})
.catch((error)=>{
res.json({"error":error});
});
});
}else{
//create ne one
let insertData = { empId:empId, activities:[]};
insertData.activities.push(data);
db.collection('performance_master').insertOne(insertData).then((result)=>{
db.collection('performance_master').insertOne(insertData).then(async (result)=>{
await calculateAverage(query);
res.json({"result":result});
}).catch((error)=>{
res.json({"message":error})
})
}
}
}).catch((error)=>{
console.log(error)
res.send(query)
......@@ -145,6 +145,28 @@ app.post('/create-performance',(req,res)=>{
})
//calculating average score and updating into employees data
const calculateAverage= (query)=>{
return new Promise((res,rej)=>{
db.collection('performance_master').findOne(query).then((result)=>{
let activitiesList=result.activities;
let activitiesLength=activitiesList.length;
let score=activitiesList.reduce((acc,curr)=>{
return (acc) + (curr.score)
},0)
let averageScore=0
score<0?averageScore=0:(averageScore=(score/activitiesLength))
db.collection("employees").updateOne(query,{$set:{score:averageScore}})
.then((result)=>{
res(result)
})
.catch((error)=>rej(error))
})
.catch((error)=>{
rej(error)
})
});
}
......@@ -7,7 +7,7 @@ function Table({headers, data, isView}) {
<thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
<tr>
{headers.map((item) => (
<th scope="col" class="px-6 py-3">
<th scope="col" class="px-6 py-3 font-bold">
{item.title}
</th>
))}
......
......@@ -10,8 +10,10 @@ function Home() {
};
return (
<div className="container py-10 px-10 mx-0 min-w-full h-screen flex items-center justify-center">
<div className="max-w-sm p-6 bg-white border border-gray-200 rounded-lg shadow dark:bg-gray-800 dark:border-gray-700 ">
<div className="container py-10 px-10 mx-0 min-w-full h-screen flex items-center justify-center bg-blue-100 ">
<div class="">
<h1 class="mb-4 text-4xl font-extrabold leading-none tracking-tight md:text-5xl lg:text-6xl text-purple-900 mb-10 ">SCORE CARD</h1>
<div className="max-w-sm p-10 bg-white border border-gray-400 rounded-lg shadow dark:bg-gray-800 dark:border-gray-700 ">
<label
for="email"
className="block mb-2 text-sm font-medium text-gray-900 dark:text-white"
......@@ -27,13 +29,14 @@ function Home() {
onChange={(e) => setId(e.target.value)}
/>
<button
className="bg-purple-900 text-white hover:bg-blue-400 font-bold py-2 px-4 mt-3 rounded"
className="bg-purple-900 text-white disabled:bg-purple-900 hover:bg-blue-400 font-bold py-2 px-4 mt-6 rounded text-center ml-15"
onClick={handleNavigate}
disabled={!id}
>
Score Card
Submit
</button>
</div>
</div>
</div>
);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment