tplus-pos
Version:
pos module
146 lines (121 loc) • 7.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.RunSelfSinglePromotionProcessBlock = undefined;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _CancelSelfSinglePromotionProcessBlock = require('./CancelSelfSinglePromotionProcessBlock');
var _RunSingleDiscountProcessBlock = require('../single/RunSingleDiscountProcessBlock');
var _SelfSingleCashBackProcessBlock = require('./SelfSingleCashBackProcessBlock');
var _SelfSingleFullGiftProcessBlock = require('./SelfSingleFullGiftProcessBlock');
var _Enum = require('../../../../commom/Enum');
var _MergeDetailsProcessorBlock = require('../../MergeDetailsProcessorBlock');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//价格改变事件
/**
* 自动执行自助收银单品促销
*
* @export
* @class RunSelfSinglePromotionProcessBlock
*/
var RunSelfSinglePromotionProcessBlock = exports.RunSelfSinglePromotionProcessBlock = function () {
function RunSelfSinglePromotionProcessBlock() {
(0, _classCallCheck3.default)(this, RunSelfSinglePromotionProcessBlock);
}
(0, _createClass3.default)(RunSelfSinglePromotionProcessBlock, null, [{
key: 'execute',
value: function execute(retailDto, detailDto, isNew) {
var _this = this;
var giftDetailList = [];
_MergeDetailsProcessorBlock.MergeDetailsProcessorBlock.execute(retailDto);
//和这明细行相关的存货清除单品促销
if (detailDto) {
var isPromotionPresent = JSON.getCellValue(detailDto, "isPromotionPresent");
//是否执行过单品返现或者单品满赠促销
var isExec = retailDto.RetailDetails.some(function (it) {
return it.Idinventory == detailDto.Idinventory && it.Idunit == detailDto.Idunit && it.PromotionTypeStr && (it.PromotionTypeStr.indexOf(_Enum.PromotionSign.SingleCashBackSign) > -1 || it.PromotionTypeStr.indexOf(_Enum.PromotionSign.SingleFullGiftSign) > -1);
});
if (isExec && !isPromotionPresent) {
//执行过
_CancelSelfSinglePromotionProcessBlock.CancelSelfSinglePromotionProcessBlock.execute(retailDto, detailDto); //取消单品促销方案
}
//优先执行单品打折促销方案
_RunSingleDiscountProcessBlock.RunSingleDiscountProcessBlock.execute(retailDto, detailDto, isNew);
//执行单品返现
_SelfSingleCashBackProcessBlock.SelfSingleCashBackProcessBlock.execute(retailDto, detailDto, this.GetPromotionList(detailDto, _Enum.PromotionType.DR_PromotionType_01));
// //执行单品满赠
// //SelfSingleFullGiftProcessBlock.execute(retailDto, detailDto, this.GetPromotionList(detailDto, PromotionType.DR_PromotionType_05));
} else {
retailDto.RetailDetails.forEach(function (item) {
//是否执行过单品返现或者单品满赠促销
var isPromotionPresent = JSON.getCellValue(item, "isPromotionPresent");
if (!isPromotionPresent && item.PromotionTypeStr && (item.PromotionTypeStr.indexOf(_Enum.PromotionSign.SingleCashBackSign) > -1 || item.PromotionTypeStr.indexOf(_Enum.PromotionSign.SingleFullGiftSign) > -1)) {
//执行过
_CancelSelfSinglePromotionProcessBlock.CancelSelfSinglePromotionProcessBlock.execute(retailDto, item); //取消单品促销方案
}
//优先执行单品打折促销方案
_RunSingleDiscountProcessBlock.RunSingleDiscountProcessBlock.execute(retailDto, item, isNew);
//执行单品返现
_SelfSingleCashBackProcessBlock.SelfSingleCashBackProcessBlock.execute(retailDto, item, _this.GetPromotionList(item, _Enum.PromotionType.DR_PromotionType_01));
//执行单品满赠
// SelfSingleFullGiftProcessBlock.execute(retailDto, item, this.GetPromotionList(item, PromotionType.DR_PromotionType_05));
});
}
//执行单品满赠促销(一旦发生改变,现在是需要全部执行一次单品满赠,后续需要考虑优化)
//找到执行过的促销赠品的明细数据,然后清除
giftDetailList = retailDto.RetailDetails.filter(function (it) {
return it.PromotionTypeStr && it.PromotionTypeStr.indexOf(_Enum.PromotionSign.SingleFullGiftSign) > -1;
});
giftDetailList.forEach(function (giftDto) {
_CancelSelfSinglePromotionProcessBlock.CancelSelfSinglePromotionProcessBlock.execute(retailDto, giftDto); //取消单品促销方案
//优先执行单品打折促销方案
_RunSingleDiscountProcessBlock.RunSingleDiscountProcessBlock.execute(retailDto, giftDto, isNew);
});
var i = 0;
while (i < retailDto.RetailDetails.length) {
var _detailDto = retailDto.RetailDetails[i];
if (!_detailDto.IsPresent) {
_SelfSingleFullGiftProcessBlock.SelfSingleFullGiftProcessBlock.execute(retailDto, _detailDto, this.GetPromotionList(_detailDto, _Enum.PromotionType.DR_PromotionType_05));
}
i++;
}
// let i=1;
// retailDto.RetailDetails.forEach(item => {
// //是否执行过单品返现或者单品满赠促销
// // let isPromotionPresent = JSON.getCellValue(item, "isPromotionPresent")
// // if (isPromotionPresent) {
// // //处理赠品出现多的情况,需要拆行
// // SpiltGiftsDetailProcessBlock.execute(retailDto, item);
// // return;
// // }
// //执行单品满赠
// alert(i)
// i=i+1;
// })
}
//获取促销信息
}, {
key: 'GetPromotionList',
value: function GetPromotionList(detailDto, promotionType) {
var singlePromotionList = null;
//获取单品返现促销方式
var singlePromotionListStr = JSON.getCellValue(detailDto, "selfsinglepromotionlist");
console.log('selfsinglepromotionlist-->' + singlePromotionListStr);
if (!singlePromotionListStr) {
return singlePromotionList;
}
singlePromotionList = JSON.parse(singlePromotionListStr);
if (singlePromotionList.length == 0) {
return singlePromotionList;
}
return singlePromotionList.filter(function (it) {
return it.PromotionType == promotionType;
});
}
}]);
return RunSelfSinglePromotionProcessBlock;
}();
//# sourceMappingURL=RunSelfSinglePromotionProcessBlock.js.map