Created
January 18, 2018 20:39
Async parallel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use restrict'; | |
/** | |
* Module dependences. | |
*/ | |
var mongoose = require('mongoose'); | |
/** | |
* load up the material model. | |
*/ | |
var Material = require('../../models/material'); | |
/** | |
* List all users. METHOD GET. | |
*/ | |
var materialesList = Material.find({}).sort({ 'idmaterial': 1 }) | |
.populate('fraccionaranceltigie') | |
.populate('fracciondesperdiciotigie') | |
.populate('htscodeusa') | |
.populate('paisorigen') | |
.populate('paisdestino') | |
.populate('unmed'); | |
/** | |
* Add material. METHOD POST. | |
*/ | |
var saveMaterial = function (req, res) { | |
var idmaterial = req.body.idmaterial; | |
var empaque = req.body.empaque; | |
var buy = req.body.buy; | |
var make = req.body.make; | |
var paren = req.body.paren; | |
var component = req.body.component; | |
var categimport = req.body.categimport; | |
var descripciones = req.body.descripciones; | |
var descripcionus = req.body.descripcionus; | |
var fraccionaranceltigie_id = req.body.fraccionaranceltigie_id; | |
var fracciondesperdiciotigie_id = req.body.fracciondesperdiciotigie_id; | |
var permisoregla8a = req.body.permisoregla8a; | |
var htscodeusa_id = req.body.htscodeusa_id; | |
var paisorigen_id = req.body.paisorigen_id; | |
var paisdestino_id = req.body.paisdestino_id; | |
var preciounitusd = req.body.preciounitusd; | |
var tipo = req.body.tipo; | |
var factorcomun = req.body.factorcomun; | |
var qty = req.body.qty; | |
var unmed_id = req.body.unmed_id; | |
var prosec = req.body.prosec; | |
var tlc = req.body.tlc; | |
var regla8va = req.body.regla8va; | |
var newMaterial = new Material({ | |
idmaterial: idmaterial, | |
empaque: empaque, | |
buy: buy, | |
make: make, | |
paren: paren, | |
component: component, | |
categimport: categimport, | |
descripciones: descripciones, | |
descripcionus: descripcionus, | |
fraccionaranceltigie: mongoose.Types.ObjectId(fraccionaranceltigie_id), | |
fracciondesperdiciotigie: mongoose.Types.ObjectId(fracciondesperdiciotigie_id), | |
permisoregla8a: permisoregla8a, | |
htscodeusa: mongoose.Types.ObjectId(htscodeusa_id), | |
paisorigen: mongoose.Types.ObjectId(paisorigen_id), | |
paisdestino: mongoose.Types.ObjectId(paisdestino_id), | |
preciounitusd: preciounitusd, | |
tipo: tipo, | |
factorcomun: factorcomun, | |
qty: qty, | |
unmed: mongoose.Types.ObjectId(unmed_id), | |
prosec: prosec, | |
tlc: tlc, | |
regla8va: regla8va | |
}); | |
// save the material | |
newMaterial.save(function (err) { | |
if (err) throw err; | |
newMaterial | |
.populate('fraccionaranceltigie') | |
.populate('fracciondesperdiciotigie') | |
.populate('htscodeusa') | |
.populate('paisorigen') | |
.populate('paisdestino') | |
.populate('unmed', function (err) { //Populate is used for fill the location field in the footable view later the user is created. | |
if (err) throw err; | |
res.json( | |
{ | |
'message': 'Material registrado.', | |
'newMaterial': newMaterial, | |
'typeResponse': 'saved' | |
} | |
); | |
}); | |
}); | |
}; | |
/** | |
* Edit materiales. METHOD PUT. | |
*/ | |
var editMaterial = function (req, res) { | |
var id = req.params.material_id; | |
var idmaterial = req.body.idmaterial; | |
var empaque = req.body.empaque; | |
var buy = req.body.buy; | |
var make = req.body.make; | |
var paren = req.body.paren; | |
var component = req.body.component; | |
var categimport = req.body.categimport; | |
var descripciones = req.body.descripciones; | |
var descripcionus = req.body.descripcionus; | |
var fraccionaranceltigie_id = req.body.fraccionaranceltigie_id; | |
var fracciondesperdiciotigie_id = req.body.fracciondesperdiciotigie_id; | |
var permisoregla8a = req.body.permisoregla8a; | |
var htscodeusa_id = req.body.htscodeusa_id; | |
var paisorigen_id = req.body.paisorigen_id; | |
var paisdestino_id = req.body.paisdestino_id; | |
var preciounitusd = req.body.preciounitusd; | |
var tipo = req.body.tipo; | |
var factorcomun = req.body.factorcomun; | |
var qty = req.body.qty; | |
var unmed_id = req.body.unmed_id; | |
var prosec = req.body.prosec; | |
var tlc = req.body.tlc; | |
var regla8va = req.body.regla8va; | |
var change = false; //Set to true if any of the fields is altered to be saved then. | |
Material.findById(id, function (err, material) { | |
if (err) throw err; | |
if (material.idmaterial != idmaterial) { | |
material.idmaterial = idmaterial; | |
change = true; | |
} | |
if (material.empaque != empaque) { | |
material.empaque = empaque; | |
change = true; | |
} | |
if (material.buy != buy) { | |
material.buy = buy; | |
change = true; | |
} | |
if (material.make != make) { | |
material.make = make; | |
change = true; | |
} | |
if (material.paren != paren) { | |
material.paren = paren; | |
change = true; | |
} | |
if (material.component != component) { | |
material.component = component; | |
change = true; | |
} | |
if (material.categimport != categimport) { | |
material.categimport = categimport; | |
change = true; | |
} | |
if (material.descripciones != descripciones) { | |
material.descripciones = descripciones; | |
change = true; | |
} | |
if (material.descripcionus != descripcionus) { | |
material.descripcionus = descripcionus; | |
change = true; | |
} | |
if (material.fraccionaranceltigie != fraccionaranceltigie_id) { | |
material.fraccionaranceltigie = mongoose.Types.ObjectId(fraccionaranceltigie_id); | |
change = true; | |
} | |
if (material.fracciondesperdiciotigie != fracciondesperdiciotigie_id) { | |
material.fracciondesperdiciotigie = mongoose.Types.ObjectId(fracciondesperdiciotigie_id); | |
change = true; | |
} | |
if (material.permisoregla8a != permisoregla8a) { | |
material.permisoregla8a = permisoregla8a; | |
change = true; | |
} | |
if (material.htscodeusa != htscodeusa_id) { | |
material.htscodeusa = mongoose.Types.ObjectId(htscodeusa_id); | |
change = true; | |
} | |
if (material.paisorigen != paisorigen_id) { | |
material.paisorigen = mongoose.Types.ObjectId(paisorigen_id); | |
change = true; | |
} | |
if (material.paisdestino != paisorigen_id) { | |
material.paisdestino = mongoose.Types.ObjectId(paisdestino_id); | |
change = true; | |
} | |
if (material.preciounitusd != preciounitusd) { | |
material.preciounitusd = preciounitusd; | |
change = true; | |
} | |
if (material.tipo != tipo) { | |
material.tipo = tipo; | |
change = true; | |
} | |
if (material.factorcomun != factorcomun) { | |
material.factorcomun = factorcomun; | |
change = true; | |
} | |
if (material.qty != qty) { | |
material.qty = qty; | |
change = true; | |
} | |
if (material.unmed != unmed_id) { | |
material.unmed = mongoose.Types.ObjectId(unmed_id); | |
change = true; | |
} | |
if (material.prosec != prosec) { | |
material.prosec = prosec; | |
change = true; | |
} | |
if (material.tlc != tlc) { | |
material.tlc = tlc; | |
change = true; | |
} | |
if (material.regla8va != regla8va) { | |
material.regla8va = regla8va; | |
change = true; | |
} | |
if (change == true) { | |
material.save(function (err, material) { | |
if (err) throw err; | |
material | |
.populate('fraccionaranceltigie') | |
.populate('fracciondesperdiciotigie') | |
.populate('htscodeusa') | |
.populate('paisorigen') | |
.populate('paisdestino') | |
.populate('unmed', function (err) { | |
if (err) throw err; | |
res.json({ | |
'material': material, | |
'message': 'Material actualizado.', | |
'typeResponse': 'saved' | |
}); | |
}); | |
}); | |
} else { | |
res.json({ | |
'message': 'Material no modificado.', | |
}); | |
} | |
}); | |
}; | |
/** | |
* Delete materials. METHOD DELETE. | |
*/ | |
var deleteMaterial = function (req, res) { | |
var id = req.params.material_id; | |
Material.findByIdAndRemove(id, function (err) { | |
if (err) throw err; | |
res.json({ | |
'message': 'Material eliminado.', | |
'typeResponse': 'deleted' | |
}); | |
}); | |
}; | |
module.exports = { | |
materialesList: materialesList, | |
saveMaterial: saveMaterial, | |
editMaterial: editMaterial, | |
deleteMaterial: deleteMaterial | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'user strict'; | |
/** | |
* Module dependences. | |
*/ | |
var async = require('async'); | |
/** | |
* Local module dependences. | |
*/ | |
var metas = require('../../config/web/metas.json'); | |
var db_ventasclientes = require('../gears/dbqueries/ventasclientes'); | |
var db_clientes = require('../gears/dbqueries/clientes'); | |
var db_materiales = require('../gears/dbqueries/materiales'); | |
var db_monedas = require('../gears/dbqueries/monedas'); | |
var db_incoterms = require('../gears/dbqueries/incoterms'); | |
var db_systypes = require('../gears/dbqueries/systypes'); | |
/** | |
* lists. | |
*/ | |
var getVentasclientes = function (req, res) { | |
async.parallel({ //Execute two quieries at the same time, when all of the are ready then rusult catch the final quieries. | |
clientes: function (cb) { | |
db_clientes.clientesList.exec(cb); | |
}, | |
materiales: function (cb) { | |
db_materiales.materialesList.exec(cb); | |
}, | |
monedas: function (cb) { | |
db_monedas.monedasList.exec(cb); | |
}, | |
incoterms: function (cb) { | |
db_incoterms.incotermsList.exec(cb); | |
}, | |
systypes: function (cb) { | |
db_systypes.systypesList.exec(cb); | |
} | |
}, function (err, result) { | |
// result contains both queries. | |
res.render('index', { | |
data: metas[3], //Render metas for the <head> of the dashboard main page and load into index.ejs. | |
data2: metas[25], //Render metas for the <head> of the users dahsboard page, inserting this into dashboard.ejs main page and at the same time in index.ejs | |
clientes: result.clientes, | |
materiales: result.materiales, | |
monedas: result.monedas, | |
incoterms: result.incoterms, | |
systypes: result.systypes | |
}); | |
}); | |
}; | |
var postVentasclientes = function (req, res) { | |
async.parallel({ | |
materiales: function (cb) { | |
db_ventasclientes.selectedMateriales(req).exec(cb); | |
}, | |
cliente: function (cb) { | |
db_ventasclientes.clienteSelected(req).exec(cb); | |
} | |
}, function (err, result) { | |
res.json({ | |
materiales: result.materiales, | |
cliente: result.cliente | |
}); | |
}); | |
}; | |
module.exports = { | |
getVentasclientes: getVentasclientes, | |
postVentasclientes: postVentasclientes | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use restrict'; | |
/** | |
* load up the pais model. | |
*/ | |
var Material = require('../../models/material'); | |
var Cliente = require('../../models/cliente'); | |
/** | |
* List all paises. METHOD GET. | |
*/ | |
var selectedMateriales = function( req, res ){ | |
var sendMateriales = req.body.sendMateriales; | |
return Material.find({ _id : { $in : sendMateriales } }); | |
}; | |
var clienteSelected = function(req, res){ | |
var clienteSelected = req.body.clienteSelected; | |
return Cliente.find({ _id : clienteSelected }); | |
}; | |
module.exports = { | |
selectedMateriales: selectedMateriales, | |
clienteSelected: clienteSelected, | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment