From 0c61afefe167868b70d46e9bf79e0700e7fab3b9 Mon Sep 17 00:00:00 2001 From: MohamedAmineZarga Date: Tue, 22 Feb 2022 22:32:32 +0100 Subject: [PATCH 01/10] Metier1 --- .gitignore | 3 +- metaFinal/nbproject/genfiles.properties | 5 + metaFinal/src/Config/Metatrip.java | 235 ++++++++++++++++-- metaFinal/src/entities/EtatDispo.java | 11 + metaFinal/src/entities/voyage_organise.java | 10 +- metaFinal/src/services/IService.java | 2 + .../services/evenement/Serviceevenement.java | 58 ++++- .../evenement/Servicereservation_event.java | 2 + metaFinal/src/services/user/UserService.java | 34 +++ .../voyage_organise/VoyageORG_Service.java | 2 +- metaFinal/src/view/FXML.fxml | 11 + metaFinal/src/view/FXMLController.java | 20 ++ metaFinal/src/view/adminPanel/UserList.fxml | 36 +++ .../view/adminPanel/UserListController.java | 31 +++ metaFinal/src/view/img/logo_meta.png | Bin 0 -> 13529 bytes metaFinal/src/view/login_signup/login.fxml | 61 +++++ metatrip.sql | 56 ++++- 17 files changed, 534 insertions(+), 43 deletions(-) create mode 100644 metaFinal/src/entities/EtatDispo.java create mode 100644 metaFinal/src/view/FXML.fxml create mode 100644 metaFinal/src/view/FXMLController.java create mode 100644 metaFinal/src/view/adminPanel/UserList.fxml create mode 100644 metaFinal/src/view/adminPanel/UserListController.java create mode 100644 metaFinal/src/view/img/logo_meta.png create mode 100644 metaFinal/src/view/login_signup/login.fxml diff --git a/.gitignore b/.gitignore index 62b3073..348a99d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /metaFinal/nbproject/private/ -/metaFinal/build/ \ No newline at end of file +/metaFinal/build/ +/metaFinal/dist/ \ No newline at end of file diff --git a/metaFinal/nbproject/genfiles.properties b/metaFinal/nbproject/genfiles.properties index b9cca43..c4dfe8b 100644 --- a/metaFinal/nbproject/genfiles.properties +++ b/metaFinal/nbproject/genfiles.properties @@ -4,5 +4,10 @@ build.xml.stylesheet.CRC32=8064a381@1.75.2.48 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=10b9b6da +<<<<<<< HEAD +nbproject/build-impl.xml.script.CRC32=20ce334f +nbproject/build-impl.xml.stylesheet.CRC32=05530350@1.79.1.48 +======= nbproject/build-impl.xml.script.CRC32=aa827774 nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 +>>>>>>> origin/zarga diff --git a/metaFinal/src/Config/Metatrip.java b/metaFinal/src/Config/Metatrip.java index b996f8f..76c1e5d 100644 --- a/metaFinal/src/Config/Metatrip.java +++ b/metaFinal/src/Config/Metatrip.java @@ -1,7 +1,12 @@ package Config; - -import entities.EtatVoyage; +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.stage.Stage; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.layout.BorderPane; +import entities.EtatDispo; import entities.Voiture; import entities.Voyage_virtuel; import entities.abonnement; @@ -17,6 +22,7 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.sql.Date; +import javafx.application.Application; import services.abonnement.abonnement_Service; import services.evenement.Serviceevenement; import services.evenement.Servicereservation_event; @@ -44,15 +50,197 @@ * * @author FLAM */ -public class Metatrip { +public class Metatrip extends Application { /** * @param args the command line arguments */ + + + + + @Override + public void start(Stage primaryStage) { + try { + Parent root = FXMLLoader.load(getClass().getResource("/view/adminPanel/UserList.fxml")); + Scene scene = new Scene(root); + //scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); + primaryStage.setScene(scene); + primaryStage.show(); + } catch(Exception e) { + e.printStackTrace(); + } + } + + + + public static void main(String[] args) throws Exception { // TODO code application logic here Datasource data = Datasource.getInstance(); Datasource data2 = Datasource.getInstance(); + System.out.println(data.hashCode() + "-" + data2.hashCode()); +// +// UserService us = new UserService(); +// Reservation_Voyage_Service rvs= new Reservation_Voyage_Service(); +// +// voyageService vs= new voyageService(); +// +// VoyageORG_Service vos = new VoyageORG_Service(); +// abonnement_Service a = new abonnement_Service(); +// VoyageVRT_Service vov = new VoyageVRT_Service(); +// LoginAndSignupService loginSignup = new LoginAndSignupService(); +// +// HotelCRUD hc=new HotelCRUD(); +// String xx="2010-09-11"; +// String xx2="2011-10-01"; +// Date date=Date.valueOf(xx); +// Date date2=Date.valueOf(xx2); +// +// Date datedebut = Date.valueOf(xx); +// Date datefinal = Date.valueOf(xx2 );//converting string into sql date +// voyage v2024 = new voyage(2024, "Madrid", "c://madrid.png"); +// +// abonnement abon1 = new abonnement(2, "ss", 90, datedebut, datefinal, "Etat", 1); +// abonnement abon2 = new abonnement("ss", 90, datedebut, datefinal, "Etat", 1); +// +// // a.ajouter(abon1); +// Voyage_virtuel vov2 = new Voyage_virtuel("Videsso", "Image", abon1, v2024); +// //vov.afficher(); +// //vov.ajouter(vov2); +// // vov.modifier(3,vov2); +// // vov.supprimer(3); +// +// user u1 = new user(9999, 5866, "dafdouf", "zakzouk", 5895, "zak@live.fr", "0000", "image",date2); +// user u8 = new user(811,199525, "ssss", "cxx", 2568435, "nex@live.fr", doHashing("12345678"), "image",date2); +// us.ajouter(u8); +// //us.supprimer(810); +// user u3 = new user(5866, "ges", "nay", 5895, "zak@live.fr", "0000", "image",date2); +// user u4 = new user(58656, "khaldi", "imen", 5895, "zak@live.fr", "0000", "image",date2); +// +// voyage v = new voyage(501,"tounis", "c://berlin.png"); +// voyage chrf = new voyage(967,"istanbul", "c://antalya.png"); +// voyage v1 = new voyage( 605,"gafsa", "c://beja.png"); +// //vs.ajout(v1); +// +// //vs.ajout(v1); +// // System.out.println(vs.afficher()); +// // System.out.println( v1.getPays()); +// // System.out.println(v.getIdv()); +// +// //voyage_organise vo2=new voyage_organise(5,50.6f,"Lufthansa",15,5,"torkiya","c://assets"); +// voyage_organise vo3 = new voyage_organise(170.6f, "nexdd", 3,EtatDispo.INDISPO, v1); +// //voyage_organise vo4 = new voyage_organise(10.6f, "flam", 3, v); +// // voyage_organise vom = new voyage_organise(990.6f, "sounay", 3); +// //vos.ajouter(vo3); +// System.out.println("List voyages par date croissante"+ us.VoyageParDates()); +// System.out.println("Le nombre de users est = "+us.nbUsers()); +// +// System.out.println("Le nombre de voyages disponibles est = "+us.nbVoyagesDispo()); +//System.out.println("userByEmail:"+us.getUserByEmail("nex@live.fr")); + String str="2020-09-01"; +// String str2="2050-09-01"; + Date date1=Date.valueOf(str); +// Date date9=Date.valueOf(str2);//converting string into sql date System.out.println(date); +// user u2 = new user(99925, "ssss", "cxx", 2568435, "fares@live.fr", doHashing("12345678"), "image",date9); + // LoginAndSignupService LASS =new LoginAndSignupService(); + //LASS.Signup(u2); + // System.out.println(LASS.login("nex@live.fr", "aaaa")); + // us.ajouter(u1); + // reservation_voyage rv=new reservation_voyage(); + // rv.setIdrv(999); + + /* rv.setDate_depart(date); + rv.setDate_arrivee(date2); + rv.setEtat("Paye"); + + rv.setRef_paiement(1); + rv.setUser(u2); + rv.setVoyage(chrf); */ + + //rvs.ajouter(rv); + //rvs.modifier(10, rv); + //rvs.supprimer(6); + // System.out.println(rvs.afficher()); + + + //System.out.println(vo3.getVoyage()); + + // vos.ajouter(vo4); + //vos.modifier(79, vom); + + //vs.modifier(97,chrf); + //vs.supprimer(360); + + //System.out.println(vos.afficher()); + // System.out.println(vo3.toString()); + + //us.modifier(1,u3); + // System.out.print(p.getId()); + //us.supprimer(4); + //ps.modifier(p); + + // System.out.print("ss"+us.afficher()); +// //System.out.print(loginSignup.login("'zak@live.fr'", "0000")); +// Voiture v99 =new Voiture(95,"220TU120",12,"image","Mercedes"); +// VoitureCRUD VC=new VoitureCRUD(); +// //VC.ajouterVoiture(v99); +// Voiture v98 =new Voiture(3,"220TU120",12,"image","bmw"); +// //VC.modifierVoiture(v98); +// reservation_voiture rhv=new reservation_voiture(); +// Reservation_voiture_Service rvs55= new Reservation_voiture_Service(); +// /* rhv.setChauffeur("mohamed salah"); +// rhv.setPrix_rent((float) 5.5); +// rhv.setTrajet("jerba"); +// rhv.setUser(u2); +// rhv.setVoiture(v99);*/ +// +// user u18 = new user(811,199525, "ssss", "cxx", 2568435, "nex@live.fr", doHashing("12345678"), "image",date2); +// // us.ajouter(u18); +// Voiture v78 =new Voiture(2001,"220TU120",12,"image","bmw"); +// // VC.ajouterVoiture(v78); +// +// reservation_voiture rhv1=new reservation_voiture(5.5f,"cccc","jandouba",u8,v78); + + + + //rvs55.ajouter(rhv1); + // rvs55.modifier(2,rhv1); + //rvs55.supprimer(2); + // rvs55.afficher().toString(); + + +// +// hotel h=new hotel("4 seasons",4,"gammarth"); +// hotel h2=new hotel(12,"gulden tulip",4,"gammarth"); + // hc.ajouterHotel(h2); + // hc.modifierHotel(h2); + // hc.supprimerHotel(h2); +// Reserrvation_Hotel_Service rhs=new Reserrvation_Hotel_Service (); +// +// reservation_hotel rh =new reservation_hotel("single",2,1,2.2f,u8,h2,date1,date9); + // rhs.ajouter(rh); + // rhs.modifier(2, rh); + // rhs.supprimer(2); +// +// System.out.println("les voyages les plus Réservé:"+rvs.ListVoyagePlusRéservé()); +// System.out.println ("le maximum de voyage Réserve est "+rvs.LeMaximumDevoyageReserve()); +// System.out.println ("le minimum de voyage Réserve est "+rvs.LeMinimumevoyageReserve()); +// System.out.println ("la list de voyage Trié selon Prix est "+rvs.listedevoyageTrierParPrix()); + + +// Serviceevenement se = new Serviceevenement() ; +// evenement e = new evenement(2, "hhhuhonl", "c", "7 rue 2938", date1, 12.0f) ; +// evenement e1 = new evenement(4, "aaaaaaa", "c", "7 rue 2938", date1, 120.0f) ; +// //se.ajouter(e1); +// //se.modifier(e); +// // se.supprimer(1); +// // System.out.println(se.afficher()); +// user ux = new user(817,195, "nex", "nex", 256845, "nex@live.fr", "aaaa", "image",date); +// //us.ajouter(ux); +// Servicereservation_event resE=new Servicereservation_event(); +// reservation_event resev=new reservation_event(22,82,e,ux); + // System.out.println(data.hashCode() + "-" + data2.hashCode()); // // UserService us = new UserService(); @@ -112,9 +300,9 @@ public static void main(String[] args) throws Exception { // // System.out.println("Le nombre de voyages disponibles est = "+us.nbVoyagesDispo()); // -String str="2020-09-01"; +// Sring str="2020-09-01"; // String str2="2050-09-01"; - Date date1=Date.valueOf(str); + //Date date1=Date.valueOf(str); // Date date9=Date.valueOf(str2);//converting string into sql date System.out.println(date); // user u2 = new user(99925, "ssss", "cxx", 2568435, "fares@live.fr", doHashing("12345678"), "image",date9); // // LoginAndSignupService LASS =new LoginAndSignupService(); @@ -203,8 +391,15 @@ public static void main(String[] args) throws Exception { // System.out.println ("la list de voyage Trié selon Prix est "+rvs.listedevoyageTrierParPrix()); // // -// Serviceevenement se = new Serviceevenement() ; -evenement e = new evenement(2, "hhhuhonl", "c", "7 rue 2938", date1, 12.0f) ; + + + + + +Serviceevenement see = new Serviceevenement() ; +evenement ex = new evenement(2, "hhhuhonl", "c", "7 rue 2938", date1, 12.0f) ; + System.out.println(see.afficher_par_chanteur(ex.getChanteur())); + // evenement e1 = new evenement(4, "aaaaaaa", "c", "7 rue 2938", date1, 120.0f) ; // //se.ajouter(e1); // //se.modifier(e); @@ -214,23 +409,24 @@ public static void main(String[] args) throws Exception { // //us.ajouter(ux); // Servicereservation_event resE=new Servicereservation_event(); // reservation_event resev=new reservation_event(22,82,e,ux); + //resE.ajout(resev); // resE.modifier(22,resev); //resE.supprimer(22); - + //System.out.println(resE.afficher()); - - - + // GESTION SPONSOR - String xx2="2011-10-01"; - Date date_sp=Date.valueOf(xx2); - sponsor s = new sponsor(25, "Vitalait", 22252718, "amine@zarga.tn", date_sp, 12.0f,e) ; - Servicesponsor ss = new Servicesponsor(); - - ss.ajouter(s); - +// String xx2="2011-10-01"; +// Date date_sp=Date.valueOf(xx2); +// sponsor s = new sponsor(25, "Vitalait", 22252718, "amine@zarga.tn", date_sp, 12.0f,e) ; +// Servicesponsor ss = new Servicesponsor(); +// +// ss.ajouter(s); + + + } @@ -243,7 +439,7 @@ public static String doHashing(String password) { byte[] resultByteArray = messageDigest.digest(); StringBuilder sb = new StringBuilder(); - + for (byte b : resultByteArray) { sb.append(String.format("%02x", b)); } @@ -257,4 +453,5 @@ public static String doHashing(String password) { return ""; } + } \ No newline at end of file diff --git a/metaFinal/src/entities/EtatDispo.java b/metaFinal/src/entities/EtatDispo.java new file mode 100644 index 0000000..21af5b8 --- /dev/null +++ b/metaFinal/src/entities/EtatDispo.java @@ -0,0 +1,11 @@ + +package entities; + +/** + * + * @author FLAM + */ +public enum EtatDispo { + DISPO, + INDISPO +} diff --git a/metaFinal/src/entities/voyage_organise.java b/metaFinal/src/entities/voyage_organise.java index 69f2fb8..0f7bb9c 100644 --- a/metaFinal/src/entities/voyage_organise.java +++ b/metaFinal/src/entities/voyage_organise.java @@ -11,7 +11,7 @@ public class voyage_organise extends voyage{ private String Airline; private int Nb_nuitees; - private EtatVoyage etatVoyage; + private EtatDispo etatVoyage; private voyage voyage; @@ -69,7 +69,7 @@ public String getImage_pays() { return this.getVoyage().getImage_pays(); } - public voyage_organise(int Idvo, float Prix_billet, String Airline, int Nb_nuitees, EtatVoyage etatVoyage, voyage voyage) { + public voyage_organise(int Idvo, float Prix_billet, String Airline, int Nb_nuitees, EtatDispo etatVoyage, voyage voyage) { this.Idvo = Idvo; this.Prix_billet = Prix_billet; this.Airline = Airline; @@ -78,15 +78,15 @@ public voyage_organise(int Idvo, float Prix_billet, String Airline, int Nb_nuite this.voyage = voyage; } - public EtatVoyage getEtatVoyage() { + public EtatDispo getEtatVoyage() { return etatVoyage; } - public void setEtatVoyage(EtatVoyage etatVoyage) { + public void setEtatVoyage(EtatDispo etatVoyage) { this.etatVoyage = etatVoyage; } - public voyage_organise(float Prix_billet, String Airline, int Nb_nuitees, EtatVoyage etatVoyage, voyage voyage) { + public voyage_organise(float Prix_billet, String Airline, int Nb_nuitees, EtatDispo etatVoyage, voyage voyage) { this.Prix_billet = Prix_billet; this.Airline = Airline; this.Nb_nuitees = Nb_nuitees; diff --git a/metaFinal/src/services/IService.java b/metaFinal/src/services/IService.java index d5909d0..0262ace 100644 --- a/metaFinal/src/services/IService.java +++ b/metaFinal/src/services/IService.java @@ -12,5 +12,7 @@ public interface IService { void modifier(int id,T entity); void supprimer(int id); List afficher(); + + } diff --git a/metaFinal/src/services/evenement/Serviceevenement.java b/metaFinal/src/services/evenement/Serviceevenement.java index 6a8167d..0a25eda 100644 --- a/metaFinal/src/services/evenement/Serviceevenement.java +++ b/metaFinal/src/services/evenement/Serviceevenement.java @@ -17,6 +17,7 @@ import java.util.logging.Logger; import services.IService; import Config.Datasource; +import entities.user; import java.sql.Date; import services.user.UserService; /** @@ -25,7 +26,8 @@ */ public class Serviceevenement { - Connection conn; private PreparedStatement pste; + Connection conn; private PreparedStatement pste; private Statement ste; + public Serviceevenement() { conn = Datasource.getInstance().getCnx(); @@ -102,11 +104,55 @@ public List afficher() { return list; } - - - - - + // Affichage par chanteur + public List afficher_par_chanteur(String Chanteur) + { + List listR = new ArrayList<>(); + try { + + String req = "select * from `evenement` where `Chanteur`='"+Chanteur+"';"; + ste = conn.createStatement(); + ResultSet rs = ste.executeQuery(req); + + while(rs.next()){ + + evenement u = new evenement(); + u.setIde(rs.getInt(1)); + u.setChanteur( rs.getString(2)); + + listR.add(u) ; + } + + } catch (SQLException ex) { + Logger.getLogger(Serviceevenement.class.getName()).log(Level.SEVERE, null, ex); + } + return listR; + } + // Affichage par chanteur + public List afficher_par_date(Date date) + { + List listR = new ArrayList<>(); + try { + + String req = "select * from `evenement` where `Chanteur`='"+date+"';"; + ste = conn.createStatement(); + ResultSet rs = ste.executeQuery(req); + + while(rs.next()){ + + evenement u = new evenement(); + u.setIde(rs.getInt(1)); + u.setChanteur( rs.getString(2)); + + listR.add(u) ; + } + + } catch (SQLException ex) { + Logger.getLogger(Serviceevenement.class.getName()).log(Level.SEVERE, null, ex); + } + return listR; + } + } diff --git a/metaFinal/src/services/evenement/Servicereservation_event.java b/metaFinal/src/services/evenement/Servicereservation_event.java index c655202..15f388e 100644 --- a/metaFinal/src/services/evenement/Servicereservation_event.java +++ b/metaFinal/src/services/evenement/Servicereservation_event.java @@ -157,5 +157,7 @@ public List afficher() { } return listr; } + + } diff --git a/metaFinal/src/services/user/UserService.java b/metaFinal/src/services/user/UserService.java index 97e0f84..ff1f852 100644 --- a/metaFinal/src/services/user/UserService.java +++ b/metaFinal/src/services/user/UserService.java @@ -254,6 +254,40 @@ public int nbVoyagesDispo() throws SQLException { } return nb; } + + + public List getUserByEmail (String Email) { + List users = new ArrayList<>(); + + String req = "SELECT * from `user` where Email='"+Email+"';"; + try { + + ste = conn.createStatement(); + ResultSet rs = ste.executeQuery(req); + + while(rs.next()){ + + user u = new user(); + u.setIdu(rs.getInt(1)); + u.setCin( rs.getDouble(2)); + u.setNom(rs.getString(3)); + u.setPrenom(rs.getString(4)); + u.setTel(rs.getDouble(5)); + + u.setEmail( rs.getString(6)); + u.setPassword(rs.getString(7)); + u.setImage(rs.getString(8)); + u.setRole(rs.getInt(9)); + u.setDateNaissance(rs.getDate(10)); + users.add(u) ; + }} + catch (SQLException ex) { + Logger.getLogger(UserService.class.getName()).log(Level.SEVERE, null, ex); + } + + return users; + } + @Override public List VoyageParDates() throws SQLException { diff --git a/metaFinal/src/services/voyage/voyage_organise/VoyageORG_Service.java b/metaFinal/src/services/voyage/voyage_organise/VoyageORG_Service.java index 2c207e2..81a1b74 100644 --- a/metaFinal/src/services/voyage/voyage_organise/VoyageORG_Service.java +++ b/metaFinal/src/services/voyage/voyage_organise/VoyageORG_Service.java @@ -15,7 +15,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import Config.Datasource; -import entities.EtatVoyage; +import entities.EtatDispo; import services.user.UserService; /** diff --git a/metaFinal/src/view/FXML.fxml b/metaFinal/src/view/FXML.fxml new file mode 100644 index 0000000..6986e10 --- /dev/null +++ b/metaFinal/src/view/FXML.fxml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/metaFinal/src/view/FXMLController.java b/metaFinal/src/view/FXMLController.java new file mode 100644 index 0000000..db88e35 --- /dev/null +++ b/metaFinal/src/view/FXMLController.java @@ -0,0 +1,20 @@ +package view; + + +import java.net.URL; +import java.util.ResourceBundle; +import javafx.fxml.Initializable; + +/** + * FXML Controller class + * + * @author FLAM + */ +public class FXMLController implements Initializable { + + @Override + public void initialize(URL url, ResourceBundle rb) { + // TODO + } + +} diff --git a/metaFinal/src/view/adminPanel/UserList.fxml b/metaFinal/src/view/adminPanel/UserList.fxml new file mode 100644 index 0000000..7d507f7 --- /dev/null +++ b/metaFinal/src/view/adminPanel/UserList.fxml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/metaFinal/src/view/adminPanel/UserListController.java b/metaFinal/src/view/adminPanel/UserListController.java new file mode 100644 index 0000000..5df8530 --- /dev/null +++ b/metaFinal/src/view/adminPanel/UserListController.java @@ -0,0 +1,31 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package view.adminPanel; + +import java.net.URL; +import java.util.ResourceBundle; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.TextField; + +/** + * FXML Controller class + * + * @author FLAM + */ +public class UserListController implements Initializable { + @FXML + private TextField id; + + /** + * Initializes the controller class. + */ + @Override + public void initialize(URL url, ResourceBundle rb) { + // TODO + } + +} diff --git a/metaFinal/src/view/img/logo_meta.png b/metaFinal/src/view/img/logo_meta.png new file mode 100644 index 0000000000000000000000000000000000000000..1d663af111bb8373b93a0d2e26094f69af7c7a3d GIT binary patch literal 13529 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 m-X~YC|MUC*LIR$9#}t9uc|Xst literal 0 HcmV?d00001 diff --git a/metaFinal/src/view/login_signup/login.fxml b/metaFinal/src/view/login_signup/login.fxml new file mode 100644 index 0000000..8f6155a --- /dev/null +++ b/metaFinal/src/view/login_signup/login.fxml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +