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.quotientfamille.web;
35
36 import fr.paris.lutece.plugins.quotientfamille.business.FormData;
37 import fr.paris.lutece.plugins.quotientfamille.dataclient.RevenuDataClient;
38 import fr.paris.lutece.plugins.quotientfamille.dataclient.UserDataClient;
39 import fr.paris.lutece.plugins.quotientfamille.service.DirectoryData;
40 import fr.paris.lutece.plugins.quotientfamille.service.DirectoryDataService;
41 import fr.paris.lutece.plugins.quotientfamille.service.RedirectUtils;
42 import fr.paris.lutece.plugins.franceconnect.oidc.UserInfo;
43 import fr.paris.lutece.plugins.franceconnect.service.DataClientService;
44 import fr.paris.lutece.plugins.quotientfamille.business.QuotientFamilial;
45 import fr.paris.lutece.portal.service.security.LuteceUser;
46 import fr.paris.lutece.portal.service.security.SecurityService;
47 import fr.paris.lutece.portal.service.security.UserNotSignedException;
48 import fr.paris.lutece.portal.util.mvc.commons.annotations.Action;
49 import fr.paris.lutece.portal.util.mvc.commons.annotations.View;
50 import fr.paris.lutece.portal.util.mvc.xpage.MVCApplication;
51 import fr.paris.lutece.portal.util.mvc.xpage.annotations.Controller;
52 import fr.paris.lutece.portal.web.xpages.XPage;
53
54 import java.util.Map;
55
56 import javax.servlet.http.HttpServletRequest;
57
58
59
60
61
62 @Controller( xpageName = "quotientfamille", pageTitleI18nKey = "quotientfamille.xpage.quotientfamille.pageTitle", pagePathI18nKey = "quotientfamille.xpage.quotientfamille.pagePathLabel" )
63 public class FranceConnectSampleApp extends MVCApplication
64 {
65
66 public static final String VIEW_HOME = "home";
67 public static final String VIEW_DEMARCHE_FORM = "demarcheForm";
68 public static final String VIEW_DEMARCHE_ETAPE2 = "demarcheEtape2";
69 public static final String VIEW_DEMARCHE_FIN = "demarcheFin";
70
71
72 public static final String ACTION_START_DEMARCHE = "startDemarche";
73 public static final String ACTION_PROCESS_FORM = "processForm";
74
75
76 private static final String TEMPLATE_XPAGE = "/skin/plugins/quotientfamille/home.html";
77 private static final String TEMPLATE_DEMARCHE_FORM = "/skin/plugins/quotientfamille/demarche-form.html";
78 private static final String TEMPLATE_DEMARCHE_ETAPE2 = "/skin/plugins/quotientfamille/demarche-etape2.html";
79 private static final String TEMPLATE_DEMARCHE_FIN = "/skin/plugins/quotientfamille/demarche-etape-fin.html";
80 private static final String MARK_LASTNAME = "lastname";
81 private static final String MARK_GENDER = "gender";
82 private static final String MARK_FIRSTNAME = "firstname";
83 private static final String MARK_FORM_DATA = "form";
84 private static final String MARK_QUOTIENT_FAMILIAL = "qf";
85 private static final String MARK_ADDRESS = "address";
86 private static final String DATACLIENT_USER = "quotientfamille.user";
87 private static final String DATACLIENT_REVENU = "quotientfamille.revenu";
88 private static final long serialVersionUID = 1L;
89 private UserInfo _userInfo;
90 private QuotientFamilial _quotientFamilial;
91 private FormData _formData;
92 private DirectoryData _directoryData=new DirectoryData();;
93
94
95
96
97
98
99 @View( value = VIEW_HOME, defaultView = true )
100 public XPage viewHome( HttpServletRequest request )
101 {
102 return getXPage( TEMPLATE_XPAGE, request.getLocale( ) );
103 }
104
105
106
107
108
109
110 @Action( ACTION_START_DEMARCHE )
111 public XPage startDemarche( HttpServletRequest request )
112 {
113 _userInfo = (UserInfo) request.getSession( ).getAttribute( UserDataClient.ATTRIBUTE_USERINFO );
114
115 if ( _userInfo == null )
116 {
117 String strUrl = DataClientService.instance( ).getDataClientUrl( DATACLIENT_USER );
118
119 return redirect( request, strUrl );
120 }
121
122 return redirectView( request, VIEW_DEMARCHE_FORM );
123 }
124
125
126
127
128
129
130 @View( VIEW_DEMARCHE_FORM )
131 public XPage viewDemarcheForm( HttpServletRequest request )
132 {
133 _userInfo = (UserInfo) request.getSession( ).getAttribute( UserDataClient.ATTRIBUTE_USERINFO );
134
135 if ( _userInfo == null )
136 {
137 return redirect( request, RedirectUtils.getActionUrl( request, ACTION_START_DEMARCHE ) );
138 }
139
140 Map<String, Object> model = getModel( );
141 model.put( MARK_FIRSTNAME, _userInfo.getGivenName( ) );
142 model.put( MARK_LASTNAME, _userInfo.getFamilyName( ) );
143 model.put( MARK_GENDER, _userInfo.getGender( ) );
144 _directoryData.setPrenom(_userInfo.getGivenName( ));
145 _directoryData.setNomFamille(_userInfo.getFamilyName( ));
146 return getXPage( TEMPLATE_DEMARCHE_FORM, request.getLocale( ), model );
147 }
148
149
150
151
152
153
154 @Action( ACTION_PROCESS_FORM )
155 public XPage processForm( HttpServletRequest request )
156 {
157 _formData = new FormData( );
158 populate( _formData, request );
159
160 if ( !validateBean( _formData ) )
161 {
162
163 }
164
165 System.out.println( "Données du formulaire : " + _formData.getPrenomEnfant( ) + " " +
166 _formData.getNomEnfant( ) );
167
168 return redirect( request, DataClientService.instance( ).getDataClientUrl( DATACLIENT_REVENU ) );
169 }
170
171
172
173
174
175
176 @View( VIEW_DEMARCHE_ETAPE2 )
177 public XPage viewDemarcheEtape2( HttpServletRequest request )
178 {
179 _userInfo = (UserInfo) request.getSession( ).getAttribute( UserDataClient.ATTRIBUTE_USERINFO );
180
181 Map<String, Object> model = getModel( );
182 model.put( MARK_FORM_DATA, _formData );
183 model.put( MARK_FIRSTNAME, _userInfo.getGivenName( ) );
184 model.put( MARK_LASTNAME, _userInfo.getFamilyName( ) );
185 model.put( MARK_ADDRESS , request.getSession( ).getAttribute(RevenuDataClient.ATTRIBUTE_ADDRESSEFISCALE ));
186 _quotientFamilial = (QuotientFamilial) request.getSession( ).getAttribute(RevenuDataClient.ATTRIBUTE_QUOTIENTFAMILIAL );
187 if ( _quotientFamilial != null ) {
188 model.put( MARK_QUOTIENT_FAMILIAL, _quotientFamilial );
189 _directoryData.setRevenuFiscal( Integer.toString( _quotientFamilial.getRevenuFiscalReference( ) ) );
190 _directoryData.setNombrePart( Double.toString( _quotientFamilial.getNombreParts( ) ) );
191 _directoryData.setCivilite("XXX");
192 LuteceUser user;
193 try {
194 user = SecurityService.getInstance().getRemoteUser(request);
195 if (user != null) {
196 _directoryData.setMail(user.getName());
197 } else {
198 _directoryData.setMail("user@paris.fr");
199 }
200 } catch (Exception e) {
201 e.printStackTrace();
202 _directoryData.setMail("user@paris.fr");
203 }
204 _directoryData.setNumero(Integer.toString((int)(Math.random()*10000)));
205 _directoryData.setUsage("XXX");
206
207 DirectoryDataService.pushInDirectory(_directoryData, request);
208 }
209
210 return getXPage( TEMPLATE_DEMARCHE_ETAPE2, request.getLocale( ), model );
211 }
212
213
214
215
216
217
218 @View( VIEW_DEMARCHE_FIN )
219 public XPage viewDemarcheFin( HttpServletRequest request )
220 {
221 return getXPage( TEMPLATE_DEMARCHE_FIN, request.getLocale( ) );
222 }
223 }