UNPKG

@rnga/orders

Version:

## Get schema from @prisma-cms 1. yarn get-api-schema -e http://localhost:4000 2. yarn build-api-fragments

1,297 lines (1,001 loc) 37.3 kB
'use strict'; exports.__esModule = true; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _class, _temp; /* eslint-disable react/forbid-foreign-prop-types */ var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _component = require('@prisma-cms/component'); var _component2 = _interopRequireDefault(_component); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _SlabLink = require('./SlabLink'); var _SlabLink2 = _interopRequireDefault(_SlabLink); var _Modal = require('../../../../Modal'); var _Modal2 = _interopRequireDefault(_Modal); var _query = require('query'); var _TarifSelect = require('./TarifSelect'); var _TarifSelect2 = _interopRequireDefault(_TarifSelect); var _reactNumberFormat = require('react-number-format'); var _reactNumberFormat2 = _interopRequireDefault(_reactNumberFormat); var _Progress = require('material-ui/Progress'); var _SlabDenyPinalty = require('./SlabDenyPinalty'); var _SlabDenyPinalty2 = _interopRequireDefault(_SlabDenyPinalty); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var OrderItem = (_temp = _class = function (_PrismaCmsComponent) { _inherits(OrderItem, _PrismaCmsComponent); function OrderItem(props) { _classCallCheck(this, OrderItem); var _this = _possibleConstructorReturn(this, _PrismaCmsComponent.call(this, props)); _this.rejectSlabOrder = function (data) { // this.updateItem(data); // eslint-disable-next-line no-unreachable _this.setState({ confirmRejectModalOpened: true, tarifsSelectionOpen: false }); }; _this.state = _extends({}, _this.state, { tarifsSelectionOpen: false, confirmRejectModalOpened: false, confirmAcceptModalOpened: false }); return _this; } OrderItem.prototype.componentDidMount = function componentDidMount() { this.initListeners(); _PrismaCmsComponent.prototype.componentDidMount && _PrismaCmsComponent.prototype.componentDidMount.call(this); }; OrderItem.prototype.initListeners = function initListeners() { var _this2 = this; var _window = window, document = _window.document; // return; /** * Навешиваем на документ событие, чтобы отловить клики вне селекта выбора тарифа, чтобы при клике в другом месте он закрывался. */ this.closeEvent = document.addEventListener("click", function (event) { // if (event.defaultPrevented) { // return; // } var path = event.path || event.composedPath && event.composedPath(); // const path = event.path; if (path) { if (path.indexOf(_this2.selectTarifWrapper) !== -1) { // event.stopImmediatePropagation(); // return; } else { _this2.setState({ tarifsSelectionOpen: false }); } } else { if (event.defaultPrevented) { return; } _this2.setState({ tarifsSelectionOpen: false }); } }); }; OrderItem.prototype.getSlabService = function getSlabService() { var services = this.props.services; return services && services.find(function (n) { return n.code === "slab"; }) || null; }; // isSlabServiceOrdered() { // const { // selectedServices, // } = this.getDirty() || {}; // const slabServiceSelected = (selectedServices && selectedServices.find(n => n.code === "slab" && n._selected === true)) ? true : false; // const { // ServiceOrders, // } = this.getItem(); // let SlabServiceOrder = ServiceOrders.find(n => n.Service.code === "slab"); // /** // * Определяем выбран ли заказ на слаб. // * Если да, но не выбран тариф, надо подсветить тариф // */ // // let SlabServiceOrdered = true; // // let SlabServiceOrdered = slabServiceSelected ? true : false; // let SlabServiceOrdered = SlabServiceOrder || slabServiceSelected ? true : false; // return SlabServiceOrdered; // } OrderItem.prototype.isSlabServiceOrdered = function isSlabServiceOrdered() { var _ref = this.getDirty() || {}, selectedServices = _ref.selectedServices; var slabServiceSelected = selectedServices && selectedServices.find(function (n) { return n.code === "slab" && n._selected === true; }) ? true : false; var _getItem = this.getItem(), ServiceOrders = _getItem.ServiceOrders; var SlabServiceOrder = ServiceOrders.find(function (n) { return n.Service.code === "slab"; }); /** * Определяем выбран ли заказ на слаб. * Если да, но не выбран тариф, надо подсветить тариф */ // let SlabServiceOrdered = true; // let SlabServiceOrdered = slabServiceSelected ? true : false; var SlabServiceOrdered = SlabServiceOrder || slabServiceSelected ? true : false; return SlabServiceOrdered; }; /** * Выбран тариф */ OrderItem.prototype.setTarif = function setTarif(tarif) { var _this3 = this; // console.log("setTarif", tarif); var canEdit = this.canEdit(); if (!canEdit) { return false; } var serviceTarifId = tarif.id; if (!this.canOrderSlab()) { return false; } this.updateItem({ slabTarif: serviceTarifId }); var slabService = this.getSlabService(); // slabService._selected = false; /** * Если не была выбрана услуга слабирования, автоматически назначаем */ var _ref2 = this.getDirty() || {}, selectedServices = _ref2.selectedServices; selectedServices = selectedServices || []; var dirtySlabSelected = selectedServices.find(function (n) { return n.id === slabService.id && n._selected ? true : false; }); if (!this.isSlabServiceOrdered() || !dirtySlabSelected) { setTimeout(function () { _this3.setService(slabService); }, 100); } // else { // } this.setState({ tarifsSelectionOpen: false }); // const slabServiceSelected = this.isSlabServiceSelected(); }; OrderItem.prototype.canEdit = function canEdit() { var canEdit = this.props.canEdit; return canEdit(); }; // /** // * Выбираем услугу // */ // setService(service) { // const canEdit = this.canEdit(); // // console.log("canEdit", canEdit); // if (!canEdit) { // return; // } // /** // * Когда пользователь отменяет выбор тарифа, // * удаляем его из массива // */ // // if (!selectedService._selected) { // // selectedServices.splice(selectedServices.indexOf(selectedService), 1); // // } // const { // id: serviceId, // code, // } = service; // let { // selectedServices, // } = this.getDirty() || {} // selectedServices = selectedServices || []; // // const index = selectedServices.findIndex(n => n.id === serviceId); // let selectedService = selectedServices.find(n => n.id === serviceId); // if (!selectedService) { // selectedService = { // ...service, // }; // /** // * Проверяем если выбирает слабирование, то должен быть указан прегрейд // */ // switch (code) { // case "slab": // if (!this.canOrderSlab()) { // return false; // } // break; // } // selectedServices.push(selectedService); // } // selectedService._selected = selectedService._selected ? false : true; // this.updateItem({ // selectedServices, // }); // } /** * Выбираем услугу */ OrderItem.prototype.setService = function setService(service) { var setService = this.props.setService; return setService(this.getItem(), service); }; // canOrderSlab() { // const { // preGrade, // sheldon_grade, // } = this.getItem(); // if (this.notGradable()) { // return this.addError("Нельзя заказать услугу для этой монеты"); // } // if (!preGrade) { // return this.addError("Дождитесь получения прегрейда."); // } // return true; // } // notGradable() { // const { // preGrade, // sheldon_grade, // } = this.getItem() || {}; // console.log("notGradable item", this.getItem()); // return ( // preGrade === "NOTGENUINE" // || preGrade === "NOTGRADABLE" // || sheldon_grade === "NOTGENUINE" // || sheldon_grade === "NOTGRADABLE" // ); // } OrderItem.prototype.canOrderSlab = function canOrderSlab() { // const { // preGrade, // sheldon_grade, // } = this.getItem(); // if (this.notGradable()) { // return this.addError("Нельзя заказать услугу для этой монеты"); // } // if (!preGrade) { // return this.addError("Дождитесь получения прегрейда."); // } // return true; var canOrderSlab = this.props.canOrderSlab; return canOrderSlab(this.getItem()) === true; }; OrderItem.prototype.notGradable = function notGradable() { // const { // preGrade, // sheldon_grade, // } = this.getItem() || {}; // return ( // preGrade === "NOTGENUINE" // || preGrade === "NOTGRADABLE" // || sheldon_grade === "NOTGENUINE" // || sheldon_grade === "NOTGRADABLE" // ); var notGradable = this.props.notGradable; return notGradable(this.getItem()) === true; }; OrderItem.prototype.updateItem = function updateItem(data) { var updateItem = this.props.updateItem; var item = this.getItem(); return updateItem(item, data); }; OrderItem.prototype.getItem = function getItem() { var item = this.props.item; return item; }; // getDirty() { // const { // _dirty, // } = this.getItem(); // return _dirty; // } OrderItem.prototype.getDirty = function getDirty() { var getDirty = this.props.getDirty; return getDirty(this.getItem()); }; OrderItem.prototype.confirmService = function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(serviceOrderId) { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.updateServiceOrder(serviceOrderId, { confirm: true }); case 2: case 'end': return _context.stop(); } } }, _callee, this); })); function confirmService(_x) { return _ref3.apply(this, arguments); } return confirmService; }(); OrderItem.prototype.rejectService = function () { var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2(serviceOrderId) { var _this4 = this; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.updateServiceOrder(serviceOrderId, { reject: true }).then(function (r) { // console.log("rejectSlabOrder _dirty", this); var _ref5 = _this4.getDirty() || {}, selectedServices = _ref5.selectedServices; selectedServices = selectedServices || []; // const dirtySlabSelected = selectedServices.find(n => n.code === "slab" ? true : false); var dirtySlabSelectedIndex = selectedServices.findIndex(function (n) { return n.code === "slab" ? true : false; }); if (dirtySlabSelectedIndex !== -1) { var selectedServicesNew = selectedServices.slice(0); selectedServicesNew.splice(dirtySlabSelectedIndex, 1); _this4.updateItem({ selectedServices: selectedServicesNew, slabTarif: undefined }); // console.log("dirtySlabSelected", dirtySlabSelected); return; } return r; }); case 2: case 'end': return _context2.stop(); } } }, _callee2, this); })); function rejectService(_x2) { return _ref4.apply(this, arguments); } return rejectService; }(); /** * Обновление заказа услуг с записью в БД */ OrderItem.prototype.updateServiceOrder = function () { var _ref6 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee3(serviceOrderId, data) { var loading, params, result; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: loading = this.state.loading; // const { // item: { // id: serviceOrderId, // }, // } = this.props; if (!(!serviceOrderId || loading)) { _context3.next = 3; break; } return _context3.abrupt('return'); case 3: this.setState({ loading: true }); params = { mutation: _query.updateServiceOrderProcessor, variables: { data: data, where: { id: serviceOrderId } } }; _context3.next = 7; return this.mutate(params).catch(function (error) { return error; }); case 7: result = _context3.sent; this.setState({ loading: false }); if (!(result && result instanceof Error)) { _context3.next = 11; break; } throw result; case 11: return _context3.abrupt('return', result); case 12: case 'end': return _context3.stop(); } } }, _callee3, this); })); function updateServiceOrder(_x3, _x4) { return _ref6.apply(this, arguments); } return updateServiceOrder; }(); OrderItem.prototype.translitGrade = function translitGrade(grade) { return grade ? grade.replace("DET", " DET") : null; }; OrderItem.prototype.render = function render() { var _this5 = this; var _props = this.props, item = _props.item, services = _props.services, amount = _props.amount, classes = _props.classes; var _state = this.state, tarifsSelectionOpen = _state.tarifsSelectionOpen, loading = _state.loading, confirmRejectModalOpened = _state.confirmRejectModalOpened, confirmAcceptModalOpened = _state.confirmAcceptModalOpened; if (!item || !services) { return null; } var canEdit = this.canEdit() && !this.notGradable(); var number = item.number, title = item.title, year = item.year, metal = item.metal, price = item.price, sheldon_grade = item.sheldon_grade, sheldon_grade_details = item.sheldon_grade_details, preGrade = item.preGrade, ServiceOrders = item.ServiceOrders, slab = item.slab; var preGradeStr = this.translitGrade(preGrade); var sheldon_gradeStr = this.translitGrade(sheldon_grade); var dirty = this.getDirty(); var _ref7 = dirty || {}, selectedServices = _ref7.selectedServices, slabTarif = _ref7.slabTarif, rejectSlabService = _ref7.rejectSlabService; var servicesList = []; var slabService = services.find(function (n) { return n.code === "slab"; }); // const slabServiceSelected = (selectedServices && selectedServices.find(n => n.code === "slab" && n._selected === true)) ? true : false; var slabTarifs = slabService && slabService.Tarifs || []; var SlabServiceOrder = ServiceOrders.find(function (n) { return n.Service.code === "slab"; }); var _ref8 = SlabServiceOrder || {}, slabServiceOrderId = _ref8.id, slabServiceOrderConfirmDate = _ref8.confirmDate; // const { // rejectCost: slabServiceRejectCost, // } = SlabService || {} // Выбранный слаб-тариф if (!slabTarif) { if (SlabServiceOrder && SlabServiceOrder.Tarif) { slabTarif = SlabServiceOrder.Tarif.id; } } var selectedSlabTarif = slabTarif ? slabTarifs.find(function (n) { return n.id === slabTarif; }) : null; var slabServiceConfirmActions = void 0; var slabServiceModals = _react2.default.createElement( _react.Fragment, null, confirmRejectModalOpened ? _react2.default.createElement( _Modal2.default, { opened: true, handleClose: function handleClose(event) { _this5.setState({ confirmRejectModalOpened: false }); }, title: "Подтверждение отказа от услуги" }, _react2.default.createElement( 'div', { className: 'window', style: { width: "auto", padding: 0 } }, _react2.default.createElement( 'div', { className: 'accept-deny-text' }, '\u0412\u044B \u043E\u0442\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442\u0435\u0441\u044C \u043E\u0442 \u0443\u0441\u043B\u0443\u0433\u0438?' ), slabServiceOrderId ? _react2.default.createElement(_SlabDenyPinalty2.default, { where: { id: slabServiceOrderId } }) : null, _react2.default.createElement( 'div', { className: 'confirm-send-wrapper', style: { display: "block" } }, _react2.default.createElement( 'div', { className: 'confirm-send-cansel-wrapper' }, _react2.default.createElement( 'div', { className: 'confirm-button confirm_cansel', onClick: function onClick(event) { event.preventDefault(); event.stopPropagation(); _this5.setState({ confirmRejectModalOpened: false }); } }, '\u041E\u0442\u043C\u0435\u043D\u0430' ), _react2.default.createElement( 'div', { className: classes.buttonWrapper }, _react2.default.createElement( 'div', { className: 'confirm-button confirm_send', onClick: function () { var _ref9 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee4(event) { return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: event.preventDefault(); event.stopPropagation(); _this5.rejectService(slabServiceOrderId).then(function (r) { _this5.setState({ confirmRejectModalOpened: false }); return r; }); case 3: case 'end': return _context4.stop(); } } }, _callee4, _this5); })); return function (_x5) { return _ref9.apply(this, arguments); }; }() }, '\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044E' ), loading ? _react2.default.createElement(_Progress.CircularProgress, { size: 24, className: classes.buttonProgress }) : null ) ) ) ) ) : null, confirmAcceptModalOpened ? _react2.default.createElement( _Modal2.default, { opened: true, handleClose: function handleClose(event) { _this5.setState({ confirmAcceptModalOpened: false }); }, title: "Подтверждение заказа услуги" }, _react2.default.createElement( 'div', { className: 'window', style: { width: "auto", padding: 0 } }, _react2.default.createElement( 'div', { className: 'accept-deny-text' }, '\u0412\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0435 \u0437\u0430\u043A\u0430\u0437 \u0443\u0441\u043B\u0443\u0433\u0438?' ), _react2.default.createElement( 'div', { className: 'confirm-send-wrapper', style: { display: "block" } }, _react2.default.createElement( 'div', { className: 'confirm-send-cansel-wrapper' }, _react2.default.createElement( 'div', { className: 'confirm-button confirm_cansel', onClick: function onClick(event) { event.preventDefault(); event.stopPropagation(); _this5.setState({ confirmAcceptModalOpened: false }); } }, '\u041E\u0442\u043C\u0435\u043D\u0430' ), _react2.default.createElement( 'div', { className: 'confirm-button confirm_send', onClick: function () { var _ref10 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee5(event) { return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: event.preventDefault(); event.stopPropagation(); _this5.confirmService(slabServiceOrderId).then(function (r) { _this5.setState({ confirmAcceptModalOpened: false }); return r; }); case 3: case 'end': return _context5.stop(); } } }, _callee5, _this5); })); return function (_x6) { return _ref10.apply(this, arguments); }; }() }, '\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044E' ) ) ) ) ) : null ); /** * Если было заказано слабирование */ // if (slabServiceOrderId) { // // console.log("slabServiceOrderId", slabServiceOrderId, !dirty && !slabServiceOrderRejectDate && !slabServiceOrderConfirmDate && sheldon_grade ? true : false, // // dirty, slabServiceOrderRejectDate, slabServiceOrderConfirmDate, sheldon_grade // // ); // /** // * Пользовательские действия со слабированием // */ // // if (!dirty && !slabServiceOrderRejectDate && !slabServiceOrderConfirmDate && sheldon_grade) { // if (!slabServiceOrderRejectDate && !slabServiceOrderConfirmDate && sheldon_grade) { // slabServiceConfirmActions = <Fragment> // <button // className="btn btn-xs btn-success" // onClick={event => { // event.preventDefault(); // event.stopPropagation(); // this.setState({ // confirmAcceptModalOpened: true, // }) // }} // // onClick={event => this.confirmService(slabServiceOrderId)} // disabled={loading ? true : false} // > // Подт. // </button> // <button // className="btn btn-xs btn-danger" // onClick={event => { // event.preventDefault(); // event.stopPropagation(); // this.setState({ // confirmRejectModalOpened: true, // }) // }} // // onClick={event => this.rejectService(slabServiceOrderId)} // disabled={loading ? true : false} // > // Отк. // </button> // </Fragment> // } // } /** * Определяем выбран ли заказ на слаб. * Если да, но не выбран тариф, надо подсветить тариф */ // let SlabServiceOrdered = true; // let SlabServiceOrdered = slabServiceSelected ? true : false; // let SlabServiceOrdered = SlabServiceOrder || slabServiceSelected ? true : false; var SlabServiceOrdered = this.isSlabServiceOrdered(); var tarifSelect = void 0; services.map(function (service) { var serviceId = service.id, code = service.code, name = service.name, short_name = service.short_name; var selectedService = selectedServices && selectedServices.find(function (n) { return n.id === serviceId; }); var ServiceOrder = ServiceOrders.find(function (i) { return i.Service.id === serviceId; }); var label = _react2.default.createElement( 'label', { onClick: !ServiceOrder ? function (event) { event.preventDefault(); event.stopPropagation(); _this5.setService(service); } : undefined, style: { width: "100%", textAlign: "center", cursor: "pointer" } }, short_name || name ); var selected = selectedService ? selectedService._selected : ServiceOrder ? true : false; // let className; switch (code) { case "slab": // if (selected && slabServiceOrderConfirmDate) { if (selected && slabServiceOrderId && sheldon_grade) { tarifSelect = _react2.default.createElement( 'div', { ref: function ref(node) { _this5.selectTarifWrapper = node; } }, _react2.default.createElement(_TarifSelect2.default, { tarifsSelectionOpen: tarifsSelectionOpen, selectedSlabTarif: selectedSlabTarif, SlabServiceOrder: SlabServiceOrder, SlabServiceOrdered: SlabServiceOrdered, slabTarif: slabTarif, slabTarifs: slabTarifs, price: price, onSlabClick: function onSlabClick(event) { _this5.setState({ tarifsSelectionOpen: !tarifsSelectionOpen // tarifsSelectionOpen: true, }); }, setTarif: function setTarif(tarif) { return _this5.setTarif(tarif); }, resetOrder: function resetOrder(event) { _this5.setService(service); _this5.updateItem({ slabTarif: undefined }); }, updateObject: function updateObject(data) { _this5.updateItem(data); _this5.setState({ tarifsSelectionOpen: false }); }, rejectSlabOrder: _this5.rejectSlabOrder, slabRejected: rejectSlabService ? true : false, canEdit: canEdit }) ); // label = tarifSelect; } // className = "tariff-td"; break; default: ; } servicesList.push(_react2.default.createElement( 'div', { key: serviceId, title: name // className={[className, "service_accept", selected ? "checked-item" : ""].join(" ")} , className: ["service_accept", selected ? "checked-item" : ""].join(" ") }, label )); return null; }); var slabDate = void 0; if (slabServiceOrderConfirmDate) { slabDate = (0, _moment2.default)(slabServiceOrderConfirmDate).format('DD.MM.YY'); } return _PrismaCmsComponent.prototype.render.call(this, _react2.default.createElement( 'tr', null, _react2.default.createElement( 'td', null, number, slabServiceConfirmActions, slabServiceModals ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'span', { className: 'text-block text-ellipsis item-title', title: title }, title ) ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'span', { className: 'text-block' }, year ) ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'span', { className: 'text-block' }, metal ) ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'span', { className: 'text-block no-wrap-block' }, _react2.default.createElement(_reactNumberFormat2.default, { value: price || 0, displayType: 'text', thousandSeparator: ' ' }) ) ), _react2.default.createElement( 'td', null, preGradeStr ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'div', { className: 'tab-block services ready-service' }, servicesList ) ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'span', { className: 'text-block-grade' }, sheldon_gradeStr, ' ', sheldon_grade_details ? _react2.default.createElement( 'span', { className: 'order-item--sheldon_grade_details' }, sheldon_grade_details ) : null ) ), _react2.default.createElement( 'td', { className: 'tariff-td' }, tarifSelect ), _react2.default.createElement( 'td', null, slabDate ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'div', { className: 'tab-block services ready-service' }, services.map(function (n) { var serviceId = n.id, name = n.name, code = n.code; // const ready = ServiceOrders.find(i => i.Service.id === serviceId && i.readyDate) var serviceOrder = ServiceOrders.find(function (i) { return i.Service.id === serviceId; }); var _ref11 = serviceOrder || {}, readyDate = _ref11.readyDate; var label = _react2.default.createElement( 'label', null, readyDate ? (0, _moment2.default)(readyDate).format('DD.MM.YY') : "Дата" ); return _react2.default.createElement( 'div', { key: serviceId, title: name, className: ["service_accept", readyDate ? "checked-item" : ""].join(" ") }, code === "slab" && slab && readyDate ? _react2.default.createElement( _SlabLink2.default, { slab: slab }, label ) : label ); }) ) ), _react2.default.createElement( 'td', null, _react2.default.createElement( 'span', { className: 'text-block' }, _react2.default.createElement(_reactNumberFormat2.default, { value: amount || 0, displayType: 'text', thousandSeparator: ' ' }) ) ) )); }; return OrderItem; }(_component2.default), _class.propTypes = _extends({}, _component2.default.propTypes, { item: _propTypes2.default.object.isRequired, updateItem: _propTypes2.default.func.isRequired, services: _propTypes2.default.array.isRequired, amount: _propTypes2.default.number.isRequired, classes: _propTypes2.default.object.isRequired, /** * Заказ может быть в статусе Архивный. * Элементы такого заказа нельзя редактировать. */ canEdit: _propTypes2.default.func.isRequired, canOrderSlab: _propTypes2.default.func.isRequired, notGradable: _propTypes2.default.func.isRequired, getDirty: _propTypes2.default.func.isRequired, setService: _propTypes2.default.func.isRequired, isSlabServiceOrdered: _propTypes2.default.func.isRequired }), _temp); exports.default = OrderItem; module.exports = exports['default'];