49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const pool = require('../db');
|
|
const receiptValidator = require('../validators/receiptValidator');
|
|
const handleValidation = require('../middleware/handleValidation');
|
|
const verifyToken = require('../middleware/verifyToken');
|
|
|
|
router.post('/',
|
|
verifyToken,
|
|
handleValidation,
|
|
receiptValidator,
|
|
async (req, res) => {
|
|
const { fol, amount, date, numAccount } = req.body;
|
|
const idUser = req.user.id_usuario;
|
|
|
|
if(amount > 1000){
|
|
return res.status(409).json({ error: 'El monto no puede superar $1000.00' });
|
|
}
|
|
|
|
try {
|
|
const [existing] = await pool.execute(
|
|
'SELECT * FROM recibo WHERE folio_recibo = ?;',
|
|
[fol]
|
|
);
|
|
|
|
if (existing.length > 0) {
|
|
return res.status(409).json({ error: 'El recibo ya existe' });
|
|
}
|
|
|
|
await pool.execute(
|
|
'INSERT INTO recibo (folio_recibo, monto, fecha_recibo, id_cuenta, id_usuario) VALUES (?, ?, ?, ?, ?);',
|
|
[fol, amount, date, numAccount, idUser]
|
|
);
|
|
|
|
await pool.execute(
|
|
'UPDATE alumno SET credito = credito + ? WHERE id_cuenta = ?;',
|
|
[amount, numAccount]
|
|
);
|
|
|
|
res.json({ message: 'Recibo guardado correctamente y crédito actualizado' });
|
|
|
|
} catch (err) {
|
|
res.status(500).json({ error: 'Error en el servidor: '+ err });
|
|
}
|
|
|
|
});
|
|
|
|
module.exports = router;
|
|
//IO
|