@rnga/orders
Version:
## Get schema from @prisma-cms 1. yarn get-api-schema -e http://localhost:4000 2. yarn build-api-fragments
505 lines (411 loc) • 15 kB
JavaScript
;
exports.__esModule = true;
exports.ServicesOrdersPageView = undefined;
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;
// import {
// styles,
// TableView,
// } from '../../DataList/View/Table';
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _styles = require('material-ui/styles');
var _Badge = require('material-ui/Badge');
var _Badge2 = _interopRequireDefault(_Badge);
var _Pagination = require('Pagination');
var _Pagination2 = _interopRequireDefault(_Pagination);
var _Table = require('apollo-cms/src/DataView/List/Table');
var _reactRouterDom = require('react-router-dom');
var _materialUi = require('material-ui');
var _Link = require('ui/User/Link');
var _Link2 = _interopRequireDefault(_Link);
var _moment = require('moment');
var _moment2 = _interopRequireDefault(_moment);
var _OrderNumber = require('ui/OrderNumber');
var _OrderNumber2 = _interopRequireDefault(_OrderNumber);
var _Status = require('ui/ServiceOrder/Status');
var _Status2 = _interopRequireDefault(_Status);
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 ServicesOrdersPageView = exports.ServicesOrdersPageView = (_temp = _class = function (_TableView) {
_inherits(ServicesOrdersPageView, _TableView);
function ServicesOrdersPageView() {
_classCallCheck(this, ServicesOrdersPageView);
return _possibleConstructorReturn(this, _TableView.apply(this, arguments));
}
ServicesOrdersPageView.prototype.setServiceOrderAsAccepted = function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(id) {
var mutate;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
mutate = this.props.mutate;
_context.next = 3;
return this.updateServiceOrder({
where: {
id: id
},
data: {
status: "Accepted"
}
});
case 3:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function setServiceOrderAsAccepted(_x) {
return _ref.apply(this, arguments);
}
return setServiceOrderAsAccepted;
}();
ServicesOrdersPageView.prototype.setServiceOrderAsCompleted = function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2(id) {
var mutate;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
mutate = this.props.mutate;
_context2.next = 3;
return this.updateServiceOrder({
where: {
id: id
},
data: {
status: "Completed",
readyDate: new Date()
}
});
case 3:
case 'end':
return _context2.stop();
}
}
}, _callee2, this);
}));
function setServiceOrderAsCompleted(_x2) {
return _ref2.apply(this, arguments);
}
return setServiceOrderAsCompleted;
}();
ServicesOrdersPageView.prototype.updateServiceOrder = function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee3(variables) {
var mutate;
return _regenerator2.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
mutate = this.props.mutate;
_context3.next = 3;
return mutate({ variables: variables });
case 3:
case 'end':
return _context3.stop();
}
}
}, _callee3, this);
}));
function updateServiceOrder(_x3) {
return _ref3.apply(this, arguments);
}
return updateServiceOrder;
}();
ServicesOrdersPageView.prototype.getFilters = function getFilters() {
var _props = this.props,
getFilters = _props.getFilters,
setFilters = _props.setFilters,
cleanFilters = _props.cleanFilters;
var _getFilters = getFilters(),
query = _getFilters.query,
activeOnly = _getFilters.activeOnly;
var filters = _react2.default.createElement(
_materialUi.Grid,
{
container: true,
spacing: 8,
alignItems: 'center'
},
_react2.default.createElement(
_materialUi.Grid,
{
item: true
},
_react2.default.createElement(_materialUi.TextField, {
label: '\u041F\u043E\u0438\u0441\u043A',
style: {
marginLeft: 10,
width: 200
},
name: 'query',
value: query || "",
onChange: function onChange(event) {
var value = event.target.value;
setFilters({
query: value
});
}
})
),
_react2.default.createElement(
_materialUi.Grid,
{
item: true
},
_react2.default.createElement(
_materialUi.Grid,
{
container: true,
alignItems: 'center'
},
_react2.default.createElement(
_materialUi.Grid,
{
item: true
},
_react2.default.createElement(_materialUi.Checkbox, {
checked: activeOnly === "true" ? true : false,
bool: 'true',
onChange: function onChange(event, checked) {
// const {
// value,
// } = event.target;
setFilters({
activeOnly: checked ? true : undefined
});
}
})
),
_react2.default.createElement(
_materialUi.Grid,
{
item: true
},
'\u0422\u043E\u043B\u044C\u043A\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435'
)
)
),
_react2.default.createElement(
_materialUi.Grid,
{
item: true
},
_react2.default.createElement(
_materialUi.Button,
{
onClick: function onClick(event) {
return cleanFilters({
// where: null,
// extraWhere: null,
});
}
},
'\u0421\u0431\u0440\u043E\u0441'
)
),
_react2.default.createElement(_materialUi.Grid, {
item: true,
xs: true
})
);
return filters;
};
ServicesOrdersPageView.prototype.render = function render() {
var _props2 = this.props,
first = _props2.first,
page = _props2.page,
limit = _props2.first,
data = _props2.data;
var _ref4 = data || {},
objectsConnection = _ref4.objectsConnection;
var _ref5 = objectsConnection || {},
aggregate = _ref5.aggregate;
var _ref6 = aggregate || {},
count = _ref6.count;
var content = _TableView.prototype.render.call(this);
return _react2.default.createElement(
'div',
null,
content,
count && limit ? _react2.default.createElement(_Pagination2.default, {
limit: limit,
total: count,
page: page || 1
}) : null
);
};
return ServicesOrdersPageView;
}(_Table.TableView), _class.propTypes = _extends({}, _Table.TableView.propTypes, {
limit: _propTypes2.default.number
}), _class.defaultProps = _extends({}, _Table.TableView.defaultProps, {
// listName: "ordersConnection",
title: "Заказы",
columnData: [{
id: 'actions', numeric: false, disablePadding: false, label: '',
renderer: function renderer(value, record, scope) {
var buttons = [];
var id = record.id,
status = record.status,
confirmDate = record.confirmDate;
switch (status) {
case "Created":
buttons.push(_react2.default.createElement(
_materialUi.Button,
{
size: 'small',
onClick: function onClick(event) {
return scope.setServiceOrderAsAccepted(id);
},
color: 'secondary'
},
'\u041F\u0440\u0438\u043D\u044F\u0442\u044C'
));
break;
case "Accepted":
buttons.push(_react2.default.createElement(
_materialUi.Button,
{
size: 'small',
onClick: function onClick(event) {
return scope.setServiceOrderAsCompleted(id);
},
color: 'primary',
disabled: !confirmDate
},
'\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C'
));
break;
}
return buttons;
}
}, {
id: 'User', numeric: false, disablePadding: true, label: 'Заказчик',
renderer: function renderer(value, record) {
var content = null;
if (value) {
content = _react2.default.createElement(_Link2.default, {
user: value
});
}
return content;
}
}, {
id: 'OrderItem', numeric: false, disablePadding: true, label: 'Товар',
renderer: function renderer(value, record, scope) {
if (!value) {
return null;
}
var _ref7 = value || {},
orderItemId = _ref7.id,
title = _ref7.title,
ServiceOrders = _ref7.ServiceOrders;
var serviceOrderId = record.id;
var otherServiceOrders = ServiceOrders.filter(function (n) {
return n.id !== serviceOrderId && n.status !== "Ended";
});
var otherOrdersLink = void 0;
if (otherServiceOrders.length > 0) {
otherOrdersLink = _react2.default.createElement(
_materialUi.Button,
{
variant: 'fab',
color: 'secondary',
style: {
width: 36,
height: 36,
fontSize: "1rem"
},
onClick: function onClick(event) {
var setFilters = scope.props.setFilters;
setFilters({
orderItem: orderItemId
});
}
},
otherServiceOrders.length
);
}
return orderItemId ? _react2.default.createElement(
'span',
null,
_react2.default.createElement(
_reactRouterDom.Link,
{
to: '/orders_items/' + orderItemId
},
title
),
otherOrdersLink
) : null;
}
}, {
id: 'Service', numeric: false, disablePadding: true, label: 'Услуга',
renderer: function renderer(value, record) {
var _ref8 = value || {},
serviceId = _ref8.id,
name = _ref8.name;
var confirmDate = record.confirmDate,
rejectDate = record.rejectDate;
// return serviceId ? <Link
// to={``}
// >
// {name}
// </Link> : null;
return name ? _react2.default.createElement(
'span',
{
style: {
color: confirmDate ? "green" : rejectDate ? "red" : undefined
}
},
name,
' ',
confirmDate ? '(\u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E)' : rejectDate ? '(\u043E\u0442\u043A\u0430\u0437)' : ""
) : null;
}
}, {
id: 'Tarif', numeric: false, disablePadding: true, label: 'Тариф',
renderer: function renderer(value, record) {
var _ref9 = value || {},
tarifId = _ref9.id,
name = _ref9.name;
return name || null;
}
}, {
id: 'status', numeric: false, disablePadding: true, label: 'Статус',
renderer: function renderer(value, record) {
return value ? _react2.default.createElement(_Status2.default, {
value: value
}) : null;
}
}, { id: 'amount', numeric: false, disablePadding: false, label: 'Сумма' }, {
id: 'createdAt', numeric: false, disablePadding: true, label: 'Дата заказа',
renderer: function renderer(value, record) {
return value && (0, _moment2.default)(value).format('DD.MM.YYYY HH:mm:ss') || null;
}
}, {
id: 'updatedAt', numeric: false, disablePadding: true, label: 'Дата обновления',
renderer: function renderer(value, record) {
return value && (0, _moment2.default)(value).format('DD.MM.YYYY HH:mm:ss') || null;
}
}, {
id: 'readyDate', numeric: false, disablePadding: true, label: 'Дата выполнения',
renderer: function renderer(value, record) {
return value && (0, _moment2.default)(value).format('DD.MM.YYYY HH:mm:ss') || null;
}
}]
// where:{
// name_contains: "немо"
// },
}), _temp);
exports.default = (0, _styles.withStyles)(_Table.styles)(ServicesOrdersPageView);