UNPKG

tplus-pos

Version:

pos module

146 lines (121 loc) 7.31 kB
'use strict'; 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