upload po endpoint

This commit is contained in:
Rizki
2026-03-06 15:24:37 +07:00
parent 4d94263a93
commit 17abbe9b73
4 changed files with 2690 additions and 2128 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1249,3 +1249,44 @@ exports.submitpoadj = (req, res) => {
poadapter.sendResponse(502, apireshandler, res); poadapter.sendResponse(502, apireshandler, res);
} }
}; };
exports.uploadPOSAP = (req, res) => {
try {
let status = req.body.status;
let ext = req.body.filename.split(".")[1];
let filename = req.body.filename + "_" + req.nik + "_" + Date.now() + "." + ext;
fs.rename(
process.env.BASEPATH + "/assets/sap-po/" + req.body.filename,
process.env.BASEPATH + "/assets/sap-po/" + filename,
function (err) {
if (err) {
poadapter.sendResponse(500, err, res);
} else {
console.log('filename', filename)
poadapter.queryUpdatePoHeaderWithFile(req, filename, function (err, resdata) {
console.log("err upload PO =>", err);
let statusCode = resdata != null ? resdata.meta.code : 200;
if (err) {
statusCode = 500;
poadapter.sendResponse(statusCode, data, res);
} else {
poadapter.queryUpdatePoNumber(req, "Success Bypass", function (err, data) {
console.log("err queryUpdatePoNumber =>", err);
let statusCode = data != null ? data.meta.code : 200;
if (err) statusCode = 500;
poadapter.sendResponse(statusCode, data, res);
});
}
});
}
},
);
} catch (err) {
apireshandler.meta.code = 502;
apireshandler.meta.message = " [123] : PO controller, " + err.toString();
poadapter.sendResponse(502, apireshandler, res);
}
};

View File

@ -0,0 +1,74 @@
const multer = require('multer');
const path = require('path');
var imageStorage = multer.diskStorage({
// Destination to store image
// destination: 'assets/images/'+pathDir,
destination: (req, file, cb) => {
// console.log(req.get("path"));
// let pathdir = req.get("path");
cb(null, "assets/sap-po/")
// cb(null, "assets/words/" + pathdir + "/")
},
filename : (req, file, cb) => {
// let filename=file.originalname.split(".")[0];
let nik = req.nik;
let filedoc = 'sap_po_'+nik+'_' + Date.now() + path.extname(file.originalname);
// req.body.filedoc = filedoc;
// cb(null, filedoc);
req.body.filename = filedoc;
cb(null, filedoc);
// file.fieldname is name of the field (image)
// path.extname get the uploaded file extension
}
});
var imageUpload = multer({
storage: imageStorage,
limits: {
fileSize: '25mb' // 1000000 Bytes = 5 MB
},
fileFilter(req, file, cb) {
if (!file.originalname.match(/\.(docx|pdf|PDF)$/)) {
// if (!file.originalname.match(/\.(docx)$/)) {
// upload only png and jpg format
req.fileValidationError = "Please upload a word document in ( docx ) / pdf file max 25 mb";
cb(new Error('Please upload a word document in ( docx ) / pdf file max 25 mb'), false);
}
else{
cb(null, true);
}
}
}).single("file-doc");
module.exports = (req, res, next) => {
try {
imageUpload(req,res, function(err){
try {
// if (err || err instanceof multer.MulterError){
if (err){
res.status(500).send({
"meta":{
"auth": false,
"code" : 500,
"message" : req.fileValidationError || err.toString(),
},
"data" :[]
});
} else {
next();
// console.log('The filename is ' + res.req.file.filename);
}
} catch (error) {
console.log("error "+error);
}
});
} catch (error) {
console.log("error " + error);
error.message = error.message;
error.statusCode = 500;
throw error;
}
}

View File

@ -4,6 +4,9 @@ const pocontroller = require('../controllers/po');
const jwtauth = require('../middlewares/auth.js'); const jwtauth = require('../middlewares/auth.js');
const uploadfile = require('../middlewares/multer/po-doc.js'); const uploadfile = require('../middlewares/multer/po-doc.js');
const uploadfileBoq = require('../middlewares/multer/poboq-csv.js'); const uploadfileBoq = require('../middlewares/multer/poboq-csv.js');
const uploadfilePO = require('../middlewares/multer/singlepo.js');
const router=express.Router(); const router=express.Router();
router.get('/getlistvendor',[jwtauth], pocontroller.getListVendor); router.get('/getlistvendor',[jwtauth], pocontroller.getListVendor);
@ -31,6 +34,8 @@ router.post('/releaseposap',[jwtauth], pocontroller.releasePOSAP);
router.post('/unreleaseposap',[jwtauth], pocontroller.unreleasePOSAP); router.post('/unreleaseposap',[jwtauth], pocontroller.unreleasePOSAP);
router.post('/createheaderposap',[jwtauth], pocontroller.createHeaderPOSAP); router.post('/createheaderposap',[jwtauth], pocontroller.createHeaderPOSAP);
// === Upload PO SAP
router.post('/uploadpo',[jwtauth, uploadfilePO], pocontroller.uploadPOSAP);
// === PO Adjustment // === PO Adjustment
router.post('/newpoadj',[jwtauth, uploadfile], pocontroller.newpoadjustment); router.post('/newpoadj',[jwtauth, uploadfile], pocontroller.newpoadjustment);