77 lines
1.9 KiB
JavaScript
77 lines
1.9 KiB
JavaScript
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; |