Ver a proveniência

check exist before process

master
jefry há 4 anos
ascendente
cometimento
4ddcf69db5
1 ficheiros alterados com 184 adições e 172 eliminações
  1. +184
    -172
      model/sqliteModel.js

+ 184
- 172
model/sqliteModel.js Ver ficheiro

@@ -1,88 +1,87 @@
const sqlite3 = require('sqlite3').verbose();
var sqliteFunc = require('../util/db_sqlite.js');
var oracleModel = require('./oracleModel.js');
const oracledb = require('oracledb');
const path = require('path');
const fs = require('fs');

async function insertRefTable(db,dataUnitCabang){
try{
var runQuery = 'insert into refTable(mesin,tipe,rangka,warna,kode,tahun,state) VALUES ';
for(var i = 0 ; i < dataUnitCabang.length ; i ++){
if(i == dataUnitCabang.length -1){
runQuery = runQuery.concat(`('${dataUnitCabang[i]["MESIN"]}','${dataUnitCabang[i]["TIPE"]}','${dataUnitCabang[i]["RANGKA"]}','${dataUnitCabang[i]["WARNA"]}',
const sqlite3 = require("sqlite3").verbose();
var sqliteFunc = require("../util/db_sqlite.js");
var oracleModel = require("./oracleModel.js");
const oracledb = require("oracledb");
const path = require("path");
const fs = require("fs");

async function insertRefTable(db, dataUnitCabang) {
try {
var runQuery =
"insert into refTable(mesin,tipe,rangka,warna,kode,tahun,state) VALUES ";
for (var i = 0; i < dataUnitCabang.length; i++) {
if (i == dataUnitCabang.length - 1) {
runQuery = runQuery.concat(`('${dataUnitCabang[i]["MESIN"]}','${dataUnitCabang[i]["TIPE"]}','${dataUnitCabang[i]["RANGKA"]}','${dataUnitCabang[i]["WARNA"]}',
'${dataUnitCabang[i]["KODE"]}','${dataUnitCabang[i]["TAHUN"]}','${dataUnitCabang[i]["STATE"]}')`);
}
else {
runQuery = runQuery.concat(`('${dataUnitCabang[i]["MESIN"]}','${dataUnitCabang[i]["TIPE"]}','${dataUnitCabang[i]["RANGKA"]}','${dataUnitCabang[i]["WARNA"]}',
} else {
runQuery = runQuery.concat(`('${dataUnitCabang[i]["MESIN"]}','${dataUnitCabang[i]["TIPE"]}','${dataUnitCabang[i]["RANGKA"]}','${dataUnitCabang[i]["WARNA"]}',
'${dataUnitCabang[i]["KODE"]}','${dataUnitCabang[i]["TAHUN"]}','${dataUnitCabang[i]["STATE"]}'), `);
}

}
}
var insertTable = await sqliteFunc.runQuery(db,runQuery);
if(insertTable["STATUS"] == 0) throw insertTable["DATA"]
}
catch(e){
var insertTable = await sqliteFunc.runQuery(db, runQuery);
if (insertTable["STATUS"] == 0) throw insertTable["DATA"];
} catch (e) {
throw e;
}

}


async function insertJenisFoto(db,jenisFoto){
try{
var valBlobTable = '';
for(var i = 0 ; i < jenisFoto.length ; i++){
if(i == jenisFoto.length -1) {
valBlobTable = valBlobTable.concat(`('${jenisFoto[i]["NO_URUT"]}','${jenisFoto[i]["JENIS"]}')`);
}
else{
valBlobTable = valBlobTable.concat(`('${jenisFoto[i]["NO_URUT"]}','${jenisFoto[i]["JENIS"]}'),`);
async function insertJenisFoto(db, jenisFoto) {
try {
var valBlobTable = "";
for (var i = 0; i < jenisFoto.length; i++) {
if (i == jenisFoto.length - 1) {
valBlobTable = valBlobTable.concat(
`('${jenisFoto[i]["NO_URUT"]}','${jenisFoto[i]["JENIS"]}')`
);
} else {
valBlobTable = valBlobTable.concat(
`('${jenisFoto[i]["NO_URUT"]}','${jenisFoto[i]["JENIS"]}'),`
);
}

}
var insertJenisBlobQuery = `
Insert Into jenisBlobTable Values ${valBlobTable}

`;

var insertBlobQuery = await sqliteFunc.runQuery(db,insertJenisBlobQuery);
if(insertBlobQuery["STATUS"] == 0) throw insertBlobQuery["DATA"]
}
catch(e){
var insertBlobQuery = await sqliteFunc.runQuery(
db,
insertJenisBlobQuery
);
if (insertBlobQuery["STATUS"] == 0) throw insertBlobQuery["DATA"];
} catch (e) {
throw e;
}
}


async function insertUnitDetPic(db,dataUnitPic){
try{
var valDetPic = '';
for(var i = 0 ; i < dataUnitPic.length ; i++){
if(i == dataUnitPic.length -1) {
async function insertUnitDetPic(db, dataUnitPic) {
try {
var valDetPic = "";
for (var i = 0; i < dataUnitPic.length; i++) {
if (i == dataUnitPic.length - 1) {
valDetPic = valDetPic.concat(`('${dataUnitPic[i]["MESIN"]}','${dataUnitPic[i]["NO_URUT"]}',
null,'${dataUnitPic[i]["JENIS"]}',null,null)`);
}
else{
} else {
valDetPic = valDetPic.concat(`('${dataUnitPic[i]["MESIN"]}','${dataUnitPic[i]["NO_URUT"]}',
null,'${dataUnitPic[i]["JENIS"]}',null,null),`);
}

}
var insertJenisBlobQuery = `
Insert Into blobTable(MESIN,NO_URUT,BLOB_FILE,JENIS,LATITUDE,LONGITUDE) Values ${valDetPic};

`;

var insertBlobQuery = await sqliteFunc.runQuery(db,insertJenisBlobQuery);
if(insertBlobQuery["STATUS"] == 0 ) throw insertBlobQuery["DATA"]
}
catch(e){
var insertBlobQuery = await sqliteFunc.runQuery(
db,
insertJenisBlobQuery
);
if (insertBlobQuery["STATUS"] == 0) throw insertBlobQuery["DATA"];
} catch (e) {
throw e;
}
}

async function getValueTableByName(db,name){
async function getValueTableByName(db, name) {
var query = `
select VALUE from
valueTable
@@ -90,15 +89,15 @@ async function getValueTableByName(db,name){
LIMIT 1
`;

var selectInsertTable = await sqliteFunc.selectQuery(db,query);
if(selectInsertTable["STATUS"] == 0) throw Error(selectInsertTable["DATA"]);
var selectInsertTable = await sqliteFunc.selectQuery(db, query);
if (selectInsertTable["STATUS"] == 0)
throw Error(selectInsertTable["DATA"]);
var data = selectInsertTable["DATA"];
var value = data[0]["VALUE"];
return value;

}
async function getInsertedData(db){
try{
async function getInsertedData(db) {
try {
var query = `
select
MESIN,
@@ -107,17 +106,17 @@ async function getInsertedData(db){
where flag_insert = 'TRUE'
`;

var selectTimestampInsert = await sqliteFunc.selectQuery(db,query);
if(selectTimestampInsert["STATUS"] == 0) throw selectTimestampInsert["DATA"];
var selectTimestampInsert = await sqliteFunc.selectQuery(db, query);
if (selectTimestampInsert["STATUS"] == 0)
throw selectTimestampInsert["DATA"];
return selectTimestampInsert["DATA"];
}
catch(e){
} catch (e) {
throw e;
}
}

async function getInsertedPic(db){
try{
async function getInsertedPic(db) {
try {
var query = `
select
BLOB_FILE,
@@ -129,102 +128,119 @@ async function getInsertedPic(db){
from blobTable where
blob_file IS NOT NULL
`;
var selectBlobTable = await sqliteFunc.selectQuery(db,query);
if(selectBlobTable["STATUS"] == 0) throw selectBlobTable["DATA"];
var selectBlobTable = await sqliteFunc.selectQuery(db, query);
if (selectBlobTable["STATUS"] == 0) throw selectBlobTable["DATA"];
return selectBlobTable["DATA"];
}
catch(e){
} catch (e) {
throw e;
}

}

async function unpackAndInsert(dbPath = null, company , cabangId){
async function unpackAndInsert(dbPath = null, company, cabangId) {
let db;
try{
try {
//var dbPath = path.join(__dirname , `../public/sqlite/upload/uploadDB.db`);
if(!dbPath || !fs.existsSync( dbPath )) throw "Database Not Exist. Kirim Ulang Data";
db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE);
var stockTakingUnitId = await getValueTableByName(db,'STOCK_TAKING_UNIT_ID');
if (!dbPath || !fs.existsSync(dbPath))
throw "Database Not Exist. Kirim Ulang Data";
db = new sqlite3.Database(
dbPath,
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE
);
var stockTakingUnitId = await getValueTableByName(
db,
"STOCK_TAKING_UNIT_ID"
);
var insertedData = await getInsertedData(db);
var insertedPic = await getInsertedPic(db);
var stockTakingData = {"company" : company , "cabangId" : cabangId, "stockTakingUnitId" : stockTakingUnitId};
var result = await oracleModel.insertStockUnitData(stockTakingData,insertedData,insertedPic);
if(db.open){
return new Promise(function(resolve,reject){
db.close(function(data){
var stockTakingData = {
company: company,
cabangId: cabangId,
stockTakingUnitId: stockTakingUnitId,
};
var result = await oracleModel.insertStockUnitData(
stockTakingData,
insertedData,
insertedPic
);
if (db.open) {
return new Promise(function (resolve, reject) {
db.close(function (data) {
fs.unlinkSync(dbPath);
resolve({"STATUS" : 1 ,"DATA" : result});
})
})

}
else{
resolve({ STATUS: 1, DATA: result });
});
});
} else {
fs.unlinkSync(dbPath);
return {"STATUS" : 1 ,"DATA" : result};
return { STATUS: 1, DATA: result };
}

}
catch(e){
} catch (e) {
console.log(e);

if(db.open){

return new Promise(function(resolve,reject){
db.close(function(data){

resolve({"STATUS" : 0 ,"DATA" : e.message||e});
})
})
if (db && db.open) {
return new Promise(function (resolve, reject) {
db.close(function (data) {
resolve({ STATUS: 0, DATA: e.message || e });
});
});
// db.close(function(data){
// return {"STATUS" : 0 ,"DATA" : e};
// })
} else {
return { STATUS: 0, DATA: e };
}
else{
return {"STATUS" : 0 ,"DATA" : e};
}
}
}

// var dbPath = path.join(__dirname , `../public/sqlite/testaplod3.db`);
// unpackAndInsert(dbPath,'TBS','02');
// var dbPath = path.join(__dirname , `../public/sqlite/testaplod3.db`);
// unpackAndInsert(dbPath,'TBS','02');



async function CreateDataCollection(company = '' , cabangId = ''){
async function CreateDataCollection(company = "", cabangId = "") {
var dbPath;
let db;
try {
var checkStockTaking = await oracleModel.getActiveStockTakingByCabang(company,cabangId);
var checkStockTaking = await oracleModel.getActiveStockTakingByCabang(
company,
cabangId
);
var oracleData;
if(checkStockTaking == undefined){
oracleData = await oracleModel.prepareStockCollection(company,cabangId);
}
else {
if (checkStockTaking == undefined) {
oracleData = await oracleModel.prepareStockCollection(
company,
cabangId
);
} else {
let state = checkStockTaking["STATE"];
if(state == 'Submitted'){
throw 'Gagal dalam mengambil data, mohon menunggu review data yang disubmit sebelumnya.';
if (state == "Submitted") {
throw "Gagal dalam mengambil data, mohon menunggu review data yang disubmit sebelumnya.";
}
oracleData = await oracleModel.getActiveStockCollection(company,cabangId,checkStockTaking["STOCK_TAKING_UNIT_ID"]);
oracleData = await oracleModel.getActiveStockCollection(
company,
cabangId,
checkStockTaking["STOCK_TAKING_UNIT_ID"]
);
}
var stockTakingUnitId = oracleData["stockTakingUnitId"];
var dataUnitCabang = oracleData["dataUnitCabang"];
var dataUnitPic = oracleData["dataUnitPic"];
var jenisFoto = oracleData["jenisFoto"];
var dirPath = path.join(__dirname , `../public/sqlite/db/${company}/${cabangId}`);
var dirPath = path.join(
__dirname,
`../public/sqlite/db/${company}/${cabangId}`
);
var resultDirPath = fs.mkdirSync(dirPath, { recursive: true });


var d = new Date();
var n = d.getTime();
var dbName = `${n}.db`;

dbPath = path.join(dirPath ,dbName);
db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE);
dbPath = path.join(dirPath, dbName);
db = new sqlite3.Database(
dbPath,
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE
);

// Create Table Reference
// Create Table Reference
var refTableQuery = `CREATE TABLE refTable(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
MESIN TEXT,
@@ -237,8 +253,8 @@ async function CreateDataCollection(company = '' , cabangId = ''){
TIMESTAMP TEXT DEFAULT NULL,
FLAG_INSERT TEXT DEFAULT 'FALSE'
)`;
var createRefTable = await sqliteFunc.runQuery(db,refTableQuery);
if(createRefTable["STATUS"] == 0) throw createRefTable;
var createRefTable = await sqliteFunc.runQuery(db, refTableQuery);
if (createRefTable["STATUS"] == 0) throw createRefTable;

// var insertTableQuery = `CREATE TABLE insertTable(
// ID INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -259,10 +275,8 @@ async function CreateDataCollection(company = '' , cabangId = ''){
LONGITUDE TEXT
)`;


var createBlobTable = await sqliteFunc.runQuery(db,insertTableBlob);
if(createBlobTable["STATUS"] == 0) throw createInsertTable;

var createBlobTable = await sqliteFunc.runQuery(db, insertTableBlob);
if (createBlobTable["STATUS"] == 0) throw createInsertTable;

var valueTableQuery = `
CREATE TABLE valueTable(
@@ -270,14 +284,16 @@ async function CreateDataCollection(company = '' , cabangId = ''){
VALUE TEXT
)
`;
var createValueTable = await sqliteFunc.runQuery(db,valueTableQuery);
if(createValueTable["STATUS"] == 0) throw createValueTable;

var queryValueTableInsert = `insert into valueTable(name,value) VALUES ('STOCK_TAKING_UNIT_ID',${stockTakingUnitId})`;
var insertValueTableInsert = await sqliteFunc.runQuery(db,queryValueTableInsert);
if(insertValueTableInsert["STATUS"] == 0) throw insertValueTableInsert;
var createValueTable = await sqliteFunc.runQuery(db, valueTableQuery);
if (createValueTable["STATUS"] == 0) throw createValueTable;

var queryValueTableInsert = `insert into valueTable(name,value) VALUES ('STOCK_TAKING_UNIT_ID',${stockTakingUnitId})`;
var insertValueTableInsert = await sqliteFunc.runQuery(
db,
queryValueTableInsert
);
if (insertValueTableInsert["STATUS"] == 0) throw insertValueTableInsert;

var jenisBlobQuery = `
CREATE TABLE jenisBlobTable(
@@ -285,65 +301,61 @@ async function CreateDataCollection(company = '' , cabangId = ''){
VALUE TEXT
)
`;
var createJenisBlobTable = await sqliteFunc.runQuery(db,jenisBlobQuery);
if(createJenisBlobTable["STATUS"] == 0) throw createJenisBlobTable;
var createJenisBlobTable = await sqliteFunc.runQuery(
db,
jenisBlobQuery
);
if (createJenisBlobTable["STATUS"] == 0) throw createJenisBlobTable;

//----------- JENIS FOTO----------------------------------------------
await insertJenisFoto(db,jenisFoto);
await insertJenisFoto(db, jenisFoto);

if(dataUnitCabang.length > 0){
//----------- REF TABLE----------------------------------------------
await insertRefTable(db,dataUnitCabang);
if (dataUnitCabang.length > 0) {
//----------- REF TABLE----------------------------------------------
await insertRefTable(db, dataUnitCabang);

//----------- UNIT DET PIC----------------------------------------------
await insertUnitDetPic(db,dataUnitPic);
//----------- UNIT DET PIC----------------------------------------------
await insertUnitDetPic(db, dataUnitPic);
}


if(db.open){
return new Promise(function(resolve,reject){
db.close(function(data){
resolve({"STATUS" : 1 ,"DATA" : dbPath});
})
if (db.open) {
return new Promise(function (resolve, reject) {
db.close(function (data) {
resolve({ STATUS: 1, DATA: dbPath });
});
// db.close(function(data){
// return {"STATUS" : 1, "DATA" : dbPath};
// })
}
else{
return {"STATUS" : 1, "DATA" : dbPath};
}

}
catch(e){
if(db){
if(db.open){
return new Promise(function(resolve,reject){
db.close(function(data){
});
// db.close(function(data){
// return {"STATUS" : 1, "DATA" : dbPath};
// })
} else {
return { STATUS: 1, DATA: dbPath };
}
} catch (e) {
if (db) {
if (db.open) {
return new Promise(function (resolve, reject) {
db.close(function (data) {
fs.unlinkSync(dbPath);
resolve({"STATUS" : 0 ,"DATA" : e});
})
resolve({ STATUS: 0, DATA: e });
});
});
// db.close(function(data){
// fs.unlinkSync(dbPath);
// return {"STATUS" : 0 , "DATA": e};
// });
}
}

else{
if(dbPath){
} else {
if (dbPath) {
fs.unlinkSync(dbPath);
}
console.log(e);
return {"STATUS" : 0 , "DATA": e};
}
console.log(e);
return { STATUS: 0, DATA: e };
}
}
}
//CreateDataCollection("TBS",'02');


module.exports = {
CreateDataCollection : CreateDataCollection,
unpackAndInsert : unpackAndInsert
};
CreateDataCollection: CreateDataCollection,
unpackAndInsert: unpackAndInsert,
};

Carregando…
Cancelar
Guardar