Initial commit
This commit is contained in:
121
models/OrdersTerminsModels.js
Normal file
121
models/OrdersTerminsModels.js
Normal file
@ -0,0 +1,121 @@
|
||||
// const db = require(`../config/dbMysqlConn`);
|
||||
const MysqlHelpers = require(`../library/LibMysqlHelper`);
|
||||
|
||||
class OrdersTerminsModels {
|
||||
|
||||
static FLOW_TYPE_PAYMENT = 1;
|
||||
static FLOW_TYPE_BILLING = 2;
|
||||
static FLOW_TYPE_HYBRID = 3;
|
||||
|
||||
static TYPE_CASH_OUT = 1;
|
||||
static TYPE_CASH_IN = 2;
|
||||
static TYPE_CASH_HYBRID = 3;
|
||||
|
||||
static AMT_TYPE_FLAT = 1;
|
||||
static AMT_TYPE_PERCENT = 2;
|
||||
|
||||
// 1=>refer termin_ddln_at, 2=>refer to order finish(pengantaran selesai)
|
||||
static DDLN_TERMIN_TYPE_TIME = 1;
|
||||
static DDLN_TERMIN_TYPE_ORD_FINISH = 2;
|
||||
|
||||
static IS_PAID_NO = 0;
|
||||
static IS_PAID_YES = 1;
|
||||
|
||||
// 1=>transfer
|
||||
static PAID_TYPE_TF = 1;
|
||||
|
||||
// 1=>admin, 2=>finance
|
||||
static CRT_TYPE_SYSTEM = 0;
|
||||
static CRT_TYPE_ADMIN = 1;
|
||||
static CRT_TYPE_FINANCE = 2;
|
||||
|
||||
static IS_ACTIVE_NO = 0;
|
||||
static IS_ACTIVE_YES = 1;
|
||||
|
||||
// 1=>client, 2=>vendor
|
||||
static TERMIN_FOR_CLIENT = 1;
|
||||
static TERMIN_FOR_VENDOR = 2;
|
||||
|
||||
// merge per trx
|
||||
static STTS_MERGE_NO = 0;
|
||||
static STTS_MERGE_TO = 1;
|
||||
static STTS_MERGE_RESULT = 2;
|
||||
|
||||
static listWithFilter(filter = {}) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let params = [], select = '', where = '', join = '', order_by = '', group_by = '', limit = '';
|
||||
|
||||
if (filter['ord_id']) {
|
||||
where += ' AND ord_termin.ord_id = ?';
|
||||
params.push(filter['ord_id']);
|
||||
} else if (filter['ord_code']) {
|
||||
where += ' AND ord_code = ?';
|
||||
params.push(filter['ord_code']);
|
||||
}
|
||||
|
||||
if (filter['termin_for']) {
|
||||
where += ' AND termin_for = ?';
|
||||
params.push(filter['termin_for']);
|
||||
}
|
||||
|
||||
if (filter['crt_type']) {
|
||||
where += ' AND crt_type = ?';
|
||||
params.push(filter['crt_type']);
|
||||
}
|
||||
|
||||
if (filter['termin_is_paid']) {
|
||||
where += ' AND termin_is_paid = ?';
|
||||
params.push(filter['termin_is_paid']);
|
||||
}
|
||||
|
||||
|
||||
if (filter['in_stts_merge'] && filter['in_stts_merge'].length > 0) {
|
||||
where += ' AND ord_termin.stts_merge IN (';
|
||||
for (const in_stts_merge of filter['in_stts_merge']) {
|
||||
where += '?,';
|
||||
params.push(in_stts_merge);
|
||||
}
|
||||
where = where.slice(0, -1) + ')';
|
||||
}
|
||||
|
||||
if (filter['group_by']) {
|
||||
group_by = filter['group_by'];
|
||||
}
|
||||
|
||||
if (filter['limit']) {
|
||||
limit = ' LIMIT ' + filter['limit'];
|
||||
}
|
||||
|
||||
let query = `SELECT
|
||||
ord_termin.*
|
||||
${select}
|
||||
FROM t_orders_termins as ord_termin
|
||||
${join}
|
||||
WHERE ord_termin.dlt is null
|
||||
${where}
|
||||
${group_by}
|
||||
${order_by}
|
||||
${limit}
|
||||
;`;
|
||||
try {
|
||||
const conn = await MysqlHelpers.createConnection();
|
||||
const result = await MysqlHelpers.query(conn, query, params);
|
||||
await MysqlHelpers.releaseConnection(conn);
|
||||
resolve(result);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
// db.query(query, params, function (err, resp) {
|
||||
// if (err) {
|
||||
// reject(err);
|
||||
// return false;
|
||||
// }
|
||||
// resolve(resp);
|
||||
// return true;
|
||||
// });
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = OrdersTerminsModels;
|
||||
Reference in New Issue
Block a user