UNPKG

tplus-pos

Version:

pos module

99 lines (74 loc) 4.14 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.SpiltGiftsDetailProcessBlock = undefined; var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _REAlgorithmAdapter2 = require('../../../../commom/REAlgorithmAdapter'); var _REAlgorithmAdapter3 = _interopRequireDefault(_REAlgorithmAdapter2); var _QuantityChangeProcessorBlock = require('../../quantity/QuantityChangeProcessorBlock'); var _MergeDetailsProcessorBlock = require('../../MergeDetailsProcessorBlock'); var _DetailCodeProcessor = require('../../DetailCodeProcessor'); var _cloneDeep2 = require('lodash/cloneDeep'); var _cloneDeep3 = _interopRequireDefault(_cloneDeep2); var _mobx = require('mobx'); var _tplusPoslogin = require('tplus-poslogin'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SpiltGiftsDetailProcessBlock = exports.SpiltGiftsDetailProcessBlock = function () { function SpiltGiftsDetailProcessBlock() { (0, _classCallCheck3.default)(this, SpiltGiftsDetailProcessBlock); } (0, _createClass3.default)(SpiltGiftsDetailProcessBlock, null, [{ key: 'execute', value: function execute(retailDto, detailDto) { //找出和这赠品有关的促销方案以及明细行信息 var maxGiftQuantity = JSON.getCellValue(detailDto, "maxgiftquantity"); var detailList = retailDto.RetailDetails.filter(function (it) { return it.Idinventory == detailDto.Idinventory && it.Idunit == detailDto.Idunit && JSON.getCellValue(it, "isPromotionPresent") && it.PromotionCode && it.PromotionCode.indexOf(detailDto.PromotionCode) > -1; }); var totalQuantity = detailList.Sum("Quantity");; if (!maxGiftQuantity || totalQuantity <= maxGiftQuantity) { return; } //多了需要拆行,拆当前行 var quantity = Math.Minus(totalQuantity, maxGiftQuantity); detailDto.Quantity = Math.Minus(maxGiftQuantity, Math.Minus(totalQuantity, detailDto.Quantity)); //剩下的数量要拆行 var newdetailDto = (0, _cloneDeep3.default)((0, _mobx.toJS)(detailDto)); newdetailDto.Code = '9999'; newdetailDto.Quantity = quantity; _QuantityChangeProcessorBlock.QuantityChangeProcessorBlock.execute(retailDto, detailDto, detailDto.Quantity, { isNotExecRunSingleDiscountProcessBlock: true, isNotExecAlgorithm: true }); //剩余的需要恢复原价 newdetailDto.IsPresent = false; newdetailDto.DiscountRate = 1; newdetailDto.PromotionType = null; newdetailDto.IsUseIntegralAndCash = false; newdetailDto.IsUseStorage = false; newdetailDto.IsMemberIntegralUsedPromotion = true; newdetailDto.PromotionID = null; newdetailDto.PromotionCode = null; newdetailDto.PromotionDetails = []; newdetailDto.PromotionTypeStr = ''; newdetailDto.PromotionIdStr = ''; newdetailDto.PromotionCode = ''; _QuantityChangeProcessorBlock.QuantityChangeProcessorBlock.execute(retailDto, newdetailDto, newdetailDto.Quantity, { isNotExecRunSingleDiscountProcessBlock: true, isNotExecAlgorithm: true }); var _REAlgorithmAdapter = new _REAlgorithmAdapter3.default(retailDto); _REAlgorithmAdapter.DiscountRateChange(newdetailDto); retailDto.RetailDetails.push(newdetailDto); _MergeDetailsProcessorBlock.MergeDetailsProcessorBlock.execute(retailDto); _DetailCodeProcessor.DetailCodeProcessor.execute(retailDto); } }]); return SpiltGiftsDetailProcessBlock; }(); /** * 对赠品行进行拆行 * * @export * @class SpiltGiftsDetailProcessBlock */ //价格改变事件 //# sourceMappingURL=SpiltGiftsDetailProcessBlock.js.map