Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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 domaci;
- import entiteti.Company;
- import entiteti.Komponente;
- import entiteti.Korisnik;
- import entiteti.Kupljeno;
- import entiteti.Premium;
- import entiteti.Skladiste;
- import entiteti.Tip;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.List;
- import javax.persistence.EntityManager;
- import javax.persistence.EntityManagerFactory;
- import javax.persistence.Persistence;
- /**
- *
- * @author Nemanja
- */
- public class Domaci {
- static EntityManagerFactory emf = Persistence.createEntityManagerFactory("DomaciPU");
- static EntityManager em = emf.createEntityManager();
- private static void loggin() throws IOException {
- em.getTransaction().begin();
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String username = null;
- String password=null;
- System.out.println("Unesite username:");
- username = br.readLine();
- System.out.println("Unesite password:");
- password = br.readLine();
- List<Company> kompanija=Company.postoji(username, password, em);
- if(!kompanija.isEmpty()){
- System.out.println("Logovanje kompanijama jos nije omoguceno!");
- return;
- }
- List<Premium> korisnik = Premium.postoji(username, password, em);
- Premium p;
- if(korisnik.isEmpty()){
- System.out.println("Neuspeno logovanje!");
- em.getTransaction().commit();
- return;
- }
- p=korisnik.get(0);
- System.out.println("Uspesno ste se ulogovali!");
- em.getTransaction().commit();
- ulgovanpremium(p);
- }
- private static void trazipotipu(Premium username) throws IOException{
- List <Tip> tipovi=Tip.dohvatisve(em);
- int i=1;
- int b=0;
- Tip tip=null;
- Komponente komponenta=null;
- try{
- if(tipovi.size()==0){
- System.out.println("Nema trenutno tipova u bazi!");
- return;
- }
- System.out.println("Odaberite tip komponente:");
- for(Tip l:tipovi){
- System.out.println("("+i+") "+l.getName());
- i++;
- }
- String opcija=null;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- do{
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- }while(b>tipovi.size());
- tip=tipovi.get(b-1);
- List <Komponente> komp=Komponente.svekomptipa(tip, em);
- i=1;
- for(Komponente sk:komp){
- System.out.println("("+i+") "+sk.getName());
- i++;
- }
- if(komp.size()==0){
- System.out.println("Nema raspolozivih komponenata datog tipa");
- return;
- }
- do{
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- }while(b>komp.size());
- komponenta=komp.get(b-1);
- Skladiste skladiste=null;
- List <Skladiste> skladista=Skladiste.sadrzi(em, komponenta);
- i=1;
- for(Skladiste sk:skladista){
- System.out.println("("+i+") Ime kompanije: "+sk.getUsername().getName()+" kolicina: "+sk.getKolicina()+" cena: "+sk.getCena());
- i++;
- }
- if(skladista.size()==0){
- System.out.println("Nema raspolozivih komponenata u nijednoj kompaniji");
- return;
- }
- do{
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- }while(b>skladista.size());
- skladiste=skladista.get(b-1);
- while(true){
- System.out.println("(1) Rezervisi komponentu!");
- System.out.println("(2) Kupi komponentu!");
- System.out.println("(0) Nazad");
- opcija = br.readLine();
- if(opcija.compareTo("0")==0) return;
- if(opcija.compareTo("1")==0) System.out.println("Nije jos implementirano!");
- if(opcija.compareTo("2")==0){
- System.out.println("Unesite kolicinu koju zelite da kupite:");
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- break;
- }
- }
- if(skladiste.getKolicina()>=b){
- em.getTransaction().begin();
- skladiste.setKolicina(skladiste.getKolicina()-b);
- Kupljeno k=new Kupljeno();
- k.setCena(skladiste.getCena());
- java.util.Date dt = new java.util.Date();
- k.setDatum(dt);
- k.setKolicina(b);
- k.setKupac(username);
- k.setProdavac(skladiste.getUsername());
- k.setCena(skladiste.getCena());
- List<Komponente> kop=Komponente.imekomp(skladiste.getIdkomponente().getIdkomponente(), em);
- k.setIdkomponente(kop.get(0));
- em.persist(skladiste);
- em.persist(k);
- em.getTransaction().commit();
- }
- else
- System.out.println("Kolicina artikala je manja od unete!");
- } catch(NumberFormatException e){
- System.out.println("Korisceni znaci nisu dozvoljeni, probajte ponovo!");
- }
- }
- private static void trazipokompaniji(Premium username) throws IOException{
- List <Company> kompanije=Company.sve(em);
- int i=1;
- int b=0;
- Company kompanija=null;
- try{
- if(kompanije.size()==0){
- System.out.println("Nema trenutno kompanija u bazi!");
- return;
- }
- System.out.println("Odaberite kompaniju:");
- for(Company l:kompanije){
- System.out.println("("+i+") "+l.getName());
- i++;
- }
- String opcija=null;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- do{
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- }while(b>kompanije.size());
- kompanija=kompanije.get(b-1);
- List <Skladiste> s=Skladiste.prozivodi(em, kompanija);
- i=1;
- Skladiste sklad=null;
- for(Skladiste sk:s){
- int bb=sk.getIdkomponente().getIdkomponente();
- List<Komponente> k=Komponente.imekomp(bb, em);
- System.out.println("("+i+") "+k.get(0).getName()+" kol: "+sk.getKolicina()+" cena: "+sk.getCena());
- i++;
- }
- if(s.size()==0){
- System.out.println("Nema raspolozivih artikala u datoj firmi");
- return;
- }
- do{
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- }while(b>kompanije.size());
- sklad=s.get(b-1);
- while(true){
- System.out.println("(1) Rezervisi komponentu!");
- System.out.println("(2) Kupi komponentu!");
- System.out.println("(0) Nazad");
- opcija = br.readLine();
- if(opcija.compareTo("0")==0) return;
- if(opcija.compareTo("1")==0) System.out.println("Nije jos implementirano!");
- if(opcija.compareTo("2")==0){
- System.out.println("Unesite kolicinu koju zelite da kupite:");
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- break;
- }
- }
- if(sklad.getKolicina()>=b){
- em.getTransaction().begin();
- sklad.setKolicina(sklad.getKolicina()-b);
- Kupljeno k=new Kupljeno();
- k.setCena(sklad.getCena());
- java.util.Date dt = new java.util.Date();
- k.setDatum(dt);
- k.setKolicina(b);
- k.setKupac(username);
- k.setProdavac(kompanija);
- k.setCena(sklad.getCena());
- List<Komponente> kop=Komponente.imekomp(sklad.getIdkomponente().getIdkomponente(), em);
- k.setIdkomponente(kop.get(0));
- em.persist(sklad);
- em.persist(k);
- em.getTransaction().commit();
- }
- else
- System.out.println("Kolicina artikala je manja od unete!");
- } catch(NumberFormatException e){
- System.out.println("Korisceni znaci nisu dozvoljeni, probajte ponovo!");
- }
- }
- private static void ulgovanpremium(Premium username) throws IOException{
- String opcija=null;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- while(true){
- System.out.println("Unesite opciju:");
- System.out.println("(1) Promeni profil");
- System.out.println("(2) Trazi proizvod po kompaniji.");
- System.out.println("(3) Trazi proizvod po kategoriji.");
- System.out.println("(4) Prikazi rezervacije.");
- System.out.println("(5) Prikazi sve moje kupovine.");
- System.out.println("(6) Trazi po imenu komponente.");
- System.out.println("(0) Izloguj se.");
- opcija = br.readLine();
- if(opcija.compareTo("0")==0) return;
- if(opcija.compareTo("1")==0) System.out.println("Nije implementirano!");
- if(opcija.compareTo("2")==0) trazipokompaniji(username);
- if(opcija.compareTo("3")==0) trazipotipu(username);
- if(opcija.compareTo("4")==0) System.out.println("Nije implementirano!");
- if(opcija.compareTo("6")==0) trazipoimenu(username);
- if(opcija.compareTo("5")==0){
- List<Kupljeno> kup=Kupljeno.kupjenoodpremium(username,em);
- if(kup.size()>0){
- System.out.println("Lista kupljenih artikala:");
- for(Kupljeno kupp:kup){
- System.out.println("Artikl: "+kupp.getIdkomponente().getName()+" Cena: "+kupp.getCena()+" Kolicina: "+kupp.getKolicina()+" Prodavac: "+kupp.getProdavac().getName()+" Datum: "+kupp.getDatum());
- }
- }
- else
- System.out.println("Nema kupljenih artikala");
- }
- }
- }
- private static void registerpremium() throws IOException {
- String adress=null;
- String city=null;
- String email=null;
- String password=null;
- String phone=null;
- String sex=null;
- String username=null;
- String name=null;
- String country=null;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Unesite username:");
- username = br.readLine();
- List <Korisnik> ko=Korisnik.postoji(username, em);
- if(!ko.isEmpty()){
- while(true){
- System.out.println("Username vec postoji za nazad pritisnite enter ili pokusajte drugi username.");
- username = br.readLine();
- if(username=="") return;
- else{
- ko=Korisnik.postoji(username, em);
- if(ko.isEmpty()) break;
- }
- }
- }
- System.out.println("Unesite password:");
- password = br.readLine();
- if(password.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
- System.out.println("Unesite adresu stanovanja:");
- adress= br.readLine();
- if(adress.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
- System.out.println("Unesite grad:");
- city= br.readLine();
- if(city.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
- System.out.println("Unesite email adresu:");
- email= br.readLine();
- if(email.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
- System.out.println("Unesite telefonski broj:");
- phone= br.readLine();
- if(phone.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
- System.out.println("Unesite pol:(1) muski,(2) zenski");
- while(true){
- sex= br.readLine();
- if(sex.compareTo("1")==0){sex="muski";break;}
- if(sex.compareTo("2")==0){sex="zenski";break;}
- }
- System.out.println("Unesite vase ime:");
- name= br.readLine();
- if(name.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
- System.out.println("Unesite drzavu:");
- country= br.readLine();
- if(country.compareTo("")==0){System.out.println("Neuspesna regisracija!"); return;}
- em.getTransaction().begin();
- Korisnik k =new Korisnik();
- k.setAdress(adress);
- k.setCity(city);
- k.setEmail(email);
- k.setCountry(country);
- k.setPassword(password);
- k.setPhone(phone);
- k.setUsername(username);
- Premium p = new Premium();
- p.setName(name);
- p.setSex(sex);
- p.setUsername(username);
- p.setKorisnik(k);
- k.setPremium(p);
- em.persist(k);
- em.getTransaction().commit();
- }
- /**
- * @param ar1gs the command line arguments2
- */
- public static void main(String[] args) throws IOException {
- while(true){
- System.out.println("(1) Uloguj se!");
- System.out.println("(2) Registracija premium korisnika");
- System.out.println("(3) Registracija kompanije");
- System.out.println("(0) Izlaz");
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String opcija = null;
- opcija = br.readLine();
- if(opcija.compareTo("1")==0)
- loggin();
- if(opcija.compareTo("2")==0)
- registerpremium();
- if(opcija.compareTo("3")==0)
- System.out.println("Nije jos implementirano!");
- if(opcija.compareTo("0")==0)
- System.exit(0);
- }
- }
- private static void trazipoimenu(Premium username) throws IOException {
- int i=1;
- int b=0;
- Tip tip=null;
- String imekomp=null;
- Komponente komponenta=null;
- try{
- String opcija=null;
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("Unesite ime komponete koje trazite!");
- imekomp=br.readLine();
- List <Komponente> komp=Komponente.trazipoimenu(imekomp, em);
- i=1;
- for(Komponente sk:komp){
- System.out.println("("+i+") "+sk.getName());
- i++;
- }
- if(komp.size()==0){
- System.out.println("Nema raspolozivih komponenata datog tipa");
- return;
- }
- do{
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- }while(b>komp.size());
- komponenta=komp.get(b-1);
- Skladiste skladiste=null;
- List <Skladiste> skladista=Skladiste.sadrzi(em, komponenta);
- i=1;
- for(Skladiste sk:skladista){
- System.out.println("("+i+") Ime kompanije: "+sk.getUsername().getName()+" kolicina: "+sk.getKolicina()+" cena: "+sk.getCena());
- i++;
- }
- if(skladista.size()==0){
- System.out.println("Nema raspolozivih komponenata u nijednoj kompaniji");
- return;
- }
- do{
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- }while(b>skladista.size());
- skladiste=skladista.get(b-1);
- while(true){
- System.out.println("(1) Rezervisi komponentu!");
- System.out.println("(2) Kupi komponentu!");
- System.out.println("(0) Nazad");
- opcija = br.readLine();
- if(opcija.compareTo("0")==0) return;
- if(opcija.compareTo("1")==0) System.out.println("Nije jos implementirano!");
- if(opcija.compareTo("2")==0){
- System.out.println("Unesite kolicinu koju zelite da kupite:");
- opcija = br.readLine();
- b=Integer.parseInt(opcija);
- break;
- }
- }
- if(skladiste.getKolicina()>=b){
- em.getTransaction().begin();
- skladiste.setKolicina(skladiste.getKolicina()-b);
- Kupljeno k=new Kupljeno();
- k.setCena(skladiste.getCena());
- java.util.Date dt = new java.util.Date();
- k.setDatum(dt);
- k.setKolicina(b);
- k.setKupac(username);
- k.setProdavac(skladiste.getUsername());
- k.setCena(skladiste.getCena());
- List<Komponente> kop=Komponente.imekomp(skladiste.getIdkomponente().getIdkomponente(), em);
- k.setIdkomponente(kop.get(0));
- em.persist(skladiste);
- em.persist(k);
- em.getTransaction().commit();
- }
- else
- System.out.println("Kolicina artikala je manja od unete!");
- } catch(NumberFormatException e){
- System.out.println("Korisceni znaci nisu dozvoljeni, probajte ponovo!");
- }
- }
- }
- @NamedQuery(name = "Skladiste.filterkomp", query = "SELECT s FROM Skladiste s WHERE s.idkomponente=:komp AND s.kolicina>0 ORDER BY s.cena"),
- public static List sadrzi(EntityManager em,Komponente komp){
- return em.createNamedQuery("Skladiste.filterkomp").setParameter("komp", komp).getResultList();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement