tplus-pos
Version:
pos module
161 lines (128 loc) • 5.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BatchSplitProcessorBlock = undefined;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _QuantityChangeProcessorBlock = require('../quantity/QuantityChangeProcessorBlock');
var _cloneDeep2 = require('lodash/cloneDeep');
var _cloneDeep3 = _interopRequireDefault(_cloneDeep2);
var _tplusPoslogin = require('tplus-poslogin');
var _Enum = require('../../../commom/Enum');
require('../../../commom/Challenger');
var _REAlgorithmAdapter = require('../../../commom/REAlgorithmAdapter');
var _REAlgorithmAdapter2 = _interopRequireDefault(_REAlgorithmAdapter);
var _tplusComponentsTouch = require('tplus-components-touch');
var _mobx = require('mobx');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*批号拆分处理
* 1,批号拆分
* 2,计算数量及价税额
* 2.1 计算数量2
* 2.2 计算价税额
*
* @export
* @class BatchSplitProcessorBlock
* @auther 马坚
*/
var BatchSplitProcessorBlock = exports.BatchSplitProcessorBlock = function () {
function BatchSplitProcessorBlock() {
(0, _classCallCheck3.default)(this, BatchSplitProcessorBlock);
}
(0, _createClass3.default)(BatchSplitProcessorBlock, null, [{
key: 'execute',
value: function execute(dto, retailDetail, updatedDetail, targetIndex) {
var batchs = updatedDetail.Batchs;
$T.debugger();
var canInsertRow = (0, _tplusPoslogin.PosInitData)("CanInsertRow");
dto.RetailDetails.forEach(function (retailDetail) {
JSON.ClearDynamicProperty(retailDetail, "isCurrentOperate");
});
JSON.setCellValue(retailDetail, "isCurrentOperate", true);
var event = updatedDetail.event;
var isFromUpdate = false;
if (event && event == 'batch') {
// 修改批号的场合,不往明细中添加
isFromUpdate = true;
} else if (!batchs || batchs.length < 1) {
if (canInsertRow) {
dto.RetailDetails.splice(targetIndex + 1, 0, retailDetail);
} else {
dto.RetailDetails.push(retailDetail);
}
return;
}
if (dto.DistributionMode.Id == _Enum.DistributionMode.Code_02 && batchs.length > 1) {
_tplusComponentsTouch.Message.warn("配送方式为门店自提,只能选择一个批号");
return;
}
var index = 0;
batchs.forEach(function (batch) {
$T.debugger();
// 1,批号拆分
var tempRetailDetail = (0, _mobx.toJS)(retailDetail);
var splitDetail = null;
var ispush = true;
if (isFromUpdate && index == 0) {
ispush = false;
}
if (ispush) {
splitDetail = (0, _cloneDeep3.default)(tempRetailDetail);
} else {
splitDetail = retailDetail;
}
// 批号
splitDetail.Batch = batch.Batch;
// 失效日期
if (batch.ExpiryDate) {
if (batch.ExpiryDate instanceof Date) {
splitDetail.ExpiryDate = batch.ExpiryDate;
} else {
splitDetail.ExpiryDate = new Date(batch.ExpiryDate);
}
}
// 生产日期
if (batch.ProductionDate) {
if (batch.ProductionDate instanceof Date) {
splitDetail.ProductionDate = batch.ProductionDate;
} else {
splitDetail.ProductionDate = new Date(batch.ProductionDate);
}
}
var isNotExecRunSingleDiscountProcessBlock = false;
var isNotExecAlgorithm = false;
var isNotExecQuantty = false;
if (splitDetail.Quantity == batch.Quantity) {
isNotExecRunSingleDiscountProcessBlock = true;
isNotExecAlgorithm = true;
}
splitDetail.Quantity = batch.Quantity;
if (batch.Quantity2 && batch.UnitExchangeRate) {
isNotExecQuantty = true;
}
if (batch.Quantity2) {
splitDetail.Quantity2 = batch.Quantity2;
}
if (batch.UnitExchangeRate) {
splitDetail.UnitExchangeRate = batch.UnitExchangeRate;
}
// 2,计算数量及价税额
_QuantityChangeProcessorBlock.QuantityChangeProcessorBlock.execute(dto, splitDetail, splitDetail.Quantity, { isNotExecQuantty: isNotExecQuantty, isNotExecRunSingleDiscountProcessBlock: isNotExecRunSingleDiscountProcessBlock, isNotExecAlgorithm: isNotExecAlgorithm });
if (ispush) {
if (canInsertRow) {
dto.RetailDetails.splice(targetIndex + 1, 0, retailDetail);
} else {
dto.RetailDetails.push(splitDetail);
}
}
index++;
});
}
}]);
return BatchSplitProcessorBlock;
}();
//# sourceMappingURL=BatchSplitProcessorBlock.js.map