diff --git a/modules/order/back/methods/order/getItemTypeAvailable.js b/modules/order/back/methods/order/getItemTypeAvailable.js index 56f6a8c0e..52a2db5f5 100644 --- a/modules/order/back/methods/order/getItemTypeAvailable.js +++ b/modules/order/back/methods/order/getItemTypeAvailable.js @@ -31,13 +31,36 @@ module.exports = Self => { let stmts = []; let stmt; + stmts.push('DROP TEMPORARY TABLE IF EXISTS tmp.item'); + + stmt = new ParameterizedSQL( + `CREATE TEMPORARY TABLE tmp.item + (PRIMARY KEY (itemFk)) ENGINE = MEMORY + SELECT DISTINCT + i.id AS itemFk, + i.typeFk, + it.categoryFk + FROM vn.item i + JOIN vn.itemType it ON it.id = i.typeFk + JOIN vn.itemCategory ic ON ic.id = it.categoryFk`); + stmts.push(stmt); + let order = await app.models.Order.findById(orderId); stmt = new ParameterizedSQL('call vn.available_calc(?, ?, ?)', [ order.landed, order.addressFk, order.agencyModeFk ]); + + stmts.push(new ParameterizedSQL( + 'CALL vn.catalog_calculate(?, ?, ?)', [ + order.landed, + order.addressFk, + order.agencyModeFk, + ] + )); stmts.push(stmt); + stmt = new ParameterizedSQL(` SELECT it.id, it.name, ic.name categoryName FROM tmp.availableCalc ac @@ -45,6 +68,7 @@ module.exports = Self => { JOIN item i ON i.id = a.item_id JOIN itemType it ON it.id = i.typeFk JOIN itemCategory ic ON ic.id = it.categoryFk + JOIN tmp.ticketCalculateItem tci ON tci.itemFk = i.id WHERE it.categoryFk = ? GROUP BY it.id`, [itemCategoryId] );