tplus-pos
Version:
pos module
117 lines (92 loc) • 4.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.XPrieceProcessBlock = 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 _UpdateRetailDetailProcessor = require('../UpdateRetailDetailProcessor');
var _MergeDetailsProcessorBlock = require('../../MergeDetailsProcessorBlock');
var _DetailCodeProcessor = require('../../DetailCodeProcessor');
var _QuantityChangeProcessorBlock = require('../../quantity/QuantityChangeProcessorBlock');
var _cloneDeep2 = require('lodash/cloneDeep');
var _cloneDeep3 = _interopRequireDefault(_cloneDeep2);
var _mobx = require('mobx');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//更新零售明细行促销信息
var XPrieceProcessBlock = exports.XPrieceProcessBlock = function () {
function XPrieceProcessBlock() {
(0, _classCallCheck3.default)(this, XPrieceProcessBlock);
}
(0, _createClass3.default)(XPrieceProcessBlock, null, [{
key: 'execute',
value: function execute(retailDto, promotionDto, isDetail) {
var salesDetailCount = 0;
var residue = 0;
var start = 0;
var detailDTO = {};
var salesPromotionDetail = {};
var promotionDetails = [];
if (isDetail) {
promotionDetails = promotionDto.Details;
salesDetailCount = promotionDetails.length;
} else {
promotionDetails = promotionDto.SubsDetails;
salesDetailCount = promotionDetails.length;
}
//按照含税单价倒序
promotionDto.RetailDetails.sort(function (a, b) {
return b.TaxPrice - a.TaxPrice;
});
var maxindex = retailDto.RetailDetails.length;
var _loop = function _loop(index) {
var qunatity = promotionDto.RetailDetails[index].Quantity;
for (var i = 1 + start; i <= qunatity + start; i++) {
var item = retailDto.RetailDetails.find(function (it) {
return it.Code == promotionDto.RetailDetails[index].Code;
});
detailDTO = (0, _cloneDeep3.default)((0, _mobx.toJS)(item));
detailDTO.Quantity = 1;
detailDTO.Code = (i + maxindex).toString();
residue = i % salesDetailCount;
if (residue == 0) {
salesPromotionDetail = promotionDetails[salesDetailCount - 1];
} else {
salesPromotionDetail = promotionDetails[residue - 1];
}
detailDTO.DiscountRate = detailDTO.DiscountRate * salesPromotionDetail.DiscountRate;
if (detailDTO.Quantity != item.Quantity) {
//数量改变事件
_QuantityChangeProcessorBlock.QuantityChangeProcessorBlock.execute(retailDto, detailDTO, detailDTO.Quantity, { isNotExecRunSingleDiscountProcessBlock: true });
}
var _REAlgorithmAdapter = new _REAlgorithmAdapter3.default(retailDto);
_REAlgorithmAdapter.DiscountRateChange(detailDTO);
//更新促销信息到明细行上
_UpdateRetailDetailProcessor.UpdateRetailDetailProcessor.execute(detailDTO, promotionDto, false, retailDto.Code);
retailDto.RetailDetails.push(detailDTO);
}
start = start + qunatity;
var findIndex = retailDto.RetailDetails.findIndex(function (it) {
return it.Code == promotionDto.RetailDetails[index].Code;
});
retailDto.RetailDetails.splice(findIndex, 1);
};
for (var index = 0; index < promotionDto.RetailDetails.length; index++) {
_loop(index);
}
//合并零售单
_MergeDetailsProcessorBlock.MergeDetailsProcessorBlock.execute(retailDto);
_DetailCodeProcessor.DetailCodeProcessor.execute(retailDto);
}
}]);
return XPrieceProcessBlock;
}();
//合并零售单
/**
* 执行X件阶梯折扣
*/
//# sourceMappingURL=XPrieceProcessBlock.js.map