UNPKG

tplus-pos

Version:

pos module

93 lines (75 loc) 4.08 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.CalcEnablePromotionProcessBlock = undefined; var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _Enum = require('../../../commom/Enum'); var _QuantityMeetEnableProcessor = require('./calcmeet/QuantityMeetEnableProcessor'); var _AmountMeetEnableProcessor = require('./calcmeet/AmountMeetEnableProcessor'); var _UpdateSalesRetailDetailProcessor = require('./UpdateSalesRetailDetailProcessor'); var _CalcRepeatFullGiftProcessor = require('./single/CalcRepeatFullGiftProcessor'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } //计算数量满足类可用促销方式 var CalcEnablePromotionProcessBlock = exports.CalcEnablePromotionProcessBlock = function () { function CalcEnablePromotionProcessBlock() { (0, _classCallCheck3.default)(this, CalcEnablePromotionProcessBlock); } (0, _createClass3.default)(CalcEnablePromotionProcessBlock, null, [{ key: 'execute', value: function execute(retailDto, promotionDto, promotionList) { if (promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_02 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_06 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_04) { promotionList.forEach(function (item) { item.IsEnable = false; }); } else { //首先计算设置自己的促销方式为不可用 var promotionInfo = promotionList.find(function (it) { return it.ID === promotionDto.ID; }); promotionInfo.IsEnable = false; promotionList.filter(function (it) { return it.IsEnable; }).forEach(function (item) { //更新促销影响明细行信息 _UpdateSalesRetailDetailProcessor.UpdateSalesRetailDetailProcessor.execute(retailDto, item, promotionDto); if (item.RetailDetails.length === 0) { item.IsEnable = false; return false; } //处理单品满赠,成倍赠送的情况 if (item.PromotionType == _Enum.PromotionType.DR_PromotionType_05 && item.IsMultipleGift) { _CalcRepeatFullGiftProcessor.CalcRepeatFullGiftProcessor.execute(item); if (item.EffectQuantity == 0) { item.IsEnable = false; return false; } } }); //计算金额满足的促销是否满足条件 var amountmeetpromotions = promotionList.filter(function (it) { return it.IsEnable && it.MeetCondition == _Enum.MeetCondition.DR_MeetCondition_01; }); if (amountmeetpromotions.length > 0) { _AmountMeetEnableProcessor.AmountMeetEnableProcessor.execute(amountmeetpromotions); } //计算数量满足类的促销是否满足条件 var quantitymeeetpromotions = promotionList.filter(function (it) { return it.IsEnable && it.MeetCondition == _Enum.MeetCondition.DR_MeetCondition_00; }); if (quantitymeeetpromotions.length > 0) { _QuantityMeetEnableProcessor.QuantityMeetEnableProcessor.execute(quantitymeeetpromotions); } } } }]); return CalcEnablePromotionProcessBlock; }(); //计算金额满足类可用促销方式 /** * 计算可用的促销方式 */ //# sourceMappingURL=CalcEnablePromotionProcessBlock.js.map