src/Entity/Project.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProjectRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. use App\Annotation\CustomAnnotation;
  9. use Symfony\Flex\Response;
  10. /**
  11.  * @ORM\Entity(repositoryClass=ProjectRepository::class)
  12.  * @UniqueEntity(fields={"name"}, message="Il existe déjà un projet avec ce nom")
  13.  */
  14. class Project
  15. {
  16.     const STATUS_EN_COURS = 1;
  17.     const STATUS_REFUSE = 2;
  18.     const STATUS_DEMANDE = 3;
  19.     const STATUS_EN_ATTENT = 4;
  20.     const STATUS_DEMANDE_REPONDU = 5;
  21.     const PROBLEME_DEMANDE_DOC = 1;
  22.     const PROBLEME_DEMANDE_INFO = 2;
  23.     const STATUS_CUSTOM_EN_ATTENT = 1;
  24.     const STATUS_CUSTOM_DEVELOPPEMENT = 2;
  25.     const STATUS_CUSTOM_CONSTRUCTION = 3;
  26.     const STATUS_CUSTOM_EXPLOITATION = 4;
  27.     const ACHAT = 1;
  28.     const LOCATION = 2;
  29.     const dev_intern = 1;
  30.     const dev_extern = 2;
  31.     const mesure_m = 2;
  32.     const mesure_k = 1;
  33.     /**
  34.      * @ORM\Id
  35.      * @ORM\GeneratedValue
  36.      * @ORM\Column(type="integer")
  37.      */
  38.     private $id;
  39.     /**
  40.      * @ORM\Column(type="string", length=200, nullable=true)
  41.      * @CustomAnnotation("Contrat")
  42.      */
  43.     private $contrat;
  44.     /**
  45.      * @ORM\Column(type="string", length=200, nullable=true)
  46.      * @CustomAnnotation("Tranche")
  47.      */
  48.     private $tranche;
  49.     /**
  50.      * @ORM\Column(type="string", length=100, nullable=true)
  51.      * @CustomAnnotation("Nom du projet")
  52.      */
  53.     private $name;
  54.     /**
  55.      * @ORM\Column(type="string", length=100, nullable=true)
  56.      * @CustomAnnotation("Code du projet")
  57.      */
  58.     private $codeProject;
  59.     /**
  60.      * @ORM\ManyToOne(targetEntity="FamilleProject", cascade={"persist"})
  61.      * @ORM\JoinColumn(name="famille_project_id", referencedColumnName="id",nullable=true)
  62.      * @CustomAnnotation("Famille du projet")
  63.      */
  64.     private $familleProject;
  65.     /**
  66.      * @ORM\ManyToOne(targetEntity="TypologieProject", cascade={"persist"})
  67.      * @ORM\JoinColumn(name="typologie_project_id", referencedColumnName="id",nullable=true)
  68.      * @CustomAnnotation("Typologie du projet")
  69.      */
  70.     private $typologieProject;
  71.     /**
  72.      * @ORM\Column(type="string", length=100, nullable=true)
  73.      * @CustomAnnotation("Adresse du projet")
  74.      */
  75.     private $adresse;
  76.     /**
  77.      * @ORM\Column(type="string", length=100, nullable=true)
  78.      * @CustomAnnotation("Ville du projet")
  79.      */
  80.     private $city;
  81.     /**
  82.      * @ORM\Column(type="string", length=255, nullable=true)
  83.      * @CustomAnnotation("Département")
  84.      */
  85.     private $departement;
  86.     /**
  87.      * @ORM\Column(type="string", length=100, nullable=true)
  88.      * @CustomAnnotation("Code postal du projet")
  89.      */
  90.     private $codePostal;
  91.     /**
  92.      * @ORM\Column(type="string", length=100,nullable=true)
  93.      * @CustomAnnotation("Longitude du projet")
  94.      */
  95.     private $lat;
  96.     /**
  97.      * @ORM\Column(type="string", length=100,nullable=true)
  98.      * @CustomAnnotation("Latitude du projet")
  99.      */
  100.     private $longi;
  101.     /**
  102.      * @ORM\Column(type="string", length=1000,nullable=true)
  103.      * @CustomAnnotation("N° de parcelle du projet")
  104.      */
  105.     private $numParcelle;
  106.     /**
  107.      * @ORM\Column(type="float",nullable=true)
  108.      * @CustomAnnotation("Capacité du projet")
  109.      */
  110.     private $capacite;
  111.     /**
  112.      * @ORM\Column(type="float",nullable=true)
  113.      * @CustomAnnotation("Productible P50 du projet")
  114.      */
  115.     private $productible;
  116.     /**
  117.      * @ORM\Column(type="float",nullable=true)
  118.      * @CustomAnnotation("Productible P90 du projet")
  119.      */
  120.     private $productibleP90;
  121.     /**
  122.      * @ORM\Column(type="float",nullable=true)
  123.      * @CustomAnnotation("Puissance du projet")
  124.      */
  125.     private $puissance;
  126.     /**
  127.      * @ORM\Column(type="integer",nullable=true)
  128.      */
  129.     private $tarifVise;
  130.     /**
  131.      * @ORM\Column(type="string", length=100,nullable=true)
  132.      */
  133.     private $dateT0Annee;
  134.     /**
  135.      * @ORM\Column(type="string", length=100,nullable=true)
  136.      */
  137.     private $dateT0Semestere;
  138.     /**
  139.      * @ORM\Column(type="datetime", nullable=true)
  140.      * @CustomAnnotation("Date de T0 projet")
  141.      */
  142.     private $dateT0Date;
  143.     /**
  144.      * @ORM\Column(type="datetime", nullable=true)
  145.      * @CustomAnnotation("Date arrêté PC du projet")
  146.      */
  147.     private $dateArretePc;
  148.     /**
  149.      * @ORM\Column(type="boolean", nullable=true)
  150.      */
  151.     private $isArretePcNonRecu;
  152.     /**
  153.      * @ORM\Column(type="boolean", nullable=true)
  154.      * @CustomAnnotation("Nom du projet")
  155.      */
  156.     private $dateT0NonRecu;
  157.     /**
  158.      * @ORM\Column(type="integer",nullable=true)
  159.      * @CustomAnnotation("Loyer du projet")
  160.      */
  161.     private $loyerVise;
  162.     /**
  163.      * @ORM\Column(type="integer",nullable=true)
  164.      * @CustomAnnotation("Soulte du projet")
  165.      */
  166.     private $soulteVise;
  167.     /**
  168.      * @ORM\ManyToOne(targetEntity="TypeBatimentProject", cascade={"persist"})
  169.      * @ORM\JoinColumn(name="type_batiment_project_id", referencedColumnName="id",nullable=true)
  170.      * @CustomAnnotation("Type de batîment du projet")
  171.      */
  172.     private $typeBatimentProject;
  173.     /**
  174.      * @ORM\ManyToOne(targetEntity="Spv", cascade={"persist"})
  175.      * @ORM\JoinColumn(name="spv_id", referencedColumnName="id",nullable=true)
  176.      * @CustomAnnotation("SPV du projet")
  177.      */
  178.     private $spv;
  179.     /**
  180.      * @ORM\ManyToOne(targetEntity="DocUpload", cascade={"persist"})
  181.      * @ORM\JoinColumn(name="file_etude_productible_id", referencedColumnName="id",nullable=true ,onDelete="SET NULL")
  182.      * @CustomAnnotation("Document etude de productible")
  183.      */
  184.     private $fileEtudeProductible;
  185.     /**
  186.      * @ORM\ManyToOne(targetEntity="DocUpload", cascade={"persist"})
  187.      * @ORM\JoinColumn(name="file_promesse_bail_id", referencedColumnName="id",nullable=true ,onDelete="SET NULL")
  188.      * @CustomAnnotation("Document promesse de bail")
  189.      */
  190.     private $filePromessebail;
  191.     /**
  192.      * @ORM\ManyToMany(targetEntity="DocUpload", cascade={"persist"})
  193.      * @ORM\JoinColumn( referencedColumnName="id",nullable=true ,onDelete="SET NULL")
  194.      * @ORM\JoinTable(name="file_doc_compementaire")
  195.      * @CustomAnnotation("Visite Technique devéloppeur ")
  196.      */
  197.     private $fileDocCompementaire;
  198.     /**
  199.      * @ORM\Column(type="boolean", nullable=true)
  200.      */
  201.     private $isPromesseBailSignee;
  202.     /**
  203.      * @ORM\Column(type="datetime", nullable=true)
  204.      */
  205.     private $createdAt;
  206.     /**
  207.      * @ORM\Column(type="string", length=100, nullable=true)
  208.      */
  209.     private $token;
  210.     /**
  211.      * @ORM\ManyToOne(targetEntity="User", cascade={"persist"})
  212.      * @ORM\JoinColumn(name="developper_id", referencedColumnName="id",nullable=true)
  213.      * @CustomAnnotation("Développeur du projet")
  214.      */
  215.     private $developpeur;
  216.     /**
  217.      * @ORM\ManyToOne(targetEntity="User", cascade={"persist"})
  218.      * @ORM\JoinColumn(name="epc_id", referencedColumnName="id",nullable=true)
  219.      * @CustomAnnotation("Epc du projet")
  220.      */
  221.     private $epc;
  222.     /**
  223.      * @ORM\ManyToOne(targetEntity="User", cascade={"persist"})
  224.      * @ORM\JoinColumn(name="admin_id", referencedColumnName="id",nullable=true)
  225.      */
  226.     private $admin;
  227.     /**
  228.      * @ORM\ManyToOne(targetEntity="User", cascade={"persist"})
  229.      * @ORM\JoinColumn(name="user_created_id", referencedColumnName="id",nullable=true)
  230.      */
  231.     private $userCreated;
  232.     /**
  233.      * @ORM\Column(type="string", length=100, nullable=true)
  234.      */
  235.     private $status;
  236.     /**
  237.      * @ORM\Column(type="text", nullable=true)
  238.      */
  239.     private $commentRefuse;
  240.     /**
  241.      * @ORM\Column(type="datetime", nullable=true)
  242.      * @CustomAnnotation("Date de refus")
  243.      */
  244.     private $refuseAt;
  245.     /**
  246.      * @ORM\Column(type="datetime", nullable=true)
  247.      */
  248.     private $valideAt;
  249.     /**
  250.      * @ORM\Column(type="string", length=100, nullable=true)
  251.      */
  252.     private $typeProblemeDemande;
  253.     /**
  254.      * @ORM\Column(type="text", nullable=true)
  255.      */
  256.     private $commentDemande;
  257.     /**
  258.      * @ORM\Column(type="boolean", nullable=true)
  259.      */
  260.     private $isArchived;
  261.     /**
  262.      * @ORM\Column(type="text", nullable=true)
  263.      */
  264.     private $commentArchive;
  265.     /**
  266.      * @ORM\Column(type="datetime", nullable=true)
  267.      */
  268.     private $archiveAt;
  269.     /**
  270.      * @ORM\Column(type="boolean", nullable=true)
  271.      */
  272.     private $isEnabled;
  273.     /**
  274.      * @ORM\Column(type="text", nullable=true)
  275.      */
  276.     private $numEtapEncours;
  277.     /**
  278.      * @ORM\Column(type="boolean", nullable=true)
  279.      */
  280.     private $isOpenCat1;
  281.     /**
  282.      * @ORM\Column(type="boolean", nullable=true)
  283.      */
  284.     private $isOpenCat2;
  285.     /**
  286.      * @ORM\Column(type="boolean", nullable=true)
  287.      */
  288.     private $isOpenCat3;
  289.     /**
  290.      * @ORM\Column(type="boolean", nullable=true)
  291.      */
  292.     private $isOpenCat4;
  293.     /**
  294.      * @ORM\Column(type="boolean", nullable=true)
  295.      */
  296.     private $isDemandeModif;
  297.     /**
  298.      * @ORM\ManyToOne(targetEntity="User", cascade={"persist"})
  299.      * @ORM\JoinColumn(name="user_demande_modif_id", referencedColumnName="id",nullable=true)
  300.      */
  301.     private $userDemandeModif;
  302.     /**
  303.      * @ORM\Column(type="text", length=100, nullable=true)
  304.      * @CustomAnnotation("Tarif Fit prévisionnel")
  305.      */
  306.     private $tarifRevente;
  307.     /**
  308.      * @ORM\Column(type="text", length=100, nullable=true)
  309.      * @CustomAnnotation("Mise en place du Monitoring")
  310.      */
  311.     private $miseEnplaceMonitoring;
  312.     /**
  313.      * @ORM\Column(type="datetime", nullable=true)
  314.      * @CustomAnnotation("Date de mise en service")
  315.      */
  316.     private $dateMiseEnService;
  317.     /**
  318.      * @ORM\Column(type="text", length=100, nullable=true)
  319.      * @CustomAnnotation("Statut administratif")
  320.      */
  321.     private $statusAdministratif;
  322.     /**
  323.      * @ORM\ManyToOne(targetEntity="DocUpload", cascade={"persist"})
  324.      * @ORM\JoinColumn(name="image_project_id", referencedColumnName="id",nullable=true ,onDelete="SET NULL")
  325.      * @CustomAnnotation("Image du projet")
  326.      */
  327.     private $imageProject;
  328.     /**
  329.      * @ORM\ManyToMany(targetEntity="DocUpload", cascade={"persist"})
  330.      * @ORM\JoinColumn(name="images_project_id", referencedColumnName="id",nullable=true ,onDelete="SET NULL")
  331.      * @CustomAnnotation("Image du projet")
  332.      */
  333.     private $imagesProject;
  334.     /**
  335.      * @ORM\Column(type="boolean", nullable=true)
  336.      */
  337.     private $isNewConstruction;
  338.     /**
  339.      * @ORM\Column(type="string", length=255, nullable=true)
  340.      * @CustomAnnotation("Statut tracker")
  341.      */
  342.     private $statusTrackerActuel;
  343.     /**
  344.      * @ORM\OneToMany(targetEntity="App\Entity\StatusTracker",mappedBy="project", cascade={"persist"})
  345.      */
  346.     private $statusTracker;
  347.     /**
  348.      * @ORM\ManyToOne(targetEntity="Fournisseur", cascade={"persist"})
  349.      * @ORM\JoinColumn(name="fournisseur_id", referencedColumnName="id",nullable=true)
  350.      */
  351.     private $fournisseur;
  352.     /**
  353.      * @ORM\OneToMany(targetEntity="IntervenantProject",mappedBy="project", cascade={"persist"})
  354.      */
  355.     private $intervenantUser;
  356.     /**
  357.      * @ORM\OneToMany(targetEntity="ResponcablePorject",mappedBy="project", cascade={"persist"})
  358.      */
  359.     private $responsableUser;
  360.     /**
  361.      * @ORM\OneToMany(targetEntity="ResponsableDeveloppement",mappedBy="project", cascade={"persist"})
  362.      */
  363.     private $responsableDeveloppement;
  364.     /**
  365.      * @ORM\OneToMany(targetEntity="FournisseurProject",mappedBy="project", cascade={"persist"})
  366.      */
  367.     private $fournisseurProject;
  368.     /**
  369.      * @ORM\OneToMany(targetEntity="ConstructeurProject",mappedBy="project", cascade={"persist"})
  370.      */
  371.     private $constructeurUser;
  372.     /**
  373.      * @ORM\ManyToOne(targetEntity="User", cascade={"persist"})
  374.      * @ORM\JoinColumn(name="responsable_id", referencedColumnName="id",nullable=true)
  375.      * @CustomAnnotation("Responsable construction")
  376.      */
  377.     private $responsable;
  378.     /**
  379.      * @ORM\Column(type="float", nullable=true)
  380.      * @CustomAnnotation("Budget facturation Développement")
  381.      */
  382.     private $budgetDeveloppement;
  383.     /**
  384.      * @ORM\Column(type="float", nullable=true)
  385.      * @CustomAnnotation("Budget facturation Développement")
  386.      */
  387.     private $budgetConstruction;
  388.     /**
  389.      * @ORM\Column(type="float", nullable=true)
  390.      * @CustomAnnotation("Budget facturation Développement")
  391.      */
  392.     private $budgetExploitation;
  393.     /**
  394.      * @ORM\Column(type="text", length=100, nullable=true)
  395.      * @CustomAnnotation("Stade de construction")
  396.      */
  397.     private $stadeConstruction;
  398.     /**
  399.      * @ORM\Column(type="datetime",  nullable=true)
  400.      * @CustomAnnotation("Stade de construction update date")
  401.      */
  402.     private $stadeConstructionDate;
  403.     /**
  404.      * @ORM\OneToMany(targetEntity="CommentProject2",mappedBy="project", cascade={"persist"})
  405.      * @ORM\OrderBy({"id" = "DESC"})
  406.      */
  407.     private $commentProject2;
  408.     /**
  409.      * @ORM\Column(type="datetime", nullable=true)
  410.      */
  411.     private $updateAtClavus;
  412.     /**
  413.      * @ORM\Column(type="integer",  nullable=true)
  414.      */
  415.     private $compteurErpiNbr;
  416.     /**
  417.      * @ORM\Column(type="text",  nullable=true)
  418.      */
  419.     private $compteurErpiAnnee;
  420.     /**
  421.      * @ORM\Column(type="boolean", nullable=true)
  422.      */
  423.     private $isImportCode;
  424.     /**
  425.      * @ORM\ManyToOne(targetEntity="Entreprise", cascade={"persist"})
  426.      * @ORM\JoinColumn(name="entreprise_id", referencedColumnName="id",nullable=true)
  427.      * @CustomAnnotation("Entreprise")
  428.      */
  429.     private $entreprise;
  430.     /**
  431.      * @ORM\Column(type="text",  nullable=true)
  432.      */
  433.     private $schemaConstruction;
  434.     /**
  435.      * @ORM\Column(type="string", length=255, nullable=true)
  436.      * @CustomAnnotation("Statut Construction")
  437.      */
  438.     private $statusTrackerActuelConstruction;
  439.     /**
  440.      * @ORM\OneToMany(targetEntity="App\Entity\StatusTrackerConstruction",mappedBy="project", cascade={"persist"})
  441.      */
  442.     private $statusTrackerConstruction;
  443.     /**
  444.      * @ORM\Column(type="boolean", nullable=true)
  445.      */
  446.     private $isNotifDateMESPrevisionnelle;
  447.     /**
  448.      * @ORM\ManyToMany(targetEntity="SousFamilleProject", cascade={"persist"})
  449.      * @ORM\JoinColumn(name="sous_famille_project_id", referencedColumnName="id",nullable=true)
  450.      * @CustomAnnotation("Sous Famille du projet")
  451.      */
  452.     private $sousFamilleProject;
  453.     /**
  454.      * @ORM\ManyToMany(targetEntity="ZonagePlu", cascade={"persist"})
  455.      * @ORM\JoinColumn(name="zonage_plu_id", referencedColumnName="id",nullable=true)
  456.      * @CustomAnnotation("Zonage plu")
  457.      */
  458.     private $zonagePlu;
  459.     /**
  460.      * @ORM\Column(type="float", nullable=true)
  461.      * @CustomAnnotation("Surface disponible")
  462.      */
  463.     private $surfaceDisponible;
  464.     /**
  465.      * @ORM\Column(type="float", nullable=true)
  466.      * @CustomAnnotation("Surface exploitable")
  467.      */
  468.     private $surfaceExploitable;
  469.     /**
  470.      * @ORM\Column(type="integer",nullable=true)
  471.      * @CustomAnnotation("Achat location")
  472.      */
  473.     private $achatLocation;
  474.     /**
  475.      * @ORM\Column(type="boolean", nullable=true)
  476.      */
  477.     private $isPromesseAchatSignee;
  478.     /**
  479.      * @ORM\Column(type="text", length=100, nullable=true)
  480.      * @CustomAnnotation("prix achat Foncier")
  481.      */
  482.     private $prixAchatFoncier;
  483.     /**
  484.      * @ORM\Column(type="text", length=100, nullable=true)
  485.      * @CustomAnnotation("unité achat Foncier")
  486.      */
  487.     private $uniteAchatFoncier;
  488.     /**
  489.      * @ORM\Column(type="text", length=100, nullable=true)
  490.      * @CustomAnnotation("Indemnité transitoire (k€/an)")
  491.      */
  492.     private $indemiteTransitoire;
  493.     /**
  494.      * @ORM\Column(type="text", length=100, nullable=true)
  495.      * @CustomAnnotation("Rémunération exploitant agricole")
  496.      */
  497.     private $remunerationExploitantAgricole;
  498.     /**
  499.      * @ORM\Column(type="text", length=255, nullable=true)
  500.      * @CustomAnnotation("Tri")
  501.      */
  502.     private $tri;
  503.     /**
  504.      * @ORM\Column(type="text", length=255, nullable=true)
  505.      * @CustomAnnotation("Tri avec Prime")
  506.      */
  507.     private $triPrime;
  508.     /**
  509.      * @ORM\ManyToOne(targetEntity="Sourcing", cascade={"persist"})
  510.      * @ORM\JoinColumn(name="sourcing_id", referencedColumnName="id",nullable=true)
  511.      * @CustomAnnotation("Sourcing")
  512.      */
  513.     private $sourcing;
  514.     /**
  515.      * @ORM\Column(type="datetime", nullable=true)
  516.      * @CustomAnnotation("Date de sourcing")
  517.      */
  518.     private $dateSourcing;
  519.     /**
  520.      * @ORM\Column(type="text", length=255, nullable=true)
  521.      * @CustomAnnotation("Durée d'exploitation")
  522.      */
  523.     private $dureeExploitation;
  524.     /**
  525.      * @ORM\Column(type="text", length=255, nullable=true)
  526.      * @CustomAnnotation("TRI CRE min")
  527.      */
  528.     private $triCreMin;
  529.     /**
  530.      * @ORM\Column(type="text", length=255, nullable=true)
  531.      * @CustomAnnotation("TRI PPA min")
  532.      */
  533.     private $triPpaMin;
  534.     /**
  535.      * @ORM\Column(type="text", length=255, nullable=true)
  536.      * @CustomAnnotation("Rendement EBE/CAPEX.")
  537.      */
  538.     private $rendementEbeCapex;
  539.     /**
  540.      * @ORM\Column(type="text", length=255, nullable=true)
  541.      * @CustomAnnotation("Ratio CAPEX/PUISSANCE")
  542.      */
  543.     private $ratioCapexPuissance;
  544.     /**
  545.      * @ORM\Column(type="datetime", nullable=true)
  546.      * @CustomAnnotation("Date PDB")
  547.      */
  548.     private $dateExpirationPromesseBail;
  549.     /**
  550.      * @ORM\Column(type="integer", nullable=true)
  551.      * @CustomAnnotation("Durée de validité ")
  552.      */
  553.     private $d1;
  554.     /**
  555.      * @ORM\Column(type="text", length=255, nullable=true)
  556.      * @CustomAnnotation("Rendement EBE/CAPEX PPA 70 Euros")
  557.      */
  558.     private $rendementEbeCapexPPA;
  559.     /**
  560.      * @ORM\Column(type="text", length=255, nullable=true)
  561.      * @CustomAnnotation("Ranking")
  562.      */
  563.     private $ranking;
  564.     /**
  565.      * @ORM\Column(type="datetime", nullable=true)
  566.      * @CustomAnnotation("Date Dépôt PC")
  567.      */
  568.     private $dateDepotPc;
  569.     /**
  570.      * @ORM\Column(type="datetime", nullable=true)
  571.      * @CustomAnnotation("Date Obtention PC")
  572.      */
  573.     private $dateObtentionPc;
  574.     /**
  575.      * @ORM\Column(type="datetime", nullable=true)
  576.      * @CustomAnnotation("Date Retour pré-cadrage")
  577.      */
  578.     private $dateRetourPreCadrage;
  579.     /**
  580.      * @ORM\Column(type="datetime", nullable=true)
  581.      * @CustomAnnotation("Date Examen au cas par cas")
  582.      */
  583.     private $dateExamenCasParCas;
  584.     /**
  585.      * @ORM\Column(type="datetime", nullable=true)
  586.      * @CustomAnnotation("Date Pole ENR")
  587.      */
  588.     private $datePoleEnr;
  589.     /**
  590.      * @ORM\Column(type="datetime", nullable=true)
  591.      * @CustomAnnotation("Date Retour Inventaire Faune Flore")
  592.      */
  593.     private $dateRetourInventaireFauneFlore;
  594.     /**
  595.      * @ORM\Column(type="datetime", nullable=true)
  596.      * @CustomAnnotation("Date Changement PLU")
  597.      */
  598.     private $dateChangementPlu;
  599.     /**
  600.      * @ORM\Column(type="datetime", nullable=true)
  601.      * @CustomAnnotation("Date Avis MRAE")
  602.      */
  603.     private $dateAvisMrae;
  604.     /**
  605.      * @ORM\Column(type="datetime", nullable=true)
  606.      * @CustomAnnotation("Date CDPENAF")
  607.      */
  608.     private $dateCdpenaf;
  609.     /**
  610.      * @ORM\Column(type="datetime", nullable=true)
  611.      * @CustomAnnotation("Date Enquête publique")
  612.      */
  613.     private $dateEnquetePublique;
  614.     /**
  615.      * @ORM\Column(type="json", nullable=true)
  616.      */
  617.     private $pointsForts;
  618.     /**
  619.      * @ORM\Column(type="json", nullable=true)
  620.      */
  621.     private $pointsFaibles;
  622.     /**
  623.      * @ORM\Column(type="datetime", nullable=true)
  624.      * @CustomAnnotation("Date RTB tarifié")
  625.      */
  626.     private $dateRTBtarifie;
  627.     /**
  628.      * @ORM\OneToMany(targetEntity="ResponcableFoncierPorject",mappedBy="project", cascade={"persist"})
  629.      */
  630.     private $responsableFoncierUser;
  631.     /**
  632.      * @ORM\Column(type="text", length=255, nullable=true)
  633.      * @CustomAnnotation("Choix développeur")
  634.      */
  635.     private $choixDev;
  636.     /**
  637.      * @ORM\Column(type="text", length=255, nullable=true)
  638.      * @CustomAnnotation("Prix d’achat foncier (k€/MWc)")
  639.      */
  640.     private $prixAchatFoncierKMWc;
  641.     /**
  642.      * @ORM\Column(type="text", length=255, nullable=true)
  643.      * @CustomAnnotation("Prix d’achat foncier (k€/ha)")
  644.      */
  645.     private $prixAchatFoncierKHa;
  646.     /**
  647.      * @ORM\Column(type="datetime", nullable=true)
  648.      * @CustomAnnotation("Date d’abandon")
  649.      */
  650.     private $dateAbandon;
  651.     /**
  652.      * @ORM\OneToMany(targetEntity=CommentEquipementProjet::class, mappedBy="projet")
  653.      */
  654.     private $commentEquipementProjets;
  655.     /**
  656.      * @ORM\Column(type="string", length=100, nullable=true)
  657.      */
  658.     private $uniteMesure;
  659.     /**
  660.      * @ORM\Column(type="text", length=100, nullable=true)
  661.      * @CustomAnnotation("Statut administratif engagement")
  662.      */
  663.     private $statusAdministratifEngagement;
  664.     public function __construct()
  665.     {
  666.         $this->createdAt = new \DateTime();
  667.         $this->token =  md5(uniqid());
  668.         $this->fileDocCompementaire = new ArrayCollection();
  669.         $this->statusTracker = new ArrayCollection();
  670.         $this->intervenantUser = new ArrayCollection();
  671.         $this->responsableUser = new ArrayCollection();
  672.         $this->constructeurUser = new ArrayCollection();
  673.         $this->commentProject2 = new ArrayCollection();
  674.         $this->fournisseurProject = new ArrayCollection();
  675.         $this->responsableDeveloppement = new ArrayCollection();
  676.         $this->statusTrackerConstruction = new ArrayCollection();
  677.         $this->imagesProject = new ArrayCollection();
  678.         $this->sousFamilleProject = new ArrayCollection();
  679.         $this->zonagePlu = new ArrayCollection();
  680.         $this->responsableFoncierUser = new ArrayCollection();
  681.         $this->commentEquipementProjets = new ArrayCollection();
  682.     }
  683.     public function getId(): ?int
  684.     {
  685.         return $this->id;
  686.     }
  687.     public function getName(): ?string
  688.     {
  689.         return $this->name;
  690.     }
  691.     public function setName(string $name): self
  692.     {
  693.         $this->name = $name;
  694.         return $this;
  695.     }
  696.     public function getAdresse(): ?string
  697.     {
  698.         return $this->adresse;
  699.     }
  700.     public function setAdresse(?string $adresse): self
  701.     {
  702.         $this->adresse = $adresse;
  703.         return $this;
  704.     }
  705.     public function getCity(): ?string
  706.     {
  707.         return $this->city;
  708.     }
  709.     public function setCity(?string $city): self
  710.     {
  711.         $this->city = $city;
  712.         return $this;
  713.     }
  714.     public function getCodePostal(): ?string
  715.     {
  716.         return $this->codePostal;
  717.     }
  718.     public function setCodePostal(?string $codePostal): self
  719.     {
  720.         $this->codePostal = $codePostal;
  721.         return $this;
  722.     }
  723.     public function getLat(): ?string
  724.     {
  725.         return $this->lat;
  726.     }
  727.     public function setLat(?string $lat): self
  728.     {
  729.         $this->lat = $lat;
  730.         return $this;
  731.     }
  732.     public function getLongi(): ?string
  733.     {
  734.         return $this->longi;
  735.     }
  736.     public function setLongi(?string $longi): self
  737.     {
  738.         $this->longi = $longi;
  739.         return $this;
  740.     }
  741.     public function getNumParcelle(): ?string
  742.     {
  743.         return $this->numParcelle;
  744.     }
  745.     public function setNumParcelle(?string $numParcelle): self
  746.     {
  747.         $this->numParcelle = $numParcelle;
  748.         return $this;
  749.     }
  750.     public function getDateArretePc(): ?\DateTimeInterface
  751.     {
  752.         return $this->dateArretePc;
  753.     }
  754.     public function setDateArretePc(?\DateTimeInterface $dateArretePc): self
  755.     {
  756.         $this->dateArretePc = $dateArretePc;
  757.         return $this;
  758.     }
  759.     public function getCreatedAt(): ?\DateTimeInterface
  760.     {
  761.         return $this->createdAt;
  762.     }
  763.     public function setCreatedAt(?\DateTimeInterface $createdAt): self
  764.     {
  765.         $this->createdAt = $createdAt;
  766.         return $this;
  767.     }
  768.     public function getToken(): ?string
  769.     {
  770.         return $this->token;
  771.     }
  772.     public function setToken(?string $token): self
  773.     {
  774.         $this->token = $token;
  775.         return $this;
  776.     }
  777.     public function getStatus(): ?string
  778.     {
  779.         return $this->status;
  780.     }
  781.     public function setStatus(?string $status): self
  782.     {
  783.         $this->status = $status;
  784.         return $this;
  785.     }
  786.     public function getCommentRefuse(): ?string
  787.     {
  788.         return $this->commentRefuse;
  789.     }
  790.     public function setCommentRefuse(?string $commentRefuse): self
  791.     {
  792.         $this->commentRefuse = $commentRefuse;
  793.         return $this;
  794.     }
  795.     public function getRefuseAt(): ?\DateTimeInterface
  796.     {
  797.         return $this->refuseAt;
  798.     }
  799.     public function setRefuseAt(?\DateTimeInterface $refuseAt): self
  800.     {
  801.         $this->refuseAt = $refuseAt;
  802.         return $this;
  803.     }
  804.     public function getValideAt(): ?\DateTimeInterface
  805.     {
  806.         return $this->valideAt;
  807.     }
  808.     public function setValideAt(?\DateTimeInterface $valideAt): self
  809.     {
  810.         $this->valideAt = $valideAt;
  811.         return $this;
  812.     }
  813.     public function getTypeProblemeDemande(): ?string
  814.     {
  815.         return $this->typeProblemeDemande;
  816.     }
  817.     public function setTypeProblemeDemande(?string $typeProblemeDemande): self
  818.     {
  819.         $this->typeProblemeDemande = $typeProblemeDemande;
  820.         return $this;
  821.     }
  822.     public function getCommentDemande(): ?string
  823.     {
  824.         return $this->commentDemande;
  825.     }
  826.     public function setCommentDemande(?string $commentDemande): self
  827.     {
  828.         $this->commentDemande = $commentDemande;
  829.         return $this;
  830.     }
  831.     public function getFamilleProject(): ?FamilleProject
  832.     {
  833.         return $this->familleProject;
  834.     }
  835.     public function setFamilleProject(?FamilleProject $familleProject): self
  836.     {
  837.         $this->familleProject = $familleProject;
  838.         return $this;
  839.     }
  840.     public function getTypologieProject(): ?TypologieProject
  841.     {
  842.         return $this->typologieProject;
  843.     }
  844.     public function setTypologieProject(?TypologieProject $typologieProject): self
  845.     {
  846.         $this->typologieProject = $typologieProject;
  847.         return $this;
  848.     }
  849.     public function getTypeBatimentProject(): ?TypeBatimentProject
  850.     {
  851.         return $this->typeBatimentProject;
  852.     }
  853.     public function setTypeBatimentProject(?TypeBatimentProject $typeBatimentProject): self
  854.     {
  855.         $this->typeBatimentProject = $typeBatimentProject;
  856.         return $this;
  857.     }
  858.     public function getSpv(): ?Spv
  859.     {
  860.         return $this->spv;
  861.     }
  862.     public function setSpv(?Spv $spv): self
  863.     {
  864.         $this->spv = $spv;
  865.         return $this;
  866.     }
  867.     public function getDeveloppeur(): ?User
  868.     {
  869.         return $this->developpeur;
  870.     }
  871.     public function setDeveloppeur(?User $developpeur): self
  872.     {
  873.         $this->developpeur = $developpeur;
  874.         return $this;
  875.     }
  876.     public function getEpc(): ?User
  877.     {
  878.         return $this->epc;
  879.     }
  880.     public function setEpc(?User $epc): self
  881.     {
  882.         $this->epc = $epc;
  883.         return $this;
  884.     }
  885.     public function getAdmin(): ?User
  886.     {
  887.         return $this->admin;
  888.     }
  889.     public function setAdmin(?User $admin): self
  890.     {
  891.         $this->admin = $admin;
  892.         return $this;
  893.     }
  894.     public function getIsArchived(): ?bool
  895.     {
  896.         return $this->isArchived;
  897.     }
  898.     public function setIsArchived(?bool $isArchived): self
  899.     {
  900.         $this->isArchived = $isArchived;
  901.         return $this;
  902.     }
  903.     public function getFileEtudeProductible(): ?DocUpload
  904.     {
  905.         return $this->fileEtudeProductible;
  906.     }
  907.     public function setFileEtudeProductible(?DocUpload $fileEtudeProductible): self
  908.     {
  909.         $this->fileEtudeProductible = $fileEtudeProductible;
  910.         return $this;
  911.     }
  912.     public function getNumEtapEncours(): ?string
  913.     {
  914.         return $this->numEtapEncours;
  915.     }
  916.     public function setNumEtapEncours(?string $numEtapEncours): self
  917.     {
  918.         $this->numEtapEncours = $numEtapEncours;
  919.         return $this;
  920.     }
  921.     public function getUserCreated(): ?User
  922.     {
  923.         return $this->userCreated;
  924.     }
  925.     public function setUserCreated(?User $userCreated): self
  926.     {
  927.         $this->userCreated = $userCreated;
  928.         return $this;
  929.     }
  930.     public function getIsEnabled(): ?bool
  931.     {
  932.         return $this->isEnabled;
  933.     }
  934.     public function setIsEnabled(?bool $isEnabled): self
  935.     {
  936.         $this->isEnabled = $isEnabled;
  937.         return $this;
  938.     }
  939.     public function getIsOpenCat1(): ?bool
  940.     {
  941.         return $this->isOpenCat1;
  942.     }
  943.     public function setIsOpenCat1(?bool $isOpenCat1): self
  944.     {
  945.         $this->isOpenCat1 = $isOpenCat1;
  946.         return $this;
  947.     }
  948.     public function getIsOpenCat2(): ?bool
  949.     {
  950.         return $this->isOpenCat2;
  951.     }
  952.     public function setIsOpenCat2(?bool $isOpenCat2): self
  953.     {
  954.         $this->isOpenCat2 = $isOpenCat2;
  955.         return $this;
  956.     }
  957.     public function getIsOpenCat3(): ?bool
  958.     {
  959.         return $this->isOpenCat3;
  960.     }
  961.     public function setIsOpenCat3(?bool $isOpenCat3): self
  962.     {
  963.         $this->isOpenCat3 = $isOpenCat3;
  964.         return $this;
  965.     }
  966.     public function getIsOpenCat4(): ?bool
  967.     {
  968.         return $this->isOpenCat4;
  969.     }
  970.     public function getTarifVise(): ?int
  971.     {
  972.         return $this->tarifVise;
  973.     }
  974.     public function setTarifVise(?int $tarifVise): self
  975.     {
  976.         $this->tarifVise = $tarifVise;
  977.         return $this;
  978.     }
  979.     public function getLoyerVise(): ?int
  980.     {
  981.         return $this->loyerVise;
  982.     }
  983.     public function setLoyerVise(?int $loyerVise): self
  984.     {
  985.         $this->loyerVise = $loyerVise;
  986.         return $this;
  987.     }
  988.     public function getSoulteVise(): ?int
  989.     {
  990.         return $this->soulteVise;
  991.     }
  992.     public function setSoulteVise(?int $soulteVise): self
  993.     {
  994.         $this->soulteVise = $soulteVise;
  995.         return $this;
  996.     }
  997.     public function getIsDemandeModif(): ?bool
  998.     {
  999.         return $this->isDemandeModif;
  1000.     }
  1001.     public function setIsDemandeModif(?bool $isDemandeModif): self
  1002.     {
  1003.         $this->isDemandeModif = $isDemandeModif;
  1004.         return $this;
  1005.     }
  1006.     public function getUserDemandeModif(): ?User
  1007.     {
  1008.         return $this->userDemandeModif;
  1009.     }
  1010.     public function setUserDemandeModif(?User $userDemandeModif): self
  1011.     {
  1012.         $this->userDemandeModif = $userDemandeModif;
  1013.         return $this;
  1014.     }
  1015.     public function getFilePromessebail(): ?DocUpload
  1016.     {
  1017.         return $this->filePromessebail;
  1018.     }
  1019.     public function setFilePromessebail(?DocUpload $filePromessebail): self
  1020.     {
  1021.         $this->filePromessebail = $filePromessebail;
  1022.         return $this;
  1023.     }
  1024.     public function getDateT0Annee(): ?string
  1025.     {
  1026.         return $this->dateT0Annee;
  1027.     }
  1028.     public function setDateT0Annee(?string $dateT0Annee): self
  1029.     {
  1030.         $this->dateT0Annee = $dateT0Annee;
  1031.         return $this;
  1032.     }
  1033.     public function getDateT0Semestere(): ?string
  1034.     {
  1035.         return $this->dateT0Semestere;
  1036.     }
  1037.     public function setDateT0Semestere(?string $dateT0Semestere): self
  1038.     {
  1039.         $this->dateT0Semestere = $dateT0Semestere;
  1040.         return $this;
  1041.     }
  1042.     /**
  1043.      * @return Collection|DocUpload[]
  1044.      */
  1045.     public function getFileDocCompementaire(): Collection
  1046.     {
  1047.         return $this->fileDocCompementaire;
  1048.     }
  1049.     public function addFileDocCompementaire(DocUpload $fileDocCompementaire): self
  1050.     {
  1051.         if (!$this->fileDocCompementaire->contains($fileDocCompementaire)) {
  1052.             $this->fileDocCompementaire[] = $fileDocCompementaire;
  1053.         }
  1054.         return $this;
  1055.     }
  1056.     public function removeFileDocCompementaire(DocUpload $fileDocCompementaire): self
  1057.     {
  1058.         $this->fileDocCompementaire->removeElement($fileDocCompementaire);
  1059.         return $this;
  1060.     }
  1061.     public function getArchiveAt(): ?\DateTimeInterface
  1062.     {
  1063.         return $this->archiveAt;
  1064.     }
  1065.     public function setArchiveAt(?\DateTimeInterface $archiveAt): self
  1066.     {
  1067.         $this->archiveAt = $archiveAt;
  1068.         return $this;
  1069.     }
  1070.     public function getCommentArchive(): ?string
  1071.     {
  1072.         return $this->commentArchive;
  1073.     }
  1074.     public function setCommentArchive(?string $commentArchive): self
  1075.     {
  1076.         $this->commentArchive = $commentArchive;
  1077.         return $this;
  1078.     }
  1079.     public function getIsPromesseBailSignee(): ?bool
  1080.     {
  1081.         return $this->isPromesseBailSignee;
  1082.     }
  1083.     public function setIsPromesseBailSignee(?bool $isPromesseBailSignee): self
  1084.     {
  1085.         $this->isPromesseBailSignee = $isPromesseBailSignee;
  1086.         return $this;
  1087.     }
  1088.     public function getIsArretePcNonRecu(): ?bool
  1089.     {
  1090.         return $this->isArretePcNonRecu;
  1091.     }
  1092.     public function setIsArretePcNonRecu(?bool $isArretePcNonRecu): self
  1093.     {
  1094.         $this->isArretePcNonRecu = $isArretePcNonRecu;
  1095.         return $this;
  1096.     }
  1097.     public function getMiseEnplaceMonitoring(): ?string
  1098.     {
  1099.         return $this->miseEnplaceMonitoring;
  1100.     }
  1101.     public function setMiseEnplaceMonitoring(?string $miseEnplaceMonitoring): self
  1102.     {
  1103.         $this->miseEnplaceMonitoring = $miseEnplaceMonitoring;
  1104.         return $this;
  1105.     }
  1106.     public function getDateMiseEnService(): ?\DateTimeInterface
  1107.     {
  1108.         return $this->dateMiseEnService;
  1109.     }
  1110.     public function setDateMiseEnService(?\DateTimeInterface $dateMiseEnService): self
  1111.     {
  1112.         $this->dateMiseEnService = $dateMiseEnService;
  1113.         return $this;
  1114.     }
  1115.     public function getStatusAdministratif(): ?string
  1116.     {
  1117.         return $this->statusAdministratif;
  1118.     }
  1119.     public function setStatusAdministratif(?string $statusAdministratif): self
  1120.     {
  1121.         $this->statusAdministratif = $statusAdministratif;
  1122.         return $this;
  1123.     }
  1124.     public function getStatusAdministratifNum(){
  1125.         if($this->statusAdministratif == Project::STATUS_CUSTOM_DEVELOPPEMENT){
  1126.             return 'Développement' ;
  1127.         }elseif($this->statusAdministratif == Project::STATUS_CUSTOM_CONSTRUCTION){
  1128.             return 'Construction' ;
  1129.         }elseif ($this->statusAdministratif == Project::STATUS_CUSTOM_EXPLOITATION){
  1130.             return 'Exploitation' ;
  1131.         }else {
  1132.             return '';
  1133.         }
  1134.     }
  1135.     public function getImageProject(): ?DocUpload
  1136.     {
  1137.         return $this->imageProject;
  1138.     }
  1139.     public function setImageProject(?DocUpload $imageProject): self
  1140.     {
  1141.         $this->imageProject = $imageProject;
  1142.         return $this;
  1143.     }
  1144.     public function __clone() {
  1145.         if ($this->id) {
  1146.             if($this->fileEtudeProductible){
  1147.                 $fileEtudeProductibleNew = clone $this->getFileEtudeProductible();
  1148.                 $this->setFileEtudeProductible($fileEtudeProductibleNew);
  1149.             }
  1150.             if($this->filePromessebail){
  1151.                 $filePromessebailNew = clone $this->getFilePromessebail();
  1152.                 $this->setFilePromessebail($filePromessebailNew);
  1153.             }
  1154.             $fileDocCompementaireArray = $this->getFileDocCompementaire();
  1155.             $this->fileDocCompementaire = new ArrayCollection();
  1156.             if (!$fileDocCompementaireArray->isEmpty()) {
  1157.                 foreach ($fileDocCompementaireArray as $item) {
  1158.                     $val = clone $item;
  1159.                     $this->addFileDocCompementaire($val);
  1160.                 }
  1161.             }
  1162.             if($this->imageProject){
  1163.                 $fileImageProjectNew = clone $this->getImageProject();
  1164.                 $this->setImageProject($fileImageProjectNew);
  1165.             }
  1166.         }
  1167.     }
  1168.     public function getIsNewConstruction(): ?bool
  1169.     {
  1170.         return $this->isNewConstruction;
  1171.     }
  1172.     public function setIsNewConstruction(?bool $isNewConstruction): self
  1173.     {
  1174.         $this->isNewConstruction = $isNewConstruction;
  1175.         return $this;
  1176.     }
  1177.     public function getDateT0NonRecu(): ?bool
  1178.     {
  1179.         return $this->dateT0NonRecu;
  1180.     }
  1181.     public function setDateT0NonRecu(?bool $dateT0NonRecu): self
  1182.     {
  1183.         $this->dateT0NonRecu = $dateT0NonRecu;
  1184.         return $this;
  1185.     }
  1186.     public function getDateT0Date(): ?\DateTimeInterface
  1187.     {
  1188.         return $this->dateT0Date;
  1189.     }
  1190.     public function setDateT0Date(?\DateTimeInterface $dateT0Date): self
  1191.     {
  1192.         $this->dateT0Date = $dateT0Date;
  1193.         return $this;
  1194.     }
  1195.     public function getTarifRevente(): ?string
  1196.     {
  1197.         return $this->tarifRevente;
  1198.     }
  1199.     public function setTarifRevente(?string $tarifRevente): self
  1200.     {
  1201.         $this->tarifRevente = $tarifRevente;
  1202.         return $this;
  1203.     }
  1204.     public function getStatusTrackerActuel(): ?string
  1205.     {
  1206.         return $this->statusTrackerActuel;
  1207.     }
  1208.     public function setStatusTrackerActuel(?string $statusTrackerActuel): self
  1209.     {
  1210.         $this->statusTrackerActuel = $statusTrackerActuel;
  1211.         return $this;
  1212.     }
  1213.     public function getStatusTrackerStr(){
  1214.         if($this->statusTrackerActuel == StatusTracker::STATUS_dev_0){
  1215.             return 'Dev. 0 (Under instruction)' ;
  1216.         }elseif($this->statusTrackerActuel == StatusTracker::STATUS_dev_1){
  1217.             return 'Dev. 1 (PC accepted)' ;
  1218.         }elseif ($this->statusTrackerActuel == StatusTracker::STATUS_dev_2){
  1219.             return 'Dev. 2 (Grid connection agreement received)' ;
  1220.         }elseif ($this->statusTrackerActuel == StatusTracker::STATUS_dev_3){
  1221.             return 'Dev. 3 (full permissions RtB)' ;
  1222.         }elseif ($this->statusTrackerActuel == StatusTracker::STATUS_dev_4){
  1223.             return 'Dev. 4 (Erection EPC lauched)' ;
  1224.         }elseif ($this->statusTrackerActuel == StatusTracker::STATUS_dev_5){
  1225.             return 'Dev. 5 (Construction complete)' ;
  1226.         }elseif ($this->statusTrackerActuel == StatusTracker::STATUS_dev_6){
  1227.             return 'Dev. 6 (Commissioned)' ;
  1228.         }elseif ($this->statusTrackerActuel == StatusTracker::STATUS_operating){
  1229.             return 'Operating' ;
  1230.         }else {
  1231.             return '';
  1232.         }
  1233.     }
  1234.     /**
  1235.      * @return Collection|StatusTracker[]
  1236.      */
  1237.     public function getStatusTracker(): Collection
  1238.     {
  1239.         return $this->statusTracker;
  1240.     }
  1241.     public function addStatusTracker(StatusTracker $statusTracker): self
  1242.     {
  1243.         if (!$this->statusTracker->contains($statusTracker)) {
  1244.             $this->statusTracker[] = $statusTracker;
  1245.             $statusTracker->setProject($this);
  1246.         }
  1247.         return $this;
  1248.     }
  1249.     public function removeStatusTracker(StatusTracker $statusTracker): self
  1250.     {
  1251.         if ($this->statusTracker->removeElement($statusTracker)) {
  1252.             // set the owning side to null (unless already changed)
  1253.             if ($statusTracker->getProject() === $this) {
  1254.                 $statusTracker->setProject(null);
  1255.             }
  1256.         }
  1257.         return $this;
  1258.     }
  1259.     public function getFournisseur(): ?Fournisseur
  1260.     {
  1261.         return $this->fournisseur;
  1262.     }
  1263.     public function setFournisseur(?Fournisseur $fournisseur): self
  1264.     {
  1265.         $this->fournisseur = $fournisseur;
  1266.         return $this;
  1267.     }
  1268.     /**
  1269.      * @return Collection|IntervenantProject[]
  1270.      */
  1271.     public function getIntervenantUser(): Collection
  1272.     {
  1273.         return $this->intervenantUser;
  1274.     }
  1275.     public function addIntervenantUser(IntervenantProject $intervenantUser): self
  1276.     {
  1277.         if (!$this->intervenantUser->contains($intervenantUser)) {
  1278.             $this->intervenantUser[] = $intervenantUser;
  1279.             $intervenantUser->setProject($this);
  1280.         }
  1281.         return $this;
  1282.     }
  1283.     public function removeIntervenantUser(IntervenantProject $intervenantUser): self
  1284.     {
  1285.         if ($this->intervenantUser->removeElement($intervenantUser)) {
  1286.             // set the owning side to null (unless already changed)
  1287.             if ($intervenantUser->getProject() === $this) {
  1288.                 $intervenantUser->setProject(null);
  1289.             }
  1290.         }
  1291.         return $this;
  1292.     }
  1293.     public function getResponsable(): ?User
  1294.     {
  1295.         return $this->responsable;
  1296.     }
  1297.     public function setResponsable(?User $responsable): self
  1298.     {
  1299.         $this->responsable = $responsable;
  1300.         return $this;
  1301.     }
  1302.     /**
  1303.      * @return Collection|ResponcablePorject[]
  1304.      */
  1305.     public function getResponsableUser(): Collection
  1306.     {
  1307.         return $this->responsableUser;
  1308.     }
  1309.     public function addResponsableUser(ResponcablePorject $responsableUser): self
  1310.     {
  1311.         if (!$this->responsableUser->contains($responsableUser)) {
  1312.             $this->responsableUser[] = $responsableUser;
  1313.             $responsableUser->setProject($this);
  1314.         }
  1315.         return $this;
  1316.     }
  1317.     public function removeResponsableUser(ResponcablePorject $responsableUser): self
  1318.     {
  1319.         if ($this->responsableUser->removeElement($responsableUser)) {
  1320.             // set the owning side to null (unless already changed)
  1321.             if ($responsableUser->getProject() === $this) {
  1322.                 $responsableUser->setProject(null);
  1323.             }
  1324.         }
  1325.         return $this;
  1326.     }
  1327.     public function getBudgetDeveloppement(): ?float
  1328.     {
  1329.         return $this->budgetDeveloppement;
  1330.     }
  1331.     public function setBudgetDeveloppement(?float $budgetDeveloppement): self
  1332.     {
  1333.         $this->budgetDeveloppement = $budgetDeveloppement;
  1334.         return $this;
  1335.     }
  1336.     public function getBudgetConstruction(): ?float
  1337.     {
  1338.         return $this->budgetConstruction;
  1339.     }
  1340.     public function setBudgetConstruction(?float $budgetConstruction): self
  1341.     {
  1342.         $this->budgetConstruction = $budgetConstruction;
  1343.         return $this;
  1344.     }
  1345.     public function getBudgetExploitation(): ?float
  1346.     {
  1347.         return $this->budgetExploitation;
  1348.     }
  1349.     public function setBudgetExploitation(?float $budgetExploitation): self
  1350.     {
  1351.         $this->budgetExploitation = $budgetExploitation;
  1352.         return $this;
  1353.     }
  1354.     public function getStadeConstruction(): ?string
  1355.     {
  1356.         if($this->stadeConstruction == 'Devis reçus' or $this->stadeConstruction == 'Attente validation budget/Capex'  ){
  1357.             return 'Attente devis';
  1358.         }elseif ($this->stadeConstruction == 'Budget/Capex validé' or $this->stadeConstruction == 'Contrat de construction signé' or $this->stadeConstruction == 'Ordre de démarrage envoyé' or $this->stadeConstruction == 'Travaux réceptionnés'){
  1359.             return 'Attente devis';
  1360.         }else{
  1361.             return $this->stadeConstruction;
  1362.         }
  1363.     }
  1364.     public function setStadeConstruction(?string $stadeConstruction): self
  1365.     {
  1366.         $this->stadeConstruction = $stadeConstruction;
  1367.         return $this;
  1368.     }
  1369.     /**
  1370.      * @return Collection|ConstructeurProject[]
  1371.      */
  1372.     public function getConstructeurUser(): Collection
  1373.     {
  1374.         return $this->constructeurUser;
  1375.     }
  1376.     public function addConstructeurUser(ConstructeurProject $constructeurUser): self
  1377.     {
  1378.         if (!$this->constructeurUser->contains($constructeurUser)) {
  1379.             $this->constructeurUser[] = $constructeurUser;
  1380.             $constructeurUser->setProject($this);
  1381.         }
  1382.         return $this;
  1383.     }
  1384.     public function removeConstructeurUser(ConstructeurProject $constructeurUser): self
  1385.     {
  1386.         if ($this->constructeurUser->removeElement($constructeurUser)) {
  1387.             // set the owning side to null (unless already changed)
  1388.             if ($constructeurUser->getProject() === $this) {
  1389.                 $constructeurUser->setProject(null);
  1390.             }
  1391.         }
  1392.         return $this;
  1393.     }
  1394.     /**
  1395.      * @return Collection|CommentProject2[]
  1396.      */
  1397.     public function getCommentProject2(): Collection
  1398.     {
  1399.         return $this->commentProject2;
  1400.     }
  1401.     public function addCommentProject2(CommentProject2 $commentProject2): self
  1402.     {
  1403.         if (!$this->commentProject2->contains($commentProject2)) {
  1404.             $this->commentProject2[] = $commentProject2;
  1405.             $commentProject2->setProject($this);
  1406.         }
  1407.         return $this;
  1408.     }
  1409.     public function removeCommentProject2(CommentProject2 $commentProject2): self
  1410.     {
  1411.         if ($this->commentProject2->removeElement($commentProject2)) {
  1412.             // set the owning side to null (unless already changed)
  1413.             if ($commentProject2->getProject() === $this) {
  1414.                 $commentProject2->setProject(null);
  1415.             }
  1416.         }
  1417.         return $this;
  1418.     }
  1419.     /**
  1420.      * @return Collection|FournisseurProject[]
  1421.      */
  1422.     public function getFournisseurProject(): Collection
  1423.     {
  1424.         return $this->fournisseurProject;
  1425.     }
  1426.     public function addFournisseurProject(FournisseurProject $fournisseurProject): self
  1427.     {
  1428.         if (!$this->fournisseurProject->contains($fournisseurProject)) {
  1429.             $this->fournisseurProject[] = $fournisseurProject;
  1430.             $fournisseurProject->setProject($this);
  1431.         }
  1432.         return $this;
  1433.     }
  1434.     public function removeFournisseurProject(FournisseurProject $fournisseurProject): self
  1435.     {
  1436.         if ($this->fournisseurProject->removeElement($fournisseurProject)) {
  1437.             // set the owning side to null (unless already changed)
  1438.             if ($fournisseurProject->getProject() === $this) {
  1439.                 $fournisseurProject->setProject(null);
  1440.             }
  1441.         }
  1442.         return $this;
  1443.     }
  1444.     /**
  1445.      * @return Collection|ResponsableDeveloppement[]
  1446.      */
  1447.     public function getResponsableDeveloppement(): Collection
  1448.     {
  1449.         return $this->responsableDeveloppement;
  1450.     }
  1451.     public function addResponsableDeveloppement(ResponsableDeveloppement $responsableDeveloppement): self
  1452.     {
  1453.         if (!$this->responsableDeveloppement->contains($responsableDeveloppement)) {
  1454.             $this->responsableDeveloppement[] = $responsableDeveloppement;
  1455.             $responsableDeveloppement->setProject($this);
  1456.         }
  1457.         return $this;
  1458.     }
  1459.     public function removeResponsableDeveloppement(ResponsableDeveloppement $responsableDeveloppement): self
  1460.     {
  1461.         if ($this->responsableDeveloppement->removeElement($responsableDeveloppement)) {
  1462.             // set the owning side to null (unless already changed)
  1463.             if ($responsableDeveloppement->getProject() === $this) {
  1464.                 $responsableDeveloppement->setProject(null);
  1465.             }
  1466.         }
  1467.         return $this;
  1468.     }
  1469.     
  1470.     public function getStadeConstructionDate(): ?\DateTimeInterface
  1471.     {
  1472.         return $this->stadeConstructionDate;
  1473.     }
  1474.     public function setStadeConstructionDate(?\DateTimeInterface $stadeConstructionDate): self
  1475.     {
  1476.         $this->stadeConstructionDate = $stadeConstructionDate;
  1477.         return $this;
  1478.     }
  1479.     public function getContrat(): ?string
  1480.     {
  1481.         return $this->contrat;
  1482.     }
  1483.     public function setContrat(?string $contrat): self
  1484.     {
  1485.         $this->contrat = $contrat;
  1486.         return $this;
  1487.     }
  1488.     public function getTranche(): ?string
  1489.     {
  1490.         return $this->tranche;
  1491.     }
  1492.     public function setTranche(?string $tranche): self
  1493.     {
  1494.         $this->tranche = $tranche;
  1495.         return $this;
  1496.     }
  1497.     public function getUpdateAtClavus(): ?\DateTimeInterface
  1498.     {
  1499.         return $this->updateAtClavus;
  1500.     }
  1501.     public function setUpdateAtClavus(?\DateTimeInterface $updateAtClavus): self
  1502.     {
  1503.         $this->updateAtClavus = $updateAtClavus;
  1504.         return $this;
  1505.     }
  1506.     public function getCodeProject(): ?string
  1507.     {
  1508.         return $this->codeProject;
  1509.     }
  1510.     public function setCodeProject(?string $codeProject): self
  1511.     {
  1512.         $this->codeProject = $codeProject;
  1513.         return $this;
  1514.     }
  1515.     public function getCompteurErpi(): ?string
  1516.     {
  1517.         return $this->compteurErpi;
  1518.     }
  1519.     public function setCompteurErpi(?string $compteurErpi): self
  1520.     {
  1521.         $this->compteurErpi = $compteurErpi;
  1522.         return $this;
  1523.     }
  1524.     public function getCompteurErpiNbr(): ?int
  1525.     {
  1526.         return $this->compteurErpiNbr;
  1527.     }
  1528.     public function setCompteurErpiNbr(?int $compteurErpiNbr): self
  1529.     {
  1530.         $this->compteurErpiNbr = $compteurErpiNbr;
  1531.         return $this;
  1532.     }
  1533.     public function getCompteurErpiAnnee(): ?string
  1534.     {
  1535.         return $this->compteurErpiAnnee;
  1536.     }
  1537.     public function setCompteurErpiAnnee(?string $compteurErpiAnnee): self
  1538.     {
  1539.         $this->compteurErpiAnnee = $compteurErpiAnnee;
  1540.         return $this;
  1541.     }
  1542.     public function getIsImportCode(): ?bool
  1543.     {
  1544.         return $this->isImportCode;
  1545.     }
  1546.     public function setIsImportCode(?bool $isImportCode): self
  1547.     {
  1548.         $this->isImportCode = $isImportCode;
  1549.         return $this;
  1550.     }
  1551.     public function getEntreprise(): ?Entreprise
  1552.     {
  1553.         return $this->entreprise;
  1554.     }
  1555.     public function setEntreprise(?Entreprise $entreprise): self
  1556.     {
  1557.         $this->entreprise = $entreprise;
  1558.         return $this;
  1559.     }
  1560.     public function getSchemaConstruction(): ?string
  1561.     {
  1562.         return $this->schemaConstruction;
  1563.     }
  1564.     public function setSchemaConstruction(?string $schemaConstruction): self
  1565.     {
  1566.         $this->schemaConstruction = $schemaConstruction;
  1567.         return $this;
  1568.     }
  1569.     public function getStatusTrackerActuelConstruction(): ?string
  1570.     {
  1571.         return $this->statusTrackerActuelConstruction;
  1572.     }
  1573.     public function setStatusTrackerActuelConstruction(?string $statusTrackerActuelConstruction): self
  1574.     {
  1575.         $this->statusTrackerActuelConstruction = $statusTrackerActuelConstruction;
  1576.         return $this;
  1577.     }
  1578.     /**
  1579.      * @return Collection|StatusTrackerConstruction[]
  1580.      */
  1581.     public function getStatusTrackerConstruction(): Collection
  1582.     {
  1583.         return $this->statusTrackerConstruction;
  1584.     }
  1585.     public function addStatusTrackerConstruction(StatusTrackerConstruction $statusTrackerConstruction): self
  1586.     {
  1587.         if (!$this->statusTrackerConstruction->contains($statusTrackerConstruction)) {
  1588.             $this->statusTrackerConstruction[] = $statusTrackerConstruction;
  1589.             $statusTrackerConstruction->setProject($this);
  1590.         }
  1591.         return $this;
  1592.     }
  1593.     public function removeStatusTrackerConstruction(StatusTrackerConstruction $statusTrackerConstruction): self
  1594.     {
  1595.         if ($this->statusTrackerConstruction->removeElement($statusTrackerConstruction)) {
  1596.             // set the owning side to null (unless already changed)
  1597.             if ($statusTrackerConstruction->getProject() === $this) {
  1598.                 $statusTrackerConstruction->setProject(null);
  1599.             }
  1600.         }
  1601.         return $this;
  1602.     }
  1603.     public function getStatusTrackerConstructionStr(){
  1604.         if($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Go_Consultation){
  1605.             return 'Go consultation' ;
  1606.         }elseif($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Attente_Devis){
  1607.             return 'Attente devis' ;
  1608.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Budget_Capex){
  1609.             return 'Devis signé' ;
  1610.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Contrat_Construction){
  1611.             return 'Contrat de construction signé' ;
  1612.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Order_demarrage_envoye){
  1613.             return 'Ordre de démarrage envoyé' ;
  1614.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Construction_Demarree){
  1615.             return 'Construction Démarrée' ;
  1616.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Construction_Achevee_Non_Raccordable){
  1617.             return 'Construction Achevée Non Raccordable' ;
  1618.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Construction_Achevee_A_Raccorder){
  1619.             return 'Construction Achevée à Raccorder' ;
  1620.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Construction_Achevee_Raccordee){
  1621.             return 'Construction Achevée Raccordée' ;
  1622.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Passage_dre){
  1623.             return 'DRE Obtenu' ;
  1624.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Consuel_obtenu){
  1625.             return 'Consuel obtenu' ;
  1626.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Operating){
  1627.             return 'Operation' ;
  1628.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Billable){
  1629.             return 'Billable' ;
  1630.         }elseif ($this->statusTrackerActuelConstruction == StatusTrackerConstruction::Invoiced){
  1631.             return 'Invoiced' ;
  1632.         }else {
  1633.             return '';
  1634.         }
  1635.     }
  1636.     public function getIsNotifDateMESPrevisionnelle(): ?bool
  1637.     {
  1638.         return $this->isNotifDateMESPrevisionnelle;
  1639.     }
  1640.     public function setIsNotifDateMESPrevisionnelle(?bool $isNotifDateMESPrevisionnelle): self
  1641.     {
  1642.         $this->isNotifDateMESPrevisionnelle = $isNotifDateMESPrevisionnelle;
  1643.         return $this;
  1644.     }
  1645.     /**
  1646.      * @return Collection|DocUpload[]
  1647.      */
  1648.     public function getImagesProject(): Collection
  1649.     {
  1650.         return $this->imagesProject;
  1651.     }
  1652.     public function addImagesProject(DocUpload $imagesProject): self
  1653.     {
  1654.         if (!$this->imagesProject->contains($imagesProject)) {
  1655.             $this->imagesProject[] = $imagesProject;
  1656.         }
  1657.         return $this;
  1658.     }
  1659.     public function removeImagesProject(DocUpload $imagesProject): self
  1660.     {
  1661.         $this->imagesProject->removeElement($imagesProject);
  1662.         return $this;
  1663.     }
  1664.     public function getSurfaceDisponible(): ?float
  1665.     {
  1666.         return $this->surfaceDisponible;
  1667.     }
  1668.     public function setSurfaceDisponible(?float $surfaceDisponible): self
  1669.     {
  1670.         $this->surfaceDisponible = $surfaceDisponible;
  1671.         return $this;
  1672.     }
  1673.     public function getSurfaceExploitable(): ?float
  1674.     {
  1675.         return $this->surfaceExploitable;
  1676.     }
  1677.     public function setSurfaceExploitable(?float $surfaceExploitable): self
  1678.     {
  1679.         $this->surfaceExploitable = $surfaceExploitable;
  1680.         return $this;
  1681.     }
  1682.     public function getAchatLocation(): ?int
  1683.     {
  1684.         return $this->achatLocation;
  1685.     }
  1686.     public function setAchatLocation(?int $achatLocation): self
  1687.     {
  1688.         $this->achatLocation = $achatLocation;
  1689.         return $this;
  1690.     }
  1691.     public function getIsPromesseAchatSignee(): ?bool
  1692.     {
  1693.         return $this->isPromesseAchatSignee;
  1694.     }
  1695.     public function setIsPromesseAchatSignee(?bool $isPromesseAchatSignee): self
  1696.     {
  1697.         $this->isPromesseAchatSignee = $isPromesseAchatSignee;
  1698.         return $this;
  1699.     }
  1700.     public function getPrixAchatFoncier(): ?string
  1701.     {
  1702.         return $this->prixAchatFoncier;
  1703.     }
  1704.     public function setPrixAchatFoncier(?string $prixAchatFoncier): self
  1705.     {
  1706.         $this->prixAchatFoncier = $prixAchatFoncier;
  1707.         return $this;
  1708.     }
  1709.     public function getUniteAchatFoncier(): ?string
  1710.     {
  1711.         return $this->uniteAchatFoncier;
  1712.     }
  1713.     public function setUniteAchatFoncier(?string $uniteAchatFoncier): self
  1714.     {
  1715.         $this->uniteAchatFoncier = $uniteAchatFoncier;
  1716.         return $this;
  1717.     }
  1718.     public function getIndemiteTransitoire(): ?string
  1719.     {
  1720.         return $this->indemiteTransitoire;
  1721.     }
  1722.     public function setIndemiteTransitoire(?string $indemiteTransitoire): self
  1723.     {
  1724.         $this->indemiteTransitoire = $indemiteTransitoire;
  1725.         return $this;
  1726.     }
  1727.     public function getRemunerationExploitantAgricole(): ?string
  1728.     {
  1729.         return $this->remunerationExploitantAgricole;
  1730.     }
  1731.     public function setRemunerationExploitantAgricole(?string $remunerationExploitantAgricole): self
  1732.     {
  1733.         $this->remunerationExploitantAgricole = $remunerationExploitantAgricole;
  1734.         return $this;
  1735.     }
  1736.     /**
  1737.      * @return Collection|SousFamilleProject[]
  1738.      */
  1739.     public function getSousFamilleProject(): Collection
  1740.     {
  1741.         return $this->sousFamilleProject;
  1742.     }
  1743.     public function addSousFamilleProject(SousFamilleProject $sousFamilleProject): self
  1744.     {
  1745.         if (!$this->sousFamilleProject->contains($sousFamilleProject)) {
  1746.             $this->sousFamilleProject[] = $sousFamilleProject;
  1747.         }
  1748.         return $this;
  1749.     }
  1750.     public function removeSousFamilleProject(SousFamilleProject $sousFamilleProject): self
  1751.     {
  1752.         $this->sousFamilleProject->removeElement($sousFamilleProject);
  1753.         return $this;
  1754.     }
  1755.     /**
  1756.      * @return Collection|ZonagePlu[]
  1757.      */
  1758.     public function getZonagePlu(): Collection
  1759.     {
  1760.         return $this->zonagePlu;
  1761.     }
  1762.     public function addZonagePlu(ZonagePlu $zonagePlu): self
  1763.     {
  1764.         if (!$this->zonagePlu->contains($zonagePlu)) {
  1765.             $this->zonagePlu[] = $zonagePlu;
  1766.         }
  1767.         return $this;
  1768.     }
  1769.     public function removeZonagePlu(ZonagePlu $zonagePlu): self
  1770.     {
  1771.         $this->zonagePlu->removeElement($zonagePlu);
  1772.         return $this;
  1773.     }
  1774.     public function getTri(): ?string
  1775.     {
  1776.         return $this->tri;
  1777.     }
  1778.     public function setTri(?string $tri): self
  1779.     {
  1780.         $this->tri = $tri;
  1781.         return $this;
  1782.     }
  1783.     public function getTriPrime(): ?string
  1784.     {
  1785.         return $this->triPrime;
  1786.     }
  1787.     public function setTriPrime(?string $triPrime): self
  1788.     {
  1789.         $this->triPrime = $triPrime;
  1790.         return $this;
  1791.     }
  1792.     public function getDateSourcing(): ?\DateTimeInterface
  1793.     {
  1794.         return $this->dateSourcing;
  1795.     }
  1796.     public function setDateSourcing(?\DateTimeInterface $dateSourcing): self
  1797.     {
  1798.         $this->dateSourcing = $dateSourcing;
  1799.         return $this;
  1800.     }
  1801.     public function getTriCreMin(): ?string
  1802.     {
  1803.         return $this->triCreMin;
  1804.     }
  1805.     public function setTriCreMin(?string $triCreMin): self
  1806.     {
  1807.         $this->triCreMin = $triCreMin;
  1808.         return $this;
  1809.     }
  1810.     public function getTriPpaMin(): ?string
  1811.     {
  1812.         return $this->triPpaMin;
  1813.     }
  1814.     public function setTriPpaMin(?string $triPpaMin): self
  1815.     {
  1816.         $this->triPpaMin = $triPpaMin;
  1817.         return $this;
  1818.     }
  1819.     public function getRendementEbeCapex(): ?string
  1820.     {
  1821.         return $this->rendementEbeCapex;
  1822.     }
  1823.     public function setRendementEbeCapex(?string $rendementEbeCapex): self
  1824.     {
  1825.         $this->rendementEbeCapex = $rendementEbeCapex;
  1826.         return $this;
  1827.     }
  1828.     public function getDureeExploitation(): ?string
  1829.     {
  1830.         return $this->dureeExploitation;
  1831.     }
  1832.     public function setDureeExploitation(?string $dureeExploitation): self
  1833.     {
  1834.         $this->dureeExploitation = $dureeExploitation;
  1835.         return $this;
  1836.     }
  1837.     public function getSourcing(): ?Sourcing
  1838.     {
  1839.         return $this->sourcing;
  1840.     }
  1841.     public function setSourcing(?Sourcing $sourcing): self
  1842.     {
  1843.         $this->sourcing = $sourcing;
  1844.         return $this;
  1845.     }
  1846.     public function getRatioCapexPuissance(): ?string
  1847.     {
  1848.         return $this->ratioCapexPuissance;
  1849.     }
  1850.     public function setRatioCapexPuissance(?string $ratioCapexPuissance): self
  1851.     {
  1852.         $this->ratioCapexPuissance = $ratioCapexPuissance;
  1853.         return $this;
  1854.     }
  1855.     public function getDateExpirationPromesseBail(): ?\DateTimeInterface
  1856.     {
  1857.         return $this->dateExpirationPromesseBail;
  1858.     }
  1859.     public function setDateExpirationPromesseBail(?\DateTimeInterface $dateExpirationPromesseBail): self
  1860.     {
  1861.         $this->dateExpirationPromesseBail = $dateExpirationPromesseBail;
  1862.         return $this;
  1863.     }
  1864.     public function getD1(): ?int
  1865.     {
  1866.         return $this->d1;
  1867.     }
  1868.     public function setD1(?int $d1): self
  1869.     {
  1870.         $this->d1 = $d1;
  1871.         return $this;
  1872.     }
  1873.     public function getRendementEbeCapexPPA(): ?string
  1874.     {
  1875.         return $this->rendementEbeCapexPPA;
  1876.     }
  1877.     public function setRendementEbeCapexPPA(?string $rendementEbeCapexPPA): self
  1878.     {
  1879.         $this->rendementEbeCapexPPA = $rendementEbeCapexPPA;
  1880.         return $this;
  1881.     }
  1882.     public function getRanking(): ?string
  1883.     {
  1884.         return $this->ranking;
  1885.     }
  1886.     public function setRanking(?string $ranking): self
  1887.     {
  1888.         $this->ranking = $ranking;
  1889.         return $this;
  1890.     }
  1891.     public function getDateDepotPc(): ?\DateTimeInterface
  1892.     {
  1893.         return $this->dateDepotPc;
  1894.     }
  1895.     public function setDateDepotPc(?\DateTimeInterface $dateDepotPc): self
  1896.     {
  1897.         $this->dateDepotPc = $dateDepotPc;
  1898.         return $this;
  1899.     }
  1900.     /**
  1901.      * @return Collection|ResponcableFoncierPorject[]
  1902.      */
  1903.     public function getResponsableFoncierUser(): Collection
  1904.     {
  1905.         return $this->responsableFoncierUser;
  1906.     }
  1907.     public function addResponsableFoncierUser(ResponcableFoncierPorject $responsableFoncierUser): self
  1908.     {
  1909.         if (!$this->responsableFoncierUser->contains($responsableFoncierUser)) {
  1910.             $this->responsableFoncierUser[] = $responsableFoncierUser;
  1911.             $responsableFoncierUser->setProject($this);
  1912.         }
  1913.         return $this;
  1914.     }
  1915.     public function removeResponsableFoncierUser(ResponcableFoncierPorject $responsableFoncierUser): self
  1916.     {
  1917.         if ($this->responsableFoncierUser->removeElement($responsableFoncierUser)) {
  1918.             // set the owning side to null (unless already changed)
  1919.             if ($responsableFoncierUser->getProject() === $this) {
  1920.                 $responsableFoncierUser->setProject(null);
  1921.             }
  1922.         }
  1923.         return $this;
  1924.     }
  1925.     public function getDateObtentionPc(): ?\DateTimeInterface
  1926.     {
  1927.         return $this->dateObtentionPc;
  1928.     }
  1929.     public function setDateObtentionPc(?\DateTimeInterface $dateObtentionPc): self
  1930.     {
  1931.         $this->dateObtentionPc = $dateObtentionPc;
  1932.         return $this;
  1933.     }
  1934.     public function getDateRTBtarifie(): ?\DateTimeInterface
  1935.     {
  1936.         return $this->dateRTBtarifie;
  1937.     }
  1938.     public function setDateRTBtarifie(?\DateTimeInterface $dateRTBtarifie): self
  1939.     {
  1940.         $this->dateRTBtarifie = $dateRTBtarifie;
  1941.         return $this;
  1942.     }
  1943.     public function getChoixDev(): ?string
  1944.     {
  1945.         return $this->choixDev;
  1946.     }
  1947.     public function setChoixDev(?string $choixDev): self
  1948.     {
  1949.         $this->choixDev = $choixDev;
  1950.         return $this;
  1951.     }
  1952.     public function getPrixAchatFoncierKMWc(): ?string
  1953.     {
  1954.         return $this->prixAchatFoncierKMWc;
  1955.     }
  1956.     public function setPrixAchatFoncierKMWc(?string $prixAchatFoncierKMWc): self
  1957.     {
  1958.         $this->prixAchatFoncierKMWc = $prixAchatFoncierKMWc;
  1959.         return $this;
  1960.     }
  1961.     public function getPrixAchatFoncierKHa(): ?string
  1962.     {
  1963.         return $this->prixAchatFoncierKHa;
  1964.     }
  1965.     public function setPrixAchatFoncierKHa(?string $prixAchatFoncierKHa): self
  1966.     {
  1967.         $this->prixAchatFoncierKHa = $prixAchatFoncierKHa;
  1968.         return $this;
  1969.     }
  1970.     public function getDateAbandon(): ?\DateTimeInterface
  1971.     {
  1972.         return $this->dateAbandon;
  1973.     }
  1974.     public function setDateAbandon(?\DateTimeInterface $dateAbandon): self
  1975.     {
  1976.         $this->dateAbandon = $dateAbandon;
  1977.         return $this;
  1978.     }
  1979.     public function getDepartement(): ?string
  1980.     {
  1981.         return $this->departement;
  1982.     }
  1983.     public function setDepartement(?string $departement): self
  1984.     {
  1985.         $this->departement = $departement;
  1986.         return $this;
  1987.     }
  1988.     public function getCapacite(): ?float
  1989.     {
  1990.         return $this->capacite;
  1991.     }
  1992.     public function setCapacite(?float $capacite): self
  1993.     {
  1994.         $this->capacite = $capacite;
  1995.         return $this;
  1996.     }
  1997.     public function getProductible(): ?float
  1998.     {
  1999.         return $this->productible;
  2000.     }
  2001.     public function setProductible(?float $productible): self
  2002.     {
  2003.         $this->productible = $productible;
  2004.         return $this;
  2005.     }
  2006.     public function getProductibleP90(): ?float
  2007.     {
  2008.         return $this->productibleP90;
  2009.     }
  2010.     public function setProductibleP90(?float $productibleP90): self
  2011.     {
  2012.         $this->productibleP90 = $productibleP90;
  2013.         return $this;
  2014.     }
  2015.     public function getPuissance(): ?float
  2016.     {
  2017.         return $this->puissance;
  2018.     }
  2019.     public function setPuissance(?float $puissance): self
  2020.     {
  2021.         $this->puissance = $puissance;
  2022.         return $this;
  2023.     }
  2024.     public function setIsOpenCat4(?bool $isOpenCat4): self
  2025.     {
  2026.         $this->isOpenCat4 = $isOpenCat4;
  2027.         return $this;
  2028.     }
  2029.     
  2030.     /**
  2031.      * @return mixed
  2032.      */
  2033.     public function getCommentEquipementProjets()
  2034.     {
  2035.         return $this->commentEquipementProjets;
  2036.     }
  2037.     public function getUniteMesure(): ?string
  2038.     {
  2039.         return $this->uniteMesure;
  2040.     }
  2041.     public function setUniteMesure(?string $uniteMesure): self
  2042.     {
  2043.         $this->uniteMesure = $uniteMesure;
  2044.         return $this;
  2045.     }
  2046.     public function addCommentEquipementProjet(CommentEquipementProjet $commentEquipementProjet): self
  2047.     {
  2048.         if (!$this->commentEquipementProjets->contains($commentEquipementProjet)) {
  2049.             $this->commentEquipementProjets[] = $commentEquipementProjet;
  2050.             $commentEquipementProjet->setProjet($this);
  2051.         }
  2052.         return $this;
  2053.     }
  2054.     public function getDateRetourPreCadrage(): ?\DateTimeInterface
  2055.     {
  2056.         return $this->dateRetourPreCadrage;
  2057.     }
  2058.     public function setDateRetourPreCadrage(?\DateTimeInterface $dateRetourPreCadrage): self
  2059.     {
  2060.         $this->dateRetourPreCadrage = $dateRetourPreCadrage;
  2061.         return $this;
  2062.     }
  2063.     public function removeCommentEquipementProjet(CommentEquipementProjet $commentEquipementProjet): self
  2064.     {
  2065.         if ($this->commentEquipementProjets->removeElement($commentEquipementProjet)) {
  2066.             // set the owning side to null (unless already changed)
  2067.             if ($commentEquipementProjet->getProjet() === $this) {
  2068.                 $commentEquipementProjet->setProjet(null);
  2069.             }
  2070.         }
  2071.         return $this;
  2072.     }
  2073.     public function getStatusAdministratifEngagement(): ?string
  2074.     {
  2075.         return $this->statusAdministratifEngagement;
  2076.     }
  2077.     public function setStatusAdministratifEngagement(?string $statusAdministratifEngagement): self
  2078.     {
  2079.         $this->statusAdministratifEngagement = $statusAdministratifEngagement;
  2080.         return $this;
  2081.     }
  2082.     public function getDateExamenCasParCas(): ?\DateTimeInterface
  2083.     {
  2084.         return $this->dateExamenCasParCas;
  2085.     }
  2086.     public function setDateExamenCasParCas(?\DateTimeInterface $dateExamenCasParCas): self
  2087.     {
  2088.         $this->dateExamenCasParCas = $dateExamenCasParCas;
  2089.         return $this;
  2090.     }
  2091.     public function getDatePoleEnr(): ?\DateTimeInterface
  2092.     {
  2093.         return $this->datePoleEnr;
  2094.     }
  2095.     public function setDatePoleEnr(?\DateTimeInterface $datePoleEnr): self
  2096.     {
  2097.         $this->datePoleEnr = $datePoleEnr;
  2098.         return $this;
  2099.     }
  2100.     public function getDateRetourInventaireFauneFlore(): ?\DateTimeInterface
  2101.     {
  2102.         return $this->dateRetourInventaireFauneFlore;
  2103.     }
  2104.     public function setDateRetourInventaireFauneFlore(?\DateTimeInterface $dateRetourInventaireFauneFlore): self
  2105.     {
  2106.         $this->dateRetourInventaireFauneFlore = $dateRetourInventaireFauneFlore;
  2107.         return $this;
  2108.     }
  2109.     public function getDateChangementPlu(): ?\DateTimeInterface
  2110.     {
  2111.         return $this->dateChangementPlu;
  2112.     }
  2113.     public function setDateChangementPlu(?\DateTimeInterface $dateChangementPlu): self
  2114.     {
  2115.         $this->dateChangementPlu = $dateChangementPlu;
  2116.         return $this;
  2117.     }
  2118.     public function getDateAvisMrae(): ?\DateTimeInterface
  2119.     {
  2120.         return $this->dateAvisMrae;
  2121.     }
  2122.     public function setDateAvisMrae(?\DateTimeInterface $dateAvisMrae): self
  2123.     {
  2124.         $this->dateAvisMrae = $dateAvisMrae;
  2125.         return $this;
  2126.     }
  2127.     public function getDateCdpenaf(): ?\DateTimeInterface
  2128.     {
  2129.         return $this->dateCdpenaf;
  2130.     }
  2131.     public function setDateCdpenaf(?\DateTimeInterface $dateCdpenaf): self
  2132.     {
  2133.         $this->dateCdpenaf = $dateCdpenaf;
  2134.         return $this;
  2135.     }
  2136.     public function getDateEnquetePublique(): ?\DateTimeInterface
  2137.     {
  2138.         return $this->dateEnquetePublique;
  2139.     }
  2140.     public function setDateEnquetePublique(?\DateTimeInterface $dateEnquetePublique): self
  2141.     {
  2142.         $this->dateEnquetePublique = $dateEnquetePublique;
  2143.         return $this;
  2144.     }
  2145.     public function getPointsForts(): ?array
  2146.     {
  2147.         return $this->pointsForts;
  2148.     }
  2149.     public function setPointsForts(?array $pointsForts): self
  2150.     {
  2151.         $this->pointsForts = $pointsForts;
  2152.         return $this;
  2153.     }
  2154.     public function getPointsFaibles(): ?array
  2155.     {
  2156.         return $this->pointsFaibles;
  2157.     }
  2158.     public function setPointsFaibles(?array $pointsFaibles): self
  2159.     {
  2160.         $this->pointsFaibles = $pointsFaibles;
  2161.         return $this;
  2162.     }
  2163. }