<?php
/**
* Created by PhpStorm.
*/
namespace App\Services;
use App\Entity\Alert;
use App\Entity\CategoryDocument;
use App\Entity\CommentDoc;
use App\Entity\CommentEtap;
use App\Entity\ContratConstruction;
use App\Entity\DimensionEtap160;
use App\Entity\Document;
use App\Entity\DocUpload;
use App\Entity\Etap0;
use App\Entity\Etap1;
use App\Entity\Etap121;
use App\Entity\Etap159;
use App\Entity\Etap160;
use App\Entity\Etap161;
use App\Entity\Etap171;
use App\Entity\Etap172;
use App\Entity\Etap173;
use App\Entity\Etap174;
use App\Entity\Etap175;
use App\Entity\Etap1Pcm;
use App\Entity\Etap2;
use App\Entity\Etap201;
use App\Entity\Etap23;
use App\Entity\Etap24Champs;
use App\Entity\Etap26Champs;
use App\Entity\Etap2Pcm;
use App\Entity\Etap3;
use App\Entity\Etap4;
use App\Entity\Etap5;
use App\Entity\Etap6;
use App\Entity\Etap601;
use App\Entity\Etap602;
use App\Entity\Etap7;
use App\Entity\Etap71;
use App\Entity\Etap71Litige;
use App\Entity\Etap71LitigeCommentaire;
use App\Entity\Etap8;
use App\Entity\Etap80;
use App\Entity\Etap9;
use App\Entity\Etap10;
use App\Entity\Etap11;
use App\Entity\Etap12;
use App\Entity\Etap13;
use App\Entity\Etap14;
use App\Entity\Etap15;
use App\Entity\Etap16;
use App\Entity\Etap17;
use App\Entity\Etap18;
use App\Entity\Etap19;
use App\Entity\Etap20;
use App\Entity\Etap21;
use App\Entity\Etap22;
use App\Entity\Etap24;
use App\Entity\Etap25;
use App\Entity\Etap26;
use App\Entity\Etaps;
use App\Entity\EtapsCategory;
use App\Entity\Fournisseur;
use App\Entity\FournisseurProject;
use App\Entity\ImfomationContratAchat;
use App\Entity\JalonPaiementContratConstruction;
use App\Entity\JalonPaiementEtap16;
use App\Entity\ModuleInformation;
use App\Entity\NumeroCardi;
use App\Entity\OnduleurInformation;
use App\Entity\ParametrageXlsProject;
use App\Entity\PrixAnnexeContratConstruction;
use App\Entity\PrixAnnexeEtap16;
use App\Entity\Project;
use App\Entity\Spv;
use App\Entity\StatusConsruction;
use App\Entity\StatusFoncier;
use App\Entity\StatusRaccordement;
use App\Entity\StatusTracker;
use App\Entity\StatusTrackerConstruction;
use App\Entity\StatusUrbanisme;
use App\Entity\Toiture160;
use App\Entity\TypeValorisation;
use App\Entity\User;
use App\Entity\VisiteTerrain;
use App\Entity\VisiteTerrainV2;
use App\Form\ProjectType;
use App\Form\UserType;
use Kunnu\Dropbox\Dropbox;
use Kunnu\Dropbox\DropboxApp;
use Kunnu\Dropbox\Exceptions\DropboxClientException;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Twig\Environment;
use App\Entity\Centrale;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use PhpOffice\PhpSpreadsheet\IOFactory;
class EtapsService
{
private $em;
private $trans;
private $params;
private $security;
private $session;
private $twig;
private $notification;
public function __construct(
Environment $twig,
SessionInterface $session,
Security $security,
ParameterBagInterface $params,
EntityManagerInterface $em,
TranslatorInterface $trans,
ValidatorInterface $validator,
FlashBagInterface $flashBag,
UserPasswordEncoderInterface $passwordEncoder,
Notifications $notifications,
FormFactoryInterface $form
) {
$this->em = $em;
$this->trans = $trans;
$this->params = $params;
$this->security = $security;
$this->session = $session;
$this->twig = $twig;
$this->validator = $validator;
$this->form = $form;
$this->flashBag = $flashBag;
$this->passwordEncoder = $passwordEncoder;
$this->notification = $notifications;
}
public function addComment($request)
{
$comment = $request->get('comment');
$etapNum = $request->get('etapNum');
$tokenUser = $request->get('tokenUser');
$tokenProject = $request->get('tokenProject');
$commentEtapId = $request->get('commentEtapId');
if($comment and $tokenUser and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$user = $this->em->getRepository(User::class)->findOneBy(['token'=>$tokenUser]);
if($project && $user){
if($commentEtapId){
$commentEntity = $this->em->getRepository(CommentEtap::class)->find($commentEtapId);
if(!$commentEntity){
$commentEntity = new CommentEtap();
}
}else{
$commentEntity = new CommentEtap();
}
$commentEntity->setProject($project);
$commentEntity->setUser($user);
$commentEntity->setComment($comment);
$commentEntity->setEtapNum($etapNum);
$this->em->persist($commentEntity);
$this->em->flush();
return [
'commentEntity' => $commentEntity,
'success' => true
];
}
}
return [
'success' => false
];
}
public function deleteComment($request)
{
$commentEtapId = $request->get('commentEtapId');
if($commentEtapId){
$commentEntity = $this->em->getRepository(CommentEtap::class)->find($commentEtapId);
if($commentEntity) {
$this->em->remove($commentEntity);
$this->em->flush();
return [
'success' => true
];
}
}
return [
'success' => false
];
}
public function changeStatusNextEtap($etap){
if(is_object($etap)){
$this->em->refresh($etap);
$project = $etap->getProject();
$category = $etap->getEtap()->getCategory();
$etapNexNum = $etap->getEtap()->getEtapsNum()+1;
$etapLigne = $this->em->getRepository(Etaps::class)->getEtapByCreteria($category,$etapNexNum,$project);
if(!$etapLigne){
$etapLigne = $this->em->getRepository(Etaps::class)->getEtapByCreteria($category,$etapNexNum+2,$project);
if(!$etapLigne){
$etapLigne = $this->em->getRepository(Etaps::class)->getEtapByCreteria($category,$etapNexNum+3,$project);
if(!$etapLigne){
$etapLigne = $this->em->getRepository(Etaps::class)->getEtapByCreteria($category,$etapNexNum+4,$project);
if(!$etapLigne){
$nexCategoryNum = $category->getNum()+1;
$nexCategoryEntity = $this->em->getRepository(EtapsCategory::class)->findOneBy(['num'=>$nexCategoryNum]);
if($nexCategoryEntity){
$etapLigne = $this->em->getRepository(Etaps::class)->getEtapByCreteria($nexCategoryEntity,0,$project);
if(!$etapLigne){
$etapLigne = $this->em->getRepository(Etaps::class)->getEtapByCreteria($nexCategoryEntity,1,$project);
}
}
}
}
}
}
if($etapLigne){
$nextEtapClass = 'App\\Entity\\Etap' . $etapLigne->getNum();
$nexEtap = $this->em->getRepository($nextEtapClass)->findOneBy(['project' => $project->getId()]);
if ($nexEtap) {
if ($nexEtap->getStatus() == Etaps::STATUS_EN_COURS) {
$this->em->persist($nexEtap);
$this->em->flush();
$project = $etap->getProject();
$project->setNumEtapEncours($nexEtap->getEtap()->getNum());
$this->em->persist($project);
$this->em->flush();
}
}
}
}
}
public function changeStatuEtapValideNotNeedCondition($etap){
if(is_object($etap)){
$this->em->refresh($etap);
if(!$etap->getEtap()->getIsNeedCondition()){
$etap->setStatus(Etaps::STATUS_VALIDE);
$etap->setValideAt(new \DateTime());
$this->em->persist($etap);
$this->em->flush();
}
$this->changeStatusNextEtap($etap);
}
}
private function checkUserAction($user,$project,$etap){
if(in_array('ROLE_DEV',$user->getRoles())){
if($user->getId() == $project->getDeveloppeur()->getId()){
if($etap->getStatus() == Etaps::STATUS_FERMEE or $etap->getStatus() == Etaps::STATUS_REFUSE ){
return false;
}
}
}elseif(in_array('ROLE_EPC',$user->getRoles())){
if($user->getId() == $project->getEpc()->getId()) {
if ($etap->getStatus() == Etaps::STATUS_FERMEE or $etap->getStatus() == Etaps::STATUS_REFUSE) {
return false;
}
}
}
return true;
}
public function changeStatus($etap,$status,$commentRefuse=null,$commentDemande=null){
if(is_object($etap)){
$etap->setStatus($status);
if($status == Etaps::STATUS_VALIDE){
$etap->setValideAt(new \DateTime());
}
if($commentRefuse){
$etap->setCommentRefuse($commentRefuse) ;
$etap->setRefuseAt(new \DateTime());
}
if($commentDemande){
$etap->setCommentDemande($commentDemande);
$etap->setCommentDemandeAt(new \DateTime());
}
$this->em->persist($etap);
$this->em->flush();
}
}
public function addArchiveDoc($array){
if(count($array)> 0){
foreach ($array as $item){
$item->setIsArchived(1);
$this->em->persist($item);
$this->em->flush();
}
}
}
public function submitEtap0($request,$user)
{
$fileInfoArchiMultiple = $request->get('fileInfoArchiMultiple');
$fileMsaAttestationMultiple = $request->get('fileMsaAttestationMultiple');
$fileMsaReleveExploitationMultiple = $request->get('fileMsaReleveExploitationMultiple');
$fileFicheBesoinAgricoleMultiple = $request->get('fileFicheBesoinAgricoleMultiple');
$fileLettreMotivationMultiple = $request->get('fileLettreMotivationMultiple');
$fileICPEMultiple = $request->get('fileICPEMultiple');
$fileReglementUrbanismeMultiple = $request->get('fileReglementUrbanismeMultiple');
$fileAutreEtap0Multiple = $request->get('fileAutreEtap0Multiple');
$commentaireEtap0 = $request->get('commentaireEtap0');
$architecte = $request->get('architecte');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap0::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileInfoArchiMultiple){
$array = explode(',',$fileInfoArchiMultiple);
foreach ($array as $item){
$fileInfoArchiMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileInfoArchiMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileInfoArchiMultipleEntity,'Infos pour archi (bardage, aménagement intérieur, solution EP, borne incendie…)');
$etap->addFileInfoArchiMultiple($fileInfoArchiMultipleEntity);
$this->uploadFileToDropbox($fileInfoArchiMultipleEntity,$project,"Urbanisme/".$fileInfoArchiMultipleEntity->getId().$nomenclature);
}
}
}
if($fileMsaAttestationMultiple){
$array = explode(',',$fileMsaAttestationMultiple);
foreach ($array as $item){
$fileMsaAttestationMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileMsaAttestationMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileMsaAttestationMultipleEntity,'MSA Attestation');
$etap->addFileMsaAttestationMultiple($fileMsaAttestationMultipleEntity);
$this->uploadFileToDropbox($fileMsaAttestationMultipleEntity,$project,"Urbanisme/".$fileMsaAttestationMultipleEntity->getId().$nomenclature);
}
}
}
if($fileMsaReleveExploitationMultiple){
$array = explode(',',$fileMsaReleveExploitationMultiple);
foreach ($array as $item){
$fileMsaReleveExploitationMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileMsaReleveExploitationMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileMsaReleveExploitationMultipleEntity,'MSA Relevé d’exploitation');
$etap->addFileMsaReleveExploitationMultiple($fileMsaReleveExploitationMultipleEntity);
$this->uploadFileToDropbox($fileMsaReleveExploitationMultipleEntity,$project,"Urbanisme/".$fileMsaReleveExploitationMultipleEntity->getId().$nomenclature);
}
}
}
if($fileFicheBesoinAgricoleMultiple){
$array = explode(',',$fileFicheBesoinAgricoleMultiple);
foreach ($array as $item){
$fileFicheBesoinAgricoleMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileFicheBesoinAgricoleMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileFicheBesoinAgricoleMultipleEntity,'Fiche de besoins agricoles');
$etap->addFileFicheBesoinAgricoleMultiple($fileFicheBesoinAgricoleMultipleEntity);
$this->uploadFileToDropbox($fileFicheBesoinAgricoleMultipleEntity,$project,"Urbanisme/".$fileFicheBesoinAgricoleMultipleEntity->getId().$nomenclature);
}
}
}
if($fileLettreMotivationMultiple){
$array = explode(',',$fileLettreMotivationMultiple);
foreach ($array as $item){
$fileLettreMotivationMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileLettreMotivationMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileLettreMotivationMultipleEntity,'Lettre de motivation');
$etap->addFileLettreMotivationMultiple($fileLettreMotivationMultipleEntity);
$this->uploadFileToDropbox($fileLettreMotivationMultipleEntity,$project,"Urbanisme/".$fileLettreMotivationMultipleEntity->getId().$nomenclature);
}
}
}
if($fileICPEMultiple){
$array = explode(',',$fileICPEMultiple);
foreach ($array as $item){
$fileICPEMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileICPEMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileICPEMultipleEntity,'ICPE (attestation non-soumission ou preuve de dépôt déclaration)');
$etap->addFileICPEMultiple($fileICPEMultipleEntity);
$this->uploadFileToDropbox($fileICPEMultipleEntity,$project,"Urbanisme/".$fileICPEMultipleEntity->getId().$nomenclature);
}
}
}
if($fileReglementUrbanismeMultiple){
$array = explode(',',$fileReglementUrbanismeMultiple);
foreach ($array as $item){
$fileReglementUrbanismeMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileReglementUrbanismeMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileReglementUrbanismeMultipleEntity,'Règlement d’urbanisme » (PLU / PLUi)');
$etap->addFileReglementUrbanismeMultiple($fileReglementUrbanismeMultipleEntity);
$this->uploadFileToDropbox($fileReglementUrbanismeMultipleEntity,$project,"Urbanisme/".$fileReglementUrbanismeMultipleEntity->getId().$nomenclature);
}
}
}
if($fileAutreEtap0Multiple){
$array = explode(',',$fileAutreEtap0Multiple);
foreach ($array as $item){
$fileAutreEtap0MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileAutreEtap0MultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileAutreEtap0MultipleEntity,'Règlement d’urbanisme » (PLU / PLUi)');
$etap->addFileAutreEtap0Multiple($fileAutreEtap0MultipleEntity);
$this->uploadFileToDropbox($fileAutreEtap0MultipleEntity,$project,"Urbanisme/".$fileAutreEtap0MultipleEntity->getId().$nomenclature);
}
}
}
if($commentaireEtap0 and $commentaireEtap0 != ''){
$etap->setCommentaireEtap0($commentaireEtap0);
}else{
$etap->setCommentaireEtap0(null);
}
if($architecte and $architecte != 0){
$fournisseur = $this->em->getRepository(Fournisseur::class)->find($architecte);
if($fournisseur){
$etap->setArchitecte($fournisseur);
}else{
$etap->setArchitecte(null);
}
}else {
$etap->setArchitecte(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap1($request,$user)
{
$fileDossierPcDpMultiple = $request->get('fileDossierPcDpMultiple');
$fileAutreDocPcMultiple = $request->get('fileAutreDocPcMultiple');
$fileRecepisseComplementPcMultiple = $request->get('fileRecepisseComplementPcMultiple');
$fileDemandeComplementPcMultiple = $request->get('fileDemandeComplementPcMultiple');
$fileRecepisseDepotPcMultiple = $request->get('fileRecepisseDepotPcMultiple');
$fileArretePcDpMultiple = $request->get('fileArretePcDpMultiple');
$fileCertificatNonOppositionEtap1Multiple = $request->get('fileCertificatNonOppositionEtap1Multiple');
$dateArretePcEtap = $request->get('dateArretePcEtap');
$referenceDp = $request->get('referenceDp');
$referencePc = $request->get('referencePc');
$dateDepotPc = $request->get('dateDepotPc');
$dateDemandeComplement = $request->get('dateDemandeComplement');
$isDelaiInstruction = $request->get('isDelaiInstruction');
$delaiInstruction = $request->get('delaiInstruction');
$dateDepotComplement = $request->get('dateDepotComplement');
$isNotDateDemandeComplement = $request->get('isNotDateDemandeComplement');
$isDateArretePcProrogation = $request->get('isDateArretePcProrogation');
$champLibre = $request->get('champLibre');
// dp mixte
$fileDossierPcDpMixteMultiple = $request->get('fileDossierPcDpMixteMultiple');
$fileAutreDocPcDpMixteMultiple = $request->get('fileAutreDocPcDpMixteMultiple');
$fileRecepisseComplementPcDpMixteMultiple = $request->get('fileRecepisseComplementPcDpMixteMultiple');
$fileDemandeComplementPcDpMixteMultiple = $request->get('fileDemandeComplementPcDpMixteMultiple');
$fileRecepisseDepotPcDpMixteMultiple = $request->get('fileRecepisseDepotPcDpMixteMultiple');
$fileArretePcDpMixteMultiple = $request->get('fileArretePcDpMixteMultiple');
$dateArretePcDpMixte = $request->get('dateArretePcDpMixte');
$referencePcDpMixte = $request->get('referencePcDpMixte');
$dateDepotPcDpMixte = $request->get('dateDepotPcDpMixte');
$dateDemandeComplementPcDpMixte = $request->get('dateDemandeComplementPcDpMixte');
$isDelaiInstructionPcDpMixte = $request->get('isDelaiInstructionPcDpMixte');
$delaiInstructionPcDpMixte = $request->get('delaiInstructionPcDpMixte');
$dateDepotComplementPcDpMixte = $request->get('dateDepotComplementPcDpMixte');
$isDateArretePcProrogationPcDpMixte = $request->get('isDateArretePcProrogationPcDpMixte');
$champLibrePcDpMixte = $request->get('champLibrePcDpMixte');
// dp mixte
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$etap1Pcm = $request->get('etap1Pcm');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap1::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($etap1Pcm){
foreach ($etap1Pcm as $item){
if(isset($item['id']) and $item['id'] != ''){
$etap1PcmEntity = $this->em->getRepository(Etap1Pcm::class)->findOneBy(['token'=>$item['id']]) ;
}else{
$etap1PcmEntity = new Etap1Pcm() ;
}
if(isset($item['fileDossierPcmpMultiple']) and $item['fileDossierPcmpMultiple'] != ''){
$array = explode(',',$item['fileDossierPcmpMultiple']);
foreach ($array as $item1){
$fileDossierPcmpMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileDossierPcmpMultipleEntity,'Dossier PCM');
$etap1PcmEntity->addFileDossierPcmpMultiple($fileDossierPcmpMultipleEntity);
$this->uploadFileToDropbox($fileDossierPcmpMultipleEntity,$project,"Urbanisme/".$fileDossierPcmpMultipleEntity->getId().$nomenclature);
}
}
if(isset($item['fileArretePcmMultiple']) and $item['fileArretePcmMultiple'] != ''){
$array = explode(',',$item['fileArretePcmMultiple']);
foreach ($array as $item1){
$fileArretePcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileArretePcmMultipleEntity,'Arrêté PCM (Permis de construire modificatif)');
$etap1PcmEntity->addFileArretePcmMultiple($fileArretePcmMultipleEntity);
$this->uploadFileToDropbox($fileArretePcmMultipleEntity,$project,"Urbanisme/".$fileArretePcmMultipleEntity->getId().$nomenclature);
}
}
if(isset($item['fileRecepisseDepotPcmMultiple']) and $item['fileRecepisseDepotPcmMultiple'] != ''){
$array = explode(',',$item['fileRecepisseDepotPcmMultiple']);
foreach ($array as $item1){
$fileRecepisseDepotPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileRecepisseDepotPcmMultipleEntity,'Récépissé dépôt PCM');
$etap1PcmEntity->addFileRecepisseDepotPcmMultiple($fileRecepisseDepotPcmMultipleEntity);
$this->uploadFileToDropbox($fileRecepisseDepotPcmMultipleEntity,$project,"Urbanisme/".$fileRecepisseDepotPcmMultipleEntity->getId().$nomenclature);
}
}
if(isset($item['fileDemandeComplementPcmMultiple']) and $item['fileDemandeComplementPcmMultiple'] != ''){
$array = explode(',',$item['fileDemandeComplementPcmMultiple']);
foreach ($array as $item1){
$fileDemandeComplementPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileDemandeComplementPcmMultipleEntity,'Demande compléments PCM');
$etap1PcmEntity->addFileDemandeComplementPcmMultiple($fileDemandeComplementPcmMultipleEntity);
$this->uploadFileToDropbox($fileDemandeComplementPcmMultipleEntity,$project,"Urbanisme/".$fileDemandeComplementPcmMultipleEntity->getId().$nomenclature);
}
}
if(isset($item['fileRecepisseComplementPcmMultiple']) and $item['fileRecepisseComplementPcmMultiple'] != ''){
$array = explode(',',$item['fileRecepisseComplementPcmMultiple']);
foreach ($array as $item1){
$fileRecepisseComplementPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileRecepisseComplementPcmMultipleEntity,'Récépissé compléments PCM');
$etap1PcmEntity->addFileRecepisseComplementPcmMultiple($fileRecepisseComplementPcmMultipleEntity);
$this->uploadFileToDropbox($fileRecepisseComplementPcmMultipleEntity,$project,"Urbanisme/".$fileRecepisseComplementPcmMultipleEntity->getId().$nomenclature);
}
}
if(isset($item['fileAutreDocPcmMultiple']) and $item['fileAutreDocPcmMultiple'] != ''){
$array = explode(',',$item['fileAutreDocPcmMultiple']);
foreach ($array as $item1){
$fileAutreDocPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileAutreDocPcmMultipleEntity,'Autre (prolongation délai d’instruction) PCM');
$etap1PcmEntity->addFileAutreDocPcmMultiple($fileAutreDocPcmMultipleEntity);
$this->uploadFileToDropbox($fileAutreDocPcmMultipleEntity,$project,"Urbanisme/".$fileAutreDocPcmMultipleEntity->getId().$nomenclature);
}
}
if(isset($item['dateArretePcm']) and $item['dateArretePcm'] != ''){
$etap1PcmEntity->setDateArretePcm(new \DateTime($item['dateArretePcm']));
}else{
$etap1PcmEntity->setDateArretePcm(null);
}
if(isset($item['referencePcm']) and $item['referencePcm'] != ''){
$etap1PcmEntity->setReferencePcm($item['referencePcm']);
}else{
$etap1PcmEntity->setReferencePcm(null);
}
if(isset($item['dateDepotPcm']) and $item['dateDepotPcm'] != ''){
$etap1PcmEntity->setDateDepotPCM(new \DateTime($item['dateDepotPcm']));
}else{
$etap1PcmEntity->setDateDepotPCM(null);
}
if(isset($item['dateDemandeComplement']) and $item['dateDemandeComplement'] != ''){
$etap1PcmEntity->setDateDemandeComplement(new \DateTime($item['dateDemandeComplement']));
}else{
$etap1PcmEntity->setDateDemandeComplement(null);
}
if(isset($item['isDelaiInstruction'])){
$etap1PcmEntity->setIsDelaiInstruction($item['isDelaiInstruction']);
}
if(isset($item['delaiInstruction'])){
$etap1PcmEntity->setDelaiInstruction((int)$item['delaiInstruction']);
}
if(isset($item['isDateArretePcmProrogation'])){
$etap1PcmEntity->setIsDateArretePCMProrogation($item['isDateArretePcmProrogation']);
}
if(isset($item['isNotDateDemandeComplementPcm'])){
$etap1PcmEntity->setIsNotDateDemandeComplementPcm($item['isNotDateDemandeComplementPcm']);
}
if(isset($item['dateDepotComplement']) and $item['dateDepotComplement'] != ''){
$etap1PcmEntity->setDateDepotComplement(new \DateTime($item['dateDepotComplement']));
}else{
$etap1PcmEntity->setDateDepotComplement(null);
}
if(isset($item['champLibrePcm'])){
$etap1PcmEntity->setChampLibrePcm($item['champLibrePcm']);
}
$etap1PcmEntity->setEtap1($etap);
$this->em->persist($etap1PcmEntity);
$this->em->flush();
}
}
if($project->getTypologieProject() && $project->getTypologieProject()->getId() == 1){
$str = 'DP';
}else{
$str = 'PC';
}
if($fileDossierPcDpMultiple){
$array = explode(',',$fileDossierPcDpMultiple);
foreach ($array as $item){
$fileDossierPcDpMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileDossierPcDpMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileDossierPcDpMultipleEntity,'Dossier '.$str);
$etap->addFileDossierPcDpMultiple($fileDossierPcDpMultipleEntity);
$this->uploadFileToDropbox($fileDossierPcDpMultipleEntity,$project,"Urbanisme/".$fileDossierPcDpMultipleEntity->getId().$nomenclature);
}
}
}
if($fileArretePcDpMultiple){
$array = explode(',',$fileArretePcDpMultiple);
foreach ($array as $item){
$fileArretePcDpMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileArretePcDpMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileArretePcDpMultipleEntity,'Arrêté '.$str);
$etap->addFileArretePcDpMultiple($fileArretePcDpMultipleEntity);
$this->uploadFileToDropbox($fileArretePcDpMultipleEntity,$project,"Urbanisme/".$fileArretePcDpMultipleEntity->getId().$nomenclature);
}
}
}
if($fileCertificatNonOppositionEtap1Multiple){
$array = explode(',',$fileCertificatNonOppositionEtap1Multiple);
foreach ($array as $item){
$fileCertificatNonOppositionEtap1MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileCertificatNonOppositionEtap1MultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileCertificatNonOppositionEtap1MultipleEntity,'certificat de non-opposition');
$etap->addFileCertificatNonOppositionEtap1Multiple($fileCertificatNonOppositionEtap1MultipleEntity);
$this->uploadFileToDropbox($fileCertificatNonOppositionEtap1MultipleEntity,$project,"Urbanisme/".$fileCertificatNonOppositionEtap1MultipleEntity->getId().$nomenclature);
}
}
}
if($fileRecepisseDepotPcMultiple){
$array = explode(',',$fileRecepisseDepotPcMultiple);
foreach ($array as $item){
$fileRecepisseDepotPcMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileRecepisseDepotPcMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileRecepisseDepotPcMultipleEntity,'Récépissé dépôt '.$str);
$etap->addFileRecepisseDepotPcMultiple($fileRecepisseDepotPcMultipleEntity);
$this->uploadFileToDropbox($fileRecepisseDepotPcMultipleEntity,$project,"Urbanisme/".$fileRecepisseDepotPcMultipleEntity->getId().$nomenclature);
}
}
}
if($fileDemandeComplementPcMultiple){
$array = explode(',',$fileDemandeComplementPcMultiple);
foreach ($array as $item){
$fileDemandeComplementPcMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileDemandeComplementPcMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileDemandeComplementPcMultipleEntity,'Demande compléments '.$str);
$etap->addFileDemandeComplementPcMultiple($fileDemandeComplementPcMultipleEntity);
$this->uploadFileToDropbox($fileDemandeComplementPcMultipleEntity,$project,"Urbanisme/".$fileDemandeComplementPcMultipleEntity->getId().$nomenclature);
}
}
}
if($fileRecepisseComplementPcMultiple){
$array = explode(',',$fileRecepisseComplementPcMultiple);
foreach ($array as $item){
$fileRecepisseComplementPcMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileRecepisseComplementPcMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileRecepisseComplementPcMultipleEntity,'Récépissé compléments '.$str);
$etap->addFileRecepisseComplementPcMultiple($fileRecepisseComplementPcMultipleEntity);
$this->uploadFileToDropbox($fileRecepisseComplementPcMultipleEntity,$project,"Urbanisme/".$fileRecepisseComplementPcMultipleEntity->getId().$nomenclature);
}
}
}
if($fileAutreDocPcMultiple){
$array = explode(',',$fileAutreDocPcMultiple);
foreach ($array as $item){
$fileAutreDocPcMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileAutreDocPcMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileAutreDocPcMultipleEntity,'Autre (prolongation délai d’instruction) '.$str);
$etap->addFileAutreDocPcMultiple($fileAutreDocPcMultipleEntity);
$this->uploadFileToDropbox($fileAutreDocPcMultipleEntity,$project,"Urbanisme/".$fileAutreDocPcMultipleEntity->getId().$nomenclature);
}
}
}
if($dateArretePcEtap){
$etap->setDateArretePcDp(new \DateTime($dateArretePcEtap));
$project->setDateArretePc(new \DateTime($dateArretePcEtap));
}else{
$etap->setDateArretePcDp(null);
$project->setDateArretePc(null);
}
if($referenceDp){
$etap->setReferenceDp($referenceDp);
}
if($referencePc){
$etap->setReferencePc($referencePc);
}
if($dateDepotPc){
$etap->setDateDepotPc(new \DateTime($dateDepotPc));
}else{
$etap->setDateDepotPc(null);
}
if($dateDemandeComplement){
$etap->setDateDemandeComplement(new \DateTime($dateDemandeComplement));
}else{
$etap->setDateDemandeComplement(null);
}
$etap->setIsDelaiInstruction($isDelaiInstruction);
$etap->setIsNotDateDemandeComplement($isNotDateDemandeComplement);
$etap->setDelaiInstruction((int)$delaiInstruction);
$etap->setIsDateArretePcProrogation($isDateArretePcProrogation);
$etap->setChampLibre($champLibre);
if($dateDepotComplement){
$etap->setDateDepotComplement(new \DateTime($dateDepotComplement));
}else{
$etap->setDateDepotComplement(null);
}
// dp mixte
if($fileDossierPcDpMixteMultiple){
$array = explode(',',$fileDossierPcDpMixteMultiple);
foreach ($array as $item){
$fileDossierPcDpMixteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileDossierPcDpMixteMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileDossierPcDpMixteMultipleEntity,'Dossier dp (mixte)');
$etap->addFileDossierPcDpMixteMultiple($fileDossierPcDpMixteMultipleEntity);
$this->uploadFileToDropbox($fileDossierPcDpMixteMultipleEntity,$project,"Urbanisme/".$fileDossierPcDpMixteMultipleEntity->getId().$nomenclature);
}
}
}
if($fileArretePcDpMixteMultiple){
$array = explode(',',$fileArretePcDpMixteMultiple);
foreach ($array as $item){
$fileArretePcDpMixteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileArretePcDpMixteMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileArretePcDpMixteMultipleEntity,'Arrêté dp (mixte)');
$etap->addFileArretePcDpMixteMultiple($fileArretePcDpMixteMultipleEntity);
$this->uploadFileToDropbox($fileArretePcDpMixteMultipleEntity,$project,"Urbanisme/".$fileArretePcDpMixteMultipleEntity->getId().$nomenclature);
}
}
}
if($fileRecepisseDepotPcDpMixteMultiple){
$array = explode(',',$fileRecepisseDepotPcDpMixteMultiple);
foreach ($array as $item){
$fileRecepisseDepotPcDpMixteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileRecepisseDepotPcDpMixteMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileRecepisseDepotPcDpMixteMultipleEntity,'Récépissé dépôt dp (mixte)');
$etap->addFileRecepisseDepotPcDpMixteMultiple($fileRecepisseDepotPcDpMixteMultipleEntity);
$this->uploadFileToDropbox($fileRecepisseDepotPcDpMixteMultipleEntity,$project,"Urbanisme/".$fileRecepisseDepotPcDpMixteMultipleEntity->getId().$nomenclature);
}
}
}
if($fileDemandeComplementPcDpMixteMultiple){
$array = explode(',',$fileDemandeComplementPcDpMixteMultiple);
foreach ($array as $item){
$fileDemandeComplementPcDpMixteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileDemandeComplementPcDpMixteMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileDemandeComplementPcDpMixteMultipleEntity,'Demande compléments dp (mixte)');
$etap->addFileDemandeComplementPcDpMixteMultiple($fileDemandeComplementPcDpMixteMultipleEntity);
$this->uploadFileToDropbox($fileDemandeComplementPcDpMixteMultipleEntity,$project,"Urbanisme/".$fileDemandeComplementPcDpMixteMultipleEntity->getId().$nomenclature);
}
}
}
if($fileRecepisseComplementPcDpMixteMultiple){
$array = explode(',',$fileRecepisseComplementPcDpMixteMultiple);
foreach ($array as $item){
$fileRecepisseComplementPcDpMixteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileRecepisseComplementPcDpMixteMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileRecepisseComplementPcDpMixteMultipleEntity,'Récépissé compléments dp (mixte)');
$etap->addFileRecepisseComplementPcDpMixteMultiple($fileRecepisseComplementPcDpMixteMultipleEntity);
$this->uploadFileToDropbox($fileRecepisseComplementPcDpMixteMultipleEntity,$project,"Urbanisme/".$fileRecepisseComplementPcDpMixteMultipleEntity->getId().$nomenclature);
}
}
}
if($fileAutreDocPcDpMixteMultiple){
$array = explode(',',$fileAutreDocPcDpMixteMultiple);
foreach ($array as $item){
$fileAutreDocPcDpMixteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileAutreDocPcDpMixteMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileAutreDocPcDpMixteMultipleEntity,'Autre (prolongation délai d’instruction) dp (mixte)');
$etap->addFileAutreDocPcDpMixteMultiple($fileAutreDocPcDpMixteMultipleEntity);
$this->uploadFileToDropbox($fileAutreDocPcDpMixteMultipleEntity,$project,"Urbanisme/".$fileAutreDocPcDpMixteMultipleEntity->getId().$nomenclature);
}
}
}
if($dateArretePcDpMixte){
$etap->setDateArretePcDpMixte(new \DateTime($dateArretePcDpMixte));
}else{
$etap->setDateArretePcDpMixte(null);
}
if($referencePcDpMixte){
$etap->setReferencePcDpMixte($referencePcDpMixte);
}
if($dateDepotPcDpMixte){
$etap->setDateDepotPcDpMixte(new \DateTime($dateDepotPcDpMixte));
}else{
$etap->setDateDepotPcDpMixte(null);
}
if($dateDemandeComplementPcDpMixte){
$etap->setDateDemandeComplementPcDpMixte(new \DateTime($dateDemandeComplementPcDpMixte));
}else{
$etap->setDateDemandeComplementPcDpMixte(null);
}
$etap->setIsDelaiInstructionPcDpMixte($isDelaiInstructionPcDpMixte);
$etap->setDelaiInstructionPcDpMixte($delaiInstructionPcDpMixte);
$etap->setIsDateArretePcProrogationPcDpMixte($isDateArretePcProrogationPcDpMixte);
$etap->setChampLibrePcDpMixte($champLibrePcDpMixte);
if($dateDepotComplementPcDpMixte){
$etap->setDateDepotComplementPcDpMixte(new \DateTime($dateDepotComplementPcDpMixte));
}else{
$etap->setDateDepotComplementPcDpMixte(null);
}
//dp mixte
$this->em->persist($etap);
$this->em->persist($project);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->notification->addAlertPc($project);
$this->addAlertEtap1AndEtap2($project);
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap2($request,$user)
{
$filePVPassageHuissierMultiple = $request->get('filePVPassageHuissierMultiple');
$fileCertificatNonRecoursMultiple = $request->get('fileCertificatNonRecoursMultiple');
$fileCertificatNonRetraitMultiple = $request->get('fileCertificatNonRetraitMultiple');
$fileCertificatNonOppositionMultiple = $request->get('fileCertificatNonOppositionMultiple');
$fileDemandeAnrMarieMultiple = $request->get('fileDemandeAnrMarieMultiple');
$fileDemandeAnrTaMultiple = $request->get('fileDemandeAnrTaMultiple');
$fileAttestationHonneurAnrMairieTaMultiple = $request->get('fileAttestationHonneurAnrMairieTaMultiple');
$date1PassageHuissier = $request->get('date1PassageHuissier');
$date2PassageHuissier = $request->get('date2PassageHuissier');
$date3PassageHuissier = $request->get('date3PassageHuissier');
$datePcDpPurge = $request->get('datePcDpPurge');
$fournisseurId = $request->get('fournisseur');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$etap2Pcm = $request->get('etap2Pcm');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap2::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($etap2Pcm) {
foreach ($etap2Pcm as $item) {
if (isset($item['id']) and $item['id'] != '') {
$etap2PcmEntity = $this->em->getRepository(Etap2Pcm::class)->findOneBy(['token' => $item['id']]);
} else {
$etap2PcmEntity = new Etap2Pcm();
}
if (isset($item['filePVPassageHuissierPcmMultiple']) and $item['filePVPassageHuissierPcmMultiple'] != '') {
$array = explode(',', $item['filePVPassageHuissierPcmMultiple']);
foreach ($array as $item1) {
$filePVPassageHuissierPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
$nomenclature = $this->getNomenclature($etap, $filePVPassageHuissierPcmMultipleEntity, 'PV passage huissier PCM');
$etap2PcmEntity->addFilePVPassageHuissierPcmMultiple($filePVPassageHuissierPcmMultipleEntity);
}
}
if (isset($item['fileCertificatNonRecoursPcmMultiple']) and $item['fileCertificatNonRecoursPcmMultiple'] != '') {
$array = explode(',', $item['fileCertificatNonRecoursPcmMultiple']);
foreach ($array as $item1) {
$fileCertificatNonRecoursPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
$nomenclature = $this->getNomenclature($etap, $fileCertificatNonRecoursPcmMultipleEntity, 'Certificat de non-recours (Tribunal Administratif) PCM');
$etap2PcmEntity->addFileCertificatNonRecoursPcmMultiple($fileCertificatNonRecoursPcmMultipleEntity);
}
}
if (isset($item['fileCertificatNonRetraitPcmMultiple']) and $item['fileCertificatNonRetraitPcmMultiple'] != '') {
$array = explode(',', $item['fileCertificatNonRetraitPcmMultiple']);
foreach ($array as $item1) {
$fileCertificatNonRetraitPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
$nomenclature = $this->getNomenclature($etap, $fileCertificatNonRetraitPcmMultipleEntity, 'Certificat de non-retrait (Mairie) PCM');
$etap2PcmEntity->addFileCertificatNonRetraitPcmMultiple($fileCertificatNonRetraitPcmMultipleEntity);
}
}
if (isset($item['fileDemandeAnrMariePcmMultiple']) and $item['fileDemandeAnrMariePcmMultiple'] != '') {
$array = explode(',', $item['fileDemandeAnrMariePcmMultiple']);
foreach ($array as $item1) {
$fileDemandeAnrMariePcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
$nomenclature = $this->getNomenclature($etap, $fileDemandeAnrMariePcmMultipleEntity, 'Demande d’ANR Mairie PCM');
$etap2PcmEntity->addFileDemandeAnrMariePcmMultiple($fileDemandeAnrMariePcmMultipleEntity);
}
}
if (isset($item['fileDemandeAnrTaPcmMultiple']) and $item['fileDemandeAnrTaPcmMultiple'] != '') {
$array = explode(',', $item['fileDemandeAnrTaPcmMultiple']);
foreach ($array as $item1) {
$fileDemandeAnrTaPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
$nomenclature = $this->getNomenclature($etap, $fileDemandeAnrTaPcmMultipleEntity, 'Demande d’ANR TA PCM');
$etap2PcmEntity->addFileDemandeAnrTaPcmMultiple($fileDemandeAnrTaPcmMultipleEntity);
}
}
if (isset($item['fileAttestationHonneurAnrMairieTaPcmMultiple']) and $item['fileAttestationHonneurAnrMairieTaPcmMultiple'] != '') {
$array = explode(',', $item['fileAttestationHonneurAnrMairieTaPcmMultiple']);
foreach ($array as $item1) {
$fileAttestationHonneurAnrMairieTaPcmMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
$nomenclature = $this->getNomenclature($etap, $fileAttestationHonneurAnrMairieTaPcmMultipleEntity, 'Attestation sur l’honneur ANR Mairie / TA PCM');
$etap2PcmEntity->addFileAttestationHonneurAnrMairieTaPcmMultiple($fileAttestationHonneurAnrMairieTaPcmMultipleEntity);
}
}
if(isset($item['date1PassageHuissierPcm']) and $item['date1PassageHuissierPcm'] != ''){
$etap2PcmEntity->setDate1PassageHuissierPcm(new \DateTime($item['date1PassageHuissierPcm']));
}else{
$etap2PcmEntity->setDate1PassageHuissierPcm(null);
}
if(isset($item['date2PassageHuissierPcm']) and $item['date2PassageHuissierPcm'] != ''){
$etap2PcmEntity->setDate2PassageHuissierPcm(new \DateTime($item['date2PassageHuissierPcm']));
}else{
$etap2PcmEntity->setDate2PassageHuissierPcm(null);
}
if(isset($item['date3PassageHuissierPcm']) and $item['date3PassageHuissierPcm'] != ''){
$etap2PcmEntity->setDate3PassageHuissierPcm(new \DateTime($item['date3PassageHuissierPcm']));
}else{
$etap2PcmEntity->setDate3PassageHuissierPcm(null);
}
if(isset($item['date3PassageHuissierPcm']) and $item['date3PassageHuissierPcm'] != ''){
$etap2PcmEntity->setDate3PassageHuissierPcm(new \DateTime($item['date3PassageHuissierPcm']));
}else{
$etap2PcmEntity->setDate3PassageHuissierPcm(null);
}
if(isset($item['fournisseuritem']) and $item['fournisseuritem'] != 0){
$fournisseur = $this->em->getRepository(Fournisseur::class)->find($item['fournisseuritem']);
if($fournisseur){
$etap2PcmEntity->setFournisseurPcm($fournisseur);
}else{
$etap2PcmEntity->setFournisseurPcm(null);
}
}else {
$etap2PcmEntity->setFournisseurPcm(null);
}
$etap2PcmEntity->setEtap2($etap);
$this->em->persist($etap2PcmEntity);
$this->em->flush();
}
}
if($filePVPassageHuissierMultiple){
$array = explode(',',$filePVPassageHuissierMultiple);
foreach ($array as $item){
$filePVPassageHuissierMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePVPassageHuissierMultipleEntity,'PV passage huissier');
$etap->addFilePVPassageHuissierMultiple($filePVPassageHuissierMultipleEntity);
$this->uploadFileToDropbox($filePVPassageHuissierMultipleEntity,$project,"Urbanisme/".$filePVPassageHuissierMultipleEntity->getId().$nomenclature);
}
}
if($fileCertificatNonRecoursMultiple){
$array = explode(',',$fileCertificatNonRecoursMultiple);
foreach ($array as $item){
$fileCertificatNonRecoursMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileCertificatNonRecoursMultipleEntity,'Certificat de non-recours');
$etap->addFileCertificatNonRecoursMultiple($fileCertificatNonRecoursMultipleEntity);
$this->uploadFileToDropbox($fileCertificatNonRecoursMultipleEntity,$project,"Urbanisme/".$fileCertificatNonRecoursMultipleEntity->getId().$nomenclature);
}
}
if($fileCertificatNonRetraitMultiple){
$array = explode(',',$fileCertificatNonRetraitMultiple);
foreach ($array as $item){
$fileCertificatNonRetraitMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileCertificatNonRetraitMultipleEntity,'Certificat de non-retrait');
$etap->addFileCertificatNonRetraitMultiple($fileCertificatNonRetraitMultipleEntity);
$this->uploadFileToDropbox($fileCertificatNonRetraitMultipleEntity,$project,"Urbanisme/".$fileCertificatNonRetraitMultipleEntity->getId().$nomenclature);
}
}
if($fileCertificatNonOppositionMultiple){
$array = explode(',',$fileCertificatNonOppositionMultiple);
foreach ($array as $item){
$fileCertificatNonOppositionMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileCertificatNonOppositionMultipleEntity,'Certificat de non-opposition');
$etap->addFileCertificatNonOppositionMultiple($fileCertificatNonOppositionMultipleEntity);
$this->uploadFileToDropbox($fileCertificatNonOppositionMultipleEntity,$project,"Urbanisme/".$fileCertificatNonOppositionMultipleEntity->getId().$nomenclature);
}
}
if($fileDemandeAnrMarieMultiple){
$array = explode(',',$fileDemandeAnrMarieMultiple);
foreach ($array as $item){
$fileDemandeAnrMarieMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDemandeAnrMarieMultipleEntity,'Demande d’ANR Mairie');
$etap->addFileDemandeAnrMarieMultiple($fileDemandeAnrMarieMultipleEntity);
$this->uploadFileToDropbox($fileDemandeAnrMarieMultipleEntity,$project,"Urbanisme/".$fileDemandeAnrMarieMultipleEntity->getId().$nomenclature);
}
}
if($fileDemandeAnrTaMultiple){
$array = explode(',',$fileDemandeAnrTaMultiple);
foreach ($array as $item){
$fileDemandeAnrTaMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDemandeAnrTaMultipleEntity,'Demande d’ANR TA');
$etap->addFileDemandeAnrTaMultiple($fileDemandeAnrTaMultipleEntity);
$this->uploadFileToDropbox($fileDemandeAnrTaMultipleEntity,$project,"Urbanisme/".$fileDemandeAnrTaMultipleEntity->getId().$nomenclature);
}
}
if($fileAttestationHonneurAnrMairieTaMultiple){
$array = explode(',',$fileAttestationHonneurAnrMairieTaMultiple);
foreach ($array as $item){
$fileAttestationHonneurAnrMairieTaMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAttestationHonneurAnrMairieTaMultipleEntity,'Attestation sur l’honneur ANR Mairie / TA');
$etap->addFileAttestationHonneurAnrMairieTaMultiple($fileAttestationHonneurAnrMairieTaMultipleEntity);
$this->uploadFileToDropbox($fileAttestationHonneurAnrMairieTaMultipleEntity,$project,"Urbanisme/".$fileAttestationHonneurAnrMairieTaMultipleEntity->getId().$nomenclature);
}
}
if($date1PassageHuissier){
$etap->setDate1PassageHuissier(new \DateTime($date1PassageHuissier));
}else{
$etap->setDate1PassageHuissier(null);
}
if($date2PassageHuissier){
$etap->setDate2PassageHuissier(new \DateTime($date2PassageHuissier));
}else{
$etap->setDate2PassageHuissier(null);
}
if($date3PassageHuissier){
$etap->setDate3PassageHuissier(new \DateTime($date3PassageHuissier));
}else{
$etap->setDate3PassageHuissier(null);
}
if($datePcDpPurge){
$etap->setDatePcDpPurge(new \DateTime($datePcDpPurge));
}else{
$etap->setDatePcDpPurge(null);
}
if($fournisseurId and $fournisseurId != 0){
$fournisseur = $this->em->getRepository(Fournisseur::class)->find($fournisseurId);
if($fournisseur){
$etap->setFournisseur($fournisseur);
}else{
$etap->setFournisseur(null);
}
}else {
$etap->setFournisseur(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->addAlertEtap1AndEtap2($project);
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap3($request,$user)
{
$fileDocDrocMultiple = $request->get('fileDocDrocMultiple');
$dateDocDrocEtap = $request->get('dateDocDrocEtap');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap3::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileDocDrocMultiple){
$array = explode(',',$fileDocDrocMultiple);
foreach ($array as $item){
$fileDocDrocMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDocDrocMultipleEntity,'DOC / DROC');
$etap->addFileDocDrocMultiple($fileDocDrocMultipleEntity);
$this->uploadFileToDropbox($fileDocDrocMultipleEntity,$project,"Urbanisme/".$fileDocDrocMultipleEntity->getId().$nomenclature);
}
}
if($dateDocDrocEtap){
$etap->setDateDocDroc(new \DateTime($dateDocDrocEtap));
}else{
$etap->setDateDocDroc(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap4($request,$user)
{
$fileDaactMultiple = $request->get('fileDaactMultiple');
$dateDaactEtap = $request->get('dateDaactEtap');
$dateSignatureDaact = $request->get('dateSignatureDaact');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap4::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileDaactMultiple){
$array = explode(',',$fileDaactMultiple);
foreach ($array as $item){
$fileDaactMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDaactMultipleEntity,'DAACT');
$etap->addFileDaactMultiple($fileDaactMultipleEntity);
$this->uploadFileToDropbox($fileDaactMultipleEntity,$project,"Urbanisme/".$fileDaactMultipleEntity->getId().$nomenclature);
}
}
if($dateDaactEtap){
$etap->setDateDaact(new \DateTime($dateDaactEtap));
}else{
$etap->setDateDaact(null);
}
if($dateSignatureDaact){
$etap->setDateSignatureDaact(new \DateTime($dateSignatureDaact));
}else{
$etap->setDateSignatureDaact(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap5($request,$user)
{
$filePromessebailMultiple = $request->get('filePromessebailMultiple');
$fileLeveeOptionMultiple = $request->get('fileLeveeOptionMultiple');
$fileActeSubstitutionMultiple = $request->get('fileActeSubstitutionMultiple');
$dateExpirationPromesseBailEtap = $request->get('dateExpirationPromesseBailEtap');
$LeveeOption = $request->get('leveeOption');
$d1Etap = $request->get('d1Etap');
$d2Etap = $request->get('d2Etap');
$loyerConfirme = $request->get('loyerConfirme');
$loyerEnNature = $request->get('loyerEnNature');
$soulteConfirme = $request->get('soulteConfirme');
$typeBail = $request->get('typeBail');
$dureeBail = $request->get('dureeBail');
$terrassement = $request->get('terrassement');
$tranchee = $request->get('tranchee');
$bardage = $request->get('bardage');
$renovationCharpente = $request->get('renovationCharpente');
$desamiantage = $request->get('desamiantage');
$fileLoiMultiple = $request->get('fileLoiMultiple');
$filePromesseAchatMultiple = $request->get('filePromesseAchatMultiple');
$dateSignature = $request->get('dateSignature');
$dateFinExclusiviteLoi = $request->get('dateFinExclusiviteLoi');
$dateEcheancePromesse = $request->get('dateEcheancePromesse');
$honoraireApporteur = $request->get('honoraireApporteur');
$indemniteTransitoire = $request->get('indemniteTransitoire');
$puissanceSignee = $request->get('puissanceSignee');
$prixAchatFoncier = $request->get('prixAchatFoncier');
$unitePrixAchat = $request->get('unitePrixAchat');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap5::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePromessebailMultiple){
$array = explode(',',$filePromessebailMultiple);
foreach ($array as $item){
$filePromessebailMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePromessebailMultipleEntity,'Promesse de bail');
$etap->addFilePromessebailMultiple($filePromessebailMultipleEntity);
$this->uploadFileToDropbox($filePromessebailMultipleEntity,$project,"Maitrise foncière/".$filePromessebailMultipleEntity->getId().$nomenclature);
}
}
if($fileLeveeOptionMultiple){
$array = explode(',',$fileLeveeOptionMultiple);
foreach ($array as $item){
$fileLeveeOptionMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileLeveeOptionMultipleEntity,'Levée d’option');
$etap->addFileLeveeOptionMultiple($fileLeveeOptionMultipleEntity);
$this->uploadFileToDropbox($fileLeveeOptionMultipleEntity,$project,"Maitrise foncière/".$fileLeveeOptionMultipleEntity->getId().$nomenclature);
}
}
if($fileActeSubstitutionMultiple){
$array = explode(',',$fileActeSubstitutionMultiple);
foreach ($array as $item){
$fileActeSubstitutionMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileActeSubstitutionMultipleEntity,'Acte de substitution');
$etap->addFileActeSubstitutionMultiple($fileActeSubstitutionMultipleEntity);
$this->uploadFileToDropbox($fileActeSubstitutionMultipleEntity,$project,"Maitrise foncière/".$fileActeSubstitutionMultipleEntity->getId().$nomenclature);
}
}
if($fileLoiMultiple){
$array = explode(',',$fileLoiMultiple);
foreach ($array as $item){
$fileLoiMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileLoiMultipleEntity,'LOI');
$etap->addFileLoiMultiple($fileLoiMultipleEntity);
$this->uploadFileToDropbox($fileLoiMultipleEntity,$project,"Maitrise foncière/".$fileLoiMultipleEntity->getId().$nomenclature);
}
}
if($filePromesseAchatMultiple){
$array = explode(',',$filePromesseAchatMultiple);
foreach ($array as $item){
$filePromesseAchatMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePromesseAchatMultipleEntity,'Promesse d\'achat');
$etap->addFilePromesseAchatMultiple($filePromesseAchatMultipleEntity);
$this->uploadFileToDropbox($filePromesseAchatMultipleEntity,$project,"Maitrise foncière/".$filePromesseAchatMultipleEntity->getId().$nomenclature);
}
}
if($dateSignature){
$etap->setDateSignature(new \DateTime($dateSignature));
}else{
$etap->setDateSignature(null);
}
if($dateFinExclusiviteLoi){
$etap->setDateFinExclusiviteLoi(new \DateTime($dateFinExclusiviteLoi));
}else{
$etap->setDateFinExclusiviteLoi(null);
}
if($dateEcheancePromesse){
$etap->setDateEcheancePromesse(new \DateTime($dateEcheancePromesse));
}else{
$etap->setDateEcheancePromesse(null);
}
if($dateExpirationPromesseBailEtap){
$etap->setDateExpirationPromesseBail(new \DateTime($dateExpirationPromesseBailEtap));
}else{
$etap->setDateExpirationPromesseBail(null);
}
if($LeveeOption){
$etap->setLeveeOption(new \DateTime($LeveeOption));
}else{
$etap->setLeveeOption(null);
}
$etap->setD1((int)$d1Etap);
$etap->setD2((int)$d2Etap);
$etap->setLoyerConfirme($loyerConfirme);
$project->setLoyerVise($loyerConfirme);
$etap->setLoyerEnNature($loyerEnNature);
$etap->setSoulteConfirme($soulteConfirme);
$project->setSoulteVise($soulteConfirme);
$etap->setTypeBail($typeBail);
$etap->setTerrassement($terrassement);
$etap->setTranchee($tranchee);
$etap->setBardage($bardage);
$etap->setRenovationCharpente($renovationCharpente);
$etap->setDesamiantage($desamiantage);
$etap->setDureeBail($dureeBail);
$etap->setHonoraireApporteur($honoraireApporteur);
$etap->setIndemniteTransitoire($indemniteTransitoire);
$etap->setPuissanceSignee($puissanceSignee);
$etap->setPrixAchatFoncier($prixAchatFoncier);
$etap->setUnitePrixAchat($unitePrixAchat);
$this->em->persist($etap);
$this->em->persist($project);
$this->em->flush();
$project->setDateExpirationPromesseBail($etap->getDateExpirationPromesseBail());
$project->setD1($etap->getD1());
$this->em->persist($project);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
$this->notification->addAlertBail($project);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap6($request,$user)
{
$fileEtatDecriptifMultiple = $request->get('fileEtatDecriptifMultiple');
$fileEtatHypothecaireMultiple = $request->get('fileEtatHypothecaireMultiple');
$filePublicationSPRMultiple = $request->get('filePublicationSPRMultiple');
$fileTitreProprieteMultiple = $request->get('fileTitreProprieteMultiple');
$fileAutreEtap6 = $request->get('fileAutreEtap6');
$fileProcurationBailleur = $request->get('fileProcurationBailleur');
$fileStatuts = $request->get('fileStatuts');
$fileKbis = $request->get('fileKbis');
$fileAccordMl = $request->get('fileAccordMl');
$fileLivretFamille = $request->get('fileLivretFamille');
$fileCarteIdentite = $request->get('fileCarteIdentite');
$fileExtraitMatriceCadastrale = $request->get('fileExtraitMatriceCadastrale');
$nomNotaire = $request->get('nomNotaire');
$parcellesProjet = $request->get('parcellesProjet');
$proprietaires = $request->get('proprietaires');
$situationFonciere = $request->get('situationFonciere');
$statutMainlevee = $request->get('statutMainlevee');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap6::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileEtatDecriptifMultiple){
$array = explode(',',$fileEtatDecriptifMultiple);
foreach ($array as $item){
$fileEtatDecriptifMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileEtatDecriptifMultipleEntity,'Détachement parcellaire');
$etap->addFileEtatDecriptifMultiple($fileEtatDecriptifMultipleEntity);
$this->uploadFileToDropbox($fileEtatDecriptifMultipleEntity,$project,"Maitrise foncière/".$fileEtatDecriptifMultipleEntity->getId().$nomenclature);
}
}
if($fileEtatHypothecaireMultiple){
$array = explode(',',$fileEtatHypothecaireMultiple);
foreach ($array as $item){
$fileEtatHypothecaireMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileEtatHypothecaireMultipleEntity,'Etat hypothécaire');
$etap->addFileEtatHypothecaireMultiple($fileEtatHypothecaireMultipleEntity);
$this->uploadFileToDropbox($fileEtatHypothecaireMultipleEntity,$project,"Maitrise foncière/".$fileEtatHypothecaireMultipleEntity->getId().$nomenclature);
}
}
if($filePublicationSPRMultiple){
$array = explode(',',$filePublicationSPRMultiple);
foreach ($array as $item){
$filePublicationSPRMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePublicationSPRMultipleEntity,'Publication SPF');
$etap->addFilePublicationSPRMultiple($filePublicationSPRMultipleEntity);
$this->uploadFileToDropbox($filePublicationSPRMultipleEntity,$project,"Maitrise foncière/".$filePublicationSPRMultipleEntity->getId().$nomenclature);
}
}
if($fileTitreProprieteMultiple){
$array = explode(',',$fileTitreProprieteMultiple);
foreach ($array as $item){
$fileTitreProprieteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileTitreProprieteMultipleEntity,'Titre de propriété');
$etap->addFileTitreProprieteMultiple($fileTitreProprieteMultipleEntity);
$this->uploadFileToDropbox($fileTitreProprieteMultipleEntity,$project,"Maitrise foncière/".$fileTitreProprieteMultipleEntity->getId().$nomenclature);
}
}
if($fileAutreEtap6){
$array = explode(',',$fileAutreEtap6);
foreach ($array as $item){
$fileAutreEtap6Entity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAutreEtap6Entity,'Autres (Cession de bail, projet de bail…)');
$etap->addFileAutreEtap6($fileAutreEtap6Entity);
$this->uploadFileToDropbox($fileAutreEtap6Entity,$project,"Maitrise foncière/".$fileAutreEtap6Entity->getId().$nomenclature);
}
}
if($fileProcurationBailleur){
$array = explode(',',$fileProcurationBailleur);
foreach ($array as $item){
$fileProcurationBailleurEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileProcurationBailleurEntity,'Autres (Cession de bail, projet de bail…)');
$etap->addFileProcurationBailleur($fileProcurationBailleurEntity);
$this->uploadFileToDropbox($fileProcurationBailleurEntity,$project,"Maitrise foncière/".$fileProcurationBailleurEntity->getId().$nomenclature);
}
}
if($fileStatuts){
$array = explode(',',$fileStatuts);
foreach ($array as $item){
$fileStatutsEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileStatutsEntity,'Statuts');
$etap->addFileStatuts($fileStatutsEntity);
$this->uploadFileToDropbox($fileStatutsEntity,$project,"Maitrise foncière/".$fileStatutsEntity->getId().$nomenclature);
}
}
if($fileKbis){
$array = explode(',',$fileKbis);
foreach ($array as $item){
$fileKbisEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileKbisEntity,'Kbis');
$etap->addFileKbi($fileKbisEntity);
$this->uploadFileToDropbox($fileKbisEntity,$project,"Maitrise foncière/".$fileKbisEntity->getId().$nomenclature);
}
}
if($fileAccordMl){
$array = explode(',',$fileAccordMl);
foreach ($array as $item){
$fileAccordMlEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAccordMlEntity,'Â Accord ML');
$etap->addFileAccordMl($fileAccordMlEntity);
$this->uploadFileToDropbox($fileAccordMlEntity,$project,"Maitrise foncière/".$fileAccordMlEntity->getId().$nomenclature);
}
}
if($fileLivretFamille){
$array = explode(',',$fileLivretFamille);
foreach ($array as $item){
$fileLivretFamilleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileLivretFamilleEntity,'Livret de famille');
$etap->addFileLivretFamille($fileLivretFamilleEntity);
$this->uploadFileToDropbox($fileLivretFamilleEntity,$project,"Maitrise foncière/".$fileLivretFamilleEntity->getId().$nomenclature);
}
}
if($fileCarteIdentite){
$array = explode(',',$fileCarteIdentite);
foreach ($array as $item){
$fileCarteIdentiteEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileCarteIdentiteEntity,' Carte d’identité');
$etap->addFileCarteIdentite($fileCarteIdentiteEntity);
$this->uploadFileToDropbox($fileCarteIdentiteEntity,$project,"Maitrise foncière/".$fileCarteIdentiteEntity->getId().$nomenclature);
}
}
if($fileExtraitMatriceCadastrale){
$array = explode(',',$fileExtraitMatriceCadastrale);
foreach ($array as $item){
$fileExtraitMatriceCadastraleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileExtraitMatriceCadastraleEntity,'Extrait de matrice cadastrale');
$etap->addFileExtraitMatriceCadastrale($fileExtraitMatriceCadastraleEntity);
$this->uploadFileToDropbox($fileExtraitMatriceCadastraleEntity,$project,"Maitrise foncière/".$fileExtraitMatriceCadastraleEntity->getId().$nomenclature);
}
}
$etap->setNomNotaire($nomNotaire);
$etap->setParcellesProjet($parcellesProjet);
$etap->setProprietaires($proprietaires);
$etap->setSituationFonciere($situationFonciere);
$etap->setStatutMainlevee($statutMainlevee);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap601($request,$user)
{
$fileEtatDecriptifMultiple = $request->get('fileEtatDecriptifMultiple');
$filePlanServitudesMultiple = $request->get('filePlanServitudesMultiple');
$dateLancement = $request->get('dateLancement');
$dateIntervention = $request->get('dateIntervention');
$fournisseurId = $request->get('fournisseurId');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap601::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileEtatDecriptifMultiple){
$array = explode(',',$fileEtatDecriptifMultiple);
foreach ($array as $item){
$fileEtatDecriptifMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileEtatDecriptifMultipleEntity,'DA / EDDV');
$etap->addFileEtatDecriptifMultiple($fileEtatDecriptifMultipleEntity);
$this->uploadFileToDropbox($fileEtatDecriptifMultipleEntity,$project,"Maitrise foncière/".$fileEtatDecriptifMultipleEntity->getId().$nomenclature);
}
}
if($filePlanServitudesMultiple){
$array = explode(',',$filePlanServitudesMultiple);
foreach ($array as $item){
$filePlanServitudesMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanServitudesMultipleEntity,'Plan de servitudes');
$etap->addFilePlanServitudesMultiple($filePlanServitudesMultipleEntity);
$this->uploadFileToDropbox($filePlanServitudesMultipleEntity,$project,"Maitrise foncière/".$filePlanServitudesMultipleEntity->getId().$nomenclature);
}
}
if($dateLancement){
$etap->setDateLancement(new \DateTime($dateLancement));
}else{
$etap->setDateLancement(null);
}
if($dateIntervention){
$etap->setDateIntervention(new \DateTime($dateIntervention));
}else{
$etap->setDateIntervention(null);
}
if($fournisseurId and $fournisseurId != 0){
$fournisseur = $this->em->getRepository(Fournisseur::class)->find($fournisseurId);
if($fournisseur){
$etap->setFournisseur($fournisseur);
}else{
$etap->setFournisseur(null);
}
}else {
$etap->setFournisseur(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap602($request,$user)
{
$fileProcurationBailleur = $request->get('fileProcurationBailleur');
$dateLancement = $request->get('dateLancement');
$dateEnvoiPocuration = $request->get('dateEnvoiPocuration');
$dateSignatureProcuration = $request->get('dateSignatureProcuration');
$fournisseurId = $request->get('fournisseurId');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap602::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileProcurationBailleur){
$array = explode(',',$fileProcurationBailleur);
foreach ($array as $item){
$fileProcurationBailleurEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileProcurationBailleurEntity,'Procuration Bailleur');
$etap->addFileProcurationBailleur($fileProcurationBailleurEntity);
$this->uploadFileToDropbox($fileProcurationBailleurEntity,$project,"Maitrise foncière/".$fileProcurationBailleurEntity->getId().$nomenclature);
}
}
if($dateLancement){
$etap->setDateLancement(new \DateTime($dateLancement));
}else{
$etap->setDateLancement(null);
}
if($dateEnvoiPocuration){
$etap->setDateEnvoiPocuration(new \DateTime($dateEnvoiPocuration));
}else{
$etap->setDateEnvoiPocuration(null);
}
if($dateSignatureProcuration){
$etap->setDateSignatureProcuration(new \DateTime($dateSignatureProcuration));
}else{
$etap->setDateSignatureProcuration(null);
}
if($fournisseurId and $fournisseurId != 0){
$fournisseur = $this->em->getRepository(Fournisseur::class)->find($fournisseurId);
if($fournisseur){
$etap->setFournisseur($fournisseur);
if(!$fournisseur->getUser()){
$dataUser = $this->addUserFournisseurInProject($fournisseur);
if(isset($dataUser['success']) and $dataUser['success'] and $dataUser['user']){
$user = $dataUser['user'];
$user->setFournisseur($fournisseur);
$this->em->persist($user);
$fournisseur->setUser($user);
}
}
$fournisseur->setIsNotaire(true);
$fournisseur->setIsErpAccee(true);
$projectFournisseur = $this->em->getRepository(FournisseurProject::class)->findOneBy(['project'=>$project,'titre'=>'Notaire']);
$projectFournisseur->setFournisseur($fournisseur);
$projectFournisseur->setTitre('Notaire');
$projectFournisseur->setProject($project);
$this->em->persist($projectFournisseur);
$this->em->persist($fournisseur);
}else{
$etap->setFournisseur(null);
}
}else {
$etap->setFournisseur(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap7($request,$user)
{
$fileBailSigneMultiple = $request->get('fileBailSigneMultiple');
$fileAvenantBailMultiple = $request->get('fileAvenantBailMultiple');
$filePreuvePublicationsSPFMultiple = $request->get('filePreuvePublicationsSPFMultiple');
$dateSignatureBail = $request->get('dateSignatureBail');
$dateFinBail = $request->get('dateFinBail');
$nomBailleur = $request->get('nomBailleur');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap7::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileBailSigneMultiple){
$array = explode(',',$fileBailSigneMultiple);
foreach ($array as $item){
$fileBailSigneMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileBailSigneMultipleEntity,'Bail signé (avec l’ensemble des annexes)');
$etap->addFileBailSigneMultiple($fileBailSigneMultipleEntity);
$this->uploadFileToDropbox($fileBailSigneMultipleEntity,$project,"Maitrise foncière/".$fileBailSigneMultipleEntity->getId().$nomenclature);
}
}
if($fileAvenantBailMultiple){
$array = explode(',',$fileAvenantBailMultiple);
foreach ($array as $item){
$fileAvenantBailMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAvenantBailMultipleEntity,'Avenant au bail');
$etap->addFileAvenantBailMultiple($fileAvenantBailMultipleEntity);
$this->uploadFileToDropbox($fileAvenantBailMultipleEntity,$project,"Maitrise foncière/".$fileAvenantBailMultipleEntity->getId().$nomenclature);
}
}
if($filePreuvePublicationsSPFMultiple){
$array = explode(',',$filePreuvePublicationsSPFMultiple);
foreach ($array as $item){
$filePreuvePublicationsSPFMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePreuvePublicationsSPFMultipleEntity,'Preuve de publications SPF"');
$etap->addFilePreuvePublicationsSPFMultiple($filePreuvePublicationsSPFMultipleEntity);
}
}
if($dateSignatureBail){
$etap->setDateSignatureBail(new \DateTime($dateSignatureBail));
}else{
$etap->setDateSignatureBail(null);
}
if($dateFinBail){
$etap->setDateFinBail(new \DateTime($dateFinBail));
}else{
$etap->setDateFinBail(null);
}
$etap->setNomBailleur($nomBailleur);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
$this->notification->addAlertBail($project);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap71($request,$user)
{
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$etap71Litige = $request->get('etap71Litige');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap71::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($etap71Litige) {
foreach ($etap71Litige as $item) {
if (isset($item['id']) and $item['id'] != '') {
$etap71LitigeEntity = $this->em->getRepository(Etap71Litige::class)->findOneBy(['token' => $item['id']]);
} else {
$etap71LitigeEntity = new Etap71Litige();
}
if (isset($item['fileDocLitigeMultiple']) and $item['fileDocLitigeMultiple'] != '') {
$array = explode(',', $item['fileDocLitigeMultiple']);
foreach ($array as $item1) {
$fileDocLitigeMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
$nomenclature = $this->getNomenclature($etap, $fileDocLitigeMultipleEntity, 'Litige document');
$etap71LitigeEntity->addFileDocLitigeMultiple($fileDocLitigeMultipleEntity);
}
}
if(isset($item['titreLitige']) and $item['titreLitige'] != ''){
$etap71LitigeEntity->setTitreLitige($item['titreLitige']);
}else{
$etap71LitigeEntity->setTitreLitige(null);
}
$etap71LitigeEntity->setEtap71($etap);
$this->em->persist($etap71LitigeEntity);
$this->em->flush();
if (isset($item['comments'])) {
foreach ($item['comments'] as $comments){
if(isset($comments['id']) and $comments['id'] != ''){
$comment = $this->em->getRepository(Etap71LitigeCommentaire::class)->find($comments['id']);
}else{
$comment = new Etap71LitigeCommentaire();
$comment->setCreatedAt(new \DateTime('now',new \DateTimeZone('Europe/Paris')));
$comment->setUserCreated($this->security->getUser());
}
$comment->setComment($comments['comment']);
$comment->setEtap71Litige($etap71LitigeEntity);
$this->em->persist($comment);
$this->em->flush();
}
}
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap80($request,$user)
{
$fileIPR = $request->get('fileIPR');
$filePRAC = $request->get('filePRAC');
$distancePdl = $request->get('distancePdl');
$natureRaccordement = $request->get('natureRaccordement');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap80::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileIPR){
$array = explode(',',$fileIPR);
foreach ($array as $item){
$fileIPREntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileIPREntity,'IPR');
$etap->addFileIPR($fileIPREntity);
$this->uploadFileToDropbox($fileIPREntity,$project,"Raccordement ENEDIS/".$fileIPREntity->getId().$nomenclature);
}
}
if($filePRAC){
$array = explode(',',$filePRAC);
foreach ($array as $item){
$filePRACEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePRACEntity,'PRAC');
$etap->addFilePRAC($filePRACEntity);
$this->uploadFileToDropbox($filePRACEntity,$project,"Raccordement ENEDIS/".$filePRACEntity->getId().$nomenclature);
}
}
$etap->setDistancePdl($distancePdl);
$etap->setNatureRaccordement($natureRaccordement);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap8($request,$user)
{
$fileKbisEtsMultiple = $request->get('fileKbisEtsMultiple');
$profileCreateur = $request->get('profileCreateur');
$adresseEtablissement = $request->get('adresseEtablissement');
$cityEtablissement = $request->get('cityEtablissement');
$codePostalEtablissement = $request->get('codePostalEtablissement');
$latEtablissement = $request->get('latEtablissement');
$longiEtablissement = $request->get('longiEtablissement');
$numParcelleEtablissement = $request->get('numParcelleEtablissement');
$siretEts = $request->get('siretEts');
$spvEtablissement = $request->get('spvEtablissement');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap8::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileKbisEtsMultiple){
$array = explode(',',$fileKbisEtsMultiple);
foreach ($array as $item){
$fileKbisEtsMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileKbisEtsMultipleEntity,'Kbis de l’ETS');
$etap->addFileKbisEtsMultiple($fileKbisEtsMultipleEntity);
$this->uploadFileToDropbox($fileKbisEtsMultipleEntity,$project,"Raccordement ENEDIS/".$fileKbisEtsMultipleEntity->getId().$nomenclature);
}
}
$etap->setProfileCreateur($profileCreateur);
$etap->setAdresseEtablissement($adresseEtablissement);
$etap->setCityEtablissement($cityEtablissement);
$etap->setCodePostalEtablissement($codePostalEtablissement);
$etap->setLatEtablissement($latEtablissement);
$etap->setLongiEtablissement($longiEtablissement);
$etap->setNumParcelleEtablissement($numParcelleEtablissement);
$etap->setSiretEts($siretEts);
if($spvEtablissement){
$spvEtablissementEntity = $this->em->getRepository(Spv::class)->find($spvEtablissement);
$etap->setSpvEtablissement($spvEtablissementEntity);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap9($request,$user)
{
$fileMailEnedisConfirmationMultiple = $request->get('fileMailEnedisConfirmationMultiple');
$fileDemandeRaccordementMultiple = $request->get('fileDemandeRaccordementMultiple');
$fileGarantieBancaireMultiple = $request->get('fileGarantieBancaireMultiple');
$dateT0 = $request->get('dateT0');
$dateMaximaleAchevement = $request->get('dateMaximaleAchevement');
$dateConsignation = $request->get('dateConsignation');
$tarifFit = $request->get('tarifFit');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap9::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
$etap24 = $this->em->getRepository(Etap24::class)->findOneBy(['project'=>$project->getId()]);
if($fileMailEnedisConfirmationMultiple){
$array = explode(',',$fileMailEnedisConfirmationMultiple);
foreach ($array as $item){
$fileMailEnedisConfirmationMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileMailEnedisConfirmationMultipleEntity,'Mail d’ENEDIS de confirmation');
$etap->addFileMailEnedisConfirmationMultiple($fileMailEnedisConfirmationMultipleEntity);
$this->uploadFileToDropbox($fileMailEnedisConfirmationMultipleEntity,$project,"Raccordement ENEDIS/".$fileMailEnedisConfirmationMultipleEntity->getId().$nomenclature);
if(count($etap24->getEtap24Champs()) > 0) {
foreach ($etap24->getEtap24Champs() as $etap24Cahmps){
if($etap24Cahmps->getTypeValorisation() && ($etap24Cahmps->getTypeValorisation()->getCategory() == TypeValorisation::type_ao_cre or $etap24Cahmps->getTypeValorisation()->getCategory() == TypeValorisation::type_guichet_ouvert)){
$etap24Cahmps->addFileMailEnedisConfirmationEtap25Multiple($fileMailEnedisConfirmationMultipleEntity);
$this->em->persist($etap24Cahmps);
}
}
}
}
}
if($fileDemandeRaccordementMultiple){
$array = explode(',',$fileDemandeRaccordementMultiple);
foreach ($array as $item){
$fileDemandeRaccordementMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDemandeRaccordementMultipleEntity,'Demande de raccordement');
$etap->addFileDemandeRaccordementMultiple($fileDemandeRaccordementMultipleEntity);
$this->uploadFileToDropbox($fileDemandeRaccordementMultipleEntity,$project,"Raccordement ENEDIS/".$fileDemandeRaccordementMultipleEntity->getId().$nomenclature);
if(count($etap24->getEtap24Champs()) > 0) {
foreach ($etap24->getEtap24Champs() as $etap24Cahmps){
if($etap24Cahmps->getTypeValorisation() && ($etap24Cahmps->getTypeValorisation()->getCategory() == TypeValorisation::type_ao_cre or $etap24Cahmps->getTypeValorisation()->getCategory() == TypeValorisation::type_guichet_ouvert)){
$etap24Cahmps->addFileDemandeRaccordementEtap25Multiple($fileDemandeRaccordementMultipleEntity);
$this->em->persist($etap24Cahmps);
}
}
}
}
}
if($fileGarantieBancaireMultiple){
$array = explode(',',$fileGarantieBancaireMultiple);
foreach ($array as $item){
$fileGarantieBancaireMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileGarantieBancaireMultipleEntity,'Garantie bancaire');
$etap->addFileGarantieBancaireMultiple($fileGarantieBancaireMultipleEntity);
if(count($etap24->getEtap24Champs()) > 0) {
foreach ($etap24->getEtap24Champs() as $etap24Cahmps){
if($etap24Cahmps->getTypeValorisation() && ($etap24Cahmps->getTypeValorisation()->getCategory() == TypeValorisation::type_ao_cre)){
$etap24Cahmps->addFileGarantieBancaireEtap25Multiple($fileGarantieBancaireMultipleEntity);
$this->em->persist($etap24Cahmps);
}
}
}
}
}
if($dateT0){
$etap->setDateT0(new \DateTime($dateT0));
$project->setDateT0Date(new \DateTime($dateT0));
if(count($etap24->getEtap24Champs()) > 0) {
foreach ($etap24->getEtap24Champs() as $etap24Cahmps) {
$etap24Cahmps->setDateT0(new \DateTime($dateT0));
$this->em->persist($etap24Cahmps);
}
}
}else{
$etap->setDateT0(null);
$project->setDateT0Date(null);
foreach ($etap24->getEtap24Champs() as $etap24Cahmps) {
$etap24Cahmps->setDateT0(null);
$this->em->persist($etap24Cahmps);
}
}
if($dateMaximaleAchevement){
$etap->setDateMaximaleAchevement(new \DateTime($dateMaximaleAchevement));
}else{
$etap->setDateMaximaleAchevement(null);
}
if($dateConsignation){
$etap->setDateConsignation(new \DateTime($dateConsignation));
}else{
$etap->setDateConsignation(null);
}
$etap->setTarifFit($tarifFit);
$project->setTarifRevente($tarifFit);
$this->em->persist($etap);
$this->em->flush();
$this->notification->addAlertT0($project);
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap10($request,$user)
{
$filePtfMultiple = $request->get('filePtfMultiple');
$fileCrdSigneeMultiple = $request->get('fileCrdSigneeMultiple');
$filePreuveVirementMultiple = $request->get('filePreuveVirementMultiple');
$fileCrdSigneeSansPtfMultiple = $request->get('fileCrdSigneeSansPtfMultiple');
$filePreuveVirementSansPtfMultiple = $request->get('filePreuveVirementSansPtfMultiple');
$fileAvenantCrdMultiple = $request->get('fileAvenantCrdMultiple');
$fileAvenantCrdMesMultiple = $request->get('fileAvenantCrdMesMultiple');
$isPtf= $request->get('isPtf');
$montantAcompte= $request->get('montantAcompte');
$montantCoutTotal= $request->get('montantCoutTotal');
$montantAcompteSansPtf= $request->get('montantAcompteSansPtf');
$montantCrdSansPtf= $request->get('montantCrdSansPtf');
$referenceEnedis = $request->get('referenceEnedis');
$avenantCrdMes = $request->get('avenantCrdMes');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap10::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePtfMultiple){
$array = explode(',',$filePtfMultiple);
foreach ($array as $item){
$filePtfMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePtfMultipleEntity,'PTF');
$etap->addFilePtfMultiple($filePtfMultipleEntity);
$this->uploadFileToDropbox($filePtfMultipleEntity,$project,"Raccordement ENEDIS/".$filePtfMultipleEntity->getId().$nomenclature);
}
}
if($fileCrdSigneeMultiple){
$array = explode(',',$fileCrdSigneeMultiple);
foreach ($array as $item){
$fileCrdSigneeMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($item && $fileCrdSigneeMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileCrdSigneeMultipleEntity,'CRD signée');
$etap->addFileCrdSigneeMultiple($fileCrdSigneeMultipleEntity);
$this->uploadFileToDropbox($fileCrdSigneeMultipleEntity,$project,"Raccordement ENEDIS/".$fileCrdSigneeMultipleEntity->getId().$nomenclature);
}
}
}
if($filePreuveVirementMultiple){
$array = explode(',',$filePreuveVirementMultiple);
foreach ($array as $item){
$filePreuveVirementMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePreuveVirementMultipleEntity,'Preuve de virement');
$etap->addFilePreuveVirementMultiple($filePreuveVirementMultipleEntity);
$this->uploadFileToDropbox($filePreuveVirementMultipleEntity,$project,"Raccordement ENEDIS/".$filePreuveVirementMultipleEntity->getId().$nomenclature);
}
}
if($fileCrdSigneeSansPtfMultiple){
$array = explode(',',$fileCrdSigneeSansPtfMultiple);
foreach ($array as $item){
$fileCrdSigneeSansPtfMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileCrdSigneeSansPtfMultipleEntity,'CRD signée');
$etap->addFileCrdSigneeSansPtfMultiple($fileCrdSigneeSansPtfMultipleEntity);
$this->uploadFileToDropbox($fileCrdSigneeSansPtfMultipleEntity,$project,"Raccordement ENEDIS/".$fileCrdSigneeSansPtfMultipleEntity->getId().$nomenclature);
}
}
if($filePreuveVirementSansPtfMultiple){
$array = explode(',',$filePreuveVirementSansPtfMultiple);
foreach ($array as $item){
$filePreuveVirementSansPtfMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePreuveVirementSansPtfMultipleEntity,'Preuve de virement');
$etap->addFilePreuveVirementSansPtfMultiple($filePreuveVirementSansPtfMultipleEntity);
$this->uploadFileToDropbox($filePreuveVirementSansPtfMultipleEntity,$project,"Raccordement ENEDIS/".$filePreuveVirementSansPtfMultipleEntity->getId().$nomenclature);
}
}
if($fileAvenantCrdMesMultiple){
$array = explode(',',$fileAvenantCrdMesMultiple);
foreach ($array as $item){
$fileAvenantCrdMesMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAvenantCrdMesMultipleEntity,'Avenant CRD pour MES');
$etap->addFileAvenantCrdMesMultiple($fileAvenantCrdMesMultipleEntity);
$this->uploadFileToDropbox($fileAvenantCrdMesMultipleEntity,$project,"Raccordement ENEDIS/".$fileAvenantCrdMesMultipleEntity->getId().$nomenclature);
}
}
if($fileAvenantCrdMultiple){
$array = explode(',',$fileAvenantCrdMultiple);
foreach ($array as $item){
$fileAvenantCrdMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAvenantCrdMultipleEntity,'Avenant CRD');
$etap->addFileAvenantCrdMultiple($fileAvenantCrdMultipleEntity);
$this->uploadFileToDropbox($fileAvenantCrdMultipleEntity,$project,"Raccordement ENEDIS/".$fileAvenantCrdMultipleEntity->getId().$nomenclature);
}
}
$etap->setIsPtf($isPtf);
$etap->setMontantAcompte($montantAcompte);
$etap->setMontantCoutTotal($montantCoutTotal);
$etap->setMontantAcompteSansPtf($montantAcompteSansPtf);
$etap->setMontantCrdSansPtf($montantCrdSansPtf);
$etap->setReferenceEnedis($referenceEnedis);
$etap->setAvenantCrdMes($avenantCrdMes);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap11($request,$user)
{
$filePreuveVirement = $request->get('filePreuveVirement');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap11::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePreuveVirement){
$filePreuveVirementEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$filePreuveVirement]);
$nomenclature = $this->getNomenclature($etap,$filePreuveVirementEntity,'Preuve de virement');
$etap->setFilePreuveVirement($filePreuveVirementEntity);
$this->uploadFileToDropbox($filePreuveVirementEntity,$project,"Raccordement ENEDIS/".$nomenclature);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap12($request,$user)
{
$fileCexSigneMultiple = $request->get('fileCexSigneMultiple');
$fileCardiSigneMultiple = $request->get('fileCardiSigneMultiple');
$fileAvenantCardiMultiple = $request->get('fileAvenantCardiMultiple');
$numeroCardi = $request->get('numeroCardi');
$numeroCardiMultiple = $request->get('numeroCardiMultiple');
$identifiantEnedis = $request->get('identifiantEnedis');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap12::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileCexSigneMultiple){
$array = explode(',',$fileCexSigneMultiple);
foreach ($array as $item){
$fileCexSigneMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileCexSigneMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileCexSigneMultipleEntity,'CEX signé');
$etap->addFileCexSigneMultiple($fileCexSigneMultipleEntity);
$this->uploadFileToDropbox($fileCexSigneMultipleEntity,$project,"Raccordement ENEDIS/".$fileCexSigneMultipleEntity->getId().$nomenclature);
}
}
}
if($fileCardiSigneMultiple){
$array = explode(',',$fileCardiSigneMultiple);
foreach ($array as $item){
$fileCardiSigneMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileCardiSigneMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileCardiSigneMultipleEntity,'CARDi signé');
$etap->addFileCardiSigneMultiple($fileCardiSigneMultipleEntity);
$this->uploadFileToDropbox($fileCardiSigneMultipleEntity,$project,"Raccordement ENEDIS/".$fileCardiSigneMultipleEntity->getId().$nomenclature);
}
}
}
if($fileAvenantCardiMultiple){
$array = explode(',',$fileAvenantCardiMultiple);
foreach ($array as $item){
$fileAvenantCardiMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileAvenantCardiMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileAvenantCardiMultipleEntity,'Avenant CARDi');
$etap->addFileAvenantCardiMultiple($fileAvenantCardiMultipleEntity);
$this->uploadFileToDropbox($fileAvenantCardiMultipleEntity,$project,"Raccordement ENEDIS/".$fileAvenantCardiMultipleEntity->getId().$nomenclature);
}
}
}
$etap->setNumeroCardi($numeroCardi);
$etap->setIdentifiantEnedis($identifiantEnedis);
$this->em->persist($etap);
$this->em->flush();
if($numeroCardiMultiple){
foreach ($numeroCardiMultiple as $item){
if(isset($item['id'])&& !empty($item['id'])){
$numeroCardiEntity = $this->em->getRepository(NumeroCardi::class)->find($item['id']);
if($numeroCardiEntity){
$numeroCardiEntity->setNumeroCardi($item['numeroCardi']);
$numeroCardiEntity->setIdentifiantEnedis($item['identifiantEnedis']);
$numeroCardiEntity->setEtap12($etap);
$this->em->persist($numeroCardiEntity);
$this->em->flush();
}
}else{
$numeroCardiEntity = new NumeroCardi();
$numeroCardiEntity->setNumeroCardi($item['numeroCardi']);
$numeroCardiEntity->setIdentifiantEnedis($item['identifiantEnedis']);
$numeroCardiEntity->setEtap12($etap);
$this->em->persist($numeroCardiEntity);
$this->em->flush();
}
}
}
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap121($request,$user)
{
$fileDocument121Multiple = $request->get('fileDocument121Multiple');
$datePrevisionnelleInstallationPDL = $request->get('datePrevisionnelleInstallationPDL');
$dateInstallationPDL = $request->get('dateInstallationPDL');
$dateMiseSousTensionEnedis = $request->get('dateMiseSousTensionEnedis');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap121::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($dateMiseSousTensionEnedis){
$etap->setDateMiseSousTensionEnedis(new \DateTime($dateMiseSousTensionEnedis));
}else{
$etap->setDateMiseSousTensionEnedis(null);
}
if($dateInstallationPDL){
$etap->setDateInstallationPDL(new \DateTime($dateInstallationPDL));
}else{
$etap->setDateInstallationPDL(null);
}
if($datePrevisionnelleInstallationPDL){
$etap->setDatePrevisionnelleInstallationPDL(new \DateTime($datePrevisionnelleInstallationPDL));
}else{
$etap->setDatePrevisionnelleInstallationPDL(null);
}
if($fileDocument121Multiple){
$array = explode(',',$fileDocument121Multiple);
foreach ($array as $item){
$fileDocument121MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDocument121MultipleEntity,'Installation PDL');
$etap->addFileDocument121Multiple($fileDocument121MultipleEntity);
$this->uploadFileToDropbox($fileDocument121MultipleEntity,$project,"Raccordement ENEDIS/".$fileDocument121MultipleEntity->getId().$nomenclature);
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap13($request,$user)
{
$fileConsuelMultiple = $request->get('fileConsuelMultiple');
$fileAttestationBureauControleMultiple = $request->get('fileAttestationBureauControleMultiple');
$fileDREMultiple = $request->get('fileDREMultiple');
$dateConsuel = $request->get('dateConsuel');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap13::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
$etap20 = $this->em->getRepository(Etap20::class)->findOneBy(['project'=>$project->getId()]);
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileConsuelMultiple){
$array = explode(',',$fileConsuelMultiple);
foreach ($array as $item){
$fileConsuelMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileConsuelMultipleEntity,'Consuel');
$etap->addFileConsuelMultiple($fileConsuelMultipleEntity);
$etap20->addFileConsuelEtap20Multiple($fileConsuelMultipleEntity);
$this->uploadFileToDropbox($fileConsuelMultipleEntity,$project,"Raccordement ENEDIS/".$fileConsuelMultipleEntity->getId().$nomenclature);
}
}
if($fileAttestationBureauControleMultiple){
$array = explode(',',$fileAttestationBureauControleMultiple);
foreach ($array as $item){
$fileAttestationBureauControleMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAttestationBureauControleMultipleEntity,'Attestation bureau de contrôle S21');
$etap->addFileAttestationBureauControleMultiple($fileAttestationBureauControleMultipleEntity);
$this->uploadFileToDropbox($fileAttestationBureauControleMultipleEntity,$project,"Raccordement ENEDIS/".$fileAttestationBureauControleMultipleEntity->getId().$nomenclature);
}
}
if($fileDREMultiple){
$array = explode(',',$fileDREMultiple);
foreach ($array as $item){
$fileDREMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDREMultipleEntity,'DRE');
$etap->addFileDREMultiple($fileDREMultipleEntity);
$this->uploadFileToDropbox($fileDREMultipleEntity,$project,"Raccordement ENEDIS/".$fileDREMultipleEntity->getId().$nomenclature);
}
}
if($dateConsuel){
$etap->setDateConsuel(new \DateTime($dateConsuel));
$etap20->setDateConsuelEtap20(new \DateTime($dateConsuel));
}else{
$etap->setDateConsuel(null);
$etap20->setDateConsuelEtap20(null);
}
$this->em->persist($etap20);
$this->em->persist($etap);
$this->em->flush();
$this->notification->addAlertPc($project);
$this->notification->addAlertT0($project);
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap14($request,$user)
{
$fileDoeMultiple = $request->get('fileDoeMultiple');
$fileARPE = $request->get('fileARPE');
$fileDEIE = $request->get('fileDEIE');
$fileAttestationS21Multiple = $request->get('fileAttestationS21Multiple');
$dateMiseEnService = $request->get('dateMiseEnService');
$dateMesPrevisionnelle = $request->get('dateMesPrevisionnelle');
$adresseMiseEnService = $request->get('adresseMiseEnService');
$cityMiseEnService = $request->get('cityMiseEnService');
$codePostalMiseEnService = $request->get('codePostalMiseEnService');
$firstnameProprietaire = $request->get('firstnameProprietaire');
$lastnameProprietaire = $request->get('lastnameProprietaire');
$phoneProprietaire = $request->get('phoneProprietaire');
$emailProprietaire = $request->get('emailProprietaire');
$procedureAcces = $request->get('procedureAcces');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap14::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
$etap21 = $this->em->getRepository(Etap21::class)->findOneBy(['project'=>$project->getId()]);
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileDoeMultiple){
$array = explode(',',$fileDoeMultiple);
foreach ($array as $item){
$fileDoeMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDoeMultipleEntity,'Attestation de mise en service');
$etap->addFileDoeMultiple($fileDoeMultipleEntity);
// $this->uploadFileToDropbox($fileDoeMultipleEntity,$project,"Raccordement ENEDIS/".$fileDoeMultipleEntity->getId().$nomenclature);
}
}
if($fileARPE){
$array = explode(',',$fileARPE);
foreach ($array as $item){
$fileARPEEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileARPEEntity,'ARPE');
$etap->addFileARPE($fileARPEEntity);
}
}
if($fileDEIE){
$array = explode(',',$fileDEIE);
foreach ($array as $item){
$fileDEIEEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDEIEEntity,'DEIE');
$etap->addFileDEIE($fileDEIEEntity);
}
}
if($fileAttestationS21Multiple){
$array = explode(',',$fileAttestationS21Multiple);
foreach ($array as $item){
$fileAttestationS21MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAttestationS21MultipleEntity,'Attestation S21 (attestation de conformité) ');
$etap->addFileAttestationS21Multiple($fileAttestationS21MultipleEntity);
// $this->uploadFileToDropbox($fileAttestationS21MultipleEntity,$project,"Raccordement ENEDIS/".$fileAttestationS21MultipleEntity->getId().$nomenclature);
}
}
if($dateMiseEnService){
$etap->setDateMiseEnService(new \DateTime($dateMiseEnService));
$project->setDateMiseEnService(new \DateTime($dateMiseEnService));
$etap21->setDateMiseEnService(new \DateTime($dateMiseEnService));
}else{
$etap->setDateMiseEnService(null);
$project->setDateMiseEnService(null);
$etap21->setDateMiseEnService(null);
}
if($dateMesPrevisionnelle){
$etap->setDateMesPrevisionnelle(new \DateTime($dateMesPrevisionnelle));
}else{
$etap->setDateMesPrevisionnelle(null);
}
$etap->setAdresseMiseEnService($adresseMiseEnService);
$etap->setCityMiseEnService($cityMiseEnService);
$etap->setCodePostalMiseEnService($codePostalMiseEnService);
$etap->setFirstnameProprietaire($firstnameProprietaire);
$etap->setLastnameProprietaire($lastnameProprietaire);
$etap->setPhoneProprietaire($phoneProprietaire);
$etap->setEmailProprietaire($emailProprietaire);
$etap->setProcedureAcces($procedureAcces);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap15($request,$user)
{
$fileContratAchatSigneMultiple = $request->get('fileContratAchatSigneMultiple');
$fileAttestionProducteurMultiple = $request->get('fileAttestionProducteurMultiple');
$fileAttestionInstallateurMultiple = $request->get('fileAttestionInstallateurMultiple');
$fileArContratAchatMultiple = $request->get('fileArContratAchatMultiple');
$dateDebutContratAchat = $request->get('dateDebutContratAchat');
$dateFinContratAchat = $request->get('dateFinContratAchat');
$tarifContratAchat = $request->get('tarifContratAchat');
$peridiciteFacturation = $request->get('peridiciteFacturation');
$numeroContratAchat = $request->get('numeroContratAchat');
$informationMultiple = $request->get('informationMultiple');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap15::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($informationMultiple){
foreach ($informationMultiple as $item){
if(isset($item['id'])&& !empty($item['id'])){
$informationMultipleEntity = $this->em->getRepository(ImfomationContratAchat::class)->find($item['id']);
if($informationMultipleEntity){
$informationMultipleEntity->setTarifContratAchat($item['tarifContratAchat']);
if($item['dateDebutContratAchat']){
$informationMultipleEntity->setDateDebutContratAchat(new \DateTime($item['dateDebutContratAchat']));
}else{
$informationMultipleEntity->setDateDebutContratAchat(null);
}
if($item['dateFinContratAchat']){
$informationMultipleEntity->setDateFinContratAchat(new \DateTime($item['dateFinContratAchat']));
}else{
$informationMultipleEntity->setDateFinContratAchat(null);
}
$informationMultipleEntity->setPeridiciteFacturation($item['peridiciteFacturation']);
$informationMultipleEntity->setNumeroContratAchat($item['numeroContratAchat']);
$informationMultipleEntity->setTypeContrat($item['typeContrat']);
$informationMultipleEntity->setEtap15($etap);
$this->em->persist($informationMultipleEntity);
$this->em->flush();
}
}else{
$informationMultipleEntity = new ImfomationContratAchat();
$informationMultipleEntity->setTarifContratAchat($item['tarifContratAchat']);
if($item['dateDebutContratAchat']){
$informationMultipleEntity->setDateDebutContratAchat(new \DateTime($item['dateDebutContratAchat']));
}else{
$informationMultipleEntity->setDateDebutContratAchat(null);
}
if($item['dateFinContratAchat']){
$informationMultipleEntity->setDateFinContratAchat(new \DateTime($item['dateFinContratAchat']));
}else{
$informationMultipleEntity->setDateFinContratAchat(null);
}
$informationMultipleEntity->setPeridiciteFacturation($item['peridiciteFacturation']);
$informationMultipleEntity->setNumeroContratAchat($item['numeroContratAchat']);
$informationMultipleEntity->setTypeContrat($item['typeContrat']);
$informationMultipleEntity->setEtap15($etap);
$this->em->persist($informationMultipleEntity);
$this->em->flush();
}
}
}
if($fileContratAchatSigneMultiple){
$array = explode(',',$fileContratAchatSigneMultiple);
foreach ($array as $item){
$fileContratAchatSigneMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileContratAchatSigneMultipleEntity,'Contrat d’achat signé');
$etap->addFileContratAchatSigneMultiple($fileContratAchatSigneMultipleEntity);
$this->uploadFileToDropbox($fileContratAchatSigneMultipleEntity,$project,"Raccordement ENEDIS/".$fileContratAchatSigneMultipleEntity->getId().$nomenclature);
}
}
if($fileAttestionProducteurMultiple){
$array = explode(',',$fileAttestionProducteurMultiple);
foreach ($array as $item){
$fileAttestionProducteurMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAttestionProducteurMultipleEntity,'Attestation de producteur');
$etap->addFileAttestionProducteurMultiple($fileAttestionProducteurMultipleEntity);
$this->uploadFileToDropbox($fileAttestionProducteurMultipleEntity,$project,"Raccordement ENEDIS/".$fileAttestionProducteurMultipleEntity->getId().$nomenclature);
}
}
if($fileAttestionInstallateurMultiple){
$array = explode(',',$fileAttestionInstallateurMultiple);
foreach ($array as $item){
$fileAttestionInstallateurMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAttestionInstallateurMultipleEntity,'Attestation de l’installateur');
$etap->addFileAttestionInstallateurMultiple($fileAttestionInstallateurMultipleEntity);
$this->uploadFileToDropbox($fileAttestionInstallateurMultipleEntity,$project,"Raccordement ENEDIS/".$fileAttestionInstallateurMultipleEntity->getId().$nomenclature);
}
}
if($fileArContratAchatMultiple){
$array = explode(',',$fileArContratAchatMultiple);
foreach ($array as $item){
$fileArContratAchatMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileArContratAchatMultipleEntity,'AR Contrat d’achat');
$etap->addFileArContratAchatMultiple($fileArContratAchatMultipleEntity);
}
}
if($dateDebutContratAchat){
$etap->setDateDebutContratAchat(new \DateTime($dateDebutContratAchat));
}
if($dateFinContratAchat){
$etap->setDateFinContratAchat(new \DateTime($dateFinContratAchat));
}
$etap->setTarifContratAchat($tarifContratAchat);
$etap->setPeridiciteFacturation($peridiciteFacturation);
$etap->setNumeroContratAchat($numeroContratAchat);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap16($request,$user)
{
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$contratConstruction = $request->get('contratConstruction');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap16::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($contratConstruction){
foreach ($contratConstruction as $itemContratConstruction){
if(isset($itemContratConstruction['id']) and $itemContratConstruction['id'] != ''){
$contratConstructionEntity = $this->em->getRepository(ContratConstruction::class)->findOneBy(['token'=>$itemContratConstruction['id']]) ;
}else{
$contratConstructionEntity = new ContratConstruction() ;
}
$contratConstructionEntity->setEtap16($etap);
$this->em->persist($contratConstructionEntity);
$this->em->flush();
if(isset($itemContratConstruction['fileContratEpcMultiple']) and $itemContratConstruction['fileContratEpcMultiple'] != ''){
$array = explode(',',$itemContratConstruction['fileContratEpcMultiple']);
foreach ($array as $item){
$fileContratEpcMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if(isset($itemContratConstruction['nameContrat']) && $contratConstructionEntity->getTitre() == 'Contrat lot Bâtiment'){
$nomenclature = $this->getNomenclatureContratConstruction($etap,$fileContratEpcMultipleEntity,'Contrat lot Bâtiment',$itemContratConstruction['nameContrat']);
}elseif (isset($itemContratConstruction['nameContrat']) && $contratConstructionEntity->getTitre() == 'Contrat lot PV'){
$nomenclature = $this->getNomenclatureContratConstruction($etap,$fileContratEpcMultipleEntity,'Contrat lot PV',$itemContratConstruction['nameContrat']);
}elseif (isset($itemContratConstruction['nameContrat']) && $contratConstructionEntity->getTitre() == 'Contrat EPC'){
$nomenclature = $this->getNomenclatureContratConstruction($etap,$fileContratEpcMultipleEntity,'Contrat EPC',$itemContratConstruction['nameContrat']);
}else{
$nomenclature = $this->getNomenclature($etap,$fileContratEpcMultipleEntity,'Contrat de construction');
}
$contratConstructionEntity->addFileContratEpcMultiple($fileContratEpcMultipleEntity);
$this->uploadFileToDropbox($fileContratEpcMultipleEntity,$project,"Contrats de development et construction/".$fileContratEpcMultipleEntity->getId().$nomenclature);
}
}
if(isset($itemContratConstruction['fileDemandeAgrementMultiple']) and $itemContratConstruction['fileDemandeAgrementMultiple'] != ''){
$array = explode(',',$itemContratConstruction['fileDemandeAgrementMultiple']);
foreach ($array as $item){
$fileDemandeAgrementMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDemandeAgrementMultipleEntity,'Demande d’Agrément');
$contratConstructionEntity->addFileDemandeAgrementMultiple($fileDemandeAgrementMultipleEntity);
$this->uploadFileToDropbox($fileDemandeAgrementMultipleEntity,$project,"Contrats de development et construction/".$fileDemandeAgrementMultipleEntity->getId().$nomenclature);
}
}
if(isset($itemContratConstruction['fileAnnexesMultiple']) and $itemContratConstruction['fileAnnexesMultiple'] != ''){
$array = explode(',',$itemContratConstruction['fileAnnexesMultiple']);
foreach ($array as $item){
$fileAnnexesMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAnnexesMultipleEntity,'Annexes (fiches techniques…)');
$contratConstructionEntity->addFileAnnexesMultiple($fileAnnexesMultipleEntity);
$this->uploadFileToDropbox($fileAnnexesMultipleEntity,$project,"Contrats de development et construction/".$fileAnnexesMultipleEntity->getId().$nomenclature);
}
}
if(isset($itemContratConstruction['prixEpc']) and $itemContratConstruction['prixEpc'] != ''){
$contratConstructionEntity->setPrixEpc($itemContratConstruction['prixEpc']);
}else {
$contratConstructionEntity->setPrixEpc(null);
}
if(isset($itemContratConstruction['nameContrat']) and $itemContratConstruction['nameContrat'] != ''){
$contratConstructionEntity->setNameContrat($itemContratConstruction['nameContrat']);
}else {
$contratConstructionEntity->setNameContrat(null);
}
if(isset($itemContratConstruction['fournisseurSelected']) and $itemContratConstruction['fournisseurSelected'] != 0){
$fournisseur = $this->em->getRepository(Fournisseur::class)->find($itemContratConstruction['fournisseurSelected']);
if($fournisseur){
$contratConstructionEntity->setFournisseur($fournisseur);
}else{
$contratConstructionEntity->setFournisseur(null);
}
}else {
$contratConstructionEntity->setFournisseur(null);
}
if(isset($itemContratConstruction['jalonsPaiement']) and $itemContratConstruction['jalonsPaiement']){
foreach ($itemContratConstruction['jalonsPaiement'] as $value){
if(isset($value['id'])&& !empty($value['id'])){
$jalonsPaiementEntity = $this->em->getRepository(JalonPaiementContratConstruction::class)->find($value['id']);
if($jalonsPaiementEntity){
$jalonsPaiementEntity->setNomJalonsPaiement($value['nomJalonsPaiement']);
$jalonsPaiementEntity->setPourcentJalonsPaiement($value['pourcentJalonsPaiement']);
$jalonsPaiementEntity->setContratConstruction($contratConstructionEntity);
$this->em->persist($jalonsPaiementEntity);
$this->em->flush();
}
}else{
$jalonsPaiementEntity = new JalonPaiementContratConstruction();
$jalonsPaiementEntity->setNomJalonsPaiement($value['nomJalonsPaiement']);
$jalonsPaiementEntity->setPourcentJalonsPaiement($value['pourcentJalonsPaiement']);
$jalonsPaiementEntity->setContratConstruction($contratConstructionEntity);
$this->em->persist($jalonsPaiementEntity);
$this->em->flush();
}
}
}
if(isset($itemContratConstruction['prixAnnexe']) and $itemContratConstruction['prixAnnexe']){
foreach ($itemContratConstruction['prixAnnexe'] as $value){
if(isset($value['id'])&& !empty($value['id'])){
$prixAnnexeEntity = $this->em->getRepository(PrixAnnexeContratConstruction::class)->find($value['id']);
if($prixAnnexeEntity){
$prixAnnexeEntity->setNom(isset($value['nomPrixAnnexe'])?$value['nomPrixAnnexe']:null);
$prixAnnexeEntity->setPrix(isset($value['prixPrixAnnexe'])?$value['prixPrixAnnexe']:null);
$prixAnnexeEntity->setContratConstruction($contratConstructionEntity);
$this->em->persist($prixAnnexeEntity);
$this->em->flush();
}
}else{
$prixAnnexeEntity = new PrixAnnexeContratConstruction();
$prixAnnexeEntity->setNom(isset($value['nomPrixAnnexe'])?$value['nomPrixAnnexe']:null);
$prixAnnexeEntity->setPrix(isset($value['prixPrixAnnexe'])?$value['prixPrixAnnexe']:null);
$prixAnnexeEntity->setContratConstruction($contratConstructionEntity);
$this->em->persist($prixAnnexeEntity);
$this->em->flush();
}
}
}
$contratConstructionEntity->setEtap16($etap);
$this->em->persist($contratConstructionEntity);
$this->em->flush();
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function addOrUpdateCategory($categorys,$setEtap,$etap,$project){
if($categorys){
foreach ($categorys as $item){
if(isset($item['id'])&& !empty($item['id'])){
$categorysEntity = $this->em->getRepository(CategoryDocument::class)->find($item['id']);
if($categorysEntity){
$categorysEntity->setName($item['nomCategorys']);
$categorysEntity->{$setEtap}($etap);
$this->em->persist($categorysEntity);
$this->em->flush();
}
}else{
$categorysEntity = new CategoryDocument();
$categorysEntity->setName($item['nomCategorys']);
$categorysEntity->{$setEtap}($etap);
$this->em->persist($categorysEntity);
$this->em->flush();
}
if(isset($item['documents'])){
foreach ($item['documents'] as $document){
if(isset($document['id'])&& !empty($document['id'])){
$documentEntity = $this->em->getRepository(Document::class)->find($document['id']);
if($documentEntity){
if(isset($document['nomDocument']) && !empty($document['nomDocument'])) {
$documentEntity->setName($document['nomDocument']);
$documentEntity->setCategory($categorysEntity);
if (isset($document['fileToken']) && !empty($document['fileToken'])) {
$doc = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $document['fileToken']]);
$documentEntity->setDocUpload($doc);
$nomenclature = $this->getNomenclature($etap, $doc, $document['nomDocument']);
$this->uploadFileToDropbox($doc, $project, "Contrats de development et construction/" . $nomenclature);
}
$this->em->persist($documentEntity);
$this->em->flush();
}
}
}else{
if(isset($document['nomDocument']) && !empty($document['nomDocument'])){
$documentEntity = new Document();
if($documentEntity){
$documentEntity->setName($document['nomDocument']);
$documentEntity->setCategory($categorysEntity);
if(isset($document['fileToken'])&& !empty($document['fileToken'])){
$doc = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$document['fileToken']]);
$documentEntity->setDocUpload($doc);
$nomenclature = $this->getNomenclature($etap,$doc,$document['nomDocument']);
$this->uploadFileToDropbox($doc,$project,"Contrats de development et construction/".$nomenclature);
}
$this->em->persist($documentEntity);
$this->em->flush();
}
}
}
}
}
}
}
}
public function submitEtap160($request,$user)
{
$biPenteAsymetrique = $request->get('biPenteAsymetrique');
$biPenteSymetrique = $request->get('biPenteSymetrique');
$lat = $request->get('lat');
$longi = $request->get('longi');
$moduleInformation = $request->get('moduleInformation');
$onduleurInformation = $request->get('onduleurInformation');
$dimension = $request->get('dimension');
$toiture = $request->get('toiture');
$fileDiagnostiqueCharpenteMultiple = $request->get('fileDiagnostiqueCharpenteMultiple');
$fileNoticesHydrauliquesMultiple = $request->get('fileNoticesHydrauliquesMultiple');
$fileEtudeSoleMultiple = $request->get('fileEtudeSoleMultiple');
$fileEvaluationCarboneModuleMultiple = $request->get('fileEvaluationCarboneModuleMultiple');
$fileFicheTechniqueModuleMultiple = $request->get('fileFicheTechniqueModuleMultiple');
$fileFicheTechniqueOnduleurMultiple = $request->get('fileFicheTechniqueOnduleurMultiple');
$fileAttestationBrigageOnduleurMultiple = $request->get('fileAttestationBrigageOnduleurMultiple');
$fileFicheGarantiOnduleurMultiple = $request->get('fileFicheGarantiOnduleurMultiple');
$fileFicheSystemeIntegrationMultiple = $request->get('fileFicheSystemeIntegrationMultiple');
$categorys = $request->get('categorys');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap160::class)->findOneBy(['token'=>$etapToken]);
$etap159 = $this->em->getRepository(Etap159::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
$etap159 = $this->em->getRepository(Etap159::class)->findOneBy(['project'=>$project->getId()]);
if($fileDiagnostiqueCharpenteMultiple){
$array = explode(',',$fileDiagnostiqueCharpenteMultiple);
foreach ($array as $item){
$fileDiagnostiqueCharpenteMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDiagnostiqueCharpenteMultipleEntity,'Diagnostic charpente');
$etap->addFileDiagnostiqueCharpenteMultiple($fileDiagnostiqueCharpenteMultipleEntity);
$etap159->addFileDiagnostiqueCharpente159Multiple($fileDiagnostiqueCharpenteMultipleEntity);
$this->uploadFileToDropbox($fileDiagnostiqueCharpenteMultipleEntity,$project,"Contrats de development et construction/".$fileDiagnostiqueCharpenteMultipleEntity->getId().$nomenclature);
}
$this->em->persist($etap159);
$this->em->flush();
}
if($fileNoticesHydrauliquesMultiple){
$array = explode(',',$fileNoticesHydrauliquesMultiple);
foreach ($array as $item){
$fileNoticesHydrauliquesMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileNoticesHydrauliquesMultipleEntity,'Notices hydrauliques ou études gestion eaux pluviales');
$etap->addFileNoticesHydrauliquesMultiple($fileNoticesHydrauliquesMultipleEntity);
$this->uploadFileToDropbox($fileNoticesHydrauliquesMultipleEntity,$project,"Contrats de development et construction/".$fileNoticesHydrauliquesMultipleEntity->getId().$nomenclature);
}
$this->em->persist($etap159);
$this->em->flush();
}
if($fileEtudeSoleMultiple){
$array = explode(',',$fileEtudeSoleMultiple);
foreach ($array as $item){
$fileEtudeSoleMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileEtudeSoleMultipleEntity,'Étude de sol');
$etap->addFileEtudeSoleMultiple($fileEtudeSoleMultipleEntity);
$etap159->addFileGeotechnique159Multiple($fileEtudeSoleMultipleEntity);
$this->uploadFileToDropbox($fileEtudeSoleMultipleEntity,$project,"Contrats de development et construction/".$fileEtudeSoleMultipleEntity->getId().$nomenclature);
}
}
if($fileEvaluationCarboneModuleMultiple){
$array = explode(',',$fileEvaluationCarboneModuleMultiple);
foreach ($array as $item){
$fileEvaluationCarboneModuleMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileEvaluationCarboneModuleMultipleEntity,'Evaluation carbone des modules ');
$etap->addFileEvaluationCarboneModuleMultiple($fileEvaluationCarboneModuleMultipleEntity);
$this->uploadFileToDropbox($fileEvaluationCarboneModuleMultipleEntity,$project,"Contrats de development et construction/".$fileEvaluationCarboneModuleMultipleEntity->getId().$nomenclature);
}
}
if($fileFicheTechniqueModuleMultiple){
$array = explode(',',$fileFicheTechniqueModuleMultiple);
foreach ($array as $item){
$fileFicheTechniqueModuleMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileFicheTechniqueModuleMultipleEntity,'Fiche technique modules ');
$etap->addFileFicheTechniqueModuleMultiple($fileFicheTechniqueModuleMultipleEntity);
$this->uploadFileToDropbox($fileFicheTechniqueModuleMultipleEntity,$project,"Contrats de development et construction/".$fileFicheTechniqueModuleMultipleEntity->getId().$nomenclature);
}
}
if($fileFicheTechniqueOnduleurMultiple){
$array = explode(',',$fileFicheTechniqueOnduleurMultiple);
foreach ($array as $item){
$fileFicheTechniqueOnduleurMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileFicheTechniqueOnduleurMultipleEntity,'Fiche technique onduleurs ');
$etap->addFileFicheTechniqueOnduleurMultiple($fileFicheTechniqueOnduleurMultipleEntity);
$this->uploadFileToDropbox($fileFicheTechniqueOnduleurMultipleEntity,$project,"Contrats de development et construction/".$fileFicheTechniqueOnduleurMultipleEntity->getId().$nomenclature);
}
}
if($fileAttestationBrigageOnduleurMultiple){
$array = explode(',',$fileAttestationBrigageOnduleurMultiple);
foreach ($array as $item){
$fileAttestationBrigageOnduleurMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileAttestationBrigageOnduleurMultipleEntity,'Attestation de bridage ');
$etap->addFileAttestationBrigageOnduleurMultiple($fileAttestationBrigageOnduleurMultipleEntity);
$this->uploadFileToDropbox($fileAttestationBrigageOnduleurMultipleEntity,$project,"Contrats de development et construction/".$fileAttestationBrigageOnduleurMultipleEntity->getId().$nomenclature);
}
}
if($fileFicheGarantiOnduleurMultiple){
$array = explode(',',$fileFicheGarantiOnduleurMultiple);
foreach ($array as $item){
$fileFicheGarantiOnduleurMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileFicheGarantiOnduleurMultipleEntity,'Fiches de garantie onduleur');
$etap->addFileFicheGarantiOnduleurMultiple($fileFicheGarantiOnduleurMultipleEntity);
$this->uploadFileToDropbox($fileFicheGarantiOnduleurMultipleEntity,$project,"Contrats de development et construction/".$fileFicheGarantiOnduleurMultipleEntity->getId().$nomenclature);
}
}
if($fileFicheSystemeIntegrationMultiple){
$array = explode(',',$fileFicheSystemeIntegrationMultiple);
foreach ($array as $item){
$fileFicheSystemeIntegrationMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileFicheSystemeIntegrationMultipleEntity,'Fiche technique système d’intégration ');
$etap->addFileFicheSystemeIntegrationMultiple($fileFicheSystemeIntegrationMultipleEntity);
$this->uploadFileToDropbox($fileFicheSystemeIntegrationMultipleEntity,$project,"Contrats de development et construction/".$fileFicheSystemeIntegrationMultipleEntity->getId().$nomenclature);
}
}
if($moduleInformation){
foreach ($moduleInformation as $item){
if(isset($item['id'])&& !empty($item['id'])){
$moduleInformationEntity = $this->em->getRepository(ModuleInformation::class)->find($item['id']);
if($moduleInformationEntity){
$moduleInformationEntity->setMarque($item['marqueModuleInformation']);
$moduleInformationEntity->setReference($item['referenceModuleInformation']);
$moduleInformationEntity->setPan($item['panModuleInformation']);
$moduleInformationEntity->setNbr($item['nbrModuleInformation']);
$moduleInformationEntity->setEtap160($etap);
$this->em->persist($moduleInformationEntity);
$this->em->flush();
}
}else{
$moduleInformationEntity = new ModuleInformation();
$moduleInformationEntity->setMarque($item['marqueModuleInformation']);
$moduleInformationEntity->setReference($item['referenceModuleInformation']);
$moduleInformationEntity->setPan($item['panModuleInformation']);
$moduleInformationEntity->setNbr($item['nbrModuleInformation']);
$moduleInformationEntity->setEtap160($etap);
$this->em->persist($moduleInformationEntity);
$this->em->flush();
}
}
}
if($onduleurInformation){
foreach ($onduleurInformation as $item){
if(isset($item['id'])&& !empty($item['id'])){
$onduleurInformationEntity = $this->em->getRepository(OnduleurInformation::class)->find($item['id']);
if($onduleurInformationEntity){
$onduleurInformationEntity->setMarque($item['marqueOnduleurInformation']);
$onduleurInformationEntity->setPuissance($item['puissanceOnduleurInformation']);
$onduleurInformationEntity->setPan($item['panOnduleurInformation']);
$onduleurInformationEntity->setNbr($item['nbrOnduleurInformation']);
$onduleurInformationEntity->setEtap160($etap);
$this->em->persist($onduleurInformationEntity);
$this->em->flush();
}
}else{
$onduleurInformationEntity = new OnduleurInformation();
$onduleurInformationEntity->setMarque($item['marqueOnduleurInformation']);
$onduleurInformationEntity->setPuissance($item['puissanceOnduleurInformation']);
$onduleurInformationEntity->setPan($item['panOnduleurInformation']);
$onduleurInformationEntity->setNbr($item['nbrOnduleurInformation']);
$onduleurInformationEntity->setEtap160($etap);
$this->em->persist($onduleurInformationEntity);
$this->em->flush();
}
}
}
if($dimension){
foreach ($dimension as $item){
if(isset($item['id'])&& !empty($item['id'])){
$dimensionEntity = $this->em->getRepository(DimensionEtap160::class)->find($item['id']);
if($dimensionEntity){
$dimensionEntity->setLargeur($item['largeurDimension']);
$dimensionEntity->setLangueur($item['langueurDimension']);
$dimensionEntity->setHauteurFaitage($item['hauteurFaitageDimension']);
$dimensionEntity->setHauteurEgout($item['hauteurEgoutDimension']);
$dimensionEntity->setPan($item['panDimension']);
$dimensionEntity->setEtap160($etap);
$this->em->persist($dimensionEntity);
$this->em->flush();
}
}else{
$dimensionEntity = new DimensionEtap160();
$dimensionEntity->setLargeur($item['largeurDimension']);
$dimensionEntity->setLangueur($item['langueurDimension']);
$dimensionEntity->setHauteurFaitage($item['hauteurFaitageDimension']);
$dimensionEntity->setHauteurEgout($item['hauteurEgoutDimension']);
$dimensionEntity->setPan($item['panDimension']);
$dimensionEntity->setEtap160($etap);
$this->em->persist($dimensionEntity);
$this->em->flush();
}
}
}
if($toiture){
foreach ($toiture as $item){
if(isset($item['id'])&& !empty($item['id'])){
$toitureEntity = $this->em->getRepository(Toiture160::class)->find($item['id']);
if($toitureEntity){
$toitureEntity->setTypeCouverture($item['typeCouvertureToiture']);
$toitureEntity->setAngleToiture($item['angleToitureToiture']);
$toitureEntity->setAzimutToiture($item['azimutToitureToiture']);
$toitureEntity->setPan($item['panToiture']);
$toitureEntity->setEtap160($etap);
$this->em->persist($toitureEntity);
$this->em->flush();
}
}else{
$toitureEntity = new Toiture160();
$toitureEntity->setTypeCouverture($item['typeCouvertureToiture']);
$toitureEntity->setAngleToiture($item['angleToitureToiture']);
$toitureEntity->setAzimutToiture($item['azimutToitureToiture']);
$toitureEntity->setPan($item['panToiture']);
$toitureEntity->setEtap160($etap);
$this->em->persist($toitureEntity);
$this->em->flush();
}
}
}
$this->addOrUpdateCategory($categorys,'setEtap160',$etap,$project);
$etap->setBiPenteAsymetrique($biPenteAsymetrique);
$etap->setBiPenteSymetrique($biPenteSymetrique);
$etap->setLat($lat);
$etap->setLongi($longi);
$project->setLat($longi);
$project->setLongi($lat);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap161($request,$user)
{
$fileQualiPVInstallateurMultiple = $request->get('fileQualiPVInstallateurMultiple');
$categorys = $request->get('categorys');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap161::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileQualiPVInstallateurMultiple){
$array = explode(',',$fileQualiPVInstallateurMultiple);
foreach ($array as $item){
$fileQualiPVInstallateurMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileQualiPVInstallateurMultipleEntity,'QualiPV de l’installateur');
$etap->addFileQualiPVInstallateurMultiple($fileQualiPVInstallateurMultipleEntity);
$this->uploadFileToDropbox($fileQualiPVInstallateurMultipleEntity,$project,"Raccordement ENEDIS/".$fileQualiPVInstallateurMultipleEntity->getId().$nomenclature);
}
}
$this->addOrUpdateCategory($categorys,'setEtap161',$etap,$project);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function addEtap601()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap6 = $this->em->getRepository(Etap6::class)->findOneBy(['project'=>$project->getId()]);
$etap601 = $this->em->getRepository(Etap601::class)->findOneBy(['project'=>$project->getId()]);
$etap = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_601]);
if(!$etap601){
$etap601 = new Etap601();
$etap601->setProject($project);
$etap601->setEtap($etap);
if($etap6 && count($etap6->getFileEtatDecriptifMultiple()) > 0){
foreach ($etap6->getFileEtatDecriptifMultiple() as $item){
$etap601->addFileEtatDecriptifMultiple($item);
}
}
$etap601->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap601);
$this->em->flush();
}
}
}
public function addEtap602()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap6 = $this->em->getRepository(Etap6::class)->findOneBy(['project'=>$project->getId()]);
$etap602 = $this->em->getRepository(Etap602::class)->findOneBy(['project'=>$project->getId()]);
$etap = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_602]);
if(!$etap602){
$etap602 = new Etap602();
$etap602->setProject($project);
$etap602->setEtap($etap);
if($etap6 && count($etap6->getFileProcurationBailleur()) > 0){
foreach ($etap6->getFileProcurationBailleur() as $item){
$etap602->addFileProcurationBailleur($item);
}
}
$etap602->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap602);
$this->em->flush();
}
}
}
public function addEtap0()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap0 = $this->em->getRepository(Etap0::class)->findOneBy(['project'=>$project->getId()]);
$etap = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_0]);
if(!$etap0){
$etap0 = new Etap0();
$etap0->setProject($project);
$etap0->setEtap($etap);
$etap0->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap0);
$this->em->flush();
}
}
}
public function addEtap121()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap121 = $this->em->getRepository(Etap121::class)->findOneBy(['project'=>$project->getId()]);
$etap = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_121]);
if(!$etap121){
$etap121 = new Etap121();
$etap121->setProject($project);
$etap121->setEtap($etap);
$etap121->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap121);
$this->em->flush();
}
}
}
public function addEtap159()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap159 = $this->em->getRepository(Etap159::class)->findOneBy(['project'=>$project->getId()]);
$etap = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_159]);
if(!$etap159){
$etap159 = new Etap159();
$etap159->setProject($project);
$etap159->setEtap($etap);
$etap159->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap159);
$this->em->flush();
}
}
}
public function addEtap23()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap23 = $this->em->getRepository(Etap23::class)->findOneBy(['project'=>$project->getId()]);
$etap = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_23]);
if(!$etap23){
$etap23 = new Etap23();
$etap23->setProject($project);
$etap23->setEtap($etap);
$etap23->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap23);
$this->em->flush();
}
}
}
public function copyEtap16ToContratConstruction()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap16 = $this->em->getRepository(Etap16::class)->findOneBy(['project'=>$project->getId()]);
if($etap16 and count($etap16->getContratConstruction()) == 0){
$contratConstruction = new ContratConstruction();
$contratConstruction->setEtap16($etap16);
$contratConstruction->setPrixEpc($etap16->getPrixEpc());
$this->em->persist($contratConstruction);
$this->em->flush();
$fileContratEpcMultiples = $etap16->getFileContratEpcMultiple();
$fileAnnexesMultiple = $etap16->getFileAnnexesMultiple();
$jalonPaiements = $etap16->getJalonPaiement();
$prixAnnexes = $etap16->getPrixAnnexe();
if($fileAnnexesMultiple){
foreach ($fileAnnexesMultiple as $item){
$contratConstruction->addFileAnnexesMultiple($item);
}
}
if($fileContratEpcMultiples){
foreach ($fileContratEpcMultiples as $item){
$contratConstruction->addFileContratEpcMultiple($item);
}
}
if($jalonPaiements){
foreach ($jalonPaiements as $item){
$jalonPaiementEntity = new JalonPaiementContratConstruction();
$jalonPaiementEntity->setContratConstruction($contratConstruction);
$jalonPaiementEntity->setNomJalonsPaiement($item->getNomJalonsPaiement());
$jalonPaiementEntity->setPourcentJalonsPaiement($item->getPourcentJalonsPaiement());
$this->em->persist($jalonPaiementEntity);
$this->em->flush();
}
}
if($prixAnnexes){
foreach ($prixAnnexes as $item){
$prixAnnexeEntity = new PrixAnnexeContratConstruction();
$prixAnnexeEntity->setContratConstruction($contratConstruction);
$prixAnnexeEntity->setNom($item->getNom());
$prixAnnexeEntity->setPrix($item->getPrix());
$this->em->persist($prixAnnexeEntity);
$this->em->flush();
}
}
$this->em->persist($contratConstruction);
$this->em->flush();
}
}
}
public function submitEtap17($request,$user)
{
$filePlanExecution = $request->get('filePlanExecution');
$fileDocumentGeometre = $request->get('fileDocumentGeometre');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap17::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePlanExecution){
$array = explode(',',$filePlanExecution);
foreach ($array as $item){
$filePlanExecutionEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanExecutionEntity,'Plan exécution et étude de structure');
$etap->addFilePlanExecution($filePlanExecutionEntity);
$this->uploadFileToDropbox($filePlanExecutionEntity,$project,"Contrats de development et construction/".$filePlanExecutionEntity->getId().$nomenclature);
}
}
if($fileDocumentGeometre){
$array = explode(',',$fileDocumentGeometre);
foreach ($array as $item){
$fileDocumentGeometreEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDocumentGeometreEntity,'Documents de géomètre');
$etap->addFileDocumentGeometre($fileDocumentGeometreEntity);
$this->uploadFileToDropbox($fileDocumentGeometreEntity,$project,"Contrats de development et construction/".$fileDocumentGeometreEntity->getId().$nomenclature);
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap18($request,$user)
{
$filePhotosFondation = $request->get('filePhotosFondation');
$dateFinDesFondation = $request->get('dateFinDesFondation');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap18::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePhotosFondation){
$array = explode(',',$filePhotosFondation);
foreach ($array as $item){
$filePhotosFondationEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotosFondationEntity,'Photos des fondations');
$etap->addFilePhotosFondation($filePhotosFondationEntity);
$this->uploadFileToDropbox($filePhotosFondationEntity,$project,"Contrats de development et construction/".$filePhotosFondationEntity->getId().$nomenclature);
}
}
if($dateFinDesFondation){
$etap->setDateFinDesFondation(new \DateTime($dateFinDesFondation));
}else{
$etap->setDateFinDesFondation(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap19($request,$user)
{
$filePhotosBatiment = $request->get('filePhotosBatiment');
$dateFinBatiment = $request->get('dateFinBatiment');
$datePosePv = $request->get('datePosePv');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap19::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePhotosBatiment){
$filePhotosBatimentEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$filePhotosBatiment]);
$nomenclature = $this->getNomenclature($etap,$filePhotosBatimentEntity,'Photos du bâtiment');
$etap->setFilePhotosBatiment($filePhotosBatimentEntity);
$this->uploadFileToDropbox($filePhotosBatimentEntity,$project,"Contrats de development et construction/".$nomenclature);
}
if($dateFinBatiment){
$etap->setDateFinBatiment(new \DateTime($dateFinBatiment));
}else{
$etap->setDateFinBatiment(null);
}
if($datePosePv){
$etap->setDatePosePv(new \DateTime($datePosePv));
}else{
$etap->setDatePosePv(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap20($request,$user)
{
$fileConsuelEtap20Multiple = $request->get('fileConsuelEtap20Multiple');
$dateConsuelEtap20 = $request->get('dateConsuelEtap20');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap20::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
$etap13 = $this->em->getRepository(Etap13::class)->findOneBy(['project'=>$project->getId()]);
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileConsuelEtap20Multiple){
$array = explode(',',$fileConsuelEtap20Multiple);
foreach ($array as $item){
$fileConsuelEtap20MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileConsuelEtap20MultipleEntity,'Consuel');
$etap->addFileConsuelEtap20Multiple($fileConsuelEtap20MultipleEntity);
$etap13->addFileConsuelMultiple($fileConsuelEtap20MultipleEntity);
$this->uploadFileToDropbox($fileConsuelEtap20MultipleEntity,$project,"Contrats de development et construction/".$fileConsuelEtap20MultipleEntity->getId().$nomenclature);
}
}
if($dateConsuelEtap20){
$etap->setDateConsuelEtap20(new \DateTime($dateConsuelEtap20));
$etap13->setDateConsuel(new \DateTime($dateConsuelEtap20));
}else{
$etap->setDateConsuelEtap20(null);
$etap13->setDateConsuel(null);
}
$this->em->persist($etap);
$this->em->persist($etap13);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap201($request,$user)
{
$fileDoeEtap201Multiple = $request->get('fileDoeEtap201Multiple');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap201::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileDoeEtap201Multiple){
$array = explode(',',$fileDoeEtap201Multiple);
foreach ($array as $item){
$fileDoeEtap201MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDoeEtap201MultipleEntity,'DOE');
$etap->addFileDoeEtap201Multiple($fileDoeEtap201MultipleEntity);
$this->uploadFileToDropbox($fileDoeEtap201MultipleEntity,$project,"Contrats de development et construction/".$fileDoeEtap201MultipleEntity->getId().$nomenclature);
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap21($request,$user)
{
$fileTestReceptionMultiple = $request->get('fileTestReceptionMultiple');
$dateRaccordement = $request->get('dateRaccordement');
$dateMiseEnService = $request->get('dateMiseEnService');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap21::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
$etap14 = $this->em->getRepository(Etap14::class)->findOneBy(['project'=>$project->getId()]);
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileTestReceptionMultiple){
$array = explode(',',$fileTestReceptionMultiple);
foreach ($array as $item){
$fileTestReceptionMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileTestReceptionMultipleEntity,'tests de réception');
$etap->addFileTestReceptionMultiple($fileTestReceptionMultipleEntity);
$this->uploadFileToDropbox($fileTestReceptionMultipleEntity,$project,"Contrats de development et construction/".$fileTestReceptionMultipleEntity->getId().$nomenclature);
}
}
if($dateRaccordement){
$etap->setDateRaccordement(new \DateTime($dateRaccordement));
}else{
$etap->setDateRaccordement(null);
}
if($dateMiseEnService){
$etap->setDateMiseEnService(new \DateTime($dateMiseEnService));
$etap14->setDateMiseEnService(new \DateTime($dateMiseEnService));
$project->setDateMiseEnService(new \DateTime($dateMiseEnService));
}else{
$etap->setDateMiseEnService(null);
$etap14->setDateMiseEnService(null);
$project->setDateMiseEnService(null);
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap22($request,$user)
{
$fileTestPrMultiple = $request->get('fileTestPrMultiple');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap22::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileTestPrMultiple){
$array = explode(',',$fileTestPrMultiple);
foreach ($array as $item){
$fileTestPrMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileTestPrMultipleEntity,'Tests de PR');
$etap->addFileTestPrMultiple($fileTestPrMultipleEntity);
$this->uploadFileToDropbox($fileTestPrMultipleEntity,$project,"Contrats de development et construction/".$fileTestPrMultipleEntity->getId().$nomenclature);
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap171($request,$user)
{
$filePVDemarrageMultiple = $request->get('filePVDemarrageMultiple');
$fileDocEtap171Multiple = $request->get('fileDocEtap171Multiple');
$fileOrderServiceMultiple = $request->get('fileOrderServiceMultiple');
$filePlanningPrevisionnelMultiple = $request->get('filePlanningPrevisionnelMultiple');
$fileCheminAccesMultiple = $request->get('fileCheminAccesMultiple');
$filePhotosPlateformeMultiple = $request->get('filePhotosPlateformeMultiple');
$dateRealisationPlateforme = $request->get('dateRealisationPlateforme');
$chemainAcces = $request->get('chemainAcces');
$filePGCMultiple = $request->get('filePGCMultiple');
$fileRapportVisiteSpsMultiple = $request->get('fileRapportVisiteSpsMultiple');
$fileDIUOMultiple = $request->get('fileDIUOMultiple');
$fileHarmonisationMultiple = $request->get('fileHarmonisationMultiple');
$filePPSPSMultiple = $request->get('filePPSPSMultiple');
$fileMissionLLEMultiple = $request->get('fileMissionLLEMultiple');
$categorys = $request->get('categorys');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap171::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePVDemarrageMultiple){
$array = explode(',',$filePVDemarrageMultiple);
foreach ($array as $item){
$filePVDemarrageMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($filePVDemarrageMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$filePVDemarrageMultipleEntity,'PV de démarrage');
$etap->addFilePVDemarrageMultiple($filePVDemarrageMultipleEntity);
$this->uploadFileToDropbox($filePVDemarrageMultipleEntity,$project,"Contrats de development et construction/".$filePVDemarrageMultipleEntity->getId().$nomenclature);
}
}
}
if($fileDocEtap171Multiple){
$array = explode(',',$fileDocEtap171Multiple);
foreach ($array as $item){
$fileDocEtap171MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileDocEtap171MultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileDocEtap171MultipleEntity,'DOC');
$etap->addFileDocEtap171Multiple($fileDocEtap171MultipleEntity);
$this->uploadFileToDropbox($fileDocEtap171MultipleEntity,$project,"Contrats de development et construction/".$fileDocEtap171MultipleEntity->getId().$nomenclature);
}
}
}
if($fileOrderServiceMultiple){
$array = explode(',',$fileOrderServiceMultiple);
foreach ($array as $item){
$fileOrderServiceMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileOrderServiceMultipleEntity,'Ordre de service');
$etap->addFileOrderServiceMultiple($fileOrderServiceMultipleEntity);
$this->uploadFileToDropbox($fileOrderServiceMultipleEntity,$project,"Contrats de development et construction/".$fileOrderServiceMultipleEntity->getId().$nomenclature);
}
}
if($filePlanningPrevisionnelMultiple){
$array = explode(',',$filePlanningPrevisionnelMultiple);
foreach ($array as $item){
$filePlanningPrevisionnelMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanningPrevisionnelMultipleEntity,'Planning prévisionnel');
$etap->addFilePlanningPrevisionnelMultiple($filePlanningPrevisionnelMultipleEntity);
$this->uploadFileToDropbox($filePlanningPrevisionnelMultipleEntity,$project,"Contrats de development et construction/".$filePlanningPrevisionnelMultipleEntity->getId().$nomenclature);
}
}
if($fileCheminAccesMultiple){
$array = explode(',',$fileCheminAccesMultiple);
foreach ($array as $item){
$fileCheminAccesMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileCheminAccesMultipleEntity,'Chemin d’accès');
$etap->addFileCheminAccesMultiple($fileCheminAccesMultipleEntity);
$this->uploadFileToDropbox($fileCheminAccesMultipleEntity,$project,"Contrats de development et construction/".$fileCheminAccesMultipleEntity->getId().$nomenclature);
}
}
if($filePhotosPlateformeMultiple){
$array = explode(',',$filePhotosPlateformeMultiple);
foreach ($array as $item){
$filePhotosPlateformeMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotosPlateformeMultipleEntity,'Photos de la plateforme');
$etap->addFilePhotosPlateformeMultiple($filePhotosPlateformeMultipleEntity);
$this->uploadFileToDropbox($filePhotosPlateformeMultipleEntity,$project,"Contrats de development et construction/".$filePhotosPlateformeMultipleEntity->getId().$nomenclature);
}
}
if($filePGCMultiple){
$array = explode(',',$filePGCMultiple);
foreach ($array as $item){
$filePGCMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePGCMultipleEntity,'PGC ');
$etap->addFilePGCMultiple($filePGCMultipleEntity);
$this->uploadFileToDropbox($filePGCMultipleEntity,$project,"Contrats de development et construction/".$filePGCMultipleEntity->getId().$nomenclature);
}
}
if($fileRapportVisiteSpsMultiple){
$array = explode(',',$fileRapportVisiteSpsMultiple);
foreach ($array as $item){
$fileRapportVisiteSpsMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileRapportVisiteSpsMultipleEntity,'Rapport de visite SPS ');
$etap->addFileRapportVisiteSpsMultiple($fileRapportVisiteSpsMultipleEntity);
$this->uploadFileToDropbox($fileRapportVisiteSpsMultipleEntity,$project,"Contrats de development et construction/".$fileRapportVisiteSpsMultipleEntity->getId().$nomenclature);
}
}
if($fileDIUOMultiple){
$array = explode(',',$fileDIUOMultiple);
foreach ($array as $item){
$fileDIUOMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDIUOMultipleEntity,'DIUO ');
$etap->addFileDIUOMultiple($fileDIUOMultipleEntity);
$this->uploadFileToDropbox($fileDIUOMultipleEntity,$project,"Contrats de development et construction/".$fileDIUOMultipleEntity->getId().$nomenclature);
}
}
if($fileHarmonisationMultiple){
$array = explode(',',$fileHarmonisationMultiple);
foreach ($array as $item){
$fileHarmonisationMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileHarmonisationMultipleEntity,'Harmonisation ');
$etap->addFileHarmonisationMultiple($fileHarmonisationMultipleEntity);
$this->uploadFileToDropbox($fileHarmonisationMultipleEntity,$project,"Contrats de development et construction/".$fileHarmonisationMultipleEntity->getId().$nomenclature);
}
}
if($filePPSPSMultiple){
$array = explode(',',$filePPSPSMultiple);
foreach ($array as $item){
$filePPSPSMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePPSPSMultipleEntity,'PPSPS ');
$etap->addFilePPSPSMultiple($filePPSPSMultipleEntity);
$this->uploadFileToDropbox($filePPSPSMultipleEntity,$project,"Contrats de development et construction/".$filePPSPSMultipleEntity->getId().$nomenclature);
}
}
if($fileMissionLLEMultiple){
$array = explode(',',$fileMissionLLEMultiple);
foreach ($array as $item){
$fileMissionLLEMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileMissionLLEMultipleEntity,'Mission L / LE');
$etap->addFileMissionLLEMultiple($fileMissionLLEMultipleEntity);
$this->uploadFileToDropbox($fileMissionLLEMultipleEntity,$project,"Contrats de development et construction/".$fileMissionLLEMultipleEntity->getId().$nomenclature);
}
}
if($dateRealisationPlateforme){
$etap->setDateRealisationPlateforme(new \DateTime($dateRealisationPlateforme));
}else{
$etap->setDateRealisationPlateforme(null);
}
$etap->setChemainAcces($chemainAcces);
$this->addOrUpdateCategory($categorys,'setEtap171',$etap,$project);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap172($request,$user)
{
$fileNoteCalculBetonFeraillageMultiple = $request->get('fileNoteCalculBetonFeraillageMultiple');
$filePlanImplantationBatimentAvecDalleBetonMultiple = $request->get('filePlanImplantationBatimentAvecDalleBetonMultiple');
$filePVReceptionMultiple = $request->get('filePVReceptionMultiple');
$fileFondationTermineesMultiple = $request->get('fileFondationTermineesMultiple');
$fileDalleBetonShelterMultiple = $request->get('fileDalleBetonShelterMultiple');
$fileCheminAccesMultiple = $request->get('fileCheminAccesMultiple');
$filePhotosPlateformeMultiple = $request->get('filePhotosPlateformeMultiple');
$dateDebutFondationEtap = $request->get('dateDebutFondationEtap');
$categorys = $request->get('categorys');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap172::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($fileNoteCalculBetonFeraillageMultiple){
$array = explode(',',$fileNoteCalculBetonFeraillageMultiple);
foreach ($array as $item){
$fileNoteCalculBetonFeraillageMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileNoteCalculBetonFeraillageMultipleEntity,'Note de calcul béton et féraillage');
$etap->addFileNoteCalculBetonFeraillageMultiple($fileNoteCalculBetonFeraillageMultipleEntity);
$this->uploadFileToDropbox($fileNoteCalculBetonFeraillageMultipleEntity,$project,"Contrats de development et construction/".$fileNoteCalculBetonFeraillageMultipleEntity->getId().$nomenclature);
}
}
if($filePlanImplantationBatimentAvecDalleBetonMultiple){
$array = explode(',',$filePlanImplantationBatimentAvecDalleBetonMultiple);
foreach ($array as $item){
$filePlanImplantationBatimentAvecDalleBetonMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanImplantationBatimentAvecDalleBetonMultipleEntity,'Plan implantation bâtiment avec dalle béton du local onduleur');
$etap->addFilePlanImplantationBatimentAvecDalleBetonMultiple($filePlanImplantationBatimentAvecDalleBetonMultipleEntity);
$this->uploadFileToDropbox($filePlanImplantationBatimentAvecDalleBetonMultipleEntity,$project,"Contrats de development et construction/".$filePlanImplantationBatimentAvecDalleBetonMultipleEntity->getId().$nomenclature);
}
}
if($filePVReceptionMultiple){
$array = explode(',',$filePVReceptionMultiple);
foreach ($array as $item){
$filePVReceptionMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePVReceptionMultipleEntity,'PV de réception');
$etap->addFilePVReceptionMultiple($filePVReceptionMultipleEntity);
$this->uploadFileToDropbox($filePVReceptionMultipleEntity,$project,"Contrats de development et construction/".$filePVReceptionMultipleEntity->getId().$nomenclature);
}
}
if($fileFondationTermineesMultiple){
$array = explode(',',$fileFondationTermineesMultiple);
foreach ($array as $item){
$fileFondationTermineesMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileFondationTermineesMultipleEntity,'Fondations terminées');
$etap->addFileFondationTermineesMultiple($fileFondationTermineesMultipleEntity);
$this->uploadFileToDropbox($fileFondationTermineesMultipleEntity,$project,"Contrats de development et construction/".$fileFondationTermineesMultipleEntity->getId().$nomenclature);
}
}
if($fileDalleBetonShelterMultiple){
$array = explode(',',$fileDalleBetonShelterMultiple);
foreach ($array as $item){
$fileDalleBetonShelterMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDalleBetonShelterMultipleEntity,'Dalle béton shelter');
$etap->addFileDalleBetonShelterMultiple($fileDalleBetonShelterMultipleEntity);
$this->uploadFileToDropbox($fileDalleBetonShelterMultipleEntity,$project,"Contrats de development et construction/".$fileDalleBetonShelterMultipleEntity->getId().$nomenclature);
}
}
if($fileCheminAccesMultiple){
$array = explode(',',$fileCheminAccesMultiple);
foreach ($array as $item){
$fileCheminAccesMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileCheminAccesMultipleEntity,'Chemin d’accès');
$etap->addFileCheminAccesMultiple($fileCheminAccesMultipleEntity);
$this->uploadFileToDropbox($fileCheminAccesMultipleEntity,$project,"Contrats de development et construction/".$fileCheminAccesMultipleEntity->getId().$nomenclature);
}
}
if($filePhotosPlateformeMultiple){
$array = explode(',',$filePhotosPlateformeMultiple);
foreach ($array as $item){
$filePhotosPlateformeMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotosPlateformeMultipleEntity,'Photos de la plateforme');
$etap->addFilePhotosPlateformeMultiple($filePhotosPlateformeMultipleEntity);
$this->uploadFileToDropbox($filePhotosPlateformeMultipleEntity,$project,"Contrats de development et construction/".$filePhotosPlateformeMultipleEntity->getId().$nomenclature);
}
}
if($dateDebutFondationEtap){
$etap->setDateDebutFondation(new \DateTime($dateDebutFondationEtap));
}else{
$etap->setDateDebutFondation(null);
}
$this->addOrUpdateCategory($categorys,'setEtap172',$etap,$project);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap173($request,$user)
{
$fileNoteCalculCharpente173Multiple = $request->get('fileNoteCalculCharpente173Multiple');
$filePhotoRenforcementcharpente173Multiple = $request->get('filePhotoRenforcementcharpente173Multiple');
$fileOssatureSecondaireBardage173Multiple = $request->get('fileOssatureSecondaireBardage173Multiple');
$filePhotoRenforcementBardage173Multiple = $request->get('filePhotoRenforcementBardage173Multiple');
$filePVreception173Multiple = $request->get('filePVreception173Multiple');
$filePhotoRenforcementCouvertureTermine173Multiple = $request->get('filePhotoRenforcementCouvertureTermine173Multiple');
$filePlansCharpente173Multiple = $request->get('filePlansCharpente173Multiple');
$filePlansCharpente173SigneMultiple = $request->get('filePlansCharpente173SigneMultiple');
$fileVues3d173Multiple = $request->get('fileVues3d173Multiple');
$filePlanCouverture173Multiple = $request->get('filePlanCouverture173Multiple');
$filePlanDescriptionTravauxRenforcementCharpente173Multiple = $request->get('filePlanDescriptionTravauxRenforcementCharpente173Multiple');
$filePlanDescriptionTravauxDeposeCouverture173Multiple = $request->get('filePlanDescriptionTravauxDeposeCouverture173Multiple');
$categorys = $request->get('categorys');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$debutCharpenteEtap = $request->get('debutCharpenteEtap');
$finCharpenteEtap = $request->get('finCharpenteEtap');
$debutCouvertureEtap = $request->get('debutCouvertureEtap');
$finCouvertureEtap = $request->get('finCouvertureEtap');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap173::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($debutCharpenteEtap){
$etap->setDateDebutCharpente(new \DateTime($debutCharpenteEtap));
}else{
$etap->setDateDebutCharpente(null);
}
if($finCharpenteEtap){
$etap->setDateFinCharpente(new \DateTime($finCharpenteEtap));
}else{
$etap->setDateFinCharpente(null);
}
if($debutCouvertureEtap){
$etap->setDateDebutCouverture(new \DateTime($debutCouvertureEtap));
}else{
$etap->setDateDebutCouverture(null);
}
if($finCouvertureEtap){
$etap->setDateFinCouverture(new \DateTime($finCouvertureEtap));
}else{
$etap->setDateFinCouverture(null);
}
if($fileNoteCalculCharpente173Multiple){
$array = explode(',',$fileNoteCalculCharpente173Multiple);
foreach ($array as $item){
$fileNoteCalculCharpente173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileNoteCalculCharpente173MultipleEntity,'Notes de calcul charpente');
$etap->addFileNoteCalculCharpente173Multiple($fileNoteCalculCharpente173MultipleEntity);
$this->uploadFileToDropbox($fileNoteCalculCharpente173MultipleEntity,$project,"Contrats de development et construction/".$fileNoteCalculCharpente173MultipleEntity->getId().$nomenclature);
}
}
if($filePhotoRenforcementcharpente173Multiple){
$array = explode(',',$filePhotoRenforcementcharpente173Multiple);
foreach ($array as $item){
$filePhotoRenforcementcharpente173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotoRenforcementcharpente173MultipleEntity,'Photos de renforcement charpente');
$etap->addFilePhotoRenforcementcharpente173Multiple($filePhotoRenforcementcharpente173MultipleEntity);
$this->uploadFileToDropbox($filePhotoRenforcementcharpente173MultipleEntity,$project,"Contrats de development et construction/".$filePhotoRenforcementcharpente173MultipleEntity->getId().$nomenclature);
}
}
if($fileOssatureSecondaireBardage173Multiple){
$array = explode(',',$fileOssatureSecondaireBardage173Multiple);
foreach ($array as $item){
$fileOssatureSecondaireBardage173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileOssatureSecondaireBardage173MultipleEntity,'Plan de bardage');
$etap->addFileOssatureSecondaireBardage173Multiple($fileOssatureSecondaireBardage173MultipleEntity);
$this->uploadFileToDropbox($fileOssatureSecondaireBardage173MultipleEntity,$project,"Contrats de development et construction/".$fileOssatureSecondaireBardage173MultipleEntity->getId().$nomenclature);
}
}
if($filePhotoRenforcementBardage173Multiple){
$array = explode(',',$filePhotoRenforcementBardage173Multiple);
foreach ($array as $item){
$filePhotoRenforcementBardage173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotoRenforcementBardage173MultipleEntity,'Photos de renforcement des bardages');
$etap->addFilePhotoRenforcementBardage173Multiple($filePhotoRenforcementBardage173MultipleEntity);
$this->uploadFileToDropbox($filePhotoRenforcementBardage173MultipleEntity,$project,"Contrats de development et construction/".$filePhotoRenforcementBardage173MultipleEntity->getId().$nomenclature);
}
}
if($filePVreception173Multiple){
$array = explode(',',$filePVreception173Multiple);
foreach ($array as $item){
$filePVreception173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePVreception173MultipleEntity,'PV de réception');
$etap->addFilePVreception173Multiple($filePVreception173MultipleEntity);
$this->uploadFileToDropbox($filePVreception173MultipleEntity,$project,"Contrats de development et construction/".$filePVreception173MultipleEntity->getId().$nomenclature);
}
}
if($filePhotoRenforcementCouvertureTermine173Multiple){
$array = explode(',',$filePhotoRenforcementCouvertureTermine173Multiple);
foreach ($array as $item){
$filePhotoRenforcementCouvertureTermine173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotoRenforcementCouvertureTermine173MultipleEntity,'Photos de renforcement de la couverture terminée');
$etap->addFilePhotoRenforcementCouvertureTermine173Multiple($filePhotoRenforcementCouvertureTermine173MultipleEntity);
$this->uploadFileToDropbox($filePhotoRenforcementCouvertureTermine173MultipleEntity,$project,"Contrats de development et construction/".$filePhotoRenforcementCouvertureTermine173MultipleEntity->getId().$nomenclature);
}
}
if($filePlansCharpente173Multiple){
$array = explode(',',$filePlansCharpente173Multiple);
foreach ($array as $item){
$filePlansCharpente173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlansCharpente173MultipleEntity,'Plans de charpente');
$etap->addFilePlansCharpente173Multiple($filePlansCharpente173MultipleEntity);
$this->uploadFileToDropbox($filePlansCharpente173MultipleEntity,$project,"Contrats de development et construction/".$filePlansCharpente173MultipleEntity->getId().$nomenclature);
}
}
if($filePlansCharpente173SigneMultiple){
$array = explode(',',$filePlansCharpente173SigneMultiple);
foreach ($array as $item){
$filePlansCharpente173SigneMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlansCharpente173SigneMultipleEntity,'Plans de charpente Singé par bailleur');
$etap->addFilePlansCharpente173SigneMultiple($filePlansCharpente173SigneMultipleEntity);
$this->uploadFileToDropbox($filePlansCharpente173SigneMultipleEntity,$project,"Contrats de development et construction/".$filePlansCharpente173SigneMultipleEntity->getId().$nomenclature);
}
}
if($fileVues3d173Multiple){
$array = explode(',',$fileVues3d173Multiple);
foreach ($array as $item){
$fileVues3d173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileVues3d173MultipleEntity,'Vues 3D');
$etap->addFileVues3d173Multiple($fileVues3d173MultipleEntity);
$this->uploadFileToDropbox($fileVues3d173MultipleEntity,$project,"Contrats de development et construction/".$fileVues3d173MultipleEntity->getId().$nomenclature);
}
}
if($filePlanCouverture173Multiple){
$array = explode(',',$filePlanCouverture173Multiple);
foreach ($array as $item){
$filePlanCouverture173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanCouverture173MultipleEntity,'Plan de couverture');
$etap->addFilePlanCouverture173Multiple($filePlanCouverture173MultipleEntity);
$this->uploadFileToDropbox($filePlanCouverture173MultipleEntity,$project,"Contrats de development et construction/".$filePlanCouverture173MultipleEntity->getId().$nomenclature);
}
}
if($filePlanDescriptionTravauxRenforcementCharpente173Multiple){
$array = explode(',',$filePlanDescriptionTravauxRenforcementCharpente173Multiple);
foreach ($array as $item){
$filePlanDescriptionTravauxRenforcementCharpente173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanDescriptionTravauxRenforcementCharpente173MultipleEntity,'Plan et descriptifs des travaux de renforcement de charpente');
$etap->addFilePlanDescriptionTravauxRenforcementCharpente173Multiple($filePlanDescriptionTravauxRenforcementCharpente173MultipleEntity);
$this->uploadFileToDropbox($filePlanDescriptionTravauxRenforcementCharpente173MultipleEntity,$project,"Contrats de development et construction/".$filePlanDescriptionTravauxRenforcementCharpente173MultipleEntity->getId().$nomenclature);
}
}
if($filePlanDescriptionTravauxDeposeCouverture173Multiple){
$array = explode(',',$filePlanDescriptionTravauxDeposeCouverture173Multiple);
foreach ($array as $item){
$filePlanDescriptionTravauxDeposeCouverture173MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanDescriptionTravauxDeposeCouverture173MultipleEntity,'Plan et descriptifs des travaux de dépose , repose de couverture');
$etap->addFilePlanDescriptionTravauxDeposeCouverture173Multiple($filePlanDescriptionTravauxDeposeCouverture173MultipleEntity);
$this->uploadFileToDropbox($filePlanDescriptionTravauxDeposeCouverture173MultipleEntity,$project,"Contrats de development et construction/".$filePlanDescriptionTravauxDeposeCouverture173MultipleEntity->getId().$nomenclature);
}
}
$this->addOrUpdateCategory($categorys,'setEtap173',$etap,$project);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap174($request,$user)
{
$filePlanCalepinageModule174Multiple = $request->get('filePlanCalepinageModule174Multiple');
$filePlanCaplageStrings174Multiple = $request->get('filePlanCaplageStrings174Multiple');
$fileNoteCalculSousLisePV174Multiple = $request->get('fileNoteCalculSousLisePV174Multiple');
$fileSchemaUnifilaireInstallation174Multiple = $request->get('fileSchemaUnifilaireInstallation174Multiple');
$fileShemaAgencementShelterPhotos174Multiple = $request->get('fileShemaAgencementShelterPhotos174Multiple');
$fileTestPrMiseService174Multiple = $request->get('fileTestPrMiseService174Multiple');
$fileShemaUnifilaireSystemeMonitoring174Multiple = $request->get('fileShemaUnifilaireSystemeMonitoring174Multiple');
$fileTestVerificationTravauxElectriqueFiche174Multiple = $request->get('fileTestVerificationTravauxElectriqueFiche174Multiple');
$filePVReception174Multiple = $request->get('filePVReception174Multiple');
$filePhotosGenerateur174Multiple = $request->get('filePhotosGenerateur174Multiple');
$filePvTerminees174Multiple = $request->get('filePvTerminees174Multiple');
$fileDescentesCables174Multiple = $request->get('fileDescentesCables174Multiple');
$fileRaccordementLocalOnduleur174Multiple = $request->get('fileRaccordementLocalOnduleur174Multiple');
$debutPosePvEtap = $request->get('debutPosePvEtap');
$finPosePvEtap = $request->get('finPosePvEtap');
$categorys = $request->get('categorys');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap174::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($debutPosePvEtap){
$etap->setDateDebutPosePv(new \DateTime($debutPosePvEtap));
}else{
$etap->setDateDebutPosePv(null);
}
if($finPosePvEtap){
$etap->setDateFinPosePv(new \DateTime($finPosePvEtap));
}else{
$etap->setDateFinPosePv(null);
}
if($filePlanCalepinageModule174Multiple){
$array = explode(',',$filePlanCalepinageModule174Multiple);
foreach ($array as $item){
$filePlanCalepinageModule174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanCalepinageModule174MultipleEntity,'Plan de calepinage / câblage');
$etap->addFilePlanCalepinageModule174Multiple($filePlanCalepinageModule174MultipleEntity);
$this->uploadFileToDropbox($filePlanCalepinageModule174MultipleEntity,$project,"Contrats de development et construction/".$filePlanCalepinageModule174MultipleEntity->getId().$nomenclature);
}
}
if($filePlanCaplageStrings174Multiple){
$array = explode(',',$filePlanCaplageStrings174Multiple);
foreach ($array as $item){
$filePlanCaplageStrings174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanCaplageStrings174MultipleEntity,'Plan de câblage des strings');
$etap->addFilePlanCaplageStrings174Multiple($filePlanCaplageStrings174MultipleEntity);
$this->uploadFileToDropbox($filePlanCaplageStrings174MultipleEntity,$project,"Contrats de development et construction/".$filePlanCaplageStrings174MultipleEntity->getId().$nomenclature);
}
}
if($fileNoteCalculSousLisePV174Multiple){
$array = explode(',',$fileNoteCalculSousLisePV174Multiple);
foreach ($array as $item){
$fileNoteCalculSousLisePV174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileNoteCalculSousLisePV174MultipleEntity,'Note de calcul sous Lise PV');
$etap->addFileNoteCalculSousLisePV174Multiple($fileNoteCalculSousLisePV174MultipleEntity);
$this->uploadFileToDropbox($fileNoteCalculSousLisePV174MultipleEntity,$project,"Contrats de development et construction/".$fileNoteCalculSousLisePV174MultipleEntity->getId().$nomenclature);
}
}
if($fileSchemaUnifilaireInstallation174Multiple){
$array = explode(',',$fileSchemaUnifilaireInstallation174Multiple);
foreach ($array as $item){
$fileSchemaUnifilaireInstallation174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileSchemaUnifilaireInstallation174MultipleEntity,'Schéma Unifilaire de l’installation');
$etap->addFileSchemaUnifilaireInstallation174Multiple($fileSchemaUnifilaireInstallation174MultipleEntity);
$this->uploadFileToDropbox($fileSchemaUnifilaireInstallation174MultipleEntity,$project,"Contrats de development et construction/".$fileSchemaUnifilaireInstallation174MultipleEntity->getId().$nomenclature);
}
}
if($fileShemaAgencementShelterPhotos174Multiple){
$array = explode(',',$fileShemaAgencementShelterPhotos174Multiple);
foreach ($array as $item){
$fileShemaAgencementShelterPhotos174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileShemaAgencementShelterPhotos174MultipleEntity,'Schéma d’agencement du shelter ou photos');
$etap->addFileShemaAgencementShelterPhotos174Multiple($fileShemaAgencementShelterPhotos174MultipleEntity);
$this->uploadFileToDropbox($fileShemaAgencementShelterPhotos174MultipleEntity,$project,"Contrats de development et construction/".$fileShemaAgencementShelterPhotos174MultipleEntity->getId().$nomenclature);
}
}
if($fileTestPrMiseService174Multiple){
$array = explode(',',$fileTestPrMiseService174Multiple);
foreach ($array as $item){
$fileTestPrMiseService174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileTestPrMiseService174MultipleEntity,'Test de PR Ã la mise en service');
$etap->addFileTestPrMiseService174Multiple($fileTestPrMiseService174MultipleEntity);
$this->uploadFileToDropbox($fileTestPrMiseService174MultipleEntity,$project,"Contrats de development et construction/".$fileTestPrMiseService174MultipleEntity->getId().$nomenclature);
}
}
if($fileShemaUnifilaireSystemeMonitoring174Multiple){
$array = explode(',',$fileShemaUnifilaireSystemeMonitoring174Multiple);
foreach ($array as $item){
$fileShemaUnifilaireSystemeMonitoring174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileShemaUnifilaireSystemeMonitoring174MultipleEntity,'Schéma unifilaire du système de monitoring');
$etap->addFileShemaUnifilaireSystemeMonitoring174Multiple($fileShemaUnifilaireSystemeMonitoring174MultipleEntity);
$this->uploadFileToDropbox($fileShemaUnifilaireSystemeMonitoring174MultipleEntity,$project,"Contrats de development et construction/".$fileShemaUnifilaireSystemeMonitoring174MultipleEntity->getId().$nomenclature);
}
}
if($fileTestVerificationTravauxElectriqueFiche174Multiple){
$array = explode(',',$fileTestVerificationTravauxElectriqueFiche174Multiple);
foreach ($array as $item){
$fileTestVerificationTravauxElectriqueFiche174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileTestVerificationTravauxElectriqueFiche174MultipleEntity,'Tests et vérifications des travaux électriques, fiche d’auto-contrôle de l’installateur');
$etap->addFileTestVerificationTravauxElectriqueFiche174Multiple($fileTestVerificationTravauxElectriqueFiche174MultipleEntity);
$this->uploadFileToDropbox($fileTestVerificationTravauxElectriqueFiche174MultipleEntity,$project,"Contrats de development et construction/".$fileTestVerificationTravauxElectriqueFiche174MultipleEntity->getId().$nomenclature);
}
}
if($filePVReception174Multiple){
$array = explode(',',$filePVReception174Multiple);
foreach ($array as $item){
$filePVReception174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePVReception174MultipleEntity,'PV de réception');
$etap->addFilePVReception174Multiple($filePVReception174MultipleEntity);
$this->uploadFileToDropbox($filePVReception174MultipleEntity,$project,"Contrats de development et construction/".$filePVReception174MultipleEntity->getId().$nomenclature);
}
}
if($filePhotosGenerateur174Multiple){
$array = explode(',',$filePhotosGenerateur174Multiple);
foreach ($array as $item){
$filePhotosGenerateur174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotosGenerateur174MultipleEntity,'Photos de la centrale solaire');
$etap->addFilePhotosGenerateur174Multiple($filePhotosGenerateur174MultipleEntity);
$this->uploadFileToDropbox($filePhotosGenerateur174MultipleEntity,$project,"Contrats de development et construction/".$filePhotosGenerateur174MultipleEntity->getId().$nomenclature);
}
}
if($filePvTerminees174Multiple){
$array = explode(',',$filePvTerminees174Multiple);
foreach ($array as $item){
$filePvTerminees174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePvTerminees174MultipleEntity,'Pv terminées');
$etap->addFilePvTerminees174Multiple($filePvTerminees174MultipleEntity);
$this->uploadFileToDropbox($filePvTerminees174MultipleEntity,$project,"Contrats de development et construction/".$filePvTerminees174MultipleEntity->getId().$nomenclature);
}
}
if($fileDescentesCables174Multiple){
$array = explode(',',$fileDescentesCables174Multiple);
foreach ($array as $item){
$fileDescentesCables174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDescentesCables174MultipleEntity,'Descentes de câbles');
$etap->addFileDescentesCables174Multiple($fileDescentesCables174MultipleEntity);
$this->uploadFileToDropbox($fileDescentesCables174MultipleEntity,$project,"Contrats de development et construction/".$fileDescentesCables174MultipleEntity->getId().$nomenclature);
}
}
if($fileRaccordementLocalOnduleur174Multiple){
$array = explode(',',$fileRaccordementLocalOnduleur174Multiple);
foreach ($array as $item){
$fileRaccordementLocalOnduleur174MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileRaccordementLocalOnduleur174MultipleEntity,'Raccordement du local onduleur');
$etap->addFileRaccordementLocalOnduleur174Multiple($fileRaccordementLocalOnduleur174MultipleEntity);
$this->uploadFileToDropbox($fileRaccordementLocalOnduleur174MultipleEntity,$project,"Contrats de development et construction/".$fileRaccordementLocalOnduleur174MultipleEntity->getId().$nomenclature);
}
}
$this->addOrUpdateCategory($categorys,'setEtap174',$etap,$project);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap175($request,$user)
{
$fileNoteCalculCableAcLiaison175Multiple = $request->get('fileNoteCalculCableAcLiaison175Multiple');
$filePlanTranchee175Multiple = $request->get('filePlanTranchee175Multiple');
$fileDaact175Multiple = $request->get('fileDaact175Multiple');
$filePVReception175Multiple = $request->get('filePVReception175Multiple');
$filePhotosLiaisonTerminee175Multiple = $request->get('filePhotosLiaisonTerminee175Multiple');
$dateAchevementTraveauxEtap = $request->get('dateAchevementTraveauxEtap');
$categorys = $request->get('categorys');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap175::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($dateAchevementTraveauxEtap){
$etap->setDateAchevementTraveaux(new \DateTime($dateAchevementTraveauxEtap));
}else{
$etap->setDateAchevementTraveaux(null);
}
if($fileNoteCalculCableAcLiaison175Multiple){
$array = explode(',',$fileNoteCalculCableAcLiaison175Multiple);
foreach ($array as $item){
$fileNoteCalculCableAcLiaison175MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileNoteCalculCableAcLiaison175MultipleEntity,'Notes de calcul des câbles AC de la liaison');
$etap->addFileNoteCalculCableAcLiaison175Multiple($fileNoteCalculCableAcLiaison175MultipleEntity);
$this->uploadFileToDropbox($fileNoteCalculCableAcLiaison175MultipleEntity,$project,"Contrats de development et construction/".$fileNoteCalculCableAcLiaison175MultipleEntity->getId().$nomenclature);
}
}
if($filePlanTranchee175Multiple){
$array = explode(',',$filePlanTranchee175Multiple);
foreach ($array as $item){
$filePlanTranchee175MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanTranchee175MultipleEntity,'Plans de la tranchée (coupe et plan de localisation)');
$etap->addFilePlanTranchee175Multiple($filePlanTranchee175MultipleEntity);
$this->uploadFileToDropbox($filePlanTranchee175MultipleEntity,$project,"Contrats de development et construction/".$filePlanTranchee175MultipleEntity->getId().$nomenclature);
}
}
if($fileDaact175Multiple){
$array = explode(',',$fileDaact175Multiple);
foreach ($array as $item){
$fileDaact175MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDaact175MultipleEntity,'DAACT : cerfa signé tamponné mairie');
$etap->addFileDaact175Multiple($fileDaact175MultipleEntity);
$this->uploadFileToDropbox($fileDaact175MultipleEntity,$project,"Contrats de development et construction/".$fileDaact175MultipleEntity->getId().$nomenclature);
}
}
if($filePVReception175Multiple){
$array = explode(',',$filePVReception175Multiple);
foreach ($array as $item){
$filePVReception175MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePVReception175MultipleEntity,'PV de réception');
$etap->addFilePVReception175Multiple($filePVReception175MultipleEntity);
$this->uploadFileToDropbox($filePVReception175MultipleEntity,$project,"Contrats de development et construction/".$filePVReception175MultipleEntity->getId().$nomenclature);
}
}
if($filePhotosLiaisonTerminee175Multiple){
$array = explode(',',$filePhotosLiaisonTerminee175Multiple);
foreach ($array as $item){
$filePhotosLiaisonTerminee175MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotosLiaisonTerminee175MultipleEntity,'Photos de la liaison terminée');
$etap->addFilePhotosLiaisonTerminee175Multiple($filePhotosLiaisonTerminee175MultipleEntity);
$this->uploadFileToDropbox($filePhotosLiaisonTerminee175MultipleEntity,$project,"Contrats de development et construction/".$filePhotosLiaisonTerminee175MultipleEntity->getId().$nomenclature);
}
}
$this->addOrUpdateCategory($categorys,'setEtap175',$etap,$project);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap159($request,$user)
{
$fileVisiteTechnique159Multiple = $request->get('fileVisiteTechnique159Multiple');
$fileEtudeProductible159Multiple = $request->get('fileEtudeProductible159Multiple');
$fileGeotechnique159Multiple = $request->get('fileGeotechnique159Multiple');
$fileDiagnostiqueCharpente159Multiple = $request->get('fileDiagnostiqueCharpente159Multiple');
$fileDesignPreCRD159Multiple = $request->get('fileDesignPreCRD159Multiple');
$fileDesignPostCRD159Multiple = $request->get('fileDesignPostCRD159Multiple');
$filePlanMasseSituationTranchee159Multiple = $request->get('filePlanMasseSituationTranchee159Multiple');
$filePlanCalepinage159Multiple = $request->get('filePlanCalepinage159Multiple');
$fileSchemaUnifilaire159Multiple = $request->get('fileSchemaUnifilaire159Multiple');
$filePlansAutocadMultiple = $request->get('filePlansAutocadMultiple');
$filePlansDwgMultiple = $request->get('filePlansDwgMultiple');
$etatCharpente = $request->get('etatCharpente');
$typeToitureExistante = $request->get('typeToitureExistante');
$typeRenovation = $request->get('typeRenovation');
$typeToiturePoser = $request->get('typeToiturePoser');
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap159::class)->findOneBy(['token'=>$etapToken]);
$etap160 = $this->em->getRepository(Etap160::class)->findOneBy(['project'=>$project->getId()]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePlansAutocadMultiple){
$array = explode(',',$filePlansAutocadMultiple);
foreach ($array as $item){
$filePlansAutocadMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlansAutocadMultipleEntity,'Plans Autocad');
$etap->addFilePlansAutocadMultiple($filePlansAutocadMultipleEntity);
$this->uploadFileToDropbox($filePlansAutocadMultipleEntity,$project,"Contrats de development et construction/".$filePlansAutocadMultipleEntity->getId().$nomenclature);
}
}
if($filePlansDwgMultiple){
$array = explode(',',$filePlansDwgMultiple);
foreach ($array as $item){
$filePlansDwgMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlansDwgMultipleEntity,'Plans dwg');
$etap->addFilePlansDwgMultiple($filePlansDwgMultipleEntity);
$this->uploadFileToDropbox($filePlansDwgMultipleEntity,$project,"Contrats de development et construction/".$filePlansDwgMultipleEntity->getId().$nomenclature);
}
}
if($fileVisiteTechnique159Multiple){
$array = explode(',',$fileVisiteTechnique159Multiple);
foreach ($array as $item){
$fileVisiteTechnique159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileVisiteTechnique159MultipleEntity,'Visite technique');
$etap->addFileVisiteTechnique159Multiple($fileVisiteTechnique159MultipleEntity);
$this->uploadFileToDropbox($fileVisiteTechnique159MultipleEntity,$project,"Contrats de development et construction/".$fileVisiteTechnique159MultipleEntity->getId().$nomenclature);
}
}
if($fileEtudeProductible159Multiple){
$array = explode(',',$fileEtudeProductible159Multiple);
foreach ($array as $item){
$fileEtudeProductible159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileEtudeProductible159MultipleEntity,'Etude de productible');
$etap->addFileEtudeProductible159Multiple($fileEtudeProductible159MultipleEntity);
$this->uploadFileToDropbox($fileEtudeProductible159MultipleEntity,$project,"Contrats de development et construction/".$fileEtudeProductible159MultipleEntity->getId().$nomenclature);
$project->setFileEtudeProductible($fileEtudeProductible159MultipleEntity) ;
$this->em->persist($project);
}
}
if($fileGeotechnique159Multiple){
$array = explode(',',$fileGeotechnique159Multiple);
foreach ($array as $item){
$fileGeotechnique159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileGeotechnique159MultipleEntity,'Etude de sol');
$etap->addFileGeotechnique159Multiple($fileGeotechnique159MultipleEntity);
$etap160->addFileEtudeSoleMultiple($fileGeotechnique159MultipleEntity);
$this->uploadFileToDropbox($fileGeotechnique159MultipleEntity,$project,"Contrats de development et construction/".$fileGeotechnique159MultipleEntity->getId().$nomenclature);
}
}
if($fileDiagnostiqueCharpente159Multiple){
$array = explode(',',$fileDiagnostiqueCharpente159Multiple);
foreach ($array as $item){
$fileDiagnostiqueCharpente159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
if($fileDiagnostiqueCharpente159MultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileDiagnostiqueCharpente159MultipleEntity,'Diagnostic charpente');
$etap->addFileDiagnostiqueCharpente159Multiple($fileDiagnostiqueCharpente159MultipleEntity);
$etap160->addFileDiagnostiqueCharpenteMultiple($fileDiagnostiqueCharpente159MultipleEntity);
$this->uploadFileToDropbox($fileDiagnostiqueCharpente159MultipleEntity,$project,"Contrats de development et construction/".$fileDiagnostiqueCharpente159MultipleEntity->getId().$nomenclature);
}
}
$this->em->persist($etap160);
$this->em->flush();
}
if($fileDesignPreCRD159Multiple){
$array = explode(',',$fileDesignPreCRD159Multiple);
foreach ($array as $item){
$fileDesignPreCRD159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDesignPreCRD159MultipleEntity,'Design pré-CRD');
$etap->addFileDesignPreCRD159Multiple($fileDesignPreCRD159MultipleEntity);
$this->uploadFileToDropbox($fileDesignPreCRD159MultipleEntity,$project,"Contrats de development et construction/".$fileDesignPreCRD159MultipleEntity->getId().$nomenclature);
}
}
if($fileDesignPostCRD159Multiple){
$array = explode(',',$fileDesignPostCRD159Multiple);
foreach ($array as $item){
$fileDesignPostCRD159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileDesignPostCRD159MultipleEntity,'Design post-CRD');
$etap->addFileDesignPostCRD159Multiple($fileDesignPostCRD159MultipleEntity);
$this->uploadFileToDropbox($fileDesignPostCRD159MultipleEntity,$project,"Contrats de development et construction/".$fileDesignPostCRD159MultipleEntity->getId().$nomenclature);
}
}
if($filePlanMasseSituationTranchee159Multiple){
$array = explode(',',$filePlanMasseSituationTranchee159Multiple);
foreach ($array as $item){
$filePlanMasseSituationTranchee159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanMasseSituationTranchee159MultipleEntity,'Plan de masse et de situation avec tranchée');
$etap->addFilePlanMasseSituationTranchee159Multiple($filePlanMasseSituationTranchee159MultipleEntity);
$this->uploadFileToDropbox($filePlanMasseSituationTranchee159MultipleEntity,$project,"Contrats de development et construction/".$filePlanMasseSituationTranchee159MultipleEntity->getId().$nomenclature);
}
}
if($filePlanCalepinage159Multiple){
$array = explode(',',$filePlanCalepinage159Multiple);
foreach ($array as $item){
$filePlanCalepinage159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePlanCalepinage159MultipleEntity,'Plan de calepinage');
$etap->addFilePlanCalepinage159Multiple($filePlanCalepinage159MultipleEntity);
$this->uploadFileToDropbox($filePlanCalepinage159MultipleEntity,$project,"Contrats de development et construction/".$filePlanCalepinage159MultipleEntity->getId().$nomenclature);
}
}
if($fileSchemaUnifilaire159Multiple){
$array = explode(',',$fileSchemaUnifilaire159Multiple);
foreach ($array as $item){
$fileSchemaUnifilaire159MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$fileSchemaUnifilaire159MultipleEntity,'Schéma unifilaire');
$etap->addFileSchemaUnifilaire159Multiple($fileSchemaUnifilaire159MultipleEntity);
$this->uploadFileToDropbox($fileSchemaUnifilaire159MultipleEntity,$project,"Contrats de development et construction/".$fileSchemaUnifilaire159MultipleEntity->getId().$nomenclature);
}
}
$etap->setEtatCharpente($etatCharpente);
$etap->setTypeToitureExistante($typeToitureExistante);
$etap->setTypeRenovation($typeRenovation);
$etap->setTypeToiturePoser($typeToiturePoser);
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap23($request,$user)
{
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$filePhotosVisiteTerainEtap23Multiple = $request->get('filePhotosVisiteTerainEtap23Multiple');
$visiteTerrain = $request->get('visiteTerrain');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap23::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($filePhotosVisiteTerainEtap23Multiple){
$array = explode(',',$filePhotosVisiteTerainEtap23Multiple);
foreach ($array as $item){
$filePhotosVisiteTerainEtap23MultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item]);
$nomenclature = $this->getNomenclature($etap,$filePhotosVisiteTerainEtap23MultipleEntity,'photo visite terrain');
$etap->addFilePhotosVisiteTerainEtap23Multiple($filePhotosVisiteTerainEtap23MultipleEntity);
}
}
// if($visiteTerrain){
// foreach ($visiteTerrain as $item){
// if(isset($item['id']) and $item['id'] != '') {
// $visiteTerrainEntity = $this->em->getRepository(VisiteTerrainV2::class)->findOneBy(['token' => $item['id']]);
// if (isset($item['filePhotosVisiteTerainV2Multiple']) and $item['filePhotosVisiteTerainV2Multiple'] != '') {
// $array = explode(',', $item['filePhotosVisiteTerainV2Multiple']);
// foreach ($array as $item1) {
// $filePhotosVisiteTerainMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token' => $item1]);
// $nomenclature = $this->getNomenclature($etap, $filePhotosVisiteTerainMultipleEntity, 'photos visite terrain');
// $visiteTerrainEntity->addfilePhotosVisiteTerainV2Multiple($filePhotosVisiteTerainMultipleEntity);
//// $this->uploadFileToDropbox($filePhotosVisiteTerainMultipleEntity, $project, "Contrats de development et construction/" . $filePhotosVisiteTerainMultipleEntity->getId() . $nomenclature);
// }
// }
// $visiteTerrainEntity->setEtap23($etap);
// $this->em->persist($visiteTerrainEntity);
// $this->em->flush();
// }
// }
// }
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function completudeValideEtapProject($project){
$array = [];
if($project) {
$cats = $this->em->getRepository(EtapsCategory::class)->findAll();
$catColor = ['#FFC56D','#009DCA','#649B0F','#E24242','#ED4B9E'];
$i = 0;
foreach ($cats as $cat) {
$etaps = $this->em->getRepository(Etaps::class)->findBy(['category' => $cat->getId()]);
$etapValidCount = 0 ;
$etapCount = 0 ;
if($etaps){
foreach ($etaps as $etap) {
if( !$etap->getIsDeleteNewConstruction()){
$etapCount = $etapCount + 1;
$etapEntityClass = 'App\\Entity\\Etap' . $etap->getNum();
$etapEntity = $this->em->getRepository($etapEntityClass)->findOneBy(['project' => $project->getId()]);
if($etapEntity->getStatus() == Etaps::STATUS_VALIDE){
$etapValidCount = $etapValidCount + 1;
}
$array['category'][$cat->getId()]['id'] = $cat->getId();
$array['category'][$cat->getId()]['name'] = $cat->getName();
$array['category'][$cat->getId()]['etapsValidCount'] = $etapValidCount;
$array['category'][$cat->getId()]['etapsCount'] = $etapCount;
}
}
}else{
$array['category'][$cat->getId()]['id'] = $cat->getId();
$array['category'][$cat->getId()]['name'] = $cat->getName();
$array['category'][$cat->getId()]['etapsValidCount'] = 0;
$array['category'][$cat->getId()]['etapsCount'] = 0;
}
if($i > 5)
$i = 0;
$array['category'][$cat->getId()]['color'] = $catColor[$i];
$i = $i + 1;
}
$pourcentageGlobale = 0;
foreach ($array['category'] as &$item){
$pourcentage = (int)$item['etapsCount'] ? (((int)$item['etapsValidCount'] / (int)$item['etapsCount']) * 100 ) : 0.0 ;
$item['pourcentage'] = number_format($pourcentage,1);
$pourcentageGlobale = $pourcentage + $pourcentageGlobale;
}
if($pourcentageGlobale > 0){
$array['pourcentageGlobale'] = number_format($pourcentageGlobale / count($cats),1);
}else{
$array['pourcentageGlobale'] = 0.0;
}
}
return $array;
}
public function completudeValideDocumentEtapProject($project){
$array = [];
if($project) {
$cats = $this->em->getRepository(EtapsCategory::class)->findAll();
$catColor = ['#B1C40C','#0CA3C4','#520CC4','#C47A0C','#ED4B9E'];
$i = 0;
foreach ($cats as $cat) {
$etaps = $this->em->getRepository(Etaps::class)->findBy(['category' => $cat->getId()]);
$docsUploadeCount = 0 ;
$docsCount = 0 ;
if($cat->getNum() == 5){
if($etaps) {
foreach ($etaps as $etap) {
if (!$etap->getIsDeleteNewConstruction()) {
$etapEntityClass = 'App\\Entity\\Etap' . $etap->getNum();
$etapEntity = $this->em->getRepository($etapEntityClass)->findOneBy(['project' => $project->getId()]);
if($etap->getNum() == 24){
}elseif ($etap->getNum() == 25){
$etap25Champs = $etapEntity ? $etapEntity->getEtap24Champs() : null;
if(count($etap25Champs) > 0){
foreach ($etap25Champs as $champ){
$typeValorisation = $champ->getTypeValorisation() ? $champ->getTypeValorisation()->getCategory() : null;
if($typeValorisation == TypeValorisation::type_guichet_ouvert){
$fileCount = $this->checkDocNotArchive($champ->getFileDemandeRaccordementEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileMailEnedisConfirmationEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_ao_cre){
$fileCount = $this->checkDocNotArchive($champ->getFileGarantieBancaireEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileRecepisseDemandeAoMultiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileLettreLaureaMultiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_acc || $typeValorisation == TypeValorisation::type_aci || $typeValorisation == TypeValorisation::type_ppa){
}elseif ($typeValorisation == TypeValorisation::type_spot){
}
}
}
} elseif ($etap->getNum() == 26){
$etap24Champs = $etapEntity ? $etapEntity->getEtap24Champs() : null;
if(count($etap24Champs) > 0){
foreach ($etap24Champs as $etap24Champ){
foreach ($etap24Champ->getEtap26Champs() as $champ){
$typeValorisation = $etap24Champ->getTypeValorisation() ? $etap24Champ->getTypeValorisation()->getCategory() : null;
if($typeValorisation == TypeValorisation::type_guichet_ouvert or $typeValorisation == TypeValorisation::type_ao_cre){
$fileCount = $this->checkDocNotArchive($champ->getFileContratAchatSigneEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileAttestionProducteurEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileAttestionInstallateurEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileArContratAchatEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_acc || $typeValorisation == TypeValorisation::type_aci || $typeValorisation == TypeValorisation::type_ppa || $typeValorisation == TypeValorisation::type_fer){
$fileCount = $this->checkDocNotArchive($champ->getFileContratAchatSigneEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_spot){
$fileCount = $this->checkDocNotArchive($champ->getFileContratAchatSigneEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}
}
}
}
}
}
}
$array['category'][$cat->getId()]['id'] = $cat->getId();
$array['category'][$cat->getId()]['name'] = $cat->getName();
$array['category'][$cat->getId()]['num'] = $cat->getNum();
$array['category'][$cat->getId()]['docsUploadeCount'] = $docsUploadeCount;
$array['category'][$cat->getId()]['docsCount'] = $docsCount;
}
}
else{
if($etaps){
foreach ($etaps as $etap) {
if($project->getIsNewConstruction()){
if( !$etap->getIsDeleteNewConstruction()){
$etapEntityClass = 'App\\Entity\\Etap' . $etap->getNum();
$etapEntity = $this->em->getRepository($etapEntityClass)->findOneBy(['project' => $project->getId()]);
$classMetadata = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etapEntity,$classMetadata);
$docsUploadeCount = $docsUploadeCount + $data['docsUploadeCount'];
$docsCount = $docsCount + $data['docsCount'];
$array['category'][$cat->getId()]['id'] = $cat->getId();
$array['category'][$cat->getId()]['name'] = $cat->getName();
$array['category'][$cat->getId()]['num'] = $cat->getNum();
$array['category'][$cat->getId()]['docsUploadeCount'] = $docsUploadeCount;
$array['category'][$cat->getId()]['docsCount'] = $docsCount;
}
}else{
if( !$etap->getIsDelete()){
$etapEntityClass = 'App\\Entity\\Etap' . $etap->getNum();
$etapEntity = $this->em->getRepository($etapEntityClass)->findOneBy(['project' => $project->getId()]);
$classMetadata = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etapEntity,$classMetadata);
$docsUploadeCount = $docsUploadeCount + $data['docsUploadeCount'];
$docsCount = $docsCount + $data['docsCount'];
$array['category'][$cat->getId()]['id'] = $cat->getId();
$array['category'][$cat->getId()]['name'] = $cat->getName();
$array['category'][$cat->getId()]['num'] = $cat->getNum();
$array['category'][$cat->getId()]['docsUploadeCount'] = $docsUploadeCount;
$array['category'][$cat->getId()]['docsCount'] = $docsCount;
}
}
}
}else{
$array['category'][$cat->getId()]['id'] = $cat->getId();
$array['category'][$cat->getId()]['name'] = $cat->getName();
$array['category'][$cat->getId()]['num'] = $cat->getNum();
$array['category'][$cat->getId()]['docsUploadeCount'] = 0;
$array['category'][$cat->getId()]['docsCount'] = 0;
}
}
if($i > 5)
$i = 0;
$array['category'][$cat->getId()]['color'] = $catColor[$i];
$i = $i + 1;
}
$pourcentageGlobale = 0;
$docsUploadeCountGlobale = 0;
$docsCountGlobale = 0;
foreach ($array['category'] as &$item){
$pourcentage = (int)$item['docsCount'] ? (((int)$item['docsUploadeCount'] / (int)$item['docsCount']) * 100) : 0.0 ;
$item['pourcentage'] = number_format($pourcentage,1);
$item['pourcentage_str'] = (int)$item['docsUploadeCount'].'/'.(int)$item['docsCount'].' doc(s)';
$pourcentageGlobale = $pourcentage + $pourcentageGlobale;
$docsUploadeCountGlobale = (int)$item['docsUploadeCount'] + $docsUploadeCountGlobale;
$docsCountGlobale = (int)$item['docsCount'] + $docsCountGlobale;
}
if($pourcentageGlobale > 0){
$array['pourcentageGlobale'] = number_format($pourcentageGlobale / count($cats),1);
$array['docsUploadeCountGlobale'] = $docsUploadeCountGlobale;
$array['docsCountGlobale'] = $docsCountGlobale;
}else{
$array['pourcentageGlobale'] = 0.0;
$array['docsUploadeCountGlobale'] = $docsUploadeCountGlobale;
$array['docsCountGlobale'] = $docsCountGlobale;
}
}
return $array;
}
private function arrayFilesNotUtile(){
$array = [
'fileArretePcDp',
'fileDossierPcDp',
'filePVPassageHuissier',
'fileCertificatNonRecours',
'fileCertificatNonRetrait',
'fileCertificatNonOpposition',
'fileCertificatNonOppositionMultiple',
'fileDocDroc',
'fileDaact',
'filePromessebail',
'fileEtatDecriptif',
'fileEtatHypothecaire',
'filePublicationSPR',
'fileTitrePropriete',
'fileBailSigne',
'fileAvenantBail',
'fileKbisEts',
'fileConsuel',
'fileContratEpc',
'fileAnnexes',
'fileConsuelEtap20',
'fileTestReception',
'fileTestPr',
'fileDiagnostiqueCharpente',
'fileEtudeSole',
'fileDocEtap171',
'fileOrderService',
'filePlanningPrevisionnel',
'filePVDemarrage',
'fileCheminAcces',
'fileDalleBetonShelter',
'fileFondationTerminees',
'fileNoteCalculBetonFeraillage',
'filePhotosPlateforme',
'filePlanImplantationBatimentAvecDalleBeton',
'filePVReception',
'fileNoteCalculCharpente173',
'fileOssatureSecondaireBardage173',
'filePhotoRenforcementBardage173Multiple',
'filePhotoRenforcementcharpente173Multiple',
'filePhotoRenforcementCouvertureTermine173Multiple',
'filePlanCouverture173',
'filePlanDescriptionTravauxDeposeCouverture173',
'filePlanDescriptionTravauxRenforcementCharpente173',
'filePlansCharpente173',
'filePVreception173',
'fileVues3d173',
'fileDescentesCables174',
'fileNoteCalculSousLisePV174',
'filePhotosGenerateur174',
'filePlanCalepinageModule174',
'filePlanCaplageStrings174',
'filePVReception174',
'filePvTerminees174',
'filePvTerminees174Multiple',
'fileRaccordementLocalOnduleur174',
'fileSchemaUnifilaireInstallation174',
'fileShemaAgencementShelterPhotos174',
'fileShemaUnifilaireSystemeMonitoring174',
'fileTestPrMiseService174',
'fileTestPrMiseService174Multiple',
'filePhotosLiaisonTerminee175Multiple',
'filePVReception175Multiple',
'fileDaact175175Multiple',
'fileTestVerificationTravauxElectriqueFiche174',
'fileDaact175',
'fileNoteCalculCableAcLiaison175',
'filePhotosLiaisonTerminee175',
'filePhotosLiaisonTerminee175',
'filePlanTranchee175',
'filePVReception175',
'fileDoeEtap201',
'fileMailEnedisConfirmation',
'fileCrdSignee',
'fileCrdSigneeSansPtf',
'filePreuveVirement',
'filePreuveVirementSansPtf',
'filePtf',
'fileCardiSigne',
'fileCexSigne',
'fileDoe',
'fileAttestionInstallateur',
'fileAttestionProducteur',
'filePhotosMultiple',
'fileGarantieBancaireMultiple',
'fileContratAchatSigne'
];
return $array;
}
public function getNbrDocUploadByEtap($etap,$classMetadata){
$fieldNames = $classMetadata->getAssociationNames();
$targetEntity = 'App\Entity\DocUpload';
$docsUploadeCount = 0 ;
$docsCount = 0 ;
$isFilePreuveVirementMultiple = null;
$isFileCrdSigneefMultiple = null;
if($etap){
foreach ($fieldNames as $fieldName) {
if(!in_array($fieldName,$this->arrayFilesNotUtile())){
$associationMappings = $classMetadata->getAssociationMapping($fieldName);
if ($associationMappings['type'] === \Doctrine\ORM\Mapping\ClassMetadata::MANY_TO_ONE && $associationMappings['targetEntity'] === $targetEntity) {
$docsCount = $docsCount + 1;
$nameGeteurFiled = 'get'.ucfirst($fieldName);
$filedValue = $etap->{$nameGeteurFiled}();
if($filedValue){
$isNotArchive = false;
if(!$filedValue->getIsArchived()) {
$isNotArchive= true;
}
if($isNotArchive){
$docsUploadeCount = $docsUploadeCount +1;
}
}
}
if ($associationMappings['type'] === \Doctrine\ORM\Mapping\ClassMetadata::MANY_TO_MANY && $associationMappings['targetEntity'] === $targetEntity) {
if($etap->getEtap()){
if($etap->getEtap()->getNum() != 172 or ($etap->getEtap()->getNum() == 172 and !in_array($fieldName ,['filePhotosPlateformeMultiple','fileCheminAccesMultiple']))){
if(in_array($fieldName ,['filePreuveVirementSansPtfMultiple','filePreuveVirementMultiple'])){
$isFilePreuveVirementMultiple = true;
}elseif(in_array($fieldName ,['fileCrdSigneeSansPtfMultiple','fileCrdSigneeMultiple'])){
$isFileCrdSigneefMultiple = true;
}else{
$docsCount = $docsCount + 1;
}
$nameGeteurFiled = 'get'.ucfirst($fieldName);
$filedValue = $etap->{$nameGeteurFiled}();
if(!$filedValue->isEmpty()){
$isNotArchive = false;
foreach ($filedValue as $item) {
if(!$item->getIsArchived()) {
$isNotArchive= true;
}
}
if($isNotArchive){
if(in_array($fieldName ,['filePreuveVirementSansPtfMultiple','filePreuveVirementMultiple'])){
$isFilePreuveVirementMultiple = true;
}elseif(in_array($fieldName ,['fileCrdSigneeSansPtfMultiple','fileCrdSigneeMultiple'])){
$isFileCrdSigneefMultiple = true;
}else{
$docsUploadeCount = $docsUploadeCount +1;
}
}
}
}
}
}
}
}
if($isFilePreuveVirementMultiple){
$docsUploadeCount = $docsUploadeCount +1;
$docsCount = $docsCount + 1;
}
if($isFileCrdSigneefMultiple){
$docsUploadeCount = $docsUploadeCount +1;
$docsCount = $docsCount + 1;
}
}
return [
'docsUploadeCount' => $docsUploadeCount,
'docsCount' => $docsCount,
];
}
public function getNbrDocUploadByEtapDetail($etap,$classMetadata){
$fieldNames = $classMetadata->getAssociationNames();
$targetEntity = 'App\Entity\DocUpload';
$docsUploadeCount = 0 ;
$docsCount = 0 ;
$isFilePreuveVirementMultiple = null;
$isFileCrdSigneefMultiple = null;
foreach ($fieldNames as $fieldName) {
if(!in_array($fieldName,$this->arrayFilesNotUtile())){
$associationMappings = $classMetadata->getAssociationMapping($fieldName);
if ($associationMappings['type'] === \Doctrine\ORM\Mapping\ClassMetadata::MANY_TO_ONE && $associationMappings['targetEntity'] === $targetEntity) {
$docsCount = $docsCount + 1;
$nameGeteurFiled = 'get'.ucfirst($fieldName);
$filedValue = $etap->{$nameGeteurFiled}();
if($filedValue){
$isNotArchive = false;
if(!$filedValue->getIsArchived()) {
$isNotArchive= true;
}
if($isNotArchive){
$docsUploadeCount = $docsUploadeCount +1;
}
}
}
if ($associationMappings['type'] === \Doctrine\ORM\Mapping\ClassMetadata::MANY_TO_MANY && $associationMappings['targetEntity'] === $targetEntity) {
$docsCount = $docsCount + 1;
$nameGeteurFiled = 'get'.ucfirst($fieldName);
$filedValue = $etap->{$nameGeteurFiled}();
if(!$filedValue->isEmpty()){
$isNotArchive = false;
foreach ($filedValue as $item) {
if(!$item->getIsArchived()) {
$isNotArchive= true;
}
}
if($isNotArchive){
$docsUploadeCount = $docsUploadeCount +1;
}
}
}
}
}
return [
'docsUploadeCount' => $docsUploadeCount,
'docsCount' => $docsCount,
];
}
public function getNomenclatureContratConstruction($etap,$file,$stringFile,$nomContrat){
if(is_object($etap) && is_object($file)){
$nameProject = $etap->getProject()->getName();
$nameSpv = $etap->getProject()->getSpv()->getName();
$extension = substr($file->getPath(), strrpos($file->getPath(), ".",-1) + 1);
$nomContrat = $nomContrat ? $nomContrat :'';
$nomenclature = $nameProject.' - '.$nameSpv.' - '.$stringFile.' - '.$nomContrat.'.'.$extension;
$file->setNomenclature($nomenclature);
$this->em->persist($file);
$this->em->flush();
return $nomenclature;
}
return false;
}
public function getNomenclature($etap,$file,$stringFile){
if(is_object($etap) && is_object($file)){
$nameProject = $etap->getProject()->getName();
$nameSpv = $etap->getProject()->getSpv()? $etap->getProject()->getSpv()->getName() : '';
$extension = substr($file->getPath(), strrpos($file->getPath(), ".",-1) + 1);
$nomenclature = $nameProject.' - '.$nameSpv.' - '.$stringFile.'.'.$extension;
$file->setNomenclature($nomenclature);
$this->em->persist($file);
$this->em->flush();
return $nomenclature;
}
return false;
}
public function uploadFileToDropbox($doc,$project,$pathTo){
// $dropboxKey = $this->params->get('dropbox_key');
// $dropboxSecret = $this->params->get('dropbox_secret');
// $dropboxToken= $this->params->get('dropbox_token');
// $app = new DropboxApp($dropboxKey,$dropboxSecret,$dropboxToken);
// $dropbox = new Dropbox($app);
// if(is_object($doc) && is_object($project) ) {
// try {
// $path = $this->params->get('uploads_directory') . '/' . $doc->getPath();
// $userName = $project->getUserCreated()->getFirstname().' '.$project->getUserCreated()->getLastname();
// $pathTo = "/Projets signés/".trim($project->getSpv()->getName())."/Fichiers Projets/".trim($userName)."/".trim($project->getName())."/".trim($pathTo);
// $file = $dropbox->upload($path,$pathTo );
// $doc->setIdDropBox($file->getId());
// $doc->setPathDropbox($file->getPathDisplay());
// $this->em->persist($doc);
// $this->em->flush();
// return true;
// } catch (DropboxClientException $e) {
// return false;
// }
// }
return true;
}
public function addCommentDoc($request,$doc)
{
$commentText = $request->get('commentText');
$docTokenParent = $request->get('docTokenParent');
if($commentText and $doc){
$commentEntity = new CommentDoc();
$commentEntity->setDocUpload($doc);
$commentEntity->setUserCreated($this->security->getUser());
$commentEntity->setTextComment($commentText);
if($docTokenParent){
$parentDoc = $this->em->getRepository(CommentDoc::class)->find((int)$docTokenParent);
if($parentDoc){
$commentEntity->setParentComment($parentDoc);
}
}
$this->em->persist($commentEntity);
$this->em->flush();
return [
'commentEntity' => $commentEntity,
'success' => true
];
}
return [
'success' => false
];
}
public function addTitreDoc($request,$doc)
{
$titreDoc = $request->get('titreDoc');
if($titreDoc and $doc){
$doc->setTitreDoc($titreDoc);
$this->em->persist($doc);
$this->em->flush();
return [
'success' => true
];
}
return [
'success' => false
];
}
public function addDateDoc($request,$doc)
{
$dateDoc = $request->get('dateDoc');
if($dateDoc and $doc){
$doc->setCreatedAt(new \DateTime($dateDoc));
$this->em->persist($doc);
$this->em->flush();
return [
'success' => true
];
}
return [
'success' => false
];
}
function groupSousCommentItems($menu, $level = 0)
{
$menuArray = [
'id' => $menu->getId(),
'textComment' => $menu->getTextComment(),
'doc' => $menu->getDocUpload(),
'user' => $menu->getUserCreated(),
'createdAt' => $menu->getCreatedAt(),
'level' => $level,
'sub_menus' => [],
];
$tab = [];
// $menuArray['url_sub_menu'] = $this->getUrlSubComment($menu,$tab);
foreach ($menu->getSubComments() as $subMenu) {
$menuArray['sub_menus'][] = $this->groupSousCommentItems($subMenu,$level + 1);
}
return $menuArray;
}
function groupMenuTab($menus)
{
$array = [];
foreach ($menus as $menu) {
if($menu->getParentComment() == null){
$array[] = $this->groupSousCommentItems($menu);
}
}
return $array;
}
function getUrlSubComment($menu,&$array)
{
if($menu){
$array[] = $menu->getUrl();
if($menu->getSubMenus()){
foreach ($menu->getSubMenus() as $item){
$this->getUrlSubComment($item,$array);
}
}
}
return $array;
}
public function updateStatusTrackerAllProjects(){
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$this->updateStatusTracker($project);
}
}
public function updateStatusTracker($project,$isDev5 = false){
if($project){
// Développement
$isDev0 = false;
$isDev1 = false;
$isDev2 = false;
$isDev3 = false;
$etap5 = $this->em->getRepository(Etap5::class)->findOneBy(['project'=>$project->getId()]);
if($project->getFilePromessebail()){
$isDev0 = true ;
}elseif ($etap5 && $this->checkDocNotArchive($etap5->getFilePromessebailMultiple())) {
$isDev0 = true ;
}
$etap1 = $this->em->getRepository(Etap1::class)->findOneBy(['project'=>$project->getId()]);
if($etap1 && $this->checkDocNotArchive($etap1->getFileArretePcDpMultiple())){
$isDev1 = true ;
}elseif ($etap1 && $etap1->getDateArretePcDp()) {
$isDev1 = true ;
}
$etap10 = $this->em->getRepository(Etap10::class)->findOneBy(['project'=>$project->getId()]);
if($etap10 && $this->checkDocNotArchive( $etap10->getFileCrdSigneeMultiple())){
$isDev2 = true ;
}elseif ($etap10 && $this->checkDocNotArchive($etap10->getFileCrdSigneeSansPtfMultiple())) {
$isDev2 = true ;
}
$etap7 = $this->em->getRepository(Etap7::class)->findOneBy(['project'=>$project->getId()]);
// if($etap7 && $this->checkDocNotArchive($etap7->getFileBailSigneMultiple()) && $isDev1 && $isDev2 ){
if($etap7 && $this->checkDocNotArchive($etap7->getFileBailSigneMultiple())){
$isDev3 = true ;
}
// Construction
$isDev4 = false;
$isDev5New = false;
$isDev6 = false;
$dateNow = new \DateTime();
$dateNow1 = new \DateTime($dateNow->format('Y-m-d').' 23:59:59');
$etap172 = $this->em->getRepository(Etap172::class)->findOneBy(['project'=>$project->getId()]);
$etap173 = $this->em->getRepository(Etap173::class)->findOneBy(['project'=>$project->getId()]);
$etap174 = $this->em->getRepository(Etap174::class)->findOneBy(['project'=>$project->getId()]);
if($etap172 && $etap172->getDateDebutFondation() && ($dateNow1 >= $etap172->getDateDebutFondation())){
$isDev4 = true ;
}elseif ($etap173 && $etap173->getDateDebutCharpente() && ($dateNow1 >= $etap173->getDateDebutCharpente()) ){
$isDev4 = true ;
}elseif ($etap173 && $etap173->getDateDebutCouverture() && ($dateNow1 >= $etap173->getDateDebutCouverture()) ){
$isDev4 = true ;
}elseif ($etap174 && $etap174->getDateDebutPosePv() && ($dateNow1 >= $etap174->getDateDebutPosePv()) ){
$isDev4 = true ;
}
$etap175 = $this->em->getRepository(Etap175::class)->findOneBy(['project'=>$project->getId()]);
if($etap175 && $etap175->getDateAchevementTraveaux() && ($dateNow1 >= $etap175->getDateAchevementTraveaux()) ){
$isDev5New = true ;
}
$etap20 = $this->em->getRepository(Etap20::class)->findOneBy(['project'=>$project->getId()]);
$etap13 = $this->em->getRepository(Etap13::class)->findOneBy(['project'=>$project->getId()]);
if($etap20 && $this->checkDocNotArchive($etap20->getFileConsuelEtap20Multiple())){
$isDev6 = true ;
}elseif ($etap20 && $etap20->getDateConsuelEtap20()) {
$isDev6 = true ;
}
if($etap13 && $this->checkDocNotArchive($etap13->getFileConsuelMultiple())){
$isDev6 = true ;
}elseif ($etap13 && $etap13->getFileConsuel()) {
$isDev6 = true ;
}elseif ($etap13 && $etap13->getDateConsuel()) {
$isDev6 = true ;
}
// Exploitation
$isOperating = false;
$etap14 = $this->em->getRepository(Etap14::class)->findOneBy(['project'=>$project->getId()]);
if($etap14 && $etap14->getDateMiseEnService()){
$isOperating = true ;
}elseif ($project->getDateMiseEnService()) {
$isOperating = true ;
}
$status = 0;
$statusAdministrateur = 0;
if($isOperating){
$status = StatusTracker::STATUS_operating;
}elseif ($isDev6){
$status = StatusTracker::STATUS_dev_6;
}elseif ($isDev5New){
$status = StatusTracker::STATUS_dev_5;
}elseif ($isDev4){
$status = StatusTracker::STATUS_dev_4;
}elseif ($isDev3){
$status = StatusTracker::STATUS_dev_3;
}elseif ($isDev2){
$status = StatusTracker::STATUS_dev_2;
}elseif ($isDev1){
$status = StatusTracker::STATUS_dev_1;
}elseif ($isDev0){
$status = StatusTracker::STATUS_dev_0;
}
if(in_array($status,[StatusTracker::STATUS_operating])){
$statusAdministrateur = Project::STATUS_CUSTOM_EXPLOITATION;
}elseif (in_array($status,[StatusTracker::STATUS_dev_6,StatusTracker::STATUS_dev_5,StatusTracker::STATUS_dev_4])){
$statusAdministrateur = Project::STATUS_CUSTOM_CONSTRUCTION;
}elseif (in_array($status,[StatusTracker::STATUS_dev_3,StatusTracker::STATUS_dev_2,StatusTracker::STATUS_dev_1,StatusTracker::STATUS_dev_0])){
$statusAdministrateur = Project::STATUS_CUSTOM_DEVELOPPEMENT;
}
$statusTrackerProject = $this->em->getRepository(StatusTracker::class)->findOneBy(['project'=>$project->getId()],['createdAt'=>'desc']);
if($statusTrackerProject){
if($statusTrackerProject->getStatus() != $status){
$entity = new StatusTracker();
$entity->setProject($project);
$entity->setStatus($status);
$entity->setStatusAdministratif($statusAdministrateur);
$this->em->persist($entity);
$project->setStatusAdministratif($statusAdministrateur);
$project->setStatusTrackerActuel($status);
$this->em->persist($project);
$this->em->flush();
}else{
$statusTrackerProject->setProject($project);
$statusTrackerProject->setStatus($status);
$statusTrackerProject->setStatusAdministratif($statusAdministrateur);
$this->em->persist($statusTrackerProject);
$project->setStatusAdministratif($statusAdministrateur);
$project->setStatusTrackerActuel($status);
$this->em->persist($project);
$this->em->flush();
}
}else{
$entity = new StatusTracker();
$entity->setProject($project);
$entity->setStatus($status);
$entity->setStatusAdministratif($statusAdministrateur);
$this->em->persist($entity);
$project->setStatusAdministratif($statusAdministrateur);
$project->setStatusTrackerActuel($status);
$this->em->persist($project);
$this->em->flush();
}
$this->updateStatusUrbanisme($project);
$this->updateStatusFoncier($project);
$this->updateStatusTrackerConstruction($project);
$this->updateStatusTrackerConstruction($project);
}
}
public function checkDocNotArchive($array){
$isNotVide = false;
if($array){
foreach ($array as $item){
if(!$item->getIsArchived()){
$isNotVide = true;
break;
}
}
}
return $isNotVide ;
}
public function getChampsUpdates(){
$array = [];
$array[0]['name'] = 'SPV';$array[0]['value'] = 'projet-1-etap-0-spv' ;
$array[1]['name'] = 'Adresse';$array[1]['value'] = 'projet-1-etap-0-adresse' ;
$array[2]['name'] = 'Code postal';$array[2]['value'] = 'projet-1-etap-0-codePostal' ;
$array[3]['name'] = 'Ville';$array[3]['value'] = 'projet-1-etap-0-city' ;
$array[4]['name'] = 'Point GPS de la Future Centrale (Latitude)';$array[4]['value'] = 'projet-1-etap-0-longi' ;
$array[5]['name'] = 'Point GPS de la Future Centrale (Longitude)';$array[5]['value'] = 'projet-1-etap-0-lat' ;
$array[6]['name'] = 'Parcelle';$array[6]['value'] = 'projet-1-etap-0-numParcelle' ;
$array[7]['name'] = 'Date T0 du projet';$array[7]['value'] = 'projet-1-etap-0-DateT0Date-1' ;
$array[8]['name'] = 'Statut Administratif';$array[8]['value'] = 'projet-1-etap-0-statusAdministratif' ;
$array[9]['name'] = 'Reference PC/DP (Etape 1 Timeline Urbanisme)';$array[9]['value'] = 'projet-0-etap-1-referencePc' ;
$array[10]['name'] = 'Date Arrete PC/DP (Etape 1 Timeline Urbanisme)';$array[10]['value'] = 'projet-0-etap-1-dateArretePcDp-1' ;
$array[11]['name'] = 'Date 1 passage huissier PC (Etape 2 Timeline Urbanisme)';$array[11]['value'] = 'projet-0-etap-2-date1PassageHuissier-1' ;
$array[12]['name'] = 'Date 2 passage huissier PC (Etape 2 Timeline Urbanisme)';$array[12]['value'] = 'projet-0-etap-2-date2PassageHuissier-1' ;
$array[13]['name'] = 'Date 3 passage huissier PC (Etape 2 Timeline Urbanisme)';$array[13]['value'] = 'projet-0-etap-2-date3PassageHuissier-1' ;
$array[14]['name'] = 'Date PDB (Etape 1 Timeline Foncier)';$array[14]['value'] = 'projet-0-etap-5-dateExpirationPromesseBail-1' ;
$array[15]['name'] = 'Loyer';$array[15]['value'] = 'projet-0-etap-5-loyerConfirme' ;
$array[16]['name'] = 'Soulte';$array[16]['value'] = 'projet-0-etap-5-soulteConfirme' ;
$array[17]['name'] = 'Duree du bail';$array[17]['value'] = 'projet-0-etap-5-dureeBail' ;
$array[17001]['name'] = 'Durée de prorogation (en mois)';$array[17001]['value'] = 'projet-0-etap-5-d2' ;
$array[18]['name'] = 'SIRET de l\'ETS';$array[18]['value'] = 'projet-0-etap-8-siretEts' ;
$array[19]['name'] = 'Numero de parcelle';$array[19]['value'] = 'projet-0-etap-8-numParcelleEtablissement' ;
// $array[20]['name'] = 'Tarif Fit prévisionnel';$array[20]['value'] = 'projet-0-etap-9-tarifFit' ;
$array[21]['name'] = 'Reference Enedis';$array[21]['value'] = 'projet-0-etap-10-referenceEnedis' ;
$array[22]['name'] = 'Numero de contrat (CARDI)';$array[22]['value'] = 'projet-0-etap-12-numeroCardiMultiple-0-numeroCardi' ;
$array[23]['name'] = 'Date du consuel';$array[23]['value'] = 'projet-0-etap-13-dateConsuel-1' ;
$array[24]['name'] = 'Nom du bailleur';$array[24]['value'] = 'projet-0-etap-14-firstnameProprietaire' ;
$array[25]['name'] = 'Prenom du bailleur';$array[25]['value'] = 'projet-0-etap-14-lastnameProprietaire' ;
$array[26]['name'] = 'Numero de telephone du proprietaire';$array[26]['value'] = 'projet-0-etap-14-phoneProprietaire' ;
$array[27]['name'] = 'E-mail du proprietaire';$array[27]['value'] = 'projet-0-etap-14-emailProprietaire' ;
$array[28]['name'] = 'Numero de contrat d\'Achat(BTA) (Etape 8 Timeline raccordement)';$array[28]['value'] = 'projet-0-etap-15-informationMultiple-0-numeroContratAchat' ;
$array[28001]['name'] = 'Type de contrat (Etape 8 Timeline raccordement)';$array[28001]['value'] = 'projet-0-etap-15-informationMultiple-0-typeContrat' ;
$array[29]['name'] = 'Capacité installée (KWc)';$array[29]['value'] = 'projet-1-etap-0-capacite' ;
$array[1030]['name'] = 'Capacité injectée (kVA)';$array[1030]['value'] = 'projet-1-etap-0-puissance' ;
$array[30]['name'] = 'Productible (P50)';$array[30]['value'] = 'projet-1-etap-0-productible' ;
$array[30]['name'] = 'Type de batîment';$array[30]['value'] = 'projet-1-etap-0-typeBatimentProject' ;
$array[31]['name'] = 'Date de dépôt de la DOC / DROC (Etape 3 Timeline Urbanisme)';$array[31]['value'] = 'projet-0-etap-3-dateDocDroc-1' ;
$array[32]['name'] = 'Date de dépôt de la DAACT (Etape 4 Timeline Urbanisme)';$array[32]['value'] = 'projet-0-etap-4-dateDaact-1' ;
$array[33]['name'] = 'Durée de validité (en mois) (Etape 1 Timeline foncier)';$array[33]['value'] = 'projet-0-etap-5-d1' ;
$array[60]['name'] = 'Durée de prorogation (en mois) (Etape 1 Timeline foncier)';$array[60]['value'] = 'projet-0-etap-5-d2' ;
$array[34]['name'] = 'Contrepartie en nature (Etape 1 Timeline foncier)';$array[34]['value'] = 'projet-0-etap-5-loyerEnNature' ;
$array[34]['name'] = 'Nom du notaire (Etape 2 Timeline foncier)';$array[34]['value'] = 'projet-0-etap-6-nomNotaire' ;
// $array[35]['name'] = 'Date maximale d\'achèvement des travaux (Etape 2 Timeline raccordement)';$array[35]['value'] = 'projet-0-etap-9-dateMaximaleAchevement-1' ;
$array[36]['name'] = 'Montant acompte (Etape 3 Timeline raccordement)';$array[36]['value'] = 'projet-0-etap-10-montantAcompte' ;
$array[37]['name'] = 'Montant coût total (Etape 3 Timeline raccordement)';$array[37]['value'] = 'projet-0-etap-10-montantCoutTotal' ;
$array[37]['name'] = 'Numéro PRM (Etape 4 Timeline raccordement)';$array[37]['value'] = 'projet-0-etap-12-numeroCardiMultiple-0-identifiantEnedis' ;
$array[38]['name'] = 'Date du consuel (Etape 5 Timeline raccordement)';$array[38]['value'] = 'projet-0-etap-13-dateConsuel-1' ;
$array[39]['name'] = 'Date de mise en service (Etape 6 Timeline raccordement)';$array[39]['value'] = 'projet-0-etap-14-dateMiseEnService-1' ;
$array[40]['name'] = 'Tarif (Etape 8 Timeline raccordement)';$array[40]['value'] = 'projet-0-etap-15-tarifContratAchat' ;
$array[41]['name'] = 'Date de début de contrat d’achat (Etape 8 Timeline raccordement)';$array[41]['value'] = 'projet-0-etap-15-dateDebutContratAchat-1' ;
$array[42]['name'] = 'Date de fin de contrat d’achat (Etape 8 Timeline raccordement)';$array[42]['value'] = 'projet-0-etap-15-dateFinContratAchat-1' ;
$array[43]['name'] = 'Périodicité de la facturation (Etape 8 Timeline raccordement)';$array[43]['value'] = 'projet-0-etap-15-peridiciteFacturation' ;
$array[44]['name'] = 'Date début des fondations (Etape 4-2 Timeline construction)';$array[44]['value'] = 'projet-0-etap-172-dateDebutFondation-1' ;
$array[45]['name'] = 'Début renfort charpente (Etape 4-3 Timeline construction)';$array[45]['value'] = 'projet-0-etap-173-dateDebutCharpente-1' ;
$array[46]['name'] = 'Fin renfort charpente (Etape 4-3 Timeline construction)';$array[46]['value'] = 'projet-0-etap-173-dateFinCharpente-1' ;
$array[47]['name'] = 'Début couverture (Etape 4-3 Timeline construction)';$array[47]['value'] = 'projet-0-etap-173-dateDebutCouverture-1' ;
$array[48]['name'] = 'Fin couverture (Etape 4-3 Timeline construction)';$array[48]['value'] = 'projet-0-etap-173-dateFinCouverture-1' ;
$array[49]['name'] = 'Début pose PV (Etape 4-4 Timeline construction)';$array[49]['value'] = 'projet-0-etap-174-dateDebutPosePv-1' ;
$array[50]['name'] = 'Fin pose PV (Etape 4-4 Timeline construction)';$array[50]['value'] = 'projet-0-etap-174-dateFinPosePv-1' ;
$array[51]['name'] = 'Date d’achèvement des travaux (Etape 4-5 Timeline construction)';$array[51]['value'] = 'projet-0-etap-175-dateAchevementTraveaux-1' ;
$array[52]['name'] = 'Date du consuel (Etape 5 Timeline construction)';$array[52]['value'] = 'projet-0-etap-20-dateConsuelEtap20-1' ;
$array[53]['name'] = 'Date du raccordement (Etape 7 Timeline construction)';$array[53]['value'] = 'projet-0-etap-21-dateRaccordement-1' ;
$array[54]['name'] = 'Date de mise en service (Etape 7 Timeline construction)';$array[54]['value'] = 'projet-0-etap-21-dateMiseEnService-1' ;
$array[55]['name'] = 'Prix EPC (Etape 3 Timeline construction)';$array[55]['value'] = 'projet-0-etap-16-prixEpc' ;
$array[56]['name'] = 'Budget Développement';$array[56]['value'] = 'projet-1-etap-0-budgetDeveloppement' ;
$array[57]['name'] = 'Budget Construction';$array[57]['value'] = 'projet-1-etap-0-budgetConstruction' ;
$array[58]['name'] = 'Budget Exploitation';$array[58]['value'] = 'projet-1-etap-0-budgetExploitation' ;
$array[59]['name'] = 'Stade de construction';$array[59]['value'] = 'projet-1-etap-0-stadeConstruction' ;
$array[60]['name'] = 'Etat charpente (Etape 0 Timeline Construction)';$array[60]['value'] = 'projet-0-etap-159-etatCharpente' ;
$array[61]['name'] = 'Type de toiture existante (Etape 0 Timeline Construction)';$array[61]['value'] = 'projet-0-etap-159-typeToitureExistante' ;
$array[62]['name'] = 'Type de rénovation (Etape 0 Timeline Construction)';$array[62]['value'] = 'projet-0-etap-159-typeRenovation' ;
$array[63]['name'] = 'Type de toiture à poser (Etape 0 Timeline Construction)';$array[63]['value'] = 'projet-0-etap-159-typeToiturePoser' ;
$array[64]['name'] = 'Terrassement (Etape 1 Timeline foncier)';$array[64]['value'] = 'projet-0-etap-5-terrassement' ;
$array[65]['name'] = 'Tranchée (Etape 1 Timeline foncier)';$array[65]['value'] = 'projet-0-etap-5-tranchee' ;
$array[66]['name'] = 'Bardage (Etape 1 Timeline foncier)';$array[66]['value'] = 'projet-0-etap-5-bardage' ;
$array[67]['name'] = 'Rénovation charpente (Etape 1 Timeline foncier)';$array[67]['value'] = 'projet-0-etap-5-renovationCharpente' ;
$array[68]['name'] = 'Désamiantage (Etape 1 Timeline foncier)';$array[68]['value'] = 'projet-0-etap-5-desamiantage' ;
$array[69]['name'] = 'Montant coût total (Etape 3 Timeline Raccordement)';$array[69]['value'] = 'projet-0-etap-10-montantCoutTotal' ;
$array[70]['name'] = 'Adresse (Etape 7 Timeline raccordement)';$array[70]['value'] = 'projet-0-etap-14-adresseMiseEnService' ;
$array[71]['name'] = 'Code postal (Etape 7 Timeline raccordement)';$array[71]['value'] = 'projet-0-etap-14-codePostalMiseEnService' ;
$array[72]['name'] = 'Ville (Etape 7 Timeline raccordement)';$array[72]['value'] = 'projet-0-etap-14-cityMiseEnService' ;
$array[74]['name'] = 'Commentaire';$array[74]['value'] = 'projet-1-etap-0-commentProject2-0-comment' ;
$array[73]['name'] = 'Productible (P90)';$array[73]['value'] = 'projet-1-etap-0-productibleP90' ;
$array[75]['name'] = 'Levée d’option date';$array[75]['value'] = 'projet-0-etap-5-leveeOption-1' ;
$array[76]['name'] = 'les parcelles du projet (Etape 2 Timeline Foncier)';$array[76]['value'] = 'projet-0-etap-6-parcellesProjet' ;
$array[77]['name'] = 'les propriétaires (Etape 2 Timeline Foncier)';$array[77]['value'] = 'projet-0-etap-6-proprietaires' ;
$array[78]['name'] = 'Situation foncière (Etape 2 Timeline Foncier)';$array[78]['value'] = 'projet-0-etap-6-situationFonciere' ;
$array[79]['name'] = 'Statut Mainlevée (Etape 2 Timeline Foncier)';$array[79]['value'] = 'projet-0-etap-6-statutMainlevee' ;
$array[3000]['name'] = 'Marque Module (Étape 1 Timeline Construction)';$array[3000]['value'] = 'projet-0-etap-160-moduleInformation-0-marque-moduleInformation' ;
$array[3001]['name'] = 'Puissance crête (Étape 1 Timeline Construction)';$array[3001]['value'] = 'projet-0-etap-160-moduleInformation-0-reference-moduleInformation' ;
$array[3002]['name'] = 'Nombre de modules (Étape 1 Timeline Construction)';$array[3002]['value'] = 'projet-0-etap-160-moduleInformation-0-nbr-moduleInformation' ;
$array[3003]['name'] = 'Marque Onduleur (Étape 1 Timeline Construction)';$array[3003]['value'] = 'projet-0-etap-160-onduleurInformation-0-marque-onduleurInformation' ;
$array[3004]['name'] = 'Puissance Onduleur (Étape 1 Timeline Construction)';$array[3004]['value'] = 'projet-0-etap-160-onduleurInformation-0-puissance-onduleurInformation' ;
$array[3005]['name'] = 'Nombre de Onduleurs (Étape 1 Timeline Construction)';$array[3005]['value'] = 'projet-0-etap-160-onduleurInformation-0-nbr-onduleurInformation' ;
$array[3006]['name'] = 'Responsable construction';$array[3006]['value'] = 'projet-1-etap-0-responsableUser' ;
$array[3007]['name'] = 'Installateur';$array[3007]['value'] = 'projet-1-etap-0-fournisseurProject-Installateur' ;
$array[3008]['name'] = 'Charpentier';$array[3008]['value'] = 'projet-1-etap-0-fournisseurProject-Charpentier' ;
$array[3010]['name'] = 'Mainteneur';$array[3010]['value'] = 'projet-1-etap-0-fournisseurProject-Mainteneur' ;
$array[3009]['name'] = 'Epc';$array[3009]['value'] = 'projet-1-etap-0-fournisseur' ;
// Champs projet (Détail projet) — indices 5000+
$array[5000]['name'] = 'Achat - Location';$array[5000]['value'] = 'projet-1-etap-0-achatLocation' ;
$array[5001]['name'] = 'Date de sourcing';$array[5001]['value'] = 'projet-1-etap-0-dateSourcing-1' ;
$array[5002]['name'] = 'Date de T0 non reçu';$array[5002]['value'] = 'projet-1-etap-0-dateT0NonRecu' ;
$array[5003]['name'] = 'Département';$array[5003]['value'] = 'projet-1-etap-0-departement' ;
$array[5004]['name'] = 'Entreprise';$array[5004]['value'] = 'projet-1-etap-0-entreprise' ;
$array[5005]['name'] = 'Famille du projet';$array[5005]['value'] = 'projet-1-etap-0-familleProject' ;
$array[5006]['name'] = 'Indemnité transitoire (k€/an)';$array[5006]['value'] = 'projet-1-etap-0-indemiteTransitoire' ;
$array[5007]['name'] = 'Arrêté PC non reçu';$array[5007]['value'] = 'projet-1-etap-0-isArretePcNonRecu' ;
$array[5008]['name'] = 'Promesse de vente signée';$array[5008]['value'] = 'projet-1-etap-0-isPromesseAchatSignee' ;
$array[5009]['name'] = 'Promesse de bail signée';$array[5009]['value'] = 'projet-1-etap-0-isPromesseBailSignee' ;
$array[5010]['name'] = 'Prix d’achat foncier (€) (Détail projet)';$array[5010]['value'] = 'projet-1-etap-0-prixAchatFoncier' ;
$array[5011]['name'] = 'Prix d’achat foncier (k€/ha)';$array[5011]['value'] = 'projet-1-etap-0-prixAchatFoncierKHa' ;
$array[5012]['name'] = 'Prix d’achat foncier (k€/MWc)';$array[5012]['value'] = 'projet-1-etap-0-prixAchatFoncierKMWc' ;
$array[5013]['name'] = 'Productible (P50)';$array[5013]['value'] = 'projet-1-etap-0-productible' ;
$array[5014]['name'] = 'Ranking';$array[5014]['value'] = 'projet-1-etap-0-ranking' ;
$array[5015]['name'] = 'Ratio CAPEX/Puissance';$array[5015]['value'] = 'projet-1-etap-0-ratioCapexPuissance' ;
$array[5016]['name'] = 'Rémunération exploitant agricole';$array[5016]['value'] = 'projet-1-etap-0-remunerationExploitantAgricole' ;
$array[5017]['name'] = 'Rendement EBE/CAPEX';$array[5017]['value'] = 'projet-1-etap-0-rendementEbeCapex' ;
$array[5018]['name'] = 'Rendement EBE/CAPEX PPA 70 Euros';$array[5018]['value'] = 'projet-1-etap-0-rendementEbeCapexPPA' ;
$array[5019]['name'] = 'Soulte (Détail projet)';$array[5019]['value'] = 'projet-1-etap-0-soulteVise' ;
$array[5020]['name'] = 'Sourcing';$array[5020]['value'] = 'projet-1-etap-0-sourcing' ;
$array[5021]['name'] = 'Sous-famille du projet';$array[5021]['value'] = 'projet-1-etap-0-sousFamilleProject' ;
$array[5022]['name'] = 'Surface disponible (en ha)';$array[5022]['value'] = 'projet-1-etap-0-surfaceDisponible' ;
$array[5023]['name'] = 'Surface exploitable (en ha)';$array[5023]['value'] = 'projet-1-etap-0-surfaceExploitable' ;
$array[5024]['name'] = 'Tarif Fit prévisionnel (Détail projet)';$array[5024]['value'] = 'projet-1-etap-0-tarifRevente' ;
$array[5025]['name'] = 'Tranche';$array[5025]['value'] = 'projet-1-etap-0-tranche' ;
$array[5026]['name'] = 'TRI';$array[5026]['value'] = 'projet-1-etap-0-tri' ;
$array[5027]['name'] = 'TRI PPA Ã 70 euros';$array[5027]['value'] = 'projet-1-etap-0-triPpaMin' ;
$array[5028]['name'] = 'TRI avec Prime';$array[5028]['value'] = 'projet-1-etap-0-triPrime' ;
$array[5029]['name'] = 'Typologie du projet';$array[5029]['value'] = 'projet-1-etap-0-typologieProject' ;
$array[5030]['name'] = 'Unité de mesure';$array[5030]['value'] = 'projet-1-etap-0-uniteMesure' ;
$array[5031]['name'] = 'Zonage PLU';$array[5031]['value'] = 'projet-1-etap-0-zonagePlu' ;
// Champs étapes — indices 5100+
$array[5100]['name'] = 'Nom de l’architecte (Etape 0 Timeline Urbanisme)';$array[5100]['value'] = 'projet-0-etap-0-architecte' ;
$array[5101]['name'] = 'Champ libre PC (Etape 1 Timeline Urbanisme)';$array[5101]['value'] = 'projet-0-etap-1-champLibre' ;
$array[5102]['name'] = 'Date demande de compléments PC (Etape 1 Timeline Urbanisme)';$array[5102]['value'] = 'projet-0-etap-1-dateDemandeComplement-1' ;
$array[5103]['name'] = 'Date demande de compléments DP Mixte (Etape 1 Timeline Urbanisme)';$array[5103]['value'] = 'projet-0-etap-1-dateDemandeComplementPcDpMixte-1' ;
$array[5104]['name'] = 'Date de dépôt compléments PC (Etape 1 Timeline Urbanisme)';$array[5104]['value'] = 'projet-0-etap-1-dateDepotComplement-1' ;
$array[5105]['name'] = 'Date de dépôt compléments DP Mixte (Etape 1 Timeline Urbanisme)';$array[5105]['value'] = 'projet-0-etap-1-dateDepotComplementPcDpMixte-1' ;
$array[5106]['name'] = 'Date de dépôt PC (Etape 1 Timeline Urbanisme)';$array[5106]['value'] = 'projet-0-etap-1-dateDepotPc-1' ;
$array[5107]['name'] = 'Date de dépôt DP Mixte (Etape 1 Timeline Urbanisme)';$array[5107]['value'] = 'projet-0-etap-1-dateDepotPcDpMixte-1' ;
$array[5108]['name'] = 'Délai d’instruction PC (Etape 1 Timeline Urbanisme)';$array[5108]['value'] = 'projet-0-etap-1-delaiInstruction' ;
$array[5109]['name'] = 'Délai d’instruction DP Mixte (Etape 1 Timeline Urbanisme)';$array[5109]['value'] = 'projet-0-etap-1-delaiInstructionPcDpMixte' ;
$array[5110]['name'] = 'Prorogation PC (Etape 1 Timeline Urbanisme)';$array[5110]['value'] = 'projet-0-etap-1-isDateArretePcProrogation' ;
$array[5111]['name'] = 'Prorogation DP Mixte (Etape 1 Timeline Urbanisme)';$array[5111]['value'] = 'projet-0-etap-1-isDateArretePcProrogationPcDpMixte' ;
$array[5112]['name'] = 'Pas de compléments PC (Etape 1 Timeline Urbanisme)';$array[5112]['value'] = 'projet-0-etap-1-isNotDateDemandeComplement' ;
$array[5113]['name'] = 'Référence DP (Etape 1 Timeline Urbanisme)';$array[5113]['value'] = 'projet-0-etap-1-referenceDp' ;
$array[5114]['name'] = 'Référence DP Mixte (Etape 1 Timeline Urbanisme)';$array[5114]['value'] = 'projet-0-etap-1-referencePcDpMixte' ;
$array[5115]['name'] = 'Date PC purgé (Etape 2 Timeline Urbanisme)';$array[5115]['value'] = 'projet-0-etap-2-datePcDpPurge-1' ;
$array[5116]['name'] = 'Date de signature de la DAACT (Etape 4 Timeline Urbanisme)';$array[5116]['value'] = 'projet-0-etap-4-dateSignatureDaact-1' ;
$array[5117]['name'] = 'Date de fin d’exclusivité LOI (Etape 1 Timeline Foncier)';$array[5117]['value'] = 'projet-0-etap-5-dateFinExclusiviteLoi-1' ;
$array[5118]['name'] = 'Date de signature LOI (Etape 1 Timeline Foncier)';$array[5118]['value'] = 'projet-0-etap-5-dateSignature-1' ;
$array[5119]['name'] = 'Honoraire apporteur (Etape 1 Timeline Foncier)';$array[5119]['value'] = 'projet-0-etap-5-honoraireApporteur' ;
$array[5120]['name'] = 'Indemnité transitoire (Etape 1 Timeline Foncier)';$array[5120]['value'] = 'projet-0-etap-5-indemniteTransitoire' ;
$array[5121]['name'] = 'Contrepartie en nature (Etape 1 Timeline Foncier)';$array[5121]['value'] = 'projet-0-etap-5-loyerEnNature' ;
$array[5122]['name'] = 'Prix d’achat foncier (Etape 1 Timeline Foncier)';$array[5122]['value'] = 'projet-0-etap-5-prixAchatFoncier' ;
$array[5123]['name'] = 'Puissance signée (Etape 1 Timeline Foncier)';$array[5123]['value'] = 'projet-0-etap-5-puissanceSignee' ;
$array[5124]['name'] = 'Type de bail (Etape 1 Timeline Foncier)';$array[5124]['value'] = 'projet-0-etap-5-typeBail' ;
$array[5125]['name'] = 'Unité du prix d’achat (Etape 1 Timeline Foncier)';$array[5125]['value'] = 'projet-0-etap-5-unitePrixAchat' ;
$array[5126]['name'] = 'Date de fin de bail (Etape 3 Timeline Foncier)';$array[5126]['value'] = 'projet-0-etap-7-dateFinBail-1' ;
$array[5127]['name'] = 'Date de signature du bail (Etape 3 Timeline Foncier)';$array[5127]['value'] = 'projet-0-etap-7-dateSignatureBail-1' ;
$array[5128]['name'] = 'Nom du bailleur (Etape 3 Timeline Foncier)';$array[5128]['value'] = 'projet-0-etap-7-nomBailleur' ;
$array[5129]['name'] = 'Adresse de l’ETS (Etape 1 Timeline Raccordement)';$array[5129]['value'] = 'projet-0-etap-8-adresseEtablissement' ;
$array[5130]['name'] = 'Ville de l’ETS (Etape 1 Timeline Raccordement)';$array[5130]['value'] = 'projet-0-etap-8-cityEtablissement' ;
$array[5131]['name'] = 'Code postal de l’ETS (Etape 1 Timeline Raccordement)';$array[5131]['value'] = 'projet-0-etap-8-codePostalEtablissement' ;
$array[5132]['name'] = 'Latitude de l’ETS (Etape 1 Timeline Raccordement)';$array[5132]['value'] = 'projet-0-etap-8-latEtablissement' ;
$array[5133]['name'] = 'Longitude de l’ETS (Etape 1 Timeline Raccordement)';$array[5133]['value'] = 'projet-0-etap-8-longiEtablissement' ;
$array[5134]['name'] = 'Profil du créateur (Etape 1 Timeline Raccordement)';$array[5134]['value'] = 'projet-0-etap-8-profileCreateur' ;
$array[5135]['name'] = 'SPV confirmation ou changement (Etape 1 Timeline Raccordement)';$array[5135]['value'] = 'projet-0-etap-8-spvEtablissement' ;
$array[5136]['name'] = 'Date de consignation (Etape 2 Timeline Raccordement)';$array[5136]['value'] = 'projet-0-etap-9-dateConsignation-1' ;
$array[5137]['name'] = 'Date maximale d’achèvement des travaux (Etape 2 Timeline Raccordement)';$array[5137]['value'] = 'projet-0-etap-9-dateMaximaleAchevement-1' ;
$array[5138]['name'] = 'Date T0 (Etape 2 Timeline Raccordement)';$array[5138]['value'] = 'projet-0-etap-9-dateT0-1' ;
$array[5139]['name'] = 'Tarif Fit prévisionnel (Etape 2 Timeline Raccordement)';$array[5139]['value'] = 'projet-0-etap-9-tarifFit' ;
$array[5140]['name'] = 'Date de MES prévisionnelle (Etape 7 Timeline Raccordement)';$array[5140]['value'] = 'projet-0-etap-14-dateMesPrevisionnelle-1' ;
$array[5141]['name'] = 'Procédure d’accès (Etape 7 Timeline Raccordement)';$array[5141]['value'] = 'projet-0-etap-14-procedureAcces' ;
$array[5142]['name'] = 'Date fin des fondations (Timeline Construction)';$array[5142]['value'] = 'projet-0-etap-18-dateFinDesFondation-1' ;
$array[5143]['name'] = 'Date fin du bâtiment (Timeline Construction)';$array[5143]['value'] = 'projet-0-etap-19-dateFinBatiment-1' ;
$array[5144]['name'] = 'Date pose des PV (Timeline Construction)';$array[5144]['value'] = 'projet-0-etap-19-datePosePv-1' ;
$array[5145]['name'] = 'Date de visite terrain (Compte rendu)';$array[5145]['value'] = 'projet-0-etap-23-visiteTerrainV2-0-dateVisiteTerrain' ;
$array[5146]['name'] = 'Distance PDL (Timeline Raccordement)';$array[5146]['value'] = 'projet-0-etap-80-distancePdl' ;
$array[5147]['name'] = 'Nature du raccordement (Timeline Raccordement)';$array[5147]['value'] = 'projet-0-etap-80-natureRaccordement' ;
$array[5148]['name'] = 'Date d’installation du PDL (Timeline Raccordement)';$array[5148]['value'] = 'projet-0-etap-121-dateInstallationPDL-1' ;
$array[5149]['name'] = 'Date de mise sous tension ENEDIS (Timeline Raccordement)';$array[5149]['value'] = 'projet-0-etap-121-dateMiseSousTensionEnedis-1' ;
$array[5150]['name'] = 'Date prévisionnelle d’installation du PDL (Timeline Raccordement)';$array[5150]['value'] = 'projet-0-etap-121-datePrevisionnelleInstallationPDL-1' ;
$array[5151]['name'] = 'Bi-pente asymétrique (Étape 1 Timeline Construction)';$array[5151]['value'] = 'projet-0-etap-160-biPenteAsymetrique' ;
$array[5152]['name'] = 'Bi-pente symétrique (Étape 1 Timeline Construction)';$array[5152]['value'] = 'projet-0-etap-160-biPenteSymetrique' ;
$array[5153]['name'] = 'Date réalisation de la plateforme (Etape 4-1 Timeline construction)';$array[5153]['value'] = 'projet-0-etap-171-dateRealisationPlateforme-1' ;
$array[5154]['name'] = 'Date d’intervention du géomètre (Timeline Foncier)';$array[5154]['value'] = 'projet-0-etap-601-dateIntervention-1' ;
$array[5155]['name'] = 'Date de lancement géomètre (Timeline Foncier)';$array[5155]['value'] = 'projet-0-etap-601-dateLancement-1' ;
$array[5156]['name'] = 'Date d’envoi des procurations (Timeline Foncier)';$array[5156]['value'] = 'projet-0-etap-602-dateEnvoiPocuration-1' ;
$array[5157]['name'] = 'Date de lancement notaire (Timeline Foncier)';$array[5157]['value'] = 'projet-0-etap-602-dateLancement-1' ;
$array[5158]['name'] = 'Date de signature des procurations côté bailleur (Timeline Foncier)';$array[5158]['value'] = 'projet-0-etap-602-dateSignatureProcuration-1' ;
return $array ;
}
public function getNameOfArrayChompsExport($value){
$array = $this->getChampsExport();
$name = '';
foreach ($array['category'] as $item2){
foreach ($item2['detail'] as $item){
$tab = explode('-',$value);
if($tab[1] == ParametrageXlsProject::type_row_etap){
if($value == $item['value']){
$name = $item['champs'];
}
}else{
if(isset($tab[3]) && isset($tab[4]) && isset($tab[5]) && $tab[3] == 0 && $tab[4] == 0 && $tab[5] == 0){
if($value == $item['value']){
$name = $item['champs'];
}
}else{
if(str_contains($value, $item['value'])){
if($name != ''){
$name .= ','.$item['champs'];
}else{
$name = $item['champs'];
}
}
}
}
}
}
return $name;
}
public function getChampsExport(){
$array = [];
$array['category'][0]['num'] = 0;
$array['category'][0]['name'] = 'Détail projet';
$array['category'][0]['detail'][0]['champs'] = 'Nom du projet';$array['category'][0]['detail'][0]['name'] = 'Nom du projet';$array['category'][0]['detail'][0]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-name' ;
$array['category'][0]['detail'][1]['champs'] = 'Famille du projet';$array['category'][0]['detail'][1]['name'] = 'Famille du projet';$array['category'][0]['detail'][1]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-familleProject' ;
$array['category'][0]['detail'][2]['champs'] = 'Typologie du projet';$array['category'][0]['detail'][2]['name'] = 'Typologie du projet';$array['category'][0]['detail'][2]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-typologieProject' ;
$array['category'][0]['detail'][3]['champs'] = 'Adresse';$array['category'][0]['detail'][3]['name'] = 'Adresse';$array['category'][0]['detail'][3]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-adresse' ;
$array['category'][0]['detail'][4]['champs'] = 'Code postal';$array['category'][0]['detail'][4]['name'] = 'Code postal';$array['category'][0]['detail'][4]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-codePostal' ;
$array['category'][0]['detail'][5]['champs'] = 'Ville';$array['category'][0]['detail'][5]['name'] = 'Ville';$array['category'][0]['detail'][5]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-city' ;
$array['category'][0]['detail'][6]['champs'] = 'N° de parcelle';$array['category'][0]['detail'][6]['name'] = 'N° de parcelle';$array['category'][0]['detail'][6]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-numParcelle' ;
$array['category'][0]['detail'][7]['champs'] = 'Latitude';$array['category'][0]['detail'][7]['name'] = 'Latitude';$array['category'][0]['detail'][7]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-longi' ;
$array['category'][0]['detail'][8]['champs'] = 'Longitude';$array['category'][0]['detail'][8]['name'] = 'Longitude';$array['category'][0]['detail'][8]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-lat' ;
$array['category'][0]['detail'][9]['champs'] = 'Capacité installée (KWc)';$array['category'][0]['detail'][9]['name'] = 'Capacité installée (KWc)';$array['category'][0]['detail'][9]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-capacite' ;
$array['category'][0]['detail'][11109]['champs'] = 'Capacité injectée (kVA)';$array['category'][0]['detail'][11109]['name'] = 'Capacité injectée (kVA)';$array['category'][0]['detail'][11109]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-puissance' ;
$array['category'][0]['detail'][10]['champs'] = 'Productible (p50)';$array['category'][0]['detail'][10]['name'] = 'Productible (P50)';$array['category'][0]['detail'][10]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-productible' ;
$array['category'][0]['detail'][11110]['champs'] = 'Productible (p90)';$array['category'][0]['detail'][11110]['name'] = 'Productible (P90)';$array['category'][0]['detail'][11110]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-productibleP90' ;
$array['category'][0]['detail'][11]['champs'] = 'Date de T0';$array['category'][0]['detail'][11]['name'] = 'Date de T0';$array['category'][0]['detail'][11]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-dateT0Date-1' ;
$array['category'][0]['detail'][12]['champs'] = 'Date arrêté PC';$array['category'][0]['detail'][12]['name'] = 'Date arrêté PC';$array['category'][0]['detail'][12]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-dateArretePc-1' ;
$array['category'][0]['detail'][13]['champs'] = 'Loyer';$array['category'][0]['detail'][13]['name'] = 'Loyer';$array['category'][0]['detail'][13]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-loyerVise' ;
$array['category'][0]['detail'][14]['champs'] = 'Soulte';$array['category'][0]['detail'][14]['name'] = 'Soulte';$array['category'][0]['detail'][14]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-soulteVise' ;
$array['category'][0]['detail'][15]['champs'] = 'Type de batîment';$array['category'][0]['detail'][15]['name'] = 'Type de batîment';$array['category'][0]['detail'][15]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-typeBatimentProject' ;
$array['category'][0]['detail'][16]['champs'] = 'SPV';$array['category'][0]['detail'][16]['name'] = 'SPV';$array['category'][0]['detail'][16]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-spv' ;
$array['category'][0]['detail'][17]['champs'] = 'Étude de productible';$array['category'][0]['detail'][17]['name'] = 'Étude de productible';$array['category'][0]['detail'][17]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-fileEtudeProductible-2' ;
$array['category'][0]['detail'][18]['champs'] = 'Promesse de bail';$array['category'][0]['detail'][18]['name'] = 'Promesse de bail';$array['category'][0]['detail'][18]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-filePromessebail-2' ;
$array['category'][0]['detail'][19]['champs'] = 'Visite Technique';$array['category'][0]['detail'][19]['name'] = 'Visite Technique ';$array['category'][0]['detail'][19]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-fileDocCompementaire-2' ;
$array['category'][0]['detail'][19001]['champs'] = 'Code projet';$array['category'][0]['detail'][19001]['name'] = 'Code projet';$array['category'][0]['detail'][19001]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-codeProject' ;
$array['category'][0]['detail'][154]['champs'] = 'Statut administratif';$array['category'][0]['detail'][154]['name'] = 'Statut administratif';$array['category'][0]['detail'][154]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-1' ;
$array['category'][0]['detail'][155]['champs'] = 'Statut tracker';$array['category'][0]['detail'][155]['name'] = 'Statut tracker';$array['category'][0]['detail'][155]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-2' ;
$array['category'][0]['detail'][15500]['champs'] = 'Statut Construction';$array['category'][0]['detail'][15500]['name'] = 'Statut Construction';$array['category'][0]['detail'][15500]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-11' ;
$array['category'][0]['detail'][156]['champs'] = 'Avancement Urbanisme';$array['category'][0]['detail'][156]['name'] = 'Avancement Urbanisme';$array['category'][0]['detail'][156]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-3' ;
$array['category'][0]['detail'][157]['champs'] = 'Avancement Foncier';$array['category'][0]['detail'][157]['name'] = 'Avancement Foncier';$array['category'][0]['detail'][157]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-4' ;
$array['category'][0]['detail'][158]['champs'] = 'Avancement Raccordement';$array['category'][0]['detail'][158]['name'] = 'Avancement Raccordement';$array['category'][0]['detail'][158]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-5' ;
$array['category'][0]['detail'][159]['champs'] = 'Avancement Construction';$array['category'][0]['detail'][159]['name'] = 'Avancement Construction';$array['category'][0]['detail'][159]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-6' ;
$array['category'][0]['detail'][15900]['champs'] = 'Avancement Valorisation';$array['category'][0]['detail'][15900]['name'] = 'Avancement Valorisation';$array['category'][0]['detail'][15900]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-13' ;
$array['category'][0]['detail'][160]['champs'] = 'Stade de construction';$array['category'][0]['detail'][160]['name'] = 'Stade de construction';$array['category'][0]['detail'][160]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-stadeConstruction' ;
$array['category'][0]['detail'][161]['champs'] = 'Développeur';$array['category'][0]['detail'][161]['name'] = 'Développeur';$array['category'][0]['detail'][161]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-developpeur' ;
// $array['category'][0]['detail'][162]['champs'] = 'Fournisseur';$array['category'][0]['detail'][162]['name'] = 'Fournisseur';$array['category'][0]['detail'][162]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-fournisseur' ;
$array['category'][0]['detail'][163]['champs'] = 'Responsable construction';$array['category'][0]['detail'][163]['name'] = 'Responsable construction';$array['category'][0]['detail'][163]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-responsableUser' ;
$array['category'][0]['detail'][170]['champs'] = 'Responsable développement';$array['category'][0]['detail'][170]['name'] = 'Responsable développement';$array['category'][0]['detail'][170]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-responsableDeveloppement' ;
$array['category'][0]['detail'][168]['champs'] = 'Constructeur';$array['category'][0]['detail'][168]['name'] = 'Constructeur';$array['category'][0]['detail'][168]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-constructeurUser' ;
$array['category'][0]['detail'][169]['champs'] = 'Commentaires projet';$array['category'][0]['detail'][169]['name'] = 'Commentaires projet';$array['category'][0]['detail'][169]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-commentProject2' ;
$array['category'][0]['detail'][211]['champs'] = 'Schéma contstruction';$array['category'][0]['detail'][211]['name'] = 'Schéma contstruction (Detail projet)';$array['category'][0]['detail'][211]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-schemaConstruction' ;
$array['category'][0]['detail'][212]['champs'] = 'EPC';$array['category'][0]['detail'][212]['name'] = 'EPC';$array['category'][0]['detail'][212]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-fournisseur' ;
$array['category'][0]['detail'][213]['champs'] = 'Instalateur';$array['category'][0]['detail'][213]['name'] = 'Instalateur';$array['category'][0]['detail'][213]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-fournisseurProject-0-fournisseur-instalateur' ;
$array['category'][0]['detail'][214]['champs'] = 'Charpentier';$array['category'][0]['detail'][214]['name'] = 'Charpentier';$array['category'][0]['detail'][214]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-fournisseurProject-0-fournisseur-charpentier' ;
$array['category'][0]['detail'][229]['champs'] = 'Sous Famille du projet';$array['category'][0]['detail'][229]['name'] = 'Sous Famille du projet';$array['category'][0]['detail'][229]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-sousFamilleProject' ;
$array['category'][0]['detail'][230]['champs'] = 'Surface disponible';$array['category'][0]['detail'][230]['name'] = 'Surface disponible';$array['category'][0]['detail'][230]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-surfaceDisponible' ;
$array['category'][0]['detail'][231]['champs'] = 'Zonage plu';$array['category'][0]['detail'][231]['name'] = 'Zonage plu';$array['category'][0]['detail'][231]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-zonagePlu' ;
$array['category'][0]['detail'][232]['champs'] = 'Surface exploitable';$array['category'][0]['detail'][232]['name'] = 'Surface exploitable';$array['category'][0]['detail'][232]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-surfaceExploitable' ;
// $array['category'][0]['detail'][233]['champs'] = 'prix achat Foncier';$array['category'][0]['detail'][233]['name'] = 'prix achat Foncier';$array['category'][0]['detail'][233]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-prixAchatFoncier' ;
// $array['category'][0]['detail'][234]['champs'] = 'unité achat Foncier';$array['category'][0]['detail'][234]['name'] = 'unité achat Foncier';$array['category'][0]['detail'][234]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-uniteAchatFoncier' ;
$array['category'][0]['detail'][235]['champs'] = 'Indemnité transitoire (k€/an)';$array['category'][0]['detail'][235]['name'] = 'Indemnité transitoire (k€/an)';$array['category'][0]['detail'][235]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-indemiteTransitoire' ;
$array['category'][0]['detail'][236]['champs'] = 'Rémunération exploitant agricole';$array['category'][0]['detail'][236]['name'] = 'Rémunération exploitant agricole';$array['category'][0]['detail'][236]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-remunerationExploitantAgricole' ;
$array['category'][0]['detail'][237]['champs'] = 'Sourcing';$array['category'][0]['detail'][237]['name'] = 'Sourcing';$array['category'][0]['detail'][237]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-sourcing' ;
$array['category'][0]['detail'][238]['champs'] = 'Date de sourcing';$array['category'][0]['detail'][238]['name'] = 'Date de sourcing';$array['category'][0]['detail'][238]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-dateSourcing-1' ;
$array['category'][0]['detail'][239]['champs'] = 'Durée d\'exploitation';$array['category'][0]['detail'][239]['name'] = 'Durée d\'exploitation';$array['category'][0]['detail'][239]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-dureeExploitation' ;
$array['category'][0]['detail'][240]['champs'] = 'Tri';$array['category'][0]['detail'][240]['name'] = 'Tri';$array['category'][0]['detail'][240]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-tri' ;
$array['category'][0]['detail'][241]['champs'] = 'Tri avec Prime';$array['category'][0]['detail'][241]['name'] = 'Tri avec Prime';$array['category'][0]['detail'][241]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-triPrime' ;
$array['category'][0]['detail'][242]['champs'] = 'TRI CRE min';$array['category'][0]['detail'][242]['name'] = 'TRI CRE min';$array['category'][0]['detail'][242]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-triCreMin' ;
$array['category'][0]['detail'][243]['champs'] = 'Tri avec Prime';$array['category'][0]['detail'][243]['name'] = 'Tri avec Prime';$array['category'][0]['detail'][243]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-triCreMin' ;
$array['category'][0]['detail'][244]['champs'] = 'TRI PPA Ã 70 euros';$array['category'][0]['detail'][244]['name'] = 'TRI PPA Ã 70 euros';$array['category'][0]['detail'][244]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-triPpaMin' ;
$array['category'][0]['detail'][245]['champs'] = 'Rendement EBE/CAPEX.';$array['category'][0]['detail'][245]['name'] = 'Rendement EBE/CAPEX.';$array['category'][0]['detail'][245]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-rendementEbeCapex' ;
$array['category'][0]['detail'][246]['champs'] = 'Ratio CAPEX/PUISSANCE';$array['category'][0]['detail'][246]['name'] = 'Ratio CAPEX/PUISSANCE';$array['category'][0]['detail'][246]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-ratioCapexPuissance' ;
$array['category'][0]['detail'][247]['champs'] = 'Rendement EBE/CAPEX PPA 70 Euros';$array['category'][0]['detail'][247]['name'] = 'Rendement EBE/CAPEX PPA 70 Euros';$array['category'][0]['detail'][247]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-rendementEbeCapexPPA' ;
$array['category'][0]['detail'][248]['champs'] = 'Ranking';$array['category'][0]['detail'][248]['name'] = 'Ranking';$array['category'][0]['detail'][248]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-ranking' ;
$array['category'][0]['detail'][249]['champs'] = 'Date RTB tarifié';$array['category'][0]['detail'][249]['name'] = 'Date RTB tarifié';$array['category'][0]['detail'][249]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-dateRTBtarifie-1' ;
$array['category'][0]['detail'][250]['champs'] = 'Prix d’achat foncier (k€/MWc)';$array['category'][0]['detail'][250]['name'] = 'Prix d’achat foncier (k€/MWc)';$array['category'][0]['detail'][250]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-prixAchatFoncierKMWc' ;
$array['category'][0]['detail'][251]['champs'] = 'Prix d’achat foncier (k€/ha)';$array['category'][0]['detail'][251]['name'] = 'Prix d’achat foncier (k€/ha)';$array['category'][0]['detail'][251]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-prixAchatFoncierKHa' ;
$array['category'][0]['detail'][189]['champs'] = 'Date de création';$array['category'][0]['detail'][189]['name'] = 'Date de création';$array['category'][0]['detail'][189]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-createdAt-1' ;
$array['category'][0]['detail'][208]['champs'] = 'Statut Urbanisme';$array['category'][0]['detail'][208]['name'] = 'Statut Urbanisme';$array['category'][0]['detail'][208]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-7' ;
$array['category'][0]['detail'][209]['champs'] = 'Statut Foncier';$array['category'][0]['detail'][209]['name'] = 'Statut Foncier';$array['category'][0]['detail'][209]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-8' ;
$array['category'][0]['detail'][2090]['champs'] = 'Date Objectif dépôt PC/DP';$array['category'][0]['detail'][2090]['name'] = 'Date Objectif dépôt PC/DP';$array['category'][0]['detail'][2090]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-dateDepotPc-1' ;
$array['category'][0]['detail'][2091]['champs'] = 'Date Objectif PC/DP obtenu';$array['category'][0]['detail'][2091]['name'] = 'Date Objectif PC/DP obtenu';$array['category'][0]['detail'][2091]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-dateObtentionPc-1' ;
$array['category'][0]['detail'][2092]['champs'] = 'Département';$array['category'][0]['detail'][2092]['name'] = 'Département';$array['category'][0]['detail'][2092]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-departement' ;
$array['category'][0]['detail'][2093]['champs'] = 'Achat - Location';$array['category'][0]['detail'][2093]['name'] = 'Achat - Location';$array['category'][0]['detail'][2093]['value'] = 'projet-'.ParametrageXlsProject::type_row_project.'-etap-0-achatLocation' ;
$array['category'][1]['num'] = 1;
$array['category'][1]['name'] = 'Urbanisme';
$array['category'][1]['detail'][20]['champs'] = 'Dossier PC/DP';$array['category'][1]['detail'][20]['name'] = 'Dossier PC/DP (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][20]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-fileDossierPcDpMultiple-2' ;
$array['category'][1]['detail'][21]['champs'] = 'Arrêté PC/DP';$array['category'][1]['detail'][21]['name'] = 'Arrêté PC/DP (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][21]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-fileArretePcDpMultiple-2' ;
$array['category'][1]['detail'][22]['champs'] = 'Date arrété';$array['category'][1]['detail'][22]['name'] = 'Date arrété (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][22]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-dateArretePcDp-1' ;
$array['category'][1]['detail'][23]['champs'] = 'Référence PC';$array['category'][1]['detail'][23]['name'] = 'Référence PC (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][23]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-referencePc' ;
$array['category'][1]['detail'][24]['champs'] = 'Référence DP';$array['category'][1]['detail'][24]['name'] = 'Référence DP (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][24]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-referenceDp' ;
$array['category'][1]['detail'][24001]['champs'] = 'Récépissé dépôt PC/DP';$array['category'][1]['detail'][24001]['name'] = 'Récépissé dépôt PC/DP (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][24001]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-fileRecepisseDepotPcMultiple-2' ;
$array['category'][1]['detail'][24002]['champs'] = 'Demande compléments PC/DP';$array['category'][1]['detail'][24002]['name'] = 'Demande compléments PC/DP (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][24002]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-fileDemandeComplementPcMultiple-2' ;
$array['category'][1]['detail'][24003]['champs'] = 'Récépissé compléments PC/DP';$array['category'][1]['detail'][24003]['name'] = 'Demande compléments PC/DP (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][24003]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-fileRecepisseComplementPcMultiple-2' ;
$array['category'][1]['detail'][25]['champs'] = 'PV passage huissier';$array['category'][1]['detail'][25]['name'] = 'PV passage huissier (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][25]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-filePVPassageHuissierMultiple-2' ;
$array['category'][1]['detail'][26]['champs'] = 'Certificat de non-recours';$array['category'][1]['detail'][26]['name'] = 'Certificat de non-recours (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][26]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-fileCertificatNonRecoursMultiple-2' ;
$array['category'][1]['detail'][27]['champs'] = 'Certificat de non-retrait';$array['category'][1]['detail'][27]['name'] = 'Certificat de non-retrait (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][27]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-fileCertificatNonRetraitMultiple-2' ;
$array['category'][1]['detail'][28]['champs'] = 'Certificat de non-opposition';$array['category'][1]['detail'][28]['name'] = 'Certificat de non-opposition (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][28]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-fileCertificatNonOppositionEtap1Multiple-2' ;
$array['category'][1]['detail'][28001]['champs'] = 'Demande d’ANR Mairie';$array['category'][1]['detail'][28001]['name'] = 'Demande d’ANR Mairie (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][28001]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-fileDemandeAnrMarieMultiple-2' ;
$array['category'][1]['detail'][28002]['champs'] = 'Demande d’ANR TA';$array['category'][1]['detail'][28002]['name'] = 'Demande d’ANR TA (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][28002]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-fileDemandeAnrTaMultiple-2' ;
$array['category'][1]['detail'][28003]['champs'] = 'Attestation sur l’honneur ANR Mairie / TA';$array['category'][1]['detail'][28003]['name'] = 'Attestation sur l’honneur ANR Mairie / TA (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][28003]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-fileAttestationHonneurAnrMairieTaMultiple-2' ;
$array['category'][1]['detail'][29]['champs'] = 'Date 1er passage huissier';$array['category'][1]['detail'][29]['name'] = 'Date 1er passage huissier (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][29]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-date1PassageHuissier-1' ;
$array['category'][1]['detail'][30]['champs'] = 'Date 2ème passage huissier';$array['category'][1]['detail'][30]['name'] = 'Date 2ème passage huissier (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][30]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-date2PassageHuissier-1' ;
$array['category'][1]['detail'][31]['champs'] = 'Date 3ème passage huissier';$array['category'][1]['detail'][31]['name'] = 'Date 3ème passage huissier (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][31]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-date3PassageHuissier-1' ;
$array['category'][1]['detail'][32]['champs'] = 'DOC / DROC';$array['category'][1]['detail'][32]['name'] = 'DOC / DROC (Etape 3 Timeline Urbanisme)';$array['category'][1]['detail'][32]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-3-fileDocDrocMultiple-2' ;
$array['category'][1]['detail'][33]['champs'] = 'Date de dépôt de la DOC / DROC';$array['category'][1]['detail'][33]['name'] = 'Date de dépôt de la DOC / DROC (Etape 3 Timeline Urbanisme)';$array['category'][1]['detail'][33]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-3-dateDocDroc-1' ;
$array['category'][1]['detail'][34]['champs'] = 'DAACT';$array['category'][1]['detail'][34]['name'] = 'DAACT (Etape 4 Timeline Urbanisme)';$array['category'][1]['detail'][34]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-4-fileDaactMultiple-2' ;
$array['category'][1]['detail'][35]['champs'] = 'Date de dépôt de la DAACT';$array['category'][1]['detail'][35]['name'] = 'Date de dépôt de la DAACT (Etape 4 Timeline Urbanisme)';$array['category'][1]['detail'][35]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-4-dateDaact-1' ;
$array['category'][1]['detail'][36]['champs'] = 'Date de signature de la DAACT';$array['category'][1]['detail'][36]['name'] = 'Date de signature de la DAACT (Etape 4 Timeline Urbanisme)';$array['category'][1]['detail'][36]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-4-dateSignatureDaact-1' ;
$array['category'][1]['detail'][10001]['champs'] = 'Infos pour archi (bardage, aménagement intérieur, solution EP, borne incendie…)';$array['category'][1]['detail'][10001]['name'] = 'Infos pour archi (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10001]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileInfoArchiMultiple-2' ;
$array['category'][1]['detail'][10002]['champs'] = 'MSA Attestation';$array['category'][1]['detail'][10002]['name'] = 'MSA Attestation (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10002]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileMsaAttestationMultiple-2' ;
$array['category'][1]['detail'][10003]['champs'] = 'MSA Relevé d’exploitation';$array['category'][1]['detail'][10003]['name'] = 'MSA Relevé d’exploitation (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10003]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileMsaReleveExploitationMultiple-2' ;
$array['category'][1]['detail'][10004]['champs'] = 'Fiche de besoins agricoles';$array['category'][1]['detail'][10004]['name'] = 'Fiche de besoins agricoles (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10004]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileFicheBesoinAgricoleMultiple-2' ;
$array['category'][1]['detail'][10005]['champs'] = 'Lettre de motivation';$array['category'][1]['detail'][10005]['name'] = 'Lettre de motivation (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10005]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileLettreMotivationMultiple-2' ;
$array['category'][1]['detail'][10006]['champs'] = 'ICPE (attestation non-soumission ou preuve de dépôt déclaration)';$array['category'][1]['detail'][10006]['name'] = 'ICPE (attestation non-soumission ou preuve de dépôt déclaration) (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10006]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileICPEMultiple-2' ;
$array['category'][1]['detail'][10007]['champs'] = 'Règlement d’urbanisme » (PLU / PLUi)';$array['category'][1]['detail'][10007]['name'] = 'Règlement d’urbanisme » (PLU / PLUi) (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10007]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileReglementUrbanismeMultiple-2' ;
$array['category'][1]['detail'][10008]['champs'] = 'Autre (CDPENAF, Natura 2000…)';$array['category'][1]['detail'][10008]['name'] = 'Autre (CDPENAF, Natura 2000…) (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10008]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-fileAutreEtap0Multiple-2' ;
$array['category'][1]['detail'][10009]['champs'] = 'Nom de l’architecte ';$array['category'][1]['detail'][10009]['name'] = 'Nom de l’architecte (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10009]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-architecte' ;
$array['category'][1]['detail'][10010]['champs'] = 'Commentaires';$array['category'][1]['detail'][10010]['name'] = 'Commentaires (Etape 0 Timeline urbanisme)';$array['category'][1]['detail'][10010]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-0-commentaireEtap0' ;
$array['category'][1]['detail'][10011]['champs'] = 'Dossier PCM';$array['category'][1]['detail'][10011]['name'] = 'Dossier PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10011]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-2-fileDossierPcmpMultiple-1' ;
$array['category'][1]['detail'][10012]['champs'] = 'Récépissé dépôt PCM';$array['category'][1]['detail'][10012]['name'] = 'Récépissé dépôt PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10012]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-2-fileRecepisseDepotPcmMultiple-1' ;
$array['category'][1]['detail'][10013]['champs'] = 'Demande compléments PCM';$array['category'][1]['detail'][10013]['name'] = 'Demande compléments PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10013]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-2-fileDemandeComplementPcmMultiple-1' ;
$array['category'][1]['detail'][10014]['champs'] = 'Récépissé compléments PCM';$array['category'][1]['detail'][10014]['name'] = 'Récépissé compléments PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10014]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-2-fileRecepisseComplementPcmMultiple-1' ;
$array['category'][1]['detail'][10015]['champs'] = 'Arrêté PCM';$array['category'][1]['detail'][10015]['name'] = 'Arrêté PCM (Permis de construire modificatif) (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10015]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-2-fileArretePcmMultiple-1' ;
$array['category'][1]['detail'][10016]['champs'] = 'Autre (prolongation délai d’instruction) PCM';$array['category'][1]['detail'][10016]['name'] = 'Autre (prolongation délai d’instruction) PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10016]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-2-fileAutreDocPcmMultiple-1' ;
$array['category'][1]['detail'][10017]['champs'] = 'Date arrété PCM';$array['category'][1]['detail'][10017]['name'] = 'Date arrété PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10017]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-1-dateArretePcm' ;
$array['category'][1]['detail'][10018]['champs'] = 'Date demande de compléments PCM';$array['category'][1]['detail'][10018]['name'] = 'Date demande de compléments PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10018]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-1-dateDemandeComplement' ;
$array['category'][1]['detail'][10019]['champs'] = 'Délai d’instruction (mois) PCM';$array['category'][1]['detail'][10019]['name'] = 'Délai d’instruction (mois) PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10019]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-0-delaiInstruction' ;
$array['category'][1]['detail'][10020]['champs'] = 'Date de dépôt compléments PCM';$array['category'][1]['detail'][10020]['name'] = 'Date de dépôt compléments PCM (Etape 1 Timeline Urbanisme)';$array['category'][1]['detail'][10020]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-1-etap1Pcm-1-dateDepotComplement' ;
$array['category'][1]['detail'][10021]['champs'] = 'PV passage huissier PCM';$array['category'][1]['detail'][10021]['name'] = 'PV passage huissier PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10021]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-2-filePVPassageHuissierPcmMultiple-1' ;
$array['category'][1]['detail'][10022]['champs'] = 'Certificat de non-recours PCM';$array['category'][1]['detail'][10022]['name'] = 'Certificat de non-recours PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10022]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-2-fileCertificatNonRecoursPcmMultiple-1' ;
$array['category'][1]['detail'][10023]['champs'] = 'Certificat de non-retrait PCM';$array['category'][1]['detail'][10023]['name'] = 'Certificat de non-retrait PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10023]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-2-fileCertificatNonRetraitPcmMultiple-1' ;
$array['category'][1]['detail'][10024]['champs'] = 'Demande d’ANR Mairie PCM';$array['category'][1]['detail'][10024]['name'] = 'Demande d’ANR Mairie PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10024]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-2-fileDemandeAnrMariePcmMultiple-1' ;
$array['category'][1]['detail'][10025]['champs'] = 'Demande d’ANR TA PCM';$array['category'][1]['detail'][10025]['name'] = 'Demande d’ANR TA PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10025]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-2-fileDemandeAnrTaPcmMultiple-1' ;
$array['category'][1]['detail'][10026]['champs'] = 'Attestation sur l’honneur ANR Mairie / TA PCM';$array['category'][1]['detail'][10026]['name'] = 'Attestation sur l’honneur ANR Mairie / TA PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10026]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-2-fileAttestationHonneurAnrMairieTaPcmMultiple-1' ;
$array['category'][1]['detail'][10027]['champs'] = 'Date 1er passage huissier PCM';$array['category'][1]['detail'][10027]['name'] = 'Date 1er passage huissier PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10027]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-1-date1PassageHuissierPcm' ;
$array['category'][1]['detail'][10028]['champs'] = 'Date 2ème passage huissier PCM';$array['category'][1]['detail'][10028]['name'] = 'Date 2ème passage huissier PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10028]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-1-date2PassageHuissierPcm' ;
$array['category'][1]['detail'][10029]['champs'] = 'Date 3ème passage huissier PCM';$array['category'][1]['detail'][10029]['name'] = 'Date 3ème passage huissier PCM (Etape 2 Timeline Urbanisme)';$array['category'][1]['detail'][10029]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-2-etap2Pcm-1-date3PassageHuissierPcm' ;
$array['category'][2]['num'] = 2;
$array['category'][2]['name'] = 'Foncier';
$array['category'][2]['detail'][36]['champs'] = 'Promesse de bail';$array['category'][2]['detail'][36]['name'] = 'Promesse de bail (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][36]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-filePromessebailMultiple-2' ;
$array['category'][2]['detail'][37]['champs'] = 'Date PDB';$array['category'][2]['detail'][37]['name'] = 'Date PDB (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][37]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-dateExpirationPromesseBail-1' ;
$array['category'][2]['detail'][38]['champs'] = 'Durée de validité (en mois)';$array['category'][2]['detail'][38]['name'] = 'Durée de validité (en mois) (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][38]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-d1' ;
$array['category'][2]['detail'][39]['champs'] = 'Durée de prorogation (en mois)';$array['category'][2]['detail'][39]['name'] = 'Durée de prorogation (en mois) (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][39]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-d2' ;
$array['category'][2]['detail'][40]['champs'] = 'Contrepartie en nature';$array['category'][2]['detail'][40]['name'] = 'Contrepartie en nature (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][40]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-loyerEnNature' ;
$array['category'][2]['detail'][41]['champs'] = 'Type de bail';$array['category'][2]['detail'][41]['name'] = 'Type de bail (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][41]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-typeBail' ;
$array['category'][2]['detail'][42]['champs'] = 'Durée du bail en année';$array['category'][2]['detail'][42]['name'] = 'Durée du bail en année (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][42]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-dureeBail' ;
$array['category'][2]['detail'][43]['champs'] = 'DA / EDDV';$array['category'][2]['detail'][43]['name'] = 'DA / EDDV (Etape 3 Timeline Foncier)';$array['category'][2]['detail'][43]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-601-fileEtatDecriptifMultiple-2' ;
$array['category'][2]['detail'][43001]['champs'] = 'Plan de servitudes';$array['category'][2]['detail'][43001]['name'] = 'Plan de servitudes (Etape 3 Timeline Foncier)';$array['category'][2]['detail'][43001]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-601-filePlanServitudesMultiple-2' ;
$array['category'][2]['detail'][44]['champs'] = 'Etat hypothécaire';$array['category'][2]['detail'][44]['name'] = 'Etat hypothécaire (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][44]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileEtatHypothecaireMultiple-2' ;
$array['category'][2]['detail'][45]['champs'] = 'Publication SPF ';$array['category'][2]['detail'][45]['name'] = 'Publication SPF (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][45]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-filePublicationSPRMultiple-2' ;
$array['category'][2]['detail'][46]['champs'] = 'Titre de propriété ';$array['category'][2]['detail'][46]['name'] = 'Titre de propriété (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][46]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileTitreProprieteMultiple-2' ;
$array['category'][2]['detail'][47]['champs'] = 'Autres (Cession de bail, projet de bail…)';$array['category'][2]['detail'][47]['name'] = 'Autres (Cession de bail, projet de bail…) (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][47]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileAutreEtap6-2' ;
$array['category'][2]['detail'][48]['champs'] = 'Procuration Bailleur ';$array['category'][2]['detail'][48]['name'] = 'Procuration Bailleur (Etape 4 Timeline Foncier)';$array['category'][2]['detail'][48]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-602-fileProcurationBailleur-2' ;
$array['category'][2]['detail'][49]['champs'] = 'Nom du notaire ';$array['category'][2]['detail'][49]['name'] = 'Nom du notaire (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][49]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-nomNotaire' ;
$array['category'][2]['detail'][50]['champs'] = 'Bail signé';$array['category'][2]['detail'][50]['name'] = 'Bail signé (Etape 3 Timeline Foncier)';$array['category'][2]['detail'][50]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-7-fileBailSigneMultiple-2' ;
$array['category'][2]['detail'][51]['champs'] = 'Avenant au bail';$array['category'][2]['detail'][51]['name'] = 'Avenant au bail (Etape 3 Timeline Foncier)';$array['category'][2]['detail'][51]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-7-fileAvenantBailMultiple-2' ;
$array['category'][2]['detail'][10030]['champs'] = 'Date d’intervention';$array['category'][2]['detail'][10030]['name'] = 'Date d’intervention (Etape 3 Timeline Foncier)';$array['category'][2]['detail'][10030]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-601-dateIntervention-1' ;
$array['category'][2]['detail'][224]['champs'] = 'Preuve de publications SPF';$array['category'][2]['detail'][224]['name'] = 'Preuve de publications SPF (Etape 3 Timeline Foncier)';$array['category'][2]['detail'][224]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-7-filePreuvePublicationsSPFMultiple-2' ;
$array['category'][2]['detail'][228]['champs'] = 'Litige';$array['category'][2]['detail'][228]['name'] = 'Litige';$array['category'][2]['detail'][228]['value'] = 'projet-'.ParametrageXlsProject::type_row_const.'-etap-0-0-0-12' ;
$array['category'][2]['detail'][226]['champs'] = 'Litige documents';$array['category'][2]['detail'][226]['name'] = 'Litige documents';$array['category'][2]['detail'][226]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-71-etap71Litige-2-fileDocLitigeMultiple-3' ;
$array['category'][2]['detail'][227]['champs'] = 'Litige commentaires';$array['category'][2]['detail'][227]['name'] = 'Litige commentaires';$array['category'][2]['detail'][227]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-71-etap71Litige-0-etap71LitigeCommentaire-comment' ;
$array['category'][2]['detail'][183]['champs'] = 'Terrassement';$array['category'][2]['detail'][183]['name'] = 'Terrassement (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][183]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-terrassement' ;
$array['category'][2]['detail'][184]['champs'] = 'Tranchée';$array['category'][2]['detail'][184]['name'] = 'Tranchée (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][184]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-tranchee' ;
$array['category'][2]['detail'][185]['champs'] = 'Bardage';$array['category'][2]['detail'][185]['name'] = 'Bardage (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][185]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-bardage' ;
$array['category'][2]['detail'][186]['champs'] = 'Rénovation charpente';$array['category'][2]['detail'][186]['name'] = 'Rénovation charpente (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][186]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-renovationCharpente' ;
$array['category'][2]['detail'][187]['champs'] = 'Désamiantage';$array['category'][2]['detail'][187]['name'] = 'Désamiantage (Etape 1 Timeline Foncier)';$array['category'][2]['detail'][187]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-desamiantage' ;
$array['category'][2]['detail'][191]['champs'] = 'Levée d’option date';$array['category'][2]['detail'][191]['name'] = 'Levée d’option date';$array['category'][2]['detail'][191]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-leveeOption-1' ;
$array['category'][2]['detail'][190]['champs'] = 'Levée d’option doc';$array['category'][2]['detail'][190]['name'] = 'Levée d’option doc';$array['category'][2]['detail'][190]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-fileLeveeOptionMultiple-2' ;
$array['category'][2]['detail'][19100]['champs'] = 'Acte de substitution';$array['category'][2]['detail'][19100]['name'] = 'Acte de substitution';$array['category'][2]['detail'][19100]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-fileActeSubstitutionMultiple-2' ;
$array['category'][2]['detail'][19101]['champs'] = 'LOI';$array['category'][2]['detail'][19101]['name'] = 'LOI';$array['category'][2]['detail'][19101]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-fileLoiMultiple-2' ;
$array['category'][2]['detail'][19102]['champs'] = 'Promesse d\'achat';$array['category'][2]['detail'][19102]['name'] = 'Promesse d\'achat';$array['category'][2]['detail'][19102]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-filePromesseAchatMultiple-2' ;
$array['category'][2]['detail'][19103]['champs'] = 'Date de signature LOI';$array['category'][2]['detail'][19103]['name'] = 'Date de signature LOI';$array['category'][2]['detail'][19103]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-dateSignature-1';
$array['category'][2]['detail'][19104]['champs'] = 'Date de fin d’exclusivité LOI';$array['category'][2]['detail'][19104]['name'] = 'Date de fin d’exclusivité LOI';$array['category'][2]['detail'][19104]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-dateFinExclusiviteLoi-1';
$array['category'][2]['detail'][19105]['champs'] = 'Honoraire apporteur';$array['category'][2]['detail'][19105]['name'] = 'Honoraire apporteur';$array['category'][2]['detail'][19105]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-honoraireApporteur';
$array['category'][2]['detail'][19106]['champs'] = 'Indemnité transitoire';$array['category'][2]['detail'][19106]['name'] = 'Indemnité transitoire';$array['category'][2]['detail'][19106]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-indemniteTransitoire';
$array['category'][2]['detail'][191060]['champs'] = 'Puissance signée';$array['category'][2]['detail'][191060]['name'] = 'Puissance signée';$array['category'][2]['detail'][191060]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-puissanceSignee';
$array['category'][2]['detail'][19107]['champs'] = 'Prix d’achat foncier';$array['category'][2]['detail'][19107]['name'] = 'Prix d’achat foncier';$array['category'][2]['detail'][19107]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-prixAchatFoncier';
$array['category'][2]['detail'][19108]['champs'] = 'Unité du prix d’achat';$array['category'][2]['detail'][19108]['name'] = 'Unité du prix d’achat';$array['category'][2]['detail'][19108]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-5-unitePrixAchat';
$array['category'][2]['detail'][192]['champs'] = 'Extrait de matrice cadastrale';$array['category'][2]['detail'][192]['name'] = 'Extrait de matrice cadastrale (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][192]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileExtraitMatriceCadastrale-2' ;
$array['category'][2]['detail'][193]['champs'] = 'Carte d’identité';$array['category'][2]['detail'][193]['name'] = 'Carte d’identité (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][193]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileCarteIdentite-2' ;
$array['category'][2]['detail'][194]['champs'] = 'Livret de famille ';$array['category'][2]['detail'][194]['name'] = 'Livret de famille (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][194]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileLivretFamille-2' ;
$array['category'][2]['detail'][195]['champs'] = 'Accord ML ';$array['category'][2]['detail'][195]['name'] = 'Accord ML (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][195]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileAccordMl-2' ;
$array['category'][2]['detail'][196]['champs'] = 'Kbis ';$array['category'][2]['detail'][196]['name'] = 'Kbis (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][196]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileKbis-2' ;
$array['category'][2]['detail'][197]['champs'] = 'Statuts ';$array['category'][2]['detail'][197]['name'] = 'Statuts (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][197]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-fileStatuts-2' ;
$array['category'][2]['detail'][198]['champs'] = 'les parcelles du projet';$array['category'][2]['detail'][198]['name'] = 'les parcelles du projet (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][198]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-parcellesProjet' ;
$array['category'][2]['detail'][199]['champs'] = 'les propriétaires';$array['category'][2]['detail'][199]['name'] = 'les propriétaires (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][199]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-proprietaires' ;
$array['category'][2]['detail'][200]['champs'] = 'Situation foncière';$array['category'][2]['detail'][200]['name'] = 'Situation foncière (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][200]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-situationFonciere' ;
$array['category'][2]['detail'][201]['champs'] = 'Statut Mainlevée ';$array['category'][2]['detail'][201]['name'] = 'Statut Mainlevée (Etape 2 Timeline Foncier)';$array['category'][2]['detail'][201]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-6-statutMainlevee' ;
$array['category'][3]['num'] = 3;
$array['category'][3]['name'] = 'Raccordement';
$array['category'][3]['detail'][52001]['champs'] = 'IPR';$array['category'][3]['detail'][52001]['name'] = 'IPR (Etape 0 Timeline Raccordement)';$array['category'][3]['detail'][52001]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-80-fileIPR-2' ;
$array['category'][3]['detail'][52002]['champs'] = 'PRAC';$array['category'][3]['detail'][52002]['name'] = 'PRAC (Etape 0 Timeline Raccordement)';$array['category'][3]['detail'][52002]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-80-filePRAC-2' ;
$array['category'][3]['detail'][52003]['champs'] = 'Distance PDL';$array['category'][3]['detail'][52003]['name'] = 'Distance PDLÂ (Etape 0 Timeline Raccordement)';$array['category'][3]['detail'][52003]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-80-distancePdl' ;
$array['category'][3]['detail'][52004]['champs'] = 'Nature du raccordement ';$array['category'][3]['detail'][52004]['name'] = 'Nature du raccordement (Etape 0 Timeline Raccordement)';$array['category'][3]['detail'][52004]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-80-natureRaccordemenT' ;
$array['category'][3]['detail'][52]['champs'] = 'Kbis de l’ETS';$array['category'][3]['detail'][52]['name'] = 'Kbis de l’ETS (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][52]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-fileKbisEtsMultiple-2' ;
$array['category'][3]['detail'][53]['champs'] = 'Profil du créateur';$array['category'][3]['detail'][53]['name'] = 'Profil du créateur (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][53]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-profileCreateur' ;
$array['category'][3]['detail'][54]['champs'] = 'Adresse';$array['category'][3]['detail'][54]['name'] = 'Adresse (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][54]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-adresseEtablissement' ;
$array['category'][3]['detail'][55]['champs'] = 'Ville';$array['category'][3]['detail'][55]['name'] = 'Ville (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][55]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-cityEtablissement' ;
$array['category'][3]['detail'][56]['champs'] = 'Code postal';$array['category'][3]['detail'][56]['name'] = 'Code postal (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][56]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-codePostalEtablissement' ;
$array['category'][3]['detail'][57]['champs'] = 'Latitude';$array['category'][3]['detail'][57]['name'] = 'Latitude (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][57]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-latEtablissement' ;
$array['category'][3]['detail'][58]['champs'] = 'Longitude';$array['category'][3]['detail'][58]['name'] = 'Longitude (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][58]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-longiEtablissement' ;
$array['category'][3]['detail'][59]['champs'] = 'Numéro de parcelle';$array['category'][3]['detail'][59]['name'] = 'Numéro de parcelle (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][59]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-numParcelleEtablissement' ;
$array['category'][3]['detail'][60]['champs'] = 'SIRET de l’ETS';$array['category'][3]['detail'][60]['name'] = 'SIRET de l’ETS (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][60]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-siretEts' ;
$array['category'][3]['detail'][61]['champs'] = 'SPV confirmation ou changement';$array['category'][3]['detail'][61]['name'] = 'SPV confirmation ou changement (Etape 1 Timeline Raccordement)';$array['category'][3]['detail'][61]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-8-spvEtablissement' ;
$array['category'][3]['detail'][62]['champs'] = 'Mail d’ENEDIS de confirmation';$array['category'][3]['detail'][62]['name'] = 'Mail d’ENEDIS de confirmation (Etape 2 Timeline Raccordement)';$array['category'][3]['detail'][62]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-9-fileMailEnedisConfirmationMultiple-2' ;
$array['category'][3]['detail'][62001]['champs'] = 'Demande de raccordement';$array['category'][3]['detail'][62001]['name'] = 'Demande de raccordement (Etape 2 Timeline Raccordement)';$array['category'][3]['detail'][62001]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-9-fileDemandeRaccordementMultiple-2' ;
// $array['category'][3]['detail'][62002]['champs'] = 'Garantie bancaire';$array['category'][3]['detail'][62002]['name'] = 'Garantie bancaire (Etape 2 Timeline Raccordement)';$array['category'][3]['detail'][62002]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-9-fileGarantieBancaireMultiple-2' ;
// $array['category'][3]['detail'][63]['champs'] = 'Date maximale d\'achèvement des travaux';$array['category'][3]['detail'][63]['name'] = 'Date maximale d\'achèvement des travaux (Etape 2 Timeline Raccordement)';$array['category'][3]['detail'][63]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-9-dateMaximaleAchevement-1' ;
// $array['category'][3]['detail'][64]['champs'] = 'Tarif Fit prévisionnel';$array['category'][3]['detail'][64]['name'] = 'Tarif Fit prévisionnel (Etape 2 Timeline Raccordement)';$array['category'][3]['detail'][64]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-9-tarifFit' ;
$array['category'][3]['detail'][65]['champs'] = 'Date T0';$array['category'][3]['detail'][65]['name'] = 'Date T0 (Etape 2 Timeline Raccordement)';$array['category'][3]['detail'][65]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-9-dateT0-1' ;
$array['category'][3]['detail'][66]['champs'] = 'PTF';$array['category'][3]['detail'][66]['name'] = 'PTF (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][66]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-filePtfMultiple-2' ;
$array['category'][3]['detail'][67]['champs'] = 'CRD signée';$array['category'][3]['detail'][67]['name'] = 'CRD signée (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][67]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-fileCrdSigneeMultiple-2' ;
$array['category'][3]['detail'][68]['champs'] = 'Preuve de virement';$array['category'][3]['detail'][68]['name'] = 'Preuve de virement (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][68]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-filePreuveVirementMultiple-2' ;
$array['category'][3]['detail'][6800]['champs'] = 'Avenant CRD';$array['category'][3]['detail'][6800]['name'] = 'Avenant CRD (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][6800]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-fileAvenantCrdMultiple-2' ;
$array['category'][3]['detail'][6801]['champs'] = 'Avenant CRD pour MES';$array['category'][3]['detail'][6801]['name'] = 'Avenant CRD pour MES (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][6801]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-fileAvenantCrdMesMultiple-2' ;
$array['category'][3]['detail'][69]['champs'] = 'Montant acompte ';$array['category'][3]['detail'][69]['name'] = 'Montant acompte (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][69]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-montantAcompte' ;
$array['category'][3]['detail'][6900]['champs'] = 'Avenant CRD TEXT ';$array['category'][3]['detail'][6900]['name'] = 'Avenant CRD TEXT (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][6900]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-avenantCrdMes' ;
$array['category'][3]['detail'][70]['champs'] = 'Montant coût total';$array['category'][3]['detail'][70]['name'] = 'Montant coût total (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][70]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-montantCoutTotal' ;
$array['category'][3]['detail'][71]['champs'] = 'Référence ENEDIS ';$array['category'][3]['detail'][71]['name'] = 'Référence ENEDIS (Etape 3 Timeline Raccordement)';$array['category'][3]['detail'][71]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-10-referenceEnedis' ;
$array['category'][3]['detail'][72]['champs'] = 'CEX signé';$array['category'][3]['detail'][72]['name'] = 'CEX signé (Etape 4 Timeline Raccordement)';$array['category'][3]['detail'][72]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-12-fileCexSigneMultiple-2' ;
$array['category'][3]['detail'][73]['champs'] = 'CARDi signé';$array['category'][3]['detail'][73]['name'] = 'CARDi signé (Etape 4 Timeline Raccordement)';$array['category'][3]['detail'][73]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-12-fileCardiSigneMultiple-2' ;
$array['category'][3]['detail'][74]['champs'] = 'Numéro de contrat';$array['category'][3]['detail'][74]['name'] = 'Numéro de contrat (Etape 4 Timeline Raccordement)';$array['category'][3]['detail'][74]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-12-numeroCardiMultiple-0-numeroCardi' ;
$array['category'][3]['detail'][75]['champs'] = 'Numéro PRM';$array['category'][3]['detail'][75]['name'] = 'Numéro PRM (Etape 4 Timeline Raccordement)';$array['category'][3]['detail'][75]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-12-numeroCardiMultiple-0-identifiantEnedis' ;
$array['category'][3]['detail'][76]['champs'] = 'Consuel';$array['category'][3]['detail'][76]['name'] = 'Consuel (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][76]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-13-fileConsuelMultiple-2' ;
$array['category'][3]['detail'][77]['champs'] = 'Date du consuel ';$array['category'][3]['detail'][77]['name'] = 'Date du consuel (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][77]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-13-dateConsuel-1' ;
$array['category'][3]['detail'][9976]['champs'] = 'Attestation bureau de contrôle S21';$array['category'][3]['detail'][9976]['name'] = 'Attestation bureau de contrôle S21 (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][9976]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-13-fileAttestationBureauControleMultiple-2' ;
$array['category'][3]['detail'][9977]['champs'] = 'DRE';$array['category'][3]['detail'][9977]['name'] = 'DRE (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][9977]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-13-fileDREMultiple-2' ;
$array['category'][3]['detail'][78]['champs'] = 'Attestation de mise en service';$array['category'][3]['detail'][78]['name'] = 'Attestation de mise en service (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][78]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-fileDoeMultiple-2' ;
$array['category'][3]['detail'][78001]['champs'] = 'ARPE';$array['category'][3]['detail'][78001]['name'] = 'ARPE (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][78001]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-fileARPE-2' ;
$array['category'][3]['detail'][78002]['champs'] = 'DEIE';$array['category'][3]['detail'][78002]['name'] = 'DEIE (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][78002]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-fileDEIE-2' ;
$array['category'][3]['detail'][79]['champs'] = 'Date de mise en service';$array['category'][3]['detail'][79]['name'] = 'Date de mise en service (Etape7 Timeline Raccordement)';$array['category'][3]['detail'][79]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-dateMiseEnService-1' ;
$array['category'][3]['detail'][80]['champs'] = 'Adresse';$array['category'][3]['detail'][80]['name'] = 'Adresse (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][80]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-adresseMiseEnService' ;
$array['category'][3]['detail'][81]['champs'] = 'Ville';$array['category'][3]['detail'][81]['name'] = 'Ville (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][81]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-cityMiseEnService' ;
$array['category'][3]['detail'][82]['champs'] = 'Code postal';$array['category'][3]['detail'][82]['name'] = 'Code postal (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][82]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-codePostalMiseEnService' ;
$array['category'][3]['detail'][83]['champs'] = 'Nom du bailleur';$array['category'][3]['detail'][83]['name'] = 'Nom du bailleur (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][83]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-firstnameProprietaire' ;
$array['category'][3]['detail'][84]['champs'] = 'Prénom du bailleur';$array['category'][3]['detail'][84]['name'] = 'Prénom du bailleur (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][84]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-lastnameProprietaire' ;
$array['category'][3]['detail'][85]['champs'] = 'N° de téléphone du propriétaire';$array['category'][3]['detail'][85]['name'] = 'N° de téléphone du propriétaire (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][85]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-phoneProprietaire' ;
$array['category'][3]['detail'][86]['champs'] = 'E-mail du propriétaire';$array['category'][3]['detail'][86]['name'] = 'E-mail du propriétaire (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][86]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-emailProprietaire' ;
$array['category'][3]['detail'][87]['champs'] = 'Procédure d’accès';$array['category'][3]['detail'][87]['name'] = 'Procédure d’accès (Etape 7 Timeline Raccordement)';$array['category'][3]['detail'][87]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-14-procedureAcces' ;
$array['category'][3]['detail'][164]['champs'] = 'Date prévisionnelle d’installation du PDL';$array['category'][3]['detail'][164]['name'] = 'Date prévisionnelle d’installation du PDL (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][164]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-121-datePrevisionnelleInstallationPDL-1' ;
$array['category'][3]['detail'][166]['champs'] = 'Date d’installation du PDL';$array['category'][3]['detail'][166]['name'] = 'Date d’installation du PDL (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][166]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-121-dateInstallationPDL-1' ;
$array['category'][3]['detail'][167]['champs'] = 'Date de mise sous tension ENEDIS';$array['category'][3]['detail'][167]['name'] = 'Date de mise sous tension ENEDIS (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][167]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-121-dateMiseSousTensionEnedis-1' ;
$array['category'][3]['detail'][165]['champs'] = 'Installation PDL';$array['category'][3]['detail'][165]['name'] = 'Installation PDL (Etape 5 Timeline Raccordement)';$array['category'][3]['detail'][165]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-121-fileDocument121Multiple-2' ;
$array['category'][3]['detail'][210]['champs'] = 'Avenant CARDi';$array['category'][3]['detail'][210]['name'] = 'Avenant CARDi (Etape 4 Timeline Raccordement)';$array['category'][3]['detail'][210]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-12-fileAvenantCardiMultiple-2' ;
$array['category'][4]['num'] = 4;
$array['category'][4]['name'] = 'Construction';
$array['category'][4]['detail'][96]['champs'] = 'Diagnostic charpente';$array['category'][4]['detail'][96]['name'] = 'Diagnostic charpente (Etape 1 Timeline Construction)';$array['category'][4]['detail'][96]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-fileDiagnostiqueCharpenteMultiple-2' ;
$array['category'][4]['detail'][97]['champs'] = 'Étude de sol';$array['category'][4]['detail'][97]['name'] = 'Étude de sol (Etape 1 Timeline Construction)';$array['category'][4]['detail'][97]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-fileEtudeSoleMultiple-2' ;
$array['category'][4]['detail'][100]['champs'] = 'PV de démarrage';$array['category'][4]['detail'][100]['name'] = 'PV de démarrage (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][100]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-filePVDemarrageMultiple-2' ;
$array['category'][4]['detail'][101]['champs'] = 'DOC';$array['category'][4]['detail'][101]['name'] = 'DOC (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][101]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-fileDocEtap171Multiple-2' ;
$array['category'][4]['detail'][102]['champs'] = 'Ordre de service';$array['category'][4]['detail'][102]['name'] = 'Ordre de service (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][102]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-fileOrderServiceMultiple-2' ;
$array['category'][4]['detail'][103]['champs'] = 'Planning prévisionnel';$array['category'][4]['detail'][103]['name'] = 'Planning prévisionnel (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][103]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-filePlanningPrevisionnelMultiple-2' ;
$array['category'][4]['detail'][1030]['champs'] = 'PGC';$array['category'][4]['detail'][1030]['name'] = 'PGC (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][1030]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-filePGCMultiple-2' ;
$array['category'][4]['detail'][1031]['champs'] = 'PPSPS';$array['category'][4]['detail'][1031]['name'] = 'PPSPS (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][1031]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-filePPSPSMultiple-2' ;
$array['category'][4]['detail'][1032]['champs'] = 'Harmonisation';$array['category'][4]['detail'][1032]['name'] = 'Harmonisation (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][1032]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-fileHarmonisationMultiple-2' ;
$array['category'][4]['detail'][1033]['champs'] = 'Rapport de visite SPS';$array['category'][4]['detail'][1033]['name'] = 'Rapport de visite SPS (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][1033]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-fileRapportVisiteSpsMultiple-2' ;
$array['category'][4]['detail'][1034]['champs'] = 'DIUO';$array['category'][4]['detail'][1034]['name'] = 'DIUO (Etape 4-1 Timeline Construction)';$array['category'][4]['detail'][1034]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-171-DIUO-2' ;
$array['category'][4]['detail'][104]['champs'] = 'Note de calcul béton et féraillage';$array['category'][4]['detail'][104]['name'] = 'Note de calcul béton et féraillage (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][104]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-fileNoteCalculBetonFeraillageMultiple-2' ;
$array['category'][4]['detail'][105]['champs'] = 'Plan implantation bâtiment avec dalle béton du local onduleur';$array['category'][4]['detail'][105]['name'] = 'Plan implantation bâtiment avec dalle béton du local onduleur (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][105]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-filePlanImplantationBatimentAvecDalleBetonMultiple-2' ;
$array['category'][4]['detail'][106]['champs'] = 'PV de réception';$array['category'][4]['detail'][106]['name'] = 'PV de réception (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][106]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-filePVReceptionMultiple-2' ;
$array['category'][4]['detail'][107]['champs'] = 'Fondations terminées ';$array['category'][4]['detail'][107]['name'] = 'Fondations terminées (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][107]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-fileFondationTermineesMultiple-2' ;
$array['category'][4]['detail'][108]['champs'] = 'Dalle béton shelter ';$array['category'][4]['detail'][108]['name'] = 'Dalle béton shelter (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][108]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-fileDalleBetonShelterMultiple-2' ;
$array['category'][4]['detail'][109]['champs'] = 'Chemin d’accès ';$array['category'][4]['detail'][109]['name'] = 'Chemin d’accès (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][109]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-fileCheminAccesMultiple-2' ;
$array['category'][4]['detail'][110]['champs'] = 'Photos de la plateforme';$array['category'][4]['detail'][110]['name'] = 'Photos de la plateforme (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][110]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-filePhotosPlateformeMultiple-2' ;
$array['category'][4]['detail'][111]['champs'] = 'Date debut des fondations';$array['category'][4]['detail'][111]['name'] = 'Date debut des fondations (Etape 4-2 Timeline Construction)';$array['category'][4]['detail'][111]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-172-dateDebutFondation-1' ;
$array['category'][4]['detail'][112]['champs'] = 'Notes de calcul charpente';$array['category'][4]['detail'][112]['name'] = 'Notes de calcul charpente (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][112]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-fileNoteCalculCharpente173Multiple-2' ;
// $array['category'][4]['detail'][113]['champs'] = 'Photos de renforcement charpente';$array['category'][4]['detail'][113]['name'] = 'Photos de renforcement charpente (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][113]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePhotoRenforcementcharpente173Multiple-2' ;
$array['category'][4]['detail'][114]['champs'] = 'Plan de bardage';$array['category'][4]['detail'][114]['name'] = 'Plan de bardage (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][114]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-fileOssatureSecondaireBardage173Multiple-2' ;
// $array['category'][4]['detail'][115]['champs'] = 'Photos de renforcement des bardages';$array['category'][4]['detail'][115]['name'] = 'Photos de renforcement des bardages (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][115]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePhotoRenforcementBardage173Multiple-2' ;
$array['category'][4]['detail'][116]['champs'] = 'PV réception lot charpente / couverture / bardage';$array['category'][4]['detail'][116]['name'] = 'PV réception lot charpente / couverture / bardage (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][116]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePVreception173Multiple-2' ;
// $array['category'][4]['detail'][117]['champs'] = 'Photos de renforcement de la couverture terminée';$array['category'][4]['detail'][117]['name'] = 'Photos de renforcement de la couverture terminée (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][117]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePhotoRenforcementCouvertureTermine173Multiple-2' ;
$array['category'][4]['detail'][118]['champs'] = 'Plans de charpente';$array['category'][4]['detail'][118]['name'] = 'Plans de charpente (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][118]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePlansCharpente173Multiple-2' ;
$array['category'][4]['detail'][1181]['champs'] = 'Plans de charpente signé par le bailleur';$array['category'][4]['detail'][1181]['name'] = 'Plans de charpente (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][1181]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePlansCharpente173SigneMultiple-2' ;
$array['category'][4]['detail'][119]['champs'] = 'Vues 3D';$array['category'][4]['detail'][119]['name'] = 'Vues 3D (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][119]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-fileVues3d173Multiple-2' ;
$array['category'][4]['detail'][120]['champs'] = 'Plan de couverture';$array['category'][4]['detail'][120]['name'] = 'Plan de couverture (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][120]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePlanCouverture173Multiple-2' ;
$array['category'][4]['detail'][121]['champs'] = 'Plan et descriptifs des travaux de renforcement de charpente';$array['category'][4]['detail'][121]['name'] = 'Plan et descriptifs des travaux de renforcement de charpente (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][121]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePlanDescriptionTravauxRenforcementCharpente173Multiple-2' ;
$array['category'][4]['detail'][122]['champs'] = 'Plan et descriptifs des travaux de dépose , repose de couverture';$array['category'][4]['detail'][122]['name'] = 'Plan et descriptifs des travaux de dépose , repose de couverture (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][122]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-filePlanDescriptionTravauxDeposeCouverture173Multiple-2' ;
$array['category'][4]['detail'][123]['champs'] = 'Date Début Charpente';$array['category'][4]['detail'][123]['name'] = 'Date Début Charpente (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][123]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-dateDebutCharpente-1' ;
$array['category'][4]['detail'][124]['champs'] = 'Date Fin Charpente';$array['category'][4]['detail'][124]['name'] = 'Date Fin Charpente (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][124]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-dateFinCharpente-1' ;
$array['category'][4]['detail'][125]['champs'] = 'Date Début Couverture';$array['category'][4]['detail'][125]['name'] = 'Date Début Couverture (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][125]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-dateDebutCouverture-1' ;
$array['category'][4]['detail'][126]['champs'] = 'Date Fin Couverture';$array['category'][4]['detail'][126]['name'] = 'Date Fin Couverture (Etape 4-3 Timeline Construction)';$array['category'][4]['detail'][126]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-173-dateFinCouverture-1' ;
$array['category'][4]['detail'][127]['champs'] = 'Plan de calepinage / câblage';$array['category'][4]['detail'][127]['name'] = 'Plan de calepinage / câblage (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][127]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-filePlanCalepinageModule174Multiple-2' ;
// $array['category'][4]['detail'][128]['champs'] = 'Plan de câblage des strings';$array['category'][4]['detail'][128]['name'] = 'Plan de câblage des strings (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][128]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-filePlanCaplageStrings174Multiple-2' ;
$array['category'][4]['detail'][129]['champs'] = 'Note de calcul sous Lise PV';$array['category'][4]['detail'][129]['name'] = 'Note de calcul sous Lise PV (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][129]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileNoteCalculSousLisePV174Multiple-2' ;
$array['category'][4]['detail'][130]['champs'] = 'Schéma Unifilaire de l’installation';$array['category'][4]['detail'][130]['name'] = 'Schéma Unifilaire de l’installation (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][130]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileSchemaUnifilaireInstallation174Multiple-2' ;
$array['category'][4]['detail'][131]['champs'] = 'Schéma d’agencement du shelter ou photos';$array['category'][4]['detail'][131]['name'] = 'Schéma d’agencement du shelter ou photos (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][131]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileShemaAgencementShelterPhotos174Multiple-2' ;
// $array['category'][4]['detail'][132]['champs'] = 'Test de PR Ã la mise en service';$array['category'][4]['detail'][132]['name'] = 'Test de PR Ã la mise en service (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][132]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileTestPrMiseService174Multiple-2' ;
$array['category'][4]['detail'][133]['champs'] = 'Schéma unifilaire du système de monitoring';$array['category'][4]['detail'][133]['name'] = 'Schéma unifilaire du système de monitoring (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][133]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileShemaUnifilaireSystemeMonitoring174Multiple-2' ;
$array['category'][4]['detail'][134]['champs'] = 'Tests et vérifications des travaux électriques, fiche d’auto-contrôle de l’installateur ';$array['category'][4]['detail'][134]['name'] = 'Tests et vérifications des travaux électriques, fiche d’auto-contrôle de l’installateur (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][134]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileTestVerificationTravauxElectriqueFiche174Multiple-2' ;
$array['category'][4]['detail'][135]['champs'] = 'PV de réception (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][135]['name'] = 'PV de réception (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][135]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-filePVReception174Multiple-2' ;
$array['category'][4]['detail'][136]['champs'] = 'Photos de la centrale solaire';$array['category'][4]['detail'][136]['name'] = 'Photos de la centrale solaire (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][136]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-filePhotosGenerateur174Multiple-2' ;
// $array['category'][4]['detail'][127]['name'] = 'Pv terminées (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][127]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-filePvTerminees174Multiple-2' ;
$array['category'][4]['detail'][137]['champs'] = 'Descentes de câbles';$array['category'][4]['detail'][137]['name'] = 'Descentes de câbles (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][137]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileDescentesCables174Multiple-2' ;
$array['category'][4]['detail'][138]['champs'] = 'Raccordement du local onduleur';$array['category'][4]['detail'][138]['name'] = 'Raccordement du local onduleur (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][138]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-fileRaccordementLocalOnduleur174Multiple-2' ;
$array['category'][4]['detail'][139]['champs'] = 'Date Début Pose PV ';$array['category'][4]['detail'][139]['name'] = 'Date Début Pose PV (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][139]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-dateDebutPosePv-1' ;
$array['category'][4]['detail'][140]['champs'] = 'Date Fin Pose PV ';$array['category'][4]['detail'][140]['name'] = 'Date Fin Pose PV (Etape 4-4 Timeline Construction)';$array['category'][4]['detail'][140]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-174-dateFinPosePv-1' ;
$array['category'][4]['detail'][141]['champs'] = 'Notes de calcul des câbles AC de la liaison ';$array['category'][4]['detail'][141]['name'] = 'Notes de calcul des câbles AC de la liaison (Etape 4-5 Timeline Construction)';$array['category'][4]['detail'][141]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-175-fileNoteCalculCableAcLiaison175Multiple-2' ;
$array['category'][4]['detail'][142]['champs'] = 'Plans de la tranchée';$array['category'][4]['detail'][142]['name'] = 'Plans de la tranchée (Etape 4-5 Timeline Construction)';$array['category'][4]['detail'][142]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-175-filePlanTranchee175Multiple-2' ;
// $array['category'][4]['detail'][143]['champs'] = 'DAACT';$array['category'][4]['detail'][143]['name'] = 'DAACT (Etape 4-5 Timeline Construction)';$array['category'][4]['detail'][143]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-175-fileDaact175Multiple-2' ;
// $array['category'][4]['detail'][144]['champs'] = 'PV de réception';$array['category'][4]['detail'][144]['name'] = 'PV de réception (Etape 4-5 Timeline Construction)';$array['category'][4]['detail'][144]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-175-filePVReception175Multiple-2' ;
// $array['category'][4]['detail'][145]['champs'] = 'Photos de la liaison terminée';$array['category'][4]['detail'][145]['name'] = 'Photos de la liaison terminée (Etape 4-5 Timeline Construction)';$array['category'][4]['detail'][145]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-175-filePhotosLiaisonTerminee175Multiple-2' ;
$array['category'][4]['detail'][146]['champs'] = 'Date achévement des travaux';$array['category'][4]['detail'][146]['name'] = 'Date achévement des travaux (Etape 4-5 Timeline Construction)';$array['category'][4]['detail'][146]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-175-dateAchevementTraveaux-1' ;
$array['category'][4]['detail'][147]['champs'] = 'Consuel';$array['category'][4]['detail'][147]['name'] = 'Consuel (Etape 5 Timeline Construction)';$array['category'][4]['detail'][147]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-20-fileConsuelEtap20Multiple-2' ;
$array['category'][4]['detail'][148]['champs'] = 'Date du consuel';$array['category'][4]['detail'][148]['name'] = 'Date du consuel (Etape 5 Timeline Construction)';$array['category'][4]['detail'][148]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-20-dateConsuelEtap20-1' ;
$array['category'][4]['detail'][149]['champs'] = 'DOE';$array['category'][4]['detail'][149]['name'] = 'DOE (Etape 6 Timeline Construction)';$array['category'][4]['detail'][149]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-201-fileDoeEtap201Multiple-2' ;
$array['category'][4]['detail'][150]['champs'] = 'tests de réception';$array['category'][4]['detail'][150]['name'] = 'tests de réception (Etape 7 Timeline Construction)';$array['category'][4]['detail'][150]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-21-fileTestReceptionMultiple-2' ;
$array['category'][4]['detail'][151]['champs'] = 'Date du raccordement';$array['category'][4]['detail'][151]['name'] = 'Date du raccordement (Etape 7 Timeline Construction)';$array['category'][4]['detail'][151]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-21-dateRaccordement-1' ;
$array['category'][4]['detail'][152]['champs'] = 'Date de mise en service';$array['category'][4]['detail'][152]['name'] = 'Date de mise en service (Etape 7 Timeline Construction)';$array['category'][4]['detail'][152]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-21-dateMiseEnService-1' ;
$array['category'][4]['detail'][153]['champs'] = 'Tests de PR';$array['category'][4]['detail'][153]['name'] = 'Tests de PR (Etape 8 Timeline Construction)';$array['category'][4]['detail'][153]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-22-fileTestPrMultiple-2' ;
$array['category'][4]['detail'][170]['champs'] = 'Visite technique';$array['category'][4]['detail'][170]['name'] = 'Visite technique (Etape 0 Timeline Construction)';$array['category'][4]['detail'][170]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-fileVisiteTechnique159Multiple-2' ;
$array['category'][4]['detail'][171]['champs'] = 'Etude de productible';$array['category'][4]['detail'][171]['name'] = 'Etude de productible (Etape 0 Timeline Construction)';$array['category'][4]['detail'][171]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-fileEtudeProductible159Multiple-2' ;
$array['category'][4]['detail'][172]['champs'] = 'Etude de sol';$array['category'][4]['detail'][172]['name'] = 'Etude géotechnique/étude structure (Etape 0 Timeline Construction)';$array['category'][4]['detail'][172]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-fileGeotechnique159Multiple-2' ;
$array['category'][4]['detail'][173]['champs'] = 'Diagnostic charpente';$array['category'][4]['detail'][173]['name'] = 'Diagnostique charpente (Etape 0 Timeline Construction)';$array['category'][4]['detail'][173]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-fileDiagnostiqueCharpente159Multiple-2' ;
$array['category'][4]['detail'][174]['champs'] = 'Design pré-CRD';$array['category'][4]['detail'][174]['name'] = 'Design pré-CRD (Etape 0 Timeline Construction)';$array['category'][4]['detail'][174]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-fileDesignPreCRD159Multiple-2' ;
$array['category'][4]['detail'][175]['champs'] = 'Design post-CRD ';$array['category'][4]['detail'][175]['name'] = 'Design post-CRD (Etape 0 Timeline Construction)';$array['category'][4]['detail'][175]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-fileDesignPostCRD159Multiple-2' ;
$array['category'][4]['detail'][176]['champs'] = 'Plan de masse et de situation avec tranchée ';$array['category'][4]['detail'][176]['name'] = 'Plan de masse et de situation avec tranchée (Etape 0 Timeline Construction)';$array['category'][4]['detail'][176]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-filePlanMasseSituationTranchee159Multiple-2' ;
$array['category'][4]['detail'][177]['champs'] = 'Plan de calepinage';$array['category'][4]['detail'][177]['name'] = 'Plan de calepinage (Etape 0 Timeline Construction)';$array['category'][4]['detail'][177]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-filePlanCalepinage159Multiple-2' ;
$array['category'][4]['detail'][178]['champs'] = 'Schéma unifilaire';$array['category'][4]['detail'][178]['name'] = 'Schéma unifilaire (Etape 0 Timeline Construction)';$array['category'][4]['detail'][178]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-fileSchemaUnifilaire159Multiple-2' ;
$array['category'][4]['detail'][179]['champs'] = 'Etat charpente ';$array['category'][4]['detail'][179]['name'] = 'Etat charpente (Etape 0 Timeline Construction)';$array['category'][4]['detail'][179]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-etatCharpente' ;
$array['category'][4]['detail'][17900]['champs'] = 'Plans Autocad ';$array['category'][4]['detail'][17900]['name'] = 'Plans Autocad (Etape 0 Timeline Construction)';$array['category'][4]['detail'][17900]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-filePlansAutocadMultiple-2' ;
$array['category'][4]['detail'][17901]['champs'] = 'Plans dwg ';$array['category'][4]['detail'][17901]['name'] = 'Plans dwg (Etape 0 Timeline Construction)';$array['category'][4]['detail'][17901]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-filePlansDwgMultiple-2' ;
$array['category'][4]['detail'][180]['champs'] = 'Type de toiture existante ';$array['category'][4]['detail'][180]['name'] = 'Type de toiture existante (Etape 0 Timeline Construction)';$array['category'][4]['detail'][180]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-typeToitureExistante' ;
$array['category'][4]['detail'][181]['champs'] = 'Type de rénovation ';$array['category'][4]['detail'][181]['name'] = 'Type de rénovation (Etape 0 Timeline Construction)';$array['category'][4]['detail'][181]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-typeRenovation' ;
$array['category'][4]['detail'][182]['champs'] = 'Type de toiture à poser ';$array['category'][4]['detail'][182]['name'] = 'Type de toiture à poser (Etape 0 Timeline Construction)';$array['category'][4]['detail'][182]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-159-typeToiturePoser' ;
$array['category'][4]['detail'][202]['champs'] = 'Marque Module';$array['category'][4]['detail'][202]['name'] = 'Marque Module (Étape 1 Timeline Construction)'; $array['category'][4]['detail'][202]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-moduleInformation-0-marque' ;
$array['category'][4]['detail'][203]['champs'] = 'Puissance crête';$array['category'][4]['detail'][203]['name'] = 'Puissance crête (Étape 1 Timeline Construction)'; $array['category'][4]['detail'][203]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-moduleInformation-0-reference' ;
$array['category'][4]['detail'][204]['champs'] = 'Nombre de modules';$array['category'][4]['detail'][204]['name'] = 'Nombre de modules (Étape 1 Timeline Construction)'; $array['category'][4]['detail'][204]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-moduleInformation-0-nbr' ;
$array['category'][4]['detail'][205]['champs'] = 'Marque Onduleur';$array['category'][4]['detail'][205]['name'] = 'Marque Onduleur (Étape 1 Timeline Construction)'; $array['category'][4]['detail'][205]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-onduleurInformation-0-marque' ;
$array['category'][4]['detail'][206]['champs'] = 'Puissance Onduleur';$array['category'][4]['detail'][206]['name'] = 'Puissance Onduleur (Étape 1 Timeline Construction)'; $array['category'][4]['detail'][206]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-onduleurInformation-0-puissance' ;
$array['category'][4]['detail'][207]['champs'] = 'Nombre de Onduleurs';$array['category'][4]['detail'][207]['name'] = 'Nombre de Onduleurs (Étape 1 Timeline Construction)'; $array['category'][4]['detail'][207]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-160-onduleurInformation-0-nbr' ;
$array['category'][4]['detail'][215]['champs'] = 'Contrat de EPC signé';$array['category'][4]['detail'][215]['name'] = 'Contrat EPC (Etape 3 Timeline Construction)';$array['category'][4]['detail'][215]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileContratEpcMultiple-1' ;
$array['category'][4]['detail'][216]['champs'] = 'Annexes de EPC';$array['category'][4]['detail'][216]['name'] = 'Annexes EPC (fiches techniques…) (Etape 3 Timeline Construction)';$array['category'][4]['detail'][216]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileAnnexesMultiple-1' ;
$array['category'][4]['detail'][217]['champs'] = 'Demande d’agrément de EPC';$array['category'][4]['detail'][217]['name'] = 'Demande d’agrément EPC (Etape 3 Timeline Construction)';$array['category'][4]['detail'][217]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileDemandeAgrementMultiple-1' ;
$array['category'][4]['detail'][218]['champs'] = 'Contrat lot PV signé';$array['category'][4]['detail'][218]['name'] = 'Contrat lot PV signé (Etape 3 Timeline Construction)';$array['category'][4]['detail'][218]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileContratEpcMultiple-2' ;
$array['category'][4]['detail'][219]['champs'] = 'Annexes lot PV';$array['category'][4]['detail'][219]['name'] = 'Annexes lot PV (fiches techniques…) (Etape 3 Timeline Construction)';$array['category'][4]['detail'][219]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileAnnexesMultiple-2' ;
$array['category'][4]['detail'][220]['champs'] = 'Demande d’agrément lot PV';$array['category'][4]['detail'][220]['name'] = 'Demande d’agrément lot PV (Etape 3 Timeline Construction)';$array['category'][4]['detail'][220]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileDemandeAgrementMultiple-2' ;
$array['category'][4]['detail'][221]['champs'] = 'Contrat lot bâtiment signé';$array['category'][4]['detail'][221]['name'] = 'Contrat lot bâtiment signé (Etape 3 Timeline Construction)';$array['category'][4]['detail'][221]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileContratEpcMultiple-3' ;
$array['category'][4]['detail'][222]['champs'] = 'Annexes lot bâtiment ';$array['category'][4]['detail'][222]['name'] = 'Annexes lot bâtiment (fiches techniques…) (Etape 3 Timeline Construction)';$array['category'][4]['detail'][222]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileAnnexesMultiple-3' ;
$array['category'][4]['detail'][223]['champs'] = 'Demande d’agrément lot bâtiment';$array['category'][4]['detail'][223]['name'] = 'Demande d’agrément lot bâtiment (Etape 3 Timeline Construction)';$array['category'][4]['detail'][223]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-16-contratConstruction-2-fileDemandeAgrementMultiple-3' ;
$array['category'][5]['num'] = 5;
$array['category'][5]['name'] = 'Valorisation';
$array['category'][5]['detail'][10031]['champs'] = 'Type de valorisation';$array['category'][5]['detail'][10031]['name'] = 'Type de valorisation';$array['category'][5]['detail'][10031]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-typeValorisation' ;
$array['category'][5]['detail'][10032]['champs'] = 'Sous choix de valorisation';$array['category'][5]['detail'][10032]['name'] = 'Sous choix de valorisation';$array['category'][5]['detail'][10032]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-sousChoixValorisation' ;
$array['category'][5]['detail'][10033]['champs'] = 'Sous choix de valorisation (champ libre)';$array['category'][5]['detail'][10033]['name'] = 'Sous choix de valorisation (champ libre)';$array['category'][5]['detail'][10033]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-sousChoixValorisationLibre' ;
$array['category'][5]['detail'][10034]['champs'] = 'Durée du contrat ';$array['category'][5]['detail'][10034]['name'] = 'Durée du contrat ';$array['category'][5]['detail'][10034]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-dureeContrat' ;
$array['category'][5]['detail'][10035]['champs'] = 'Date T0';$array['category'][5]['detail'][10035]['name'] = 'Date T0 (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10035]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-1-dateT0' ;
$array['category'][5]['detail'][10036]['champs'] = 'Tarif Fit prévisionnel';$array['category'][5]['detail'][10036]['name'] = 'Tarif Fit prévisionnel (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10036]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-tarifFit' ;
$array['category'][5]['detail'][10037]['champs'] = 'Date maximale d\'achèvement des travaux';$array['category'][5]['detail'][10037]['name'] = 'Date maximale d\'achèvement des travaux (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10037]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-1-dateMaximaleAchevement' ;
$array['category'][5]['detail'][10038]['champs'] = 'Type d’AO/Période de candidature';$array['category'][5]['detail'][10038]['name'] = 'Type d’AO/Période de candidature (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10038]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-typeAoPeriodeCandidature' ;
$array['category'][5]['detail'][10039]['champs'] = 'Date de consignation';$array['category'][5]['detail'][10039]['name'] = 'Date de consignation (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10039]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-1-dateConsignation' ;
$array['category'][5]['detail'][10040]['champs'] = 'Date de dépôt AO';$array['category'][5]['detail'][10040]['name'] = 'Date de dépôt AO (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10040]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-1-dateDepotAo' ;
$array['category'][5]['detail'][10041]['champs'] = 'Notification Lauréat AO';$array['category'][5]['detail'][10041]['name'] = 'Notification Lauréat AO (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10041]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-1-dateNotificationLaureatAo' ;
$array['category'][5]['detail'][10042]['champs'] = 'Agrégateur';$array['category'][5]['detail'][10042]['name'] = 'Agrégateur (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10042]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-agregateur' ;
$array['category'][5]['detail'][10043]['champs'] = 'Frais de gestion';$array['category'][5]['detail'][10043]['name'] = 'Frais de gestion (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10043]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-fraisGestion' ;
$array['category'][5]['detail'][10044]['champs'] = 'Unité Frais de Gestion';$array['category'][5]['detail'][10044]['name'] = 'Unité Frais de Gestion (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10044]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-uniteFraisGestion' ;
$array['category'][5]['detail'][10045]['champs'] = 'Contrepartie';$array['category'][5]['detail'][10045]['name'] = 'Contrepartie (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10045]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-0-contrepartie' ;
$array['category'][5]['detail'][10046]['champs'] = 'Garantie bancaire';$array['category'][5]['detail'][10046]['name'] = 'Garantie bancaire (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10046]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-2-fileGarantieBancaireEtap25Multiple' ;
$array['category'][5]['detail'][10047]['champs'] = 'Demande de raccordement';$array['category'][5]['detail'][10047]['name'] = 'Demande de raccordement (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10047]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-2-fileDemandeRaccordementEtap25Multiple' ;
$array['category'][5]['detail'][10048]['champs'] = 'Mail d’ENEDIS de confirmation';$array['category'][5]['detail'][10048]['name'] = 'Mail d’ENEDIS de confirmation (Etape 2 Timeline Valorisation)';$array['category'][5]['detail'][10048]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-2-fileMailEnedisConfirmationEtap25Multiple' ;
$array['category'][5]['detail'][10049]['champs'] = 'Contrat d’achat signé';$array['category'][5]['detail'][10049]['name'] = 'Contrat d’achat signé (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10049]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-fileContratAchatSigneEtap25Multiple-1' ;
$array['category'][5]['detail'][10050]['champs'] = 'Attestation de producteur';$array['category'][5]['detail'][10050]['name'] = 'Attestation de producteur (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10050]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-fileAttestionProducteurEtap25Multiple-1' ;
$array['category'][5]['detail'][10051]['champs'] = 'Attestation de l’installateur';$array['category'][5]['detail'][10051]['name'] = 'Attestation de l’installateur (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10051]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-fileAttestionInstallateurEtap25Multiple-1' ;
$array['category'][5]['detail'][10052]['champs'] = 'AR Contrat d’achat';$array['category'][5]['detail'][10052]['name'] = 'AR Contrat d’achat (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10052]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-fileArContratAchatEtap25Multiple-1' ;
$array['category'][5]['detail'][10053]['champs'] = 'Tarif Fit Contrat d’Achat';$array['category'][5]['detail'][10053]['name'] = 'Tarif Fit Contrat d’Achat (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10053]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-tarifContratAchat1-3' ;
$array['category'][5]['detail'][10054]['champs'] = 'Périodicité de la facturation';$array['category'][5]['detail'][10054]['name'] = 'Périodicité de la facturation (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10054]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-peridiciteFacturation1-3' ;
$array['category'][5]['detail'][10055]['champs'] = 'Numéro de contrat d’achat';$array['category'][5]['detail'][10055]['name'] = 'Numéro de contrat d’achat (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10055]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-numeroContratAchat1-3' ;
$array['category'][5]['detail'][10056]['champs'] = 'Type de contrat';$array['category'][5]['detail'][10056]['name'] = 'Type de contrat (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10056]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-typeContrat1-3' ;
$array['category'][5]['detail'][10057]['champs'] = 'Agrégateur';$array['category'][5]['detail'][10057]['name'] = 'Agrégateur (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10057]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-agregateurEtap25-3' ;
$array['category'][5]['detail'][10058]['champs'] = 'Contrepartie';$array['category'][5]['detail'][10058]['name'] = 'Contrepartie (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10058]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-contrepartieEtap25-3' ;
$array['category'][5]['detail'][10059]['champs'] = 'Date de début de contrat d’achat';$array['category'][5]['detail'][10059]['name'] = 'Date de début de contrat d’achat (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10059]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-dateDebutContratAchat1-2' ;
$array['category'][5]['detail'][10060]['champs'] = 'Date de fin de contrat d’achat';$array['category'][5]['detail'][10060]['name'] = 'Date de fin de contrat d’achat (Etape 3 Timeline Valorisation)';$array['category'][5]['detail'][10060]['value'] = 'projet-'.ParametrageXlsProject::type_row_etap.'-etap-24-etap24Champs-3-etap26Champs-dateFinContratAchat1-2' ;
return $array ;
}
public function verouillerEtaps(){
$etaps = $this->em->getRepository(Etaps::class)->findAll();
foreach ($etaps as $etap){
$etapClass = 'App\\Entity\\Etap' . $etap->getNum();
$etapsEntity = $this->em->getRepository($etapClass)->findBy(['status' => Etaps::STATUS_FERMEE]);
if($etapsEntity){
foreach ($etapsEntity as $etapEntity){
if ($etapEntity) {
if ($etapEntity->getStatus() == Etaps::STATUS_FERMEE) {
$etapEntity->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etapEntity);
}
}
}
}
$this->em->flush();
}
}
public function checkEtapStatusColorByDoc($etapEntity){
if($etapEntity && $etapEntity->getEtap() && $etapEntity->getEtap()->getCategory() && $etapEntity->getEtap()->getCategory()->getNum() == 5){
$docsUploadeCount = 0;
$docsCount = 0;
if($etapEntity->getEtap()->getNum() == 24){
$etap25Champs = $etapEntity->getEtap24Champs();
if(count($etap25Champs) > 0){
return "#86D687";
}else{
return "red"; // rouge
}
}elseif ($etapEntity->getEtap()->getNum() == 25){
$etap25Champs = $etapEntity->getEtap24Champs();
if(count($etap25Champs) > 0){
foreach ($etap25Champs as $champ){
$typeValorisation = $champ->getTypeValorisation() ? $champ->getTypeValorisation()->getCategory() : null;
if($typeValorisation == TypeValorisation::type_guichet_ouvert){
$fileCount = $this->checkDocNotArchive($champ->getFileDemandeRaccordementEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileMailEnedisConfirmationEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_ao_cre){
$fileCount = $this->checkDocNotArchive($champ->getFileGarantieBancaireEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileRecepisseDemandeAoMultiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileLettreLaureaMultiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_acc || $typeValorisation == TypeValorisation::type_aci || $typeValorisation == TypeValorisation::type_ppa){
}elseif ($typeValorisation == TypeValorisation::type_spot){
}
}
}
} elseif ($etapEntity->getEtap()->getNum() == 26){
$etap24Champs = $etapEntity->getEtap24Champs();
if(count($etap24Champs) > 0){
foreach ($etap24Champs as $etap24Champ){
foreach ($etap24Champ->getEtap26Champs() as $champ){
$typeValorisation = $etap24Champ->getTypeValorisation() ? $etap24Champ->getTypeValorisation()->getCategory() : null;
if($typeValorisation == TypeValorisation::type_guichet_ouvert or $typeValorisation == TypeValorisation::type_ao_cre){
$fileCount = $this->checkDocNotArchive($champ->getFileContratAchatSigneEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileAttestionProducteurEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileAttestionInstallateurEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
$fileCount = $this->checkDocNotArchive($champ->getFileArContratAchatEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_acc || $typeValorisation == TypeValorisation::type_aci || $typeValorisation == TypeValorisation::type_ppa || $typeValorisation == TypeValorisation::type_fer){
$fileCount = $this->checkDocNotArchive($champ->getFileContratAchatSigneEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}elseif ($typeValorisation == TypeValorisation::type_spot){
$fileCount = $this->checkDocNotArchive($champ->getFileContratAchatSigneEtap25Multiple())? 1 : 0 ; $docsUploadeCount = $docsUploadeCount + $fileCount ;$docsCount = $docsCount + 1;
}
}
}
}
}
if($docsUploadeCount == 0){
return "red"; // rouge
}elseif ($docsUploadeCount == $docsCount){
return "#86D687"; // vert
}else{
return "#ff9f43"; // orange
}
}else{
if($etapEntity) {
$etapEntityClass = 'App\\Entity\\Etap' . $etapEntity->getEtap()->getNum();
$classMetadata = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etapEntity, $classMetadata);
$docsUploadeCount = $data['docsUploadeCount'];
$docsCount = $data['docsCount'];
if ($docsUploadeCount == 0) {
return "red"; // rouge
} elseif ($docsUploadeCount == $docsCount) {
return "#86D687"; // vert
} else {
return "#ff9f43"; // orange
}
}else{
return "red"; // rouge
}
}
}
public function checkEtapStatusColorByDocEtap4Construction($project){
$docsUploadeCountGlobal = 0;
$docsCountGlobal = 0;
$etap171 = $this->em->getRepository(Etap171::class)->findOneBy(['project'=>$project->getId()]);
$etap172 = $this->em->getRepository(Etap172::class)->findOneBy(['project'=>$project->getId()]);
$etap173 = $this->em->getRepository(Etap173::class)->findOneBy(['project'=>$project->getId()]);
$etap174 = $this->em->getRepository(Etap174::class)->findOneBy(['project'=>$project->getId()]);
$etap175 = $this->em->getRepository(Etap175::class)->findOneBy(['project'=>$project->getId()]);
$etapEntityClass = 'App\\Entity\\Etap' . $etap171->getEtap()->getNum();
$classMetadata171 = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etap171,$classMetadata171);
$docsUploadeCountGlobal += $data['docsUploadeCount'] ;
$docsCountGlobal +=$data['docsCount'] ;
$etapEntityClass = 'App\\Entity\\Etap' . $etap172->getEtap()->getNum();
$classMetadata172 = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etap172,$classMetadata172);
$docsUploadeCountGlobal += $data['docsUploadeCount'] ;
$docsCountGlobal +=$data['docsCount'] ;
$etapEntityClass = 'App\\Entity\\Etap' . $etap173->getEtap()->getNum();
$classMetadata173 = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etap173,$classMetadata173);
$docsUploadeCountGlobal += $data['docsUploadeCount'] ;
$docsCountGlobal +=$data['docsCount'] ;
$etapEntityClass = 'App\\Entity\\Etap' . $etap174->getEtap()->getNum();
$classMetadata174 = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etap174,$classMetadata174);
$docsUploadeCountGlobal += $data['docsUploadeCount'] ;
$docsCountGlobal +=$data['docsCount'] ;
$etapEntityClass = 'App\\Entity\\Etap' . $etap175->getEtap()->getNum();
$classMetadata175 = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtap($etap175,$classMetadata175);
$docsUploadeCountGlobal += $data['docsUploadeCount'] ;
$docsCountGlobal +=$data['docsCount'] ;
if($docsUploadeCountGlobal == 0){
return "red"; // rouge
}elseif ($docsUploadeCountGlobal == $docsCountGlobal){
return "#86D687"; // vert
}else{
return "#ff9f43"; // orange
}
}
public function checkEtapStatusColorByDocEtap3Construction($project){
$docsUploadeCount = 0;
$docsCount = 0;
$etap16 = $this->em->getRepository(Etap16::class)->findOneBy(['project'=>$project->getId()]);
$contratConstruction = $etap16->getContratConstruction();
foreach ($contratConstruction as $item){
$etapEntityClass = 'App\\Entity\\ContratConstruction' ;
$classMetadata = $this->em->getClassMetadata($etapEntityClass);
$data = $this->getNbrDocUploadByEtapDetail($item,$classMetadata);
$docsUploadeCount += $data['docsUploadeCount'] ;
$docsCount +=$data['docsCount'] ;
}
if($docsUploadeCount == 0){
return "red"; // rouge
}elseif ($docsUploadeCount == $docsCount){
return "#86D687"; // vert
}else{
return "#ff9f43"; // orange
}
}
public function copyFileDoeToEtap201(){
$date = new \DateTime('2023-11-15');
$does = $this->em->getRepository(Etap14::class)->findDoeEtap14ByDate($date);
foreach ($does as $doe){
$etap201 = $this->em->getRepository(Etap201::class)->findOneBy(['project'=>$doe['id']]);
if($etap201){
$doeDoc = $this->em->getRepository(DocUpload::class)->find($doe['idDoc']);
$docUpload = new DocUpload();
$docUpload->setName($doeDoc->getName());
$docUpload->setCreatedAt($doeDoc->getCreatedAt());
$docUpload->setUserCreated($doeDoc->getUserCreated());
$docUpload->setTitreDoc($doeDoc->getTitreDoc());
$fileNameCopy = $doe['id'].'-'.time().$doeDoc->getPath();
$file = $this->params->get('uploads_directory') . '/' . $doeDoc->getPath();
$fileCopy = $this->params->get('uploads_directory'). '/' . $fileNameCopy;
copy($file , $fileCopy);
$docUpload->setPath($fileNameCopy);
$this->em->persist($docUpload);
$this->em->flush();
$etap201->addFileDoeEtap201Multiple($docUpload);
$this->em->persist($etap201);
$this->em->flush();
$this->getNomenclature($etap201,$docUpload,'DOE');
}
}
}
public function getProjectsActive(){
$projects = $this->em->getRepository(Project::class)->findAllProjectActive();
return $projects;
}
public function updateStatusUrbanisme($project){
$str = '';
$etap0 = $this->em->getRepository(Etap0::class)->findOneBy(['project'=>$project->getId()]);
$etap1 = $this->em->getRepository(Etap1::class)->findOneBy(['project'=>$project->getId()]);
$etap2 = $this->em->getRepository(Etap2::class)->findOneBy(['project'=>$project->getId()]);
$etap3 = $this->em->getRepository(Etap3::class)->findOneBy(['project'=>$project->getId()]);
$etap4 = $this->em->getRepository(Etap4::class)->findOneBy(['project'=>$project->getId()]);
$etap16 = $this->em->getRepository(Etap16::class)->findOneBy(['project'=>$project->getId()]);
$etap174 = $this->em->getRepository(Etap174::class)->findOneBy(['project'=>$project->getId()]);
$etap171 = $this->em->getRepository(Etap171::class)->findOneBy(['project'=>$project->getId()]);
$date1PassageHuissierModif2mois = null;
if($etap2){
$date1PassageHuissier = $etap2->getDate1PassageHuissier();
if($date1PassageHuissier){
$date1PassageHuissierModif = new \DateTime($date1PassageHuissier->format('d-m-Y'));
$date1PassageHuissierModif2mois = $date1PassageHuissierModif->modify('+2 months');
}
}
if($etap4 && $this->checkDocNotArchive($etap4->getFileDaactMultiple())) {
$str = 'DAACT OK';
}elseif($etap174 && ($etap174->getDateFinPosePv() && ($etap174->getDateFinPosePv() <= new \DateTime('now')))){
if($etap4 && $etap4->getDateDaact()) {
$str = 'DAACT signée à recup. ('.$etap4->getDateDaact()->format('d/m').')';
}else{
$str = 'DAACT à déposer';
}
}elseif(($project->getTypologieProject() && ($project->getTypologieProject()->getId() == 2)) && (($etap16 && count($etap16->getContratConstruction()) > 0 && $this->checkDocNotArchive($etap16->getContratConstruction()[0]->getFileContratEpcMultiple())) || ($etap171 && $etap171->getDateRealisationPlateforme())) ){
if(($etap171 && $this->checkDocNotArchive($etap171->getFileDocEtap171Multiple())) || ($etap3 && $this->checkDocNotArchive($etap3->getFileDocDrocMultiple()))){
$str = 'DOC OK';
}elseif ($etap4 && $etap4->getDateDaact()){
$str = 'DAACT signée à recup. ('.$etap4->getDateDaact()->format('d/m').')';
}else{
$str = 'DAACT à déposer';
}
}elseif ($etap2 && $this->checkDocNotArchive($etap2->getFileCertificatNonRecoursMultiple()) && $this->checkDocNotArchive($etap2->getFileCertificatNonRetraitMultiple())){
$str = 'ANR OK';
}elseif ($etap2 && $this->checkDocNotArchive($etap2->getFilePVPassageHuissierMultiple())){
if ($etap2 && $this->checkDocNotArchive($etap2->getFileCertificatNonRecoursMultiple())){
$str = 'Certif. non-retrait à récup.';
}else{
if ($etap2 && $this->checkDocNotArchive($etap2->getFileCertificatNonRetraitMultiple())){
$str = 'Certif. non-recours à récup.';
}else{
$str = 'ANR Ã demander';
}
}
}elseif ($etap2 && ($date1PassageHuissierModif2mois && $date1PassageHuissierModif2mois < new \DateTime('now'))){
$str = 'PVA à récup. ('.$date1PassageHuissierModif2mois->format('d/m').')';
}elseif ($etap2 && $etap2->getDate1PassageHuissier() ){
$str = 'Att.PVA ('.$date1PassageHuissierModif2mois->format('d/m').')';
}elseif ($etap1 && $this->checkDocNotArchive($etap1->getFileArretePcDpMultiple()) ){
$str = 'Huissier NOK';
}elseif ($project->getTypologieProject() && ($project->getTypologieProject()->getId() == 1)){
if($etap1 && $etap1->getDateDepotComplement()){
$dateDepotComplementModifModif = new \DateTime($etap1->getDateDepotComplement()->format('d-m-Y'));
$delaiInstruction = $etap1->getDelaiInstruction()? (int)$etap1->getDelaiInstruction() : 3 ;
$dateDepotComplementModifPlus = $dateDepotComplementModifModif->modify('+'.$delaiInstruction.' months');
$str = 'DP comp. en instruction -> '.$dateDepotComplementModifPlus->format('d/m');
}elseif($etap1 && $etap1->getDateDemandeComplement()){
$str = 'Dem. Pièces comp. ('.$etap1->getDateDemandeComplement()->format('d/m').')';
}elseif($etap1 && $etap1->getDateDepotPc() && $this->checkDocNotArchive($etap1->getFileRecepisseDepotPcMultiple())){
// $dateDepotModif = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
// $dateDepotModifPlus = $dateDepotModif->modify('+42 days');
// if($dateDepotModifPlus < new \DateTime('now')){
// $dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
// $delaiInstruction = $etap1->getDelaiInstruction()? (int)$etap1->getDelaiInstruction() : 3 ;
// $dateDepotModif2Plus = $dateDepotModif2->modify('+'.$delaiInstruction.' months');
// $str = 'DP en instruction -> '.$dateDepotModif2Plus->format('d/m');
// }else{
// $dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
// $dateDepotModif2Plus = $dateDepotModif2->modify('+1 months');
// $str = 'DP déposée - check comp. -> '.$dateDepotModif2Plus->format('d/m');
// }
if($etap1->getIsNotDateDemandeComplement()){
$dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
$delaiInstruction = $etap1->getDelaiInstruction()? (int)$etap1->getDelaiInstruction() : 3 ;
$dateDepotModif2Plus = $dateDepotModif2->modify('+'.$delaiInstruction.' months');
$str = 'DP en instruction -> '.$dateDepotModif2Plus->format('d/m');
}else{
$dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
$dateDepotModif2Plus = $dateDepotModif2->modify('+1 months');
$str = 'DP déposée - check comp. -> '.$dateDepotModif2Plus->format('d/m');
}
}elseif($etap1 && $etap1->getDateDepotPc()){
$str = 'DP déposée - récup. récépissé';
}elseif($etap1 && $this->checkDocNotArchive($etap1->getFileDossierPcDpMultiple())){
$str = 'DP à déposer';
}else{
$str = 'DP Ã faire';
}
}else{
if($project->getTypologieProject() && ($project->getTypologieProject()->getId() == 2)){
if($etap1 && count($etap1->getEtap1Pcm()) > 0){
$pcm = $etap1->getEtap1Pcm()[0];
if($pcm && $pcm->getDateDepotComplement()){
$dateDepotComplementPcmModif = new \DateTime($pcm->getDateDepotComplement()->format('d-m-Y'));
$delaiInstruction = $pcm->getDelaiInstruction()? (int)$pcm->getDelaiInstruction() : 3 ;
$dateDepotComplementPcmModifPlus = $dateDepotComplementPcmModif->modify('+'.$delaiInstruction.' months');
$str = 'PCM comp. en instruction -> '.$dateDepotComplementPcmModifPlus->format('d/m');
}elseif ($pcm && $pcm->getDateDemandeComplement()){
$str = 'Dem. Pièces comp. PCM ('.$pcm->getDateDemandeComplement()->format('d/m').')';
}elseif($pcm && $pcm->getDateDepotPCM() && $this->checkDocNotArchive($pcm->getFileRecepisseDepotPcmMultiple())){
// $dateDepotPCMModif = new \DateTime($pcm->getDateDepotPCM()->format('d-m-Y'));
// $dateDepotPCMModifPlus = $dateDepotPCMModif->modify('+42 days');
// if($dateDepotPCMModifPlus < new \DateTime('now')){
// $dateDepotPCMModif2 = new \DateTime($pcm->getDateDepotPCM()->format('d-m-Y'));
// $delaiInstruction = $pcm->getDelaiInstruction()? (int)$pcm->getDelaiInstruction() : 3 ;
// $dateDepotPCMModif2Plus = $dateDepotPCMModif2->modify('+'.$delaiInstruction.' months');
// $str = 'PCM en instruction -> '.$dateDepotPCMModif2Plus->format('d/m');
// }else{
// $dateDepotPCMModif2 = new \DateTime($pcm->getDateDepotPCM()->format('d-m-Y'));
// $dateDepotPCMModif2Plus = $dateDepotPCMModif2->modify('+1 months');
// $str = 'PCM déposée - check comp. -> '.$dateDepotPCMModif2Plus->format('d/m');
// }
if($pcm->getIsNotDateDemandeComplementPcm()){
$dateDepotPCMModif2 = new \DateTime($pcm->getDateDepotPCM()->format('d-m-Y'));
$delaiInstruction = $pcm->getDelaiInstruction()? (int)$pcm->getDelaiInstruction() : 3 ;
$dateDepotPCMModif2Plus = $dateDepotPCMModif2->modify('+'.$delaiInstruction.' months');
$str = 'PCM en instruction -> '.$dateDepotPCMModif2Plus->format('d/m');
}else{
$dateDepotPCMModif2 = new \DateTime($pcm->getDateDepotPCM()->format('d-m-Y'));
$dateDepotPCMModif2Plus = $dateDepotPCMModif2->modify('+1 months');
$str = 'PCM déposée - check comp. -> '.$dateDepotPCMModif2Plus->format('d/m');
}
}elseif($pcm && $pcm->getDateDepotPCM()){
$str = 'PCM déposée - récup. récépissé';
}elseif($pcm && $this->checkDocNotArchive($pcm->getFileDossierPcmpMultiple())){
$str = 'PCM à déposer';
}else{
$str = 'PCM Ã faire';
}
}else{
if($etap1 && $etap1->getDateDepotComplement()){
$dateDepotComplementModifModif = new \DateTime($etap1->getDateDepotComplement()->format('d-m-Y'));
$delaiInstruction = $etap1->getDelaiInstruction()? (int)$etap1->getDelaiInstruction() : 3 ;
$dateDepotComplementModifPlus = $dateDepotComplementModifModif->modify('+'.$delaiInstruction.' months');
$str = 'PC comp. en instruction -> '.$dateDepotComplementModifPlus->format('d/m');
}elseif($etap1 && $etap1->getDateDemandeComplement()){
$str = 'Dem. Pièces comp. ('.$etap1->getDateDemandeComplement()->format('d/m').')';
}elseif($etap1 && $etap1->getDateDepotPc() && $this->checkDocNotArchive($etap1->getFileRecepisseDepotPcMultiple())){
// $dateDepotModif = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
// $dateDepotModifPlus = $dateDepotModif->modify('+42 days');
// if($dateDepotModifPlus < new \DateTime('now')){
// $dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
// $delaiInstruction = $etap1->getDelaiInstruction()? (int)$etap1->getDelaiInstruction() : 3 ;
// $dateDepotModif2Plus = $dateDepotModif2->modify('+'.$delaiInstruction.' months');
// $str = 'PC en instruction -> '.$dateDepotModif2Plus->format('d/m');
// }else{
// $dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
// $dateDepotModif2Plus = $dateDepotModif2->modify('+1 months');
// $str = 'PC déposé - check comp. -> '.$dateDepotModif2Plus->format('d/m');
// }
if($etap1->getIsNotDateDemandeComplement()){
$dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
$delaiInstruction = $etap1->getDelaiInstruction()? (int)$etap1->getDelaiInstruction() : 3 ;
$dateDepotModif2Plus = $dateDepotModif2->modify('+'.$delaiInstruction.' months');
$str = 'PC en instruction -> '.$dateDepotModif2Plus->format('d/m');
}else{
$dateDepotModif2 = new \DateTime($etap1->getDateDepotPc()->format('d-m-Y'));
$dateDepotModif2Plus = $dateDepotModif2->modify('+1 months');
$str = 'PC déposé - check comp. -> '.$dateDepotModif2Plus->format('d/m');
}
}elseif($etap1 && $etap1->getDateDepotPc()){
$str = 'PC déposé - récup. récépissé';
}elseif($etap1 && $this->checkDocNotArchive($etap1->getFileDossierPcDpMultiple())){
$str = 'PC à déposer';
}else{
$str = 'PC Ã faire';
}
}
}else{
$str = '';
}
}
$statusOld = $this->em->getRepository(StatusUrbanisme::class)->findOneBy(['project'=>$project->getId()]);
if($statusOld){
if($statusOld && $statusOld->getStatusStr() == $str){
}else{
$statusOld->setStatusStr($str);
$statusOld->setUpdatedAt(new \DateTime());
$statusOld->setProject($project);
$this->em->persist($statusOld);
$this->em->flush();
}
return $statusOld;
}else{
$status = new StatusUrbanisme();
$status->setStatusStr($str);
$status->setUpdatedAt(new \DateTime());
$status->setProject($project);
$this->em->persist($status);
$this->em->flush();
return $status;
}
}
public function updateStatusFoncier($project){
$str1 = '';
$str2 = '';
$str3 = '';
$etap1 = $this->em->getRepository(Etap1::class)->findOneBy(['project'=>$project->getId()]);
$etap6 = $this->em->getRepository(Etap6::class)->findOneBy(['project'=>$project->getId()]);
$etap7 = $this->em->getRepository(Etap7::class)->findOneBy(['project'=>$project->getId()]);
$etap601 = $this->em->getRepository(Etap601::class)->findOneBy(['project'=>$project->getId()]);
$etap602 = $this->em->getRepository(Etap602::class)->findOneBy(['project'=>$project->getId()]);
// status 1
if($etap6 && $etap6->getSituationFonciere() == 'NOK' ){
$str1 = 'Foncier NOK';
}elseif($etap6 && $etap6->getStatutMainlevee() && $etap6->getStatutMainlevee() != 'n.a.' && $etap6->getStatutMainlevee() != 'ML OK'){
$str1 = $etap6->getStatutMainlevee();
}else{
$str1 = '';
}
// status 2
if($etap7 && $this->checkDocNotArchive($etap7->getFileBailSigneMultiple())) {
$str2 = '';
$str1 = '';
}else{
if($etap601 && $this->checkDocNotArchive($etap601->getFileEtatDecriptifMultiple())) {
if($project->getTypologieProject() && $project->getTypologieProject()->getId() == 1){
$str2 = 'EDDV OK';
}elseif($project->getTypologieProject() && $project->getTypologieProject()->getId() == 2){
$str2 = 'DA OK';
}else{
$str2 = '';
}
}elseif ($etap601 && $etap601->getDateIntervention()){
if($project->getTypologieProject() && $project->getTypologieProject()->getId() == 1){
$str2 = 'Att. EDDV (interv. '.$etap601->getDateIntervention()->format('d/m').' )';
}elseif($project->getTypologieProject() && $project->getTypologieProject()->getId() == 2){
$str2 = 'Att. DA (interv. '.$etap601->getDateIntervention()->format('d/m').' )';
}else{
$str2 = '';
}
}elseif ($etap601 && $etap601->getDateLancement()){
if($project->getTypologieProject() && $project->getTypologieProject()->getId() == 1){
$str2 = 'Att. EDDV ('.$etap601->getDateLancement()->format('d/m').')';
}elseif($project->getTypologieProject() && $project->getTypologieProject()->getId() == 2){
$str2 = 'Att. DA ('.$etap601->getDateLancement()->format('d/m').')';
}else{
$str2 = '';
}
}elseif ($etap601 && $etap601->getFournisseur()){
if($project->getTypologieProject() && $project->getTypologieProject()->getId() == 1){
$str2 = 'Att. EDDV';
}elseif($project->getTypologieProject() && $project->getTypologieProject()->getId() == 2){
$str2 = 'Att. DA';
}else{
$str2 = '';
}
}else{
if(($etap1 && $etap1->getDateArretePcDp() ) || ($etap1 && $etap1->getDateArretePcDpMixte())){
$str2 = 'Géom. NOK';
}else{
$str2 = '';
}
}
}
// status 3
if($etap7 && $this->checkDocNotArchive($etap7->getFileBailSigneMultiple())) {
$str3 = 'Bail signé';
}elseif ($etap602 && $etap602->getDateSignatureProcuration()){
$str3 = 'Procs signées ('.$etap602->getDateSignatureProcuration()->format('d/m').')';
}elseif ($etap602 && $etap602->getDateEnvoiPocuration()){
$str3 = 'Procs envoyées ('.$etap602->getDateEnvoiPocuration()->format('d/m').')';
}elseif ($etap602 && $etap602->getFournisseur()){
$str3 = 'Bail EC';
}else{
$str3 = 'Notaire NOK';
}
$statusOld = $this->em->getRepository(StatusFoncier::class)->findOneBy(['project'=>$project->getId()]);
$str = '';
if($str1 == ''){
$str = $str1." ";
}else{
$str = $str1." | ";
}
if($str2 == ''){
$str = $str.$str2." ".$str3;
}else{
$str = $str.$str2." | ".$str3;
}
if($statusOld){
if($statusOld && $statusOld->getStatusStr() == $str){
}else {
$statusOld->setStatusStr($str);
$statusOld->setStatusStr1($str1);
$statusOld->setStatusStr2($str2);
$statusOld->setStatusStr3($str3);
$statusOld->setUpdatedAt(new \DateTime());
$statusOld->setProject($project);
$this->em->persist($statusOld);
$this->em->flush();
}
return $statusOld;
}else{
$status = new StatusFoncier();
$status->setStatusStr($str);
$status->setStatusStr1($str1);
$status->setStatusStr2($str2);
$status->setStatusStr3($str3);
$status->setUpdatedAt(new \DateTime());
$status->setProject($project);
$this->em->persist($status);
$this->em->flush();
return $status;
}
}
public function updateStatusRaccordement($project){
$statusOld = $this->em->getRepository(StatusRaccordement::class)->findOneBy(['project'=>$project->getId()]);
$str = '';
if($statusOld){
if($statusOld && $statusOld->getStatusStr() == $str){
}else {
$statusOld->setStatusStr($str);
$statusOld->setUpdatedAt(new \DateTime());
$statusOld->setProject($project);
$this->em->persist($statusOld);
$this->em->flush();
}
return $statusOld;
}else{
$status = new StatusRaccordement();
$status->setStatusStr($str);
$status->setUpdatedAt(new \DateTime());
$status->setProject($project);
$this->em->persist($status);
$this->em->flush();
return $status;
}
}
public function updateStatusConstruction($project){
$statusOld = $this->em->getRepository(StatusConsruction::class)->findOneBy(['project'=>$project->getId()]);
$str = '';
if($statusOld){
if($statusOld && $statusOld->getStatusStr() == $str){
}else {
$statusOld->setStatusStr($str);
$statusOld->setUpdatedAt(new \DateTime());
$statusOld->setProject($project);
$this->em->persist($statusOld);
$this->em->flush();
}
return $statusOld;
}else{
$status = new StatusConsruction();
$status->setStatusStr($str);
$status->setUpdatedAt(new \DateTime());
$status->setProject($project);
$this->em->persist($status);
$this->em->flush();
return $status;
}
}
public function removeUpdateManuelStatus($status){
if($status){
$status->setIsModif(false);
$this->em->persist($status);
$this->em->flush();
}
}
public function getStatusDetailStr($project,$cat){
if($cat == 1){
$status = $this->em->getRepository(StatusUrbanisme::class)->findOneBy(['project'=>$project->getId()]);
}elseif ($cat == 2){
$status = $this->em->getRepository(StatusFoncier::class)->findOneBy(['project'=>$project->getId()]);
}elseif ($cat == 3){
$status = $this->em->getRepository(StatusRaccordement::class)->findOneBy(['project'=>$project->getId()]);
}elseif ($cat == 4){
$status = $this->em->getRepository(StatusConsruction::class)->findOneBy(['project'=>$project->getId()]);
}else{
$status = null;
}
if($status){
if($status->getIsModif()){
return $status->getStatusStrModif();
}else{
return $status->getStatusStr();
}
}else{
return '';
}
}
public function updateStatusDetailStrManuel($project,$cat,$str){
if($cat == 1){
$status = $this->em->getRepository(StatusUrbanisme::class)->findOneBy(['project'=>$project->getId()]);
}elseif ($cat == 2){
$status = $this->em->getRepository(StatusFoncier::class)->findOneBy(['project'=>$project->getId()]);
}elseif ($cat == 3){
$status = $this->em->getRepository(StatusRaccordement::class)->findOneBy(['project'=>$project->getId()]);
}elseif ($cat == 4){
$status = $this->em->getRepository(StatusConsruction::class)->findOneBy(['project'=>$project->getId()]);
}else{
$status = null;
}
if($status){
$status->setStatusStrModif($str);
$status->setIsModif(true);
$this->em->persist($status);
$this->em->flush();
}else{
if($cat == 3 || $cat == 4){
if($cat == 3){
$status = new StatusRaccordement();
}elseif ($cat == 4){
$status = new StatusConsruction();
}
$status->setProject($project);
$status->setStatusStrModif($str);
$status->setIsModif(true);
$this->em->persist($status);
$this->em->flush();
}
}
}
public function updateCodeProject(){
$fileName = 'Codes projets.xlsx';
$filePath = $this->params->get('images_directory'). '/' . $fileName;
if (!file_exists($filePath)) {
throw new \Exception("Le fichier n'existe pas : " . $filePath);
}
$spreadsheet = IOFactory::load($filePath);
$worksheet = $spreadsheet->getActiveSheet();
$data = [];
$i = 1;
foreach ($worksheet->getRowIterator() as $row) {
$rowData = [];
if($i > 2){
foreach ($row->getCellIterator() as $cell) {
if($cell->getColumn() == 'A'){
$rowData[] = $cell->getValue();
}
if($cell->getColumn() == 'E'){
$rowData[] = $cell->getOldCalculatedValue();
}
if($cell->getColumn() == 'D'){
$rowData[] = $cell->getValue();
}
}
if($rowData && isset($rowData[0]) && isset($rowData[1])){
$data[$rowData[0]]['num'] = $rowData[1];
$data[$rowData[0]]['code'] = $rowData[2];
}
}
$i++;
}
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$name = $project->getName();
if(isset($data[$name])){
$project->setIsImportCode(true);
$project->setCodeProject($data[$name]['code']);
$project->setCompteurErpiNbr((int)$data[$name]['num']);
$project->setCompteurErpiAnnee($project->getCreatedAt()->format('y'));
$this->em->persist($project);
}
}
$this->em->flush();
$worksheet2 = $spreadsheet->setActiveSheetIndex(1);
$data = [];
$i = 1;
foreach ($worksheet2->getRowIterator() as $row) {
$rowData = [];
if($i > 5){
foreach ($row->getCellIterator() as $cell) {
if($cell->getColumn() == 'B'){
$rowData[] = $cell->getValue();
}
if($cell->getColumn() == 'C'){
$rowData[] = $cell->getValue();
}
}
if($rowData && isset($rowData[0]) && isset($rowData[1])){
$data[$rowData[0]]['name'] = $rowData[0];
$data[$rowData[0]]['code'] = $rowData[1];
}
}
$i++;
}
$devs = $this->em->getRepository(User::class)->getUserByRole('ROLE_DEV');
foreach ($devs as $dev){
$name = $dev->getFirstName().' '.$dev->getLastname();
if(isset($data[$name])){
$dev->setCodeDev($data[$name]['code']);
$this->em->persist($dev);
}
}
$this->em->flush();
$this->setAllCodeProject();
}
public function setCodeProject($project){
if(!$project->getIsImportCode()){
if($project && $project->getDeveloppeur() && $project->getChoixDev() != Project::dev_intern){
if($project->getDeveloppeur()->getCodeDev()){
$devCode = $project->getDeveloppeur()->getCodeDev();
}else{
$devCode = strtoupper(substr($project->getDeveloppeur()->getFirstname(), 0, 3));
}
$annee = $project->getCreatedAt()->format('y');
if(!$project->getCodeProject()){
$compteurErpi= $this->em->getRepository(Project::class)->findCodeProjectByYearAndDev($annee,$project->getDeveloppeur()->getId());
$compteurNbr = 1;
if($compteurErpi){
$compteurNbr = $compteurErpi->getCompteurErpiNbr() ? $compteurErpi->getCompteurErpiNbr() + 1 : 1;
}
$codeGenerate = $annee.''.$devCode.''.$this->generateCodeCompteurErpi($compteurNbr);
$project->setCodeProject($codeGenerate);
$project->setCompteurErpiNbr($compteurNbr);
$project->setCompteurErpiAnnee($annee);
$this->em->persist($project);
$this->em->flush();
}else{
$pos = strpos($project->getCodeProject(),$devCode) ;
if ($pos === false) {
$codeGenerate = $annee.''.$devCode.''.$this->generateCodeCompteurErpi($project->getCompteurErpiNbr());
$project->setCodeProject($codeGenerate);
$this->em->persist($project);
$this->em->flush();
}
}
}
}
}
function generateCodeCompteurErpi($number) {
$numberFormatted = str_pad($number, 4, '0', STR_PAD_LEFT);
return $numberFormatted;
}
public function setAllCodeProject(){
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$this->setCodeProject($project);
}
}
public function addAlertEtap1AndEtap2($project) : void
{
$dateNow = new \DateTime();
$dateCreationProject = $project->getCreatedAt();
if($dateCreationProject){
$dateCreationProject->modify('+6 month');
}
$alert = false;
if( $dateNow >= $dateCreationProject ) {
$etap1 = $this->em->getRepository(Etap1::class)->findOneBy(['project' => $project->getId()]);
$etap2 = $this->em->getRepository(Etap2::class)->findOneBy(['project' => $project->getId()]);
if ($etap1 && $etap2) {
$color = $this->checkEtapStatusColorByDoc($etap1);
$color2 = $this->checkEtapStatusColorByDoc($etap2);
if (($color == '#86D687' or $color == '#ff9f43') and ($color2 == '#86D687' or $color2 == '#ff9f43')) {
$alert = false;
} else {
$alert = true;
}
}
}
$alertEntity = $this->em->getRepository(Alert::class)->findOneBy(['project'=>$project->getId(),'typeAlert'=>Alert::ALERT_Etap1And2]);
if($alertEntity){
if($alert){
$alertEntity->setIsArchived(false);
}else{
$alertEntity->setIsArchived(true);
}
$this->em->persist($alertEntity);
$this->em->flush();
}
else{
$alertEntity = new Alert();
$alertEntity->setDateLimit($dateCreationProject);
$alertEntity->setProject($project);
$alertEntity->setTypeAlert(Alert::ALERT_Etap1And2);
if($alert){
$alertEntity->setIsArchived(false);
}else{
$alertEntity->setIsArchived(true);
}
$this->em->persist($alertEntity);
$this->em->flush();
}
}
public function addAlertsEtap1AndEtap2(){
$projects = $this->em->getRepository(Project::class)->findAllProjectActive();
if($projects){
foreach ($projects as $project){
$this->addAlertEtap1AndEtap2($project);
}
}
}
public function getAlertsEtap1AndEtap2($project){
$dateNow = new \DateTime();
$dateCreationProject = $project->getCreatedAt();
if($dateCreationProject){
$dateCreationProject->modify('+6 month');
}
$alert = false;
if( $dateNow >= $dateCreationProject ) {
$etap1 = $this->em->getRepository(Etap1::class)->findOneBy(['project' => $project->getId()]);
$etap2 = $this->em->getRepository(Etap2::class)->findOneBy(['project' => $project->getId()]);
if ($etap1 && $etap2) {
$color = $this->checkEtapStatusColorByDoc($etap1);
$color2 = $this->checkEtapStatusColorByDoc($etap2);
if (($color == '#86D687' or $color == '#ff9f43') and ($color2 == '#86D687' or $color2 == '#ff9f43')) {
$alert = false;
} else {
$alert = true;
}
}
}
$str = false;
if($alert){
$str = 'il n’y a pas d\'avancement de l\'étape 1 à l\'étape 2 de timeline urbanisme ';
}
return $str;
}
public function sendMailMESprevisionnelle($date){
$etaps14 = $this->em->getRepository(Etap14::class)->findByDateMESprevisionnelle($date);
if($etaps14){
$userCourant = $this->security->getUser();
foreach ($etaps14 as $etap){
if(!$etap->getProject()->getIsNotifDateMESPrevisionnelle()) {
$isNotif = $this->notification->notifProjectDateMESPrevisionnelle($etap,$userCourant);
if ($isNotif) {
$etap->getProject()->setIsNotifDateMESPrevisionnelle(true);
$this->em->persist($etap->getProject());
$this->em->flush();
}
}
}
}
}
public function changeDev4($date){
$etaps173 = $this->em->getRepository(Etap173::class)->getDateCahrpentier($date);
if($etaps173){
foreach ($etaps173 as $etap173){
if ($etap173 && is_object($etap173->getDateDebutCharpente()) && ($date >= $etap173->getDateDebutCharpente()) ){
$this->updateStatusTracker($etap173->getProject());
}
}
}
}
public function updateStatusTrackerConstruction($project){
if($project){
$isGoConsultation = false;
$isAttenteDevis = false;
$isArbitrageDevis = false;
$isBudgetCapex = false;
$isContratConstruction = false;
$isConstructionDemarree = false;
$isConstructionAcheveeNonRaccordable = false;
$isConstructionAcheveeARaccorder = false;
$isConstructionAcheveeRaccordee = false;
$isPassagedre = false;
$isConsuelobtenu = false;
$isOperating = false;
$isBillable = false;
$isInvoiced = false;
$isOrderDemarrageEnvoye = false;
if($project->getStadeConstruction() == 'Go consultation'){
$isGoConsultation = true;
}
if($project->getStadeConstruction() == 'Attente devis' or $project->getStadeConstruction() == 'Devis reçus' or $project->getStadeConstruction() == 'Attente validation budget/Capex' ){
$isAttenteDevis = true;
}
if($project->getStadeConstruction() == 'Arbitrage Devis'){
$isArbitrageDevis = true;
}
if($project->getStadeConstruction() == 'Devis signé' or$project->getStadeConstruction() == 'Budget/Capex validé' or $project->getStadeConstruction() == 'Contrat de construction signé' or $project->getStadeConstruction() == 'Ordre de démarrage envoyé' or $project->getStadeConstruction() == 'Travaux réceptionnés'){
$isBudgetCapex = true;
}
$etap16 = $this->em->getRepository(Etap16::class)->findOneBy(['project'=>$project->getId()]);
if(count($etap16->getContratConstruction()) > 0){
foreach ($etap16->getContratConstruction() as $item){
if(count($item->getFileContratEpcMultiple())>0){
foreach ($item->getFileContratEpcMultiple() as $value){
if(!$value->getIsArchived()){
$isContratConstruction = true;
}
}
}
}
}
$dateJour = new \DateTime();
$dateNow1 = new \DateTime($dateJour->format('Y-m-d').' 23:59:59');
$etap172 = $this->em->getRepository(Etap172::class)->findOneBy(['project'=>$project->getId()]);
$etap173 = $this->em->getRepository(Etap173::class)->findOneBy(['project'=>$project->getId()]);
$etap174 = $this->em->getRepository(Etap174::class)->findOneBy(['project'=>$project->getId()]);
$etap175 = $this->em->getRepository(Etap175::class)->findOneBy(['project'=>$project->getId()]);
$etap121 = $this->em->getRepository(Etap121::class)->findOneBy(['project'=>$project->getId()]);
if($etap172 && $etap172->getDateDebutFondation() && ($etap172->getDateDebutFondation() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap173 && $etap173->getDateDebutCharpente() && ($etap173->getDateDebutCharpente() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap173 && $etap173->getDateDebutCouverture() && ($etap173->getDateDebutCouverture() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap174 && $etap174->getDateDebutPosePv() && ($etap174->getDateDebutPosePv() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap174 && $etap174->getDateFinPosePv() && ($etap174->getDateFinPosePv() <= $dateNow1)){
if($etap175 && !$etap175->getDateAchevementTraveaux()){
if($etap121 && !$etap121->getDateInstallationPDL()){
$isConstructionAcheveeNonRaccordable = true;
}
if($etap121 && (!$etap121->getDatePrevisionnelleInstallationPDL() || ($etap121->getDatePrevisionnelleInstallationPDL() < $dateNow1))){
$isConstructionAcheveeNonRaccordable = true;
}
if($etap121 && !$etap121->getDateMiseSousTensionEnedis()){
$isConstructionAcheveeNonRaccordable = true;
}
}
}
if($etap174 && $etap174->getDateFinPosePv() && ($etap174->getDateFinPosePv() <= $dateNow1)){
if($etap175 && !$etap175->getDateAchevementTraveaux()){
if($etap121 && $etap121->getDateInstallationPDL() && $etap121->getDateInstallationPDL() <= $dateNow1){
$isConstructionAcheveeARaccorder = true;
}
if($etap121 && $etap121->getDatePrevisionnelleInstallationPDL() && $etap121->getDatePrevisionnelleInstallationPDL() <= $dateNow1){
$isConstructionAcheveeARaccorder = true;
}
if($etap121 && $etap121->getDateMiseSousTensionEnedis() && $etap121->getDateMiseSousTensionEnedis() <= $dateNow1){
$isConstructionAcheveeARaccorder = true;
}
}
}
$etap175 = $this->em->getRepository(Etap175::class)->findOneBy(['project'=>$project->getId()]);
if($etap175 && $etap175->getDateAchevementTraveaux()){
$isConstructionAcheveeRaccordee = true;
}
$etap13 = $this->em->getRepository(Etap13::class)->findOneBy(['project'=>$project->getId()]);
$etap20 = $this->em->getRepository(Etap20::class)->findOneBy(['project'=>$project->getId()]);
if($etap13 || $etap20){
if($this->checkArchiveFile($project, Etaps::ETAP_13, 'getFileDREMultiple')){
$isPassagedre = true;
}
if($etap13->getDateConsuel() or $this->checkArchiveFile($project, Etaps::ETAP_13, 'getFileConsuelMultiple')){
$isConsuelobtenu = true;
}
if($etap20->getDateConsuelEtap20() or $this->checkArchiveFile($project, Etaps::ETAP_20, 'getFileConsuelEtap20Multiple')){
$isConsuelobtenu = true;
}
}
if($project->getDateMiseEnService()){
$isOperating = true;
}
$etap14 = $this->em->getRepository(Etap14::class)->findOneBy(['project'=>$project->getId()]);
if($etap13 || $etap14){
if((int)$project->getCapacite() > 100 && ($this->checkArchiveFile($project, Etaps::ETAP_13, 'getFileAttestationBureauControleMultiple') or $this->checkArchiveFile($project, Etaps::ETAP_14, 'getFileAttestationS21Multiple'))){
$isBillable = true;
}
}
// $etap15 = $this->em->getRepository(Etap15::class)->findOneBy(['project'=>$project->getId()]);
// if($etap15 && $this->checkArchiveFile($project, Etaps::ETAP_15, 'getFileContratAchatSigneMultiple')){
// $isInvoiced = true;
// }
$etap24 = $this->em->getRepository(Etap24::class)->findOneBy(['project'=>$project->getId()]);
if($etap24 && count($etap24->getEtap24Champs()) > 0){
$notEmpty = false ;
foreach ($etap24->getEtap24Champs() as $champ){
if(count($champ->getEtap26Champs()) > 0){
foreach ($champ->getEtap26Champs() as $champ26){
if(count($champ26->getFileContratAchatSigneEtap25Multiple()) > 0){
foreach ($champ26->getFileContratAchatSigneEtap25Multiple() as $doc){
if(!$doc->getIsArchived()){
$notEmpty = true ;
}
}
}
}
}
}
if($notEmpty){
$isInvoiced = true;
}
}
$etap171 = $this->em->getRepository(Etap171::class)->findOneBy(['project'=>$project->getId()]);
if($etap171 && $this->checkArchiveFile($project, Etaps::ETAP_171, 'getFileOrderServiceMultiple')){
$isOrderDemarrageEnvoye = true;
}
$status = 0;
if($isInvoiced){
$status = StatusTrackerConstruction::Invoiced;
}elseif ($isBillable) {
$status = StatusTrackerConstruction::Billable;
}elseif ($isOperating) {
$status = StatusTrackerConstruction::Operating;
}elseif ($isConsuelobtenu) {
$status = StatusTrackerConstruction::Consuel_obtenu;
}elseif ($isPassagedre) {
$status = StatusTrackerConstruction::Passage_dre;
}elseif ($isConstructionAcheveeRaccordee) {
$status = StatusTrackerConstruction::Construction_Achevee_Raccordee;
}elseif ($isConstructionAcheveeARaccorder) {
$status = StatusTrackerConstruction::Construction_Achevee_A_Raccorder;
}elseif ($isConstructionAcheveeNonRaccordable) {
$status = StatusTrackerConstruction::Construction_Achevee_Non_Raccordable;
}elseif ($isConstructionDemarree) {
$status = StatusTrackerConstruction::Construction_Demarree;
}elseif ($isOrderDemarrageEnvoye) {
$status = StatusTrackerConstruction::Order_demarrage_envoye;
}elseif ($isContratConstruction) {
$status = StatusTrackerConstruction::Contrat_Construction;
}elseif ($isBudgetCapex) {
$status = StatusTrackerConstruction::Budget_Capex;
}elseif ($isArbitrageDevis) {
$status = StatusTrackerConstruction::Arbitrage_Devis;
}elseif ($isAttenteDevis) {
$status = StatusTrackerConstruction::Attente_Devis;
}elseif ($isGoConsultation) {
$status = StatusTrackerConstruction::Go_Consultation;
}
$statusTracker = $project->getStatusTrackerActuel();
if($statusTracker == StatusTracker::STATUS_dev_4){
if(in_array($status ,[StatusTrackerConstruction::Construction_Achevee_Non_Raccordable,StatusTrackerConstruction::Construction_Achevee_A_Raccorder,StatusTrackerConstruction::Construction_Achevee_Raccordee,StatusTrackerConstruction::Passage_dre])){
}else{
$status = StatusTrackerConstruction::Construction_Demarree;
}
}elseif ($statusTracker == StatusTracker::STATUS_dev_5){
// if(in_array($status ,[StatusTrackerConstruction::Construction_Achevee_Non_Raccordable,StatusTrackerConstruction::Construction_Achevee_A_Raccorder,StatusTrackerConstruction::Construction_Achevee_Raccordee,StatusTrackerConstruction::Passage_dre])){
//
// }else{
// $status = StatusTrackerConstruction::Construction_Achevee_Non_Raccordable;
// }
}
elseif ($statusTracker == StatusTracker::STATUS_dev_6){
$status = StatusTrackerConstruction::Consuel_obtenu;
}
elseif ($statusTracker == StatusTracker::STATUS_operating){
if(in_array($status ,[StatusTrackerConstruction::Operating,StatusTrackerConstruction::Billable,StatusTrackerConstruction::Invoiced])){
}else{
$status = StatusTrackerConstruction::Operating;
}
}
$statusTrackerProjectConstruction = $this->em->getRepository(StatusTrackerConstruction::class)->findOneBy(['project'=>$project->getId()],['createdAt'=>'desc']);
if($statusTrackerProjectConstruction){
if($statusTrackerProjectConstruction->getStatus() != $status){
$entity = new StatusTrackerConstruction();
$entity->setProject($project);
$entity->setStatus($status);
$this->em->persist($entity);
$project->setStatusTrackerActuelConstruction($status);
$this->em->persist($project);
$this->em->flush();
}
}else{
$entity = new StatusTrackerConstruction();
$entity->setProject($project);
$entity->setStatus($status);
$this->em->persist($entity);
$project->setStatusTrackerActuelConstruction($status);
$this->em->persist($project);
$this->em->flush();
}
}
}
private function checkArchiveFile($project,$numEtap,$attribute){
$class = 'App\Entity\Etap'.$numEtap;
$etap = $this->em->getRepository($class)->findOneBy(['project'=>$project->getId()]);
$docs = $etap->{$attribute}();
if($docs && count($docs) > 0){
$empty =false;
foreach ($docs as $doc){
if(!$doc->getIsArchived()){
$empty = true ;
}
}
if($empty){
return true;
}else{
return false;
}
}else{
return false;
}
}
public function addEtap71()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
$etap71 = $this->em->getRepository(Etap71::class)->findOneBy(['project'=>$project->getId()]);
$etap = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_71]);
if(!$etap71){
$etap71 = new Etap71();
$etap71->setProject($project);
$etap71->setEtap($etap);
$etap71->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap71);
$this->em->flush();
}
}
}
public function migrateImageProject()
{
$projects = $this->em->getRepository(Project::class)->findAll();
foreach ($projects as $project){
if($project->getImageProject()){
$project->addImagesProject($project->getImageProject());
$this->em->persist($project);
$this->em->flush();
}
}
}
public function addCategoryValorisation()
{
$typeValorisations = $this->em->getRepository(TypeValorisation::class)->findAll();
if(!$typeValorisations){
$typeValorisation = new TypeValorisation();$typeValorisation->setName('Guichet ouvert');$typeValorisation->setCategory(TypeValorisation::type_guichet_ouvert);$this->em->persist($typeValorisation);
$typeValorisation = new TypeValorisation();$typeValorisation->setName('AO CRE');$typeValorisation->setCategory(TypeValorisation::type_ao_cre);$this->em->persist($typeValorisation);
$typeValorisation = new TypeValorisation();$typeValorisation->setName('ACC');$typeValorisation->setCategory(TypeValorisation::type_acc);$this->em->persist($typeValorisation);
$typeValorisation = new TypeValorisation();$typeValorisation->setName('ACI');$typeValorisation->setCategory(TypeValorisation::type_aci);$this->em->persist($typeValorisation);
$typeValorisation = new TypeValorisation();$typeValorisation->setName('PPA');$typeValorisation->setCategory(TypeValorisation::type_ppa);$this->em->persist($typeValorisation);
$typeValorisation = new TypeValorisation();$typeValorisation->setName('Spot');$typeValorisation->setCategory(TypeValorisation::type_spot);$this->em->persist($typeValorisation);
$typeValorisation = new TypeValorisation();$typeValorisation->setName('FER');$typeValorisation->setCategory(TypeValorisation::type_fer);$this->em->persist($typeValorisation);
$this->em->flush();
}
$projects = $this->em->getRepository(Project::class)->findAll();
$catValorisation = $this->em->getRepository(EtapsCategory::class)->findOneBy(['name'=>'Valorisation']);
if(!$catValorisation){
$catValorisation = new EtapsCategory();
$catValorisation->setName('Valorisation');
$catValorisation->setNum(5);
$this->em->persist($catValorisation);
$this->em->flush();
}
$catRaccordement = $this->em->getRepository(EtapsCategory::class)->findOneBy(['name'=>'Raccordement']);
if(!$catRaccordement){
$catRaccordement = new EtapsCategory();
$catRaccordement->setName('Raccordement');
$catRaccordement->setNum(3);
$this->em->persist($catRaccordement);
$this->em->flush();
}
$etapCat24 = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_24]);
if(!$etapCat24){
$etapCat24 = new Etaps();
$etapCat24->setName('Méthode de valorisation');
$etapCat24->setCategory($catValorisation);
$etapCat24->setNum(24);
$etapCat24->setEtapsNum(1);
$etapCat24->setIsDelete(false);
$etapCat24->setIsDeleteNewConstruction(false);
$etapCat24->setIsNeedCondition(false);
$etapCat24->setIsNeedValide(false);
$this->em->persist($etapCat24);
$this->em->flush();
}
$etapCat25 = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_25]);
if(!$etapCat25){
$etapCat25 = new Etaps();
$etapCat25->setName('Avancée de la valorisation');
$etapCat25->setCategory($catValorisation);
$etapCat25->setNum(25);
$etapCat25->setEtapsNum(2);
$etapCat25->setIsDelete(false);
$etapCat25->setIsDeleteNewConstruction(false);
$etapCat25->setIsNeedCondition(false);
$etapCat25->setIsNeedValide(false);
$this->em->persist($etapCat25);
$this->em->flush();
}
$etapCat26 = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_26]);
if(!$etapCat26){
$etapCat26 = new Etaps();
$etapCat26->setName('Contrat d’achat');
$etapCat26->setCategory($catValorisation);
$etapCat26->setNum(26);
$etapCat26->setEtapsNum(3);
$etapCat26->setIsDelete(false);
$etapCat26->setIsDeleteNewConstruction(false);
$etapCat26->setIsNeedCondition(false);
$etapCat26->setIsNeedValide(false);
$this->em->persist($etapCat26);
$this->em->flush();
}
$etapCat80 = $this->em->getRepository(Etaps::class)->findOneBy(['num'=>Etaps::ETAP_80]);
if(!$etapCat80){
$etapCat80 = new Etaps();
$etapCat80->setName('Faisabilité du raccordement');
$etapCat80->setCategory($catRaccordement);
$etapCat80->setNum(80);
$etapCat80->setEtapsNum(0);
$etapCat80->setIsDelete(false);
$etapCat80->setIsDeleteNewConstruction(false);
$etapCat80->setIsNeedCondition(false);
$etapCat80->setIsNeedValide(false);
$this->em->persist($etapCat80);
$this->em->flush();
}
foreach ($projects as $project){
$etap24 = $this->em->getRepository(Etap24::class)->findOneBy(['project'=>$project->getId()]);
if(!$etap24){
$etap24 = new Etap24();
$etap24->setProject($project);
$etap24->setEtap($etapCat24);
$etap24->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap24);
$this->em->flush();
}
$etap25 = $this->em->getRepository(Etap25::class)->findOneBy(['project'=>$project->getId()]);
if(!$etap25){
$etap25 = new Etap25();
$etap25->setProject($project);
$etap25->setEtap($etapCat25);
$etap25->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap25);
$this->em->flush();
}
$etap26 = $this->em->getRepository(Etap26::class)->findOneBy(['project'=>$project->getId()]);
if(!$etap26 ){
$etap26 = new Etap26();
$etap26->setProject($project);
$etap26->setEtap($etapCat26);
$etap26->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap26);
$this->em->flush();
}
// deplacer les champs
$etap9 = $this->em->getRepository(Etap9::class)->findOneBy(['project'=>$project->getId()]);
if($etap9){
if($etap24 && $etap25 && $etap26){
if(count($etap24->getEtap24Champs()) > 0){
}else{
$etap15 = $this->em->getRepository(Etap15::class)->findOneBy(['project'=>$project->getId()]);
if($etap15) {
if (count($etap15->getInformationMultiple()) > 0) {
foreach ($etap15->getInformationMultiple() as $contrat) {
$typeValorisation = $this->em->getRepository(TypeValorisation::class)->findOneBy(['category' => TypeValorisation::type_guichet_ouvert]);
if($typeValorisation){
$etap24Cahmps = new Etap24Champs();
$etap24Cahmps->setEtap24($etap24);
$etap24Cahmps->setEtap25($etap25);
$etap24Cahmps->setEtap26($etap26);
$etap24Cahmps->setTypeValorisation($typeValorisation);
if($contrat->getTypeContrat()){
$etap24Cahmps->setSousChoixValorisation($contrat->getTypeContrat());
}
if($etap9->getTarifFit()){
$etap24Cahmps->setTarifFit($etap9->getTarifFit());
}
if($etap9->getDateConsignation()){
$etap24Cahmps->setDateConsignation($etap9->getDateConsignation());
}
if($etap9->getDateMaximaleAchevement()){
$etap24Cahmps->setDateConsignation($etap9->getDateMaximaleAchevement());
}
if($etap9->getDateT0()){
$etap24Cahmps->setDateT0($etap9->getDateT0());
}
if(count($etap9->getFileGarantieBancaireMultiple()) > 0){
foreach ($etap9->getFileGarantieBancaireMultiple() as $value){
$etap24Cahmps->addFileGarantieBancaireEtap25Multiple($value);
}
}
if(count($etap9->getFileMailEnedisConfirmationMultiple()) > 0){
foreach ($etap9->getFileMailEnedisConfirmationMultiple() as $value){
$etap24Cahmps->addFileMailEnedisConfirmationEtap25Multiple($value);
}
}
if(count($etap9->getFileDemandeRaccordementMultiple()) > 0){
foreach ($etap9->getFileDemandeRaccordementMultiple() as $value){
$etap24Cahmps->addFileDemandeRaccordementEtap25Multiple($value);
}
}
$this->em->persist($etap24Cahmps);
$this->em->flush();
// add contrat
if($etap24Cahmps){
$etap26Cahmps = new Etap26Champs();
$etap26Cahmps->setEtap24Champs($etap24Cahmps);
if($contrat->getDateDebutContratAchat()){$etap26Cahmps->setDateDebutContratAchat1($contrat->getDateDebutContratAchat());}
if($contrat->getDateFinContratAchat()){$etap26Cahmps->setDateFinContratAchat1($contrat->getDateFinContratAchat());}
if($contrat->getNumeroContratAchat()){$etap26Cahmps->setNumeroContratAchat1($contrat->getNumeroContratAchat());}
if($contrat->getPeridiciteFacturation()){$etap26Cahmps->setPeridiciteFacturation1($contrat->getPeridiciteFacturation());}
if($contrat->getTarifContratAchat()){$etap26Cahmps->setTarifContratAchat1($contrat->getTarifContratAchat());}
if($contrat->getTypeContrat()){$etap26Cahmps->setTypeContrat1($contrat->getTypeContrat());}
if(count($etap15->getFileContratAchatSigneMultiple()) > 0){
foreach ($etap15->getFileContratAchatSigneMultiple() as $item){
$val = clone $item;
$etap26Cahmps->addFileContratAchatSigneEtap25Multiple($val);
}
}
if(count($etap15->getFileAttestionProducteurMultiple()) > 0){
foreach ($etap15->getFileAttestionProducteurMultiple() as $item){
$val = clone $item;
$etap26Cahmps->addFileAttestionProducteurEtap25Multiple($val);
}
}
if(count($etap15->getFileAttestionInstallateurMultiple()) > 0){
foreach ($etap15->getFileAttestionInstallateurMultiple() as $item){
$val = clone $item;
$etap26Cahmps->addFileAttestionInstallateurEtap25Multiple($val);
}
}
if(count($etap15->getFileArContratAchatMultiple()) > 0){
foreach ($etap15->getFileArContratAchatMultiple() as $item){
$val = clone $item;
$etap26Cahmps->addFileArContratAchatEtap25Multiple($val);
}
}
$this->em->persist($etap26Cahmps);
$this->em->flush();
}
}
}
}
}
}
}
}
$etap80 = $this->em->getRepository(Etap80::class)->findOneBy(['project'=>$project->getId()]);
if(!$etap80 ){
$etap80 = new Etap80();
$etap80->setProject($project);
$etap80->setEtap($etapCat80);
$etap80->setStatus(Etaps::STATUS_EN_COURS);
$this->em->persist($etap80);
$this->em->flush();
}
}
}
public function submitEtap24($request,$user)
{
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$etap24Champs = $request->get('etap24Champs');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap24::class)->findOneBy(['token'=>$etapToken]);
$etap25 = $this->em->getRepository(Etap25::class)->findOneBy(['project'=>$project->getId()]);
$etap26 = $this->em->getRepository(Etap26::class)->findOneBy(['project'=>$project->getId()]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($etap24Champs) {
foreach ($etap24Champs as $item) {
if (isset($item['id']) and $item['id'] != '') {
$etap24ChampsEntity = $this->em->getRepository(Etap24Champs::class)->findOneBy(['token' => $item['id']]);
} else {
$etap24ChampsEntity = new Etap24Champs();
}
if (isset($item['typeValorisation']) and $item['typeValorisation'] != '') {
$typeValorisation = $this->em->getRepository(TypeValorisation::class)->find($item['typeValorisation']);
$etap24ChampsEntity->setTypeValorisation($typeValorisation);
}else{
$etap24ChampsEntity->setTypeValorisation(null);
}
if(isset($item['sousChoixValorisation']) and $item['sousChoixValorisation'] != ''){
$etap24ChampsEntity->setSousChoixValorisation($item['sousChoixValorisation']);
}else{
$etap24ChampsEntity->setSousChoixValorisation(null);
}
if(isset($item['sousChoixValorisationLibre']) and $item['sousChoixValorisationLibre'] != ''){
$etap24ChampsEntity->setSousChoixValorisationLibre($item['sousChoixValorisationLibre']);
}else{
$etap24ChampsEntity->setSousChoixValorisationLibre(null);
}
if(isset($item['dureeContrat']) and $item['dureeContrat'] != ''){
$etap24ChampsEntity->setDureeContrat($item['dureeContrat']);
}else{
$etap24ChampsEntity->setDureeContrat(null);
}
if(isset($item['prixVenteElectricite']) and $item['prixVenteElectricite'] != ''){
$etap24ChampsEntity->setPrixVenteElectricite($item['prixVenteElectricite']);
}else{
$etap24ChampsEntity->setPrixVenteElectricite(null);
}
if(isset($item['tauxIndexationTarif']) and $item['tauxIndexationTarif'] != ''){
$etap24ChampsEntity->setTauxIndexationTarif($item['tauxIndexationTarif']);
}else{
$etap24ChampsEntity->setTauxIndexationTarif(null);
}
$etap9 = $this->em->getRepository(Etap9::class)->findOneBy(['project'=>$project->getId()]);
if(count($etap9->getFileMailEnedisConfirmationMultiple()) > 0) {
foreach ($etap9->getFileMailEnedisConfirmationMultiple() as $itemEtap9Doc){
if($etap24ChampsEntity->getTypeValorisation() && ($etap24ChampsEntity->getTypeValorisation()->getCategory() == TypeValorisation::type_ao_cre or $etap24ChampsEntity->getTypeValorisation()->getCategory() == TypeValorisation::type_guichet_ouvert)){
$etap24ChampsEntity->addFileMailEnedisConfirmationEtap25Multiple($itemEtap9Doc);
}
}
}
if(count($etap9->getFileDemandeRaccordementMultiple()) > 0) {
foreach ($etap9->getFileDemandeRaccordementMultiple() as $itemEtap9Doc){
if($etap24ChampsEntity->getTypeValorisation() && ($etap24ChampsEntity->getTypeValorisation()->getCategory() == TypeValorisation::type_ao_cre or $etap24ChampsEntity->getTypeValorisation()->getCategory() == TypeValorisation::type_guichet_ouvert)){
$etap24ChampsEntity->addFileDemandeRaccordementEtap25Multiple($itemEtap9Doc);
}
}
}
if(count($etap9->getFileGarantieBancaireMultiple()) > 0) {
foreach ($etap9->getFileGarantieBancaireMultiple() as $itemEtap9Doc){
if($etap24ChampsEntity->getTypeValorisation() && ($etap24ChampsEntity->getTypeValorisation()->getCategory() == TypeValorisation::type_ao_cre )){
$etap24ChampsEntity->addFileDemandeRaccordementEtap25Multiple($itemEtap9Doc);
}
}
}
if($etap9->getDateT0()){
$etap24ChampsEntity->setDateT0($etap9->getDateT0());
}
$etap24ChampsEntity->setEtap24($etap);
$etap24ChampsEntity->setEtap25($etap25);
$etap24ChampsEntity->setEtap26($etap26);
$this->em->persist($etap24ChampsEntity);
$this->em->flush();
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap25($request,$user)
{
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$etap25Champs = $request->get('etap25Champs');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap25::class)->findOneBy(['token'=>$etapToken]);
$etap9 = $this->em->getRepository(Etap9::class)->findOneBy(['project'=>$project->getId()]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($etap25Champs) {
foreach ($etap25Champs as $item) {
if (isset($item['id']) and $item['id'] != '') {
$etap24ChampsEntity = $this->em->getRepository(Etap24Champs::class)->findOneBy(['token' => $item['id']]);
} else {
$etap24ChampsEntity = new Etap24Champs();
}
if(isset($item['fileDemandeRaccordementEtap25Multiple']) and $item['fileDemandeRaccordementEtap25Multiple'] != ''){
$array = explode(',',$item['fileDemandeRaccordementEtap25Multiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileMultipleEntity,'Demande de raccordement');
$etap24ChampsEntity->addFileDemandeRaccordementEtap25Multiple($fileMultipleEntity);
$etap9->addFileDemandeRaccordementMultiple($fileMultipleEntity);
}
}
if(isset($item['fileMailEnedisConfirmationEtap25Multiple']) and $item['fileMailEnedisConfirmationEtap25Multiple'] != ''){
$array = explode(',',$item['fileMailEnedisConfirmationEtap25Multiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileMultipleEntity,'Mail d’ENEDIS de confirmation');
$etap24ChampsEntity->addFileMailEnedisConfirmationEtap25Multiple($fileMultipleEntity);
$etap9->addFileMailEnedisConfirmationMultiple($fileMultipleEntity);
}
}
if(isset($item['fileGarantieBancaireEtap25Multiple']) and $item['fileGarantieBancaireEtap25Multiple'] != ''){
$array = explode(',',$item['fileGarantieBancaireEtap25Multiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileMultipleEntity,'Garantie Bancaire ');
$etap24ChampsEntity->addFileGarantieBancaireEtap25Multiple($fileMultipleEntity);
$etap9->addFileGarantieBancaireMultiple($fileMultipleEntity);
}
}
if(isset($item['fileRecepisseDemandeAoMultiple']) and $item['fileRecepisseDemandeAoMultiple'] != ''){
$array = explode(',',$item['fileRecepisseDemandeAoMultiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileMultipleEntity,'Récépissé demande AO');
$etap24ChampsEntity->addFileRecepisseDemandeAoMultiple($fileMultipleEntity);
}
}
if(isset($item['fileLettreLaureaMultiple']) and $item['fileLettreLaureaMultiple'] != ''){
$array = explode(',',$item['fileLettreLaureaMultiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
$nomenclature = $this->getNomenclature($etap,$fileMultipleEntity,'Lettre de lauréat ');
$etap24ChampsEntity->addFileLettreLaureaMultiple($fileMultipleEntity);
}
}
if(isset($item['dateT0']) and $item['dateT0'] != ''){
$etap24ChampsEntity->setDateT0(new \DateTime($item['dateT0']));
$etap9->setDateT0(new \DateTime($item['dateT0']));
}else{
$etap24ChampsEntity->setDateT0(null);
$etap9->setDateT0(null);
}
if(isset($item['tarifFit']) and $item['tarifFit'] != ''){
$etap24ChampsEntity->setTarifFit($item['tarifFit']);
}else{
$etap24ChampsEntity->setTarifFit(null);
}
if(isset($item['dateMaximaleAchevement']) and $item['dateMaximaleAchevement'] != ''){
$etap24ChampsEntity->setDateMaximaleAchevement(new \DateTime($item['dateMaximaleAchevement']));
}else{
$etap24ChampsEntity->setDateMaximaleAchevement(null);
}
if(isset($item['dateConsignation']) and $item['dateConsignation'] != ''){
$etap24ChampsEntity->setDateConsignation(new \DateTime($item['dateConsignation']));
}else{
$etap24ChampsEntity->setDateConsignation(null);
}
if(isset($item['dateDepotAo']) and $item['dateDepotAo'] != ''){
$etap24ChampsEntity->setDateDepotAo(new \DateTime($item['dateDepotAo']));
}else{
$etap24ChampsEntity->setDateDepotAo(null);
}
if(isset($item['dateNotificationLaureatAo']) and $item['dateNotificationLaureatAo'] != ''){
$etap24ChampsEntity->setDateNotificationLaureatAo(new \DateTime($item['dateNotificationLaureatAo']));
}else{
$etap24ChampsEntity->setDateNotificationLaureatAo(null);
}
if(isset($item['typeAoPeriodeCandidature']) and $item['typeAoPeriodeCandidature'] != ''){
$etap24ChampsEntity->setTypeAoPeriodeCandidature($item['typeAoPeriodeCandidature']);
}else{
$etap24ChampsEntity->setTypeAoPeriodeCandidature(null);
}
if(isset($item['agregateur']) and $item['agregateur'] != ''){
$etap24ChampsEntity->setAgregateur($item['agregateur']);
}else{
$etap24ChampsEntity->setAgregateur(null);
}
if(isset($item['fraisGestion']) and $item['fraisGestion'] != ''){
$etap24ChampsEntity->setFraisGestion($item['fraisGestion']);
}else{
$etap24ChampsEntity->setFraisGestion(null);
}
if(isset($item['uniteFraisGestion']) and $item['uniteFraisGestion'] != ''){
$etap24ChampsEntity->setUniteFraisGestion($item['uniteFraisGestion']);
}else{
$etap24ChampsEntity->setUniteFraisGestion(null);
}
if(isset($item['contrepartie']) and $item['contrepartie'] != ''){
$etap24ChampsEntity->setContrepartie($item['contrepartie']);
}else{
$etap24ChampsEntity->setContrepartie(null);
}
$etap24ChampsEntity->setEtap25($etap);
$this->em->persist($etap24ChampsEntity);
$this->em->persist($etap9);
$this->em->flush();
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function submitEtap26($request,$user)
{
$etapToken = $request->get('etapToken');
$tokenProject = $request->get('tokenProject');
$etap26Champs = $request->get('etap26Champs');
if($etapToken and $tokenProject){
$project = $this->em->getRepository(Project::class)->findOneBy(['token'=>$tokenProject]);
$etap = $this->em->getRepository(Etap26::class)->findOneBy(['token'=>$etapToken]);
if($project && $etap){
if(!$this->checkUserAction($user,$project,$etap)){
return [
'success' => false
];
}
if($etap26Champs) {
foreach ($etap26Champs as $item) {
if (isset($item['id']) and $item['id'] != '') {
$etap24ChampsEntity = $this->em->getRepository(Etap24Champs::class)->findOneBy(['token' => $item['id']]);
if($etap24ChampsEntity){
if (isset($item['vlalorisation']) and $item['vlalorisation'] != '') {
foreach ($item['vlalorisation'] as $valorisation) {
if (isset($valorisation['id']) and $valorisation['id'] != '') {
$etap26ChampsEntity = $this->em->getRepository(Etap26Champs::class)->findOneBy(['token' => $valorisation['id']]);
}else{
$etap26ChampsEntity = new Etap26Champs();
}
if(isset($valorisation['fileContratAchatSigneEtap25Multiple']) and $valorisation['fileContratAchatSigneEtap25Multiple'] != ''){
$array = explode(',',$valorisation['fileContratAchatSigneEtap25Multiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
if($fileMultipleEntity){
$nomenclature = $this->getNomenclature($etap,$fileMultipleEntity,'Contrat d’achat signé');
$etap26ChampsEntity->addFileContratAchatSigneEtap25Multiple($fileMultipleEntity);
}
}
}
if(isset($valorisation['fileAttestionProducteurEtap25Multiple']) and $valorisation['fileAttestionProducteurEtap25Multiple'] != ''){
$array = explode(',',$valorisation['fileAttestionProducteurEtap25Multiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
if($fileMultipleEntity) {
$nomenclature = $this->getNomenclature($etap, $fileMultipleEntity, 'Attestation de producteur');
$etap26ChampsEntity->addFileAttestionProducteurEtap25Multiple($fileMultipleEntity);
}
}
}
if(isset($valorisation['fileAttestionInstallateurEtap25Multiple']) and $valorisation['fileAttestionInstallateurEtap25Multiple'] != ''){
$array = explode(',',$valorisation['fileAttestionInstallateurEtap25Multiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
if($fileMultipleEntity) {
$nomenclature = $this->getNomenclature($etap, $fileMultipleEntity, 'Attestation de l’installateur');
$etap26ChampsEntity->addFileAttestionInstallateurEtap25Multiple($fileMultipleEntity);
}
}
}
if(isset($valorisation['fileArContratAchatEtap25Multiple']) and $valorisation['fileArContratAchatEtap25Multiple'] != ''){
$array = explode(',',$valorisation['fileArContratAchatEtap25Multiple']);
foreach ($array as $item1){
$fileMultipleEntity = $this->em->getRepository(DocUpload::class)->findOneBy(['token'=>$item1]);
if($fileMultipleEntity) {
$nomenclature = $this->getNomenclature($etap, $fileMultipleEntity, 'AR Contrat d’achat');
$etap26ChampsEntity->addFileArContratAchatEtap25Multiple($fileMultipleEntity);
}
}
}
if(isset($valorisation['dateDebutContratAchat1']) and $valorisation['dateDebutContratAchat1'] != ''){
$etap26ChampsEntity->setDateDebutContratAchat1(new \DateTime($valorisation['dateDebutContratAchat1']));
}else{
$etap26ChampsEntity->setDateDebutContratAchat1(null);
}
if(isset($valorisation['dateDebutContratAchat2']) and $valorisation['dateDebutContratAchat2'] != ''){
$etap26ChampsEntity->setDateDebutContratAchat2(new \DateTime($valorisation['dateDebutContratAchat2']));
}else{
$etap26ChampsEntity->setDateDebutContratAchat2(null);
}
if(isset($valorisation['dateFinContratAchat1']) and $valorisation['dateFinContratAchat1'] != ''){
$etap26ChampsEntity->setDateFinContratAchat1(new \DateTime($valorisation['dateFinContratAchat1']));
}else{
$etap26ChampsEntity->setDateFinContratAchat1(null);
}
if(isset($valorisation['dateFinContratAchat2']) and $valorisation['dateFinContratAchat2'] != ''){
$etap26ChampsEntity->setDateFinContratAchat2(new \DateTime($valorisation['dateFinContratAchat2']));
}else{
$etap26ChampsEntity->setDateFinContratAchat2(null);
}
if(isset($valorisation['tarifContratAchat1']) and $valorisation['tarifContratAchat1'] != ''){
$etap26ChampsEntity->setTarifContratAchat1($valorisation['tarifContratAchat1']);
}else{
$etap26ChampsEntity->setTarifContratAchat1(null);
}
if(isset($valorisation['tarifContratAchat2']) and $valorisation['tarifContratAchat2'] != ''){
$etap26ChampsEntity->setTarifContratAchat2($valorisation['tarifContratAchat2']);
}else{
$etap26ChampsEntity->setTarifContratAchat2(null);
}
if(isset($valorisation['peridiciteFacturation1']) and $valorisation['peridiciteFacturation1'] != ''){
$etap26ChampsEntity->setPeridiciteFacturation1($valorisation['peridiciteFacturation1']);
}else{
$etap26ChampsEntity->setPeridiciteFacturation1(null);
}
if(isset($valorisation['peridiciteFacturation2']) and $valorisation['peridiciteFacturation2'] != ''){
$etap26ChampsEntity->setPeridiciteFacturation2($valorisation['peridiciteFacturation2']);
}else{
$etap26ChampsEntity->setPeridiciteFacturation2(null);
}
if(isset($valorisation['numeroContratAchat1']) and $valorisation['numeroContratAchat1'] != ''){
$etap26ChampsEntity->setNumeroContratAchat1($valorisation['numeroContratAchat1']);
}else{
$etap26ChampsEntity->setNumeroContratAchat1(null);
}
if(isset($valorisation['numeroContratAchat2']) and $valorisation['numeroContratAchat2'] != ''){
$etap26ChampsEntity->setNumeroContratAchat2($valorisation['numeroContratAchat2']);
}else{
$etap26ChampsEntity->setNumeroContratAchat2(null);
}
if(isset($valorisation['typeContrat1']) and $valorisation['typeContrat1'] != ''){
$etap26ChampsEntity->setTypeContrat1($valorisation['typeContrat1']);
}else{
$etap26ChampsEntity->setTypeContrat1(null);
}
if(isset($valorisation['typeContrat2']) and $valorisation['typeContrat2'] != ''){
$etap26ChampsEntity->setTypeContrat2($valorisation['typeContrat2']);
}else{
$etap26ChampsEntity->setTypeContrat2(null);
}
if(isset($valorisation['agregateurEtap25']) and $valorisation['agregateurEtap25'] != ''){
$etap26ChampsEntity->setAgregateurEtap25($valorisation['agregateurEtap25']);
}else{
$etap26ChampsEntity->setAgregateurEtap25(null);
}
if(isset($valorisation['contrepartieEtap25']) and $valorisation['contrepartieEtap25'] != ''){
$etap26ChampsEntity->setContrepartieEtap25($valorisation['contrepartieEtap25']);
}else{
$etap26ChampsEntity->setContrepartieEtap25(null);
}
$etap26ChampsEntity->setEtap24Champs($etap24ChampsEntity);
$this->em->persist($etap26ChampsEntity);
$this->em->flush();
}
}
}
}
}
}
$this->em->persist($etap);
$this->em->flush();
$this->updateStatusTracker($project); // set status tracker
$this->flashBag->add(
'success',
'L\'opération a été effectuée avec succès.'
);
return [
'etap' => $etap,
'success' => true
];
}
}
return [
'success' => false
];
}
public function addUserFournisseurInProject($fournisseur){
$name = $fournisseur->getName();
$email = $fournisseur->getEmail();
if(!$fournisseur->getUser()){
if($email) {
$user = new User();
// encode the plain password
$password = $this->randomPassword();
$user->setPassword(
$this->passwordEncoder->encodePassword(
$user,
$password
)
);
$user->setRoles(array('ROLE_FOURNISSEUR'));
$user->setFirstname($name);
$user->setLastname($name);
$user->setEmail($email);
$user->setAcces(User::ACCES_ECRETURE);
if ($fournisseur->getId()) {
$user->setIsEnabled($fournisseur->getIsEnabled());
} else {
$user->setIsEnabled(true);
}
$errors = $this->validator->validate($user);
if (count($errors) > 0) {
foreach ($errors as $error) {
$erreurs[] = $error->getMessage();
}
return array(
'erreurs' => $erreurs,
'success' => false
);
}
$this->em->persist($user);
$this->em->flush();
$this->notification->createUser($user, $password);
}else{
return array(
'success' => false,
'erreurs' => 'Erreur email !',
);
}
}
return array(
'success' => true,
'user' => $user
);
}
public function updateStatusAdministratifEngagment($project){
if($project){
$isGoConsultation = false;
$isAttenteDevis = false;
$isArbitrageDevis = false;
$isBudgetCapex = false;
$isContratConstruction = false;
$isConstructionDemarree = false;
$isConstructionAcheveeNonRaccordable = false;
$isConstructionAcheveeARaccorder = false;
$isConstructionAcheveeRaccordee = false;
$isPassagedre = false;
$isConsuelobtenu = false;
$isOperating = false;
$isBillable = false;
$isInvoiced = false;
$isOrderDemarrageEnvoye = false;
if($project->getStadeConstruction() == 'Go consultation'){
$isGoConsultation = true;
}
if($project->getStadeConstruction() == 'Attente devis' or $project->getStadeConstruction() == 'Devis reçus' or $project->getStadeConstruction() == 'Attente validation budget/Capex' ){
$isAttenteDevis = true;
}
if($project->getStadeConstruction() == 'Arbitrage Devis'){
$isArbitrageDevis = true;
}
if($project->getStadeConstruction() == 'Devis signé' or$project->getStadeConstruction() == 'Budget/Capex validé' or $project->getStadeConstruction() == 'Contrat de construction signé' or $project->getStadeConstruction() == 'Ordre de démarrage envoyé' or $project->getStadeConstruction() == 'Travaux réceptionnés'){
$isBudgetCapex = true;
}
$etap16 = $this->em->getRepository(Etap16::class)->findOneBy(['project'=>$project->getId()]);
if(count($etap16->getContratConstruction()) > 0){
foreach ($etap16->getContratConstruction() as $item){
if(count($item->getFileContratEpcMultiple())>0){
foreach ($item->getFileContratEpcMultiple() as $value){
if(!$value->getIsArchived()){
$isContratConstruction = true;
}
}
}
}
}
$dateJour = new \DateTime();
$dateNow1 = new \DateTime($dateJour->format('Y-m-d').' 23:59:59');
$etap172 = $this->em->getRepository(Etap172::class)->findOneBy(['project'=>$project->getId()]);
$etap173 = $this->em->getRepository(Etap173::class)->findOneBy(['project'=>$project->getId()]);
$etap174 = $this->em->getRepository(Etap174::class)->findOneBy(['project'=>$project->getId()]);
$etap175 = $this->em->getRepository(Etap175::class)->findOneBy(['project'=>$project->getId()]);
$etap121 = $this->em->getRepository(Etap121::class)->findOneBy(['project'=>$project->getId()]);
if($etap172 && $etap172->getDateDebutFondation() && ($etap172->getDateDebutFondation() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap173 && $etap173->getDateDebutCharpente() && ($etap173->getDateDebutCharpente() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap173 && $etap173->getDateDebutCouverture() && ($etap173->getDateDebutCouverture() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap174 && $etap174->getDateDebutPosePv() && ($etap174->getDateDebutPosePv() <= $dateNow1) ){
$isConstructionDemarree = true;
}
if($etap174 && $etap174->getDateFinPosePv() && ($etap174->getDateFinPosePv() <= $dateNow1)){
if($etap175 && !$etap175->getDateAchevementTraveaux()){
if($etap121 && !$etap121->getDateInstallationPDL()){
$isConstructionAcheveeNonRaccordable = true;
}
if($etap121 && (!$etap121->getDatePrevisionnelleInstallationPDL() || ($etap121->getDatePrevisionnelleInstallationPDL() < $dateNow1))){
$isConstructionAcheveeNonRaccordable = true;
}
if($etap121 && !$etap121->getDateMiseSousTensionEnedis()){
$isConstructionAcheveeNonRaccordable = true;
}
}
}
if($etap174 && $etap174->getDateFinPosePv() && ($etap174->getDateFinPosePv() <= $dateNow1)){
if($etap175 && !$etap175->getDateAchevementTraveaux()){
if($etap121 && $etap121->getDateInstallationPDL() && $etap121->getDateInstallationPDL() <= $dateNow1){
$isConstructionAcheveeARaccorder = true;
}
if($etap121 && $etap121->getDatePrevisionnelleInstallationPDL() && $etap121->getDatePrevisionnelleInstallationPDL() <= $dateNow1){
$isConstructionAcheveeARaccorder = true;
}
if($etap121 && $etap121->getDateMiseSousTensionEnedis() && $etap121->getDateMiseSousTensionEnedis() <= $dateNow1){
$isConstructionAcheveeARaccorder = true;
}
}
}
$etap175 = $this->em->getRepository(Etap175::class)->findOneBy(['project'=>$project->getId()]);
if($etap175 && $etap175->getDateAchevementTraveaux()){
$isConstructionAcheveeRaccordee = true;
}
$etap13 = $this->em->getRepository(Etap13::class)->findOneBy(['project'=>$project->getId()]);
$etap20 = $this->em->getRepository(Etap20::class)->findOneBy(['project'=>$project->getId()]);
if($etap13 || $etap20){
if($this->checkArchiveFile($project, Etaps::ETAP_13, 'getFileDREMultiple')){
$isPassagedre = true;
}
if($etap13->getDateConsuel() or $this->checkArchiveFile($project, Etaps::ETAP_13, 'getFileConsuelMultiple')){
$isConsuelobtenu = true;
}
if($etap20->getDateConsuelEtap20() or $this->checkArchiveFile($project, Etaps::ETAP_20, 'getFileConsuelEtap20Multiple')){
$isConsuelobtenu = true;
}
}
if($project->getDateMiseEnService()){
$isOperating = true;
}
$etap14 = $this->em->getRepository(Etap14::class)->findOneBy(['project'=>$project->getId()]);
if($etap13 || $etap14){
if((int)$project->getCapacite() > 100 && ($this->checkArchiveFile($project, Etaps::ETAP_13, 'getFileAttestationBureauControleMultiple') or $this->checkArchiveFile($project, Etaps::ETAP_14, 'getFileAttestationS21Multiple'))){
$isBillable = true;
}
}
// $etap15 = $this->em->getRepository(Etap15::class)->findOneBy(['project'=>$project->getId()]);
// if($etap15 && $this->checkArchiveFile($project, Etaps::ETAP_15, 'getFileContratAchatSigneMultiple')){
// $isInvoiced = true;
// }
$etap24 = $this->em->getRepository(Etap24::class)->findOneBy(['project'=>$project->getId()]);
if($etap24 && count($etap24->getEtap24Champs()) > 0){
$notEmpty = false ;
foreach ($etap24->getEtap24Champs() as $champ){
if(count($champ->getEtap26Champs()) > 0){
foreach ($champ->getEtap26Champs() as $champ26){
if(count($champ26->getFileContratAchatSigneEtap25Multiple()) > 0){
foreach ($champ26->getFileContratAchatSigneEtap25Multiple() as $doc){
if(!$doc->getIsArchived()){
$notEmpty = true ;
}
}
}
}
}
}
if($notEmpty){
$isInvoiced = true;
}
}
$etap171 = $this->em->getRepository(Etap171::class)->findOneBy(['project'=>$project->getId()]);
if($etap171 && $this->checkArchiveFile($project, Etaps::ETAP_171, 'getFileOrderServiceMultiple')){
$isOrderDemarrageEnvoye = true;
}
$status = 0;
if($isInvoiced){
$status = StatusTrackerConstruction::Invoiced;
}elseif ($isBillable) {
$status = StatusTrackerConstruction::Billable;
}elseif ($isOperating) {
$status = StatusTrackerConstruction::Operating;
}elseif ($isConsuelobtenu) {
$status = StatusTrackerConstruction::Consuel_obtenu;
}elseif ($isPassagedre) {
$status = StatusTrackerConstruction::Passage_dre;
}elseif ($isConstructionAcheveeRaccordee) {
$status = StatusTrackerConstruction::Construction_Achevee_Raccordee;
}elseif ($isConstructionAcheveeARaccorder) {
$status = StatusTrackerConstruction::Construction_Achevee_A_Raccorder;
}elseif ($isConstructionAcheveeNonRaccordable) {
$status = StatusTrackerConstruction::Construction_Achevee_Non_Raccordable;
}elseif ($isConstructionDemarree) {
$status = StatusTrackerConstruction::Construction_Demarree;
}elseif ($isOrderDemarrageEnvoye) {
$status = StatusTrackerConstruction::Order_demarrage_envoye;
}elseif ($isContratConstruction) {
$status = StatusTrackerConstruction::Contrat_Construction;
}elseif ($isBudgetCapex) {
$status = StatusTrackerConstruction::Budget_Capex;
}elseif ($isArbitrageDevis) {
$status = StatusTrackerConstruction::Arbitrage_Devis;
}elseif ($isAttenteDevis) {
$status = StatusTrackerConstruction::Attente_Devis;
}elseif ($isGoConsultation) {
$status = StatusTrackerConstruction::Go_Consultation;
}
$statusTracker = $project->getStatusTrackerActuel();
if($statusTracker == StatusTracker::STATUS_dev_4){
if(in_array($status ,[StatusTrackerConstruction::Construction_Achevee_Non_Raccordable,StatusTrackerConstruction::Construction_Achevee_A_Raccorder,StatusTrackerConstruction::Construction_Achevee_Raccordee,StatusTrackerConstruction::Passage_dre])){
}else{
$status = StatusTrackerConstruction::Construction_Demarree;
}
}elseif ($statusTracker == StatusTracker::STATUS_dev_5){
if(in_array($status ,[StatusTrackerConstruction::Construction_Achevee_Non_Raccordable,StatusTrackerConstruction::Construction_Achevee_A_Raccorder,StatusTrackerConstruction::Construction_Achevee_Raccordee,StatusTrackerConstruction::Passage_dre])){
}else{
$status = StatusTrackerConstruction::Construction_Achevee_Non_Raccordable;
}
}
elseif ($statusTracker == StatusTracker::STATUS_dev_6){
$status = StatusTrackerConstruction::Consuel_obtenu;
}
elseif ($statusTracker == StatusTracker::STATUS_operating){
if(in_array($status ,[StatusTrackerConstruction::Operating,StatusTrackerConstruction::Billable,StatusTrackerConstruction::Invoiced])){
}else{
$status = StatusTrackerConstruction::Operating;
}
}
$statusTrackerProjectConstruction = $this->em->getRepository(StatusTrackerConstruction::class)->findOneBy(['project'=>$project->getId()],['createdAt'=>'desc']);
if($statusTrackerProjectConstruction){
if($statusTrackerProjectConstruction->getStatus() != $status){
$entity = new StatusTrackerConstruction();
$entity->setProject($project);
$entity->setStatus($status);
$this->em->persist($entity);
$project->setStatusTrackerActuelConstruction($status);
$this->em->persist($project);
$this->em->flush();
}
}else{
$entity = new StatusTrackerConstruction();
$entity->setProject($project);
$entity->setStatus($status);
$this->em->persist($entity);
$project->setStatusTrackerActuelConstruction($status);
$this->em->persist($project);
$this->em->flush();
}
}
}
}