contentoh-components-library 21.1.50 → 21.1.53
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/atoms/GeneralInput/index.js +1 -0
- package/dist/components/molecules/HeaderTop/index.js +1 -4
- package/dist/components/molecules/RetailerSelector/index.js +0 -34
- package/dist/components/molecules/StatusAsignationInfo/index.js +2 -3
- package/dist/components/organisms/FullTabsMenu/index.js +2 -4
- package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +46 -80
- package/dist/components/pages/ProviderProductEdition/index.js +21 -48
- package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +35 -32
- package/dist/components/pages/RetailerProductEdition/index.js +8 -11
- package/dist/components/pages/RetailerProductEdition/styles.js +1 -1
- package/package.json +1 -1
- package/src/components/atoms/StatusTag/index.js +12 -2
- package/src/components/atoms/StatusTag/styles.js +11 -11
- package/src/components/atoms/ValidationPanel/index.js +1 -1
- package/src/components/molecules/RetailerSelector/index.js +0 -1
- package/src/components/molecules/StatusAsignationInfo/index.js +1 -1
- package/src/components/organisms/FullProductNameHeader/index.js +1 -1
- package/src/components/organisms/FullTabsMenu/index.js +1 -1
- package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +99 -115
- package/src/components/pages/ProviderProductEdition/index.js +183 -177
- package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +31 -77
- package/src/components/pages/RetailerProductEdition/index.js +165 -140
- package/src/components/pages/RetailerProductEdition/styles.js +1 -1
- package/src/global-files/data.js +3 -4
- package/src/index.js +1 -0
|
@@ -208,9 +208,6 @@ export const ProviderProductEdition = ({
|
|
|
208
208
|
const [modalViewTextArea, setModalViewTextArea] = useState(false);
|
|
209
209
|
const [socketType, setSocketType] = useState(null);
|
|
210
210
|
const [saving, setSaving] = useState(loading);
|
|
211
|
-
const [retailerStatus, setRetailerStatus] = useState(
|
|
212
|
-
product.statusByRetailer
|
|
213
|
-
);
|
|
214
211
|
|
|
215
212
|
useEffect(() => {
|
|
216
213
|
checkAll && setSelectedImages(images.values);
|
|
@@ -236,8 +233,11 @@ export const ProviderProductEdition = ({
|
|
|
236
233
|
);
|
|
237
234
|
}
|
|
238
235
|
|
|
239
|
-
//
|
|
240
|
-
setImages({
|
|
236
|
+
//setActiveRetailer(product?.retailers[0]);
|
|
237
|
+
setImages({
|
|
238
|
+
action: "init",
|
|
239
|
+
init: services[2],
|
|
240
|
+
});
|
|
241
241
|
if (services[2]?.values?.length > 0) setActiveImage(0);
|
|
242
242
|
|
|
243
243
|
getPercentage({ data: [product] }).then((res) => setPercentages(res));
|
|
@@ -256,11 +256,10 @@ export const ProviderProductEdition = ({
|
|
|
256
256
|
}&end=true`
|
|
257
257
|
);
|
|
258
258
|
const parsedResponse = JSON.parse(servicesResponse?.data?.body).data;
|
|
259
|
-
const retailerResponse = parsedResponse?.map((srv) => srv.id_retailer);
|
|
260
259
|
let retailers = product.retailers || product.retailersAvailable;
|
|
261
|
-
let active = retailers?.
|
|
262
|
-
|
|
263
|
-
);
|
|
260
|
+
let active = retailers?.filter((retailer) =>
|
|
261
|
+
parsedResponse?.map((srv) => srv.id_retailer).includes(retailer.id)
|
|
262
|
+
)[0];
|
|
264
263
|
!activeRetailer.id && setActiveRetailer(active ? active : retailers[0]);
|
|
265
264
|
setServicesData(parsedResponse);
|
|
266
265
|
}
|
|
@@ -281,15 +280,15 @@ export const ProviderProductEdition = ({
|
|
|
281
280
|
if (revision && currentService === "AP") return true;
|
|
282
281
|
} else {
|
|
283
282
|
const { product } = productEdit;
|
|
284
|
-
|
|
285
|
-
orgn === "
|
|
286
|
-
(["
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
283
|
+
if (
|
|
284
|
+
orgn === "Contentoh" ||
|
|
285
|
+
(["RECEIVED", "IN_PROGRESS"].includes(currentService) &&
|
|
286
|
+
orgn === "RequestWithoutContentoh") ||
|
|
287
|
+
(currentService === "AA" && orgn === "RequestWithContentoh") ||
|
|
288
|
+
(currentService === "RC" &&
|
|
289
|
+
orgn === "RequestWithoutContentoh" &&
|
|
290
|
+
(!product.id_order || !product.orderId))
|
|
291
|
+
)
|
|
293
292
|
return true;
|
|
294
293
|
}
|
|
295
294
|
}
|
|
@@ -306,26 +305,26 @@ export const ProviderProductEdition = ({
|
|
|
306
305
|
setInCart(arr.some((e) => e.articleId === product.id_article));
|
|
307
306
|
};
|
|
308
307
|
|
|
309
|
-
useEffect(() => {
|
|
308
|
+
useEffect(async () => {
|
|
310
309
|
sessionStorage.setItem("user", JSON.stringify(user));
|
|
311
310
|
loadData();
|
|
312
311
|
getCart();
|
|
313
|
-
fetchUsers(token)
|
|
312
|
+
setUserGroups(await fetchUsers(token));
|
|
314
313
|
let arr = [];
|
|
315
|
-
// ?? Que sentido tiene verificar los roles de colaborador en la app de proveedor
|
|
316
314
|
switch (user.id_role) {
|
|
317
315
|
case 7:
|
|
318
316
|
case 8:
|
|
319
|
-
arr = ["
|
|
317
|
+
arr = ["IN_PROGRESS", "RF", "RA"];
|
|
320
318
|
break;
|
|
321
319
|
case 4:
|
|
322
320
|
case 5:
|
|
323
|
-
arr = ["
|
|
321
|
+
arr = ["RF", "AF", "AA", "AP", "AC"];
|
|
324
322
|
break;
|
|
325
323
|
case 6:
|
|
326
|
-
arr = ["RP", "
|
|
324
|
+
arr = ["RP", "RC", "AF"];
|
|
327
325
|
break;
|
|
328
326
|
default:
|
|
327
|
+
arr = [];
|
|
329
328
|
break;
|
|
330
329
|
}
|
|
331
330
|
setStatusArray(arr);
|
|
@@ -343,9 +342,9 @@ export const ProviderProductEdition = ({
|
|
|
343
342
|
const productTemp = product;
|
|
344
343
|
const retailers = productTemp?.retailersAvailable || productTemp?.retailers;
|
|
345
344
|
retailers?.forEach((retailer) => {
|
|
346
|
-
retailer["percentage"] = percentages?.
|
|
345
|
+
retailer["percentage"] = percentages?.filter(
|
|
347
346
|
(percent) => retailer?.id === percent?.id_retailer
|
|
348
|
-
)?.percentage;
|
|
347
|
+
)[0]?.percentage;
|
|
349
348
|
});
|
|
350
349
|
|
|
351
350
|
setProduct(productTemp);
|
|
@@ -421,7 +420,7 @@ export const ProviderProductEdition = ({
|
|
|
421
420
|
};
|
|
422
421
|
if (product?.orderId) dataObject["orderId"] = product?.orderId;
|
|
423
422
|
try {
|
|
424
|
-
|
|
423
|
+
await axios.put(
|
|
425
424
|
`${process.env.REACT_APP_ARTICLE_DATA_ENDPOINT}?description=true&version=${version}`,
|
|
426
425
|
dataObject,
|
|
427
426
|
{
|
|
@@ -430,10 +429,8 @@ export const ProviderProductEdition = ({
|
|
|
430
429
|
},
|
|
431
430
|
}
|
|
432
431
|
);
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
await loadData();
|
|
436
|
-
}
|
|
432
|
+
setMessage("Descripciones guardadas con éxito");
|
|
433
|
+
loadData();
|
|
437
434
|
} catch (error) {
|
|
438
435
|
console.log(error);
|
|
439
436
|
}
|
|
@@ -456,10 +453,8 @@ export const ProviderProductEdition = ({
|
|
|
456
453
|
},
|
|
457
454
|
}
|
|
458
455
|
);
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
await loadData();
|
|
462
|
-
}
|
|
456
|
+
setMessage("Fichas técnicas guardadas");
|
|
457
|
+
loadData();
|
|
463
458
|
} catch (error) {
|
|
464
459
|
console.log(error);
|
|
465
460
|
}
|
|
@@ -557,7 +552,7 @@ export const ProviderProductEdition = ({
|
|
|
557
552
|
return e;
|
|
558
553
|
});
|
|
559
554
|
try {
|
|
560
|
-
|
|
555
|
+
await axios.put(
|
|
561
556
|
`${process.env.REACT_APP_ARTICLE_DATA_ENDPOINT}?image=true&version=${version}`,
|
|
562
557
|
dataImages,
|
|
563
558
|
{
|
|
@@ -566,11 +561,9 @@ export const ProviderProductEdition = ({
|
|
|
566
561
|
},
|
|
567
562
|
}
|
|
568
563
|
);
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
await loadData();
|
|
573
|
-
}
|
|
564
|
+
setMessage("Imágenes guardadas con éxito");
|
|
565
|
+
sessionStorage.removeItem("imagesList");
|
|
566
|
+
loadData();
|
|
574
567
|
} catch (error) {
|
|
575
568
|
console.log(error);
|
|
576
569
|
}
|
|
@@ -672,12 +665,12 @@ export const ProviderProductEdition = ({
|
|
|
672
665
|
},
|
|
673
666
|
],
|
|
674
667
|
concept: concept,
|
|
675
|
-
|
|
668
|
+
[`${assignationType}Id`]: assignationId,
|
|
676
669
|
};
|
|
677
|
-
|
|
670
|
+
axios({
|
|
678
671
|
method: "post",
|
|
679
672
|
url: process.env.REACT_APP_ASSIGNATIONS_ENDPOINT,
|
|
680
|
-
data,
|
|
673
|
+
data: data,
|
|
681
674
|
headers: {
|
|
682
675
|
Authorization: token,
|
|
683
676
|
},
|
|
@@ -695,7 +688,7 @@ export const ProviderProductEdition = ({
|
|
|
695
688
|
serv = serv.filter((f) => f.id_retailer === activeRetailer.id);
|
|
696
689
|
}
|
|
697
690
|
const statusArray =
|
|
698
|
-
user.is_retailer === 1 ? ["
|
|
691
|
+
user.is_retailer === 1 ? ["AC", "RC"] : ["AP", "RP", "AC"];
|
|
699
692
|
return (
|
|
700
693
|
serv.length > 0 && serv.every((item) => statusArray.includes(item.status))
|
|
701
694
|
);
|
|
@@ -794,11 +787,18 @@ export const ProviderProductEdition = ({
|
|
|
794
787
|
}
|
|
795
788
|
};
|
|
796
789
|
|
|
790
|
+
const getSectionStatus = () => {
|
|
791
|
+
const concept = getConcept(activeTab);
|
|
792
|
+
return ["AA", "AP", "R", "CA", "RCA"].includes(
|
|
793
|
+
productEdit.product[`${concept}_status`]
|
|
794
|
+
);
|
|
795
|
+
};
|
|
796
|
+
|
|
797
797
|
const confirmStatusComplete = () => {
|
|
798
798
|
const { datasheet_status, description_status, images_status } = product;
|
|
799
799
|
const completionStates =
|
|
800
800
|
user.is_retailer === 1
|
|
801
|
-
? ["
|
|
801
|
+
? ["AC", "Evaluated", "NS"]
|
|
802
802
|
: ["AP", "Evaluated", "NS"];
|
|
803
803
|
const dsEvaluated = completionStates.includes(datasheet_status);
|
|
804
804
|
const descsEvaluated = completionStates.includes(description_status);
|
|
@@ -815,8 +815,8 @@ export const ProviderProductEdition = ({
|
|
|
815
815
|
const productTemp = product;
|
|
816
816
|
const articleId = productTemp.id_article;
|
|
817
817
|
const orderId = productTemp.id_order ?? productTemp.orderId;
|
|
818
|
-
const
|
|
819
|
-
|
|
818
|
+
const sectionStatusKey = `${getConcept(activeTab)}_status`;
|
|
819
|
+
const evalStatus = product[sectionStatusKey] || product?.version_status;
|
|
820
820
|
let data = { articleId, orderId, concept, evalStatus };
|
|
821
821
|
const retailerId = activeRetailer?.id;
|
|
822
822
|
let res;
|
|
@@ -833,7 +833,16 @@ export const ProviderProductEdition = ({
|
|
|
833
833
|
},
|
|
834
834
|
}
|
|
835
835
|
);
|
|
836
|
-
const
|
|
836
|
+
const newStatuses = JSON.parse(res.data.body);
|
|
837
|
+
const orderStatus = newStatuses.newOrderStatus;
|
|
838
|
+
const serviceStatus =
|
|
839
|
+
newStatuses.newServiceStatus[articleId][
|
|
840
|
+
`${getConcept(activeTab)}Status`
|
|
841
|
+
];
|
|
842
|
+
|
|
843
|
+
const newProductEdit = productEdit;
|
|
844
|
+
newProductEdit.product[sectionStatusKey] = serviceStatus;
|
|
845
|
+
setProductEdit(newProductEdit);
|
|
837
846
|
showSurvey && showSurvey(orderStatus[orderId] === "AP");
|
|
838
847
|
} else {
|
|
839
848
|
res = await axios.put(`${process.env.REACT_APP_SEND_EVAL}`, data, {
|
|
@@ -858,19 +867,14 @@ export const ProviderProductEdition = ({
|
|
|
858
867
|
}
|
|
859
868
|
setProduct(productTemp);
|
|
860
869
|
sessionStorage.setItem("productSelected", JSON.stringify(productTemp));
|
|
861
|
-
const newProductEdit = {
|
|
862
|
-
ArticleId: articleId,
|
|
863
|
-
idCategory: productTemp.article.id_category,
|
|
864
|
-
product: productTemp,
|
|
865
|
-
};
|
|
866
|
-
setProductEdit(newProductEdit);
|
|
867
|
-
sessionStorage.setItem("productEdit", JSON.stringify(newProductEdit));
|
|
868
870
|
setOrigin((prev) => ({ ...prev, [concept]: status }));
|
|
869
871
|
await loadData();
|
|
870
872
|
}
|
|
871
873
|
} catch (err) {
|
|
872
874
|
console.log(err);
|
|
873
875
|
}
|
|
876
|
+
loadData();
|
|
877
|
+
showSurvey && showSurvey(confirmStatusComplete());
|
|
874
878
|
};
|
|
875
879
|
|
|
876
880
|
const validateAll = async (result) => {
|
|
@@ -916,24 +920,13 @@ export const ProviderProductEdition = ({
|
|
|
916
920
|
|
|
917
921
|
await Promise.all(sendAll);
|
|
918
922
|
const productTemp = product;
|
|
919
|
-
productTemp.article_status = `${result}
|
|
923
|
+
productTemp.article_status = `${result}C`;
|
|
920
924
|
productTemp.datasheet_status =
|
|
921
|
-
productTemp.datasheet_status === "NA" ? "NA" : `${result}
|
|
925
|
+
productTemp.datasheet_status === "NA" ? "NA" : `${result}C`;
|
|
922
926
|
productTemp.description_status =
|
|
923
|
-
productTemp.description_status === "NA" ? "NA" : `${result}
|
|
927
|
+
productTemp.description_status === "NA" ? "NA" : `${result}C`;
|
|
924
928
|
productTemp.images_status =
|
|
925
|
-
productTemp.images_status === "NA" ? "NA" : `${result}
|
|
926
|
-
|
|
927
|
-
const retailerStatusCopy = { ...retailerStatus };
|
|
928
|
-
Object.keys(retailerStatusCopy).forEach((key) => {
|
|
929
|
-
conceptArray.forEach((concept) => {
|
|
930
|
-
if (retailerStatusCopy[key][concept]) {
|
|
931
|
-
retailerStatusCopy[key][concept] = `${result}CA`;
|
|
932
|
-
}
|
|
933
|
-
});
|
|
934
|
-
});
|
|
935
|
-
setRetailerStatus(retailerStatusCopy);
|
|
936
|
-
productTemp.statusByRetailer = retailerStatusCopy;
|
|
929
|
+
productTemp.images_status === "NA" ? "NA" : `${result}C`;
|
|
937
930
|
setProduct(productTemp);
|
|
938
931
|
sessionStorage.setItem("productSelected", JSON.stringify(productTemp));
|
|
939
932
|
setProductEdit({
|
|
@@ -950,7 +943,7 @@ export const ProviderProductEdition = ({
|
|
|
950
943
|
})
|
|
951
944
|
);
|
|
952
945
|
|
|
953
|
-
|
|
946
|
+
loadData();
|
|
954
947
|
} catch (error) {
|
|
955
948
|
console.log(error);
|
|
956
949
|
}
|
|
@@ -971,7 +964,7 @@ export const ProviderProductEdition = ({
|
|
|
971
964
|
},
|
|
972
965
|
});
|
|
973
966
|
const prod = productEdit;
|
|
974
|
-
const statusComplete = user.is_retailer ? `${result}
|
|
967
|
+
const statusComplete = user.is_retailer ? `${result}C` : `${result}P`;
|
|
975
968
|
prod.product.datasheet_status = statusComplete;
|
|
976
969
|
prod.product.description_status = statusComplete;
|
|
977
970
|
prod.product.images_status = statusComplete;
|
|
@@ -980,22 +973,17 @@ export const ProviderProductEdition = ({
|
|
|
980
973
|
sessionStorage.setItem("productEdit", JSON.stringify(prod));
|
|
981
974
|
setProduct(prod);
|
|
982
975
|
setShowGenericModal && setShowGenericModal(false);
|
|
983
|
-
|
|
984
|
-
};
|
|
985
|
-
|
|
986
|
-
const getSectionStatus = () => {
|
|
987
|
-
const concept = getConcept(activeTab);
|
|
988
|
-
return ["AA", "AP", "R", "CA", "RCA"].includes(
|
|
989
|
-
productEdit.product[`${concept}_status`]
|
|
990
|
-
);
|
|
976
|
+
loadData();
|
|
991
977
|
};
|
|
992
978
|
|
|
993
979
|
const enableActions = (versionStatus) => {
|
|
994
980
|
try {
|
|
995
|
-
|
|
981
|
+
const userIsRetailer = user.is_retailer;
|
|
982
|
+
|
|
983
|
+
if (userIsRetailer) return false;
|
|
996
984
|
|
|
997
985
|
if (versionStatus) {
|
|
998
|
-
return ["AP", "
|
|
986
|
+
return ["AP", "AC", "RC", null].includes(versionStatus);
|
|
999
987
|
}
|
|
1000
988
|
return true;
|
|
1001
989
|
} catch (err) {
|
|
@@ -1085,21 +1073,23 @@ export const ProviderProductEdition = ({
|
|
|
1085
1073
|
},
|
|
1086
1074
|
}));
|
|
1087
1075
|
setShowGenericModal(true);
|
|
1088
|
-
} else
|
|
1089
|
-
if (
|
|
1090
|
-
|
|
1076
|
+
} else {
|
|
1077
|
+
if (user.is_retailer) {
|
|
1078
|
+
if (product.id_order || product.orderId) {
|
|
1079
|
+
validateAll("A");
|
|
1080
|
+
} else {
|
|
1081
|
+
setDataGenericModal((prev) => ({
|
|
1082
|
+
...prev,
|
|
1083
|
+
button2: {
|
|
1084
|
+
name: "Continuar",
|
|
1085
|
+
action: () => evaluationToRetailer("A"),
|
|
1086
|
+
},
|
|
1087
|
+
}));
|
|
1088
|
+
setShowGenericModal(true);
|
|
1089
|
+
}
|
|
1091
1090
|
} else {
|
|
1092
|
-
|
|
1093
|
-
...prev,
|
|
1094
|
-
button2: {
|
|
1095
|
-
name: "Continuar",
|
|
1096
|
-
action: () => evaluationToRetailer("A"),
|
|
1097
|
-
},
|
|
1098
|
-
}));
|
|
1099
|
-
setShowGenericModal(true);
|
|
1091
|
+
validateAll("A");
|
|
1100
1092
|
}
|
|
1101
|
-
} else {
|
|
1102
|
-
validateAll("A");
|
|
1103
1093
|
}
|
|
1104
1094
|
}}
|
|
1105
1095
|
rejectAll={() => {
|
|
@@ -1109,23 +1099,25 @@ export const ProviderProductEdition = ({
|
|
|
1109
1099
|
(!product.id_order || !product.orderId)
|
|
1110
1100
|
) {
|
|
1111
1101
|
return;
|
|
1112
|
-
} else
|
|
1113
|
-
if (
|
|
1102
|
+
} else {
|
|
1103
|
+
if (user.is_retailer) {
|
|
1104
|
+
if (product.id_order || product.orderId) {
|
|
1105
|
+
validateAll("R");
|
|
1106
|
+
setModalViewError(true);
|
|
1107
|
+
} else {
|
|
1108
|
+
setDataGenericModal((prev) => ({
|
|
1109
|
+
...prev,
|
|
1110
|
+
button2: {
|
|
1111
|
+
name: "Continuar",
|
|
1112
|
+
action: () => evaluationToRetailer("R"),
|
|
1113
|
+
},
|
|
1114
|
+
}));
|
|
1115
|
+
setShowGenericModal(true);
|
|
1116
|
+
}
|
|
1117
|
+
} else {
|
|
1114
1118
|
validateAll("R");
|
|
1115
1119
|
setModalViewError(true);
|
|
1116
|
-
} else {
|
|
1117
|
-
setDataGenericModal((prev) => ({
|
|
1118
|
-
...prev,
|
|
1119
|
-
button2: {
|
|
1120
|
-
name: "Continuar",
|
|
1121
|
-
action: () => evaluationToRetailer("R"),
|
|
1122
|
-
},
|
|
1123
|
-
}));
|
|
1124
|
-
setShowGenericModal(true);
|
|
1125
1120
|
}
|
|
1126
|
-
} else {
|
|
1127
|
-
validateAll("R");
|
|
1128
|
-
setModalViewError(true);
|
|
1129
1121
|
}
|
|
1130
1122
|
}}
|
|
1131
1123
|
approve={() => {
|
|
@@ -1142,21 +1134,23 @@ export const ProviderProductEdition = ({
|
|
|
1142
1134
|
},
|
|
1143
1135
|
}));
|
|
1144
1136
|
setShowGenericModal(true);
|
|
1145
|
-
} else
|
|
1146
|
-
if (
|
|
1147
|
-
|
|
1137
|
+
} else {
|
|
1138
|
+
if (user.is_retailer) {
|
|
1139
|
+
if (product.id_order || product.orderId) {
|
|
1140
|
+
sendEvaluation("A");
|
|
1141
|
+
} else {
|
|
1142
|
+
setDataGenericModal((prev) => ({
|
|
1143
|
+
...prev,
|
|
1144
|
+
button2: {
|
|
1145
|
+
name: "Continuar",
|
|
1146
|
+
action: () => evaluationToRetailer("A"),
|
|
1147
|
+
},
|
|
1148
|
+
}));
|
|
1149
|
+
setShowGenericModal(true);
|
|
1150
|
+
}
|
|
1148
1151
|
} else {
|
|
1149
|
-
|
|
1150
|
-
...prev,
|
|
1151
|
-
button2: {
|
|
1152
|
-
name: "Continuar",
|
|
1153
|
-
action: () => evaluationToRetailer("A"),
|
|
1154
|
-
},
|
|
1155
|
-
}));
|
|
1156
|
-
setShowGenericModal(true);
|
|
1152
|
+
sendEvaluation("A");
|
|
1157
1153
|
}
|
|
1158
|
-
} else {
|
|
1159
|
-
sendEvaluation("A");
|
|
1160
1154
|
}
|
|
1161
1155
|
}}
|
|
1162
1156
|
reject={() => {
|
|
@@ -1166,33 +1160,33 @@ export const ProviderProductEdition = ({
|
|
|
1166
1160
|
(!product.id_order || !product.orderId)
|
|
1167
1161
|
) {
|
|
1168
1162
|
return;
|
|
1169
|
-
} else
|
|
1170
|
-
if (
|
|
1163
|
+
} else {
|
|
1164
|
+
if (user.is_retailer) {
|
|
1165
|
+
if (product.id_order || product.orderId) {
|
|
1166
|
+
sendEvaluation("R");
|
|
1167
|
+
setModalViewError(true);
|
|
1168
|
+
} else {
|
|
1169
|
+
setDataGenericModal((prev) => ({
|
|
1170
|
+
...prev,
|
|
1171
|
+
button2: {
|
|
1172
|
+
name: "Continuar",
|
|
1173
|
+
action: () => evaluationToRetailer("R"),
|
|
1174
|
+
},
|
|
1175
|
+
}));
|
|
1176
|
+
setShowGenericModal(true);
|
|
1177
|
+
}
|
|
1178
|
+
} else {
|
|
1171
1179
|
sendEvaluation("R");
|
|
1172
1180
|
setModalViewError(true);
|
|
1173
|
-
} else {
|
|
1174
|
-
setDataGenericModal((prev) => ({
|
|
1175
|
-
...prev,
|
|
1176
|
-
button2: {
|
|
1177
|
-
name: "Continuar",
|
|
1178
|
-
action: () => evaluationToRetailer("R"),
|
|
1179
|
-
},
|
|
1180
|
-
}));
|
|
1181
|
-
setShowGenericModal(true);
|
|
1182
1181
|
}
|
|
1183
|
-
} else {
|
|
1184
|
-
sendEvaluation("R");
|
|
1185
|
-
setModalViewError(true);
|
|
1186
1182
|
}
|
|
1187
1183
|
}}
|
|
1188
1184
|
/>
|
|
1189
1185
|
<FullTabsMenu
|
|
1190
1186
|
tabsSections={tabsSections}
|
|
1191
1187
|
status={
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
"NS"
|
|
1195
|
-
: "-"
|
|
1188
|
+
product[`${getConcept(activeTab)}_status`] ||
|
|
1189
|
+
product?.version_status
|
|
1196
1190
|
}
|
|
1197
1191
|
activeTab={activeTab}
|
|
1198
1192
|
setActiveTab={setActiveTab}
|
|
@@ -1335,44 +1329,56 @@ export const ProviderProductEdition = ({
|
|
|
1335
1329
|
/>
|
|
1336
1330
|
</div>
|
|
1337
1331
|
)}
|
|
1332
|
+
<Button
|
|
1333
|
+
buttonType={
|
|
1334
|
+
evaluationComplete(activeTab) &&
|
|
1335
|
+
(productEdit.product.id_order || productEdit.product.orderId)
|
|
1336
|
+
? "general-green-button"
|
|
1337
|
+
: "general-button-disabled"
|
|
1338
|
+
}
|
|
1339
|
+
label={"Enviar evaluación"}
|
|
1340
|
+
onClick={() => {
|
|
1341
|
+
//setModalSent(true);
|
|
1342
|
+
sendEvaluation();
|
|
1343
|
+
setMessage(`¡Evaluación de ${activeTab} completada!`);
|
|
1344
|
+
}}
|
|
1345
|
+
/>
|
|
1338
1346
|
</div>
|
|
1339
|
-
) : (
|
|
1340
|
-
|
|
1341
|
-
<div
|
|
1342
|
-
<
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
</p>
|
|
1348
|
-
</div>
|
|
1349
|
-
{inCart ? (
|
|
1350
|
-
<button type="button">
|
|
1351
|
-
<Link to="/checkout">
|
|
1352
|
-
<p>Articulo en carrito</p>
|
|
1353
|
-
<p>Ir a checkout</p>
|
|
1354
|
-
</Link>
|
|
1355
|
-
</button>
|
|
1356
|
-
) : (
|
|
1357
|
-
<>
|
|
1358
|
-
<SliderToolTip
|
|
1359
|
-
infoIcon={InfoIcon}
|
|
1360
|
-
slidefront={slidefront}
|
|
1361
|
-
iconSize={"big-image"}
|
|
1362
|
-
slidePosition={"top-slide"}
|
|
1363
|
-
/>
|
|
1364
|
-
<Button
|
|
1365
|
-
onClick={() => {
|
|
1366
|
-
setShowContentohRequestModal &&
|
|
1367
|
-
setShowContentohRequestModal(true);
|
|
1368
|
-
}}
|
|
1369
|
-
buttonType="general-default-button"
|
|
1370
|
-
label="Enviar a Content-oh!"
|
|
1371
|
-
/>
|
|
1372
|
-
</>
|
|
1373
|
-
)}
|
|
1347
|
+
) : revision ? null : (
|
|
1348
|
+
<div className="required-inputs-message">
|
|
1349
|
+
<div>
|
|
1350
|
+
<p>
|
|
1351
|
+
Los atributos son requeridos por las plataformas de las
|
|
1352
|
+
cadenas, es muy importante completar los campos requeridos ya
|
|
1353
|
+
que pueden rechazar el producto por falta de información.
|
|
1354
|
+
</p>
|
|
1374
1355
|
</div>
|
|
1375
|
-
|
|
1356
|
+
{inCart ? (
|
|
1357
|
+
<button type="button">
|
|
1358
|
+
<Link to="/checkout">
|
|
1359
|
+
<p>Articulo en carrito</p>
|
|
1360
|
+
<p>Ir a checkout</p>
|
|
1361
|
+
</Link>
|
|
1362
|
+
</button>
|
|
1363
|
+
) : (
|
|
1364
|
+
<>
|
|
1365
|
+
<SliderToolTip
|
|
1366
|
+
infoIcon={InfoIcon}
|
|
1367
|
+
slidefront={slidefront}
|
|
1368
|
+
iconSize={"big-image"}
|
|
1369
|
+
slidePosition={"top-slide"}
|
|
1370
|
+
></SliderToolTip>
|
|
1371
|
+
<Button
|
|
1372
|
+
onClick={() => {
|
|
1373
|
+
setShowContentohRequestModal &&
|
|
1374
|
+
setShowContentohRequestModal(true);
|
|
1375
|
+
}}
|
|
1376
|
+
buttonType="general-default-button"
|
|
1377
|
+
label="Enviar a Content-oh!"
|
|
1378
|
+
/>
|
|
1379
|
+
</>
|
|
1380
|
+
)}
|
|
1381
|
+
</div>
|
|
1376
1382
|
)}
|
|
1377
1383
|
</div>
|
|
1378
1384
|
</div>
|