save DTL
This commit is contained in:
parent
0923c9ec01
commit
28804ceba1
7 changed files with 267 additions and 181 deletions
|
|
@ -1,160 +1,154 @@
|
|||
<?php
|
||||
|
||||
|
||||
function getGlobalEvaluation($numberedGrade) {
|
||||
if ($numberedGrade >= 0 && $numberedGrade < 3) {
|
||||
return [
|
||||
"letter" => "D",
|
||||
$gradeMapping = [
|
||||
[0, 3, "D", "Assez lourd", "Allègement du flacon recommandé"],
|
||||
[3, 6, "C", "Assez lourd", "Allègement du flacon recommandé"],
|
||||
[6, 8, "B", "Assez lourd", "Allègement du flacon recommandé"],
|
||||
[8, 10, "A", "Léger", "Conception optimisée"],
|
||||
];
|
||||
|
||||
foreach ($gradeMapping as [$min, $max, $letter, $mention, $comment]) {
|
||||
if ($numberedGrade >= $min && $numberedGrade < $max) {
|
||||
return [
|
||||
"letter" => $letter,
|
||||
"number" => $numberedGrade,
|
||||
"mention" => $mention,
|
||||
"comment" => $comment,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
"letter" => "",
|
||||
"number" => $numberedGrade,
|
||||
"mention" => "Assez lourd",
|
||||
"comment" => "Allègement du flacon recommandé"
|
||||
];
|
||||
}
|
||||
if ($numberedGrade >= 3 && $numberedGrade < 6) {
|
||||
return [
|
||||
"letter" => "C",
|
||||
"number" => $numberedGrade,
|
||||
"mention" => "Assez lourd",
|
||||
"comment" => "Allègement du flacon recommandé"
|
||||
];
|
||||
}
|
||||
if ($numberedGrade >= 6 && $numberedGrade < 8) {
|
||||
return [
|
||||
"letter" => "B",
|
||||
"number" => $numberedGrade,
|
||||
"mention" => "Assez lourd",
|
||||
"comment" => "Allègement du flacon recommandé"
|
||||
];
|
||||
}
|
||||
if ($numberedGrade >= 8 && $numberedGrade <= 10) {
|
||||
return [
|
||||
"letter" => "A",
|
||||
"number" => $numberedGrade,
|
||||
"mention" => "Assez lourd",
|
||||
"comment" => "Allègement du flacon recommandé"
|
||||
];
|
||||
}
|
||||
return [
|
||||
"letter" => "",
|
||||
"number" => $numberedGrade,
|
||||
"mention" => "Assez lourd",
|
||||
"comment" => "Allègement du flacon recommandé"
|
||||
];
|
||||
"mention" => "Non défini",
|
||||
"comment" => "Pas d'évaluation disponible",
|
||||
];
|
||||
}
|
||||
|
||||
function processDTLProposals($page) {
|
||||
$proposals = [];
|
||||
|
||||
foreach ($page->dtlProposals()->toStructure() as $proposal) {
|
||||
$location = $proposal->DTLProposalLocation()->value();
|
||||
$DTLProposal = null;
|
||||
|
||||
switch ($location) {
|
||||
case 'proposal':
|
||||
$proposalPage = $page->find('proposal');
|
||||
$proposalFile = $proposal->DTLproposal()->toFile();
|
||||
|
||||
if ($proposalPage && $proposalFile) {
|
||||
$index = $proposalPage->pdf()->toFiles()->indexOf($proposalFile);
|
||||
$DTLProposal = [
|
||||
"location" => "proposal",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=proposal&fileIndex=" . $index,
|
||||
"date" => $proposalFile->modified("d/MM/Y"),
|
||||
"stepLabel" => "Proposition commerciale",
|
||||
];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'industrialIdeation':
|
||||
$proposalPage = $page->find('industrial-ideation');
|
||||
$proposalFile = $proposal->DTLindustrialIdeation()->toFile();
|
||||
|
||||
if ($proposalPage && $proposalFile) {
|
||||
$DTLProposal = [
|
||||
"location" => "industrialIdeation",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=industrial-ideation",
|
||||
"date" => $proposalFile->modified("d/MM/Y"),
|
||||
"stepLabel" => "Idéation industrielle",
|
||||
];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'virtualSampleDynamicTrack':
|
||||
$proposalPage = $proposal->DTLVirtualSampleDynamicTrack()->toPage();
|
||||
if ($proposalPage) {
|
||||
$DTLProposal = [
|
||||
"location" => "virtualSampleDynamicTrack",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=virtual-sample",
|
||||
"date" => $proposalPage->modified("d/MM/Y"),
|
||||
"stepLabel" => "Échantillon virtuel - piste dynamique",
|
||||
];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'virtualSampleStaticTrack':
|
||||
$proposalPage = $page->find('virtual-sample');
|
||||
$proposalFile = $proposal->DTLVirtualSampleStaticTrack()->toFile();
|
||||
if ($proposalPage && $proposalFile) {
|
||||
$DTLProposal = [
|
||||
"location" => "virtualSampleStaticTrack",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=virtual-sample",
|
||||
"date" => $proposalFile->modified("d/MM/Y"),
|
||||
"stepLabel" => "Échantillon virtuel - piste statique",
|
||||
];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ($DTLProposal) {
|
||||
$numberedGlobalGrade = (int) $proposal->DTLGrade()->value() ?? 0;
|
||||
|
||||
$DTLProposal["grades"] = [
|
||||
"global" => getGlobalEvaluation($numberedGlobalGrade),
|
||||
"position" => [
|
||||
"complexity" => (int) $proposal->DTLComplexityGrade()->value() ?? 0,
|
||||
"weight" => (int) $proposal->DTLWeightGrade()->value() ?? 0,
|
||||
],
|
||||
"indicators" => [
|
||||
[
|
||||
"label" => "design",
|
||||
"value" => (int) $proposal->DTLDesignGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "ring",
|
||||
"value" => (int) $proposal->DTLRingGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "shoulder",
|
||||
"value" => (int) $proposal->DTLShoulderGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "skeleton",
|
||||
"value" => (int) $proposal->DTLSkeletonGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "foot",
|
||||
"value" => (int) $proposal->DTLFootGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "bottom",
|
||||
"value" => (int) $proposal->DTLBottomGrade()->value() ?? 0,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
$proposals[] = $DTLProposal;
|
||||
}
|
||||
}
|
||||
|
||||
return $proposals;
|
||||
}
|
||||
|
||||
$project = [
|
||||
"title" => $page->title()->value(),
|
||||
"url" => $page->url(),
|
||||
"modified" => $page->modified("Y-MM-d"),
|
||||
"status" => $page->status(),
|
||||
"logo" => $page->client()->isNotEmpty() && $page->client()->toPage() ? $page->client()->toPage()->logo()->toFile()->url() : null,
|
||||
"steps" => $page->getSteps(),
|
||||
"designToLight" => null
|
||||
"title" => $page->title()->value(),
|
||||
"url" => $page->url(),
|
||||
"modified" => $page->modified("Y-MM-d"),
|
||||
"status" => $page->status(),
|
||||
"logo" => $page->client()->isNotEmpty() && $page->client()->toPage()
|
||||
? $page->client()->toPage()->logo()->toFile()->url()
|
||||
: null,
|
||||
"steps" => $page->getSteps(),
|
||||
"designToLight" => $page->isDTLEnabled() ? processDTLProposals($page) : null,
|
||||
];
|
||||
|
||||
if ($page->isDTLEnabled()) {
|
||||
$DTLProposal = null;
|
||||
$proposalLocation = $page->DTLProposalLocation()->value();
|
||||
|
||||
switch ($proposalLocation) {
|
||||
case 'proposal':
|
||||
$proposalPage = $page->find('proposal');
|
||||
$proposalFile = $page->DTLProposal()->toFile();
|
||||
|
||||
if ($proposalPage && $proposalFile) {
|
||||
$index = $proposalPage->pdf()->toFiles()->indexOf($proposalFile);
|
||||
$DTLProposal = [
|
||||
"location" => "proposal",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=proposal&fileIndex=" . $index,
|
||||
"date" => $proposalFile->modified("Y-MM-d"),
|
||||
"stepLabel" => "Proposition commerciale",
|
||||
];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'industrialIdeation':
|
||||
$proposalPage = $page->find('industrial-ideation');
|
||||
$proposalFile = $page->DTLindustrialIdeation()->toFile();
|
||||
|
||||
if ($proposalPage && $proposalFile) {
|
||||
$index = $proposalPage->pdf()->toFiles()->indexOf($proposalFile);
|
||||
$DTLProposal = [
|
||||
"location" => "proposal",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=industrial-ideation&fileIndex=" . $index,
|
||||
"date" => $proposalFile->modified("Y-MM-d"),
|
||||
"stepLabel" => "Idéation industrielle"
|
||||
];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'virtualSampleDynamicTrack':
|
||||
$proposalPage = $page->DTLVirtualSampleDynamicTrack()->toPage();
|
||||
|
||||
if ($proposalPage) {
|
||||
$DTLProposal = [
|
||||
"location" => "proposal",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=virtual-sample",
|
||||
"date" => $proposalPage->modified("Y-MM-d"),
|
||||
"stepLabel" => "Échantillon virtuel"
|
||||
];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'virtualSampleStaticTrack':
|
||||
$proposalPage = $page->find('virtual-sample');
|
||||
$proposalFile = $page->DTLVirtualSampleStaticTrack()->toFile();
|
||||
|
||||
if ($proposalPage && $proposalFile) {
|
||||
$DTLProposal = [
|
||||
"location" => "proposal",
|
||||
"path" => "/projects/" . $page->slug() . "?dialog=virtual-sample",
|
||||
"date" => $proposalFile->modified("Y-MM-d"),
|
||||
"stepLabel" => "Échantillon virtuel"
|
||||
];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ($page->DTLGrade()->isNotEmpty()) {
|
||||
$numberedGlobalGrade = (int) $page->DTLGrade()->value() ?? 0;
|
||||
$DTLProposal["grades"] = [
|
||||
"global" => getGlobalEvaluation($numberedGlobalGrade),
|
||||
"indicators" => [
|
||||
[
|
||||
"label" => "design",
|
||||
"value" => (int) $page->DTLDesignGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "ring",
|
||||
"value" => (int) $page->DTLRingGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "shoulder",
|
||||
"value" => (int) $page->DTLShoulderGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "skeleton",
|
||||
"value" => (int) $page->DTLSkeletonGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "foot",
|
||||
"value" => (int) $page->DTLFootGrade()->value() ?? 0,
|
||||
],
|
||||
[
|
||||
"label" => "bottom",
|
||||
"value" => (int) $page->DTLBottomGrade()->value() ?? 0,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
$project["designToLight"] = $DTLProposal;
|
||||
}
|
||||
|
||||
|
||||
$pageData = array_merge($genericData, $project);
|
||||
|
||||
echo json_encode([
|
||||
"page" => $pageData,
|
||||
"user" => $userData
|
||||
]);
|
||||
"page" => $pageData,
|
||||
"user" => $userData,
|
||||
]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue