Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const request = require('request');
- const odooObject = require('odoo-xmlrpc');
- exports.CallClients = (req, res) => {
- const odoo = new odooObject({
- url: 'https://erp.miclimo.com/xmlrpc/2/common',
- port: 443,
- db: 'odoo',
- username: 'admin',
- password: '0KymY1KoEOljxf1yq0v1'
- });
- odoo.connect(function (err) {
- if (err) { return console.log(err); }
- console.log('Connected to Odoo server.');
- var inParams = [];
- //
- inParams.push([['customer', '=', true],['x_tipo_factura', '=', 'boleta'],['x_rut', '!=', '14096578-2']]);
- inParams.push(['customer', 'company_type','invoice_ids', 'x_rut','display_name', 'email', 'phone', 'address', 'city', 'x_comuna']); //fields
- // inParams.push(0); //offset
- // inParams.push(100); //limit
- var params = [];
- params.push(inParams);
- // buscando los datos de contactos y los ids de sus facturas
- odoo.execute_kw('res.partner', 'search_read', params, function (err, value) {
- if (err) { return console.log(err); }
- console.log('Result: ', value);
- res.send(value);
- });
- });
- };
- exports.CallInvoice = (req, res) => {
- const url = "https://erp.miclimo.com/xmlrpc/2/common";
- const odoo = new odooObject({
- url: 'https://erp.miclimo.com/xmlrpc/2/common',
- port: 443,
- db: 'odoo',
- username: 'admin',
- password: '0KymY1KoEOljxf1yq0v1'
- });
- console.log(req.body)
- odoo.connect(function (err) {
- if (err) { return console.log(err); }
- console.log('Connected to Odoo server.');
- var inParams = [];
- inParams.push([['id', 'in', req.body], ['date_invoice', '>=', '2018-07-01']]);
- inParams.push(['partner_id','invoice_line_ids','amount_untaxed','amount_tax','amount_total', 'date_invoice' ]);
- // inParams.push(0); //offset
- // inParams.push(100); //limit
- var params = [];
- params.push(inParams);
- // buscando los datos de contactos y los ids de sus facturas
- odoo.execute_kw('account.invoice', 'search_read', params, function (err, value2) {
- if (err) { return console.log(err); }
- console.log(value2)
- res.send(value2);
- });
- });
- };
- exports.CallLineInvoice = (req, res) => {
- const url = "https://erp.miclimo.com/xmlrpc/2/common";
- const odoo = new odooObject({
- url: 'https://erp.miclimo.com/xmlrpc/2/common',
- port: 443,
- db: 'odoo',
- username: 'admin',
- password: '0KymY1KoEOljxf1yq0v1'
- });
- odoo.connect((err) => {
- if (err) { return console.log(err); }
- console.log('Connected to Odoo server.');
- var inParams = [];
- inParams.push([['id', 'in', req.body]]);
- inParams.push(['product_id','discount','price_unit','quantity' ]); //fields
- var params = [];
- params.push(inParams);
- // buscando los datos de contactos y los ids de sus facturas
- odoo.execute_kw('account.invoice.line', 'search_read', params, function (err, value3) {
- if (err) { return console.log(err); }
- console.log(value3)
- res.send(value3);
- });
- });
- };
- exports.SendBsale = (req, res) => {
- //console.log(req.body)
- request({
- uri: 'https://api.bsale.cl/v1/documents.json',
- json: true,
- body: req.body,
- headers: {
- 'access_token': 'c463944d4e5030f53e8da1e221a78fa5f35f2c93'
- },
- method: 'POST'
- }, function (err, response, body) {
- if (!err && response.statusCode == 200) {
- console.log(body)
- }else{
- console.log(err)
- }
- });
- }
- exports.Sync = (req, res) => {
- const urlPost = 'https://api.miclimo.com/api/auth/oauth/token';
- const bodyPost = {
- email: 'miguel.delgado@engiefactory.com',
- username: 'miguel.delgado@engiefactory.com',
- password: 'miclimo123',
- grant_type: 'password',
- client_id: 'zrgpPyeWgmxa7JFF09yT',
- client_secret: 'c0c28875-dd3b-4121-a7f3-48021be5f87a',
- };
- const headersPost = {
- 'Content-Type': 'application/json',
- };
- request.post(
- {
- url: urlPost, json: true, body: bodyPost, headers: headersPost,
- },
- (err, response, cuerpo) => {
- if (!err && response.statusCode === 200) {
- var meterId = req.params.meterId;
- const accessToken = response.body.access_token;
- request({
- url: 'https://api.miclimo.com/api/meters',
- headers: {
- Authorization: `Bearer ${accessToken}`,
- },
- rejectUnauthorized: false,
- }, (err2, respuesta) => {
- req.getConnection(function(err, myConnection) {
- if (err2) {
- console.error(err2);
- } else {
- var jsonResult = JSON.parse(respuesta.body);
- for(var i = 0; i < jsonResult.length; i++) {
- // meter values
- userid = jsonResult[i].userId;
- var metermongoid = jsonResult[i]._id;
- var deviceId = jsonResult[i].deviceId;
- var status = jsonResult[i].status;
- var updatedAt = jsonResult[i].updatedAt;
- // updatedAt = '2018-02-01 01:00:00';
- updatedAt = updatedAt.split('T');
- date = updatedAt[0];
- hora = updatedAt[1].split('.');
- var updatedAt = date+' '+hora[0];
- console.log(updatedAt);
- var xCoordinate = jsonResult[i].loc.coordinates[0];
- var yCoordinate = jsonResult[i].loc.coordinates[1];
- var lastTemp = jsonResult[i].lastState.temp;
- var lasthum = jsonResult[i].lastState.hum;
- var lastPow = jsonResult[i].lastState.pow;
- var isOn = jsonResult[i].isOn;
- var model = jsonResult[i].model;
- var brand = jsonResult[i].brand;
- var version = jsonResult[i].version;
- var label = jsonResult[i].label;
- // var lastControlOn = jsonResult.lastControl.mode;
- var power = jsonResult[i].power;
- var plan = jsonResult[i].plan;
- var mac = 0;
- var crypto = 0;
- var userarray = [userid];
- var userarray = userarray.concat(jsonResult[i].users);
- // userarray.push(userid);
- lengthuserarray = userarray.length;
- console.log(userarray);
- ///////// for(var i = 0; i < lengthuserarray; i++) {
- console.log('valor '+i);
- req.getConnection(function(err, myConnection) {
- if (err) throw err;
- /// INSERT METER
- var sql = "SELECT count(*) as id FROM meter WHERE mongoid = ?";
- myConnection.query(sql, metermongoid, function(err, rows, fields) {
- if (err) throw err;
- var insertmeter = rows[0].id;
- if (!insertmeter) {
- if (err) throw err;
- // if connection is successful
- var sql = "INSERT INTO meter (mongoid,deviceId,status,mac,crypto,updatedAt,xCoordinate,yCoordinate,lastTemp,lasthum,lastPow,isOn,model,brand,version,label,power,plan) VALUES ?";
- var values = [[metermongoid,deviceId,status,mac,crypto,updatedAt,xCoordinate,yCoordinate,lastTemp,lasthum,lastPow,isOn,model,brand,version,label,power,plan]];
- myConnection.query(sql, [values], function (err, result) {
- if (err) throw err;
- console.log("Meter inserted con el deviceId "+ deviceId);
- // Update sync table, meter row
- var sql = 'UPDATE sync SET fecha = ? where tablename = ?';
- myConnection.query(sql, [updatedAt,'meter'], function(err, rows, fields) {
- if (err) throw err;
- console.log("Update sync table: meter");
- });
- });
- } else {
- console.log("Do update section");
- }
- });
- });
- request({
- url: 'https://api.miclimo.com/api/users/'+userid,
- headers: {
- Authorization: `Bearer ${accessToken}`,
- },
- rejectUnauthorized: false,
- }, (err2, respuestauser) => {
- if (err2) {
- console.error(err2);
- } else {
- var jsonResult = JSON.parse(respuestauser.body);
- // user values
- usermongoid = jsonResult._id;
- email = jsonResult.email;
- companyId = jsonResult.companyId;
- rol = jsonResult.role;
- if (companyId == null) {
- isCompany = 0;
- } else {
- isCompany = 1;
- }
- req.getConnection(function(err, myConnection) {
- if (err) throw err;
- /// INSERT USER
- var sql = "SELECT count(*) as hasemail FROM user WHERE email = ?";
- myConnection.query(sql, email, function(err, rows, fields) {
- if (err) throw err;
- var hasemail = rows[0].hasemail;
- if (!hasemail) {
- if (err) throw err;
- // if connection is successful
- var sql = "INSERT INTO user (mongoid,email,rol,isCompany) VALUES ?";
- var values = [[usermongoid, email, rol, isCompany]];
- myConnection.query(sql, [values], function (err, result) {
- if (err) throw err;
- console.log("User inserted");
- // Update sync table, user row
- var sql = 'UPDATE sync SET fecha = ? where tablename = ?';
- myConnection.query(sql, [updatedAt,'user'], function(err, rows, fields) {
- if (err) throw err;
- console.log("Update sync table");
- });
- });
- } else {
- console.log("User exists");
- }
- });
- // INSERT CONTRACT
- var sql = 'SELECT count(*) as hascontract FROM contract WHERE deviceId = ? AND email = ?';
- myConnection.query(sql, [deviceId, email], function(err, rows, fields) {
- if (err) throw err;
- var hascontract = rows[0].hascontract;
- if (!hascontract) {
- if (err) throw err;
- // if connection is successful
- var sql = "INSERT INTO contract (deviceId,email) VALUES ?";
- var values = [[deviceId, email]];
- myConnection.query(sql, [values], function (err, result) {
- if (err) throw err;
- console.log("Contract inserted");
- });
- } else {
- console.log("Contract exists");
- }
- }); // end contract
- }); // end connection
- } // end else
- });
- ////// } // end foreachusers
- } // end for
- myConnection.query("SELECT * FROM sync ORDER BY fecha DESC", function (err, result, fields) {
- if (err) throw err;
- res.json(result);
- });
- }
- });
- });
- } else {
- console.log(err);
- }
- }
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement