tplus-pos
Version:
pos module
117 lines (103 loc) • 5.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.UpdateSalesRetailDetailProcessor = undefined;
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
var _Enum = require("../../../commom/Enum");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var UpdateSalesRetailDetailProcessor = exports.UpdateSalesRetailDetailProcessor = function () {
function UpdateSalesRetailDetailProcessor() {
(0, _classCallCheck3.default)(this, UpdateSalesRetailDetailProcessor);
}
(0, _createClass3.default)(UpdateSalesRetailDetailProcessor, null, [{
key: "execute",
value: function execute(retailDto, promotionDto, excePromotion) {
var _this = this;
var detailDTOs = [];
var retailDetails = promotionDto.RetailDetails;
promotionDto.RetailDetails = [];
retailDetails.forEach(function (item) {
var canPush = true;
var key = _this.getDetailKey(item);
detailDTOs = retailDto.RetailDetails.filter(function (it) {
return _this.getDetailKey(it) === key;
});
var existdto = excePromotion.RetailDetails.find(function (it) {
return it.Idinventory == item.Idinventory && it.Idunit == item.Idunit;
});
switch (excePromotion.PromotionType) {
case _Enum.PromotionType.DR_PromotionType_05:
//单品满赠
//此行不参加组合满赠,组合满返,整单满赠
// if (existdto && ((promotionDto.PromotionType == PromotionType.DR_PromotionType_05 && !promotionDto.IsMultipleGift) || promotionDto.PromotionType == PromotionType.DR_PromotionType_03 || promotionDto.PromotionType == PromotionType.DR_PromotionType_07 || promotionDto.PromotionType == PromotionType.DR_PromotionType_06)) {
// canPush = false;
// }
//如果单品满赠,参加过的不能参与
if (detailDTOs && (promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_05 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_03 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_07 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_06)) {
detailDTOs = detailDTOs.filter(function (it) {
return !it.PromotionTypeStr || it.PromotionTypeStr.indexOf(excePromotion.PromotionTypeName) < 0;
});
}
break;
case _Enum.PromotionType.DR_PromotionType_03:
//组合满返
//不参加组合满赠
if (existdto && (promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_03 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_07)) {
canPush = false;
}
break;
case _Enum.PromotionType.DR_PromotionType_07:
//组合满赠
//不参加组合满返,单品满赠,整单满赠
if (existdto && (promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_07 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_03 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_05 || promotionDto.PromotionType == _Enum.PromotionType.DR_PromotionType_06)) {
canPush = false;
}
break;
}
//可以增加
if (canPush) {
detailDTOs.forEach(function (item) {
if (item.DiscountRate >= promotionDto.AboveDiscountEffect && !item.IsPresent) {
promotionDto.RetailDetails.push(item);
}
});
}
});
}
/**
* 获取当前列的key
*/
}, {
key: "getDetailKey",
value: function getDetailKey(detail) {
var returnKey = "";
var keyFields = "FreeItem0,FreeItem1,FreeItem2,FreeItem3,FreeItem4,FreeItem5,FreeItem6,FreeItem7,FreeItem8,FreeItem9";
keyFields += ",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 UpdateSalesRetailDetailProcessor;
}();
/**
* 更新促销零售明细行
*/
//# sourceMappingURL=UpdateSalesRetailDetailProcessor.js.map