tplus-pos
Version:
pos module
93 lines (75 loc) • 4.08 kB
JavaScript
;
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