diff --git a/adapters/promotion/default/promotionAdapter.js b/adapters/promotion/default/promotionAdapter.js index 4748b4c8..65a63bd7 100644 --- a/adapters/promotion/default/promotionAdapter.js +++ b/adapters/promotion/default/promotionAdapter.js @@ -94,12 +94,15 @@ class PromotionAdapter extends AbstractPromotionAdapter_1.default { const order = target; if (order.promotionCode) { const promotionCode = order.promotionCode; - if (promotionCode.promotion.length) { + if (Array.isArray(promotionCode.promotion)) { promotionCode.promotion.forEach((p) => { p.sortOrder = -Infinity; filteredByCondition.push(p); }); } + else { + sails.log.debug(`PromotionAdapter: promotionCode.promotion should be array: \n${JSON.stringify(promotionCode, null, 2)}`); + } } } // return first isJoint = false diff --git a/adapters/promotion/default/promotionAdapter.ts b/adapters/promotion/default/promotionAdapter.ts index 0804c27a..349d29de 100644 --- a/adapters/promotion/default/promotionAdapter.ts +++ b/adapters/promotion/default/promotionAdapter.ts @@ -107,11 +107,13 @@ export class PromotionAdapter extends AbstractPromotionAdapter { const order = target as Order; if (order.promotionCode) { const promotionCode = order.promotionCode as PromotionCode - if (promotionCode.promotion.length) { + if (Array.isArray(promotionCode.promotion)) { (promotionCode.promotion as Promotion[]).forEach((p) => { p.sortOrder = -Infinity; filteredByCondition.push(p) }); + } else { + sails.log.debug(`PromotionAdapter: promotionCode.promotion should be array: \n${JSON.stringify(promotionCode, null, 2)}`) } } } diff --git a/models/Order.js b/models/Order.js index 45da4a85..32d6c784 100644 --- a/models/Order.js +++ b/models/Order.js @@ -1119,8 +1119,9 @@ let Model = { order.promotionCode = await PromotionCode.findOne({ id: order.promotionCode }).populate('promotion'); } else { + sails.log.debug(`Count: promocode [${order.promotionCodeString}] expired, order [${order.id}].`); order.promotionCode = null; - order.promotionCodeString = null; + order.promotionCodeDescription = "Promocode expired"; order.promotionCodeCheckValidTill = null; } } @@ -1128,6 +1129,10 @@ let Model = { sails.log.error(`PromotionAdapter > Problem with parse Date`); } } + else { + order.promotionCode = null; + order.promotionCodeCheckValidTill = null; + } let orderPopulate = { ...order }; orderPopulate.dishes = orderDishesForPopulate; /** @@ -1143,6 +1148,7 @@ let Model = { orderPopulate.discountTotal = orederPROM.discountTotal; order = orderPopulate; let promotionOrderToSave = { + promotionCodeDescription: order.promotionCodeDescription, promotionState: order.promotionState, promotionUnorderable: order.promotionUnorderable, discountTotal: order.discountTotal, diff --git a/models/Order.ts b/models/Order.ts index 8c2fb297..45939190 100644 --- a/models/Order.ts +++ b/models/Order.ts @@ -1354,19 +1354,23 @@ let Model = { // If promocode is valid and allowed if (order.promotionCode !== null && order.promotionCodeCheckValidTill !== null) { - const currentDate = new Date(); + const currentDate = new Date(); try { const promotionEndDate = new Date(order.promotionCodeCheckValidTill); if (promotionEndDate > currentDate) { order.promotionCode = await PromotionCode.findOne({ id: order.promotionCode as string }).populate('promotion'); } else { + sails.log.debug(`Count: promocode [${order.promotionCodeString}] expired, order [${order.id}].`) order.promotionCode = null - order.promotionCodeString = null; + order.promotionCodeDescription = "Promocode expired" order.promotionCodeCheckValidTill = null } } catch (error) { sails.log.error(`PromotionAdapter > Problem with parse Date`) } + } else { + order.promotionCode = null + order.promotionCodeCheckValidTill = null } @@ -1390,6 +1394,7 @@ let Model = { let promotionOrderToSave = { + promotionCodeDescription: order.promotionCodeDescription, promotionState: order.promotionState, promotionUnorderable: order.promotionUnorderable, discountTotal: order.discountTotal,