· 7 years ago · Jan 23, 2019, 10:06 AM
1*&---------------------------------------------------------------------*
2*& Report ZIAG_STATIE_PECO
3*&
4*&---------------------------------------------------------------------*
5*&
6*&
7*&---------------------------------------------------------------------*
8
9REPORT ziag_statie_peco.
10
11TABLES: zpeco_user1.
12
13"TABLE DATA STRUCTURES
14DATA: users TYPE zpeco_user1.
15DATA: pumps TYPE zpeco_pump.
16
17"LOGIN DATA FIELDS
18DATA: username TYPE char35.
19DATA: password TYPE char35.
20
21"REGISTER DATA FIEILDS
22DATA: fname_reg TYPE char31.
23DATA: lname_reg TYPE char31.
24DATA: email_reg TYPE char31.
25DATA: pass_reg TYPE char31.
26
27"CREATE ADMIN DATA FIELDS
28DATA: emailadm TYPE char31.
29DATA: fnameadm TYPE char31.
30DATA: lnameadm TYPE char31.
31DATA: pswadm TYPE char31.
32
33"ADMIN DATA FIELDS
34DATA: pumpnr TYPE int1.
35DATA: currprice TYPE int1.
36DATA: newprice TYPE int1.
37DATA: emailinput TYPE char31.
38DATA: numberadd TYPE int1.
39DATA: fueltypeadd TYPE char31.
40DATA: priceadd TYPE int1.
41
42"CHANGE PASSWORD DATA FIELDS
43DATA: chpassword TYPE char31.
44DATA: chnewpass TYPE char31.
45DATA: chreppass TYPE char31.
46
47"auxiliar data
48DATA: role_name TYPE zpeco_role.
49DATA: aux_price TYPE zpeco_price.
50DATA: welcomecl TYPE char40.
51DATA: welcomeadm TYPE char40.
52DATA: auxfname TYPE zpeco_fname.
53DATA: auxlname TYPE zpeco_lname.
54
55DATA: lv_answer.
56
57CALL SCREEN '100'.
58*&---------------------------------------------------------------------*
59*& Module STATUS_0100 OUTPUT
60*&---------------------------------------------------------------------*
61* text
62*----------------------------------------------------------------------*
63MODULE status_0100 OUTPUT.
64* SET PF-STATUS 'xxxxxxxx'.
65* SET TITLEBAR 'xxx'.
66
67ENDMODULE. " STATUS_0100 OUTPUT
68*&---------------------------------------------------------------------*
69*& Module USER_COMMAND_0100 INPUT
70*&---------------------------------------------------------------------*
71* text
72*----------------------------------------------------------------------*
73MODULE user_command_0100 INPUT.
74
75 CASE sy-ucomm.
76 WHEN 'REG_BTN'.
77 CALL SCREEN '101'.
78 WHEN 'EXIT'.
79 LEAVE TO SCREEN 0.
80 WHEN 'LOGIN'.
81 users-email = username.
82 users-password = password.
83 SELECT COUNT(*) FROM zpeco_user1 WHERE email = users-email AND password = users-password.
84 IF sy-subrc EQ 0. "exists
85 SELECT role FROM zpeco_user1 INTO role_name WHERE email = users-email.
86 ENDSELECT.
87 IF role_name = 'ADMIN'.
88 password = ''.
89 CALL SCREEN '104'.
90 ELSE.
91 password = ''.
92 CALL SCREEN '103'.
93 ENDIF.
94 ELSE.
95 MESSAGE 'Email and Password combination is incorrect!' TYPE 'I'.
96 username = ''.
97 password = ''.
98 ENDIF.
99 ENDCASE.
100
101ENDMODULE. " USER_COMMAND_0100 INPUT
102*&---------------------------------------------------------------------*
103*& Module STATUS_0101 OUTPUT
104*&---------------------------------------------------------------------*
105* text
106*----------------------------------------------------------------------*
107MODULE status_0101 OUTPUT.
108* SET PF-STATUS 'xxxxxxxx'.
109* SET TITLEBAR 'xxx'.
110
111ENDMODULE. " STATUS_0101 OUTPUT
112*&---------------------------------------------------------------------*
113*& Module USER_COMMAND_0101 INPUT
114*&---------------------------------------------------------------------*
115* text
116*----------------------------------------------------------------------*
117MODULE user_command_0101 INPUT.
118 CASE sy-ucomm.
119 WHEN 'CANCEL'.
120 LEAVE TO SCREEN 0.
121 WHEN 'REG'.
122 users-email = email_reg.
123 users-first_name = fname_reg.
124 users-last_name = lname_reg.
125 users-password = pass_reg.
126 users-role = 'CLIENT'.
127 SELECT COUNT(*) FROM zpeco_user1 WHERE email = users-email .
128 IF sy-subrc EQ 0. "exists
129 MESSAGE 'EMAIL ALREDY EXIST' TYPE 'I'.
130 ELSE.
131 IF email_reg = '' OR fname_reg = '' OR lname_reg = '' OR pass_reg = ''.
132 MESSAGE 'Please fill in all fields!' TYPE 'I'.
133 ELSE.
134 INSERT INTO zpeco_user1 VALUES users.
135 MESSAGE 'Register sucsessful !' TYPE 'I'.
136 email_reg = ''.
137 fname_reg = ''.
138 lname_reg = ''.
139 pass_reg = ''.
140 LEAVE TO SCREEN 0.
141 ENDIF.
142 ENDIF.
143 ENDCASE.
144ENDMODULE. " USER_COMMAND_0101 INPUT
145*&---------------------------------------------------------------------*
146*& Module STATUS_0102 OUTPUT
147*&---------------------------------------------------------------------*
148* text
149*----------------------------------------------------------------------*
150MODULE status_0102 OUTPUT.
151* SET PF-STATUS 'xxxxxxxx'.
152* SET TITLEBAR 'xxx'.
153
154ENDMODULE. " STATUS_0102 OUTPUT
155*&---------------------------------------------------------------------*
156*& Module USER_COMMAND_0102 INPUT
157*&---------------------------------------------------------------------*
158* text
159*----------------------------------------------------------------------*
160MODULE user_command_0102 INPUT.
161
162ENDMODULE. " USER_COMMAND_0102 INPUT
163*&---------------------------------------------------------------------*
164*& Module STATUS_0103 OUTPUT
165*&---------------------------------------------------------------------*
166* text
167*----------------------------------------------------------------------*
168MODULE status_0103 OUTPUT.
169* SET PF-STATUS 'xxxxxxxx'.
170* SET TITLEBAR 'xxx'.
171
172ENDMODULE. " STATUS_0103 OUTPUT
173*&---------------------------------------------------------------------*
174*& Module USER_COMMAND_0103 INPUT
175*&---------------------------------------------------------------------*
176* text
177*----------------------------------------------------------------------*
178MODULE user_command_0103 INPUT.
179 SELECT first_name FROM zpeco_user1 INTO auxfname WHERE email = username.
180 ENDSELECT.
181 SELECT last_name FROM zpeco_user1 INTO auxlname WHERE email = username.
182 ENDSELECT.
183 CONCATENATE 'Welcome' auxfname auxlname '!' INTO welcomecl SEPARATED BY space.
184 CASE sy-ucomm.
185 WHEN 'LOGOUT'.
186 LEAVE TO SCREEN 0.
187 WHEN 'CPCLIENT'.
188 CALL SCREEN '106'.
189 ENDCASE.
190
191ENDMODULE. " USER_COMMAND_0103 INPUT
192
193*&SPWizard: Data incl. inserted by SP Wizard. DO NOT CHANGE THIS LINE!
194INCLUDE ziag_statie_peco_tabel_data .
195*&SPWizard: Include inserted by SP Wizard. DO NOT CHANGE THIS LINE!
196INCLUDE ziag_statie_peco_tabel_pbo .
197*&---------------------------------------------------------------------*
198*& Module STATUS_0104 OUTPUT
199*&---------------------------------------------------------------------*
200* text
201*----------------------------------------------------------------------*
202MODULE status_0104 OUTPUT.
203* SET PF-STATUS 'xxxxxxxx'.
204* SET TITLEBAR 'xxx'.
205
206ENDMODULE. " STATUS_0104 OUTPUT
207*&---------------------------------------------------------------------*
208*& Module USER_COMMAND_0104 OUTPUT
209*&---------------------------------------------------------------------*
210* text
211*----------------------------------------------------------------------*
212MODULE user_command_0104 INPUT.
213 SELECT first_name FROM zpeco_user1 INTO auxfname WHERE email = username.
214 ENDSELECT.
215 SELECT last_name FROM zpeco_user1 INTO auxlname WHERE email = username.
216 ENDSELECT.
217 CONCATENATE 'Welcome' auxfname auxlname '!' INTO welcomeadm SEPARATED BY space.
218 CASE sy-ucomm.
219 WHEN 'DELUSER'.
220 users-email = emailinput.
221 SELECT COUNT(*) FROM zpeco_user1 WHERE email = users-email.
222 IF sy-subrc EQ 0. "exists
223 CALL FUNCTION 'POPUP_TO_CONFIRM'
224 EXPORTING
225 text_question = 'Are you sure you want to delete this user?'
226 text_button_1 = 'Yes'(001)
227 IMPORTING
228 answer = lv_answer
229 EXCEPTIONS
230 text_not_found = 1
231 OTHERS = 2.
232
233 IF sy-subrc <> 0.
234 WRITE 'An error occured with this program'.
235 EXIT.
236 ENDIF.
237
238 IF lv_answer = '1'.
239 DELETE FROM zpeco_user1 WHERE email = users-email.
240 MESSAGE 'USER DELETED!' TYPE 'I'.
241 emailinput = ''.
242 ELSE.
243 emailinput = ''.
244 ENDIF.
245 ELSE.
246 MESSAGE 'EMAIL DOES NOT EXIST!' TYPE 'I'.
247 emailinput = ''.
248 ENDIF.
249 WHEN 'DELLPUMPS'.
250 CALL FUNCTION 'POPUP_TO_CONFIRM'
251 EXPORTING
252 text_question = 'Are you sure you want to delete all pumps?'
253 text_button_1 = 'Yes'(001)
254 IMPORTING
255 answer = lv_answer
256 EXCEPTIONS
257 text_not_found = 1
258 OTHERS = 2.
259
260 IF sy-subrc <> 0.
261 WRITE 'An error occured with this program'.
262 EXIT.
263 ENDIF.
264
265 IF lv_answer = '1'.
266 DELETE FROM zpeco_pump.
267 MESSAGE 'ALL PUMPS DELETED!' TYPE 'I'.
268
269 ENDIF.
270
271 WHEN 'DELLCLIENTS'.
272 CALL FUNCTION 'POPUP_TO_CONFIRM'
273 EXPORTING
274 text_question = 'Are you sure you want to delete all clients?'
275 text_button_1 = 'Yes'(001)
276 IMPORTING
277 answer = lv_answer
278 EXCEPTIONS
279 text_not_found = 1
280 OTHERS = 2.
281
282 IF sy-subrc <> 0.
283 WRITE 'An error occured with this program'.
284 EXIT.
285 ENDIF.
286
287 IF lv_answer = '1'.
288 DELETE FROM zpeco_user1 WHERE role = 'CLIENT'.
289 MESSAGE 'ALL CLIENTS DELETED!' TYPE 'I'.
290 ENDIF.
291
292 WHEN 'CONADDBTN'.
293 pumps-pump_number = numberadd.
294 pumps-fuel_type = fueltypeadd.
295 pumps-price_per_l = priceadd.
296 SELECT COUNT(*) FROM zpeco_pump WHERE pump_number = pumps-pump_number.
297 IF sy-subrc EQ 0. "exists
298 MESSAGE 'PUMP NUMBER ALREDY EXIST' TYPE 'I'.
299 ELSE.
300 IF numberadd = '' OR fueltypeadd = '' OR priceadd = ''.
301 MESSAGE 'Please fill in all fields!' TYPE 'I'.
302 ELSE.
303 INSERT INTO zpeco_pump VALUES pumps.
304 numberadd = ''.
305 fueltypeadd = ''.
306 priceadd = ''.
307 MESSAGE 'Pump added sucsessful !' TYPE 'I'.
308 ENDIF.
309 ENDIF.
310 WHEN 'DELBTN'.
311 pumps-pump_number = pumpnr.
312 SELECT COUNT(*) FROM zpeco_pump WHERE pump_number = pumps-pump_number.
313 IF sy-subrc EQ 0. "exists
314 CALL FUNCTION 'POPUP_TO_CONFIRM'
315 EXPORTING
316 text_question = 'Are you sure you want to delete this pump?'
317 text_button_1 = 'Yes'(001)
318 IMPORTING
319 answer = lv_answer
320 EXCEPTIONS
321 text_not_found = 1
322 OTHERS = 2.
323
324 IF sy-subrc <> 0.
325 WRITE 'An error occured with this program'.
326 EXIT.
327 ENDIF.
328
329 IF lv_answer = '1'.
330 DELETE FROM zpeco_pump WHERE pump_number = pumps-pump_number.
331 MESSAGE 'PUMP DELETED' TYPE 'I'.
332 pumpnr = ''.
333 ELSE.
334 pumpnr = ''.
335 ENDIF.
336
337 ELSE.
338 MESSAGE 'Selected pump number does not exist' TYPE 'I'.
339 ENDIF.
340 WHEN 'GETPRICE'.
341 pumps-pump_number = pumpnr.
342 SELECT COUNT(*) FROM zpeco_pump WHERE pump_number = pumps-pump_number.
343 IF sy-subrc EQ 0. "exists
344 SELECT price_per_l FROM zpeco_pump INTO aux_price WHERE pump_number = pumps-pump_number.
345 ENDSELECT.
346 currprice = aux_price.
347 ELSE.
348 MESSAGE 'Selected pump number does not exist' TYPE 'I'.
349 ENDIF.
350 WHEN 'CPADMIN'.
351 CALL SCREEN '106'.
352 WHEN 'LOUT'.
353 LEAVE TO SCREEN 0.
354 WHEN 'CRADM'.
355 CALL SCREEN '105'.
356 WHEN 'UPDATE'.
357 pumps-pump_number = pumpnr.
358 pumps-price_per_l = newprice.
359 SELECT COUNT(*) FROM zpeco_pump WHERE pump_number = pumps-pump_number.
360 IF sy-subrc EQ 0. "exists
361 UPDATE zpeco_pump SET price_per_l = pumps-price_per_l WHERE pump_number = pumps-pump_number.
362 MESSAGE 'Price updated' TYPE 'I'.
363 newprice = ''.
364 ELSE.
365 MESSAGE 'PUMP NUMBER SELECTED DOES NOT EXIST' TYPE 'I'.
366 ENDIF.
367 ENDCASE.
368ENDMODULE. " USER_COMMAND_0104 OUTPUT
369*&---------------------------------------------------------------------*
370*& Module STATUS_0105 OUTPUT
371*&---------------------------------------------------------------------*
372* text
373*----------------------------------------------------------------------*
374MODULE status_0105 OUTPUT.
375* SET PF-STATUS 'xxxxxxxx'.
376* SET TITLEBAR 'xxx'.
377
378ENDMODULE. " STATUS_0105 OUTPUT
379*&---------------------------------------------------------------------*
380*& Module USER_COMMAND_0105 INPUT
381*&---------------------------------------------------------------------*
382* text
383*----------------------------------------------------------------------*
384MODULE user_command_0105 INPUT.
385 CASE sy-ucomm.
386 WHEN 'CANC'.
387 LEAVE TO SCREEN 0.
388 WHEN 'CONF'.
389 users-email = emailadm.
390 users-first_name = fnameadm.
391 users-last_name = lnameadm.
392 users-password = pswadm.
393 users-role = 'ADMIN'.
394 SELECT COUNT(*) FROM zpeco_user1 WHERE email = users-email .
395 IF sy-subrc EQ 0. "exists
396 MESSAGE 'EMAIL ALREDY EXIST' TYPE 'I'.
397 ELSE.
398 IF emailadm = '' OR fnameadm = '' OR lnameadm = '' OR pswadm = ''.
399 MESSAGE 'Please fill in all fields!' TYPE 'I'.
400 ELSE.
401 INSERT INTO zpeco_user1 VALUES users.
402 MESSAGE 'Admin created!' TYPE 'I'.
403 emailadm = ''.
404 fnameadm = ''.
405 lnameadm = ''.
406 pswadm = ''.
407 LEAVE TO SCREEN 0.
408 ENDIF.
409 ENDIF.
410 ENDCASE.
411ENDMODULE. " USER_COMMAND_0105 INPUT
412*&---------------------------------------------------------------------*
413*& Module STATUS_0106 OUTPUT
414*&---------------------------------------------------------------------*
415* text
416*----------------------------------------------------------------------*
417MODULE status_0106 OUTPUT.
418* SET PF-STATUS 'xxxxxxxx'.
419* SET TITLEBAR 'xxx'.
420
421ENDMODULE. " STATUS_0106 OUTPUT
422*&---------------------------------------------------------------------*
423*& Module USER_COMMAND_0106 INPUT
424*&---------------------------------------------------------------------*
425* text
426*----------------------------------------------------------------------*
427MODULE user_command_0106 INPUT.
428
429 CASE sy-ucomm.
430 WHEN 'CHCANCEL'.
431 chnewpass =''.
432 chpassword = ''.
433 chreppass = ''.
434 LEAVE TO SCREEN 0.
435 WHEN 'CPBTN'.
436 users-password = chpassword.
437 users-email = username.
438 SELECT COUNT(*) FROM zpeco_user1 WHERE password = users-password AND email = users-email.
439 IF sy-subrc EQ 0. "exists
440 IF chnewpass = chreppass.
441 UPDATE zpeco_user1 SET password = chnewpass WHERE email = users-email.
442 chnewpass =''.
443 chpassword = ''.
444 chreppass = ''.
445 MESSAGE 'Password changed successfuly!' TYPE 'I'.
446 LEAVE TO SCREEN '0'.
447 ELSE.
448 MESSAGE 'Repeated password does not match!' TYPE 'I'.
449 ENDIF.
450 ELSE.
451 MESSAGE 'Current password is incorrect!' TYPE 'I'.
452 ENDIF.
453 ENDCASE.
454ENDMODULE. " USER_COMMAND_0106 INPUT