Commit fcd268f2 authored by Kiviharju Saku's avatar Kiviharju Saku
Browse files

Viimeiset korjauset ja siistinnät. README-tiedoston sekä loppurraportin lisäys

parent 04506ff4
#README
Tee git-repositoryysi README-tiedosto, jossa käsittelet lyhyesti seuraavat asiat:
1. Mitä ominaisuuksia olet jo toteuttanut projektiisi?
- Projektiin on luotu luokat customer, employee sekä order, jotka mahdollistavat näiden luonnin. Order-luokassa on
ominaisuudet, jotka laskevat tilauksen hinnan sekä keston perustuen pinta-alaan
2. Käyttöohje
- Voiko ohjelmaa jo ajaa? (kyllä/ei)
- Ohjelman voi ajaa, mutta se ei ota vielä huomioon minkäänlaisia virheellisiä inputteja.
- Kuinka ohjelma käynnistetään?
- Ohjelma toimii mainin kautta. Ohjelmalla on yksinkertainen tekstipohjainen käyttöliittymä, joka ohjaa käyttäjää
sen käytössä
- Mitä sillä voi tässä vaiheessa tehdä?
- Ohjelmalla voi tällä hetkellä lisätä uuden varauksen, antaa palaute varaukselle sekä tulostaa kaikki varaukset,
jotka on tehty valitulla puhelinnumerolla.
3. Aikataulu
- Kuinka paljon olet jo käyttänyt aikaa projektiin?
- Olen käyttänyt projektiin aikaa noin 15 tuntia suunnitelman teko mukaan laskettuna.
- Onko ilmennyt muutoksia suunnitelman aikatauluun?
- Olen vähän jäljessä aikataulusta, mutta projekti tulee kuitenkin valmiiksi aikataulussa
4. Muuta
- Onko ilmaantunut erityisiä ongelmia?
- Ei
- Oletko joutunut tekemään muutoksia suunnitelmaasi?
- Aikataulua lukuunottamatta suunnitelma pitää edelleen.
\ No newline at end of file
# Varausjärjestelmä
## Esittely
Projektissa tehty varausjärjestelmä kuvitteelliselle siivousalan yritykselle. Järjestelmän kautta asiakkaat voivat
varata itselleen uusia aikoja, tulostaa tilaushistorian sekä antaa palautetta menneistä siivouksista.
## Tiedosto- ja kansiorakenne
- Projektissa on kaksi kasiota: dokumentaatio sekä varausjarjestelma
- Dokumentaation alta löytyy yksityiskohtaisemmat tiedot projektista ja sen teosta
- Varausjarjestelma-kansion alta löytyy itse varusjärjesltemä
- Varausjajstelma-kansion tärkein tiedosto on ui.py. Sen ajamalla ohjelman käyttöliittymä aukeaa
- Main.py:n suorittamalla pääsee tekstipohjaiseen käyttöjärjestelmään, mutta siitä ei löydy kaikkia ohjelman ominaisuuksia
## Asennusohje
- Ohjelman eri tiedostot ja luokat käyttävät eri kirjastoja
- Kirjastojen asennusohjeet:
- employee.py:
- import random
- order.py:
- from datetime import datetime, timedelta
- import random
- main.py:
- from datetime import datetime
- reservation_system.py
- from datetime import datetime, timedelta
- import random
- ui.py:
- import sys
- from datetime import datetime
- from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QVBoxLayout, QLabel, QMessageBox, QInputDialog, \
QLineEdit, QScrollArea
- ui_calendar.py:
- import sys
- from datetime import datetime, timedelta
## Käyttöohje
- Ohjelman suoritus alitetaan ajamalla tiedostosto ui.py
- Ohjelma aukaisee graafisen käyttöliittymän, jonka käyttö pitäisi olla selkeää ilman käyttöohjeita
- Selkeämmät ohjeet suoritukseen loppudokumentaatiosta dokumentaatio-kansiosta
......@@ -2,13 +2,10 @@ Aino Asiakas;0509191911;aino.asiakas@sivu.fi;Asiakaskatu 2 B 39, 00100 Helsinki
Anna Asiakas;0401121112;anna.asiakas@sivu.fi;Asiakaskuja 3 C 21, 00220 Helsinki
Antti Asiakas;0509449444;antti.asiakas@sivu.fi;Asiakastie 10 D 22, 00520 Helsinki
Antero Asiakas;0442022002;antero.asiakas@sivu.fi;Asiakaskatu 3 A 21, 00100 Helsinki
Saku;0509114550;sakukiviharju@hotmail.com;Ratakatu 25 B 39, 00120 Helsinkii
Pertti Järvinen;moi;kkk;Osoite 2
Saku;050911;sakukiviharju@hotmail.com;Rakatu 25 B 39
saku;121212;safadf@gjdoag.fi;jfoidfjao
Pertti Jokinen;04022;pertsa@suomi24.fi;Osoite 2
Pertti Jokinen;0949494949;pertsaqaaaaaaaaaaaaaaaaaaaaa£££££;
3;01020202020;eee;3
Pertti ;0401;peet;puut
Tiina Testiasiakas;0501212121;tiina.testi@testi.fi;Testikatu 1, 00100 Helsinki
Tiina Testiasiakas;0501212121;tiina.testi@testi.fi;Testikatu 1, 00100 Helsinki
Saku Kiviharju;0509114550;saku.m.kiviharju@aalto.fi;Ratakatu 25 B 39, 00120 Helsinki
Liisa Kinnunen;0400261013;liisa.kinnunen@gmail.com;Liisankatu 1, 00120 Helsinki
Kimmo Kerkkonen;0409201145;kimmo.k@hotmail.com;Mannerhiemintie 1, 00100 Helsinki
Heikki Hemmo;0509293314;heikki.hemmo@aalto.fi;Heikinkuja 1, 00330 Helsinki
Anssi Heikkilä;0443131224;anssi.heikkila@gmail.com;Anssitie 19, 00220 Helsinki
Niina Uusitalo;0443254123;niina.uusitalo@gmail.com;Fredrikinkatu 20, 00120 Helsinki
Tuuli Heinonen;0409292112;tuuli.heinonen@aalto.fi;Tuulikatu 53, 02100 Espoo
......@@ -2,11 +2,10 @@ Aino Asiakas;0509191911;aino.asiakas@sivu.fi;Asiakaskatu 2 B 39, 00100 Helsinki
Anna Asiakas;0401121112;anna.asiakas@sivu.fi;Asiakaskuja 3 C 21, 00220 Helsinki
Antti Asiakas;0509449444;antti.asiakas@sivu.fi;Asiakastie 10 D 22, 00520 Helsinki
Antero Asiakas;0442022002;antero.asiakas@sivu.fi;Asiakaskatu 3 A 21, 00100 Helsinki
Saku;0509114550;sakukiviharju@hotmail.com;Ratakatu 25 B 39, 00120 Helsinkii
Pertti Järvinen;moi;kkk;Osoite 2
Saku;050911;sakukiviharju@hotmail.com;Rakatu 25 B 39
saku;121212;safadf@gjdoag.fi;jfoidfjao
Pertti Jokinen;04022;pertsa@suomi24.fi;Osoite 2
Pertti Jokinen;0949494949;pertsaqaaaaaaaaaaaaaaaaaaaaa£££££;
3;01020202020;eee;3
Pertti ;0401;peet;puut
Saku Kiviharju;0509114550;saku.m.kiviharju@aalto.fi;Ratakatu 25 B 39, 00120 Helsinki
Liisa Kinnunen;0400261013;liisa.kinnunen@gmail.com;Liisankatu 1, 00120 Helsinki
Kimmo Kerkkonen;0409201145;kimmo.k@hotmail.com;Mannerhiemintie 1, 00100 Helsinki
Heikki Hemmo;0509293314;heikki.hemmo@aalto.fi;Heikinkuja 1, 00330 Helsinki
Anssi Heikkilä;0443131224;anssi.heikkila@gmail.com;Anssitie 19, 00220 Helsinki
Niina Uusitalo;0443254123;niina.uusitalo@gmail.com;Fredrikinkatu 20, 00120 Helsinki
Tuuli Heinonen;0409292112;tuuli.heinonen@aalto.fi;Tuulikatu 53, 02100 Espoo
......@@ -4,7 +4,8 @@ import random
# luodaan yksilöivä id
def create_order_id():
return random.randint(100000, 999999)
order_id = random.randint(100000, 999999)
return order_id
# lasketaan siivouksen lopetusaika
......@@ -36,6 +37,14 @@ def calculate_duration(area, additional_services):
return time
# lasketaan hinta keston ja lisäpalveluiden perusteella
def calculate_price(duration, additional_services):
price = 20 + duration * 30
if "Kemikaaliton siivous" in additional_services:
price += 20
return price
class Order:
# luodaan tilaus. Jos id:tä ei ainnettu, luodaan se. Jos palautetta ei määritetty, laitetaan oletusarvo
def __init__(self, starting_time, address, area, additional_services, employee, customer,
......@@ -50,7 +59,7 @@ class Order:
self.customer = customer
self.order_id = int(order_id)
self.duration = calculate_duration(self.area, self.additional_services)
self.price = self.calculate_price()
self.price = calculate_price(self.duration, self.additional_services)
self.ending_time = calculate_ending_time(self.duration, self.starting_time)
# kaikille tilaustiedoille tiedon palauttava funktio
......@@ -84,13 +93,6 @@ class Order:
def get_additional_servies(self):
return self.additional_services
# lasketaan hinta keston ja lisäpalveluiden perusteella
def calculate_price(self):
price = 20 + self.duration * 30
if "Kemikaaliton siivous" in self.additional_services:
price += 20
return price
# muutetaan työntekijä toiseen
def change_employee(self, new_employee):
self.employee = new_employee
......
03.05.2021 07:00;Rakatu 25 B 39;10;Saunan siivous/Kemikaaliton siivous;123123;050911;415562;Palautetta ei ole vielä annettu
03.05.2021 07:00;Rakatu 25 B 39;10;Saunan siivous/Uunin pesu/Kemikaaliton siivous;123456;050911;415562;Palautetta ei ole vielä annettu
03.05.2021 07:00;Rakatu 25 B 39;10;Uunin pesu/Kemikaaliton siivous;123321;050911;415562;Palautetta ei ole vielä annettu
03.05.2021 08:30;;10;Uunin pesu/Saunan siivous;123321;0949494949;928047;Palautetta ei ole vielä annettu
28.05.2021 10:00;Rakatu 25 B 39;400;Uunin pesu;123123;050911;928047;Palautetta ei ole vielä annettu
10.05.2021 13:30;Rakatu 25 B 39;10;Kemikaaliton siivous;123123;050911;928047;Palautetta ei ole vielä annettu
03.05.2021 09:00;3;10;;123123;01020202020;253973;Palautetta ei ole vielä annettu
13.05.2021 11:11;puut;13;;123321;0401;147710;Palautetta ei ole vielä annettu
260489;10.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu;123321;0509114550;Palautetta ei ole vielä annettu
561405;17.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123123;0509114550;Palautetta ei ole vielä annettu
198499;24.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123123;0509114550;Palautetta ei ole vielä annettu
661530;31.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu/Kemikaaliton siivous;123456;0509114550;Palautetta ei ole vielä annettu
924259;10.05.2021 09:00;Liisankatu 1, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123123;0400261013;Palautetta ei ole vielä annettu
341038;17.05.2021 09:00;Liisankatu 1, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123456;0400261013;Palautetta ei ole vielä annettu
630208;24.05.2021 07:00;Liisankatu 1, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123456;0400261013;Palautetta ei ole vielä annettu
833455;10.05.2021 07:00;Asiakaskatu 2 B 39, 00100 Helsinki;10;;123123;0509191911;Palautetta ei ole vielä annettu
679683;11.05.2021 11:00;Asiakaskatu 2 B 39, 00100 Helsinki;50;Uunin pesu/Saunan siivous;123123;0509191911;Palautetta ei ole vielä annettu
660255;18.05.2021 10:00;Asiakaskatu 2 B 39, 00100 Helsinki;50;Uunin pesu/Saunan siivous;123123;0509191911;Palautetta ei ole vielä annettu
740873;25.05.2021 11:00;Asiakaskatu 2 B 39, 00100 Helsinki;50;Saunan siivous/Uunin pesu;123321;0509191911;Palautetta ei ole vielä annettu
161871;10.05.2021 12:00;Asiakaskuja 3 C 21, 00220 Helsinki;60;Saunan siivous/Uunin pesu;123321;0401121112;Palautetta ei ole vielä annettu
236064;17.05.2021 12:00;Asiakaskuja 3 C 21, 00220 Helsinki;60;Uunin pesu/Saunan siivous;123123;0401121112;Palautetta ei ole vielä annettu
121157;24.05.2021 12:00;Asiakaskuja 3 C 21, 00220 Helsinki;40;Uunin pesu/Saunan siivous;123456;0401121112;Palautetta ei ole vielä annettu
513483;12.05.2021 11:00;Asiakastie 10 D 22, 00520 Helsinki;80;Saunan siivous/Uunin pesu;123123;0509449444;Palautetta ei ole vielä annettu
915445;19.05.2021 11:00;Asiakastie 10 D 22, 00520 Helsinki;80;Kemikaaliton siivous;123123;0509449444;Palautetta ei ole vielä annettu
812010;25.05.2021 12:00;Asiakastie 10 D 22, 00520 Helsinki;90;Uunin pesu/Saunan siivous;123123;0509449444;Palautetta ei ole vielä annettu
747560;03.06.2021 10:00;Asiakastie 10 D 22, 00520 Helsinki;80;Saunan siivous/Uunin pesu;123123;0509449444;Palautetta ei ole vielä annettu
791589;12.05.2021 12:00;Asiakaskatu 3 A 21, 00100 Helsinki;70;Uunin pesu/Kemikaaliton siivous;123456;0442022002;Palautetta ei ole vielä annettu
203268;26.05.2021 07:00;Asiakaskatu 3 A 21, 00100 Helsinki;100;Uunin pesu;123123;0442022002;Palautetta ei ole vielä annettu
142670;03.06.2021 08:00;Asiakaskatu 3 A 21, 00100 Helsinki;85;Uunin pesu/Saunan siivous;123456;0442022002;Palautetta ei ole vielä annettu
504917;13.05.2021 09:00;Mannerhiemintie 1, 00100 Helsinki;120;Uunin pesu/Saunan siivous;123321;0409201145;Palautetta ei ole vielä annettu
871736;19.05.2021 10:00;Mannerhiemintie 1, 00100 Helsinki;120;Uunin pesu/Kemikaaliton siivous;123321;0409201145;Palautetta ei ole vielä annettu
844247;31.05.2021 12:00;Mannerhiemintie 1, 00100 Helsinki;120;Uunin pesu/Kemikaaliton siivous;123456;0409201145;Palautetta ei ole vielä annettu
946869;12.05.2021 11:30;Heikinkuja 1, 00330 Helsinki;110;Saunan siivous/Kemikaaliton siivous;123321;0509293314;Palautetta ei ole vielä annettu
330411;11.05.2021 07:30;Heikinkuja 1, 00330 Helsinki;200;Uunin pesu;123456;0509293314;Palautetta ei ole vielä annettu
639142;20.05.2021 09:00;Heikinkuja 1, 00330 Helsinki;100;Uunin pesu;123321;0509293314;Palautetta ei ole vielä annettu
324202;25.05.2021 12:00;Heikinkuja 1, 00330 Helsinki;100;Kemikaaliton siivous/Uunin pesu;123456;0509293314;Palautetta ei ole vielä annettu
845268;11.05.2021 11:00;Anssitie 19, 00220 Helsinki;20;Uunin pesu/Saunan siivous;123321;0443131224;Palautetta ei ole vielä annettu
687785;20.05.2021 10:00;Anssitie 19, 00220 Helsinki;40;Uunin pesu/Kemikaaliton siivous;123456;0443131224;Palautetta ei ole vielä annettu
994660;27.05.2021 09:00;Anssitie 19, 00220 Helsinki;50;Uunin pesu/Kemikaaliton siivous;123123;0443131224;Palautetta ei ole vielä annettu
447724;02.06.2021 09:00;Anssitie 19, 00220 Helsinki;100;Uunin pesu/Kemikaaliton siivous;123456;0443131224;Palautetta ei ole vielä annettu
251962;13.05.2021 09:00;Fredrikinkatu 20, 00120 Helsinki;100;Uunin pesu/Kemikaaliton siivous;123456;0443254123;Palautetta ei ole vielä annettu
527640;19.05.2021 10:00;Fredrikinkatu 20, 00120 Helsinki;50;Uunin pesu/Saunan siivous;123456;0443254123;Palautetta ei ole vielä annettu
157182;27.05.2021 09:00;Fredrikinkatu 20, 00120 Helsinki;210;Uunin pesu/Kemikaaliton siivous;123321;0443254123;Palautetta ei ole vielä annettu
445268;13.05.2021 09:00;Tuulikatu 53, 02100 Espoo;70;Uunin pesu/Kemikaaliton siivous;123123;0409292112;Palautetta ei ole vielä annettu
916167;27.05.2021 08:00;Tuulikatu 53, 02100 Espoo;60;Uunin pesu/Kemikaaliton siivous;123456;0409292112;Palautetta ei ole vielä annettu
876519;18.05.2021 10:00;Tuulikatu 53, 02100 Espoo;60;Uunin pesu/Saunan siivous;123321;0409292112;Palautetta ei ole vielä annettu
703873;02.06.2021 09:00;Tuulikatu 53, 02100 Espoo;50;Uunin pesu/Kemikaaliton siivous;123123;0409292112;Palautetta ei ole vielä annettu
03.04.2021 07:00;Rakatu 25 B 39;10;Saunan siivous/Kemikaaliton siivous;123123;050911;415562;
03.05.2021 07:00;Rakatu 25 B 39;10;Saunan siivous/Uunin pesu/Kemikaaliton siivous;123456;050911;415562;Palautetta ei ole vielä annettu
03.05.2021 07:00;Rakatu 25 B 39;10;Uunin pesu/Kemikaaliton siivous;123321;050911;415562;Palautetta ei ole vielä annettu
03.05.2021 08:30;;10;Uunin pesu/Saunan siivous;123321;0949494949;928047;Palautetta ei ole vielä annettu
28.05.2021 10:00;Rakatu 25 B 39;400;Uunin pesu;123123;050911;928047;Palautetta ei ole vielä annettu
10.05.2021 13:30;Rakatu 25 B 39;10;Kemikaaliton siivous;123123;050911;928047;Palautetta ei ole vielä annettu
03.05.2021 09:00;3;10;;123123;01020202020;253973;Palautetta ei ole vielä annettu
13.05.2021 11:11;puut;13;;123321;0401;147710;Palautetta ei ole vielä annettu
06.05.2021 07:00;Rakatu 25 B 39;100;Uunin pesu;123456;050911;415775;Palautetta ei ole vielä annettu
06.05.2021 07:00;Rakatu 25 B 39;200;Saunan siivous;123123;050911;628751;Palautetta ei ole vielä annettu
07.05.2021 13:30;Rakatu 25 B 39;30;Saunan siivous/Kemikaaliton siivous;123456;050911;896489;Palautetta ei ole vielä annettu
260489;06.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu;123321;0509114550;Palautetta ei ole vielä annettu
561405;17.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123123;0509114550;Palautetta ei ole vielä annettu
198499;24.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123123;0509114550;Palautetta ei ole vielä annettu
661530;31.05.2021 07:00;Ratakatu 25 B 39, 00120 Helsinki;100;Uunin pesu/Kemikaaliton siivous;123456;0509114550;Palautetta ei ole vielä annettu
924259;10.05.2021 09:00;Liisankatu 1, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123123;0400261013;Palautetta ei ole vielä annettu
341038;17.05.2021 09:00;Liisankatu 1, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123456;0400261013;Palautetta ei ole vielä annettu
630208;24.05.2021 07:00;Liisankatu 1, 00120 Helsinki;100;Uunin pesu/Saunan siivous;123456;0400261013;Palautetta ei ole vielä annettu
833455;10.05.2021 07:00;Asiakaskatu 2 B 39, 00100 Helsinki;10;;123123;0509191911;Palautetta ei ole vielä annettu
679683;11.05.2021 11:00;Asiakaskatu 2 B 39, 00100 Helsinki;50;Uunin pesu/Saunan siivous;123123;0509191911;Palautetta ei ole vielä annettu
660255;18.05.2021 10:00;Asiakaskatu 2 B 39, 00100 Helsinki;50;Uunin pesu/Saunan siivous;123123;0509191911;Palautetta ei ole vielä annettu
740873;25.05.2021 11:00;Asiakaskatu 2 B 39, 00100 Helsinki;50;Saunan siivous/Uunin pesu;123321;0509191911;Palautetta ei ole vielä annettu
161871;10.05.2021 12:00;Asiakaskuja 3 C 21, 00220 Helsinki;60;Saunan siivous/Uunin pesu;123321;0401121112;Palautetta ei ole vielä annettu
236064;17.05.2021 12:00;Asiakaskuja 3 C 21, 00220 Helsinki;60;Uunin pesu/Saunan siivous;123123;0401121112;Palautetta ei ole vielä annettu
121157;24.05.2021 12:00;Asiakaskuja 3 C 21, 00220 Helsinki;40;Uunin pesu/Saunan siivous;123456;0401121112;Palautetta ei ole vielä annettu
513483;12.05.2021 11:00;Asiakastie 10 D 22, 00520 Helsinki;80;Saunan siivous/Uunin pesu;123123;0509449444;Palautetta ei ole vielä annettu
915445;19.05.2021 11:00;Asiakastie 10 D 22, 00520 Helsinki;80;Kemikaaliton siivous;123123;0509449444;Palautetta ei ole vielä annettu
812010;25.05.2021 12:00;Asiakastie 10 D 22, 00520 Helsinki;90;Uunin pesu/Saunan siivous;123123;0509449444;Palautetta ei ole vielä annettu
747560;03.06.2021 10:00;Asiakastie 10 D 22, 00520 Helsinki;80;Saunan siivous/Uunin pesu;123123;0509449444;Palautetta ei ole vielä annettu
791589;12.05.2021 12:00;Asiakaskatu 3 A 21, 00100 Helsinki;70;Uunin pesu/Kemikaaliton siivous;123456;0442022002;Palautetta ei ole vielä annettu
203268;26.05.2021 07:00;Asiakaskatu 3 A 21, 00100 Helsinki;100;Uunin pesu;123123;0442022002;Palautetta ei ole vielä annettu
142670;07.05.2021 08:00;Asiakaskatu 3 A 21, 00100 Helsinki;85;Uunin pesu/Saunan siivous;123456;0442022002;Palautetta ei ole vielä annettu
504917;13.05.2021 09:00;Mannerhiemintie 1, 00100 Helsinki;120;Uunin pesu/Saunan siivous;123321;0409201145;Palautetta ei ole vielä annettu
871736;19.05.2021 10:00;Mannerhiemintie 1, 00100 Helsinki;120;Uunin pesu/Kemikaaliton siivous;123321;0409201145;Palautetta ei ole vielä annettu
844247;31.05.2021 12:00;Mannerhiemintie 1, 00100 Helsinki;120;Uunin pesu/Kemikaaliton siivous;123456;0409201145;Palautetta ei ole vielä annettu
946869;12.05.2021 11:30;Heikinkuja 1, 00330 Helsinki;110;Saunan siivous/Kemikaaliton siivous;123321;0509293314;Palautetta ei ole vielä annettu
330411;11.05.2021 07:30;Heikinkuja 1, 00330 Helsinki;200;Uunin pesu;123456;0509293314;Palautetta ei ole vielä annettu
639142;20.05.2021 09:00;Heikinkuja 1, 00330 Helsinki;100;Uunin pesu;123321;0509293314;Palautetta ei ole vielä annettu
324202;25.05.2021 12:00;Heikinkuja 1, 00330 Helsinki;100;Kemikaaliton siivous/Uunin pesu;123456;0509293314;Palautetta ei ole vielä annettu
845268;11.05.2021 11:00;Anssitie 19, 00220 Helsinki;20;Uunin pesu/Saunan siivous;123321;0443131224;Palautetta ei ole vielä annettu
687785;20.05.2021 10:00;Anssitie 19, 00220 Helsinki;40;Uunin pesu/Kemikaaliton siivous;123456;0443131224;Palautetta ei ole vielä annettu
994660;27.05.2021 09:00;Anssitie 19, 00220 Helsinki;50;Uunin pesu/Kemikaaliton siivous;123123;0443131224;Palautetta ei ole vielä annettu
447724;02.06.2021 09:00;Anssitie 19, 00220 Helsinki;100;Uunin pesu/Kemikaaliton siivous;123456;0443131224;Palautetta ei ole vielä annettu
251962;13.05.2021 09:00;Fredrikinkatu 20, 00120 Helsinki;100;Uunin pesu/Kemikaaliton siivous;123456;0443254123;Palautetta ei ole vielä annettu
527640;19.05.2021 10:00;Fredrikinkatu 20, 00120 Helsinki;50;Uunin pesu/Saunan siivous;123456;0443254123;Palautetta ei ole vielä annettu
157182;27.05.2021 09:00;Fredrikinkatu 20, 00120 Helsinki;210;Uunin pesu/Kemikaaliton siivous;123321;0443254123;Palautetta ei ole vielä annettu
445268;13.05.2021 09:00;Tuulikatu 53, 02100 Espoo;70;Uunin pesu/Kemikaaliton siivous;123123;0409292112;Palautetta ei ole vielä annettu
916167;05.05.2021 08:00;Tuulikatu 53, 02100 Espoo;60;Uunin pesu/Kemikaaliton siivous;123456;0409292112;Kiitos siivouksesta! Tuli siistiä jälkeä :)
876519;18.05.2021 10:00;Tuulikatu 53, 02100 Espoo;60;Uunin pesu/Saunan siivous;123321;0409292112;Palautetta ei ole vielä annettu
703873;02.06.2021 09:00;Tuulikatu 53, 02100 Espoo;50;Uunin pesu/Kemikaaliton siivous;123123;0409292112;Palautetta ei ole vielä annettu
......@@ -3,7 +3,7 @@ import random
from customer import Customer
from employee import Employee
from order import Order, calculate_duration, calculate_ending_time
from order import Order, calculate_duration, calculate_ending_time, create_order_id
# muutetaan string-muotoinen päivämäärä datetime-muotoiseeksi
......@@ -74,9 +74,9 @@ class ReservationSystem:
orders = []
while line != "":
line = line.split(";")
order = Order(time_str_to_datetime(line[0]), line[1], line[2], line[3].split("/"),
self.get_employee_by_id(int(line[4])),
self.get_customer_by_phone(line[5]), line[6], line[7])
order = Order(time_str_to_datetime(line[1]), line[2], line[3], line[4].split("/"),
self.get_employee_by_id(int(line[5])),
self.get_customer_by_phone(line[6]), line[0], line[7])
orders.append(order)
line = orders_file.readline().rstrip()
orders_file.close()
......@@ -113,6 +113,12 @@ class ReservationSystem:
return order
return None
def get_unique_id(self):
unique_id = create_order_id()
while not self.check_order_id(unique_id):
unique_id = create_order_id()
return unique_id
# tarkistetaan onko id varattu
def check_order_id(self, order_id):
for order in self.orders_list:
......@@ -178,6 +184,7 @@ class ReservationSystem:
# lisätään uusi tilaus
def add_order(self, order):
order = order
self.orders_list.append(order)
self.save_order_data()
......@@ -232,10 +239,10 @@ class ReservationSystem:
orders_file = open(self.orders_txt, "w")
for order in self.orders_list:
orders_file.write(
"{};{};{};{};{};{};{};{}\n".format(order.get_starting_time().strftime("%d.%m.%Y %H:%M"),
"{};{};{};{};{};{};{};{}\n".format(order.get_id(), order.get_starting_time().strftime("%d.%m.%Y %H:%M"),
order.get_address(),
order.get_area(), "/".join(order.get_additional_servies()),
order.get_employee().get_id(),
order.get_customer().get_phone_number(), order.get_id(),
order.get_customer().get_phone_number(),
order.get_feedback()))
orders_file.close()
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from datetime import datetime
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QVBoxLayout, QLabel, QMessageBox, QInputDialog, \
......@@ -178,8 +175,10 @@ class UserInterface(QWidget):
employee = self.reservation_system.check_time(time, int(self.form.reservation_widget.area.text()),
additional_services)
# lisätään uusi tilaus
order_id = self.reservation_system.get_unique_id()
print(order_id)
order = Order(time, customer.get_address(), int(self.form.reservation_widget.area.text()), additional_services,
employee, customer)
employee, customer, order_id)
# lisätään tilaus varausjärjestelmään
self.reservation_system.add_order(order)
return order
......@@ -268,11 +267,21 @@ class UserInterface(QWidget):
msg_box.exec()
# muuten tulostetaan scrollattava MessageBox, jossa lajiteltu tilaukset menneeisiin ja tuleviin
else:
past_orders_header = "Menneet varaukset:"
future_orders_header = "Tulevat varaukset:"
text = QLabel(past_orders_header + "\n\n" + orders_to_txt(
past_orders) + "\n\n" + future_orders_header + "\n\n" + orders_to_txt(future_orders))
result = ScrollReservationsBox(text)
past_orders_header = QLabel("Menneet varaukset:")
past_orders_header.setStyleSheet("font: 20px;")
future_orders_header = QLabel("Tulevat varaukset:")
future_orders_text = QLabel(orders_to_txt(future_orders))
future_orders_header.setStyleSheet("font: 20px;")
past_orders_text = QLabel(orders_to_txt(past_orders))
widget = QWidget()
layout = QVBoxLayout()
layout.addWidget(past_orders_header)
layout.addWidget(past_orders_text)
layout.addWidget(future_orders_header)
layout.addWidget(future_orders_text)
widget.setLayout(layout)
result = ScrollReservationsBox(widget)
result.exec_()
......
import sys
from datetime import datetime, timedelta
from PyQt5 import QtCore
from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QWidget, QGroupBox, QHBoxLayout, QLabel, QApplication, QPushButton, QButtonGroup
......@@ -66,6 +67,7 @@ class Calendar(QDialog):
# luodaan button group viikkonäkymälle sekä luodaan painikkeet päiville
self.buttonGroup = QButtonGroup()
self.create_buttons()
self.buttonGroup.buttonClicked.connect(self.update_time)
# lisätään layouttiin ok- ja cancel-painikkeet
self.mainLayout.addWidget(self.buttonBox)
......@@ -73,6 +75,10 @@ class Calendar(QDialog):
# asetetaan layout
self.setLayout(self.mainLayout)
# päivitetään aika valittuun nappiin
def update_time(self):
self.time_clicked = self.buttonGroup.checkedButton().time
# haetaan seuraava vapaa aika varaukselle
def next_free_time(self):
# luodaan päivä, joka on kuluvan viikon maanantai klo 7.00
......@@ -142,10 +148,6 @@ class Calendar(QDialog):
# lisätään viikkonäkymä kalenteriin
self.mainLayout.addWidget(weekGroupBox)
# vaihdetaan päivä kalenterinäkymässä painettuun aikaan
def change_day(self):
self.time_clicked = self.buttonGroup.checkedButton().time
# muutetaan ensimmäinen vapaa aika "valituksi"
def first_button_to_checked(self):
for button in self.buttonGroup.buttons():
......
......@@ -5,6 +5,7 @@ from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QWidget, QRa
QGroupBox, QHBoxLayout, QLabel, QSpinBox, QApplication, QPushButton, QCheckBox
from PyQt5.QtGui import QIntValidator
from order import calculate_duration, calculate_ending_time, calculate_price
from ui_calendar import Calendar
......@@ -146,8 +147,9 @@ class ReservationWidget(QGroupBox):
self.area.setMaximum(400)
self.area.setMinimumWidth(250)
self.calendar = Calendar(int(self.area.text()), self.additional_services_list, self.reservation_system)
self.calendar_button = QPushButton(self.calendar.time_clicked.strftime("%d.%m.%Y %H:%M"))
self.starting_time = self.calendar.time_clicked
self.calendar_button = QPushButton()
self.set_calendar_button_text()
# luodaan valinnat lisäpalveluille
self.additional_services = QWidget()
......@@ -163,6 +165,7 @@ class ReservationWidget(QGroupBox):
self.additional_services_layout.addWidget(self.sauna_cleaning)
self.additional_services_layout.addWidget(self.chemical_free)
self.additional_services.setLayout(self.additional_services_layout)
self.price_label = QLabel(str(self.get_price()) + " €")
# luodaan layout varaustieto-lomakkeseen
self.reservation_layout = QFormLayout()
......@@ -170,7 +173,8 @@ class ReservationWidget(QGroupBox):
# lisätään rivit layouttiin
self.reservation_layout.addRow(QLabel("Pinta-ala: "), self.area)
self.reservation_layout.addRow(QLabel("Valitse lisäpalvelut: "), self.additional_services)
self.reservation_layout.addRow(QLabel("Valitse aloitusaika"), self.calendar_button)
self.reservation_layout.addRow(QLabel("Valitse aloitusaika:"), self.calendar_button)
self.reservation_layout.addRow(QLabel("Hinta:"), self.price_label)
# jos pinta-alaa muutetaan, päivitetään valittu aika seuraavaksi vapaaksi ajaksi
self.area.valueChanged.connect(self.update_next_available_time)
......@@ -184,12 +188,22 @@ class ReservationWidget(QGroupBox):
self.calendar_button.clicked.connect(self.open_calendar)
def get_price(self):
price = calculate_price(calculate_duration(int(self.area.text()), self.additional_services_list), self.additional_services_list)
return price
def set_calendar_button_text(self):
self.calendar_button.setText(self.calendar.time_clicked.strftime("%d.%m.%Y %H:%M-") + calculate_ending_time(
calculate_duration(int(self.area.text()), self.additional_services_list), self.starting_time).strftime(
"%H:%M"))
# päivitetään valittu aika seuraavaan vapaaseen aikaan
def update_next_available_time(self):
self.price_label.setText(str(self.get_price()) + " €")
self.calendar = Calendar(int(self.area.text()), self.additional_services_list, self.reservation_system)
self.calendar.starting_time_to_next_free()
self.starting_time = self.calendar.time_clicked
self.calendar_button.setText(self.calendar.time_clicked.strftime("%d.%m.%Y %H:%M"))
self.set_calendar_button_text()
# lisätään/poistetaan uunin siivous palveluista ja päivitetään seuraava vapaa aika valituksi ajaksi
def oven_clicked(self):
......@@ -227,9 +241,8 @@ class ReservationWidget(QGroupBox):
# vaihdetaan päivä valittuun päivään
def change_date(self):
self.calendar.change_day()
self.starting_time = self.calendar.time_clicked
self.calendar_button.setText(self.calendar.time_clicked.strftime("%d.%m.%Y %H:%M"))
self.set_calendar_button_text()
self.calendar = Calendar(int(self.area.text()), self.additional_services_list, self.reservation_system)
self.calendar.close()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment