refs #6915 test_master24_8 #2067
|
@ -19,6 +19,10 @@ BEGIN
|
||||||
DECLARE vItemFk INT;
|
DECLARE vItemFk INT;
|
||||||
|
|
||||||
SELECT barcodeToItem(vBarcode) INTO vItemFk;
|
SELECT barcodeToItem(vBarcode) INTO vItemFk;
|
||||||
|
|
||||||
|
SET vPacking = COALESCE(vPacking, GREATEST(vn.itemPacking(vBarcode,vWarehouseFk), 1));
|
||||||
|
|
||||||
|
SET vQuantity = vQuantity * vPacking;
|
||||||
|
|
||||||
IF (SELECT COUNT(*) FROM shelving WHERE code = vShelvingFk COLLATE utf8_unicode_ci) = 0 THEN
|
IF (SELECT COUNT(*) FROM shelving WHERE code = vShelvingFk COLLATE utf8_unicode_ci) = 0 THEN
|
||||||
|
|
||||||
|
|
|
@ -37,27 +37,20 @@ module.exports = Self => {
|
||||||
myOptions.transaction = tx;
|
myOptions.transaction = tx;
|
||||||
}
|
}
|
||||||
|
|
||||||
const discardItems = [];
|
const discardItems = new Set();
|
||||||
|
const itemCounts = items.reduce((acc, item) => {
|
||||||
|
acc[item] = (acc[item] || 0) + 1;
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (let item of items) {
|
for (let item of items) {
|
||||||
if (!discardItems.includes(item)) {
|
if (!discardItems.has(item)) {
|
||||||
let quantity = items.reduce((acc, cur) => {
|
let quantity = itemCounts[item];
|
||||||
return acc + (cur === item ? 1 : 0);
|
discardItems.add(item);
|
||||||
}, 0);
|
|
||||||
discardItems.push(item);
|
|
||||||
|
|
||||||
const [result] = await Self.rawSql('SELECT vn.itemPacking(?, ?) itemPacking',
|
await Self.rawSql('CALL vn.itemShelving_add(?, ?, ?, NULL, NULL, NULL, ?)',
|
||||||
[item, warehouseFk], myOptions);
|
[shelvingFk, item, quantity, warehouseFk], myOptions
|
||||||
let packing;
|
|
||||||
|
|
||||||
if (result) packing = result.itemPacking;
|
|
||||||
if (!packing) packing = 1;
|
|
||||||
|
|
||||||
quantity = quantity * packing;
|
|
||||||
|
|
||||||
await Self.rawSql('CALL vn.itemShelving_add(?, ?, ?, NULL, NULL, ?, ?)',
|
|
||||||
[shelvingFk, item, quantity, packing, warehouseFk], myOptions
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const {models} = require('vn-loopback/server/server');
|
const {models} = require('vn-loopback/server/server');
|
||||||
const LoopBackContext = require('loopback-context');
|
const LoopBackContext = require('loopback-context');
|
||||||
|
|
||||||
fdescribe('ItemShelving makeMulti()', () => {
|
describe('ItemShelving makeMulti()', () => {
|
||||||
const warehouseFk = 1;
|
const warehouseFk = 1;
|
||||||
let ctx;
|
let ctx;
|
||||||
let options;
|
let options;
|
||||||
|
|
Loading…
Reference in New Issue