const db = require(`../config/dbMysqlConn`); class VhcModels { static STTS_ACTIVE = 1; static STTS_INACTIVE = 2; static IN_ORD_YES = 1; static IN_ORD_NO = 2; static async getVhcByDeviceId(device_id) { return new Promise((resolve, reject) => { let params = []; let query = 'SELECT'; query += ' v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit'; query += ' ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code'; query += ' FROM t_vehicles AS v'; query += ' INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid'; query += ' LEFT JOIN t_drivers AS da ON v.a_did = da.id'; query += ' WHERE v.dlt is null AND v.status = ? AND v.device_id = ?'; params.push(VhcModels.STTS_ACTIVE, device_id); db.query(query, params, function (err, resp) { if (err) { reject(err); return false; } resolve(resp); return true; }); }); } static async getVhcById(id) { return new Promise((resolve, reject) => { let params = []; let query = 'SELECT'; query += ' v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit'; query += ' ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code'; query += ' ,v.is_in_ord,v.ord_id,v.ord_code,v.ord_ids'; query += ' FROM t_vehicles AS v'; query += ' INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid'; query += ' LEFT JOIN t_drivers AS da ON v.a_did = da.id'; // query += ' WHERE v.dlt is null AND v.status = ? AND v.id = ?'; query += ' WHERE v.dlt is null AND v.id = ?'; query += ' LIMIT 1'; params.push(id); db.query(query, params, function (err, resp) { if (err) { reject(err); return false; } resolve(resp); return true; }); }); } static async update(id, data) { return new Promise((resolve, reject) => { const query = `UPDATE t_vehicles SET ? WHERE id = ?;`; db.getConnection(function (err, conn) { if (err) { conn.release(); reject(err); return false; } conn.beginTransaction(async function (err) { if (err) { conn.release(); reject(err); return false; } conn.query(query, [data, id], function (err, resp) { if (err) { conn.rollback(async function () { conn.release(); reject(err.message); }); return false; } conn.commit(async function (err) { if (err) { conn.release(); reject(err); return false; } conn.release(); resolve(resp); return true; }); }); }); }); }); } } module.exports = VhcModels;