feat(docuware): upload deliveryNote file
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
382aad2622
commit
b8fe919b2a
|
@ -1,6 +1,6 @@
|
|||
const got = require('got');
|
||||
const UserError = require('vn-loopback/util/user-error');
|
||||
const request = require('request');
|
||||
const axios = require('axios');
|
||||
|
||||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('upload', {
|
||||
|
@ -24,21 +24,7 @@ module.exports = Self => {
|
|||
description: 'The dialog'
|
||||
}
|
||||
],
|
||||
returns: [
|
||||
{
|
||||
arg: 'body',
|
||||
type: 'file',
|
||||
root: true
|
||||
}, {
|
||||
arg: 'Content-Type',
|
||||
type: 'string',
|
||||
http: {target: 'header'}
|
||||
}, {
|
||||
arg: 'Content-Disposition',
|
||||
type: 'string',
|
||||
http: {target: 'header'}
|
||||
}
|
||||
],
|
||||
returns: [],
|
||||
http: {
|
||||
path: `/:id/upload`,
|
||||
verb: 'POST'
|
||||
|
@ -70,7 +56,6 @@ module.exports = Self => {
|
|||
}
|
||||
};
|
||||
|
||||
try {
|
||||
// get fileCabinetId
|
||||
const fileCabinetResponse = await got.get(`${docuwareUrl}/FileCabinets`, options);
|
||||
const fileCabinetJson = JSON.parse(fileCabinetResponse.body).FileCabinet;
|
||||
|
@ -423,48 +408,24 @@ module.exports = Self => {
|
|||
};
|
||||
|
||||
const uploadUri = `${docuwareUrl}/FileCabinets/${fileCabinetId}/Documents?StoreDialogId=${storeDialogId}`;
|
||||
const optionsUpload = {
|
||||
'method': 'POST',
|
||||
'url': uploadUri,
|
||||
'headers': {
|
||||
|
||||
const FormData = require('form-data');
|
||||
const data = new FormData();
|
||||
|
||||
data.append('document', JSON.stringify(templateJson), 'schema.json');
|
||||
data.append('file[]', deliveryNote[0], 'file.pdf');
|
||||
const uploadOptions = {
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data',
|
||||
'X-File-ModifiedDate': new Date(),
|
||||
'Cookie': cookie
|
||||
'Cookie': cookie,
|
||||
...data.getHeaders()
|
||||
},
|
||||
'formData': {
|
||||
'document': {
|
||||
'value': JSON.stringify(templateJson),
|
||||
'options': {
|
||||
'filename': 'store.json',
|
||||
'contentType': null
|
||||
}
|
||||
},
|
||||
'file[]': {
|
||||
'value': deliveryNote[0],
|
||||
'options': {
|
||||
'filename': 'deliveryNote.pdf',
|
||||
'contentType': deliveryNote[1]
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
return new Promise((resolve, reject) => {
|
||||
request.post(optionsUpload, function(error) {
|
||||
if (error) return reject(error);
|
||||
resolve();
|
||||
return await axios.post(uploadUri, data, uploadOptions)
|
||||
.catch(() => {
|
||||
throw new UserError('Failed to upload file');
|
||||
});
|
||||
});
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return;
|
||||
}
|
||||
} catch (error) {
|
||||
if (error.code === 'ENOENT')
|
||||
throw new UserError('The DOCUWARE PDF document does not exists');
|
||||
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
@ -21,11 +21,11 @@
|
|||
Add turn
|
||||
</vn-item>
|
||||
<vn-item class="dropdown"
|
||||
vn-click-stop="showDeliveryNoteMenu.show($event, 'left')"
|
||||
vn-click-stop="showDeliveryNoteMenu.show($event, 'left'); $ctrl.hasDocuware()"
|
||||
translate>
|
||||
Show Delivery Note...
|
||||
<vn-menu vn-id="showDeliveryNoteMenu">
|
||||
<vn-list>
|
||||
<vn-list ng-if="!$ctrl.hasDocuwareFile">
|
||||
<vn-item
|
||||
ng-click="$ctrl.showPdfDeliveryNote('deliveryNote')"
|
||||
translate>
|
||||
|
@ -41,11 +41,29 @@
|
|||
translate>
|
||||
as CSV
|
||||
</vn-item>
|
||||
<div class="spinner-wrapper" ng-if="$ctrl.isLoadingDocuware">
|
||||
<vn-spinner enable="$ctrl.isLoadingDocuware"></vn-spinner>
|
||||
Loading Docuware info
|
||||
</div>
|
||||
</vn-list>
|
||||
<vn-list ng-if="$ctrl.hasDocuwareFile">
|
||||
<a class="vn-item"
|
||||
ng-if="$ctrl.hasDocuwareFile"
|
||||
href='api/Docuwares/{{$ctrl.ticket.id}}/download/deliveryClient/findTicket?access_token={{$ctrl.vnToken.token}}'
|
||||
target="_blank"
|
||||
translate>
|
||||
as PDF
|
||||
</a>
|
||||
<vn-item
|
||||
ng-click="$ctrl.showCsvDeliveryNote()"
|
||||
translate>
|
||||
as CSV
|
||||
</vn-item>
|
||||
</vn-list>
|
||||
</vn-menu>
|
||||
</vn-item>
|
||||
<vn-item class="dropdown"
|
||||
vn-click-stop="sendDeliveryNoteMenu.show($event, 'left')"
|
||||
vn-click-stop="sendDeliveryNoteMenu.show($event, 'left'); $ctrl.hasDocuware()"
|
||||
translate>
|
||||
Send Delivery Note...
|
||||
<vn-menu vn-id="sendDeliveryNoteMenu">
|
||||
|
@ -55,6 +73,11 @@
|
|||
translate>
|
||||
Send PDF
|
||||
</vn-item>
|
||||
<vn-item
|
||||
ng-click="$ctrl.uploadDocuware()"
|
||||
translate>
|
||||
Send PDF to Tablet
|
||||
</vn-item>
|
||||
<vn-item
|
||||
ng-click="sendCsvConfirmation.show({email: $ctrl.ticket.client.email})"
|
||||
translate>
|
||||
|
@ -63,40 +86,6 @@
|
|||
</vn-list>
|
||||
</vn-menu>
|
||||
</vn-item>
|
||||
<vn-item class="dropdown"
|
||||
vn-click-stop="showDeliveryNoteMenu.show($event, 'left'); $ctrl.hasDocuware()"
|
||||
translate>
|
||||
Docuware options...
|
||||
<vn-menu vn-id="showDeliveryNoteMenu">
|
||||
<vn-list ng-if="$ctrl.isLoadingDocuware">
|
||||
<div class="spinner-wrapper">
|
||||
<vn-spinner enable="$ctrl.isLoadingDocuware"></vn-spinner>
|
||||
Loading Docuware info
|
||||
</div>
|
||||
</vn-list>
|
||||
<vn-list ng-if="!$ctrl.isLoadingDocuware">
|
||||
<a class="vn-item"
|
||||
ng-if="$ctrl.hasDocuwareFile"
|
||||
href='api/Docuwares/{{$ctrl.ticket.id}}/download/deliveryClient/findTicket?access_token={{$ctrl.vnToken.token}}'
|
||||
target="_blank"
|
||||
translate>
|
||||
Show PDF
|
||||
</a>
|
||||
<vn-item
|
||||
ng-if="!$ctrl.hasDocuwareFile"
|
||||
ng-click="$ctrl.uploadDocuware()"
|
||||
translate>
|
||||
Upload Salix PDF
|
||||
</vn-item>
|
||||
<vn-item
|
||||
ng-if="$ctrl.hasDocuwareFile"
|
||||
ng-click="$ctrl.sendDocuwarePdfDeliveryNote({email: $ctrl.ticket.client.email})"
|
||||
translate>
|
||||
Send PDF
|
||||
</vn-item>
|
||||
</vn-list>
|
||||
</vn-menu>
|
||||
</vn-item>
|
||||
<vn-item
|
||||
ng-click="$ctrl.showPdfDeliveryNote('proforma')"
|
||||
translate>
|
||||
|
|
Loading…
Reference in New Issue