UNPKG

tplus-pos

Version:

pos module

100 lines (82 loc) 3.98 kB
'use strict'; 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