src/Form/ReutilisationType.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\FormBuilderInterface;
  5. use Symfony\Component\OptionsResolver\OptionsResolver;
  6. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  7. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  8. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  9. class ReutilisationType extends AbstractType {
  10.     public function buildForm(FormBuilderInterface $builder, array $options): void {
  11.         $builder
  12.                 ->add('nomDuProjet')
  13.                 ->add('besoinEau')
  14.                 ->add('surfaceRecuperee')
  15.                 ->add('nomSurface')
  16.                 ->add('nomSurface2')
  17.                 ->add('nomSurface3')
  18.                 ->add('rendementToiture'ChoiceType::class, [
  19.                     'choices' => $this->getRendementToitureChoises()
  20.                 ])
  21.                 ->add('surfaceRecuperee2')
  22.                 ->add('rendementToiture2'ChoiceType::class, [
  23.                     'choices' => $this->getRendementToitureChoises()
  24.                 ])
  25.                 ->add('surfaceRecuperee3')
  26.                 ->add('rendementToiture3'ChoiceType::class, [
  27.                     'choices' => $this->getRendementToitureChoises()
  28.                 ])
  29.                 ->add('climat'ChoiceType::class, [
  30.                     'choices' => $this->getClimatChoises()
  31.                 ])
  32.                 ->add('stationmeteo'ChoiceType::class, [
  33.                     'choices' => $this->getStationMeteoChoices()
  34.                 ])
  35.                 ->add('nbreUtilisateur')
  36.                 ->add('volumeParUtilisation')
  37.                 ->add('tauxRaccordement')
  38.                 ->add('scenarioUtilisation'ChoiceType::class,
  39.                         [
  40.                             'choices' => $this->getScenarioUtilisationChoices()
  41.                         ])
  42.                 ->add('ru'ChoiceType::class, [
  43.                     'choices' => $this->getRuChoices()
  44.                 ])
  45.                 ->add('typePlante'ChoiceType::class, [
  46.                     'choices' => $this->getTypePlanteChoises()
  47.                 ])
  48.                 ->add('profondeurTerre'ChoiceType::class, [
  49.                     'choices' => $this->getProfondeurTerreChoices()
  50.                 ])
  51.                 ->add('sArrosage')
  52.                 ->add('volumeCuve')
  53.                 ->add('tauxObjectif')
  54.                 ->add('coutEau')
  55.                 ->add('coutPompe')
  56.                 ->add('coutVolume')
  57.                 ->add('choixVolume')
  58.                 ->add('coutVolume2')
  59.                 ->add('choixVolume2')
  60.                 ->add('certivea'CheckboxType::class, [
  61.                     'required' => false,
  62.                     'label' => "Méthode Certivéa - outil Cible 5 (sans pertes)"
  63.                 ])
  64.                 ->add('analyser'SubmitType::class);
  65.     }
  66.     public function getStationMeteoChoices() {
  67.         return [
  68.             '01-AMBERIEU' => 1134.4,
  69.             '02-ST QUENTIN' => 702.6,
  70.             '02-FONTAINE-LES-VV' => 853.5,
  71.             '02-PASSY EN VALOIS' => 727.6,
  72.             '03-VICHY-CHARMEIL' => 779.5,
  73.             '03-LURCY-LEVIS SA' => 750.7,
  74.             '03-MONTBEUGNY' => 770.9,
  75.             '03-NEUVY' => 751.2,
  76.             '03-ST-NICOLAS' => 1409.4,
  77.             '04-ST AUBAN' => 694.9,
  78.             '05-BRIANCON' => 759.1,
  79.             '05-EMBRUN' => 726.5,
  80.             '05-LARAGNE MONTEGLIN' => 815.2,
  81.             '06-CANNES' => 794.8,
  82.             '06-NICE' => 733,
  83.             '07-COLOMBIER JEUNE RAD' => 961.6,
  84.             '07-LANAS SYN' => 1074.3,
  85.             '08-CHARLEVILLE-MEZ' => 942.6,
  86.             '09-ST GIRONS' => 952.2,
  87.             '10-TROYES-BARBEREY' => 644.8,
  88.             '10-DOSNON' => 726.5,
  89.             '10-MATHAUX-ETAPE' => 742.9,
  90.             '11-CARCASSONNE' => 648.5,
  91.             '11-GRUISSAN-INRA' => 582.8,
  92.             '12-MILLAU' => 731.6,
  93.             '12-RODEZ-AVEYRON' => 894.2,
  94.             '13-AIX-LES MILLES' => 576.4,
  95.             '13-AIX EN PROVENCE' => 585.8,
  96.             '13-ARLES' => 580.2,
  97.             '13-ISTRES' => 554.3,
  98.             '13-MARIGNANE' => 515.4,
  99.             '13-SALON DE PROVENCE' => 579.3,
  100.             '14-CAEN-CARPIQUET' => 739.9,
  101.             '14-L OUDON LIEURY_SAPC' => 658.5,
  102.             '15-AURILLAC' => 1174,
  103.             '15-COLTINES' => 764.4,
  104.             '15-MARCENAT' => 1189.8,
  105.             '15-MAURIAC' => 1200.5,
  106.             '15-MAURS' => 1176.3,
  107.             '16-COGNAC' => 777.1,
  108.             '16-LA COURONNE' => 843.2,
  109.             '16-MONTEMBOEUF' => 1007.9,
  110.             '16-SALLES DE BARB' => 817.8,
  111.             '16-TUSSON' => 836.4,
  112.             '16-VERDILLE' => 802.5,
  113.             '17-LA ROCHELLE' => 767,
  114.             '17-SAINTES' => 910.6,
  115.             '18-BOURGES' => 747.9,
  116.             '18-AVORD' => 772.9,
  117.             '18-SANCERRE' => 905.4,
  118.             '19-ARGENTAT' => 1165.4,
  119.             '19-BRIVE' => 914.4,
  120.             '19-NAVES' => 1236.4,
  121.             '19-UZERCHE' => 1126.2,
  122.             '20-AJACCIO' => 615.6,
  123.             '20-CAP PERTUSATO' => 541.9,
  124.             '20-CALVI' => 668.3,
  125.             '20-CONCA' => 859.5,
  126.             '20-CORTE_FDF' => 803.6,
  127.             '20-FIGARI' => 655.3,
  128.             '20-BASTIA' => 799.3,
  129.             '20-PIETRALBA' => 651.7,
  130.             '20-PILA-CANALE' => 864.7,
  131.             '20-RENNO' => 1197.5,
  132.             '20-SAMPOLO' => 1276.1,
  133.             '20-SARTENE' => 722.3,
  134.             '20-SOLENZARA' => 795.3,
  135.             '21-CHATILLON/SEINE' => 864.1,
  136.             '21-DIJON-LONGVIC' => 760.5,
  137.             '21-ARNAY_SAPC' => 807,
  138.             '22-KERPERT' => 1130.6,
  139.             '22-LANNION_AERO' => 945,
  140.             '22-LOUARGAT' => 1013.3,
  141.             '22-PLOUGUENAST' => 966.8,
  142.             '22-POMMERIT-JAUDY' => 891,
  143.             '22-QUINTENIC' => 743.4,
  144.             '22-ROSTRENEN' => 1145.7,
  145.             '22-ST BRIEUC' => 750.7,
  146.             '23-BOURGANEUF' => 1262.1,
  147.             '23-LA SOUTERRAINE' => 1029.1,
  148.             '24-BERGERAC' => 788.3,
  149.             '25-BESANCON' => 1187,
  150.             '25-PONTARLIER' => 1503.3,
  151.             '26-BESIGNAN' => 790.3,
  152.             '26-DIE' => 953.4,
  153.             '26-DIVAJEU' => 901.6,
  154.             '26-DONZERE' => 841.8,
  155.             '26-ETOILE' => 922.9,
  156.             '26-MERCUROL' => 872.7,
  157.             '26-MONTELIMAR' => 905.3,
  158.             '26-ST-MARCEL-LES-V-INRA' => 867.8,
  159.             '27-EVREUX-HUEST' => 604.6,
  160.             '28-CHARTRES' => 598.9,
  161.             '28-CHATEAUDUN' => 612.3,
  162.             '28-LOUVILLE' => 618.8,
  163.             '28-MARVILLE_SAPC' => 551.1,
  164.             '28-MIERMAIGNE' => 756.1,
  165.             '28-PRE-ST-EVROULT' => 597.4,
  166.             '28-RUEIL' => 594.9,
  167.             '28-VIABON' => 583.8,
  168.             '29-BRIGNOGAN' => 908,
  169.             '29-BREST-GUIPAVAS' => 1210,
  170.             '29-LANVEOC' => 1006.4,
  171.             '29-OUESSANT-STIFF' => 819,
  172.             '29-PLEYBER-CHRIST SA' => 1126.8,
  173.             '29-QUIMPER' => 1250.2,
  174.             '29-LANDIVISIAU' => 1165.1,
  175.             '29-SIBIRIL S A' => 923.6,
  176.             '30-CHUSCLAN' => 757,
  177.             '30-NIMES-COURBESSAC' => 762.9,
  178.             '30-NIMES-GARONS' => 696.5,
  179.             '30-MONT AIGOUAL' => 1931.7,
  180.             '31-TOULOUSE-BLAGNAC' => 638.3,
  181.             '31-TOULOUSE-FRANCAZAL' => 625.6,
  182.             '32-AUCH' => 685.4,
  183.             '33-BORDEAUX-MERIGNAC' => 944.1,
  184.             '33-CAZAUX' => 946.3,
  185.             '34-MONTPELLIER-AEROPORT' => 629.1,
  186.             '34-SETE' => 560.7,
  187.             '35-DINARD' => 758.7,
  188.             '35-RENNES-ST JACQUES' => 694,
  189.             '36-CHATEAUROUX  DEOLS' => 737.1,
  190.             '37-TOURS' => 695.6,
  191.             '38-GRENOBLE-ST GEOIRS' => 934.3,
  192.             '39-ARBOIS_SAPC' => 1226,
  193.             '39-CHAMPAGNOLE' => 1574.9,
  194.             '39-LONS LE SAUNIER' => 1189.5,
  195.             '39-LA PESSE' => 1673.5,
  196.             '39-TAVAUX SA' => 888.1,
  197.             '40-DAX' => 1151.3,
  198.             '40-MONT-DE-MARSAN' => 916.9,
  199.             '41-ROMORANTIN' => 702.3,
  200.             '41-BLOIS' => 639.2,
  201.             '42-ST ETIENNE-BOUTHEON' => 718.2,
  202.             '42-FIRMINY' => 781.7,
  203.             '42-PERREUX' => 682.4,
  204.             '42-RIORGES' => 703.3,
  205.             '43-LE PUY-LOUDES' => 678.3,
  206.             '43-FONTANNES' => 613,
  207.             '43-LANDOS-CHARBON' => 816.8,
  208.             '43-SAUGUES-SA' => 790.2,
  209.             '44-NANTES-BOUGUENAIS' => 819.5,
  210.             '44-ST NAZAIRE-MONTOIR' => 774.4,
  211.             '45-ORLEANS' => 642.5,
  212.             '46-GOURDON' => 856.7,
  213.             '47-AGEN-LA GARENNE' => 712.2,
  214.             '47-SAINTE-LIVRADE-SUR-LOT' => 757.6,
  215.             '48-ALTIER' => 1188.9,
  216.             '49-BEAUCOUZE' => 693.3,
  217.             '49-MARCE' => 703.2,
  218.             '51-AVIZE' => 694.1,
  219.             '51-REIMS-COURCY' => 628.2,
  220.             '52-LANGRES' => 895.5,
  221.             '52-ST-DIZIER' => 843.7,
  222.             '53-LAVAL-ENTRAMMES' => 740,
  223.             '53-ERNEE' => 847.7,
  224.             '54-NANCY-OCHEY' => 846.4,
  225.             '54-TOUL - ROSIERES' => 761.1,
  226.             '54-NANCY-ESSEY' => 775.1,
  227.             '56-ARZAL' => 837.4,
  228.             '56-BELLE ILE-LE TALUT' => 701.4,
  229.             '56-BIGNAN' => 1010.8,
  230.             '56-PLOERMEL' => 749.7,
  231.             '56-LORIENT-LANN BIHOUE' => 950.9,
  232.             '56-SARZEAU SA' => 708.7,
  233.             '56-VANNES-SENE' => 907.9,
  234.             '57-METZ-FRESCATY' => 757.8,
  235.             '58-NEVERS-MARZY' => 804.1,
  236.             '59-LILLE-LESQUIN' => 742.5,
  237.             '60-BEAUVAIS-TILLE' => 669.4,
  238.             '61-ALENCON' => 746.7,
  239.             '62-BOULOGNE-SEM' => 777.9,
  240.             '62-CAMBRAI-EPINOY' => 711.1,
  241.             '62-CALAIS-MARCK' => 722.6,
  242.             '62-LE-TOUQUET' => 871.9,
  243.             '63-AMBERT' => 873.3,
  244.             '63-CHASTREIX' => 1600,
  245.             '63-CLERMONT-FD' => 578.9,
  246.             '63-ISSOIRE' => 624.2,
  247.             '63-ST-GENES-CHPLLE-INRA' => 796.1,
  248.             '63-ST-GERMAIN-L HE' => 1082.2,
  249.             '64-AICIRITS' => 1216.7,
  250.             '64-BIARRITZ-PAYS-BASQUE' => 1450.9,
  251.             '64-SOCOA' => 1483,
  252.             '64-PAU-UZEIN' => 1069.9,
  253.             '65-CAMPISTROUS' => 1103.2,
  254.             '65-TARBES-LOURDES-PYRENEES' => 1047.4,
  255.             '66-ALENYA-INRA' => 653.7,
  256.             '66-PERPIGNAN' => 557.6,
  257.             '66-STE LEOCADIE' => 567.3,
  258.             '66-TORREILLES' => 556.3,
  259.             '66-VIVES' => 656,
  260.             '67-WANGENBOURG_SAPC' => 1182.8,
  261.             '67-STRASBOURG-ENTZHEIM' => 665,
  262.             '68-COLMAR-INRA' => 573.4,
  263.             '68-GEISHOUSE_SAPC' => 1405.6,
  264.             '68-COLMAR-MEYENHEIM' => 607.3,
  265.             '68-MULHOUSE' => 788.7,
  266.             '68-ROUFFACH - SA' => 629,
  267.             '68-BALE-MULHOUSE' => 772.8,
  268.             '68-TROIS-EPIS_SAPC' => 828,
  269.             '69-LYON-BRON' => 831.9,
  270.             '69-LES SAUVAGES' => 993.8,
  271.             '69-LYON-ST EXUPERY' => 880.9,
  272.             '70-CHARGEY-LES-GRAY' => 862.4,
  273.             '70-FROTEY_SAPC' => 951.3,
  274.             '70-LUXEUIL' => 1051.2,
  275.             '70-VILLERSEXEL SA' => 1065.3,
  276.             '71-AUTUN' => 885.6,
  277.             '71-CHALON-CHAMPFO' => 735.2,
  278.             '71-MACON' => 859.3,
  279.             '71-MATOUR_SAPC' => 1043.7,
  280.             '71-MT-ST-VINCENT' => 929.1,
  281.             '71-ST YAN' => 799.4,
  282.             '72-LE MANS' => 687.5,
  283.             '73-BOURG ST MAURICE' => 985.9,
  284.             '73-CHAMBERY-AIX' => 1221,
  285.             '74-MEYTHET' => 1249.4,
  286.             '75-PARIS-MONTSOURIS' => 637.4,
  287.             '76-ROUEN-BOOS' => 851.7,
  288.             '77-LA BROSSE-MX' => 653.4,
  289.             '77-CHEVRU' => 691.4,
  290.             '77-NANGIS' => 711.1,
  291.             '77-MELUN' => 676.9,
  292.             '77-NEMOURS' => 687.1,
  293.             '77-TORCY' => 721.2,
  294.             '78-MAGNANVILLE' => 628.4,
  295.             '78-ORGERUS' => 565.1,
  296.             '78-TOUSSUS LE NOBLE' => 689.8,
  297.             '78-TRAPPES' => 694.2,
  298.             '78-VILLACOUBLAY' => 675.7,
  299.             '79-NIORT' => 867.2,
  300.             '80-ABBEVILLE' => 782.6,
  301.             '80-AMIENS-GLISY' => 631.2,
  302.             '80-ROUVROY-EN-SANTERRE' => 636.3,
  303.             '80-VRON' => 893.4,
  304.             '81-DOURGNE' => 832.3,
  305.             '81-LAVAUR' => 724.9,
  306.             '81-ALBI' => 730.9,
  307.             '82-MONTAUBAN' => 711.9,
  308.             '83-BORMES LES MIMOSAS' => 917.9,
  309.             '83-LE LUC' => 776.7,
  310.             '83-FREJUS' => 747.3,
  311.             '83-HYERES' => 652,
  312.             '83-HYERES-PLAGE' => 649.1,
  313.             '83-TOULON' => 616.1,
  314.             '84-CABRIERES D\'AVIGNON' => 686.2,
  315.             '84-CARPENTRAS' => 648.2,
  316.             '84-ORANGE' => 709.1,
  317.             '85-L ILE D YEU' => 769.8,
  318.             '85-LA ROCHE SUR YON' => 880.7,
  319.             '86-POITIERS-BIARD' => 685.6,
  320.             '87-EYMOUTIERS' => 1182.1,
  321.             '87-LIMOGES-BELLEGARDE' => 1023.5,
  322.             '87-MAGNAC-LAVAL' => 892.3,
  323.             '87-ST JUNIEN' => 977.6,
  324.             '87-ST YRIEIX LA PE' => 1164.2,
  325.             '88-EPINAL' => 942.4,
  326.             '89-CRUZY_SAPC' => 880.3,
  327.             '89-JOIGNY' => 679.3,
  328.             '89-AUXERRE' => 707.9,
  329.             '90-BELFORT' => 1122.3,
  330.             '91-ORLY' => 616.6,
  331.             '91-BRETIGNY_SAPC' => 621.2,
  332.             '95-LE BOURGET' => 640.7,
  333.             '95-ROISSY' => 693.6,
  334.             '97-LE RAIZET AERO' => 1616.6,
  335.             '97-FORT-DE-FRANCE DESAIX' => 2020.5,
  336.             '97-LAMENTIN-AERO' => 2094.9,
  337.             '97-KOUROU CSG' => 2838.4,
  338.             '97-KOUROU PLAGE' => 2530.3,
  339.             '97-CAYENNE-MATOURY' => 3516.3,
  340.             '97-PONT-MATHURIN' => 684.6,
  341.             '97-PETITE-ILE - CIRAD' => 1433.8,
  342.             '97-LE PORT' => 579.3,
  343.             '97-SAINT-BENOIT' => 3531.5,
  344.             '97-SAINT-DENIS COLLEGE' => 1347.4,
  345.             '97-ST-JOSEPH_SAPC' => 1670.7,
  346.             '97-COLIMACONS' => 1104.4,
  347.             '97-MASCARIN' => 809.4,
  348.             '97-LE GOL LES HAUTS - CIRAD' => 1022.9,
  349.             '97-PITON-MAIDO' => 1286.2,
  350.             '97-POINTE DES TROIS-BASSINS' => 435.8,
  351.             '97-RAVINE DES CABRIS - CIRAD' => 841.3,
  352.             '97-PIERREFONDS - CIRAD' => 672.1,
  353.             '97-PIERREFONDS-AEROPORT' => 639.9,
  354.             '97-LIGNE-PARADIS - CIRAD' => 940.1,
  355.             '97-GILLOT-AEROPORT' => 1658.6,
  356.             '97-PLAINE DES CAFRES' => 2020.2,
  357.             '97-CILAOS' => 1852.7,
  358.             '97-ST-PIERRE' => 1326.7,
  359.             '98-KERGUELEN' => 677.2,
  360.             '98-PAMANDZI' => 1226.1,
  361.             '98-MAOPOOPO' => 3295.5,
  362.             '98-HIHIFO' => 3174.5,
  363.             '98-FAAA' => 1687.7,
  364.             '98-HIVA-OA' => 1699.4,
  365.             '98-RAPA' => 2574.6,
  366.             '98-MATAURA 1' => 1825.7,
  367.             '98-KOUMAC' => 984.8,
  368.             '98-OUANAHAM' => 1674.8,
  369.             '98-NOUMEA' => 1070,
  370.             '98-MAGENTA' => 1088.3,
  371.             '98-LA TONTOUTA' => 897.3,
  372.             '98-POINDIMIE' => 2630.4
  373.         ];
  374.     }
  375.     public function getClimatChoises() {
  376.         return [
  377.             'Climat océanique dégradé (Paris)' => 'Paris',
  378.             'Climat méditerranéen (Marseille)' => 'Marignane',
  379.             'Climat de montagne (Aurillac)' => 'Aurillac',
  380.             'Climat océanique aquitain (Bordeaux)' => 'Bordeaux',
  381.             'Climat océanique nord-ouest (Nantes)' => 'Nantes',
  382.             'Climat semi-continental (Lyon)' => 'Lyon'
  383.         ];
  384.     }
  385.     public function getRendementToitureChoises() {
  386.         return [
  387.             'Toiture dure en pente Kt=0.8' => '0.8',
  388.             'Toiture plate sans gravillon Kt=0.8' => '0.8',
  389.             'Toiture plate revetue de gravillons Kt=0.6' => '0.6',
  390.             'Toiture à végétalisation intensive Kt=0.3' => '0.3',
  391.             'Toiture à végétalisation extensive Kt=0.5' => '0.5',
  392.             'Aire pavée Kt=0.5' => '0.5',
  393.             'Revêtement asphalte Kt=0.8' => '0.8'
  394.         ];
  395.     }
  396.     public function getTypePlanteChoises() {
  397.         return [
  398.             'Gazon Kc=0.8 racines=20cm' => 'Gazon Kc=0.8 racines=20cm',
  399.             'Vivaces Kc=0.2 racines=40cm' => 'Vivaces Kc=0.2 racines=40cm',
  400.             'Arbustes Kc=0.2 racines=70cm' => 'Arbustes Kc=0.2 racines=70cm',
  401.             'Graminees Kc=0.8 racines=80cm' => 'Graminees Kc=0.8 racines=80cm'
  402.         ];
  403.     }
  404.     public function getScenarioUtilisationChoices() {
  405.         return [
  406.             '7 jours sur 7' => '1',
  407.             '5 jours sur 7' => '2',
  408.             'Enseignement' => '3'
  409.         ];
  410.     }
  411.     public function getCertiveaChoices() {
  412.         return [
  413.             true => 'Oui'// true pour "oui"
  414.             false => 'Non' // false pour "non"
  415.         ];
  416.     }
  417.     public function getProfondeurTerreChoices() {
  418.         return [
  419.             'Pleine terre' => '10',
  420.             'Terrasse jardin 1m' => '1',
  421.             'Toiture terrasse 50 cm' => '0.5',
  422.             'Toiture terrasse 20 cm' => '0.2',
  423.             'Toiture terrasse 15 cm' => '0.15',
  424.             'Toiture terrasse 5 cm' => '0.05'
  425.         ];
  426.     }
  427.     public function getRuChoices() {
  428.         return [
  429.             'Sable grossier' => '40',
  430.             'Sable moyen' => '70',
  431.             'Sable fin' => '85',
  432.             'Limono - sableux' => '90',
  433.             'Sablo-limoneuse' => '100',
  434.             'Sablo - limoneux fin' => '130',
  435.             'Sablo - limoneux très fin' => '150',
  436.             'Argilo-sableuse' => '170',
  437.             'Argilo - limono - sableux' => '180',
  438.             'Limono – argilo - sableux' => '165',
  439.             'Limoneux' => '180',
  440.             'Sablo - argileux' => '140',
  441.             'Sablo – limono - argileux' => '150',
  442.             'Limono - argileux' => '200',
  443.             'Argileux' => '185'
  444.         ];
  445.     }
  446.     public function configureOptions(OptionsResolver $resolver): void {
  447.         $resolver->setDefaults([
  448.                 // Configure your form options here
  449.         ]);
  450.     }
  451. }