UNPKG

tplus-pos

Version:

pos module

144 lines (117 loc) 6.13 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.SelfRunPromotionProcessBlock = undefined; var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _MergeDetailsProcessorBlock = require('../MergeDetailsProcessorBlock'); var _SummaryProcessorBlock = require('../summary/SummaryProcessorBlock'); var _DetailCodeProcessor = require('../DetailCodeProcessor'); var _QuantityChangeProcessorBlock = require('../quantity/QuantityChangeProcessorBlock'); var _REAlgorithmAdapter2 = require('../../../commom/REAlgorithmAdapter'); var _REAlgorithmAdapter3 = _interopRequireDefault(_REAlgorithmAdapter2); var _cloneDeep2 = require('lodash/cloneDeep'); var _cloneDeep3 = _interopRequireDefault(_cloneDeep2); var _mobx = require('mobx'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SelfRunPromotionProcessBlock = exports.SelfRunPromotionProcessBlock = function () { function SelfRunPromotionProcessBlock() { (0, _classCallCheck3.default)(this, SelfRunPromotionProcessBlock); } (0, _createClass3.default)(SelfRunPromotionProcessBlock, null, [{ key: 'execute', value: function execute(retailDto, returnRetailDto) { var _this = this; var retailDetails = retailDto.RetailDetails; retailDto.RetailDetails = []; returnRetailDto.RetailDetails.forEach(function (item) { var key = _this.getDetailKey(item); var detailDto = retailDetails.find(function (it) { return _this.getDetailKey(it) == key; }); var newdetailDto = (0, _cloneDeep3.default)((0, _mobx.toJS)(detailDto)); newdetailDto.Quantity = item.Quantity; newdetailDto.BaseQuantity = item.BaseQuantity; newdetailDto.DiscountRate = item.DiscountRate; newdetailDto.TaxAmount = item.TaxAmount; newdetailDto.IsUseIntegralAndCash = item.IsUseIntegralAndCash; newdetailDto.IsUseStorage = item.IsUseStorage; newdetailDto.IsMemberIntegralUsedPromotion = item.IsMemberIntegralUsedPromotion; newdetailDto.PromotionID = item.PromotionID; newdetailDto.PromotionTypeStr = item.PromotionTypeStr; newdetailDto.PromotionIdStr = item.PromotionIdStr; newdetailDto.PromotionCode = item.PromotionCode; newdetailDto.TaxPrice = item.TaxPrice; newdetailDto.RetailPrice = item.RetailPrice; newdetailDto.MemberPrice = item.MemberPrice; newdetailDto.Price = item.Price; newdetailDto.Amount = item.Amount; newdetailDto.Tax = item.Tax; newdetailDto.RetailAmount = item.RetailAmount; newdetailDto.TotalDiscountRate = item.TotalDiscountRate; newdetailDto.PromotionDetails = item.PromotionDetails; newdetailDto.PromotionType = item.PromotionType; newdetailDto.IsPresent = item.IsPresent; JSON.setCellValue(newdetailDto, "isPromotionPresent", JSON.getCellValue(item, "isPromotionPresent")); //如果数量不相等,则调用数量改变事件 if (newdetailDto.Quantity != detailDto.Quantity) { //数量改变事件 _QuantityChangeProcessorBlock.QuantityChangeProcessorBlock.execute(retailDto, newdetailDto, newdetailDto.Quantity, { isNotExecRunSingleDiscountProcessBlock: true, isNotExecAlgorithm: true }); } var _REAlgorithmAdapter = new _REAlgorithmAdapter3.default(retailDto); newdetailDto.TaxAmount = item.TaxAmount; newdetailDto.DetailDiscountAmount = Math.Minus(newdetailDto.RetailAmount, newdetailDto.TaxAmount); _REAlgorithmAdapter.TaxAmountChange(newdetailDto); retailDto.RetailDetails.push(newdetailDto); }); //合并明细行 _MergeDetailsProcessorBlock.MergeDetailsProcessorBlock.execute(retailDto); //处理编码 _DetailCodeProcessor.DetailCodeProcessor.execute(retailDto); //处理表体信息 _SummaryProcessorBlock.SummaryProcessorBlock.execute(retailDto); } /** * 获取当前列的key * * @param {*} detail * @returns * @memberof MergeDetailsProcessBlock */ }, { key: 'getDetailKey', value: function getDetailKey(detail) { var returnKey = ""; var keyFields = "FreeItem0,FreeItem1,FreeItem2,FreeItem3,FreeItem4,FreeItem5,FreeItem6,FreeItem7,FreeItem8,FreeItem9,Idinventory,Idunit,Idunit2,Batch,ProductionDate,ExpiryDate,ReturnSourceDetailId,SerialNumber"; var keyArrays = keyFields.split(","); for (var index = 0; index < keyArrays.length; index++) { var value = ""; if (JSON.getCellValue(detail, keyArrays[index])) { value = JSON.getCellValue(detail, keyArrays[index]); } if (value && (keyArrays[index] == 'ProductionDate' || keyArrays[index] == 'ExpiryDate')) { var date = value; if (typeof value == "string") { date = new Date(value); } value = date.toLocaleDateString(); } returnKey = returnKey + "|" + keyArrays[index] + "=" + value; } return returnKey; } }]); return SelfRunPromotionProcessBlock; }(); //价格改变事件 /** *处理单品返现促销方案 * * @export * @class SelfRunPromotion */ //执行单品打折促销方式 //# sourceMappingURL=SelfRunPromotionProcessBlock.js.map