tplus-pos
Version:
pos module
189 lines (151 loc) • 9.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OriginalReturnPaymentProcessBlock = undefined;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
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');
var _ReturnCouponProcessor = require('./ReturnCouponProcessor');
var _ReturnIntegralProcessor = require('./ReturnIntegralProcessor');
var _ReturnStorageProcessor = require('./ReturnStorageProcessor');
var _ReturnWeixinProcessor = require('./ReturnWeixinProcessor');
var _ReturnAliProcessor = require('./ReturnAliProcessor');
var _ReturnOtherProcessor = require('./ReturnOtherProcessor');
var _mobx = require('mobx');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*原单退货结算方式处理
* @export
* @class OriginalReturnPaymentProcessBlock
* @auther tuzha
*/
var OriginalReturnPaymentProcessBlock = exports.OriginalReturnPaymentProcessBlock = function () {
function OriginalReturnPaymentProcessBlock() {
(0, _classCallCheck3.default)(this, OriginalReturnPaymentProcessBlock);
}
(0, _createClass3.default)(OriginalReturnPaymentProcessBlock, null, [{
key: 'execute',
value: function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(dto) {
var isFirstReturn, origRetailPaymentDetails, origRetailConponDetails, origRetailStorageDetails, totalAmount;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
dto.RetailPaymentDetails = [];
dto.RetailStorageDetails = [];
dto.RetailCouponDetails = [];
//金额为正数 清除所有对应的结算方式,按正常结算
if (!(dto.TotalTaxAmount >= 0)) {
_context.next = 5;
break;
}
return _context.abrupt('return');
case 5:
//如果是第一次,且是整单退货
isFirstReturn = JSON.getCellValue(dto, "IsFirstReturn");
origRetailPaymentDetails = JSON.getCellValue(dto, "OrigRetailPaymentDetails");
origRetailConponDetails = JSON.getCellValue(dto, "OrigRetailConponDetails");
origRetailStorageDetails = JSON.getCellValue(dto, "OrigRetailStorageDetails");
totalAmount = origRetailPaymentDetails.Sum("Amount");
dto.RetailPaymentDetails = JSON.Clone(origRetailPaymentDetails);
dto.RetailStorageDetails = JSON.Clone(origRetailStorageDetails);
dto.RetailCouponDetails = JSON.Clone(origRetailConponDetails);
if (!(isFirstReturn && dto.TotalTaxAmount == -totalAmount)) {
_context.next = 18;
break;
}
dto.RetailPaymentDetails.forEach(function (item) {
item.Amount = -item.Amount;
if (item.SteadCashIntegral) {
item.SteadCashIntegral = -item.SteadCashIntegral;
}
if (item.OrigAmount) {
item.OrigAmount = -item.OrigAmount;
}
});
//储值明细处理
if (dto.RetailStorageDetails && dto.RetailStorageDetails.length > 0) {
dto.RetailStorageDetails.forEach(function (item) {
item.StoragePaymentAmount = -item.StoragePaymentAmount;
item.IsOrigReturn = true;
});
}
//排序处理
dto.RetailCouponDetails = dto.RetailCouponDetails.sort(function (a, b) {
if (b.ReductionAmount == a.ReductionAmount) {
if (b.CouponTitle > a.CouponTitle) {
return 1;
} else if (b.CouponTitle < a.CouponTitle) {
return -1;
} else {
return 0;
}
} else {
return b.ReductionAmount - a.ReductionAmount;
}
});
return _context.abrupt('return');
case 18:
JSON.setCellValue(dto, "TotalCanReturnAmount", -dto.TotalTaxAmount);
//部分退货,金额为负数,有优惠券的情况
if (origRetailPaymentDetails.findIndex(function (it) {
return it.SettleStyle.Code == _Enum.SettleCode.Coupon;
}) >= 0) {
_ReturnCouponProcessor.ReturnCouponProcessor.execute(dto);
}
//处理积分抵现
if (!(origRetailPaymentDetails.findIndex(function (it) {
return it.SettleStyle.Code == _Enum.SettleCode.Integral;
}) >= 0)) {
_context.next = 23;
break;
}
_context.next = 23;
return _ReturnIntegralProcessor.ReturnIntegralProcessor.execute(dto);
case 23:
(0, _mobx.runInAction)(function () {
//处理会员储值
if (origRetailPaymentDetails.findIndex(function (it) {
return it.SettleStyle.Code == _Enum.SettleCode.Storage;
}) >= 0) {
_ReturnStorageProcessor.ReturnStorageProcessor.execute(dto);
}
//处理微信
if (origRetailPaymentDetails.findIndex(function (it) {
return it.SettleStyle.Code == _Enum.SettleCode.Weixin;
}) >= 0) {
_ReturnWeixinProcessor.ReturnWeixinProcessor.execute(dto);
}
//处理支付宝
if (origRetailPaymentDetails.findIndex(function (it) {
return it.SettleStyle.Code == _Enum.SettleCode.Ali;
}) >= 0) {
_ReturnAliProcessor.ReturnAliProcessor.execute(dto);
}
//剩余其它结算方式(按照结算编码排序)
_ReturnOtherProcessor.ReturnOtherProcessor.execute(dto);
});
case 24:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function execute(_x) {
return _ref.apply(this, arguments);
}
return execute;
}()
}]);
return OriginalReturnPaymentProcessBlock;
}();
//# sourceMappingURL=OriginalReturnPaymentProcessBlock.js.map