UNPKG

tplus-pos

Version:

pos module

117 lines (92 loc) 4.7 kB
'use strict'; 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