tplus-pos
Version:
pos module
76 lines (61 loc) • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.QuantityToQuantity2Processor = undefined;
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
var _UnitTypeProcessor = require("../../unit/UnitTypeProcessor");
require("../../../commom/Challenger");
var _Enum = require("../../../commom/Enum");
var _tplusPoslogin = require("tplus-poslogin");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*数量改变计算数量2
*
* @export
* @class QuantityToQuantity2Processor
* @auther 马坚
*/
var QuantityToQuantity2Processor = exports.QuantityToQuantity2Processor = function () {
function QuantityToQuantity2Processor() {
(0, _classCallCheck3.default)(this, QuantityToQuantity2Processor);
}
(0, _createClass3.default)(QuantityToQuantity2Processor, null, [{
key: "execute",
value: function execute(detail) {
var quantityDecimalDigits = (0, _tplusPoslogin.PosInitData)("QuantityPrecision");
var unitType = _UnitTypeProcessor.UnitTypeProcessor.execute(detail.Unit);
if (unitType === _Enum.UnitType.Single) {
return;
}
// 计量单位换算率
var unitExchangeRate = detail.UnitExchangeRate;
var quantity = detail.Quantity;
// 主计量
var idBaseUnit = detail.Inventory.Idunit;
if (!idBaseUnit) {
console.error("多计量单位时,主计量不能为空");
}
var idUnit = detail.Idunit;
if (idBaseUnit == idUnit) {
// 计量单位1为主计量的场合,计算数量2
detail.Quantity2 = Math.Divide(quantity, unitExchangeRate, true).Round(quantityDecimalDigits);
} else {
// 当计量单位1为辅计量的场合,说明计量单位2为主计量
detail.Quantity2 = Math.Multiply(quantity, unitExchangeRate).Round(quantityDecimalDigits);
}
if (idBaseUnit == idUnit) {
detail.BaseQuantity = detail.Quantity;
detail.SubQuantity = detail.Quantity2;
} else {
detail.BaseQuantity = detail.Quantity2;
detail.SubQuantity = detail.Quantity;
}
}
}]);
return QuantityToQuantity2Processor;
}();
//# sourceMappingURL=QuantityToQuantity2Processor.js.map