contentoh-components-library 21.2.7 → 21.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.development +3 -1
- package/.env.production +3 -1
- package/dist/components/atoms/FeatureTag/styles.js +1 -1
- package/dist/components/atoms/Graphic/Graphic.stories.js +9 -1
- package/dist/components/atoms/Graphic/index.js +4 -9
- package/dist/components/atoms/Graphic/styles.js +1 -1
- package/dist/components/atoms/MetricCard/MetricCard.stories.js +31 -0
- package/dist/components/atoms/MetricCard/index.js +24 -0
- package/dist/components/atoms/MetricCard/styles.js +20 -0
- package/dist/components/atoms/MetricSelect/MetricSelect.stories.js +46 -0
- package/dist/components/atoms/MetricSelect/index.js +37 -0
- package/dist/components/atoms/MetricSelect/styles.js +20 -0
- package/dist/components/organisms/Calendar/Calendar.stories.js +28 -0
- package/dist/components/organisms/Calendar/index.js +33 -0
- package/dist/components/organisms/Calendar/styles.js +20 -0
- package/dist/components/organisms/DashboardMetric/DashboardMetric.stories.js +45 -0
- package/dist/components/organisms/DashboardMetric/index.js +168 -0
- package/dist/components/organisms/DashboardMetric/styles.js +20 -0
- package/dist/components/organisms/FullProductNameHeader/index.js +1 -1
- package/dist/components/pages/Dashboard/Dashboard.stories.js +28 -0
- package/dist/components/pages/Dashboard/index.js +292 -0
- package/dist/components/pages/Dashboard/styles.js +18 -0
- package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +73 -121
- package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +55 -55
- package/dist/components/pages/RetailerProductEdition/index.js +3 -3
- package/dist/index.js +13 -0
- package/package.json +2 -1
- package/src/components/atoms/FeatureTag/styles.js +6 -0
- package/src/components/atoms/Graphic/Graphic.stories.js +8 -0
- package/src/components/atoms/Graphic/index.js +3 -9
- package/src/components/atoms/Graphic/styles.js +1 -2
- package/src/components/atoms/MetricCard/MetricCard.stories.js +14 -0
- package/src/components/atoms/MetricCard/index.js +10 -0
- package/src/components/atoms/MetricCard/styles.js +30 -0
- package/src/components/atoms/MetricSelect/MetricSelect.stories.js +37 -0
- package/src/components/atoms/MetricSelect/index.js +22 -0
- package/src/components/atoms/MetricSelect/styles.js +20 -0
- package/src/components/organisms/Calendar/Calendar.stories.js +10 -0
- package/src/components/organisms/Calendar/index.js +17 -0
- package/src/components/organisms/Calendar/styles.js +851 -0
- package/src/components/organisms/DashboardMetric/DashboardMetric.stories.js +28 -0
- package/src/components/organisms/DashboardMetric/index.js +128 -0
- package/src/components/organisms/DashboardMetric/styles.js +60 -0
- package/src/components/organisms/FullProductNameHeader/index.js +1 -1
- package/src/components/pages/Dashboard/Dashboard.stories.js +10 -0
- package/src/components/pages/Dashboard/index.js +146 -0
- package/src/components/pages/Dashboard/styles.js +24 -0
- package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +80 -146
- package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +58 -58
- package/src/components/pages/RetailerProductEdition/index.js +3 -2
- package/src/index.js +1 -0
|
@@ -72,7 +72,7 @@ var FullProductNameHeader = function FullProductNameHeader(_ref) {
|
|
|
72
72
|
feature: "Prov",
|
|
73
73
|
value: headerData === null || headerData === void 0 ? void 0 : (_headerData$article4 = headerData.article) === null || _headerData$article4 === void 0 ? void 0 : _headerData$article4.company_name
|
|
74
74
|
}, {
|
|
75
|
-
feature: "
|
|
75
|
+
feature: "SKU",
|
|
76
76
|
value: (headerData === null || headerData === void 0 ? void 0 : (_headerData$article5 = headerData.article) === null || _headerData$article5 === void 0 ? void 0 : _headerData$article5.upc) || (headerData === null || headerData === void 0 ? void 0 : headerData.upc)
|
|
77
77
|
}]
|
|
78
78
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_AvatarAndValidation.AvatarAndValidation, {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.DashboardDeafult = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _ = require(".");
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
var _default = {
|
|
17
|
+
title: "Components/pages/Dashboard",
|
|
18
|
+
component: _.Dashboard
|
|
19
|
+
};
|
|
20
|
+
exports.default = _default;
|
|
21
|
+
|
|
22
|
+
var Template = function Template(args) {
|
|
23
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Dashboard, (0, _objectSpread2.default)({}, args));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var DashboardDeafult = Template.bind({});
|
|
27
|
+
exports.DashboardDeafult = DashboardDeafult;
|
|
28
|
+
DashboardDeafult.args = {};
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Dashboard = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _styles = require("./styles");
|
|
17
|
+
|
|
18
|
+
var _MetricCard = require("../../atoms/MetricCard");
|
|
19
|
+
|
|
20
|
+
var _DashboardMetric = require("../../organisms/DashboardMetric");
|
|
21
|
+
|
|
22
|
+
var _react = require("react");
|
|
23
|
+
|
|
24
|
+
var _Loading = require("../../atoms/Loading");
|
|
25
|
+
|
|
26
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
27
|
+
|
|
28
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
+
|
|
30
|
+
var Dashboard = function Dashboard() {
|
|
31
|
+
var _useState = (0, _react.useState)([]),
|
|
32
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
33
|
+
metricsData = _useState2[0],
|
|
34
|
+
setMetricsData = _useState2[1];
|
|
35
|
+
|
|
36
|
+
var _useState3 = (0, _react.useState)({}),
|
|
37
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
38
|
+
productsByStatus = _useState4[0],
|
|
39
|
+
setProductsByStatus = _useState4[1];
|
|
40
|
+
|
|
41
|
+
var _useState5 = (0, _react.useState)([]),
|
|
42
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
43
|
+
requiredProducts = _useState6[0],
|
|
44
|
+
setRequiredProducts = _useState6[1];
|
|
45
|
+
|
|
46
|
+
var _useState7 = (0, _react.useState)({
|
|
47
|
+
retailerId: null,
|
|
48
|
+
startDate: null,
|
|
49
|
+
endDate: null
|
|
50
|
+
}),
|
|
51
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
52
|
+
orderByStatus = _useState8[0],
|
|
53
|
+
setOrderByStatus = _useState8[1];
|
|
54
|
+
|
|
55
|
+
var _useState9 = (0, _react.useState)({
|
|
56
|
+
retailerId: null,
|
|
57
|
+
startDate: null,
|
|
58
|
+
endDate: null
|
|
59
|
+
}),
|
|
60
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
61
|
+
orderByRequired = _useState10[0],
|
|
62
|
+
setOrderByRequired = _useState10[1];
|
|
63
|
+
|
|
64
|
+
var _useState11 = (0, _react.useState)({}),
|
|
65
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
66
|
+
retailers = _useState12[0],
|
|
67
|
+
setRetailers = _useState12[1];
|
|
68
|
+
|
|
69
|
+
var _useState13 = (0, _react.useState)(true),
|
|
70
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
71
|
+
loading = _useState14[0],
|
|
72
|
+
setLoading = _useState14[1];
|
|
73
|
+
|
|
74
|
+
var loadProductVersions = /*#__PURE__*/function () {
|
|
75
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(queryObject) {
|
|
76
|
+
var byStatus,
|
|
77
|
+
retailerId,
|
|
78
|
+
startDate,
|
|
79
|
+
endDate,
|
|
80
|
+
query,
|
|
81
|
+
endpoint,
|
|
82
|
+
response,
|
|
83
|
+
_args = arguments;
|
|
84
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
85
|
+
while (1) {
|
|
86
|
+
switch (_context.prev = _context.next) {
|
|
87
|
+
case 0:
|
|
88
|
+
byStatus = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
|
|
89
|
+
retailerId = queryObject.retailerId, startDate = queryObject.startDate, endDate = queryObject.endDate;
|
|
90
|
+
query = "retailerId=".concat(retailerId, "&startDate=").concat(startDate, "&endDate=").concat(endDate);
|
|
91
|
+
endpoint = byStatus ? process.env.REACT_APP_READ_ORDERS_BY_STATUS : process.env.REACT_APP_READ_REQUIRED_ORDERS;
|
|
92
|
+
_context.prev = 4;
|
|
93
|
+
_context.next = 7;
|
|
94
|
+
return _axios.default.get("".concat(endpoint, "?").concat(query));
|
|
95
|
+
|
|
96
|
+
case 7:
|
|
97
|
+
response = _context.sent;
|
|
98
|
+
return _context.abrupt("return", JSON.parse(response.data.body));
|
|
99
|
+
|
|
100
|
+
case 11:
|
|
101
|
+
_context.prev = 11;
|
|
102
|
+
_context.t0 = _context["catch"](4);
|
|
103
|
+
console.log(_context.t0);
|
|
104
|
+
|
|
105
|
+
case 14:
|
|
106
|
+
case "end":
|
|
107
|
+
return _context.stop();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}, _callee, null, [[4, 11]]);
|
|
111
|
+
}));
|
|
112
|
+
|
|
113
|
+
return function loadProductVersions(_x) {
|
|
114
|
+
return _ref.apply(this, arguments);
|
|
115
|
+
};
|
|
116
|
+
}();
|
|
117
|
+
|
|
118
|
+
var getRetailers = /*#__PURE__*/function () {
|
|
119
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
120
|
+
var retailersResponse, parsed, retailers;
|
|
121
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
122
|
+
while (1) {
|
|
123
|
+
switch (_context2.prev = _context2.next) {
|
|
124
|
+
case 0:
|
|
125
|
+
_context2.next = 2;
|
|
126
|
+
return _axios.default.get("".concat(process.env.REACT_APP_RETAILER_ENDPOINT), {
|
|
127
|
+
headers: {
|
|
128
|
+
Authorization: sessionStorage.getItem("jwt")
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
case 2:
|
|
133
|
+
retailersResponse = _context2.sent;
|
|
134
|
+
parsed = JSON.parse(retailersResponse.data.body).data;
|
|
135
|
+
retailers = Object.keys(parsed).map(function (key) {
|
|
136
|
+
if (key.includes('The Home Depot')) return parsed[key];
|
|
137
|
+
}).filter(function (f) {
|
|
138
|
+
return f;
|
|
139
|
+
});
|
|
140
|
+
setRetailers(retailers);
|
|
141
|
+
|
|
142
|
+
case 6:
|
|
143
|
+
case "end":
|
|
144
|
+
return _context2.stop();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}, _callee2);
|
|
148
|
+
}));
|
|
149
|
+
|
|
150
|
+
return function getRetailers() {
|
|
151
|
+
return _ref2.apply(this, arguments);
|
|
152
|
+
};
|
|
153
|
+
}();
|
|
154
|
+
|
|
155
|
+
var loadProductsByStatus = /*#__PURE__*/function () {
|
|
156
|
+
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(orderByStatus) {
|
|
157
|
+
var _yield$loadProductVer, orders, fullData, total, R, ACA, PA, inProcess;
|
|
158
|
+
|
|
159
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
160
|
+
while (1) {
|
|
161
|
+
switch (_context3.prev = _context3.next) {
|
|
162
|
+
case 0:
|
|
163
|
+
_context3.next = 2;
|
|
164
|
+
return loadProductVersions(orderByStatus, true);
|
|
165
|
+
|
|
166
|
+
case 2:
|
|
167
|
+
_yield$loadProductVer = _context3.sent;
|
|
168
|
+
orders = _yield$loadProductVer.orders;
|
|
169
|
+
fullData = _yield$loadProductVer.fullData;
|
|
170
|
+
total = fullData.total, R = fullData.R, ACA = fullData.ACA, PA = fullData.PA;
|
|
171
|
+
inProcess = Object.keys(fullData).reduce(function (prev, curr) {
|
|
172
|
+
return !['total', 'ACA', 'PA', 'R'].includes(curr) ? prev + fullData[curr] : prev;
|
|
173
|
+
}, 0);
|
|
174
|
+
setMetricsData([{
|
|
175
|
+
label: "Productos totales",
|
|
176
|
+
value: total
|
|
177
|
+
}, {
|
|
178
|
+
label: "Productos sin asignar",
|
|
179
|
+
value: PA + R
|
|
180
|
+
}, {
|
|
181
|
+
label: "Productos en proceso",
|
|
182
|
+
value: inProcess
|
|
183
|
+
}, {
|
|
184
|
+
label: "Productos terminados",
|
|
185
|
+
value: ACA
|
|
186
|
+
}]);
|
|
187
|
+
setProductsByStatus(orders);
|
|
188
|
+
|
|
189
|
+
case 9:
|
|
190
|
+
case "end":
|
|
191
|
+
return _context3.stop();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}, _callee3);
|
|
195
|
+
}));
|
|
196
|
+
|
|
197
|
+
return function loadProductsByStatus(_x2) {
|
|
198
|
+
return _ref3.apply(this, arguments);
|
|
199
|
+
};
|
|
200
|
+
}();
|
|
201
|
+
|
|
202
|
+
var loadRequiredProducts = /*#__PURE__*/function () {
|
|
203
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(orderByRequired) {
|
|
204
|
+
var _yield$loadProductVer2, dates;
|
|
205
|
+
|
|
206
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
207
|
+
while (1) {
|
|
208
|
+
switch (_context4.prev = _context4.next) {
|
|
209
|
+
case 0:
|
|
210
|
+
_context4.next = 2;
|
|
211
|
+
return loadProductVersions(orderByRequired);
|
|
212
|
+
|
|
213
|
+
case 2:
|
|
214
|
+
_yield$loadProductVer2 = _context4.sent;
|
|
215
|
+
dates = _yield$loadProductVer2.dates;
|
|
216
|
+
setRequiredProducts(dates);
|
|
217
|
+
|
|
218
|
+
case 5:
|
|
219
|
+
case "end":
|
|
220
|
+
return _context4.stop();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}, _callee4);
|
|
224
|
+
}));
|
|
225
|
+
|
|
226
|
+
return function loadRequiredProducts(_x3) {
|
|
227
|
+
return _ref4.apply(this, arguments);
|
|
228
|
+
};
|
|
229
|
+
}();
|
|
230
|
+
|
|
231
|
+
(0, _react.useEffect)(function () {
|
|
232
|
+
var today = new Date();
|
|
233
|
+
var firstWeekDay = today.getDate() - today.getDay();
|
|
234
|
+
var startDate = "".concat(today.getFullYear(), "-").concat(today.getMonth() + 1, "-").concat(firstWeekDay);
|
|
235
|
+
var endDate = "".concat(today.getFullYear(), "-").concat(today.getMonth() + 1, "-").concat(today.getDate());
|
|
236
|
+
var queryObject = {
|
|
237
|
+
retailerId: "58",
|
|
238
|
+
startDate: startDate,
|
|
239
|
+
endDate: endDate
|
|
240
|
+
};
|
|
241
|
+
setOrderByStatus(queryObject);
|
|
242
|
+
setOrderByRequired(queryObject);
|
|
243
|
+
getRetailers();
|
|
244
|
+
loadProductsByStatus(queryObject);
|
|
245
|
+
loadRequiredProducts(queryObject);
|
|
246
|
+
}, []);
|
|
247
|
+
(0, _react.useEffect)(function () {
|
|
248
|
+
(orderByRequired === null || orderByRequired === void 0 ? void 0 : orderByRequired.retailerId) && (orderByStatus === null || orderByStatus === void 0 ? void 0 : orderByStatus.retailerId) && metricsData.length > 0 && setLoading(false);
|
|
249
|
+
}, [orderByRequired, orderByStatus, metricsData]);
|
|
250
|
+
return loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Loading.Loading, {}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.Container, {
|
|
251
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
252
|
+
className: "metric-cards",
|
|
253
|
+
children: metricsData.map(function (metric, index) {
|
|
254
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MetricCard.MetricCard, {
|
|
255
|
+
label: metric.label,
|
|
256
|
+
number: metric.value
|
|
257
|
+
}, "".concat(index, "-").concat(metric.value));
|
|
258
|
+
})
|
|
259
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
260
|
+
className: "metrics-main-container",
|
|
261
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DashboardMetric.DashboardMetric, {
|
|
262
|
+
label: "Productos por estatus",
|
|
263
|
+
description: "Revisa el avance individual de cada estatus, utiliza los filtros para encontrar información precisa.",
|
|
264
|
+
dataObject: productsByStatus,
|
|
265
|
+
retailerSelected: orderByStatus.retailerId,
|
|
266
|
+
retailers: retailers,
|
|
267
|
+
queryObject: orderByStatus,
|
|
268
|
+
setQueryObject: function setQueryObject(evt) {
|
|
269
|
+
loadProductsByStatus(evt);
|
|
270
|
+
setOrderByStatus(evt);
|
|
271
|
+
}
|
|
272
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DashboardMetric.DashboardMetric, {
|
|
273
|
+
label: "Productos solicitados",
|
|
274
|
+
description: "Filtra los productos solicitados por fecha y alcance para revisar rápidamente el flujo de trabajo.",
|
|
275
|
+
dataObject: requiredProducts,
|
|
276
|
+
type: "line",
|
|
277
|
+
indexAxis: "x",
|
|
278
|
+
scale: "x",
|
|
279
|
+
displayScale: true,
|
|
280
|
+
retailers: retailers,
|
|
281
|
+
retailerSelected: orderByRequired.retailerId,
|
|
282
|
+
queryObject: orderByRequired,
|
|
283
|
+
setQueryObject: function setQueryObject(evt) {
|
|
284
|
+
loadRequiredProducts(evt);
|
|
285
|
+
setOrderByRequired(evt);
|
|
286
|
+
}
|
|
287
|
+
})]
|
|
288
|
+
})]
|
|
289
|
+
});
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
exports.Dashboard = Dashboard;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Container = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _templateObject;
|
|
15
|
+
|
|
16
|
+
var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n padding: 30px;\n .metric-cards {\n display: flex;\n\n > * + * {\n margin-left: 10px;\n }\n\n & + * {\n margin-top: 10px;\n }\n }\n\n .metrics-main-container {\n display: flex;\n\n > * + * {\n margin-left: 10px;\n }\n }\n"])));
|
|
17
|
+
|
|
18
|
+
exports.Container = Container;
|
|
@@ -36,146 +36,98 @@ ProviderProductEditionDefault.args = {
|
|
|
36
36
|
category: 846,
|
|
37
37
|
version: 2,
|
|
38
38
|
productSelected: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
orderId: 2446,
|
|
40
|
+
article_status: "AP",
|
|
41
|
+
datasheet_status: "AP",
|
|
42
|
+
description_status: "AP",
|
|
43
|
+
images_status: "ACA",
|
|
44
|
+
prio: "none",
|
|
45
|
+
version: 2,
|
|
46
|
+
brand: null,
|
|
42
47
|
article: {
|
|
43
|
-
category: "
|
|
44
|
-
company_name: "
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
category: "Organizadores y Closets|Accesorios de Lavandería|Organizadores de Lavandería",
|
|
49
|
+
company_name: "WOMEX SA DE CV",
|
|
50
|
+
id_company: 424,
|
|
51
|
+
country: null,
|
|
52
|
+
id_category: "2522",
|
|
53
|
+
id_article: 78773,
|
|
54
|
+
name: "RACK PARA ROPA DOBLE NEGRO",
|
|
55
|
+
upc: "168462"
|
|
50
56
|
},
|
|
51
|
-
asignations: [],
|
|
52
57
|
retailers: [{
|
|
53
58
|
id: 58,
|
|
54
|
-
name: "The Home Depot Golden"
|
|
55
|
-
country: "México",
|
|
56
|
-
id_region: 1,
|
|
57
|
-
active: 1
|
|
58
|
-
}, {
|
|
59
|
-
id: 59,
|
|
60
|
-
name: "The Home Depot Platinum",
|
|
61
|
-
country: "México",
|
|
62
|
-
id_region: 1,
|
|
63
|
-
active: 1
|
|
64
|
-
}, {
|
|
65
|
-
id: 61,
|
|
66
|
-
name: "Home Depot TAB",
|
|
67
|
-
country: "México",
|
|
68
|
-
id_region: 1,
|
|
69
|
-
active: 1
|
|
59
|
+
name: "The Home Depot Golden"
|
|
70
60
|
}],
|
|
71
|
-
|
|
61
|
+
services: {
|
|
62
|
+
datasheets: 1,
|
|
63
|
+
descriptions: 1,
|
|
64
|
+
images: 1
|
|
65
|
+
},
|
|
66
|
+
statusByRetailer: {
|
|
67
|
+
58: {
|
|
68
|
+
datasheet: "AP",
|
|
69
|
+
description: "AP",
|
|
70
|
+
images: "ACA"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
retailersWithService: ["58"],
|
|
74
|
+
id_article: 78773,
|
|
72
75
|
retailersAvailable: [{
|
|
73
76
|
id: 58,
|
|
74
|
-
name: "The Home Depot Golden"
|
|
75
|
-
country: "México",
|
|
76
|
-
id_region: 1,
|
|
77
|
-
active: 1
|
|
78
|
-
}, {
|
|
79
|
-
id: 59,
|
|
80
|
-
name: "The Home Depot Platinum",
|
|
81
|
-
country: "México",
|
|
82
|
-
id_region: 1,
|
|
83
|
-
active: 1
|
|
84
|
-
}, {
|
|
85
|
-
id: 61,
|
|
86
|
-
name: "Home Depot TAB",
|
|
87
|
-
country: "México",
|
|
88
|
-
id_region: 1,
|
|
89
|
-
active: 1
|
|
90
|
-
}],
|
|
91
|
-
upc: "111187",
|
|
92
|
-
name: "SIKA TECHO FRESCO SUPER 15",
|
|
93
|
-
categoryName: "Materiales de Construcción|Impermeabilizantes y Recubrimientos|Selladores",
|
|
94
|
-
id_category: "2249",
|
|
95
|
-
id_article: 29457,
|
|
96
|
-
services: [{
|
|
97
|
-
id_article: 29457,
|
|
98
|
-
service: "datasheet",
|
|
99
|
-
quantity: 1,
|
|
100
|
-
price: 0,
|
|
101
|
-
id_user: 1237,
|
|
102
|
-
datasheet_common: null,
|
|
103
|
-
discount: null
|
|
77
|
+
name: "The Home Depot Golden"
|
|
104
78
|
}]
|
|
105
79
|
},
|
|
106
80
|
productToEdit: {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
product:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
81
|
+
ArticleId: 78773,
|
|
82
|
+
idCategory: "2522",
|
|
83
|
+
product: {
|
|
84
|
+
orderId: 2446,
|
|
85
|
+
article_status: "AP",
|
|
86
|
+
datasheet_status: "AP",
|
|
87
|
+
description_status: "AP",
|
|
88
|
+
images_status: "ACA",
|
|
89
|
+
prio: "none",
|
|
90
|
+
version: 2,
|
|
91
|
+
brand: null,
|
|
113
92
|
article: {
|
|
114
|
-
category: "
|
|
115
|
-
company_name: "
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
93
|
+
category: "Organizadores y Closets|Accesorios de Lavandería|Organizadores de Lavandería",
|
|
94
|
+
company_name: "WOMEX SA DE CV",
|
|
95
|
+
id_company: 424,
|
|
96
|
+
country: null,
|
|
97
|
+
id_category: "2522",
|
|
98
|
+
id_article: 78773,
|
|
99
|
+
name: "RACK PARA ROPA DOBLE NEGRO",
|
|
100
|
+
upc: "168462"
|
|
121
101
|
},
|
|
122
|
-
asignations: [],
|
|
123
102
|
retailers: [{
|
|
124
103
|
id: 58,
|
|
125
|
-
name: "The Home Depot Golden"
|
|
126
|
-
country: "México",
|
|
127
|
-
id_region: 1,
|
|
128
|
-
active: 1
|
|
129
|
-
}, {
|
|
130
|
-
id: 59,
|
|
131
|
-
name: "The Home Depot Platinum",
|
|
132
|
-
country: "México",
|
|
133
|
-
id_region: 1,
|
|
134
|
-
active: 1
|
|
135
|
-
}, {
|
|
136
|
-
id: 61,
|
|
137
|
-
name: "Home Depot TAB",
|
|
138
|
-
country: "México",
|
|
139
|
-
id_region: 1,
|
|
140
|
-
active: 1
|
|
104
|
+
name: "The Home Depot Golden"
|
|
141
105
|
}],
|
|
142
|
-
|
|
106
|
+
services: {
|
|
107
|
+
datasheets: 1,
|
|
108
|
+
descriptions: 1,
|
|
109
|
+
images: 1
|
|
110
|
+
},
|
|
111
|
+
statusByRetailer: {
|
|
112
|
+
58: {
|
|
113
|
+
datasheet: "AP",
|
|
114
|
+
description: "AP",
|
|
115
|
+
images: "ACA"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
retailersWithService: ["58"],
|
|
119
|
+
id_article: 78773,
|
|
143
120
|
retailersAvailable: [{
|
|
144
121
|
id: 58,
|
|
145
|
-
name: "The Home Depot Golden"
|
|
146
|
-
country: "México",
|
|
147
|
-
id_region: 1,
|
|
148
|
-
active: 1
|
|
149
|
-
}, {
|
|
150
|
-
id: 59,
|
|
151
|
-
name: "The Home Depot Platinum",
|
|
152
|
-
country: "México",
|
|
153
|
-
id_region: 1,
|
|
154
|
-
active: 1
|
|
155
|
-
}, {
|
|
156
|
-
id: 61,
|
|
157
|
-
name: "Home Depot TAB",
|
|
158
|
-
country: "México",
|
|
159
|
-
id_region: 1,
|
|
160
|
-
active: 1
|
|
161
|
-
}],
|
|
162
|
-
upc: "111187",
|
|
163
|
-
name: "SIKA TECHO FRESCO SUPER 15",
|
|
164
|
-
categoryName: "Materiales de Construcción|Impermeabilizantes y Recubrimientos|Selladores",
|
|
165
|
-
id_category: "2249",
|
|
166
|
-
id_article: 29457,
|
|
167
|
-
services: [{
|
|
168
|
-
id_article: 29457,
|
|
169
|
-
service: "datasheet",
|
|
170
|
-
quantity: 1,
|
|
171
|
-
price: 0,
|
|
172
|
-
id_user: 1237,
|
|
173
|
-
datasheet_common: null,
|
|
174
|
-
discount: null
|
|
122
|
+
name: "The Home Depot Golden"
|
|
175
123
|
}]
|
|
176
|
-
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
location: {
|
|
127
|
+
state: {
|
|
128
|
+
origin: "Contentoh"
|
|
129
|
+
}
|
|
177
130
|
},
|
|
178
|
-
location: {},
|
|
179
131
|
user: {
|
|
180
132
|
id_user: 1237,
|
|
181
133
|
name: "The Home",
|