tplus-pos
Version:
pos module
99 lines (74 loc) • 4.14 kB
JavaScript
;
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