Advertisement
Guest User

Untitled

a guest
Nov 11th, 2016
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. /* POST /api/medidores-carga-estados */
  2. router.post('/', function(req, res, next) {
  3.  
  4. var medidor = req.body || {};
  5.  
  6. if (!validarMedidor(medidor)) {
  7. var err = new Error('Medidor no válido.');
  8. return next(err);
  9. }
  10.  
  11. var database = require('../database');
  12. var connection = database.createConnection();
  13.  
  14. connection.connect();
  15.  
  16. // validaciones
  17. connection.query('SELECT * FROM `medidores` WHERE `nro_medidor`=?', [medidor.nro_medidor], function (err, rows, fields) {
  18. if (err) return next(err);
  19.  
  20. if (!rows[0]) {
  21. var err = new Error('El medidor número ' + medidor.nro_medidor + ' no existe.');
  22. return next(err);
  23. };
  24. });
  25.  
  26. connection.query('SELECT * FROM `medidores_carga_estados` WHERE `nro_medidor`=?', [medidor.nro_medidor], function (err, rows, fields) {
  27. if (err) return next(err);
  28.  
  29. if (rows[0]) {
  30. var err = new Error('El medidor número ' + medidor.nro_medidor + ' ya existe en la lista de carga de estados.');
  31. return next(err);
  32. };
  33. });
  34.  
  35. connection.query('SELECT * FROM `medidores` WHERE `nro_medidor`=? AND (`fecha_actual`<? AND `estado_actual`<=?)', [medidor.nro_medidor, medidor.fecha_actual, medidor.estado_actual], function (err, rows, fields) {
  36. if (err) return next(err);
  37.  
  38. if (!rows[0]) {
  39. var err = new Error('La fecha actual debe ser mayor que la fecha anterior o el estado actual debe ser mayor o igual que el estado anterior.');
  40. return next(err);
  41. };
  42. });
  43. // fin de validaciones
  44.  
  45. connection.query('INSERT INTO `medidores_carga_estados` (`nro_medidor`, `fecha_actual`, `estado_actual`) VALUES (?, ?, ?)', [medidor.nro_medidor, medidor.fecha_actual, medidor.estado_actual], function (err, result) {
  46. if (err) return next(err);
  47.  
  48. if (result.affectedRows === 1) {
  49.  
  50. var response = {success:true};
  51. res.json(response);
  52.  
  53. };
  54. });
  55.  
  56. connection.end();
  57.  
  58. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement