· 8 years ago · Oct 14, 2017, 02:56 PM
1import java.awt.EventQueue;
2import java.util.*;
3import java.util.Date;
4import java.util.Properties;
5
6import javax.swing.*;
7import java.awt.BorderLayout;
8import java.awt.Color;
9import java.awt.Font;
10import java.awt.event.ActionListener;
11import java.awt.event.ActionEvent;
12import java.sql.*;
13import java.text.SimpleDateFormat;
14import com.sun.mail.smtp.SMTPTransport;
15import java.security.Security;
16
17import javax.mail.Message;
18import javax.mail.MessagingException;
19import javax.mail.Session;
20import javax.mail.internet.AddressException;
21import javax.mail.internet.InternetAddress;
22import javax.mail.internet.MimeMessage;
23
24public class Main {
25 private JFrame frmDcc;
26 private JFrame dialog;
27 private JTextField poljeNazivArtikla;
28 private JTextField poljeImeKupca;
29 private JTextField poljeEmail;
30 private JTextField poljeBrojTelefona;
31 private static JComboBox<String> listaPozivniBrojevi;
32 private JTextField poljePrezimeKupca;
33 private JPasswordField passwordField;
34 private JTextField poljeCijenaArtikla;
35 private JTextField poljeUkupno;
36
37 public static Connection returnConnection() throws ClassNotFoundException, SQLException {
38 Connection connection = null;
39 Class.forName("com.mysql.jdbc.Driver");
40 connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/ddc", "root", "");
41 return connection;
42 }
43
44 public static void sendEmail(final String username, final String password, String recipientEmail, String ccEmail,
45 String title, String message) throws AddressException, MessagingException {
46 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
47 final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
48 Properties props = System.getProperties();
49 props.setProperty("mail.smtps.host", "smtp.gmail.com");
50 props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
51 props.setProperty("mail.smtp.socketFactory.fallback", "false");
52 props.setProperty("mail.smtp.port", "465");
53 props.setProperty("mail.smtp.socketFactory.port", "465");
54 props.setProperty("mail.smtps.auth", "true");
55 props.put("mail.smtps.quitwait", "false");
56 Session session = Session.getInstance(props, null);
57
58 final MimeMessage msg = new MimeMessage(session);
59
60 msg.setFrom(new InternetAddress(username + "@gmail.com"));
61 msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail, false));
62
63 if (ccEmail.length() > 0) {
64 msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(ccEmail, false));
65 }
66
67 msg.setSubject(title);
68 msg.setText(message, "utf-8");
69 msg.setSentDate(new Date());
70
71 SMTPTransport t = (SMTPTransport) session.getTransport("smtps");
72
73 t.connect("smtp.gmail.com", username, password);
74 t.sendMessage(msg, msg.getAllRecipients());
75 t.close();
76
77 }
78
79 public static void popuniListuPozivnihBrojeva() {
80 listaPozivniBrojevi.addItem("+1");
81 listaPozivniBrojevi.addItem("+7");
82 listaPozivniBrojevi.addItem("+20");
83 listaPozivniBrojevi.addItem("+27");
84 listaPozivniBrojevi.addItem("+30");
85 listaPozivniBrojevi.addItem("+31");
86 listaPozivniBrojevi.addItem("+32");
87 listaPozivniBrojevi.addItem("+33");
88 listaPozivniBrojevi.addItem("+34");
89 listaPozivniBrojevi.addItem("+36");
90 listaPozivniBrojevi.addItem("+39");
91 listaPozivniBrojevi.addItem("+40");
92 listaPozivniBrojevi.addItem("+41");
93 listaPozivniBrojevi.addItem("+43");
94 listaPozivniBrojevi.addItem("+44");
95 listaPozivniBrojevi.addItem("+45");
96 listaPozivniBrojevi.addItem("+46");
97 listaPozivniBrojevi.addItem("+47");
98 listaPozivniBrojevi.addItem("+47");
99 listaPozivniBrojevi.addItem("+48");
100 listaPozivniBrojevi.addItem("+49");
101 listaPozivniBrojevi.addItem("+51");
102 listaPozivniBrojevi.addItem("+52");
103 listaPozivniBrojevi.addItem("+53");
104 listaPozivniBrojevi.addItem("+54");
105 listaPozivniBrojevi.addItem("+55");
106 listaPozivniBrojevi.addItem("+56");
107 listaPozivniBrojevi.addItem("+57");
108 listaPozivniBrojevi.addItem("+58");
109 listaPozivniBrojevi.addItem("+60");
110 listaPozivniBrojevi.addItem("+61");
111 listaPozivniBrojevi.addItem("+61");
112 listaPozivniBrojevi.addItem("+61");
113 listaPozivniBrojevi.addItem("+62");
114 listaPozivniBrojevi.addItem("+63");
115 listaPozivniBrojevi.addItem("+64");
116 listaPozivniBrojevi.addItem("+64");
117 listaPozivniBrojevi.addItem("+65");
118 listaPozivniBrojevi.addItem("+66");
119 listaPozivniBrojevi.addItem("+81");
120 listaPozivniBrojevi.addItem("+82");
121 listaPozivniBrojevi.addItem("+84");
122 listaPozivniBrojevi.addItem("+86");
123 listaPozivniBrojevi.addItem("+90");
124 listaPozivniBrojevi.addItem("+91");
125 listaPozivniBrojevi.addItem("+92");
126 listaPozivniBrojevi.addItem("+93");
127 listaPozivniBrojevi.addItem("+94");
128 listaPozivniBrojevi.addItem("+95");
129 listaPozivniBrojevi.addItem("+98");
130 listaPozivniBrojevi.addItem("+211");
131 listaPozivniBrojevi.addItem("+212");
132 listaPozivniBrojevi.addItem("+212");
133 listaPozivniBrojevi.addItem("+213");
134 listaPozivniBrojevi.addItem("+216");
135 listaPozivniBrojevi.addItem("+218");
136 listaPozivniBrojevi.addItem("+220");
137 listaPozivniBrojevi.addItem("+221");
138 listaPozivniBrojevi.addItem("+222");
139 listaPozivniBrojevi.addItem("+223");
140 listaPozivniBrojevi.addItem("+224");
141 listaPozivniBrojevi.addItem("+225");
142 listaPozivniBrojevi.addItem("+226");
143 listaPozivniBrojevi.addItem("+227");
144 listaPozivniBrojevi.addItem("+228");
145 listaPozivniBrojevi.addItem("+229");
146 listaPozivniBrojevi.addItem("+230");
147 listaPozivniBrojevi.addItem("+231");
148 listaPozivniBrojevi.addItem("+232");
149 listaPozivniBrojevi.addItem("+233");
150 listaPozivniBrojevi.addItem("+234");
151 listaPozivniBrojevi.addItem("+235");
152 listaPozivniBrojevi.addItem("+236");
153 listaPozivniBrojevi.addItem("+237");
154 listaPozivniBrojevi.addItem("+238");
155 listaPozivniBrojevi.addItem("+239");
156 listaPozivniBrojevi.addItem("+240");
157 listaPozivniBrojevi.addItem("+241");
158 listaPozivniBrojevi.addItem("+242");
159 listaPozivniBrojevi.addItem("+243");
160 listaPozivniBrojevi.addItem("+244");
161 listaPozivniBrojevi.addItem("+245");
162 listaPozivniBrojevi.addItem("+246");
163 listaPozivniBrojevi.addItem("+248");
164 listaPozivniBrojevi.addItem("+249");
165 listaPozivniBrojevi.addItem("+250");
166 listaPozivniBrojevi.addItem("+251");
167 listaPozivniBrojevi.addItem("+252");
168 listaPozivniBrojevi.addItem("+253");
169 listaPozivniBrojevi.addItem("+254");
170 listaPozivniBrojevi.addItem("+255");
171 listaPozivniBrojevi.addItem("+256");
172 listaPozivniBrojevi.addItem("+257");
173 listaPozivniBrojevi.addItem("+258");
174 listaPozivniBrojevi.addItem("+260");
175 listaPozivniBrojevi.addItem("+261");
176 listaPozivniBrojevi.addItem("+262");
177 listaPozivniBrojevi.addItem("+262");
178 listaPozivniBrojevi.addItem("+263");
179 listaPozivniBrojevi.addItem("+264");
180 listaPozivniBrojevi.addItem("+265");
181 listaPozivniBrojevi.addItem("+266");
182 listaPozivniBrojevi.addItem("+267");
183 listaPozivniBrojevi.addItem("+268");
184 listaPozivniBrojevi.addItem("+269");
185 listaPozivniBrojevi.addItem("+290");
186 listaPozivniBrojevi.addItem("+291");
187 listaPozivniBrojevi.addItem("+297");
188 listaPozivniBrojevi.addItem("+298");
189 listaPozivniBrojevi.addItem("+299");
190 listaPozivniBrojevi.addItem("+350");
191 listaPozivniBrojevi.addItem("+351");
192 listaPozivniBrojevi.addItem("+352");
193 listaPozivniBrojevi.addItem("+353");
194 listaPozivniBrojevi.addItem("+354");
195 listaPozivniBrojevi.addItem("+355");
196 listaPozivniBrojevi.addItem("+356");
197 listaPozivniBrojevi.addItem("+357");
198 listaPozivniBrojevi.addItem("+358");
199 listaPozivniBrojevi.addItem("+359");
200 listaPozivniBrojevi.addItem("+370");
201 listaPozivniBrojevi.addItem("+371");
202 listaPozivniBrojevi.addItem("+372");
203 listaPozivniBrojevi.addItem("+373");
204 listaPozivniBrojevi.addItem("+374");
205 listaPozivniBrojevi.addItem("+375");
206 listaPozivniBrojevi.addItem("+376");
207 listaPozivniBrojevi.addItem("+377");
208 listaPozivniBrojevi.addItem("+378");
209 listaPozivniBrojevi.addItem("+379");
210 listaPozivniBrojevi.addItem("+380");
211 listaPozivniBrojevi.addItem("+381");
212 listaPozivniBrojevi.addItem("+382");
213 listaPozivniBrojevi.addItem("+383");
214 listaPozivniBrojevi.addItem("+385");
215 listaPozivniBrojevi.addItem("+386");
216 listaPozivniBrojevi.addItem("+387");
217 listaPozivniBrojevi.addItem("+389");
218 listaPozivniBrojevi.addItem("+420");
219 listaPozivniBrojevi.addItem("+421");
220 listaPozivniBrojevi.addItem("+423");
221 listaPozivniBrojevi.addItem("+500");
222 listaPozivniBrojevi.addItem("+501");
223 listaPozivniBrojevi.addItem("+502");
224 listaPozivniBrojevi.addItem("+503");
225 listaPozivniBrojevi.addItem("+504");
226 listaPozivniBrojevi.addItem("+505");
227 listaPozivniBrojevi.addItem("+506");
228 listaPozivniBrojevi.addItem("+507");
229 listaPozivniBrojevi.addItem("+508");
230 listaPozivniBrojevi.addItem("+509");
231 listaPozivniBrojevi.addItem("+590");
232 listaPozivniBrojevi.addItem("+590");
233 listaPozivniBrojevi.addItem("+591");
234 listaPozivniBrojevi.addItem("+592");
235 listaPozivniBrojevi.addItem("+593");
236 listaPozivniBrojevi.addItem("+595");
237 listaPozivniBrojevi.addItem("+597");
238 listaPozivniBrojevi.addItem("+598");
239 listaPozivniBrojevi.addItem("+599");
240 listaPozivniBrojevi.addItem("+599");
241 listaPozivniBrojevi.addItem("+670");
242 listaPozivniBrojevi.addItem("+672");
243 listaPozivniBrojevi.addItem("+673");
244 listaPozivniBrojevi.addItem("+674");
245 listaPozivniBrojevi.addItem("+675");
246 listaPozivniBrojevi.addItem("+676");
247 listaPozivniBrojevi.addItem("+677");
248 listaPozivniBrojevi.addItem("+678");
249 listaPozivniBrojevi.addItem("+679");
250 listaPozivniBrojevi.addItem("+680");
251 listaPozivniBrojevi.addItem("+681");
252 listaPozivniBrojevi.addItem("+682");
253 listaPozivniBrojevi.addItem("+683");
254 listaPozivniBrojevi.addItem("+685");
255 listaPozivniBrojevi.addItem("+686");
256 listaPozivniBrojevi.addItem("+687");
257 listaPozivniBrojevi.addItem("+688");
258 listaPozivniBrojevi.addItem("+689");
259 listaPozivniBrojevi.addItem("+690");
260 listaPozivniBrojevi.addItem("+691");
261 listaPozivniBrojevi.addItem("+692");
262 listaPozivniBrojevi.addItem("+850");
263 listaPozivniBrojevi.addItem("+852");
264 listaPozivniBrojevi.addItem("+853");
265 listaPozivniBrojevi.addItem("+855");
266 listaPozivniBrojevi.addItem("+856");
267 listaPozivniBrojevi.addItem("+880");
268 listaPozivniBrojevi.addItem("+886");
269 listaPozivniBrojevi.addItem("+960");
270 listaPozivniBrojevi.addItem("+961");
271 listaPozivniBrojevi.addItem("+962");
272 listaPozivniBrojevi.addItem("+963");
273 listaPozivniBrojevi.addItem("+964");
274 listaPozivniBrojevi.addItem("+965");
275 listaPozivniBrojevi.addItem("+966");
276 listaPozivniBrojevi.addItem("+967");
277 listaPozivniBrojevi.addItem("+968");
278 listaPozivniBrojevi.addItem("+970");
279 listaPozivniBrojevi.addItem("+971");
280 listaPozivniBrojevi.addItem("+972");
281 listaPozivniBrojevi.addItem("+973");
282 listaPozivniBrojevi.addItem("+974");
283 listaPozivniBrojevi.addItem("+975");
284 listaPozivniBrojevi.addItem("+976");
285 listaPozivniBrojevi.addItem("+977");
286 listaPozivniBrojevi.addItem("+992");
287 listaPozivniBrojevi.addItem("+993");
288 listaPozivniBrojevi.addItem("+994");
289 listaPozivniBrojevi.addItem("+995");
290 listaPozivniBrojevi.addItem("+996");
291 listaPozivniBrojevi.addItem("+998");
292 listaPozivniBrojevi.setSelectedItem("+382");
293 }
294
295 public static Vector<Kupac> selectKupac(Connection dbConnetion) throws SQLException {
296 PreparedStatement preparedStatement = null;
297 Vector<Kupac> rezultatiPretrage = new Vector<Kupac>();
298 String selectSQL = "SELECT * FROM `kupac`";
299 try {
300 preparedStatement = (PreparedStatement) dbConnetion.prepareStatement(selectSQL);
301 ResultSet rs = preparedStatement.executeQuery();
302 while (rs.next()) {
303 int id = rs.getInt("id");
304 String ime = rs.getString("ime");
305 String prezime = rs.getString("prezime");
306 String brTelefona = rs.getString("brojTelefona");
307 String eMail = rs.getString("eMail");
308 rezultatiPretrage.add(new Kupac(id, ime, prezime, brTelefona, eMail));
309 }
310 } catch (Exception e) {
311 System.err.println(e.getMessage());
312 } finally {
313 if (preparedStatement != null) {
314 preparedStatement.close();
315 }
316 }
317 return rezultatiPretrage;
318 }
319
320 public static void instertKupac(Connection dbConnetion, Kupac kupac) throws SQLException {
321 PreparedStatement preparedStatement = null;
322 String selectSQL = "INSERT INTO kupac (ime, prezime, brojTelefona, eMail) values (?,?,?,?)";
323 try {
324 preparedStatement = (PreparedStatement) dbConnetion.prepareStatement(selectSQL);
325 preparedStatement.setString(1, kupac.getIme());
326 preparedStatement.setString(2, kupac.getPrezime());
327 preparedStatement.setString(3, kupac.getBrojTelefona());
328 preparedStatement.setString(4, kupac.geteMail());
329 preparedStatement.execute();
330 } catch (Exception e) {
331 System.err.println(e.getMessage());
332 } finally {
333 if (preparedStatement != null) {
334 preparedStatement.close();
335 }
336 }
337 }
338
339 public static Vector<Artikal> selectArtikal(Connection dbConnetion) throws SQLException {
340 PreparedStatement preparedStatement = null;
341 Vector<Artikal> rezultatiPretrage = new Vector<Artikal>();
342 String selectSQL = "SELECT * FROM `artikal`";
343 try {
344 preparedStatement = (PreparedStatement) dbConnetion.prepareStatement(selectSQL);
345 ResultSet rs = preparedStatement.executeQuery();
346 while (rs.next()) {
347 int id = rs.getInt("id");
348 String naziv = rs.getString("naziv");
349 float cijena = rs.getFloat("cijena");
350 rezultatiPretrage.add(new Artikal(id, naziv, cijena));
351 }
352 } catch (Exception e) {
353 System.err.println(e.getMessage());
354 } finally {
355 if (preparedStatement != null) {
356 preparedStatement.close();
357 }
358 }
359 return rezultatiPretrage;
360 }
361
362 public static void insertArtikal(Connection dbConnetion, Artikal artikal) throws SQLException {
363 PreparedStatement preparedStatement = null;
364 String selectSQL = "INSERT INTO artikal (naziv, cijena) values (?,?)";
365 try {
366 preparedStatement = (PreparedStatement) dbConnetion.prepareStatement(selectSQL);
367 preparedStatement.setString(1, artikal.getNaziv());
368 preparedStatement.setString(2, "" + artikal.getCijena());
369 preparedStatement.execute();
370 } catch (Exception e) {
371 System.err.println(e.getMessage());
372 } finally {
373 if (preparedStatement != null) {
374 preparedStatement.close();
375 }
376 }
377 }
378
379 public static Vector<Nabavka> selectNabavka(Connection dbConnetion) throws SQLException {
380 PreparedStatement preparedStatement = null;
381 Vector<Nabavka> rezultatiPretrage = new Vector<Nabavka>();
382 String selectSQL = "SELECT * FROM `nabavka`";
383 try {
384 preparedStatement = (PreparedStatement) dbConnetion.prepareStatement(selectSQL);
385 ResultSet rs = preparedStatement.executeQuery();
386 while (rs.next()) {
387 int id = rs.getInt("id");
388 int id_kupca = rs.getInt("id_kupca");
389 int id_artikla = rs.getInt("id_artikal");
390 Date vrijeme = rs.getDate("vrijeme");
391 int kolicina = rs.getInt("kolicina");
392 float taksa = rs.getFloat("taksa");
393 float cijena = rs.getFloat("cijena");
394 float ukupno = rs.getFloat("ukupno");
395 rezultatiPretrage.add(new Nabavka(id, id_kupca, id_artikla, vrijeme, kolicina, taksa, cijena, ukupno));
396 }
397 } catch (Exception e) {
398 System.err.println(e.getMessage());
399 } finally {
400 if (preparedStatement != null) {
401 preparedStatement.close();
402 }
403 }
404 return rezultatiPretrage;
405 }
406
407 public static void insertNabavka(Connection dbConnetion, Nabavka nabavka) throws SQLException {
408 PreparedStatement preparedStatement = null;
409 String selectSQL = "INSERT INTO nabavka (id_kupca, id_artikal, vrijeme, kolicina, taksa, cijena, ukupno) values (?,?,?,?,?,?,?)";
410 try {
411 preparedStatement = (PreparedStatement) dbConnetion.prepareStatement(selectSQL);
412 preparedStatement.setString(1, "" + nabavka.getId_Kupca());
413 preparedStatement.setString(2, "" + nabavka.getId_Artikal());
414 preparedStatement.setString(3,
415 "" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(nabavka.getVrijeme()));
416 preparedStatement.setString(4, "" + nabavka.getKolicina());
417 preparedStatement.setString(5, "" + nabavka.getTaksa());
418 preparedStatement.setString(6, "" + nabavka.getCijena());
419 preparedStatement.setString(7, "" + nabavka.getUkupno());
420 preparedStatement.execute();
421 } catch (Exception e) {
422 System.err.println(e.getMessage());
423 } finally {
424 if (preparedStatement != null) {
425 preparedStatement.close();
426 }
427 }
428 }
429
430 public static void popuniKupceiArtikle(Connection dcConnetion, JComboBox<String> lista1, JComboBox<String> lista2,
431 JComboBox<String> lista3) throws SQLException {
432 lista1.removeAllItems();
433 lista2.removeAllItems();
434 lista3.removeAllItems();
435 for (int i = 0; i < selectArtikal(dcConnetion).size(); i++) {
436 int id = selectArtikal(dcConnetion).elementAt(i).getId();
437 String naziv = selectArtikal(dcConnetion).elementAt(i).getNaziv();
438 float cijena = selectArtikal(dcConnetion).elementAt(i).getCijena();
439 String linija = "ID: " + id + " | " + naziv + " | CIJENA: " + cijena + "€";
440 lista1.addItem(linija);
441 }
442 for (int i = 0; i < selectKupac(dcConnetion).size(); i++) {
443 int id = selectKupac(dcConnetion).elementAt(i).getId();
444 String ime = selectKupac(dcConnetion).elementAt(i).getIme();
445 String prezime = selectKupac(dcConnetion).elementAt(i).getPrezime();
446 String linija = "ID: " + id + " | " + ime + " " + prezime;
447 lista2.addItem(linija);
448 }
449 for (int i = 1; i <= 10; i++) {
450 lista3.addItem("" + i);
451 }
452 }
453
454 /**
455 * Launch the application.
456 *
457 * @throws SQLException
458 * @throws ClassNotFoundException
459 */
460 public static void main(String[] args) throws ClassNotFoundException, SQLException {
461
462 EventQueue.invokeLater(new Runnable() {
463 public void run() {
464 try {
465 Main window = new Main();
466 window.frmDcc.setVisible(true);
467 } catch (Exception e) {
468 e.printStackTrace();
469 }
470 }
471 });
472 }
473
474 /**
475 * Create the application.
476 *
477 * @throws SQLException
478 * @throws ClassNotFoundException
479 */
480 public Main() throws ClassNotFoundException, SQLException {
481 initialize();
482 }
483
484 /**
485 * @throws SQLException
486 * @throws ClassNotFoundException
487 */
488 private void initialize() throws ClassNotFoundException, SQLException {
489 Connection connection = returnConnection();
490 frmDcc = new JFrame();
491 dialog = new JFrame();
492 dialog.setTitle("Admin Dialog:");
493 dialog.setBounds(100, 100, 400, 120);
494 dialog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
495 frmDcc.setTitle("DCC");
496 frmDcc.setBounds(100, 100, 450, 300);
497 frmDcc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
498
499 JMenuBar menuBar = new JMenuBar();
500 frmDcc.setJMenuBar(menuBar);
501
502 JMenu mnDodaj = new JMenu("Dodaj");
503 menuBar.add(mnDodaj);
504
505 JMenuItem mntmArtikal = new JMenuItem("Artikal");
506 mnDodaj.add(mntmArtikal);
507
508 JMenuItem mntmKupca = new JMenuItem("Kupca");
509 mnDodaj.add(mntmKupca);
510
511 JMenuItem mntmNabavku = new JMenuItem("Nabavku");
512 mnDodaj.add(mntmNabavku);
513
514 JMenu mnPretrazi = new JMenu("Pretrazi");
515 menuBar.add(mnPretrazi);
516
517 JPanel dKupacPanel = new JPanel();
518 dKupacPanel.setLayout(null);
519 dKupacPanel.setBackground(new Color(122, 138, 153));
520
521 JLabel lblStatus = new JLabel("Status:");
522 lblStatus.setForeground(new Color(0, 0, 139));
523 lblStatus.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
524 lblStatus.setBounds(2, 2, 1000, 16);
525
526 JLabel lblIme = new JLabel("Ime i Prezime:");
527 lblIme.setForeground(new Color(0, 0, 139));
528 lblIme.setFont(new Font("Arial", Font.BOLD, 17));
529 lblIme.setBounds(45, 35, 140, 16);
530 dKupacPanel.add(lblIme);
531
532 JLabel lblEmail = new JLabel("E-Mail:");
533 lblEmail.setForeground(new Color(0, 0, 139));
534 lblEmail.setFont(new Font("Arial", Font.BOLD, 17));
535 lblEmail.setBounds(102, 65, 60, 16);
536 dKupacPanel.add(lblEmail);
537
538 poljeImeKupca = new JTextField();
539 poljeImeKupca.setColumns(10);
540 poljeImeKupca.setBounds(164, 32, 87, 20);
541 dKupacPanel.add(poljeImeKupca);
542
543 poljeEmail = new JTextField();
544 poljeEmail.setColumns(10);
545 poljeEmail.setBounds(164, 62, 197, 22);
546 dKupacPanel.add(poljeEmail);
547
548 JLabel lblBrojTelefona = new JLabel("Broj Telefona:");
549 lblBrojTelefona.setForeground(new Color(0, 0, 139));
550 lblBrojTelefona.setFont(new Font("Arial", Font.BOLD, 17));
551 lblBrojTelefona.setBounds(45, 95, 117, 16);
552 dKupacPanel.add(lblBrojTelefona);
553
554 JButton btnDodajKupca = new JButton("DODAJ KUPCA");
555 btnDodajKupca.setForeground(new Color(0, 0, 128));
556 btnDodajKupca.setFont(new Font("Arial", Font.BOLD, 13));
557 btnDodajKupca.setBackground(new Color(122, 138, 153));
558 btnDodajKupca.setBounds(144, 150, 153, 25);
559 dKupacPanel.add(btnDodajKupca);
560
561 poljeBrojTelefona = new JTextField();
562 poljeBrojTelefona.setColumns(10);
563 poljeBrojTelefona.setBounds(244, 92, 117, 22);
564 dKupacPanel.add(poljeBrojTelefona);
565
566 listaPozivniBrojevi = new JComboBox<String>();
567 listaPozivniBrojevi.setBounds(164, 92, 60, 22);
568 dKupacPanel.add(listaPozivniBrojevi);
569
570 poljePrezimeKupca = new JTextField();
571 poljePrezimeKupca.setColumns(10);
572 poljePrezimeKupca.setBounds(263, 32, 98, 20);
573 dKupacPanel.add(poljePrezimeKupca);
574
575 JPanel dNabavkuPanel = new JPanel();
576 dNabavkuPanel.setLayout(null);
577 dNabavkuPanel.setBackground(new Color(122, 138, 153));
578
579 JLabel lblKupac = new JLabel("Kupac:");
580 lblKupac.setForeground(new Color(0, 0, 139));
581 lblKupac.setFont(new Font("Arial", Font.BOLD, 17));
582 lblKupac.setBounds(188, 20, 77, 16);
583 dNabavkuPanel.add(lblKupac);
584
585 JLabel lblProizvod = new JLabel("Artikal:");
586 lblProizvod.setForeground(new Color(0, 0, 139));
587 lblProizvod.setFont(new Font("Arial", Font.BOLD, 17));
588 lblProizvod.setBounds(188, 77, 117, 16);
589 dNabavkuPanel.add(lblProizvod);
590
591 JLabel lblKolicina = new JLabel("Kolicina:");
592 lblKolicina.setForeground(new Color(0, 0, 139));
593 lblKolicina.setFont(new Font("Arial", Font.BOLD, 17));
594 lblKolicina.setBounds(117, 135, 87, 16);
595 dNabavkuPanel.add(lblKolicina);
596
597 JLabel lblUkupno = new JLabel("UKUPNO:");
598 lblUkupno.setForeground(new Color(0, 0, 139));
599 lblUkupno.setFont(new Font("Arial", Font.BOLD, 17));
600 lblUkupno.setBounds(236, 135, 103, 16);
601 dNabavkuPanel.add(lblUkupno);
602
603 JButton btnNaruci = new JButton("NARUCI");
604 btnNaruci.setForeground(new Color(0, 0, 128));
605 btnNaruci.setFont(new Font("Arial", Font.BOLD, 13));
606 btnNaruci.setBackground(new Color(122, 138, 153));
607 btnNaruci.setBounds(141, 193, 153, 25);
608 dNabavkuPanel.add(btnNaruci);
609
610 JComboBox<String> listaKolicina = new JComboBox<String>();
611 listaKolicina.setBounds(119, 158, 60, 22);
612 dNabavkuPanel.add(listaKolicina);
613
614 JComboBox<String> listaArtikala = new JComboBox<String>();
615 listaArtikala.setBounds(45, 100, 350, 22);
616 dNabavkuPanel.add(listaArtikala);
617
618 JComboBox<String> listaKupaca = new JComboBox<String>();
619 listaKupaca.setBounds(45, 42, 350, 22);
620 dNabavkuPanel.add(listaKupaca);
621
622 JPanel dArtikalPanel = new JPanel();
623 dArtikalPanel.setBackground(new Color(122, 138, 153));
624 dArtikalPanel.setLayout(null);
625
626 JLabel lblN = new JLabel("Naziv Artikla:");
627 lblN.setBounds(164, 28, 112, 20);
628 lblN.setForeground(new Color(0, 0, 139));
629 lblN.setFont(new Font("Arial", Font.BOLD, 17));
630 dArtikalPanel.add(lblN);
631
632 JLabel lblCijenaArtikla = new JLabel("Cijena Artikla:");
633 lblCijenaArtikla.setBounds(159, 102, 117, 20);
634 lblCijenaArtikla.setForeground(new Color(0, 0, 139));
635 lblCijenaArtikla.setFont(new Font("Arial", Font.BOLD, 17));
636 dArtikalPanel.add(lblCijenaArtikla);
637
638 poljeNazivArtikla = new JTextField();
639 poljeNazivArtikla.setBounds(146, 48, 142, 22);
640 dArtikalPanel.add(poljeNazivArtikla);
641 poljeNazivArtikla.setColumns(10);
642
643 JLabel label = new JLabel("\u20AC");
644 label.setBounds(276, 122, 17, 20);
645 label.setForeground(new Color(0, 0, 139));
646 label.setFont(new Font("Arial", Font.BOLD, 17));
647 dArtikalPanel.add(label);
648
649 JButton btnDodajArtikal = new JButton("DODAJ ARTIKAL");
650 btnDodajArtikal.setBounds(146, 168, 142, 22);
651 btnDodajArtikal.setFont(new Font("Arial", Font.BOLD, 13));
652 btnDodajArtikal.setForeground(new Color(0, 0, 128));
653 btnDodajArtikal.setBackground(new Color(122, 138, 153));
654 dArtikalPanel.add(btnDodajArtikal);
655
656 poljeCijenaArtikla = new JTextField();
657 poljeCijenaArtikla.setColumns(10);
658 poljeCijenaArtikla.setBounds(146, 122, 127, 22);
659 dArtikalPanel.add(poljeCijenaArtikla);
660
661 JPanel adminPanel = new JPanel();
662 adminPanel.setBackground(new Color(122, 138, 153));
663 adminPanel.setLayout(null);
664
665 JLabel lblPw = new JLabel("PW:");
666 lblPw.setForeground(new Color(0, 0, 139));
667 lblPw.setFont(new Font("Arial", Font.BOLD, 17));
668 lblPw.setBounds(97, 32, 42, 16);
669 adminPanel.add(lblPw);
670
671 passwordField = new JPasswordField();
672 passwordField.setBounds(135, 30, 105, 22);
673 adminPanel.add(passwordField);
674
675 JButton btnLogin = new JButton("LOGIN");
676 btnLogin.setForeground(new Color(0, 0, 128));
677 btnLogin.setFont(new Font("Arial", Font.BOLD, 13));
678 btnLogin.setBackground(new Color(122, 138, 153));
679 btnLogin.setBounds(244, 29, 80, 25);
680 adminPanel.add(btnLogin);
681 frmDcc.getContentPane().add(dNabavkuPanel, BorderLayout.CENTER);
682 btnLogin.addActionListener(new ActionListener() {
683 int i = 3;
684
685 public void actionPerformed(ActionEvent arg0) {
686 String pw = "";
687 for (int i = 0; i < passwordField.getPassword().length; i++) {
688 pw = pw + passwordField.getPassword()[i];
689 }
690 if (pw.equals("pussyslayer")) {
691 dialog.setVisible(false);
692 frmDcc.setVisible(true);
693
694 frmDcc.getContentPane().setVisible(false);
695 frmDcc.setContentPane(dArtikalPanel);
696 frmDcc.getContentPane().add(lblStatus);
697 lblStatus.setText("Status:");
698 } else {
699 passwordField.setText("");
700 if (i == 1) {
701 lblStatus.setText("Status: Netacna sifra, imate jos " + i + " pokusaj");
702 }
703 if (i == 2 || i == 3) {
704 lblStatus.setText("Status: Netacna sifra, imate jos " + i + " pokusaja");
705 }
706 if (i == 0) {
707 dialog.setVisible(false);
708 }
709 i--;
710 }
711 }
712 });
713 btnDodajArtikal.addActionListener(new ActionListener() {
714 public void actionPerformed(ActionEvent e) {
715 boolean allGood = true;
716 try {
717 for (int i = 0; i < selectArtikal(connection).size(); i++) {
718 if (poljeCijenaArtikla.getText().equals("") || poljeNazivArtikla.getText().equals("")) {
719 lblStatus.setText("Status: Morate popuniti sva polja");
720 allGood = false;
721 break;
722 }
723 if (selectArtikal(connection).elementAt(i).getNaziv()
724 .equalsIgnoreCase(poljeNazivArtikla.getText())) {
725 lblStatus.setText("Status: Vec postoji artikal sa tim imenom");
726 allGood = false;
727 break;
728 }
729 if (!poljeCijenaArtikla.getText().toString().matches("([0-9]*)\\.([0-9]*)")
730 && !poljeCijenaArtikla.getText().toString().matches("[0-9]+")) {
731 lblStatus.setText("Status: Broj ne smije sadrzati nista osim cifara i tacke");
732 allGood = false;
733 break;
734 }
735 }
736 if (allGood == true) {
737 insertArtikal(connection, new Artikal(poljeNazivArtikla.getText(),
738 Float.parseFloat(poljeCijenaArtikla.getText())));
739 poljeNazivArtikla.setText("");
740 poljeCijenaArtikla.setText("");
741 lblStatus.setText("Status: Uspjesno ste dodali artikal");
742 }
743 } catch (SQLException es) {
744 es.printStackTrace();
745 }
746 }
747 });
748 btnNaruci.addActionListener(new ActionListener() {
749 public void actionPerformed(ActionEvent e) {
750 try {
751 int id_kupca = listaKupaca.getSelectedIndex() + 1;
752 int id_artikla = listaArtikala.getSelectedIndex() + 1;
753 int kolicina = listaKolicina.getSelectedIndex() + 1;
754 Date vrijeme = Calendar.getInstance().getTime();
755 String imeKupca = null;
756 String imeArtikla = null;
757 String prezimeKupca = null;
758 String email = null;
759 float cijena = 0;
760 float taksa = 0;
761 float ukupno = 0;
762 for (int i = 0; i < selectArtikal(connection).size(); i++) {
763 if (id_artikla == selectArtikal(connection).elementAt(i).getId()) {
764 cijena = selectArtikal(connection).elementAt(i).getCijena();
765 imeArtikla = selectArtikal(connection).elementAt(i).getNaziv();
766 break;
767 }
768 }
769 for (int i = 0; i < selectKupac(connection).size(); i++) {
770 if (id_kupca == selectKupac(connection).elementAt(i).getId()) {
771 email = selectKupac(connection).elementAt(i).geteMail();
772 imeKupca = selectKupac(connection).elementAt(i).getIme();
773 prezimeKupca = selectKupac(connection).elementAt(i).getPrezime();
774 break;
775 }
776 }
777 if ((cijena * kolicina) <= 10) {
778 taksa = 1;
779 } else {
780 taksa = (float) ((cijena * kolicina) * 0.1);
781 }
782 ukupno = cijena * kolicina + taksa;
783 Nabavka nabavka = new Nabavka(id_kupca, id_artikla, vrijeme, kolicina, taksa, cijena, ukupno);
784 insertNabavka(connection, nabavka);
785 int idd = selectNabavka(connection).elementAt(selectNabavka(connection).size() - 1).getId();
786 String tekst = "Pozdrav " + imeKupca
787 + ",\nVasa narudzba je bila uspjesna. Slijedi Vasa priznanica:\n\nID: " + idd + "\nVrijeme: "
788 + vrijeme + "\nIme i Prezime kupca: " + imeKupca + " " + prezimeKupca + " [ID:" + id_kupca
789 + "]\nNaziv Artikla: " + imeArtikla + " [ID:" + id_artikla + "]\nKolicina: " + kolicina
790 + "\nCijena: " + cijena + "*" + kolicina + "+" + taksa + " = " + ukupno + "\n";
791 sendEmail("ddcservices.noReply", "ddcservices1313", email, "","[DDC] Naudzba (" + new SimpleDateFormat("dd.MMM yyyy").format(vrijeme) + ")", tekst);
792 lblStatus.setText("Status: Nabavka uspjesno poslata");
793 listaArtikala.setSelectedIndex(0);
794 listaKolicina.setSelectedIndex(0);
795 listaKupaca.setSelectedIndex(0);
796 poljeUkupno.setText("10€");
797 } catch (SQLException | MessagingException e1) {
798 // TODO Auto-generated catch block
799 e1.printStackTrace();
800 }
801 }
802 });
803 btnDodajKupca.addActionListener(new ActionListener() {
804
805 public void actionPerformed(ActionEvent arg0) {
806 boolean allGood = true;
807 try {
808 String brtel = "";
809 for (int i = 0; i < selectKupac(connection).size(); i++) {
810 if (poljeBrojTelefona.getText().equals("") || poljeEmail.getText().equals("")
811 || poljeImeKupca.getText().equals("") || poljePrezimeKupca.getText().equals("")) {
812 lblStatus.setText("Status: Morate popuniti sva polja");
813 allGood = false;
814 ;
815 break;
816 }
817 brtel = listaPozivniBrojevi.getSelectedItem().toString() + "" + poljeBrojTelefona.getText();
818 if (selectKupac(connection).elementAt(i).geteMail().equals(poljeEmail.getText())
819 || brtel.equals(selectKupac(connection).elementAt(i).getBrojTelefona())) {
820
821 lblStatus.setText("Status: Vec postoji kupac sa tim e-mailom/brojem telefona");
822 allGood = false;
823 break;
824 }
825 if (!poljeBrojTelefona.getText().matches("[0-9]+") && !poljeBrojTelefona.getText().equals("")) {
826 lblStatus.setText("Status: Broj ne smije sadrzati nista osim cifara");
827 allGood = false;
828 break;
829 }
830 if (!poljeImeKupca.getText().matches("[a-zA-Z]+")
831 || !poljePrezimeKupca.getText().matches("[a-zA-Z]+")) {
832 lblStatus.setText("Status: Ime/Prezime smije imati slova u sebi");
833 allGood = false;
834 break;
835 }
836 if (!poljeEmail.getText().contains("@")) {
837 lblStatus.setText("Status: E-Mail nije ispravan");
838 allGood = false;
839 break;
840 }
841 }
842 if (allGood == true) {
843 instertKupac(connection, new Kupac(poljeImeKupca.getText(), poljePrezimeKupca.getText(), brtel,
844 poljeEmail.getText()));
845 lblStatus.setText("Status: Uspjesno ste dodali korisnika");
846 poljeBrojTelefona.setText("");
847 poljeEmail.setText("");
848 poljeImeKupca.setText("");
849 poljePrezimeKupca.setText("");
850 listaPozivniBrojevi.setSelectedItem("+382");
851 }
852 } catch (SQLException e) {
853 e.printStackTrace();
854 }
855 }
856 });
857
858 mntmKupca.addActionListener(new ActionListener() {
859 public void actionPerformed(ActionEvent arg0) {
860 lblStatus.setText("Status:");
861 frmDcc.getContentPane().setVisible(false);
862 frmDcc.setContentPane(dKupacPanel);
863 frmDcc.getContentPane().add(lblStatus);
864 }
865 });
866 mntmNabavku.addActionListener(new ActionListener() {
867 public void actionPerformed(ActionEvent arg0) {
868 try {
869 popuniKupceiArtikle(connection, listaArtikala, listaKupaca, listaKolicina);
870
871 lblStatus.setText("Status:");
872 frmDcc.getContentPane().setVisible(false);
873 frmDcc.setContentPane(dNabavkuPanel);
874 frmDcc.getContentPane().add(lblStatus);
875 } catch (SQLException e) {
876 e.printStackTrace();
877 }
878 }
879 });
880 mntmArtikal.addActionListener(new ActionListener() {
881 public void actionPerformed(ActionEvent arg0) {
882 lblStatus.setText("Status:");
883 dialog.setVisible(true);
884 frmDcc.setVisible(false);
885
886 dialog.getContentPane().setVisible(false);
887 dialog.setContentPane(adminPanel);
888 dialog.getContentPane().add(lblStatus);
889 }
890 });
891 poljeUkupno = new JTextField("10€");
892 poljeUkupno.setFont(new Font("Arial Black", Font.BOLD, 13));
893 poljeUkupno.setForeground(new Color(0, 0, 139));
894 poljeUkupno.setEditable(false);
895 poljeUkupno.setBounds(236, 158, 69, 22);
896 dNabavkuPanel.add(poljeUkupno);
897 poljeUkupno.setColumns(10);
898 listaArtikala.addActionListener(new ActionListener() {
899 public void actionPerformed(ActionEvent arg0) {
900 try {
901 for (int i = 0; i < selectArtikal(connection).size(); i++) {
902
903 if (selectArtikal(connection).elementAt(i).getId() == (listaArtikala.getSelectedIndex() + 1)) {
904 float cijena = selectArtikal(connection).elementAt(i).getCijena()
905 * (listaKolicina.getSelectedIndex() + 1);
906 if (cijena <= 10) {
907 cijena = cijena + 1;
908 } else {
909 cijena = (float) (cijena * 1.1);
910 }
911 poljeUkupno.setText("" + cijena + "€");
912 }
913 }
914 } catch (SQLException e) {
915 // TODO Auto-generated catch block
916 e.printStackTrace();
917 }
918 }
919 });
920 listaKolicina.addActionListener(new ActionListener() {
921 public void actionPerformed(ActionEvent arg0) {
922 try {
923 for (int i = 0; i < selectArtikal(connection).size(); i++) {
924
925 if (selectArtikal(connection).elementAt(i).getId() == (listaArtikala.getSelectedIndex() + 1)) {
926 float cijena = selectArtikal(connection).elementAt(i).getCijena()
927 * (listaKolicina.getSelectedIndex() + 1);
928 if (cijena <= 10) {
929 cijena = cijena + 1;
930 } else {
931 cijena = (float) (cijena * 1.1);
932 }
933 poljeUkupno.setText("" + cijena + "€");
934 }
935 }
936 } catch (SQLException e) {
937 // TODO Auto-generated catch block
938 e.printStackTrace();
939 }
940 }
941 });
942 dNabavkuPanel.add(lblStatus);
943 popuniListuPozivnihBrojeva();
944 popuniKupceiArtikle(connection, listaArtikala, listaKupaca, listaKolicina);
945 }
946}