Python Forum
Date for Parking price PyQt5
Thread Rating:
  • 2 Vote(s) - 3.5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Date for Parking price PyQt5
#1
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?
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Compare current date on calendar with date format file name Fioravanti 1 116 Mar-26-2024, 08:23 AM
Last Post: Pedroski55
  Python date format changes to date & time 1418 4 514 Jan-20-2024, 04:45 AM
Last Post: 1418
  Finding the price based on industry and number of transactions chandramouliarun 0 897 Jul-26-2022, 07:36 PM
Last Post: chandramouliarun
  class - calculate total price of copies 3lnyn0 1 1,526 Dec-12-2021, 11:43 PM
Last Post: BashBedlam
  "ModuleNotFoundError: No module named 'PyQt5.QtWidgets'; 'PyQt5' is not a package" chipx 3 7,241 Dec-09-2021, 07:05 AM
Last Post: chipx
  Date format and past date check function Turtle 5 4,066 Oct-22-2021, 09:45 PM
Last Post: deanhystad
Exclamation Invalid syntax error(Predict Ethereum Price) lulu43366 2 3,093 Sep-24-2021, 01:24 PM
Last Post: lulu43366
  How to add previous date infront of every unique customer id's invoice date ur_enegmatic 1 2,190 Feb-06-2021, 10:48 PM
Last Post: eddywinch82
  An important question is how to create a zigzag in price data? epsilon 0 1,273 Nov-18-2020, 08:06 PM
Last Post: epsilon
  How to add date and years(integer) to get a date NG0824 4 2,802 Sep-03-2020, 02:25 PM
Last Post: NG0824

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020