UNPKG

tplus-pos

Version:

pos module

161 lines (128 loc) 5.02 kB
'use strict'; 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