tplus-pos
Version:
pos module
144 lines (117 loc) • 6.13 kB
JavaScript
;
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