7383-testToMaster #2445
|
@ -1,7 +1,7 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelving_add`(IN vShelvingFk VARCHAR(8), IN vBarcode VARCHAR(22), IN vQuantity INT, IN vPackagingFk VARCHAR(10), IN vGrouping INT, IN vPacking INT, IN vWarehouseFk INT)
|
||||
BEGIN
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Añade registro o lo actualiza si ya existe.
|
||||
|
@ -13,34 +13,24 @@ BEGIN
|
|||
* @param vGrouping el grouping del producto en itemShelving, NULL para coger el de la ultima compra
|
||||
* @param vPacking el packing del producto, NULL para coger el de la ultima compra
|
||||
* @param vWarehouseFk indica el sector
|
||||
*
|
||||
*
|
||||
**/
|
||||
|
||||
DECLARE vItemFk INT;
|
||||
|
||||
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
|
||||
|
||||
INSERT IGNORE INTO parking(code) VALUES(vShelvingFk);
|
||||
INSERT INTO shelving(code, parkingFk)
|
||||
SELECT vShelvingFk, id
|
||||
FROM parking
|
||||
WHERE `code` = vShelvingFk COLLATE utf8_unicode_ci;
|
||||
|
||||
END IF;
|
||||
|
||||
IF (SELECT COUNT(*) FROM itemShelving
|
||||
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
||||
AND itemFk = vItemFk
|
||||
IF (SELECT COUNT(*) FROM itemShelving
|
||||
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk
|
||||
AND itemFk = vItemFk
|
||||
AND packing = vPacking) = 1 THEN
|
||||
|
||||
UPDATE itemShelving
|
||||
SET visible = visible+vQuantity
|
||||
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk AND itemFk = vItemFk AND packing = vPacking;
|
||||
WHERE shelvingFk COLLATE utf8_unicode_ci = vShelvingFk AND itemFk = vItemFk AND packing = vPacking;
|
||||
|
||||
ELSE
|
||||
CALL cache.last_buy_refresh(FALSE);
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
ALTER TABLE vn.parking
|
||||
ADD CONSTRAINT chkParkingCodeFormat CHECK (CHAR_LENGTH(code) > 4 AND code LIKE '%-%');
|
||||
|
||||
ALTER TABLE vn.parking MODIFY COLUMN sectorFk int(11) NOT NULL;
|
||||
|
||||
ALTER TABLE vn.shelving
|
||||
ADD CONSTRAINT chkShelvingCodeFormat CHECK (CHAR_LENGTH(code) <= 4 AND code NOT LIKE '%-%');
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
const { models } = require('vn-loopback/server/server');
|
||||
const {models} = require('vn-loopback/server/server');
|
||||
const LoopBackContext = require('loopback-context');
|
||||
|
||||
// #6276
|
||||
describe('ItemShelving upsertItem()', () => {
|
||||
const warehouseFk = 1;
|
||||
let ctx;
|
||||
let options;
|
||||
let tx;
|
||||
|
||||
beforeEach(async () => {
|
||||
beforeEach(async() => {
|
||||
ctx = {
|
||||
req: {
|
||||
accessToken: { userId: 9 },
|
||||
headers: { origin: 'http://localhost' }
|
||||
accessToken: {userId: 9},
|
||||
headers: {origin: 'http://localhost'}
|
||||
},
|
||||
args: {}
|
||||
};
|
||||
|
@ -21,35 +20,35 @@ describe('ItemShelving upsertItem()', () => {
|
|||
active: ctx.req
|
||||
});
|
||||
|
||||
options = { transaction: tx };
|
||||
options = {transaction: tx};
|
||||
tx = await models.ItemShelving.beginTransaction({});
|
||||
options.transaction = tx;
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
afterEach(async() => {
|
||||
await tx.rollback();
|
||||
});
|
||||
|
||||
it('should add two new records', async () => {
|
||||
const shelvingFk = 'ZPP';
|
||||
it('should add two new records', async() => {
|
||||
const shelvingFk = 'GVC';
|
||||
const items = [1, 1, 1, 2];
|
||||
|
||||
await models.ItemShelving.upsertItem(ctx, shelvingFk, items, warehouseFk, options);
|
||||
const itemShelvings = await models.ItemShelving.find({ where: { shelvingFk } }, options);
|
||||
const itemShelvings = await models.ItemShelving.find({where: {shelvingFk}}, options);
|
||||
|
||||
expect(itemShelvings.length).toEqual(2);
|
||||
});
|
||||
|
||||
it('should update the visible items', async () => {
|
||||
it('should update the visible items', async() => {
|
||||
const shelvingFk = 'GVC';
|
||||
const items = [2, 2];
|
||||
const { visible: visibleItemsBefore } = await models.ItemShelving.findOne({
|
||||
where: { shelvingFk, itemFk: items[0] }
|
||||
const {visible: visibleItemsBefore} = await models.ItemShelving.findOne({
|
||||
where: {shelvingFk, itemFk: items[0]}
|
||||
}, options);
|
||||
await models.ItemShelving.upsertItem(ctx, shelvingFk, items, warehouseFk, options);
|
||||
|
||||
const { visible: visibleItemsAfter } = await models.ItemShelving.findOne({
|
||||
where: { shelvingFk, itemFk: items[0] }
|
||||
const {visible: visibleItemsAfter} = await models.ItemShelving.findOne({
|
||||
where: {shelvingFk, itemFk: items[0]}
|
||||
}, options);
|
||||
|
||||
expect(visibleItemsAfter).toEqual(visibleItemsBefore + 2);
|
||||
|
|
Loading…
Reference in New Issue