77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
|
import ngModule from '../../module';
|
||
|
import Section from 'salix/components/section';
|
||
|
import './style.scss';
|
||
|
|
||
|
class Controller extends Section {
|
||
|
constructor($element, $) {
|
||
|
super($element, $);
|
||
|
this.import = {
|
||
|
file: '',
|
||
|
invoice: null,
|
||
|
buys: []
|
||
|
};
|
||
|
}
|
||
|
|
||
|
onFileChange($event) {
|
||
|
const input = $event.target;
|
||
|
const file = input.files[0];
|
||
|
|
||
|
const reader = new FileReader();
|
||
|
reader.onload = event =>
|
||
|
this.fillData(event.target.result);
|
||
|
reader.readAsText(file, 'UTF-8');
|
||
|
}
|
||
|
|
||
|
fillData(raw) {
|
||
|
this.import.file = raw;
|
||
|
|
||
|
const data = JSON.parse(raw);
|
||
|
const [invoice] = data.invoices;
|
||
|
|
||
|
this.$.$applyAsync(() => {
|
||
|
this.import.invoice = invoice.id_invoice;
|
||
|
this.import.description = invoice.tx_awb;
|
||
|
|
||
|
const boxes = invoice.boxes;
|
||
|
const buys = [];
|
||
|
for (let box of boxes) {
|
||
|
for (let product of box.products) {
|
||
|
const packing = product.nu_stems_bunch * product.nu_bunches;
|
||
|
buys.push({
|
||
|
description: product.nm_product,
|
||
|
size: product.nu_length,
|
||
|
packing: packing,
|
||
|
grouping: product.nu_stems_bunch,
|
||
|
buyingValue: parseFloat(product.mny_rate_stem)
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
this.import.buys = buys;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
onSubmit() {
|
||
|
const params = {buys: this.import.buys};
|
||
|
const query = `Entries/${this.entry.id}/import`;
|
||
|
return this.$http.post(query, params).then(() => {
|
||
|
this.vnApp.showSuccess(this.$t('Data saved!'));
|
||
|
});
|
||
|
}
|
||
|
|
||
|
itemSearchFunc($search) {
|
||
|
return /^\d+$/.test($search)
|
||
|
? {id: $search}
|
||
|
: {name: {like: '%' + $search + '%'}};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Controller.$inject = ['$element', '$scope'];
|
||
|
|
||
|
ngModule.vnComponent('vnEntryBuyImport', {
|
||
|
template: require('./index.html'),
|
||
|
controller: Controller,
|
||
|
bindings: {
|
||
|
worker: '<'
|
||
|
}
|
||
|
});
|