var oracledb = require('oracledb'); var oracle_func = require('../util/db_oracle.js'); var sqlServer = require('../util/db_sqlserver.js'); var util = require('../util/util.js'); module.exports.oracleQueryUploadData = async function oracleQueryUploadData(){ var configjs = util.getConfig(); var oracleConfig = configjs.database_owner; var owner = configjs.database_owner.scheme var queryGetCabangValue = `select ${owner}.User_Profile_SYS_API.Get_Default_Value(:usercab,:code_cab) as cabang_id , ${owner}.User_Profile_SYS_API.Get_Default_Value(:usercab,:code_company) as company from dual`; var paramsGetCabangValue = {usercab:{val:oracleConfig.user}, code_cab:{val:"CABANG_ID"},code_company:{val:"COMPANY"}}; let resultCabangValue = await oracle_func.getConnected(oracleConfig,queryGetCabangValue,paramsGetCabangValue); //console.log(resultCabangValue["DATA"][0].CABANG_ID); if(resultCabangValue["STATUS"] != 0){ var query = `SELECT COMPANY,ID,ENABLED,TEST_MODE,AUTO_MODE,${owner}.UPLOAD_DATA_DB_CABANG_API.Get_Marking_Trans_Date(COMPANY,ID,:CABANG_ID) AS LAST_DATE FROM ${owner}.upload_data_db WHERE company=:COMPANY AND enabled='TRUE' AND client_mode='TRUE' AND UPPER(TRIM(id)) IN(SELECT UPPER(TRIM(id)) FROM ${owner}.upload_data_db_cabang WHERE company=:COMPANY AND cabang_id= :CABANG_ID AND enabled='TRUE') `; if(resultCabangValue["DATA"][0].CABANG_ID == null){resultCabangValue["DATA"][0].CABANG_ID = '03'} var params = {COMPANY:{val:resultCabangValue["DATA"][0].COMPANY}, CABANG_ID:{val:resultCabangValue["DATA"][0].CABANG_ID}}; // console.log(params); var oracleConfig = configjs.database_owner; let data = await oracle_func.getConnected(oracleConfig,query,params); // console.log(data); return data; } } module.exports.oracleQueryUploadDataDet = async function oracleQueryUploadDataDet(id){ var configjs = util.getConfig(); var owner = configjs.database_owner.scheme; var query = `SELECT * FROM ${owner}.upload_data_db_det WHERE company=:COMPANY AND enabled='TRUE' AND UPPER(TRIM(id))=:ID `; var params = {COMPANY:{val:owner},ID:{val:id}} var oracleConfig = configjs.database_owner; let data = await oracle_func.getConnected(oracleConfig,query,params); return data; } module.exports.oracleInsertCollection = async function oracleInsertCollection(data){ var sqlCollection = await sqlServer.connectCollection(); var configjs = util.getConfig(); var owner = configjs.database_sendcol.scheme; var oracleConfig = configjs.database_sendcol; var sendArr = []; var indexSendArr = 0 ; var arrConstructor = data[0]; var tableConstructor = ''; var tableBindValue = ''; for(key in arrConstructor){ if(key != "SEQ_ID" && key != "FLAG_DELETED"){ if(key == 'COLLECTION_NAME'){ tableConstructor += `${key},`; tableBindValue += `:${key},` }else{ tableConstructor += `${util.changeColumnOracle(key)},`; tableBindValue += `:${key},`; } } } tableConstructor = tableConstructor.substr(0,tableConstructor.length-1); tableBindValue = tableBindValue.substr(0,tableBindValue.length -1); var queryInsertOracle = ` insert into ${owner}.upload_collection_tab(${tableConstructor}) values(${tableBindValue})`; for(var j = 0 ; j < data.length; j+= 500){ if(j==0){ sendArr[indexSendArr] = data.slice(0,500) } else if(j+500 > data.length){ sendArr[indexSendArr] = data.slice(j) } else{ sendArr[indexSendArr] = data.slice(j,j+500); } indexSendArr += 1; } for(var k = 0 ; k < sendArr.length; k++){ var seq_id = []; for(row in sendArr[k]){ seq_id.push(sendArr[k][row].SEQ_ID); delete sendArr[k][row].SEQ_ID; } let result = await oracle_func.getConnectedInsertMany(oracleConfig,queryInsertOracle,sendArr[k]); if(result["STATUS"] == 1){ for(var i = 0 ; i< seq_id.length; i ++){ var requestUpdateFlagDeleteCollection = sqlCollection.request(); requestUpdateFlagDeleteCollection.input('SEQ_ID',seq_id[i]); var queryUpdateFlagDeleteCollection = `delete from dbo.TEMP_DATA_TAB where SEQ_ID = @SEQ_ID`; var resultUpdateFlagDeleteCollection = await requestUpdateFlagDeleteCollection.query(queryUpdateFlagDeleteCollection); } } } return {"STATUS":0}; } module.exports.oracleInsertCollectionOne = async function oracleInsertCollectionOne(data){ var sqlCollection = await sqlServer.connectCollection(); var configjs = util.getConfig(); var owner = configjs.database_sendcol.scheme; var oracleConfig = configjs.database_sendcol; var seq_id = []; for(row in data){ seq_id.push(data[row].SEQ_ID); delete data[row].SEQ_ID; } var arrConstructor = data[0]; var tableConstructor = ''; var tableBindValue = ''; for(key in arrConstructor){ if(key != "SEQ_ID" && key != "FLAG_DELETED"){ if(key == 'COLLECTION_NAME'){ tableConstructor += `${key},`; tableBindValue += `:${key},` }else{ tableConstructor += `${util.changeColumnOracle(key)},`; tableBindValue += `:${key},`; } } } tableConstructor = tableConstructor.substr(0,tableConstructor.length-1); tableBindValue = tableBindValue.substr(0,tableBindValue.length -1); var queryInsertOracle = ` insert into ${owner}.upload_collection_tab(${tableConstructor}) values(${tableBindValue})`; for(var i = 0 ; i < data.length ; i ++){ let result = await oracle_func.getConnectedInsert(oracleConfig,queryInsertOracle,data[i]); if(result["STATUS"] == 1){ var requestUpdateFlagDeleteCollection = sqlCollection.request(); requestUpdateFlagDeleteCollection.input('SEQ_ID',seq_id[i]); var queryUpdateFlagDeleteCollection = `delete from dbo.TEMP_DATA_TAB where SEQ_ID = @SEQ_ID`; var resultUpdateFlagDeleteCollection = await requestUpdateFlagDeleteCollection.query(queryUpdateFlagDeleteCollection); } } return; } module.exports.oracleUpdateLastDate = async function oracleUpdateLastDate(id){ var configjs = util.getConfig(); var oracleConfig = configjs.database_owner; var owner = configjs.database_owner.scheme; var queryGetCabangValue = `select ${owner}.User_Profile_SYS_API.Get_Default_Value(:usercab,:code_cab) as cabang_id , ${owner}.User_Profile_SYS_API.Get_Default_Value(:usercab,:code_company) as company from dual`; var paramsGetCabangValue = {usercab:{val:oracleConfig.user}, code_cab:{val:"CABANG_ID"},code_company:{val:"COMPANY"}}; let resultCabangValue = await oracle_func.getConnected(oracleConfig,queryGetCabangValue,paramsGetCabangValue); if(resultCabangValue["DATA"][0].CABANG_ID == null){resultCabangValue["DATA"][0].CABANG_ID = '03'} if(resultCabangValue["STATUS"] != 0){ var query = `BEGIN TBS.UPLOAD_DATA_DB_CABANG_API.Update_Marking_Trans_Date( company_ => :P_COMPANY, id_ => :P_ID, cabang_id_ => :P_CABANG_ID, marking_trans_date_ => NULL ); END; `; var params = {P_COMPANY:{val:resultCabangValue["DATA"][0].COMPANY}, P_ID:{val:id}, P_CABANG_ID:{val:resultCabangValue["DATA"][0].CABANG_ID}}; var oracleConfig = configjs.database_owner; let data = await oracle_func.getConnectedInsert(oracleConfig,query,params); return data; } }