const Component = require(`vn-print/core/component`); const reportBody = new Component('report-body'); const qrcode = require('qrcode'); const UserError = require('vn-loopback/util/user-error'); module.exports = { name: 'previa-label', async serverPrefetch() { this.previa = await this.fetchPrevia(this.id); this.sector = await this.fetchSector(this.id); this.barcode = await this.getBarcodeBase64(this.id); if (this.previa) this.previa = this.previa[0]; if (!this.sector) throw new UserError('Something went wrong - no sector found'); }, methods: { fetchPrevia(id) { return this.findOneFromDef('previa', [id]); }, getBarcodeBase64(id) { const data = String(id); return qrcode.toDataURL(data, {margin: 0}); }, fetchSector(id) { return this.findOneFromDef('sector', [id]); } }, components: { 'report-body': reportBody.build() }, props: { id: { type: Number, required: true, description: 'The saleGroupFk id' }, } };