Commit 59c0b16b authored by Your Name's avatar Your Name
parents 07de3a37 c70d10a4
...@@ -111,29 +111,29 @@ app.post('/create-performance',(req,res)=>{ ...@@ -111,29 +111,29 @@ app.post('/create-performance',(req,res)=>{
let {data} = req.body; let {data} = req.body;
data = {...data, "recorded_date": new Date(data['recorded_date']) }; data = {...data, "recorded_date": new Date(data['recorded_date']) };
let query = {empId:empId }; let query = {empId:empId };
db.collection('performance_master').findOne(query).then((result)=>{ db.collection('performance_master').findOne(query).then( (result)=>{
if(result){ if(result){
db.collection('performance_master').updateOne(query,{ $push: { "activities":data } }) db.collection('performance_master').updateOne(query,{ $push: { "activities":data } })
.then((updateRes)=>{ .then(async (updateRes)=>{
await calculateAverage(query);
res.json({"reuslt":updateRes}); res.json({"reuslt":updateRes});
}) })
.catch((error)=>{ .catch((error)=>{
res.json({"error":error}); res.json({"error":error});
}); });
}else{ }else{
//create ne one
let insertData = { empId:empId, activities:[]}; let insertData = { empId:empId, activities:[]};
insertData.activities.push(data); 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}); res.json({"result":result});
}).catch((error)=>{ }).catch((error)=>{
res.json({"message":error}) res.json({"message":error})
}) })
} }
}).catch((error)=>{ }).catch((error)=>{
console.log(error) console.log(error)
res.send(query) res.send(query)
...@@ -145,6 +145,28 @@ app.post('/create-performance',(req,res)=>{ ...@@ -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}) { ...@@ -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"> <thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
<tr> <tr>
{headers.map((item) => ( {headers.map((item) => (
<th scope="col" class="px-6 py-3"> <th scope="col" class="px-6 py-3 font-bold">
{item.title} {item.title}
</th> </th>
))} ))}
......
...@@ -10,8 +10,10 @@ function Home() { ...@@ -10,8 +10,10 @@ function Home() {
}; };
return ( return (
<div className="container py-10 px-10 mx-0 min-w-full h-screen flex items-center justify-center"> <div className="container py-10 px-10 mx-0 min-w-full h-screen flex items-center justify-center bg-blue-100 ">
<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 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 <label
for="email" for="email"
className="block mb-2 text-sm font-medium text-gray-900 dark:text-white" className="block mb-2 text-sm font-medium text-gray-900 dark:text-white"
...@@ -27,13 +29,14 @@ function Home() { ...@@ -27,13 +29,14 @@ function Home() {
onChange={(e) => setId(e.target.value)} onChange={(e) => setId(e.target.value)}
/> />
<button <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} onClick={handleNavigate}
disabled={!id} disabled={!id}
> >
Score Card Submit
</button> </button>
</div> </div>
</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