1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.ctv.service;
35
36 import static fr.paris.lutece.plugins.ctv.constants.CtvConstants.EMPRISE_ID;
37 import static fr.paris.lutece.plugins.ctv.constants.CtvConstants.NEW_EMPRISE;
38
39 import java.util.ArrayList;
40 import java.util.Date;
41 import java.util.List;
42 import java.util.Map;
43
44 import javax.servlet.http.HttpServletRequest;
45
46 import fr.paris.lutece.plugins.ctv.bo.ChantierIntention;
47 import fr.paris.lutece.plugins.ctv.bo.DetailsEmprise;
48 import fr.paris.lutece.plugins.ctv.bo.DetailsEmprise.TypeConfigurationSpecifique;
49 import fr.paris.lutece.plugins.ctv.bo.Emprise;
50 import fr.paris.lutece.plugins.ctv.business.IChantierService;
51 import fr.paris.lutece.plugins.ctv.business.IStockageImageService;
52 import fr.paris.lutece.plugins.ctv.constant.StatutEmprise;
53 import fr.paris.lutece.plugins.ctv.util.EmpriseMappingUtils;
54 import fr.paris.lutece.portal.service.datastore.DatastoreService;
55 import fr.paris.lutece.portal.service.spring.SpringContextService;
56 import fr.paris.lutece.portal.service.util.AppPropertiesService;
57 import fr.paris.lutece.util.bean.BeanUtil;
58
59 public class EmpriseIntentionControllerService extends AbstractEmpriseControllerService
60 {
61
62 private static String PATH_FOLDER_IMAGE_EMPRISE = AppPropertiesService.getProperty( "ctv.directory.upload" );
63 private static final IFormulaire formulaireService = FormulaireDemandeIntentionServiceImpl.getInstance( );
64 private static final IEmpriseControllerService empriseCtrlService = new EmpriseIntentionControllerService( );
65 private static final IChantierService chantierService = SpringContextService.getBean( "chantierService" );
66 private static final IStockageImageService stockageService = SpringContextService.getBean( "stockageImageService" );
67
68 public static IEmpriseControllerService getInstance( )
69 {
70 return empriseCtrlService;
71 }
72
73 @Override
74 public IFormulaire getFormulaireService( )
75 {
76 return formulaireService;
77 }
78
79 @Override
80 public void updateEmpriseFromRequest( HttpServletRequest request, boolean withGeometry )
81 {
82 registerConverters( );
83 Emprise emprise = new Emprise( );
84 BeanUtil.populate( emprise, request );
85 int empriseId = getCurrentEmpriseId( request );
86 if ( empriseId > 0 )
87 {
88 List<Integer> selectedEmpriseIds = new ArrayList<Integer>( );
89 selectedEmpriseIds.add( empriseId );
90 empriseService.controlStatutEmpriseACoordoner( selectedEmpriseIds, emprise );
91 super.updateEmpriseFromRequest( request, withGeometry );
92 }
93 }
94
95 @Override
96 public void initModel( Map<String, Object> model, HttpServletRequest request )
97 {
98 super.initModel( model, request );
99 initSpecificModel( model );
100
101 int numDemande = formulaireService.getNumDemande( request );
102
103 ChantierIntention chantier = chantierService.getChantierIntentionByNumDemande( numDemande );
104
105 Emprise emprise = new Emprise( );
106 if ( chantier != null )
107 {
108 emprise.setEmpriseDateDebut( chantier.getChantierStartDate( ) );
109 emprise.setEmpriseDateFin( chantier.getChantierEndDate( ) );
110 emprise.setEmpriseAdresseDebut( chantier.getChantierAdresse( ) );
111 }
112
113 model.put( "emprise", emprise );
114 }
115
116 @Override
117 public void populateEmprise( HttpServletRequest request )
118 {
119 registerConverters( );
120 Emprise emprise = new Emprise( );
121 BeanUtil.populate( emprise, request );
122
123 emprise.setEmpriseStatut( StatutEmprise.BROUILLON );
124 emprise.setEmpriseVueEnConference( "NON" );
125 emprise.setEmpriseTransforme( "NON" );
126
127 populateGeometry( request, emprise );
128
129 int empriseId = empriseService.createEmpriseIntention( formulaireService.getNumDemande( request ), emprise );
130
131
132
133 String pathFile = PATH_FOLDER_IMAGE_EMPRISE;
134 stockageService.saveImageOnServer( emprise.getMapPreviewDataUrl( ), new Date( ), pathFile, empriseId );
135
136 DetailsEmprise details = new DetailsEmprise( );
137 EmpriseMappingUtils.map( request, details );
138 details.prepare( );
139 details.getConfigurationsSpecifiques( ).add( TypeConfigurationSpecifique.EMPRISE_MODIFIANT_SOL );
140 int paramDelaiDateGel = Integer.parseInt( DatastoreService.getDataValue( "parametre.numeric.intervention.duree.periode.gel", "0" ) );
141 empriseService.createDetails( empriseId, details, paramDelaiDateGel );
142 request.getSession( ).setAttribute( EMPRISE_ID, empriseId );
143 request.getSession( ).setAttribute( NEW_EMPRISE, true );
144 }
145
146 }