tplus-pos
Version:
pos module
100 lines (82 loc) • 3.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SumNumberProcessor = undefined;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
require('../../../commom/Challenger');
var _tplusPoslogin = require('tplus-poslogin');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*统计数值相关信息
*
* @export
* @class SumNumberProcessor
* @auther 马坚
*/
/**
* 汇总数量
*/
var SumNumberProcessor = exports.SumNumberProcessor = function () {
function SumNumberProcessor() {
(0, _classCallCheck3.default)(this, SumNumberProcessor);
}
(0, _createClass3.default)(SumNumberProcessor, null, [{
key: 'execute',
value: function execute(dto) {
var withTax = dto.withTax || (0, _tplusPoslogin.PosInitData)("isPriceWithTax");
if (dto.RetailDetails) {
// 零售金额合计
var totalRetailAmount = dto.RetailDetails.Sum("RetailAmount");
// 含税金额合计
var totalTaxAmount = dto.RetailDetails.Sum("TaxAmount");
// 综合折扣金额合计
var totalDiscountAmount = dto.RetailDetails.Sum("DetailDiscountAmount");
var wipeChange = dto.RetailDetails.Sum("WipeChange");
// 折扣金额合计
var totalNonMemberDiscountAmount = 0;
dto.RetailDetails.forEach(function (item) {
var nonMemberDiscountAmount = 0;
if (Math.Minus(item.RetailPrice, item.MemberPrice) == 0 && item.MemberDiscountRate == 1) {
nonMemberDiscountAmount = item.DetailDiscountAmount;
} // 如果会员价格=零售金额且没有会员折扣,那么会员折扣金额为0,全部为折扣金额
else {
//成交金额
var amount = item.Amount || 0;
// 含税
if (withTax) {
amount = item.TaxAmount || 0;
}
var temp1 = Math.Multiply(item.MemberPrice, item.MemberDiscountRate);
var temp2 = Math.Multiply(temp1, item.Quantity);
nonMemberDiscountAmount = Math.Minus(temp2, amount);
//误差处理
if (amount > 0 && nonMemberDiscountAmount < 0 || amount < 0 && nonMemberDiscountAmount > 0) {
nonMemberDiscountAmount = 0;
}
}
totalNonMemberDiscountAmount = Math.Add(totalNonMemberDiscountAmount, nonMemberDiscountAmount);
});
// 会员折扣金额合计=综合折扣金额合计-折扣金额合计
var totalMemberDiscountAmount = Math.Minus(totalDiscountAmount, totalNonMemberDiscountAmount);
// 零售金额合计
dto.TotalRetailAmount = totalRetailAmount;
// 含税金额合计
dto.TotalTaxAmount = totalTaxAmount;
// 综合折扣金额合计
dto.TotalDiscountAmount = totalDiscountAmount;
// 折扣金额合计
dto.TotalNonMemberDiscountAmount = totalNonMemberDiscountAmount;
// 会员折扣金额合计
dto.TotalMemberDiscountAmount = totalMemberDiscountAmount;
// 抹零金额
dto.WipeChange = wipeChange;
}
}
}]);
return SumNumberProcessor;
}();
//# sourceMappingURL=SumNumberProcessor.js.map