Python Forum

Full Version: Date for Parking price PyQt5
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,
I'm writing project Parking meter in PyQt5, 
I tried something like that: 

# -*- coding: utf-8 -*-



# Form implementation generated from reading ui file 'GUI-Design.ui'
#
# Created by: PyQt5 UI code generator 5.8.2
#
# WARNING! All changes made in this file will be lost!


from Checkout import *
import sys
from PyQt5.QtWidgets import QApplication

_translate = QtCore.QCoreApplication.translate


class DialogGUI(QtWidgets.QDialog):
    price = int
    def __init__(self,parent=None):
        super(DialogGUI,self).__init__(parent)
        self.setupUi(self)
        self.dialogCheckout = CheckoutGUI(self)

    def setupUi(self, Dialog):
        self.out=CheckoutGUI()
        Dialog.setObjectName("Dialog")
        Dialog.resize(600, 500)
        self.setWindowIcon(QIcon('parkingicon.png'))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(False)
        font.setWeight(50)
        Dialog.setFont(font)
        Dialog.setFocusPolicy(QtCore.Qt.NoFocus)

        self.label = QtWidgets.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(90, 40, 411, 31))
        font = QtGui.QFont()
        font.setPointSize(15)
        self.label.setFont(font)
        self.label.setObjectName("label")

        self.label_2 = QtWidgets.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(200, 230, 191, 21))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")

        self.lineEdit = QtWidgets.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(190, 260, 211, 31))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.lineEdit.setFont(font)
        self.lineEdit.setMouseTracking(False)
        self.lineEdit.setText("")
        self.lineEdit.setDragEnabled(True)
        self.lineEdit.setObjectName("lineEdit")

        self.label_3 = QtWidgets.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(210, 150, 181, 21))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_3.setFont(font)
        self.label_3.setObjectName("label_3")

        self.dateTimeEdit = QtWidgets.QDateTimeEdit(Dialog)
        self.dateTimeEdit.setGeometry(QtCore.QRect(190, 180, 211, 31))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.dateTimeEdit.setFont(font)
        self.dateTimeEdit.setMaximumDate(QtCore.QDate(7999, 12, 29))
        self.dateTimeEdit.setMinimumDateTime(QtCore.QDateTime.currentDateTime())
        self.dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime())#.addSecs(3600))
        self.dateTimeEdit.setCalendarPopup(False)
        self.dateTimeEdit.setObjectName("dateTimeEdit")

        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(220, 400, 141, 41))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.pushButton.setFont(font)
        self.pushButton.setMouseTracking(False)
        self.pushButton.setDefault(False)
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.enter)


        self.label_4 = QtWidgets.QLabel(Dialog)
        self.label_4.setGeometry(QtCore.QRect(150, 330, 291, 51))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.label_4.setFont(font)
        self.label_4.setObjectName("label_4")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        self.price=0
        Dialog.setWindowTitle(_translate("Dialog", "Parkomat"))
        currentTime = QtCore.QDateTime.toString(QtCore.QDateTime.currentDateTime(), format("dd.MM.yyyy hh:mm"))
        self.label.setText(_translate("Dialog", "Aktualna data:\t\t"+currentTime))
        self.label_2.setText(_translate("Dialog", "Wprowadź nr. rejestracji"))
        self.label_3.setText(_translate("Dialog", "Wybierz date oraz czas"))
        self.pushButton.setText(_translate("Dialog", "Zapłać !"))
        self.label_4.setText(_translate("Dialog", "Cena do zapłaty: \t"+str(self.price))+"\t zł")

    def enter(self):
        numberPlate = self.lineEdit.text()
        datePlate = self.dateTimeEdit.text()
        print(numberPlate)
        print(datePlate)

        self.cost()

        self.dialogCheckout.exec_()

    def cost(self):
        if self.dateTimeEdit.dateTime().secsTo(QtCore.QDateTime.currentDateTime()) >= -3600:
            self.price = 2
            self.label_4.setText(_translate("Dialog", "Cena do zapłaty: \t" + str(self.price)) + "\t zł")
            print(self.dateTimeEdit.dateTime().secsTo(QtCore.QDateTime.currentDateTime()))
        elif self.dateTimeEdit.dateTime().secsTo(QtCore.QDateTime.currentDateTime()) <-3600:
            self.price += 4
            self.label_4.setText(_translate("Dialog", "Cena do zapłaty: \t" + str(self.price)) + "\t zł")
            print(self.dateTimeEdit.dateTime().secsTo(QtCore.QDateTime.currentDateTime()))
        elif self.dateTimeEdit.dateTime().secsTo(QtCore.QDateTime.currentDateTime()) <= -86340 and self.dateTimeEdit.dateTime().secsTo(QtCore.QDateTime.currentDateTime()) >= -84460:
            self.price = 100
            self.label_4.setText(_translate("Dialog", "Cena do zapłaty: \t" + str(self.price)) + "\t zł")
            print(self.dateTimeEdit.dateTime().secsTo(QtCore.QDateTime.currentDateTime()))
I must calculate parking price with this rulers:
- 1st hour 2 euro
- nexts hours 4 euro
- 24 hours 100 euro
- 48 hours 250 euro
- 1 week 1800 euro
- 1 month (4 weeks) 7500 euro
-Parking 8:00 to 8:01 -price like 1st hour
- Parking 8:00-9:01 -price for 2 hours(1rs+next hour)
- 25h (24h+1st)
-26h(24+next h+1st)
-72h(48h+24h)
-75h(48h+24h+next h+1st)
-8days =(1 week+24h)
etc.

How can i do it?