const router=require('express').Router(); const ingresos = require('../models/ingresos'); const Compras = require('../models/compras'); const { checkAuth } = require("../middlewares/authentication"); router.get("/resumen_compras", checkAuth, async (req, res) => { var compras_; var totalCompras=0; let miFiltro = req.get('filtro'); const filtros = { fecha: { $regex: miFiltro, $options: "i" }, }; compras_ = await Compras.find({$and:[{ user: req.userData._id },filtros]}).sort({ fecha: "desc", }); totalCompras = compras_.reduce((acx,x)=> acx=acx+x.valor,0); return res.send( { status:"ok", data:totalCompras } ) }); router.get("/resumen_ingresos", checkAuth, async (req, res) => { var ingresos_; var totalIngresos=0; let miFiltro = req.get('filtro'); const filtros = { fecha: { $regex: miFiltro, $options: "i" }, }; ingresos_ = await ingresos.find({$and:[{ user: req.userData._id },filtros]}).sort({ fecha: "desc", }); totalIngresos = ingresos_.reduce((acx,x)=> acx=acx+x.valor,0); return res.send( { status:"ok", data:totalIngresos } ) }); router.get('/resumen_categorias',checkAuth,async (req,res)=>{ var compras_; var labels =[]; var datos =[]; let miFiltro = req.get('filtro'); const filtros = { fecha: { $regex: miFiltro, $options: "i" }, }; compras_ = await Compras.aggregate([ {$match: { $and: [{ user:req.userData._id}, filtros] }}, {$group:{_id:{categoria:"$categoria"},total:{$sum:"$valor"}}} ]); compras_.forEach(element => { //console.log(element.total) labels.push(element._id.categoria) datos.push(element.total) }); res.json({"labels":labels,"datos":datos}); }); module.exports = router;