contentoh-components-library 21.1.10 → 21.1.13
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/dist/components/molecules/TableHeader/index.js +4 -2
- package/dist/components/organisms/ImageDataTable/index.js +3 -1
- package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +77 -87
- package/dist/components/pages/ProviderProductEdition/index.js +52 -302
- package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +49 -43
- package/dist/components/pages/RetailerProductEdition/index.js +99 -160
- package/package.json +1 -1
- package/src/components/molecules/TableHeader/index.js +2 -0
- package/src/components/organisms/ImageDataTable/index.js +2 -0
- package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +75 -90
- package/src/components/pages/ProviderProductEdition/index.js +18 -306
- package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +50 -43
- package/src/components/pages/RetailerProductEdition/index.js +99 -181
|
@@ -217,6 +217,10 @@ export const ProviderProductEdition = ({
|
|
|
217
217
|
setServices(services);
|
|
218
218
|
getServices();
|
|
219
219
|
|
|
220
|
+
if (!originProp) {
|
|
221
|
+
setActiveRetailer(product.retailers[0] || product.availableRetailers[0]);
|
|
222
|
+
}
|
|
223
|
+
|
|
220
224
|
//setActiveRetailer(product?.retailers[0]);
|
|
221
225
|
setImages({
|
|
222
226
|
action: "init",
|
|
@@ -240,26 +244,19 @@ export const ProviderProductEdition = ({
|
|
|
240
244
|
}&end=true`
|
|
241
245
|
);
|
|
242
246
|
const parsedResponse = JSON.parse(servicesResponse?.data?.body).data;
|
|
247
|
+
let retailers = product.retailers || product.retailersAvailable;
|
|
248
|
+
let active = retailers?.filter((retailer) =>
|
|
249
|
+
parsedResponse?.map((srv) => srv.id_retailer).includes(retailer.id)
|
|
250
|
+
)[0];
|
|
251
|
+
!activeRetailer.id && setActiveRetailer(active ? active : retailers[0]);
|
|
243
252
|
setServicesData(parsedResponse);
|
|
244
253
|
}
|
|
245
254
|
};
|
|
246
255
|
|
|
247
|
-
const translateConcept = (concept) => {
|
|
248
|
-
let translation = "";
|
|
249
|
-
if (concept === "datasheet") {
|
|
250
|
-
translation = "Ficha técnica";
|
|
251
|
-
} else if (concept === "description") {
|
|
252
|
-
translation = "Descripción";
|
|
253
|
-
} else if (concept === "images") {
|
|
254
|
-
translation = "Imágenes";
|
|
255
|
-
}
|
|
256
|
-
return translation;
|
|
257
|
-
};
|
|
258
|
-
|
|
259
256
|
const isRevision = () => {
|
|
260
257
|
if (productEdit) {
|
|
261
258
|
const concept = getConcept(activeTab);
|
|
262
|
-
const isRetailer = user.is_retailer;
|
|
259
|
+
const isRetailer = user.is_retailer === 1;
|
|
263
260
|
const currentService = productEdit?.product[`${concept}_status`];
|
|
264
261
|
const orgn = origin[activeTab];
|
|
265
262
|
const revision = [
|
|
@@ -299,15 +296,6 @@ export const ProviderProductEdition = ({
|
|
|
299
296
|
useEffect(async () => {
|
|
300
297
|
sessionStorage.setItem("user", JSON.stringify(user));
|
|
301
298
|
loadData();
|
|
302
|
-
|
|
303
|
-
let retailers = product.retailers || product.retailersAvailable;
|
|
304
|
-
let active = retailers?.filter((retailer) =>
|
|
305
|
-
servicesData?.map((srv) => srv.id_retailer).includes(retailer.id)
|
|
306
|
-
)[0];
|
|
307
|
-
setActiveRetailer(active ? active : retailers[0]);
|
|
308
|
-
// getPercentage({ data: [product] }).then((res) =>
|
|
309
|
-
// setPercentages(res)
|
|
310
|
-
// );
|
|
311
299
|
getCart();
|
|
312
300
|
setUserGroups(await fetchUsers(token));
|
|
313
301
|
let arr = [];
|
|
@@ -351,7 +339,7 @@ export const ProviderProductEdition = ({
|
|
|
351
339
|
setActivePercentage(retailers[0]?.percentage);
|
|
352
340
|
}, [percentages]);
|
|
353
341
|
|
|
354
|
-
|
|
342
|
+
const loadInputs = () => {
|
|
355
343
|
if (services.length > 0) {
|
|
356
344
|
if (services[0][activeRetailer.id]?.data)
|
|
357
345
|
services[0][activeRetailer.id].data = Object.values(
|
|
@@ -367,7 +355,11 @@ export const ProviderProductEdition = ({
|
|
|
367
355
|
setDatasheets([datagroups, inputs]);
|
|
368
356
|
setDescriptions(descriptions);
|
|
369
357
|
}
|
|
370
|
-
}
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
useEffect(() => {
|
|
361
|
+
loadInputs();
|
|
362
|
+
}, [servicesData, activeRetailer, services]);
|
|
371
363
|
|
|
372
364
|
const thumbs = () => {
|
|
373
365
|
const imageInputs = socketType?.slice();
|
|
@@ -578,42 +570,6 @@ export const ProviderProductEdition = ({
|
|
|
578
570
|
}
|
|
579
571
|
}, [dataImages, imagesUploaded]);
|
|
580
572
|
|
|
581
|
-
const evaluationFinished = (userId, tab, statusArray) => {
|
|
582
|
-
// const srv = servicesData.filter((serv) => serv.service === getConcept(tab));
|
|
583
|
-
// const [srvActive] = srv.filter(
|
|
584
|
-
// (serv) => serv.id_retailer === activeRetailer?.id
|
|
585
|
-
// );
|
|
586
|
-
// const unvalidated =
|
|
587
|
-
// product[`${getConcept(tab)}_status`] === "QF" ||
|
|
588
|
-
// product[`${getConcept(tab)}_status`] === "IN_PROGRESS";
|
|
589
|
-
// switch (userId) {
|
|
590
|
-
// case 7:
|
|
591
|
-
// case 8:
|
|
592
|
-
// return (
|
|
593
|
-
// (["RA", "RF"].includes(product?.status) &&
|
|
594
|
-
// statusArray.includes(srvActive?.status)) ||
|
|
595
|
-
// (statusArray.includes(product.status) &&
|
|
596
|
-
// srv.filter((serv) => statusArray.includes(serv.status)).length ===
|
|
597
|
-
// srv.length)
|
|
598
|
-
// );
|
|
599
|
-
// case 4:
|
|
600
|
-
// case 5:
|
|
601
|
-
// return (
|
|
602
|
-
// unvalidated &&
|
|
603
|
-
// ["IN_PROGRESS", "QF"].includes(product.status) &&
|
|
604
|
-
// srv.filter((serv) => statusArray.includes(serv.status)).length ===
|
|
605
|
-
// srv.length
|
|
606
|
-
// );
|
|
607
|
-
// case 6:
|
|
608
|
-
// return (
|
|
609
|
-
// statusArray.includes(product.status) &&
|
|
610
|
-
// servicesData.every((serv) => ["RA", "AA"].includes(serv.status))
|
|
611
|
-
// );
|
|
612
|
-
// default:
|
|
613
|
-
// break;
|
|
614
|
-
// }
|
|
615
|
-
};
|
|
616
|
-
|
|
617
573
|
const getConcept = (tab) => {
|
|
618
574
|
switch (tab) {
|
|
619
575
|
case "Descripción":
|
|
@@ -625,26 +581,6 @@ export const ProviderProductEdition = ({
|
|
|
625
581
|
}
|
|
626
582
|
};
|
|
627
583
|
|
|
628
|
-
// const approveRejectButtons = (action) => {
|
|
629
|
-
// let concept = getConcept(activeTab);
|
|
630
|
-
// concept = action ? action : concept;
|
|
631
|
-
|
|
632
|
-
// const [retailerStatus] = servicesData.filter(
|
|
633
|
-
// (srv) => srv.id_retailer === activeRetailer?.id && srv.service === concept
|
|
634
|
-
// );
|
|
635
|
-
|
|
636
|
-
// return (
|
|
637
|
-
// (retailerStatus?.status === "QF" &&
|
|
638
|
-
// (user.id_role === 1 || user.id_role === 4 || user.id_role === 5)) ||
|
|
639
|
-
// (retailerStatus?.status === "AF" && //sessionStorage product
|
|
640
|
-
// (user.id_role === 1 || user.id_role === 6)) ||
|
|
641
|
-
// (retailerStatus?.status === "RP" &&
|
|
642
|
-
// (user.id_role === 1 || user.id_role === 6)) ||
|
|
643
|
-
// (retailerStatus?.status === "RC" &&
|
|
644
|
-
// (user.id_role === 1 || user.id_role === 6))
|
|
645
|
-
// );
|
|
646
|
-
// };
|
|
647
|
-
|
|
648
584
|
const getSectionIcon = () => {
|
|
649
585
|
switch (activeTab) {
|
|
650
586
|
case "Ficha técnica":
|
|
@@ -661,138 +597,6 @@ export const ProviderProductEdition = ({
|
|
|
661
597
|
}
|
|
662
598
|
};
|
|
663
599
|
|
|
664
|
-
// const sendToFacilitator = async (result) => {
|
|
665
|
-
// setLoading(true);
|
|
666
|
-
// try {
|
|
667
|
-
// let concept = getConcept(activeTab);
|
|
668
|
-
|
|
669
|
-
// let productTemp = { ...product };
|
|
670
|
-
// let evalStatus = product[`${concept}_status`];
|
|
671
|
-
|
|
672
|
-
// let data = {};
|
|
673
|
-
// if (result) {
|
|
674
|
-
// //updateCompaniesList(evalStatus, result, activeRetailer.id, concept);
|
|
675
|
-
// data = {
|
|
676
|
-
// articleId: product.id_article,
|
|
677
|
-
// orderId: product.orderId,
|
|
678
|
-
// concept: concept,
|
|
679
|
-
// result: result,
|
|
680
|
-
// evalStatus: evalStatus,
|
|
681
|
-
// retailerId: activeRetailer.id,
|
|
682
|
-
// };
|
|
683
|
-
|
|
684
|
-
// await axios.put(`${process.env.REACT_APP_EVALUATION_ENDPOINT}`, data, {
|
|
685
|
-
// headers: {
|
|
686
|
-
// Authorization: token,
|
|
687
|
-
// },
|
|
688
|
-
// });
|
|
689
|
-
// getServices();
|
|
690
|
-
// } else {
|
|
691
|
-
// const specialistDone =
|
|
692
|
-
// evalStatus === "RF" ||
|
|
693
|
-
// evalStatus === "RA" ||
|
|
694
|
-
// evalStatus === "IN_PROGRESS";
|
|
695
|
-
|
|
696
|
-
// if (specialistDone) {
|
|
697
|
-
// setMessage(`${activeTab} enviada a facilitador`);
|
|
698
|
-
// getSectionIcon();
|
|
699
|
-
// } else if (evalStatus === "QF") {
|
|
700
|
-
// setMessage("Evaluación enviada");
|
|
701
|
-
// getSectionIcon();
|
|
702
|
-
// } else if (evalStatus === "AF") {
|
|
703
|
-
// setMessage("Evaluación enviada");
|
|
704
|
-
// getSectionIcon();
|
|
705
|
-
// } else if (evalStatus === "RP") {
|
|
706
|
-
// setMessage("Evaluación enviada");
|
|
707
|
-
// getSectionIcon();
|
|
708
|
-
// } else if (evalStatus === "RC") {
|
|
709
|
-
// setMessage("Evaluación enviada");
|
|
710
|
-
// getSectionIcon();
|
|
711
|
-
// }
|
|
712
|
-
// let statusArr = [];
|
|
713
|
-
// servicesData.forEach((srv) => {
|
|
714
|
-
// srv.service === concept && statusArr.push(srv.status);
|
|
715
|
-
// });
|
|
716
|
-
|
|
717
|
-
// productTemp[`${concept}_status`] = getNewStatus(statusArr);
|
|
718
|
-
|
|
719
|
-
// let newStatus = getNewStatus([
|
|
720
|
-
// productTemp.datasheet_status,
|
|
721
|
-
// productTemp.description_status,
|
|
722
|
-
// productTemp.images_status,
|
|
723
|
-
// ]);
|
|
724
|
-
|
|
725
|
-
// productTemp.status = newStatus;
|
|
726
|
-
|
|
727
|
-
// data = {
|
|
728
|
-
// articleId: product.id_article,
|
|
729
|
-
// orderId: product.orderId,
|
|
730
|
-
// concept: concept,
|
|
731
|
-
// evalStatus: evalStatus,
|
|
732
|
-
// retailerId: activeRetailer.id,
|
|
733
|
-
// };
|
|
734
|
-
|
|
735
|
-
// switch (user.id_role) {
|
|
736
|
-
// case 7:
|
|
737
|
-
// case 8:
|
|
738
|
-
// data.especialist = true;
|
|
739
|
-
// break;
|
|
740
|
-
// case 4:
|
|
741
|
-
// case 5:
|
|
742
|
-
// data.facilitator = true;
|
|
743
|
-
// break;
|
|
744
|
-
// default:
|
|
745
|
-
// break;
|
|
746
|
-
// }
|
|
747
|
-
// await axios.put(`${process.env.REACT_APP_SEND_EVAL}`, data, {
|
|
748
|
-
// headers: {
|
|
749
|
-
// Authorization: token,
|
|
750
|
-
// },
|
|
751
|
-
// });
|
|
752
|
-
// getServices();
|
|
753
|
-
// }
|
|
754
|
-
// sessionStorage.setItem("productSelected", JSON.stringify(productTemp));
|
|
755
|
-
// setProduct(productTemp);
|
|
756
|
-
// } catch (error) {
|
|
757
|
-
// console.log(error);
|
|
758
|
-
// }
|
|
759
|
-
// setLoading(false);
|
|
760
|
-
// };
|
|
761
|
-
|
|
762
|
-
const userAssigned = (tab, rol) => {
|
|
763
|
-
let concept = "";
|
|
764
|
-
switch (tab) {
|
|
765
|
-
case "Ficha técnica":
|
|
766
|
-
concept = "datasheet";
|
|
767
|
-
break;
|
|
768
|
-
case "Imágenes":
|
|
769
|
-
concept = "images";
|
|
770
|
-
break;
|
|
771
|
-
|
|
772
|
-
default:
|
|
773
|
-
concept = "description";
|
|
774
|
-
break;
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
const allowedRoles = [1, 4, 5, 6, 7, 8];
|
|
778
|
-
const validUser = allowedRoles.indexOf(user?.id_role) !== -1;
|
|
779
|
-
|
|
780
|
-
if (!rol) {
|
|
781
|
-
switch (user.id_role) {
|
|
782
|
-
case 4:
|
|
783
|
-
case 5:
|
|
784
|
-
rol = "facilitator";
|
|
785
|
-
break;
|
|
786
|
-
case 7:
|
|
787
|
-
case 8:
|
|
788
|
-
rol = "especialist";
|
|
789
|
-
break;
|
|
790
|
-
}
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
return true;
|
|
794
|
-
};
|
|
795
|
-
|
|
796
600
|
const createComment = async (e, body, tab) => {
|
|
797
601
|
let concept = "";
|
|
798
602
|
switch (activeTab) {
|
|
@@ -821,77 +625,6 @@ export const ProviderProductEdition = ({
|
|
|
821
625
|
});
|
|
822
626
|
};
|
|
823
627
|
|
|
824
|
-
const getRequired = (services) => {
|
|
825
|
-
const objetcTemp = {};
|
|
826
|
-
const datasheetServicesArray = Object.values(services[0]);
|
|
827
|
-
const dsInputs = datasheetServicesArray.pop();
|
|
828
|
-
const descriptionsServicesArray = services[1];
|
|
829
|
-
|
|
830
|
-
let dsInputsRequired = [];
|
|
831
|
-
let desInputsRequired = 0;
|
|
832
|
-
datasheetServicesArray.forEach((datasheet) => {
|
|
833
|
-
const [requested] = servicesData.filter(
|
|
834
|
-
(srv) =>
|
|
835
|
-
srv.id_retailer === datasheet.retailer.id &&
|
|
836
|
-
srv.service === getConcept(activeTab)
|
|
837
|
-
);
|
|
838
|
-
requested &&
|
|
839
|
-
Object.values(datasheet?.data).forEach((dataGroup) =>
|
|
840
|
-
dsInputsRequired.push(
|
|
841
|
-
...dataGroup.inputs.filter(
|
|
842
|
-
(input) =>
|
|
843
|
-
dsInputs[input].required &&
|
|
844
|
-
(dsInputs[input].value === undefined || !dsInputs[input].value)
|
|
845
|
-
)
|
|
846
|
-
)
|
|
847
|
-
);
|
|
848
|
-
});
|
|
849
|
-
|
|
850
|
-
objetcTemp["Ficha técnica"] = dsInputsRequired.length;
|
|
851
|
-
|
|
852
|
-
descriptionsServicesArray.forEach((description) => {
|
|
853
|
-
const [requested] = servicesData.filter(
|
|
854
|
-
(srv) =>
|
|
855
|
-
srv.id_retailer === description.id &&
|
|
856
|
-
srv.service === getConcept(activeTab)
|
|
857
|
-
);
|
|
858
|
-
requested &&
|
|
859
|
-
description.inputs.forEach(
|
|
860
|
-
(input) =>
|
|
861
|
-
input.required &&
|
|
862
|
-
(!input.value ||
|
|
863
|
-
input.value.replace(/(<\/?p>)|(<\/?strong>)|(<br>)/gm, "") ===
|
|
864
|
-
"") &&
|
|
865
|
-
desInputsRequired++
|
|
866
|
-
);
|
|
867
|
-
});
|
|
868
|
-
|
|
869
|
-
objetcTemp["Descripción"] = desInputsRequired;
|
|
870
|
-
const retailersRequested = [];
|
|
871
|
-
services[2]?.retailerMandatories?.forEach((retMan) =>
|
|
872
|
-
retMan.forEach((rm) => retailersRequested.push(rm))
|
|
873
|
-
);
|
|
874
|
-
const requiredImages = services[2]?.inputs?.filter(
|
|
875
|
-
(e) =>
|
|
876
|
-
e.required === 1 &&
|
|
877
|
-
retailersRequested.filter(
|
|
878
|
-
(ret) =>
|
|
879
|
-
ret.id_image === e.id &&
|
|
880
|
-
servicesData.filter((srv) => srv.id_retailer === ret.id_retailer)
|
|
881
|
-
.length > 0
|
|
882
|
-
).length > 0
|
|
883
|
-
);
|
|
884
|
-
|
|
885
|
-
let requiredCounter = 0;
|
|
886
|
-
requiredImages?.forEach(
|
|
887
|
-
(req) =>
|
|
888
|
-
services[2].values.filter((img) => img.image_id === req.id).length ===
|
|
889
|
-
0 && requiredCounter++
|
|
890
|
-
);
|
|
891
|
-
objetcTemp["Imágenes"] = requiredCounter;
|
|
892
|
-
setRequiredNull(objetcTemp);
|
|
893
|
-
};
|
|
894
|
-
|
|
895
628
|
useEffect(() => {
|
|
896
629
|
setComment(comments[activeTab]);
|
|
897
630
|
}, [activeTab]);
|
|
@@ -1065,27 +798,6 @@ export const ProviderProductEdition = ({
|
|
|
1065
798
|
);
|
|
1066
799
|
};
|
|
1067
800
|
|
|
1068
|
-
// const getRetailerStatus = (servicesData, tab) => {
|
|
1069
|
-
// const arr = servicesData?.slice();
|
|
1070
|
-
// let concept = getConcept(tab);
|
|
1071
|
-
|
|
1072
|
-
// let retailerService = {};
|
|
1073
|
-
// [retailerService] = arr?.filter(
|
|
1074
|
-
// (service) =>
|
|
1075
|
-
// service.id_retailer === activeRetailer?.id &&
|
|
1076
|
-
// service.service === concept
|
|
1077
|
-
// );
|
|
1078
|
-
// return retailerService ? retailerService.status : "NA";
|
|
1079
|
-
// };
|
|
1080
|
-
|
|
1081
|
-
// useEffect(() => {
|
|
1082
|
-
// let status = getRetailerStatus(servicesData, activeTab);
|
|
1083
|
-
// setRetailerStatus(status);
|
|
1084
|
-
// }, [activeTab, servicesData, activeRetailer]);
|
|
1085
|
-
|
|
1086
|
-
// useEffect(() => {
|
|
1087
|
-
// services.length > 0 && getRequired(services);
|
|
1088
|
-
// }, [services, servicesData, activeTab]);
|
|
1089
801
|
const confirmStatusComplete = () => {
|
|
1090
802
|
const { datasheet_status, description_status, images_status } = product;
|
|
1091
803
|
const completionStates =
|
|
@@ -1466,10 +1178,10 @@ export const ProviderProductEdition = ({
|
|
|
1466
1178
|
</div>
|
|
1467
1179
|
{inCart ? (
|
|
1468
1180
|
<button type="button">
|
|
1469
|
-
|
|
1181
|
+
<Link to="/checkout">
|
|
1470
1182
|
<p>Articulo en carrito</p>
|
|
1471
1183
|
<p>Ir a checkout</p>
|
|
1472
|
-
</Link>
|
|
1184
|
+
</Link>
|
|
1473
1185
|
</button>
|
|
1474
1186
|
) : (
|
|
1475
1187
|
<Button
|
|
@@ -16,95 +16,102 @@ RetailerProductEditionDefault.args = {
|
|
|
16
16
|
Imágenes: false,
|
|
17
17
|
},
|
|
18
18
|
token:
|
|
19
|
-
"eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.
|
|
19
|
+
"eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJhNmM0ZDNkNi0yNGE0LTQxZDQtYWQwZi1kMDg3NDM4YWI1YjYiLCJjb2duaXRvOmdyb3VwcyI6WyJjb2xhYm9yYWRvcmVzX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwiY29nbml0bzp1c2VybmFtZSI6ImE2YzRkM2Q2LTI0YTQtNDFkNC1hZDBmLWQwODc0MzhhYjViNiIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiIxMDEyMmE5OC0wMDc1LTQxYmMtYjkxMi02NjBiNTE2MzMxMDQiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY1NTc1NDEyNSwibmFtZSI6IkNvbGFib3JhZG9yIiwicGhvbmVfbnVtYmVyIjoiKzUyMTExMSIsImV4cCI6MTY1NTc1NzcyNSwiaWF0IjoxNjU1NzU0MTI1LCJlbWFpbCI6ImV0Y0Bjb250ZW50b2guY29tIn0.KFEGYLEDArzX7rXRsXo4wCc6nuSxATU6E8aL_XSCJyvYk3F2fn-cslstPX-zEgG1uybmzXfxMvSfnhjMGe1hCdxpHXXrcq4Khm6jlHcnsF62QUdIz5gPqZDoXjegctkCqQtTYhuZEhxhXmHn9Ijj3rSdk2_5-4AKYx89l9p1_G3u1EN8Vs1jH6BuE2v7u1wv45QQ9KB6h7s8DLZF_SfmivlJbQrqKmOzbwlDBpll94rRffKjHXzJtXx0YmKM--zU0E3dzAEdq-UcfEnM7GpC-SV__xMoLK7Rj7yTAq1fTHEfcMnAFBzkSoPjNAUi5xBw9GLCxt55DmZlVfvKyfzx6Q",
|
|
20
20
|
articleId: 238,
|
|
21
21
|
category: 846,
|
|
22
22
|
version: 2,
|
|
23
23
|
productSelected: {
|
|
24
24
|
services: {
|
|
25
|
-
datasheets:
|
|
26
|
-
descriptions:
|
|
25
|
+
datasheets: 1,
|
|
26
|
+
descriptions: 1,
|
|
27
27
|
images: 1,
|
|
28
28
|
},
|
|
29
|
-
orderId:
|
|
30
|
-
status: "
|
|
31
|
-
datasheet_status:
|
|
29
|
+
orderId: 42,
|
|
30
|
+
status: "RECEIVED",
|
|
31
|
+
datasheet_status: null,
|
|
32
32
|
prio: "none",
|
|
33
|
-
version:
|
|
34
|
-
description_status:
|
|
35
|
-
images_status:
|
|
33
|
+
version: 2,
|
|
34
|
+
description_status: null,
|
|
35
|
+
images_status: null,
|
|
36
36
|
article: {
|
|
37
|
-
id_article:
|
|
38
|
-
id_category: "
|
|
39
|
-
name: "
|
|
40
|
-
upc: "
|
|
41
|
-
timestamp: "2022-06-
|
|
42
|
-
id_user:
|
|
37
|
+
id_article: 54413,
|
|
38
|
+
id_category: "684",
|
|
39
|
+
name: "Crema dental 120 gr",
|
|
40
|
+
upc: "456463435",
|
|
41
|
+
timestamp: "2022-06-17T16:21:59.000Z",
|
|
42
|
+
id_user: 28,
|
|
43
43
|
status: "NULL",
|
|
44
44
|
active: 1,
|
|
45
|
-
company_id:
|
|
46
|
-
company_name: "
|
|
47
|
-
country:
|
|
48
|
-
id_order:
|
|
49
|
-
id_datasheet_especialist:
|
|
50
|
-
id_datasheet_facilitator:
|
|
51
|
-
id_description_especialist:
|
|
52
|
-
id_description_facilitator:
|
|
53
|
-
id_images_especialist:
|
|
54
|
-
id_images_facilitator:
|
|
45
|
+
company_id: 1,
|
|
46
|
+
company_name: "COMPANY DEV",
|
|
47
|
+
country: "México",
|
|
48
|
+
id_order: 42,
|
|
49
|
+
id_datasheet_especialist: null,
|
|
50
|
+
id_datasheet_facilitator: null,
|
|
51
|
+
id_description_especialist: null,
|
|
52
|
+
id_description_facilitator: null,
|
|
53
|
+
id_images_especialist: null,
|
|
54
|
+
id_images_facilitator: null,
|
|
55
55
|
id_auditor: null,
|
|
56
56
|
id_recepcionist: null,
|
|
57
|
-
category: "
|
|
58
|
-
missingAttributes:
|
|
59
|
-
missingDescriptions:
|
|
60
|
-
missingImages:
|
|
57
|
+
category: "SALUD Y BELLEZA|CUIDADO BUCAL|PASTAS DENTALES Y ASEO BUCAL",
|
|
58
|
+
missingAttributes: 22,
|
|
59
|
+
missingDescriptions: 16,
|
|
60
|
+
missingImages: 4,
|
|
61
61
|
},
|
|
62
62
|
retailers: [
|
|
63
63
|
{
|
|
64
|
-
id:
|
|
65
|
-
name: "
|
|
64
|
+
id: 4,
|
|
65
|
+
name: "Walmart Super y Superama",
|
|
66
66
|
country: "México",
|
|
67
67
|
id_region: 1,
|
|
68
68
|
active: 1,
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
id:
|
|
72
|
-
name: "
|
|
71
|
+
id: 5,
|
|
72
|
+
name: "Chedraui",
|
|
73
73
|
country: "México",
|
|
74
74
|
id_region: 1,
|
|
75
75
|
active: 1,
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
|
-
id:
|
|
79
|
-
name: "
|
|
78
|
+
id: 6,
|
|
79
|
+
name: "HEB",
|
|
80
|
+
country: "México",
|
|
81
|
+
id_region: 1,
|
|
82
|
+
active: 1,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: 13,
|
|
86
|
+
name: "Soriana",
|
|
80
87
|
country: "México",
|
|
81
88
|
id_region: 1,
|
|
82
89
|
active: 1,
|
|
83
90
|
},
|
|
84
91
|
],
|
|
85
|
-
country:
|
|
86
|
-
upc: "
|
|
92
|
+
country: "México",
|
|
93
|
+
upc: "456463435",
|
|
87
94
|
},
|
|
88
95
|
location: {
|
|
89
96
|
product: { articleId: 109485, versionId: 3 },
|
|
90
97
|
},
|
|
91
98
|
user: {
|
|
92
|
-
id_user:
|
|
93
|
-
name: "
|
|
99
|
+
id_user: 51,
|
|
100
|
+
name: "ADMIN PRUEBA",
|
|
94
101
|
last_name: "",
|
|
95
|
-
email: "
|
|
102
|
+
email: "etc@contentoh.com",
|
|
96
103
|
position: null,
|
|
97
104
|
telephone: null,
|
|
98
105
|
country: null,
|
|
99
106
|
id_company: 2,
|
|
100
|
-
id_cognito: "
|
|
107
|
+
id_cognito: "a6c4d3d6-24a4-41d4-ad0f-d087438ab5b6",
|
|
101
108
|
birth_Date: null,
|
|
102
109
|
about_me: null,
|
|
103
110
|
zip_code: null,
|
|
104
111
|
address: null,
|
|
105
112
|
job: null,
|
|
106
113
|
id_stripe: null,
|
|
107
|
-
id_role:
|
|
114
|
+
id_role: 1,
|
|
108
115
|
active: 1,
|
|
109
116
|
is_retailer: 0,
|
|
110
117
|
membership: {
|
|
@@ -118,6 +125,6 @@ RetailerProductEditionDefault.args = {
|
|
|
118
125
|
products_limit: "3",
|
|
119
126
|
type: "PyMES",
|
|
120
127
|
},
|
|
121
|
-
src: "https://content-management-profile.s3.amazonaws.com/id-
|
|
128
|
+
src: "https://content-management-profile.s3.amazonaws.com/id-51/51.png?1655754126500",
|
|
122
129
|
},
|
|
123
130
|
};
|