Skip to content

Instantly share code, notes, and snippets.

@Sysetup
Created January 18, 2018 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Sysetup/1cb743ff89c8b4fc5a37887b39eb37e1 to your computer and use it in GitHub Desktop.
Save Sysetup/1cb743ff89c8b4fc5a37887b39eb37e1 to your computer and use it in GitHub Desktop.
Async parallel
'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
};
'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
};
'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