Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.84 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package domaci;
  7.  
  8. import entiteti.Company;
  9. import entiteti.Komponente;
  10. import entiteti.Korisnik;
  11. import entiteti.Kupljeno;
  12. import entiteti.Premium;
  13. import entiteti.Skladiste;
  14. import entiteti.Tip;
  15. import java.io.BufferedReader;
  16. import java.io.IOException;
  17. import java.io.InputStreamReader;
  18. import java.util.List;
  19. import javax.persistence.EntityManager;
  20. import javax.persistence.EntityManagerFactory;
  21. import javax.persistence.Persistence;
  22.  
  23. /**
  24. *
  25. * @author Nemanja
  26. */
  27. public class Domaci {
  28.  
  29. static EntityManagerFactory emf = Persistence.createEntityManagerFactory("DomaciPU");
  30. static EntityManager em = emf.createEntityManager();
  31.  
  32. private static void loggin() throws IOException {
  33. em.getTransaction().begin();
  34. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  35. String username = null;
  36. String password=null;
  37. System.out.println("Unesite username:");
  38. username = br.readLine();
  39. System.out.println("Unesite password:");
  40. password = br.readLine();
  41. List<Company> kompanija=Company.postoji(username, password, em);
  42. if(!kompanija.isEmpty()){
  43. System.out.println("Logovanje kompanijama jos nije omoguceno!");
  44. return;
  45. }
  46. List<Premium> korisnik = Premium.postoji(username, password, em);
  47. Premium p;
  48. if(korisnik.isEmpty()){
  49. System.out.println("Neuspeno logovanje!");
  50. em.getTransaction().commit();
  51. return;
  52. }
  53. p=korisnik.get(0);
  54. System.out.println("Uspesno ste se ulogovali!");
  55. em.getTransaction().commit();
  56. ulgovanpremium(p);
  57. }
  58.  
  59. private static void trazipotipu(Premium username) throws IOException{
  60. List <Tip> tipovi=Tip.dohvatisve(em);
  61. int i=1;
  62. int b=0;
  63. Tip tip=null;
  64. Komponente komponenta=null;
  65. try{
  66. if(tipovi.size()==0){
  67. System.out.println("Nema trenutno tipova u bazi!");
  68. return;
  69. }
  70. System.out.println("Odaberite tip komponente:");
  71. for(Tip l:tipovi){
  72. System.out.println("("+i+") "+l.getName());
  73. i++;
  74. }
  75. String opcija=null;
  76. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  77. do{
  78. opcija = br.readLine();
  79. b=Integer.parseInt(opcija);
  80. }while(b>tipovi.size());
  81. tip=tipovi.get(b-1);
  82. List <Komponente> komp=Komponente.svekomptipa(tip, em);
  83. i=1;
  84. for(Komponente sk:komp){
  85. System.out.println("("+i+") "+sk.getName());
  86. i++;
  87. }
  88. if(komp.size()==0){
  89. System.out.println("Nema raspolozivih komponenata datog tipa");
  90. return;
  91. }
  92. do{
  93. opcija = br.readLine();
  94. b=Integer.parseInt(opcija);
  95. }while(b>komp.size());
  96. komponenta=komp.get(b-1);
  97. Skladiste skladiste=null;
  98. List <Skladiste> skladista=Skladiste.sadrzi(em, komponenta);
  99. i=1;
  100. for(Skladiste sk:skladista){
  101. System.out.println("("+i+") Ime kompanije: "+sk.getUsername().getName()+" kolicina: "+sk.getKolicina()+" cena: "+sk.getCena());
  102. i++;
  103. }
  104. if(skladista.size()==0){
  105. System.out.println("Nema raspolozivih komponenata u nijednoj kompaniji");
  106. return;
  107. }
  108. do{
  109. opcija = br.readLine();
  110. b=Integer.parseInt(opcija);
  111. }while(b>skladista.size());
  112. skladiste=skladista.get(b-1);
  113. while(true){
  114. System.out.println("(1) Rezervisi komponentu!");
  115. System.out.println("(2) Kupi komponentu!");
  116. System.out.println("(0) Nazad");
  117. opcija = br.readLine();
  118. if(opcija.compareTo("0")==0) return;
  119. if(opcija.compareTo("1")==0) System.out.println("Nije jos implementirano!");
  120. if(opcija.compareTo("2")==0){
  121. System.out.println("Unesite kolicinu koju zelite da kupite:");
  122. opcija = br.readLine();
  123. b=Integer.parseInt(opcija);
  124. break;
  125. }
  126. }
  127. if(skladiste.getKolicina()>=b){
  128. em.getTransaction().begin();
  129. skladiste.setKolicina(skladiste.getKolicina()-b);
  130. Kupljeno k=new Kupljeno();
  131. k.setCena(skladiste.getCena());
  132. java.util.Date dt = new java.util.Date();
  133. k.setDatum(dt);
  134. k.setKolicina(b);
  135. k.setKupac(username);
  136. k.setProdavac(skladiste.getUsername());
  137. k.setCena(skladiste.getCena());
  138. List<Komponente> kop=Komponente.imekomp(skladiste.getIdkomponente().getIdkomponente(), em);
  139. k.setIdkomponente(kop.get(0));
  140. em.persist(skladiste);
  141. em.persist(k);
  142. em.getTransaction().commit();
  143. }
  144. else
  145. System.out.println("Kolicina artikala je manja od unete!");
  146. } catch(NumberFormatException e){
  147. System.out.println("Korisceni znaci nisu dozvoljeni, probajte ponovo!");
  148. }
  149.  
  150.  
  151. }
  152.  
  153. private static void trazipokompaniji(Premium username) throws IOException{
  154. List <Company> kompanije=Company.sve(em);
  155. int i=1;
  156. int b=0;
  157. Company kompanija=null;
  158. try{
  159. if(kompanije.size()==0){
  160. System.out.println("Nema trenutno kompanija u bazi!");
  161. return;
  162. }
  163. System.out.println("Odaberite kompaniju:");
  164. for(Company l:kompanije){
  165. System.out.println("("+i+") "+l.getName());
  166. i++;
  167. }
  168. String opcija=null;
  169. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  170. do{
  171. opcija = br.readLine();
  172. b=Integer.parseInt(opcija);
  173. }while(b>kompanije.size());
  174. kompanija=kompanije.get(b-1);
  175.  
  176. List <Skladiste> s=Skladiste.prozivodi(em, kompanija);
  177. i=1;
  178. Skladiste sklad=null;
  179. for(Skladiste sk:s){
  180. int bb=sk.getIdkomponente().getIdkomponente();
  181. List<Komponente> k=Komponente.imekomp(bb, em);
  182. System.out.println("("+i+") "+k.get(0).getName()+" kol: "+sk.getKolicina()+" cena: "+sk.getCena());
  183. i++;
  184. }
  185. if(s.size()==0){
  186. System.out.println("Nema raspolozivih artikala u datoj firmi");
  187. return;
  188. }
  189.  
  190. do{
  191. opcija = br.readLine();
  192. b=Integer.parseInt(opcija);
  193. }while(b>kompanije.size());
  194. sklad=s.get(b-1);
  195. while(true){
  196. System.out.println("(1) Rezervisi komponentu!");
  197. System.out.println("(2) Kupi komponentu!");
  198. System.out.println("(0) Nazad");
  199. opcija = br.readLine();
  200. if(opcija.compareTo("0")==0) return;
  201. if(opcija.compareTo("1")==0) System.out.println("Nije jos implementirano!");
  202. if(opcija.compareTo("2")==0){
  203. System.out.println("Unesite kolicinu koju zelite da kupite:");
  204. opcija = br.readLine();
  205. b=Integer.parseInt(opcija);
  206. break;
  207. }
  208. }
  209. if(sklad.getKolicina()>=b){
  210. em.getTransaction().begin();
  211. sklad.setKolicina(sklad.getKolicina()-b);
  212. Kupljeno k=new Kupljeno();
  213. k.setCena(sklad.getCena());
  214. java.util.Date dt = new java.util.Date();
  215. k.setDatum(dt);
  216. k.setKolicina(b);
  217. k.setKupac(username);
  218. k.setProdavac(kompanija);
  219. k.setCena(sklad.getCena());
  220. List<Komponente> kop=Komponente.imekomp(sklad.getIdkomponente().getIdkomponente(), em);
  221. k.setIdkomponente(kop.get(0));
  222. em.persist(sklad);
  223. em.persist(k);
  224. em.getTransaction().commit();
  225. }
  226. else
  227. System.out.println("Kolicina artikala je manja od unete!");
  228. } catch(NumberFormatException e){
  229. System.out.println("Korisceni znaci nisu dozvoljeni, probajte ponovo!");
  230. }
  231. }
  232.  
  233. private static void ulgovanpremium(Premium username) throws IOException{
  234. String opcija=null;
  235. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  236. while(true){
  237. System.out.println("Unesite opciju:");
  238. System.out.println("(1) Promeni profil");
  239. System.out.println("(2) Trazi proizvod po kompaniji.");
  240. System.out.println("(3) Trazi proizvod po kategoriji.");
  241. System.out.println("(4) Prikazi rezervacije.");
  242. System.out.println("(5) Prikazi sve moje kupovine.");
  243. System.out.println("(6) Trazi po imenu komponente.");
  244. System.out.println("(0) Izloguj se.");
  245. opcija = br.readLine();
  246. if(opcija.compareTo("0")==0) return;
  247. if(opcija.compareTo("1")==0) System.out.println("Nije implementirano!");
  248. if(opcija.compareTo("2")==0) trazipokompaniji(username);
  249. if(opcija.compareTo("3")==0) trazipotipu(username);
  250. if(opcija.compareTo("4")==0) System.out.println("Nije implementirano!");
  251. if(opcija.compareTo("6")==0) trazipoimenu(username);
  252. if(opcija.compareTo("5")==0){
  253. List<Kupljeno> kup=Kupljeno.kupjenoodpremium(username,em);
  254. if(kup.size()>0){
  255. System.out.println("Lista kupljenih artikala:");
  256. for(Kupljeno kupp:kup){
  257. System.out.println("Artikl: "+kupp.getIdkomponente().getName()+" Cena: "+kupp.getCena()+" Kolicina: "+kupp.getKolicina()+" Prodavac: "+kupp.getProdavac().getName()+" Datum: "+kupp.getDatum());
  258. }
  259. }
  260. else
  261. System.out.println("Nema kupljenih artikala");
  262. }
  263. }
  264. }
  265.  
  266.  
  267. private static void registerpremium() throws IOException {
  268. String adress=null;
  269. String city=null;
  270. String email=null;
  271. String password=null;
  272. String phone=null;
  273. String sex=null;
  274. String username=null;
  275. String name=null;
  276. String country=null;
  277. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  278. System.out.println("Unesite username:");
  279. username = br.readLine();
  280. List <Korisnik> ko=Korisnik.postoji(username, em);
  281. if(!ko.isEmpty()){
  282. while(true){
  283. System.out.println("Username vec postoji za nazad pritisnite enter ili pokusajte drugi username.");
  284. username = br.readLine();
  285. if(username=="") return;
  286. else{
  287. ko=Korisnik.postoji(username, em);
  288. if(ko.isEmpty()) break;
  289. }
  290. }
  291. }
  292. System.out.println("Unesite password:");
  293. password = br.readLine();
  294. if(password.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
  295. System.out.println("Unesite adresu stanovanja:");
  296. adress= br.readLine();
  297. if(adress.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
  298. System.out.println("Unesite grad:");
  299. city= br.readLine();
  300. if(city.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
  301. System.out.println("Unesite email adresu:");
  302. email= br.readLine();
  303. if(email.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
  304. System.out.println("Unesite telefonski broj:");
  305. phone= br.readLine();
  306. if(phone.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
  307. System.out.println("Unesite pol:(1) muski,(2) zenski");
  308. while(true){
  309. sex= br.readLine();
  310. if(sex.compareTo("1")==0){sex="muski";break;}
  311. if(sex.compareTo("2")==0){sex="zenski";break;}
  312. }
  313. System.out.println("Unesite vase ime:");
  314. name= br.readLine();
  315. if(name.compareTo("")==0) {System.out.println("Neuspesna regisracija!"); return;}
  316. System.out.println("Unesite drzavu:");
  317. country= br.readLine();
  318. if(country.compareTo("")==0){System.out.println("Neuspesna regisracija!"); return;}
  319.  
  320. em.getTransaction().begin();
  321. Korisnik k =new Korisnik();
  322. k.setAdress(adress);
  323. k.setCity(city);
  324. k.setEmail(email);
  325. k.setCountry(country);
  326. k.setPassword(password);
  327. k.setPhone(phone);
  328. k.setUsername(username);
  329. Premium p = new Premium();
  330. p.setName(name);
  331. p.setSex(sex);
  332. p.setUsername(username);
  333. p.setKorisnik(k);
  334. k.setPremium(p);
  335. em.persist(k);
  336. em.getTransaction().commit();
  337. }
  338.  
  339.  
  340. /**
  341. * @param ar1gs the command line arguments2
  342. */
  343. public static void main(String[] args) throws IOException {
  344. while(true){
  345. System.out.println("(1) Uloguj se!");
  346. System.out.println("(2) Registracija premium korisnika");
  347. System.out.println("(3) Registracija kompanije");
  348. System.out.println("(0) Izlaz");
  349. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  350. String opcija = null;
  351. opcija = br.readLine();
  352. if(opcija.compareTo("1")==0)
  353. loggin();
  354. if(opcija.compareTo("2")==0)
  355. registerpremium();
  356. if(opcija.compareTo("3")==0)
  357. System.out.println("Nije jos implementirano!");
  358. if(opcija.compareTo("0")==0)
  359. System.exit(0);
  360. }
  361. }
  362.  
  363. private static void trazipoimenu(Premium username) throws IOException {
  364. int i=1;
  365. int b=0;
  366. Tip tip=null;
  367. String imekomp=null;
  368. Komponente komponenta=null;
  369. try{
  370. String opcija=null;
  371. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  372. System.out.println("Unesite ime komponete koje trazite!");
  373. imekomp=br.readLine();
  374.  
  375. List <Komponente> komp=Komponente.trazipoimenu(imekomp, em);
  376. i=1;
  377. for(Komponente sk:komp){
  378. System.out.println("("+i+") "+sk.getName());
  379. i++;
  380. }
  381. if(komp.size()==0){
  382. System.out.println("Nema raspolozivih komponenata datog tipa");
  383. return;
  384. }
  385. do{
  386. opcija = br.readLine();
  387. b=Integer.parseInt(opcija);
  388. }while(b>komp.size());
  389. komponenta=komp.get(b-1);
  390. Skladiste skladiste=null;
  391. List <Skladiste> skladista=Skladiste.sadrzi(em, komponenta);
  392. i=1;
  393. for(Skladiste sk:skladista){
  394. System.out.println("("+i+") Ime kompanije: "+sk.getUsername().getName()+" kolicina: "+sk.getKolicina()+" cena: "+sk.getCena());
  395. i++;
  396. }
  397. if(skladista.size()==0){
  398. System.out.println("Nema raspolozivih komponenata u nijednoj kompaniji");
  399. return;
  400. }
  401. do{
  402. opcija = br.readLine();
  403. b=Integer.parseInt(opcija);
  404. }while(b>skladista.size());
  405. skladiste=skladista.get(b-1);
  406. while(true){
  407. System.out.println("(1) Rezervisi komponentu!");
  408. System.out.println("(2) Kupi komponentu!");
  409. System.out.println("(0) Nazad");
  410. opcija = br.readLine();
  411. if(opcija.compareTo("0")==0) return;
  412. if(opcija.compareTo("1")==0) System.out.println("Nije jos implementirano!");
  413. if(opcija.compareTo("2")==0){
  414. System.out.println("Unesite kolicinu koju zelite da kupite:");
  415. opcija = br.readLine();
  416. b=Integer.parseInt(opcija);
  417. break;
  418. }
  419. }
  420. if(skladiste.getKolicina()>=b){
  421. em.getTransaction().begin();
  422. skladiste.setKolicina(skladiste.getKolicina()-b);
  423. Kupljeno k=new Kupljeno();
  424. k.setCena(skladiste.getCena());
  425. java.util.Date dt = new java.util.Date();
  426. k.setDatum(dt);
  427. k.setKolicina(b);
  428. k.setKupac(username);
  429. k.setProdavac(skladiste.getUsername());
  430. k.setCena(skladiste.getCena());
  431. List<Komponente> kop=Komponente.imekomp(skladiste.getIdkomponente().getIdkomponente(), em);
  432. k.setIdkomponente(kop.get(0));
  433. em.persist(skladiste);
  434. em.persist(k);
  435. em.getTransaction().commit();
  436. }
  437. else
  438. System.out.println("Kolicina artikala je manja od unete!");
  439. } catch(NumberFormatException e){
  440. System.out.println("Korisceni znaci nisu dozvoljeni, probajte ponovo!");
  441. }
  442.  
  443. }
  444.  
  445. }
  446.  
  447.  
  448.  
  449.  
  450.  
  451. @NamedQuery(name = "Skladiste.filterkomp", query = "SELECT s FROM Skladiste s WHERE s.idkomponente=:komp AND s.kolicina>0 ORDER BY s.cena"),
  452.  
  453.  
  454.  
  455.  
  456.  
  457. public static List sadrzi(EntityManager em,Komponente komp){
  458. return em.createNamedQuery("Skladiste.filterkomp").setParameter("komp", komp).getResultList();
  459. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement