diff --git a/adapter/budgetadapter.js b/adapter/budgetadapter.js index b12d335..e31469c 100644 --- a/adapter/budgetadapter.js +++ b/adapter/budgetadapter.js @@ -16,12 +16,16 @@ class BudgetAdapter extends Adapter{ let offset = req.body.offset; let keyword = req.body.keyword; - let qry = "select * from vw_budgetcapexinfo "; - qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) like '%"+ keyword +"%') order by id asc"; + let qryBase = "select v.*, b.currency_id, b.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qryBase += "from vw_budgetcapexinfo v "; + qryBase += "left join tbl_budgetcapexinfo b on b._idx = v.id "; + qryBase += "left join tbl_currency c on c._idx = b.currency_id "; + qryBase += "where (trim(v.budgetid) like '%"+ keyword +"%' or trim(v.activityname) like '%"+ keyword +"%') "; + let qry = qryBase + "order by v.id asc"; // console.log(qry); db.query(qry,[],function(err,result,fields){ - if(err){ + if(err){ apires.meta['message'] = err.toString(); apires.meta['code'] = 500; callback('err',apires); @@ -39,8 +43,7 @@ class BudgetAdapter extends Adapter{ "totalpage": pagination, "totalrows": result.length }); - qry = "select * from vw_budgetcapexinfo "; - qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) like '%"+ keyword +"%') order by id asc limit " + offset + ", " + limit; + qry = qryBase + "order by v.id asc limit " + offset + ", " + limit; db.query(qry,[],function(err,result,fields){ if(err){ apires.meta['message'] = err.toString(); @@ -80,8 +83,11 @@ class BudgetAdapter extends Adapter{ let id = req.query.id; // console.log(req); - let qry = "select * from vw_budgetcapexinfo "; - qry = qry +"where id='"+id+"' order by id asc limit 1"; + let qry = "select v.*, b.currency_id, b.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qry += "from vw_budgetcapexinfo v "; + qry += "left join tbl_budgetcapexinfo b on b._idx = v.id "; + qry += "left join tbl_currency c on c._idx = b.currency_id "; + qry += "where v.id='"+id+"' order by v.id asc limit 1"; // console.log(qry); db.query(qry,[],function(err,result,fields){ @@ -190,10 +196,15 @@ class BudgetAdapter extends Adapter{ let months = req.body.months; let years = req.body.years; let nik = req.body.nik; + let currency_id = req.body.currency_id ?? null; + + let currencyFields = currency_id + ? ",currency_id='"+currency_id+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; let qry = "insert into tbl_budgetcapexinfo "; qry = qry +"set idxbudgettype='"+idxbudgettype+"', budgetid='"+budgetid+"',activityname='"+activityname+"',amount='"+amount+"',months='"+months+"',"; - qry = qry +"targetrfs='"+targetrfs+"',years='"+years+"', iby='"+nik+"',idt=now()"; + qry = qry +"targetrfs='"+targetrfs+"',years='"+years+"'"+currencyFields+", iby='"+nik+"',idt=now()"; // console.log(qry); db.query(qry,[],function(err,result,fields){ @@ -232,10 +243,15 @@ class BudgetAdapter extends Adapter{ let years = req.body.years; let nik = req.body.nik; let id = req.body.id; + let currency_id = req.body.currency_id ?? null; + + let currencyFields = currency_id + ? ",currency_id='"+currency_id+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; let qry = "update tbl_budgetcapexinfo "; qry = qry +"set idxbudgettype='"+idxbudgettype+"', budgetid='"+budgetid+"',activityname='"+activityname+"',amount='"+amount+"',months='"+months+"',"; - qry = qry +"targetrfs='"+targetrfs+"',years='"+years+"', uby='"+nik+"',udt=now() "; + qry = qry +"targetrfs='"+targetrfs+"',years='"+years+"'"+currencyFields+", uby='"+nik+"',udt=now() "; qry = qry +"where _idx='"+id+"'"; // console.log(qry); @@ -282,11 +298,16 @@ class BudgetAdapter extends Adapter{ let targetrfs = req.body.targetrfs; let crdb = "K"; let nik = req.body.nik; + let currency_id = req.body.currency_id ?? null; + + let currencyFieldsReq = currency_id + ? ",currency_id='"+currency_id+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; let qry = "insert into tbl_requestbudget "; qry = qry +"set trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',yearstgt='"+yearstgt+"',transactiondate='"+transactiondate+"',idxbudgettype='"+idxbudgettype+"',budgettype='"+budgettype+"',"; qry = qry +"idxbudgetid='"+idxbudgetid+"',budgetid='"+budgetid+"',activityname='"+activityname+"',idcoa='"+idcoa+"',glacc='"+glacc+"',targetrfs='"+targetrfs+"',"; - qry = qry +"amount='"+amount+"',crdb='"+crdb+"',months=month(now()),years=year(now()), iby='"+nik+"',idt=now()"; + qry = qry +"amount='"+amount+"',crdb='"+crdb+"'"+currencyFieldsReq+",months=month(now()),years=year(now()), iby='"+nik+"',idt=now()"; // console.log(qry); db.query(qry,[],function(err,result,fields){ @@ -366,10 +387,15 @@ class BudgetAdapter extends Adapter{ let nik = req.body.nik; let idreqbudget = req.body.idreqbudget; + let currency_id_upd = req.body.currency_id ?? null; + let currencyFieldsUpd = currency_id_upd + ? ",currency_id='"+currency_id_upd+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id_upd+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; + let qry = "update tbl_requestbudget "; qry = qry +"set trxid='"+trxid+"',yearstgt='"+yearstgt+"',transactiondate='"+transactiondate+"',idxbudgettype='"+idxbudgettype+"',budgettype='"+budgettype+"',"; qry = qry +"idxbudgetid='"+idxbudgetid+"',budgetid='"+budgetid+"',activityname='"+activityname+"',idcoa='"+idcoa+"',glacc='"+glacc+"',targetrfs='"+targetrfs+"',"; - qry = qry +"amount='"+amount+"',crdb='"+crdb+"',uby='"+nik+"',udt=now() "; + qry = qry +"amount='"+amount+"',crdb='"+crdb+"'"+currencyFieldsUpd+",uby='"+nik+"',udt=now() "; qry = qry +"where _idx='"+idreqbudget+"'"; // console.log(qry); @@ -435,13 +461,17 @@ class BudgetAdapter extends Adapter{ let keyword = req.body.keyword; let nik = req.body.nik; - let qry = "select * from vw_requestbudget "; - qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) like '%"+ keyword +"%') "; - qry = qry +"and iby='"+nik+"' order by id asc"; + let qryBaseRb = "select v.*, r.currency_id, r.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qryBaseRb += "from vw_requestbudget v "; + qryBaseRb += "left join tbl_requestbudget r on r._idx = v.id "; + qryBaseRb += "left join tbl_currency c on c._idx = r.currency_id "; + qryBaseRb += "where (trim(v.budgetid) like '%"+ keyword +"%' or trim(v.activityname) like '%"+ keyword +"%') "; + qryBaseRb += "and v.iby='"+nik+"' "; + let qry = qryBaseRb + "order by v.id asc"; // console.log(qry); db.query(qry,[],function(err,result,fields){ - if(err){ + if(err){ apires.meta['message'] = err.toString(); apires.meta['code'] = 500; callback('err',apires); @@ -459,9 +489,7 @@ class BudgetAdapter extends Adapter{ "totalpage": pagination, "totalrows": result.length }); - qry = "select * from vw_requestbudget "; - qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) like '%"+ keyword +"%') "; - qry = qry +"and iby='"+nik+"' order by id asc limit " + offset + ", " + limit; + qry = qryBaseRb + "order by v.id asc limit " + offset + ", " + limit; db.query(qry,[],function(err,result,fields){ if(err){ apires.meta['message'] = err.toString(); @@ -500,8 +528,11 @@ class BudgetAdapter extends Adapter{ let id = req.query.id; // console.log(req); - let qry = "select * from vw_requestbudget "; - qry = qry +"where id='"+id+"' order by id asc limit 1"; + let qry = "select v.*, r.currency_id, r.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qry += "from vw_requestbudget v "; + qry += "left join tbl_requestbudget r on r._idx = v.id "; + qry += "left join tbl_currency c on c._idx = r.currency_id "; + qry += "where v.id='"+id+"' order by v.id asc limit 1"; // console.log(qry); db.query(qry,[],function(err,result,fields){ diff --git a/adapter/justificationadapter.js b/adapter/justificationadapter.js index 5b161bb..856648a 100644 --- a/adapter/justificationadapter.js +++ b/adapter/justificationadapter.js @@ -114,12 +114,17 @@ class JustificationAdapter extends Adapter{ let ttd = JSON.parse(req.body.ttd); let status = -1; let statusdescription = "draft"; + let currency_id = req.body.currency_id ?? null; + + let currencyFieldsJ = currency_id + ? ",currency_id='"+currency_id+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; let qry = "insert into tbl_justification "; qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',"; qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',textpurpose='"+textpurpose+"',textintroduce='"+textintroduce+"',"; qry = qry +"textstrategic='"+textstrategic+"',textbussiness='"+textbussiness+"',textrisk='"+textrisk+"',textfund='"+textfund+"',textrecomendation='"+textrecomendation+"',"; - qry = qry +"textschedule='"+textschedule+"',status='"+status+"',statusdescription='"+statusdescription+"',filedoc='"+filedoc+"',iby='"+nik+"',idt=now()"; + qry = qry +"textschedule='"+textschedule+"',status='"+status+"',statusdescription='"+statusdescription+"',filedoc='"+filedoc+"'"+currencyFieldsJ+",iby='"+nik+"',idt=now()"; // console.log(qry); db.query(qry,[],function(err,result,fields){ if(err){ @@ -240,12 +245,17 @@ class JustificationAdapter extends Adapter{ let filedocqry = "filedoc='"+filedoc+"',"; if(filename==""){filedocqry="";} + let currency_id_ju = req.body.currency_id ?? null; + let currencyFieldsJU = currency_id_ju + ? ",currency_id='"+currency_id_ju+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id_ju+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; + // console.log(filedocqry); let qry = "update tbl_justification "; qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',"; qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',textpurpose='"+textpurpose+"',textintroduce='"+textintroduce+"',"; qry = qry +"textstrategic='"+textstrategic+"',textbussiness='"+textbussiness+"',textrisk='"+textrisk+"',textfund='"+textfund+"',textrecomendation='"+textrecomendation+"',"; - qry = qry +"textschedule='"+textschedule+"',"+filedocqry+"uby='"+nik+"',udt=now() "; + qry = qry +"textschedule='"+textschedule+"',"+filedocqry+currencyFieldsJU.substring(1)+",uby='"+nik+"',udt=now() "; qry = qry +"where _idx='"+idxjustification+"'"; // console.log(qry); diff --git a/adapter/poadapter.js b/adapter/poadapter.js index bb655f6..33386a7 100644 --- a/adapter/poadapter.js +++ b/adapter/poadapter.js @@ -169,6 +169,11 @@ class PoAdapter extends Adapter { let ratepo = req.body.ratepo; let migo = req.body.migo; let idxpoold = req.body.idxpoold; + let currency_id = req.body.currency_id ?? null; + + let currencyFieldsPo = currency_id + ? ",currency_id='"+currency_id+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; let qry = ""; if (idxpoold != idxpo && idxpoold != 0) { @@ -231,7 +236,7 @@ class PoAdapter extends Adapter { status + "',statusdescription='" + statusdescription + - "',iby='" + + "'" + currencyFieldsPo + ",iby='" + nik + "',idt=now()"; if (result.length > 0) { @@ -561,7 +566,10 @@ class PoAdapter extends Adapter { apires.meta["code"] = 500; callback("err", apires); } else { - qry = "select * from vw_po where _idx='" + idxpo + "'"; + qry = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol " + + "from vw_po v left join tbl_po po on po._idx = v._idx " + + "left join tbl_currency c on c._idx = po.currency_id " + + "where v._idx='" + idxpo + "'"; db.query(qry, [], function (err, result1, fields) { if (err) { apires.meta["message"] = err.toString(); @@ -688,7 +696,10 @@ class PoAdapter extends Adapter { return result3; }); }); - qry = "select * from vw_po where _idx='" + idxpo + "'"; + qry = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol " + + "from vw_po v left join tbl_po po on po._idx = v._idx " + + "left join tbl_currency c on c._idx = po.currency_id " + + "where v._idx='" + idxpo + "'"; db.query(qry, [], function (err, result1, fields) { if (err) { apires.meta["message"] = err.toString(); @@ -1053,7 +1064,10 @@ class PoAdapter extends Adapter { apires.meta["code"] = 500; callback("err", apires); } else { - qry = "select * from vw_po where _idx='" + idxpo + "'"; + qry = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol " + + "from vw_po v left join tbl_po po on po._idx = v._idx " + + "left join tbl_currency c on c._idx = po.currency_id " + + "where v._idx='" + idxpo + "'"; db.query(qry, [], function (err, result1, fields) { if (err) { apires.meta["message"] = err.toString(); @@ -1112,7 +1126,10 @@ class PoAdapter extends Adapter { apires.meta["code"] = 500; callback("err", apires); } else { - qry = "select * from vw_po where _idx='" + idxpo + "'"; + qry = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol " + + "from vw_po v left join tbl_po po on po._idx = v._idx " + + "left join tbl_currency c on c._idx = po.currency_id " + + "where v._idx='" + idxpo + "'"; db.query(qry, [], function (err, result1, fields) { if (err) { apires.meta["message"] = err.toString(); @@ -1180,7 +1197,10 @@ class PoAdapter extends Adapter { apires.meta["code"] = 500; callback("err", apires); } else { - qry = "select * from vw_po where _idx='" + idxpo + "'"; + qry = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol " + + "from vw_po v left join tbl_po po on po._idx = v._idx " + + "left join tbl_currency c on c._idx = po.currency_id " + + "where v._idx='" + idxpo + "'"; db.query(qry, [], function (err, result1, fields) { if (err) { apires.meta["message"] = err.toString(); @@ -1657,7 +1677,10 @@ class PoAdapter extends Adapter { let keyword = req.query.keyword; let nik = req.body.nik; - let qry = "select * from vw_po "; + let qryBase = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qryBase += "from vw_po v left join tbl_po po on po._idx = v._idx "; + qryBase += "left join tbl_currency c on c._idx = po.currency_id "; + let qry = qryBase; qry = qry + "where trim(ponumber) like '%" + @@ -1689,7 +1712,7 @@ class PoAdapter extends Adapter { "totalpage": pagination, "totalrows": result.length, }); - qry = "select * from vw_po "; + qry = qryBase; qry = qry + "where trim(ponumber) like '%" + keyword + "%' and ponumber<>'000' and status in (2,3,4,5,6)"; if (nik) { if (!proc_users.includes(nik)) { @@ -1735,7 +1758,10 @@ class PoAdapter extends Adapter { let nik = req.query.nik; // let nik = req.body.nik; - let qry = "select * from vw_po "; + let qryBase = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qryBase += "from vw_po v left join tbl_po po on po._idx = v._idx "; + qryBase += "left join tbl_currency c on c._idx = po.currency_id "; + let qry = qryBase; qry = qry + "where trim(ponumber) like '%" + @@ -1765,7 +1791,7 @@ class PoAdapter extends Adapter { "totalpage": pagination, "totalrows": result.length, }); - qry = "select * from vw_po "; + qry = qryBase; qry = qry + "where trim(ponumber) like '%" + @@ -1869,7 +1895,10 @@ class PoAdapter extends Adapter { let keyword = req.query.keyword; // let nik = req.body.nik; - let qry = "select * from vw_po "; + let qryBase = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qryBase += "from vw_po v left join tbl_po po on po._idx = v._idx "; + qryBase += "left join tbl_currency c on c._idx = po.currency_id "; + let qry = qryBase; qry = qry + "where trim(ponumber) like '%" + @@ -1895,7 +1924,7 @@ class PoAdapter extends Adapter { "totalpage": pagination, "totalrows": result.length, }); - qry = "select * from vw_po "; + qry = qryBase; qry = qry + "where trim(ponumber) like '%" + @@ -2028,7 +2057,10 @@ class PoAdapter extends Adapter { try { let idxpo = req.query.idxpo || req.body.idxpo; - let qry = "select * from vw_po where _idx='" + idxpo + "'"; + let qry = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol " + + "from vw_po v left join tbl_po po on po._idx = v._idx " + + "left join tbl_currency c on c._idx = po.currency_id " + + "where v._idx='" + idxpo + "'"; // console.log(qry); db.query(qry, [], function (err, result, fields) { @@ -2355,7 +2387,10 @@ class PoAdapter extends Adapter { let keyword = req.query.keyword; let nik = req.query.nik; - let qry = "select * from vw_po "; + let qryBase = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qryBase += "from vw_po v left join tbl_po po on po._idx = v._idx "; + qryBase += "left join tbl_currency c on c._idx = po.currency_id "; + let qry = qryBase; qry = qry + "where (trim(ponumber) like '%" + @@ -2711,7 +2746,10 @@ class PoAdapter extends Adapter { apires.meta["code"] = 500; callback("err", apires); } else { - qry = "select * from vw_po where _idx='" + idxpo + "'"; + qry = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol " + + "from vw_po v left join tbl_po po on po._idx = v._idx " + + "left join tbl_currency c on c._idx = po.currency_id " + + "where v._idx='" + idxpo + "'"; db.query(qry, [], function (err, result1, fields) { if (err) { apires.meta["message"] = err.toString(); diff --git a/adapter/pradapter.js b/adapter/pradapter.js index dcee76f..65dfe0c 100644 --- a/adapter/pradapter.js +++ b/adapter/pradapter.js @@ -99,6 +99,11 @@ class PrAdapter extends Adapter { let nik = req.body.nik; let status = -1; let statusdescription = "draft"; + let currency_id = req.body.currency_id ?? null; + + let currencyFieldsPr = currency_id + ? ",currency_id='"+currency_id+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; let qry = "insert into tbl_pr "; qry = @@ -146,7 +151,7 @@ class PrAdapter extends Adapter { idxapproval + "',nikapproval='" + nikapproval + - "',iby='" + + "'" + currencyFieldsPr + ",iby='" + nik + "',idt=now()"; console.log(qry); @@ -193,6 +198,11 @@ class PrAdapter extends Adapter { let nik = req.body.nik; let status = -1; let statusdescription = "draft"; + let currency_id_upd = req.body.currency_id ?? null; + + let currencyFieldsPrUpd = currency_id_upd + ? ",currency_id='"+currency_id_upd+"',rate_snapshot=(select rate from tbl_currency where _idx='"+currency_id_upd+"' and isdeleted=0 limit 1)" + : ",currency_id=NULL,rate_snapshot=NULL"; let qry = "update tbl_pr "; qry = @@ -237,7 +247,7 @@ class PrAdapter extends Adapter { status + "',statusdescription='" + statusdescription + - "',uby='" + + "'" + currencyFieldsPrUpd + ",uby='" + nik + "',udt=now() "; qry = qry + "where _idx='" + idxpr + "'"; @@ -357,7 +367,11 @@ class PrAdapter extends Adapter { try { let _idx = req.query.id; - let qry = "select * from vw_pr where id='" + _idx + "'"; + let qry = "select v.*, p.currency_id, p.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qry += "from vw_pr v "; + qry += "left join tbl_pr p on p._idx = v.id "; + qry += "left join tbl_currency c on c._idx = p.currency_id "; + qry += "where v.id='" + _idx + "'"; // console.log(qry); db.query(qry, [], function (err, result, fields) { @@ -406,7 +420,11 @@ class PrAdapter extends Adapter { } } - let qry = "select * from vw_pr "; + let qryBase = "select v.*, p.currency_id, p.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; + qryBase += "from vw_pr v "; + qryBase += "left join tbl_pr p on p._idx = v.id "; + qryBase += "left join tbl_currency c on c._idx = p.currency_id "; + let qry = qryBase; qry += "where (trim(trxidpr) like '%" + keyword + @@ -434,7 +452,7 @@ class PrAdapter extends Adapter { "totalpage": pagination, "totalrows": result.length, }); - qry = "select * from vw_pr "; + qry = qryBase; qry = qry + "where (trim(trxidpr) like '%" +