contentoh-components-library 21.3.52 → 21.3.54
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 +2 -0
- package/dist/components/molecules/CarouselImagesLogin/index.js +1 -1
- package/dist/components/molecules/HeaderTop/index.js +68 -11
- package/dist/components/organisms/Chat/Chat.stories.js +21 -1
- package/dist/components/organisms/Chat/ContainerItems/index.js +19 -3
- package/dist/components/organisms/Chat/ContainerItems/styles.js +1 -1
- package/dist/components/organisms/Chat/ContentChat/index.js +343 -191
- package/dist/components/organisms/Chat/Footer/index.js +48 -39
- package/dist/components/organisms/Chat/index.js +48 -3
- package/dist/components/organisms/FullProductNameHeader/index.js +2 -2
- package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +190 -111
- package/dist/components/pages/ProviderProductEdition/index.js +193 -152
- package/dist/components/pages/ProviderProductEdition/styles.js +1 -1
- package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +87 -57
- package/dist/components/pages/RetailerProductEdition/index.js +266 -277
- package/dist/components/pages/RetailerProductEdition/styles.js +1 -1
- package/dist/components/pages/RetailerProductEdition/utils.js +61 -2
- package/package.json +1 -1
- package/src/components/molecules/AvatarAndValidation/index.js +1 -1
- package/src/components/molecules/CarouselImagesLogin/index.js +1 -1
- package/src/components/molecules/HeaderTop/index.js +52 -6
- package/src/components/organisms/Chat/Chat.stories.js +21 -0
- package/src/components/organisms/Chat/ContainerItems/index.js +18 -2
- package/src/components/organisms/Chat/ContainerItems/styles.js +10 -2
- package/src/components/organisms/Chat/ContentChat/index.js +81 -6
- package/src/components/organisms/Chat/Footer/index.js +11 -0
- package/src/components/organisms/Chat/index.js +47 -3
- package/src/components/organisms/FullProductNameHeader/index.js +1 -1
- package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +202 -115
- package/src/components/pages/ProviderProductEdition/index.js +109 -75
- package/src/components/pages/ProviderProductEdition/styles.js +5 -1
- package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +93 -59
- package/src/components/pages/RetailerProductEdition/index.js +110 -136
- package/src/components/pages/RetailerProductEdition/styles.js +4 -0
- package/src/components/pages/RetailerProductEdition/utils.js +37 -0
- package/dist/assets/fonts/roboto/LICENSE.txt +0 -202
|
@@ -39,6 +39,9 @@ import Slide1_4 from "../../../assets/images/sliderToolTip/slide4.svg";
|
|
|
39
39
|
import Slide1_5 from "../../../assets/images/sliderToolTip/slide5.svg";
|
|
40
40
|
import { VersionSelector } from "../../organisms/VersionSelector";
|
|
41
41
|
import { useCloseModal } from "../../../global-files/customHooks";
|
|
42
|
+
import { createMessage, sendMessage } from "../RetailerProductEdition/utils";
|
|
43
|
+
import { Modal } from "../../organisms/Modal";
|
|
44
|
+
import { ButtonV2 } from "../../atoms/ButtonV2";
|
|
42
45
|
|
|
43
46
|
const reducerImages = (state, action) => {
|
|
44
47
|
let { values, attrForImgs, inputsByRetailer } = state;
|
|
@@ -214,11 +217,13 @@ export const ProviderProductEdition = ({
|
|
|
214
217
|
const isRetailer = user?.is_retailer;
|
|
215
218
|
const [loading, setLoading] = useState(true);
|
|
216
219
|
const [validatedAll, setValidatedAll] = useState(false);
|
|
220
|
+
const [showRejectModal, setShowRejectModal] = useState(false);
|
|
217
221
|
|
|
222
|
+
const originProp = location?.state?.origin;
|
|
218
223
|
const [origin, setOrigin] = useState({
|
|
219
|
-
"Ficha técnica":
|
|
220
|
-
Descripción:
|
|
221
|
-
Imágenes:
|
|
224
|
+
"Ficha técnica": originProp,
|
|
225
|
+
Descripción: originProp,
|
|
226
|
+
Imágenes: originProp,
|
|
222
227
|
});
|
|
223
228
|
const [inCart, setInCart] = useState(false);
|
|
224
229
|
const [dataGenericModal, setDataGenericModal] = useState({
|
|
@@ -342,28 +347,6 @@ export const ProviderProductEdition = ({
|
|
|
342
347
|
(type) => {
|
|
343
348
|
const formatter = new Intl.ListFormat("es", { type: "conjunction" });
|
|
344
349
|
switch (type) {
|
|
345
|
-
case "error":
|
|
346
|
-
setGlobalModal({
|
|
347
|
-
message: `${activeTab} rechazada`,
|
|
348
|
-
detail: "Agrega tu comentarios para enviar el rechazo",
|
|
349
|
-
img: errorModal,
|
|
350
|
-
textArea: true,
|
|
351
|
-
button1: {
|
|
352
|
-
name: "Enviar",
|
|
353
|
-
action: (e) => {
|
|
354
|
-
const textArea = document.querySelector("#area");
|
|
355
|
-
if (textArea.value) {
|
|
356
|
-
textArea.style.border = "none";
|
|
357
|
-
createComment(e, textArea.value);
|
|
358
|
-
showGlobalModal("commentsSent");
|
|
359
|
-
validatedAll ? validateAll("R") : sendEvaluation("R");
|
|
360
|
-
} else {
|
|
361
|
-
textArea.style.border = "2px solid red";
|
|
362
|
-
}
|
|
363
|
-
},
|
|
364
|
-
},
|
|
365
|
-
});
|
|
366
|
-
break;
|
|
367
350
|
case "generic":
|
|
368
351
|
setGlobalModal(dataGenericModal);
|
|
369
352
|
break;
|
|
@@ -477,15 +460,6 @@ export const ProviderProductEdition = ({
|
|
|
477
460
|
}
|
|
478
461
|
}, [showModal]);
|
|
479
462
|
|
|
480
|
-
useEffect(() => {
|
|
481
|
-
console.log({ location });
|
|
482
|
-
setOrigin({
|
|
483
|
-
"Ficha técnica": location?.state?.origin,
|
|
484
|
-
Descripción: location?.state?.origin,
|
|
485
|
-
Imágenes: location?.state?.origin,
|
|
486
|
-
});
|
|
487
|
-
}, [location?.state?.origin]);
|
|
488
|
-
|
|
489
463
|
const loadData = async () => {
|
|
490
464
|
const services = await getRetailerServices(
|
|
491
465
|
product?.id_article || product?.article?.id_article,
|
|
@@ -524,7 +498,9 @@ export const ProviderProductEdition = ({
|
|
|
524
498
|
);
|
|
525
499
|
setServicesData(parsedResponse);
|
|
526
500
|
}
|
|
527
|
-
|
|
501
|
+
retailers &&
|
|
502
|
+
!activeRetailer.id &&
|
|
503
|
+
setActiveRetailer(active ? active : retailers[0]);
|
|
528
504
|
};
|
|
529
505
|
|
|
530
506
|
const isRevision = () => {
|
|
@@ -539,13 +515,6 @@ export const ProviderProductEdition = ({
|
|
|
539
515
|
"Contentoh",
|
|
540
516
|
].includes(orgn);
|
|
541
517
|
if (isRetailer) {
|
|
542
|
-
console.log({
|
|
543
|
-
origin: origin[activeTab],
|
|
544
|
-
concept,
|
|
545
|
-
orgn,
|
|
546
|
-
revision,
|
|
547
|
-
currentService,
|
|
548
|
-
});
|
|
549
518
|
if (revision && currentService === "AP") return true;
|
|
550
519
|
} else {
|
|
551
520
|
const { product } = productEdit;
|
|
@@ -607,7 +576,7 @@ export const ProviderProductEdition = ({
|
|
|
607
576
|
});
|
|
608
577
|
}
|
|
609
578
|
setProduct(productTemp);
|
|
610
|
-
setActivePercentage(retailers[0]?.percentage);
|
|
579
|
+
retailers && setActivePercentage(retailers[0]?.percentage);
|
|
611
580
|
}, [percentages]);
|
|
612
581
|
|
|
613
582
|
const loadInputs = () => {
|
|
@@ -848,32 +817,19 @@ export const ProviderProductEdition = ({
|
|
|
848
817
|
}
|
|
849
818
|
};
|
|
850
819
|
|
|
851
|
-
const createComment = async (
|
|
852
|
-
let concept = "";
|
|
853
|
-
switch (activeTab) {
|
|
854
|
-
case "Ficha técnica":
|
|
855
|
-
concept = "datasheet";
|
|
856
|
-
break;
|
|
857
|
-
case "Imágenes":
|
|
858
|
-
concept = "images";
|
|
859
|
-
break;
|
|
860
|
-
|
|
861
|
-
default:
|
|
862
|
-
concept = "description";
|
|
863
|
-
break;
|
|
864
|
-
}
|
|
820
|
+
const createComment = async (messages = [], retailerId) => {
|
|
865
821
|
const data = {
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
await axios.post(`${process.env.REACT_APP_COMMENTS_ENDPOINT}`, data, {
|
|
873
|
-
headers: {
|
|
874
|
-
Authorization: token,
|
|
822
|
+
paramsBody: {
|
|
823
|
+
id: product.article.id_article || productEdit.ArticleId,
|
|
824
|
+
version: version,
|
|
825
|
+
items: messages,
|
|
826
|
+
retailerId: retailerId,
|
|
827
|
+
status: product.status || productEdit.product.status,
|
|
875
828
|
},
|
|
876
|
-
|
|
829
|
+
paramsHeader: { Authorization: token },
|
|
830
|
+
};
|
|
831
|
+
setMessage("");
|
|
832
|
+
return sendMessage(data);
|
|
877
833
|
};
|
|
878
834
|
|
|
879
835
|
useEffect(() => {
|
|
@@ -1073,6 +1029,27 @@ export const ProviderProductEdition = ({
|
|
|
1073
1029
|
const { newArticleStatus, newServiceStatus, newStatus } = JSON.parse(
|
|
1074
1030
|
res.data.body
|
|
1075
1031
|
);
|
|
1032
|
+
|
|
1033
|
+
const message = createMessage(
|
|
1034
|
+
product.retailers || product.retailersAvailable,
|
|
1035
|
+
activeRetailer.id,
|
|
1036
|
+
product[sectionStatusKey],
|
|
1037
|
+
newStatus,
|
|
1038
|
+
activeTab
|
|
1039
|
+
);
|
|
1040
|
+
|
|
1041
|
+
const messageData = {
|
|
1042
|
+
paramsBody: {
|
|
1043
|
+
id: product.article.id_article || productEdit.ArticleId,
|
|
1044
|
+
version: version,
|
|
1045
|
+
items: [{ type: "status", value: message }],
|
|
1046
|
+
retailerId: activeRetailer.id,
|
|
1047
|
+
status: product.status || productEdit.product.status,
|
|
1048
|
+
},
|
|
1049
|
+
paramsHeader: { Authorization: token },
|
|
1050
|
+
};
|
|
1051
|
+
await sendMessage(messageData);
|
|
1052
|
+
|
|
1076
1053
|
if (newArticleStatus) productTemp.status = newArticleStatus[articleId];
|
|
1077
1054
|
const retailerStatusCopy = { ...retailerStatus };
|
|
1078
1055
|
retailerStatusCopy[activeRetailer.id][concept] = newStatus;
|
|
@@ -1104,6 +1081,7 @@ export const ProviderProductEdition = ({
|
|
|
1104
1081
|
result,
|
|
1105
1082
|
isAproved: result === "A",
|
|
1106
1083
|
};
|
|
1084
|
+
const messages = [];
|
|
1107
1085
|
servicesData?.forEach((ret) => {
|
|
1108
1086
|
const { service, id_retailer } = ret;
|
|
1109
1087
|
let data = {};
|
|
@@ -1120,6 +1098,18 @@ export const ProviderProductEdition = ({
|
|
|
1120
1098
|
},
|
|
1121
1099
|
})
|
|
1122
1100
|
);
|
|
1101
|
+
if (product[`${ret.service}_status`] !== "NS") {
|
|
1102
|
+
const message = createMessage(
|
|
1103
|
+
product.retailers,
|
|
1104
|
+
ret.id_retailer,
|
|
1105
|
+
product[`${ret.service}_status`],
|
|
1106
|
+
`${result}A`,
|
|
1107
|
+
ret.service
|
|
1108
|
+
);
|
|
1109
|
+
messages.push(
|
|
1110
|
+
createComment([{ type: "status", value: message }], ret.id_retailer)
|
|
1111
|
+
);
|
|
1112
|
+
}
|
|
1123
1113
|
});
|
|
1124
1114
|
await Promise.all(evaluationArray);
|
|
1125
1115
|
const userType = user.is_retailer === 1 ? "CA" : "P";
|
|
@@ -1159,6 +1149,7 @@ export const ProviderProductEdition = ({
|
|
|
1159
1149
|
product: productTemp,
|
|
1160
1150
|
})
|
|
1161
1151
|
);
|
|
1152
|
+
await Promise.all(messages);
|
|
1162
1153
|
|
|
1163
1154
|
await loadData();
|
|
1164
1155
|
} catch (error) {
|
|
@@ -1195,7 +1186,6 @@ export const ProviderProductEdition = ({
|
|
|
1195
1186
|
|
|
1196
1187
|
const getSectionStatus = () => {
|
|
1197
1188
|
const concept = getConcept(activeTab);
|
|
1198
|
-
console.log("getSectionStatus", productEdit.product[`${concept}_status`]);
|
|
1199
1189
|
return ["AA", "AP", "R", "CA", "RCA"].includes(
|
|
1200
1190
|
productEdit.product[`${concept}_status`]
|
|
1201
1191
|
);
|
|
@@ -1287,8 +1277,7 @@ export const ProviderProductEdition = ({
|
|
|
1287
1277
|
return;
|
|
1288
1278
|
} else if (user.is_retailer) {
|
|
1289
1279
|
if (product.id_order || product.orderId) {
|
|
1290
|
-
|
|
1291
|
-
showGlobalModal("error");
|
|
1280
|
+
sendEvaluation("R");
|
|
1292
1281
|
} else {
|
|
1293
1282
|
setDataGenericModal((prev) => ({
|
|
1294
1283
|
...prev,
|
|
@@ -1300,8 +1289,7 @@ export const ProviderProductEdition = ({
|
|
|
1300
1289
|
showGlobalModal("generic");
|
|
1301
1290
|
}
|
|
1302
1291
|
} else {
|
|
1303
|
-
|
|
1304
|
-
showGlobalModal("error");
|
|
1292
|
+
sendEvaluation("R");
|
|
1305
1293
|
}
|
|
1306
1294
|
}
|
|
1307
1295
|
};
|
|
@@ -1310,6 +1298,7 @@ export const ProviderProductEdition = ({
|
|
|
1310
1298
|
<HeaderTop
|
|
1311
1299
|
setHeaderTop={setHeaderTop}
|
|
1312
1300
|
withChat={location?.state?.withChat}
|
|
1301
|
+
chatType={location?.state?.chatType}
|
|
1313
1302
|
productSelected={productSelected}
|
|
1314
1303
|
token={token}
|
|
1315
1304
|
activeRetailer={activeRetailer}
|
|
@@ -1388,7 +1377,7 @@ export const ProviderProductEdition = ({
|
|
|
1388
1377
|
} else if (user.is_retailer) {
|
|
1389
1378
|
if (product.id_order || product.orderId) {
|
|
1390
1379
|
setValidatedAll(true);
|
|
1391
|
-
|
|
1380
|
+
setShowRejectModal(true);
|
|
1392
1381
|
} else {
|
|
1393
1382
|
setDataGenericModal((prev) => ({
|
|
1394
1383
|
...prev,
|
|
@@ -1400,12 +1389,14 @@ export const ProviderProductEdition = ({
|
|
|
1400
1389
|
showGlobalModal("generic");
|
|
1401
1390
|
}
|
|
1402
1391
|
} else {
|
|
1392
|
+
setShowRejectModal(true);
|
|
1403
1393
|
setValidatedAll(true);
|
|
1404
|
-
showGlobalModal("error");
|
|
1405
1394
|
}
|
|
1406
1395
|
}}
|
|
1407
1396
|
approve={() => sendToEvaluation("A")}
|
|
1408
|
-
reject={() =>
|
|
1397
|
+
reject={() => {
|
|
1398
|
+
setShowRejectModal(true);
|
|
1399
|
+
}}
|
|
1409
1400
|
/>
|
|
1410
1401
|
<FullTabsMenu
|
|
1411
1402
|
tabsSections={tabsSections}
|
|
@@ -1640,6 +1631,49 @@ export const ProviderProductEdition = ({
|
|
|
1640
1631
|
jwt={token}
|
|
1641
1632
|
/>
|
|
1642
1633
|
)}
|
|
1634
|
+
{showRejectModal && (
|
|
1635
|
+
<Modal
|
|
1636
|
+
title={"Agregar mensaje de rechazo"}
|
|
1637
|
+
show={showRejectModal}
|
|
1638
|
+
customComponent={
|
|
1639
|
+
<TagAndInput
|
|
1640
|
+
label={"Caja de Comentario"}
|
|
1641
|
+
inputType={"textarea"}
|
|
1642
|
+
inputId={"modal-message-box"}
|
|
1643
|
+
index={0}
|
|
1644
|
+
color={"white"}
|
|
1645
|
+
/>
|
|
1646
|
+
}
|
|
1647
|
+
buttons={[
|
|
1648
|
+
<ButtonV2
|
|
1649
|
+
key={"btn-Cancelar"}
|
|
1650
|
+
type={"white"}
|
|
1651
|
+
label={"Cancelar"}
|
|
1652
|
+
size={12}
|
|
1653
|
+
onClick={() => {
|
|
1654
|
+
setShowRejectModal(false);
|
|
1655
|
+
}}
|
|
1656
|
+
/>,
|
|
1657
|
+
<ButtonV2
|
|
1658
|
+
key={"btn-Aceptar"}
|
|
1659
|
+
type={"pink"}
|
|
1660
|
+
label={"Aceptar"}
|
|
1661
|
+
size={12}
|
|
1662
|
+
onClick={async () => {
|
|
1663
|
+
const body = document.querySelector(
|
|
1664
|
+
"#modal-message-box .ql-container .ql-editor > p"
|
|
1665
|
+
).innerHTML;
|
|
1666
|
+
const messages = [
|
|
1667
|
+
{ type: "message", value: body?.replace(/<.*?\/?>/gm, "") },
|
|
1668
|
+
];
|
|
1669
|
+
await createComment(messages, activeRetailer.id);
|
|
1670
|
+
validatedAll ? validateAll("R") : sendToEvaluation("R");
|
|
1671
|
+
setShowRejectModal(false);
|
|
1672
|
+
}}
|
|
1673
|
+
/>,
|
|
1674
|
+
]}
|
|
1675
|
+
/>
|
|
1676
|
+
)}
|
|
1643
1677
|
</Container>
|
|
1644
1678
|
);
|
|
1645
1679
|
};
|
|
@@ -107,6 +107,10 @@ export const Container = styled.div`
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
+
#modal-message-box {
|
|
111
|
+
width: 400px;
|
|
112
|
+
height: 100px;
|
|
113
|
+
}
|
|
110
114
|
.container {
|
|
111
115
|
width: 100%;
|
|
112
116
|
height: 100%;
|
|
@@ -115,4 +119,4 @@ export const Container = styled.div`
|
|
|
115
119
|
width: 100%;
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
|
-
`;
|
|
122
|
+
`;
|
|
@@ -16,88 +16,122 @@ RetailerProductEditionDefault.args = {
|
|
|
16
16
|
Imágenes: false,
|
|
17
17
|
},
|
|
18
18
|
token:
|
|
19
|
-
"eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.
|
|
19
|
+
"eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI5YTIxMzEyOC02NDgyLTRjMTYtYTRiNi02ZTY0ZjIyNWIxYmQiLCJjb2duaXRvOmdyb3VwcyI6WyJjb2xhYm9yYWRvcmVzX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwiY29nbml0bzp1c2VybmFtZSI6IjlhMjEzMTI4LTY0ODItNGMxNi1hNGI2LTZlNjRmMjI1YjFiZCIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiI5OGE0NzYxMy04ZGIyLTRlZjUtYjA0Mi01ZDU3MWRkZjIwMWIiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY4Mzg3NTIyNiwibmFtZSI6IkNvbGFib3JhZG9yIiwicGhvbmVfbnVtYmVyIjoiKzUyMTExMSIsImV4cCI6MTY4Mzg3ODgyNiwiaWF0IjoxNjgzODc1MjI2LCJlbWFpbCI6ImlzbWFlbDk3bG9wZXpAZ21haWwuY29tIn0.EtgmT_THMx-Zy_zB5yZK4gz6TXNTVVJEKFt5X0JK2UkGVrp_q_92YCEuejS4n976fyTez0jkwOee6IkVHLV71uZWRBDFt-3Yw4ZxfsZYPNJWhoHXGNxhMU8MCkSntfu597esBTk-VsUpstT5R7L-WJfN8viE7R-qVo-42RlPTG0TFrWA9q0oTcqjv8vbxLpOBUjiEpjmqRhg4blJZwgkGNta6MOlw1vfmisOVbo9wMvqwnCZ9xx9KMKoH9U4uNObK_JomjbvPmTmkcUXsE-wGSD7XcoSwtuhBngLC7-jiu1u8MvL_ff5Z0Qp70sSpLdUglcSS8d1Xf7j_fcZuJ5jKA",
|
|
20
20
|
productSelected: {
|
|
21
|
-
orderId:
|
|
22
|
-
|
|
23
|
-
datasheet_status: "
|
|
24
|
-
description_status: "AC",
|
|
25
|
-
images_status: "AC",
|
|
21
|
+
orderId: 15142,
|
|
22
|
+
status: "CA",
|
|
23
|
+
datasheet_status: "CA",
|
|
26
24
|
prio: "none",
|
|
27
25
|
version: 3,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
name: "BB HORA DEL BANO SET MENTA",
|
|
37
|
-
upc: "93905444796",
|
|
26
|
+
description_status: "AC",
|
|
27
|
+
images_status: "CA",
|
|
28
|
+
brand: "Garnier",
|
|
29
|
+
retailerOrder: 0,
|
|
30
|
+
missing: {
|
|
31
|
+
datasheet: null,
|
|
32
|
+
descriptions: null,
|
|
33
|
+
images: null,
|
|
38
34
|
},
|
|
39
|
-
retailers: [
|
|
40
|
-
{
|
|
41
|
-
id: 70,
|
|
42
|
-
name: "Bodega Aurrera",
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
35
|
services: {
|
|
46
36
|
datasheets: 1,
|
|
47
37
|
descriptions: 1,
|
|
48
38
|
images: 1,
|
|
49
39
|
},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
40
|
+
article: {
|
|
41
|
+
category:
|
|
42
|
+
"Salud y Belleza|Cuidado del Cabello|Shampoos y Acondicionadores",
|
|
43
|
+
company_name: "GRUPO BRAHMA",
|
|
44
|
+
country: "México",
|
|
45
|
+
id_category: "697",
|
|
46
|
+
id_datasheet_especialist: 54,
|
|
47
|
+
id_datasheet_facilitator: 52,
|
|
48
|
+
id_description_especialist: 54,
|
|
49
|
+
id_description_facilitator: 52,
|
|
50
|
+
id_images_especialist: 55,
|
|
51
|
+
id_images_facilitator: 53,
|
|
52
|
+
id_order: 15142,
|
|
53
|
+
id_article: 39270,
|
|
54
|
+
id_auditor: 37,
|
|
55
|
+
name: "Acondicionador Garnier Fructis 650 ml",
|
|
56
|
+
timestamp: "2023-03-27T18:37:48.000Z",
|
|
57
|
+
upc: "750955287656712",
|
|
56
58
|
},
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
retailers: [
|
|
60
|
+
{
|
|
61
|
+
id: 12,
|
|
62
|
+
name: "La Comer",
|
|
63
|
+
image:
|
|
64
|
+
"https://content-management-images.s3.amazonaws.com/retailers/12.png",
|
|
65
|
+
services: ["CA", "CA", "AC", "NA", "NA", "NA", "NA", "NA", "NA"],
|
|
66
|
+
percentage: 100,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 29,
|
|
70
|
+
name: "Farmacias del Ahorro",
|
|
71
|
+
image:
|
|
72
|
+
"https://content-management-images.s3.amazonaws.com/retailers/29.png",
|
|
73
|
+
services: ["NA", "NA", "NA", "CA", "CA", "CA", "NA", "NA", "NA"],
|
|
74
|
+
percentage: 100,
|
|
75
|
+
},
|
|
60
76
|
{
|
|
61
|
-
id:
|
|
62
|
-
name: "
|
|
77
|
+
id: 63,
|
|
78
|
+
name: "DAX",
|
|
79
|
+
image:
|
|
80
|
+
"https://content-management-images.s3.amazonaws.com/retailers/63.png",
|
|
81
|
+
services: ["NA", "NA", "NA", "NA", "NA", "NA", "AC", "AC", "CA"],
|
|
82
|
+
percentage: 83,
|
|
63
83
|
},
|
|
64
84
|
],
|
|
85
|
+
statusByRetailer: {
|
|
86
|
+
12: {
|
|
87
|
+
datasheet: "CA",
|
|
88
|
+
description: "CA",
|
|
89
|
+
},
|
|
90
|
+
29: {
|
|
91
|
+
datasheet: "CA",
|
|
92
|
+
description: "CA",
|
|
93
|
+
},
|
|
94
|
+
},
|
|
65
95
|
},
|
|
66
96
|
location: {
|
|
67
|
-
product: { articleId:
|
|
97
|
+
product: { articleId: 354, versionId: 3 },
|
|
98
|
+
state: {
|
|
99
|
+
withChat: true,
|
|
100
|
+
chatType: "product_status",
|
|
101
|
+
},
|
|
68
102
|
},
|
|
69
103
|
user: {
|
|
70
|
-
id_user:
|
|
71
|
-
name: "
|
|
72
|
-
last_name: "
|
|
73
|
-
email: "
|
|
74
|
-
position: "
|
|
75
|
-
telephone: "
|
|
104
|
+
id_user: 37,
|
|
105
|
+
name: "José",
|
|
106
|
+
last_name: "Castañeda",
|
|
107
|
+
email: "ismael97lopez@gmail.com",
|
|
108
|
+
position: "Auditor",
|
|
109
|
+
telephone: "",
|
|
76
110
|
country: "México",
|
|
77
|
-
id_company:
|
|
78
|
-
id_cognito: "
|
|
111
|
+
id_company: 2,
|
|
112
|
+
id_cognito: "9a213128-6482-4c16-a4b6-6e64f225b1bd",
|
|
79
113
|
birth_Date: null,
|
|
80
|
-
about_me:
|
|
81
|
-
zip_code:
|
|
82
|
-
address:
|
|
83
|
-
job:
|
|
84
|
-
id_stripe:
|
|
85
|
-
id_role:
|
|
114
|
+
about_me: "",
|
|
115
|
+
zip_code: "",
|
|
116
|
+
address: "",
|
|
117
|
+
job: "",
|
|
118
|
+
id_stripe: "",
|
|
119
|
+
id_role: 6,
|
|
86
120
|
active: 1,
|
|
87
|
-
is_retailer:
|
|
121
|
+
is_retailer: 0,
|
|
88
122
|
email_notify: 1,
|
|
89
123
|
is_user_tech: null,
|
|
90
124
|
membership: {
|
|
91
|
-
id:
|
|
92
|
-
start_date: "
|
|
93
|
-
end_date: "
|
|
94
|
-
planID:
|
|
95
|
-
plan: "
|
|
96
|
-
name: "Plan
|
|
97
|
-
user_limit: "
|
|
98
|
-
products_limit: "
|
|
99
|
-
type: "
|
|
125
|
+
id: 2,
|
|
126
|
+
start_date: "2021-11-05T02:35:12.000Z",
|
|
127
|
+
end_date: "2022-11-05T02:34:49.000Z",
|
|
128
|
+
planID: 1,
|
|
129
|
+
plan: "prod_KtkvuFFLpOdP6e",
|
|
130
|
+
name: "Plan Free",
|
|
131
|
+
user_limit: "1",
|
|
132
|
+
products_limit: "3",
|
|
133
|
+
type: "PyMES",
|
|
100
134
|
},
|
|
101
|
-
src: "https://content-management-profile.s3.amazonaws.com/id-
|
|
135
|
+
src: "https://content-management-profile.s3.amazonaws.com/id-37/37.png?1683875228327",
|
|
102
136
|
},
|
|
103
137
|
};
|