Skip to content
Snippets Groups Projects
Commit 6cb95917 authored by Gerald Abraham Sianturi's avatar Gerald Abraham Sianturi
Browse files

Adding updated label feature after click button

parent ac300171
1 merge request!5Develop
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtGui, QtWidgets
from db import db, mycursor, name_cred from db import db, mycursor, name_cred
from datetime import date from datetime import date, datetime
from input_data import * from input_data import *
performance = { performance = {
...@@ -36,6 +36,7 @@ class summary_data(QtWidgets.QWidget): ...@@ -36,6 +36,7 @@ class summary_data(QtWidgets.QWidget):
self.retranslateUi() self.retranslateUi()
QtCore.QMetaObject.connectSlotsByName(self.Frame) QtCore.QMetaObject.connectSlotsByName(self.Frame)
# * Frame component
def setupLabel(self): def setupLabel(self):
self.label = QtWidgets.QLabel(self.Frame) self.label = QtWidgets.QLabel(self.Frame)
self.label.setGeometry(QtCore.QRect(180, 20, 291, 81)) self.label.setGeometry(QtCore.QRect(180, 20, 291, 81))
...@@ -95,12 +96,15 @@ class summary_data(QtWidgets.QWidget): ...@@ -95,12 +96,15 @@ class summary_data(QtWidgets.QWidget):
self.pushButton_weekly.setObjectName("pushButton_weekly") self.pushButton_weekly.setObjectName("pushButton_weekly")
self.pushButton_weekly.setGeometry(QtCore.QRect(210, 80, 91, 31)) self.pushButton_weekly.setGeometry(QtCore.QRect(210, 80, 91, 31))
self.pushButton_weekly.setStyleSheet("background-color: rgb(41, 255, 148);") self.pushButton_weekly.setStyleSheet("background-color: rgb(41, 255, 148);")
self.pushButton_weekly.clicked.connect(lambda: self.updateContent("Weekly"))
def setupPushButtonMonthly(self): def setupPushButtonMonthly(self):
self.pushButton_monthly = QtWidgets.QPushButton(self.Frame) self.pushButton_monthly = QtWidgets.QPushButton(self.Frame)
self.pushButton_monthly.setObjectName("pushButton_monthly") self.pushButton_monthly.setObjectName("pushButton_monthly")
self.pushButton_monthly.setGeometry(QtCore.QRect(340, 80, 91, 31)) self.pushButton_monthly.setGeometry(QtCore.QRect(340, 80, 91, 31))
self.pushButton_monthly.clicked.connect(lambda: self.updateContent("Monthly"))
# * Set the initial filling
def retranslateUi(self): def retranslateUi(self):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
self.Frame.setWindowTitle(_translate("Frame", "Frame")) self.Frame.setWindowTitle(_translate("Frame", "Frame"))
...@@ -110,25 +114,58 @@ class summary_data(QtWidgets.QWidget): ...@@ -110,25 +114,58 @@ class summary_data(QtWidgets.QWidget):
self.pushButton_weekly.setText(_translate("Frame", "Weekly")) self.pushButton_weekly.setText(_translate("Frame", "Weekly"))
self.pushButton_monthly.setText(_translate("Frame", "Monthly")) self.pushButton_monthly.setText(_translate("Frame", "Monthly"))
self.label_electricity.setText(_translate("Frame", "Electricity summary")) self.label_electricity.setText(_translate("Frame", "Electricity summary"))
self.label_total.setText(_translate("Frame", "Total summary")) self.label_motorbike.setText(f"Motorbike summary\n{self.sumMotorbikeEmission('Weekly')} km")
self.label_motorbike.setText(_translate("Frame", "Motorbike summary")) self.label_electricity.setText(f"Electricity summary\n{self.sumElectricityEmission('Weekly')} kWh")
# * Utility for filling
def createFont(self, fontName, fontSize): def createFont(self, fontName, fontSize):
font = QtGui.QFont() font = QtGui.QFont()
font.setFamily(fontName) font.setFamily(fontName)
font.setPointSize(fontSize) font.setPointSize(fontSize)
return font return font
def updateContent(self, period):
self.label_motorbike.setText(f"Motorbike summary\n{self.sumMotorbikeEmission(period)} km")
self.label_electricity.setText(f"Electricity summary\n{self.sumElectricityEmission(period)} kWh")
def sumMotorbikeEmission(self): # * Measurement utility
mycursor.execute(f"SELECT SUM(KuantitasJarakMotor) FROM carbon_trace WHERE ID_Customer = {id_cred}") def sumMotorbikeEmission(self, period):
if(period == "Weekly"):
dateBegin, dateLast = self.getRangeDate()
mycursor.execute(f"SELECT SUM(KuantitasJarakMotor) FROM carbon_trace WHERE ID_Customer = {id_cred} AND TanggalInput BETWEEN '{dateBegin}' AND '{dateLast}'")
elif(period == "Monthly"):
today = date.today()
mycursor.execute(f"SELECT SUM(KuantitasJarakMotor) FROM carbon_trace WHERE ID_Customer = {id_cred} AND MONTH(TanggalInput) = {today.month} AND YEAR(TanggalInput) = {today.year}")
val = mycursor.fetchall() val = mycursor.fetchall()
if val[0][0] is None:
return 0
return val[0][0] return val[0][0]
def sumElectricityEmission(self): def sumElectricityEmission(self, period):
mycursor.execute(f"SELECT SUM(KuantitasListrik) FROM carbon_trace WHERE ID_Customer = {id_cred}") if(period == "Weekly"):
dateBegin, dateLast = self.getRangeDate()
mycursor.execute(f"SELECT SUM(KuantitasListrik) FROM carbon_trace WHERE ID_Customer = {id_cred} AND TanggalInput BETWEEN '{dateBegin}' AND '{dateLast}'")
elif(period == "Monthly"):
today = date.today()
mycursor.execute(f"SELECT SUM(KuantitasListrik) FROM carbon_trace WHERE ID_Customer = {id_cred} AND MONTH(TanggalInput) = {today.month} AND YEAR(TanggalInput) = {today.year}")
val = mycursor.fetchall() val = mycursor.fetchall()
if val[0][0] is None:
return 0
return val[0][0] return val[0][0]
def getRangeDate(self):
today = date.today()
if today.strftime("%A") == "Monday":
lastMonday = today
else:
lastMonday = today - datetime.timedelta(days=today.weekday())
if today.strftime("%A") == "Sunday":
nextSunday = today
else:
nextSunday = today + datetime.timedelta( (6-today.weekday()) % 7 )
return lastMonday, nextSunday
# if __name__ == "__main__": # if __name__ == "__main__":
# import sys # import sys
# app = QtWidgets.QApplication(sys.argv) # app = QtWidgets.QApplication(sys.argv)
......
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