// const db = require('../models');
// const { QueryTypes } = require('sequelize');

// // tres reportes de las instalaciones
// // cliente que mas aporta segun rango de fechas
// exports.searchbyproductividad = async function(req, res) {
//     try {
//         const tablita = req.params.tabla;
//         const acccion = req.params.acccion;
//         const fechaInicio = req.params.inicio;
//         const fechaFin = req.params.fin;
//         const sql = `
//         SELECT usuario."Name" as nombre, count(au.id) as cantidad
//         FROM public."Auditoria" as au
//         inner join public."Usuarios" as usuario
//         on au."IdUsuario" = usuario.id
//         where au."Table" = '${tablita}'
//         and au."Action" = '${acccion}'
//         and au."Interactiondate" between '${fechaInicio}' and '${fechaFin}'
//         group by usuario."Name"
//         order by cantidad desc;`;
//         const laproductividad = await db.sequelize.query(
//             sql,
//             {
//                 logging: console.log,
//                 plain: false,
//                 raw: false,
//                 type: QueryTypes.SELECT
//             }
//         );
//         res.json(laproductividad);
//     } catch (error) {
//         res.status(500).json(
//             {
//                 err: error
//             }
//         );
//     }
// }

// exports.searchbyproductividadindividual = async function(req, res) {
//     try {
//         const acccion = req.params.acccion;
//         const user = req.params.codigo;
//         const fechaInicio = req.params.inicio;
//         const fechaFin = req.params.fin;
//         const sql = `
//         SELECT au."Table" as tabla, count(au.id) as cantidad
//         FROM public."Auditoria" as au
//         inner join public."Usuarios" as usuario
//         on au."IdUsuario" = usuario.id
//         where au."Action" = '${acccion}'
//         au.IdUsuario = ${user}
//         and au."Interactiondate" between '${fechaInicio}' and '${fechaFin}'
//         group by au."Table"
//         order by cantidad desc;`;
        
//         const laproductividad = await db.sequelize.query(
//             sql,
//             {
//                 logging: console.log,
//                 plain: false,
//                 raw: false,
//                 type: QueryTypes.SELECT
//             }
//         );
//         res.json(laproductividad);
//     } catch (error) {
//         res.status(500).json(
//             {
//                 err: error
//             }
//         );
//     }
// }

// // // operaciones hechas por cada admin
// // exports.admin = async function(req, res) {
// //     try {
// //         const fechaInicio = req.params.fechastart;
// //         const fechaFin = req.params.fechaend;
// //         const sql = `
// //         SELECT ad."Fullname" AS Administrador, COUNT(res.id) AS Cantidad
// //         FROM public."Reservas" as res
// //         inner join public."Admins" AS ad on res."AdminId" = ad.id 
// //         WHERE res."FechaReserva" >=  '${fechaInicio}'   AND res."FechaReserva" < '${fechaFin}'
// //         GROUP BY ad."Fullname"
// //         ORDER BY  Cantidad DESC
// //         LIMIT 5;`;
// //         const incomeadmin = await db.sequelize.query(
// //             sql,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         res.json(incomeadmin);
// //     } catch (error) {
// //         res.status(500).json(error);
// //     }
// // }


// // // catidad por estado en rango de fechas
// // exports.estado = async function(req, res) {
// //     try {
// //         const fechaInicio = req.params.fechastart;
// //         const fechaFin = req.params.fechaend;
// //         const sql = `
// //         SELECT res."Estado" AS estados, COUNT(res.id) AS Cantidad
// //         FROM public."Reservas" as res
// //         WHERE res."FechaReserva" >=  '${fechaInicio}'   AND res."FechaReserva" < '${fechaFin}'
// //         GROUP BY res."Estado"
// //         ORDER BY  Cantidad DESC;`;
// //         const statecontrol = await db.sequelize.query(
// //             sql,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         res.json(statecontrol);
// //     } catch (error) {
// //         res.status(500).json(error);
// //     }
// // }

// // // las reservas realizadas en rango de fechas
// // exports.estadodetallado = async function(req, res) {
// //     try {
// //         const fechaInicio = req.params.fechastart;
// //         const fechaFin = req.params.fechaend;
// //         const sql = `
// //         SELECT res.id as codigo,cli."Fullname" as cliente,res."FechaReserva" as fecha, res."Estado" as estado, res."Pago" as pago
// //         FROM public."Reservas" as res
// //         inner join public."Clientes" AS cli on res."ClienteId" = cli.id
// //         WHERE res."FechaReserva" >=  '${fechaInicio}'   AND res."FechaReserva" < '${fechaFin}';`;
// //         const statecontroldetail = await db.sequelize.query(
// //             sql,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         res.json(statecontroldetail);
// //     } catch (error) {
// //         res.status(500).json(error);
// //     }
// // }

// // exports.escritorio = async function(req, res) {
// //     try {
// //         const lafecha = req.params.fechita;
// //         const sql = `
// //         SELECT res.id as codigo,cli."Fullname" as cliente,res."FechaReserva" as fecha, res."Estado" as estado, res."Pago" as pago
// //         FROM public."Reservas" as res
// //         inner join public."Clientes" AS cli on res."ClienteId" = cli.id
// //         WHERE res."FechaReserva" =  '${lafecha}';`;
// //         const reservasdia = await db.sequelize.query(
// //             sql,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         res.json(reservasdia);
// //     } catch (error) {
// //         res.status(500).json(error);
// //     }
// // }

// // // dos reportes de reserva de local
// // // las reservas del local con su estado en rango de fechas
// // exports.localestado = async function(req, res) {
// //     try {
// //         const fechaInicio = req.params.fechastart;
// //         const fechaFin = req.params.fechaend;
// //         const sql = `
// //         SELECT res."FechaReservaLocal" as fechita, res."Estado", cli."Fullname" as cliente, res."Pago", res."Total"
// //         FROM public."ReservaLocals" as res
// //         inner join public."Clientes" as cli on res."ClienteId" = cli.id
// //         inner join public."Admins" AS ad on res."AdminId" = ad.id 
// //         where res."FechaReservaLocal" between '${fechaInicio}'::DATE and '${fechaFin}'::DATE
// //         order by fechita;`;
// //         const checkbasic = await db.sequelize.query(
// //             sql,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         res.json(checkbasic);
// //     } catch (error) {
// //         res.status(500).json(error);
// //     }
// // }

// // // el cliente que mas aporta con sus reservas de local
// // exports.localcustomer = async function(req, res) {
// //     try {
// //         const fechaInicio = req.params.fechastart;
// //         const fechaFin = req.params.fechaend;
// //         const sql = `
// //         SELECT  cli."Fullname" AS cliente,COUNT(cli.id) AS atenciones, SUM(res."Pago") AS Ingresos
// //         FROM public."ReservaLocals" as res
// //         inner join public."Clientes" AS cli on res."ClienteId" = cli.id
// //         where res."FechaReservaLocal" between '${fechaInicio}'::DATE and '${fechaFin}'::DATE
// //         GROUP BY cli."Fullname"
// //         ORDER BY  Ingresos DESC
// //         LIMIT 10;`;
// //         const incomecustomerlocal = await db.sequelize.query(
// //             sql,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         res.json(incomecustomerlocal);
// //     } catch (error) {
// //         res.status(500).json(error);
// //     }
// // }

// // // reporte para el arqueo de caja con doble consulta
// // exports.arqueocaja = async function(req, res) {
// //     try {
// //         const fechaInicio = req.params.fechastart;
// //         const fechaFin = req.params.fechaend;
// //         const sql1 = `
// //         SELECT  cli."Fullname" as cliente,COUNT(cli.id) as atenciones, SUM(res."Pago") as Ingresos
// //         FROM public."Reservas" as res
// //         inner join public."Clientes" AS cli on res."ClienteId" = cli.id
// //         where res."FechaReserva" between '${fechaInicio}'::DATE and '${fechaFin}'::DATE
// //         GROUP BY cli."Fullname"
// //         ORDER BY  Ingresos DESC;`;
// //         const sql2 = `
// //         SELECT igv."FechaReservacion" as fecha, igv."Pago" as egresos, igv."ReservaId" as reserva
// //         FROM public."Eligvs" as igv
// //         where igv."FechaReservacion" between '${fechaInicio}'::DATE and '${fechaFin}'::DATE;`;
// //         const ingresos = await db.sequelize.query(
// //             sql1,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         const egresos = await db.sequelize.query(
// //             sql2,
// //             {
// //                 logging: console.log,
// //                 plain: false,
// //                 raw: false,
// //                 type: QueryTypes.SELECT
// //             }
// //         );
// //         res.json([ingresos,egresos,{respuesta: 'ok'}]);
// //     } catch (error) {
// //         res.status(500).json(error);
// //     }
// // }