1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gapyanpeng-Pandora

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
opvrIclustercalculatie.py 53 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Dirk Jansen Отправлено 04.02.2020 13:05 9eb62bc
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073
from login import hoofdMenu
import os, datetime
from PyQt5.QtCore import Qt, QAbstractTableModel, QRegExp
from PyQt5.QtGui import QFont, QPixmap, QIcon, QRegExpValidator
from PyQt5.QtWidgets import QDialog, QLabel, QGridLayout,\
QPushButton, QMessageBox, QLineEdit, QWidget, QTableView, QVBoxLayout
from sqlalchemy import (Table, Column, Integer, String, Float,\
MetaData, create_engine, ForeignKey)
from sqlalchemy.sql import select, update, insert, and_, func
def windowSluit(self, m_email):
self.close()
hoofdMenu(m_email)
def calcBestaatniet():
msg = QMessageBox()
msg.setStyleSheet("color: black; background-color: gainsboro")
msg.setWindowIcon(QIcon('./images/logos/logo.jpg'))
msg.setIcon(QMessageBox.Warning)
msg.setText('Calculatie is niet aanwezig!')
msg.setWindowTitle('INVOEREN')
msg.exec_()
def printing():
msg = QMessageBox()
msg.setStyleSheet("color: black; background-color: gainsboro")
msg.setWindowIcon(QIcon('./images/logos/logo.jpg'))
msg.setIcon(QMessageBox.Information)
msg.setText('Ogenblik afdrukken wordt gestart!')
msg.setWindowTitle('AFDRUKKEN')
msg.exec_()
def zoekCalculatie(m_email):
class Widget(QDialog):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
self.setWindowTitle("Calculeren / Opvragen / Printen")
self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
self.setFont(QFont('Arial', 10))
self.Calculatie = QLabel()
zkcalcEdit = QLineEdit()
zkcalcEdit.setFixedWidth(100)
zkcalcEdit.setFont(QFont("Arial",10))
zkcalcEdit.textChanged.connect(self.zkcalcChanged)
reg_ex = QRegExp('^[1-9]{1}[0-9]{0,8}$')
input_validator = QRegExpValidator(reg_ex, zkcalcEdit)
zkcalcEdit.setValidator(input_validator)
grid = QGridLayout()
grid.setSpacing(20)
lbl = QLabel()
pixmap = QPixmap('./images/logos/verbinding.jpg')
lbl.setPixmap(pixmap)
grid.addWidget(lbl , 0, 0, 1, 2)
lbl1 = QLabel('Calculatienummer\nof werkorder.')
lbl1.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
grid.addWidget(lbl1, 1, 0)
grid.addWidget(zkcalcEdit, 1, 1)
self.setLayout(grid)
self.setGeometry(500, 300, 150, 150)
grid.addWidget(QLabel('\u00A9 2017 all rights reserved dj.jansen@casema.nl'), 4, 0, 1, 2, Qt.AlignCenter)
logo = QLabel()
pixmap = QPixmap('./images/logos/logo.jpg')
logo.setPixmap(pixmap)
grid.addWidget(logo , 0, 1, 1, 1, Qt.AlignRight)
applyBtn = QPushButton('Zoeken')
applyBtn.clicked.connect(self.accept)
grid.addWidget(applyBtn, 3, 1)
applyBtn.setFont(QFont("Arial",10))
applyBtn.setFixedWidth(100)
applyBtn.setStyleSheet("color: black; background-color: gainsboro")
cancelBtn = QPushButton('Sluiten')
cancelBtn.clicked.connect(lambda: windowSluit(self, m_email))
grid.addWidget(cancelBtn, 3, 0, 1, 1,Qt.AlignRight)
cancelBtn.setFont(QFont("Arial",10))
cancelBtn.setFixedWidth(100)
cancelBtn.setStyleSheet("color: black; background-color: gainsboro")
def zkcalcChanged(self, text):
self.Calculatie.setText(text)
def returnCalculatie(self):
return self.Calculatie.text()
@staticmethod
def getData(parent=None):
dialog = Widget(parent)
dialog.exec_()
return [dialog.returnCalculatie()]
window = Widget()
data = window.getData()
metadata = MetaData()
icalculaties = Table('icalculaties', metadata,
Column('icalculatie', Integer),
Column('werkomschrijving', String),
Column('verwerkt', Integer),
Column('koppelnummer', Integer))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
if not data[0]:
return(0)
elif data[0][0]=='7'and len(data[0]) == 9:
mcalnr = data[0]
selcl = select([icalculaties]).where(icalculaties.c.koppelnummer == int(mcalnr))
rpcl = con.execute(selcl).first()
elif data[0] and len(data[0]) <9:
mcalnr = data[0]
selcl = select([icalculaties]).where(icalculaties.c.icalculatie == int(mcalnr))
rpcl = con.execute(selcl).first()
else:
calcBestaatniet()
zoekCalculatie(m_email)
if not rpcl:
calcBestaatniet()
zoekCalculatie(m_email)
elif rpcl and (not rpcl[2]):
opbouwRp(rpcl[0], rpcl[1], rpcl[2], m_email)
elif rpcl and rpcl[2]:
opvragenCalc(rpcl[0], rpcl[1], rpcl[2], m_email)
def opvragenCalc(mcalnr, mwerkomschr,mverw, m_email):
class MainWindow(QDialog):
def __init__(self):
QDialog.__init__(self)
grid = QGridLayout()
grid.setSpacing(20)
self.lbl = QLabel()
self.pixmap = QPixmap('./images/logos/verbinding.jpg')
self.lbl.setPixmap(self.pixmap)
grid.addWidget(self.lbl , 0, 1)
self.logo = QLabel()
self.pixmap = QPixmap('./images/logos/logo.jpg')
self.logo.setPixmap(self.pixmap)
grid.addWidget(self.logo , 0, 2, 1, 1, Qt.AlignRight)
self.setFont(QFont('Arial', 10))
grid.addWidget(QLabel('Calculatie: '+str(mcalnr)), 1, 1, 1, 3)
grid.addWidget(QLabel(mwerkomschr[0:35]), 2 , 1, 1, 3)
self.setWindowTitle("Calculatie opvragen / printen")
self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
grid.addWidget(QLabel('\u00A9 2017 all rights reserved\n dj.jansen@casema.nl'), 6, 0, 2, 3, Qt.AlignCenter)
self.printBtn = QPushButton('Calculatie\nPrinten')
self.printBtn.clicked.connect(lambda: printCalculatie(mcalnr))
grid.addWidget(self.printBtn, 4, 2)
self.printBtn.setFont(QFont("Arial",10))
self.printBtn.setFixedWidth(100)
self.printBtn.setStyleSheet("color: black; background-color: gainsboro")
self.artprintBtn = QPushButton('Artikellijst\nPrinten')
self.artprintBtn.clicked.connect(lambda: printArtikellijst(mcalnr))
grid.addWidget(self.artprintBtn, 4, 1, 1, 1, Qt.AlignRight)
self.artprintBtn.setFont(QFont("Arial",10))
self.artprintBtn.setFixedWidth(100)
self.artprintBtn.setStyleSheet("color: black; background-color: gainsboro")
self.toonBtn = QPushButton('Calculatie\nOpvragen')
self.toonBtn.clicked.connect(lambda: toonCalculatie(mcalnr))
grid.addWidget(self.toonBtn, 5, 2)
self.toonBtn.setFont(QFont("Arial",10))
self.toonBtn.setFixedWidth(100)
self.toonBtn.setStyleSheet("color: black; background-color: gainsboro")
self.artlijstBtn = QPushButton('Artikellijst\nOpvragen')
self.artlijstBtn.clicked.connect(lambda: toonArtikellijst(mcalnr))
grid.addWidget(self.artlijstBtn,5, 1, 1, 1, Qt.AlignRight)
self.artlijstBtn.setFont(QFont("Arial",10))
self.artlijstBtn.setFixedWidth(100)
self.artlijstBtn.setStyleSheet("color: black; background-color: gainsboro")
self.terugBtn = QPushButton('T\ne\nr\nu\ng')
self.terugBtn.clicked.connect(self.close)
grid.addWidget(self.terugBtn, 4, 1, 5, 1, Qt.AlignTop)
self.terugBtn.setFont(QFont("Arial", 10))
self.terugBtn.setFixedWidth(40)
self.terugBtn.setFixedHeight(115)
self.terugBtn.setStyleSheet("color: black; background-color: gainsboro")
self.setLayout(grid)
self.setGeometry(500, 100, 150, 150)
mainWin = MainWindow()
mainWin.exec_()
zoekCalculatie(m_email)
def opbouwRp(mcalnr, mwerkomschr, mverw, m_email):
metadata = MetaData()
icalculaties = Table('icalculaties', metadata,
Column('icalcID', Integer(), primary_key=True),
Column('iclusterID', None, ForeignKey('iclusters.iclusterID')),
Column('hoeveelheid', Float),
Column('icalculatie', Integer),
Column('materialen', Float))
icluster_artikelen = Table('icluster_artikelen', metadata,
Column('icluster_artID',Integer, primary_key=True),
Column('artikelID', None, ForeignKey('artikelen.artikelID')),
Column('iclusterID', None, ForeignKey('iclusters.iclusterID')),
Column('hoeveelheid', Float))
artikelen = Table('artikelen', metadata,
Column('artikelID', Integer(), primary_key=True),
Column('artikelprijs', Float))
params = Table('params', metadata,
Column('paramID', Integer, primary_key=True),
Column('tarief', Float),
Column('item', String))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selpar = select([params]).order_by(params.c.paramID)
rppar = con.execute(selpar).fetchall()
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selmat=select([icalculaties, icluster_artikelen, artikelen]).where(and_(\
icalculaties.c.icalculatie == mcalnr,\
icalculaties.c.iclusterID == icluster_artikelen.c.iclusterID,\
icluster_artikelen.c.artikelID == artikelen.c.artikelID))
rpmat = con.execute(selmat)
for rij in rpmat:
updcalmat = update(icalculaties).where(and_(icalculaties.c.icalculatie ==\
mcalnr, icalculaties.c.iclusterID == rij[1],\
icluster_artikelen.c.artikelID == rij[9])).values(\
materialen = icalculaties.c.materialen+rij[2]*rij[8]*rij[10]*(1+rppar[6][1]))
con.execute(updcalmat)
metadata = MetaData()
icalculaties = Table('icalculaties', metadata,
Column('icalcID', Integer(), primary_key=True),
Column('iclusterID', None, ForeignKey('iclusters.iclusterID')),
Column('koppelnummer', Integer),
Column('icalculatie', Integer),
Column('omschrijving', String),
Column('hoeveelheid', Float),
Column('eenheid', String),
Column('prijs', Float),
Column('materialen', Float),
Column('lonen', Float),
Column('szagen', Float),
Column('zagen', Float),
Column('sschaven', Float),
Column('schaven', Float),
Column('ssteken', Float),
Column('steken', Float),
Column('sboren', Float),
Column('boren', Float),
Column('sfrezen', Float),
Column('frezen', Float),
Column('sdraaien_klein', Float),
Column('draaien_klein', Float),
Column('sdraaien_groot', Float),
Column('draaien_groot', Float),
Column('stappen', Float),
Column('tappen', Float),
Column('snube_draaien', Float),
Column('nube_draaien', Float),
Column('snube_bewerken', Float),
Column('nube_bewerken', Float),
Column('sknippen', Float),
Column('knippen', Float),
Column('skanten', Float),
Column('kanten', Float),
Column('sstansen', Float),
Column('stansen', Float),
Column('slassen_co2', Float),
Column('lassen_co2', Float),
Column('slassen_hand', Float),
Column('lassen_hand', Float),
Column('sverpakken', Float),
Column('verpakken', Float),
Column('sverzinken', Float),
Column('verzinken', Float),
Column('smoffelen', Float),
Column('moffelen', Float),
Column('sschilderen', Float),
Column('schilderen', Float),
Column('sspuiten', Float),
Column('spuiten', Float),
Column('sponsen', Float),
Column('ponsen', Float),
Column('spersen', Float),
Column('persen', Float),
Column('sgritstralen', Float),
Column('gritstralen', Float),
Column('smontage', Float),
Column('montage', Float),
Column('werkomschrijving', String),
Column('verwerkt', Integer))
iclusters = Table('iclusters', metadata,
Column('iclusterID', Integer(), primary_key=True),
Column('omschrijving', String),
Column('prijs', Float),
Column('eenheid', String),
Column('materialen', Float),
Column('lonen', Float),
Column('szagen', Float),
Column('zagen', Float),
Column('sschaven', Float),
Column('schaven', Float),
Column('ssteken', Float),
Column('steken', Float),
Column('sboren', Float),
Column('boren', Float),
Column('sfrezen', Float),
Column('frezen', Float),
Column('sdraaien_klein', Float),
Column('draaien_klein', Float),
Column('sdraaien_groot', Float),
Column('draaien_groot', Float),
Column('stappen', Float),
Column('tappen', Float),
Column('snube_draaien', Float),
Column('nube_draaien', Float),
Column('snube_bewerken', Float),
Column('nube_bewerken', Float),
Column('sknippen', Float),
Column('knippen', Float),
Column('skanten', Float),
Column('kanten', Float),
Column('sstansen', Float),
Column('stansen', Float),
Column('slassen_co2', Float),
Column('lassen_co2', Float),
Column('slassen_hand', Float),
Column('lassen_hand', Float),
Column('sverpakken', Float),
Column('verpakken', Float),
Column('sverzinken', Float),
Column('verzinken', Float),
Column('smoffelen', Float),
Column('moffelen', Float),
Column('sschilderen', Float),
Column('schilderen', Float),
Column('sspuiten', Float),
Column('spuiten', Float),
Column('sponsen', Float),
Column('ponsen', Float),
Column('spersen', Float),
Column('persen', Float),
Column('sgritstralen', Float),
Column('gritstralen', Float),
Column('smontage', Float),
Column('montage', Float))
icluster_artikelen = Table('icluster_artikelen', metadata,
Column('icluster_artID',Integer, primary_key=True),
Column('artikelID', None, ForeignKey('artikelen.artikelID')),
Column('iclusterID', None, ForeignKey('iclusters.iclusterID')),
Column('hoeveelheid', Float))
artikelen = Table('artikelen', metadata,
Column('artikelID', Integer(), primary_key=True),
Column('artikelomschrijving', String),
Column('artikelprijs', Float),
Column('art_eenheid', String))
materiaallijsten = Table('materiaallijsten', metadata,
Column('matlijstID', Integer, primary_key=True),
Column('icalculatie', Integer),
Column('hoeveelheid', Float),
Column('artikelID', None, ForeignKey('artikelen.artikelID')),
Column('artikelprijs', Float),
Column('subtotaal', Float),
Column('resterend', Float))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selcalc = select([icalculaties, iclusters]).where(and_(icalculaties.c\
.icalculatie == int(mcalnr), icalculaties.c.iclusterID == iclusters.c.iclusterID))
rpcalc = con.execute(selcalc)
selclart = select([icluster_artikelen,artikelen]).where(and_(icluster_artikelen.c.\
artikelID == artikelen.c.artikelID, icalculaties.c.iclusterID ==\
icluster_artikelen.c.iclusterID, icalculaties.c.icalculatie == (int(mcalnr))))\
.order_by(icluster_artikelen.c.iclusterID, icluster_artikelen.c.artikelID)
rpclart = con.execute(selclart)
for record in rpcalc:
updcalc = update(icalculaties).where(and_(icalculaties.c.icalculatie == record[3],\
icalculaties.c.iclusterID == iclusters.c.iclusterID)).values(verwerkt = 1,\
zagen = (icalculaties.c.zagen+iclusters.c.zagen)*icalculaties.c.hoeveelheid,\
szagen = icalculaties.c.szagen+iclusters.c.szagen,\
schaven = (icalculaties.c.schaven+iclusters.c.schaven)*icalculaties.c.hoeveelheid,\
sschaven = icalculaties.c.sschaven+iclusters.c.schaven,\
steken = (icalculaties.c.steken+iclusters.c.steken)*icalculaties.c.hoeveelheid,\
ssteken = icalculaties.c.ssteken+iclusters.c.steken,\
boren = (icalculaties.c.boren+iclusters.c.boren)*icalculaties.c.hoeveelheid,\
sboren = icalculaties.c.sboren+iclusters.c.sboren,\
frezen = (icalculaties.c.frezen+iclusters.c.frezen)*icalculaties.c.hoeveelheid,\
sfrezen = icalculaties.c.sfrezen+iclusters.c.sfrezen,\
draaien_klein = (icalculaties.c.draaien_klein+iclusters.c.draaien_klein)*icalculaties.c.hoeveelheid,\
sdraaien_klein = icalculaties.c.sdraaien_klein+iclusters.c.sdraaien_klein,\
draaien_groot = (icalculaties.c.draaien_groot+iclusters.c.draaien_groot)*icalculaties.c.hoeveelheid,\
sdraaien_groot = icalculaties.c.sdraaien_groot+iclusters.c.sdraaien_groot,\
tappen = (icalculaties.c.tappen+iclusters.c.tappen)*icalculaties.c.hoeveelheid,\
stappen = icalculaties.c.stappen+iclusters.c.stappen,\
nube_draaien = (icalculaties.c.nube_draaien+iclusters.c.nube_draaien)*icalculaties.c.hoeveelheid,\
snube_draaien = icalculaties.c.snube_draaien+iclusters.c.snube_draaien,\
nube_bewerken = (icalculaties.c.nube_bewerken+iclusters.c.nube_bewerken)*icalculaties.c.hoeveelheid,\
snube_bewerken = icalculaties.c.snube_bewerken+iclusters.c.snube_bewerken,\
knippen = (icalculaties.c.knippen+iclusters.c.knippen)*icalculaties.c.hoeveelheid,\
sknippen = icalculaties.c.sknippen+iclusters.c.sknippen,\
kanten = (icalculaties.c.kanten+iclusters.c.kanten)*icalculaties.c.hoeveelheid,\
skanten = icalculaties.c.skanten+iclusters.c.skanten,\
stansen = (icalculaties.c.stansen+iclusters.c.stansen)*icalculaties.c.hoeveelheid,\
sstansen = icalculaties.c.sstansen+iclusters.c.sstansen,\
lassen_co2 = (icalculaties.c.lassen_co2+iclusters.c.lassen_co2)*icalculaties.c.hoeveelheid,\
slassen_co2 = icalculaties.c.slassen_co2+iclusters.c.slassen_co2,\
lassen_hand = (icalculaties.c.lassen_hand+iclusters.c.lassen_hand)*icalculaties.c.hoeveelheid,\
slassen_hand = icalculaties.c.slassen_hand+iclusters.c.slassen_hand,\
verpakken = (icalculaties.c.verpakken+iclusters.c.verpakken)*icalculaties.c.hoeveelheid,\
sverpakken = icalculaties.c.sverpakken+iclusters.c.sverpakken,\
verzinken = (icalculaties.c.verzinken+iclusters.c.verzinken)*icalculaties.c.hoeveelheid,\
sverzinken = icalculaties.c.sverzinken+iclusters.c.sverzinken,\
moffelen = (icalculaties.c.moffelen+iclusters.c.moffelen)*icalculaties.c.hoeveelheid,\
smoffelen = icalculaties.c.smoffelen+iclusters.c.smoffelen,\
schilderen = (icalculaties.c.schilderen+iclusters.c.schilderen)*icalculaties.c.hoeveelheid,\
sschilderen = icalculaties.c.sschilderen+iclusters.c.sschilderen,\
spuiten = (icalculaties.c.spuiten+iclusters.c.spuiten)*icalculaties.c.hoeveelheid,\
sspuiten = icalculaties.c.sspuiten+iclusters.c.sspuiten,\
ponsen = (icalculaties.c.ponsen+iclusters.c.ponsen)*icalculaties.c.hoeveelheid,\
sponsen = icalculaties.c.sponsen+iclusters.c.sponsen,\
persen = (icalculaties.c.persen+iclusters.c.persen)*icalculaties.c.hoeveelheid,\
spersen = icalculaties.c.spersen+iclusters.c.spersen,\
gritstralen = (icalculaties.c.gritstralen+iclusters.c.gritstralen)*icalculaties.c.hoeveelheid,\
sgritstralen = icalculaties.c.sgritstralen+iclusters.c.sgritstralen,\
montage = (icalculaties.c.montage+iclusters.c.montage)*icalculaties.c.hoeveelheid,\
smontage = icalculaties.c.smontage+iclusters.c.smontage,\
lonen = (icalculaties.c.zagen+iclusters.c.zagen)*rppar[72][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.szagen+iclusters.c.szagen)*rppar[72][1]+\
(icalculaties.c.schaven+iclusters.c.schaven)*rppar[73][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sschaven+iclusters.c.sschaven)*rppar[73][1]+\
(icalculaties.c.steken+iclusters.c.steken)*rppar[74][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.ssteken+iclusters.c.ssteken)*rppar[74][1]+\
(icalculaties.c.boren+iclusters.c.boren)*rppar[75][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sboren+iclusters.c.sboren)*rppar[75][1]+\
(icalculaties.c.frezen+iclusters.c.frezen)*rppar[76][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sfrezen+iclusters.c.sfrezen)*rppar[76][1]+\
(icalculaties.c.draaien_klein+iclusters.c.draaien_klein)*rppar[77][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sdraaien_klein+iclusters.c.sdraaien_klein)*rppar[77][1]+\
(icalculaties.c.draaien_groot+iclusters.c.draaien_groot)*rppar[78][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sdraaien_groot+iclusters.c.sdraaien_groot)*rppar[78][1]+\
(icalculaties.c.tappen+iclusters.c.tappen)*rppar[79][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.stappen+iclusters.c.stappen)*rppar[79][1]+\
(icalculaties.c.nube_draaien+iclusters.c.nube_draaien)*rppar[80][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.snube_draaien+iclusters.c.snube_draaien)*rppar[80][1]+\
(icalculaties.c.nube_bewerken+iclusters.c.nube_bewerken)*rppar[81][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.snube_bewerken+iclusters.c.snube_bewerken)*rppar[81][1]+\
(icalculaties.c.knippen+iclusters.c.knippen)*rppar[82][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sknippen+iclusters.c.sknippen)*rppar[82][1]+\
(icalculaties.c.kanten+iclusters.c.kanten)*rppar[83][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.skanten+iclusters.c.skanten)*rppar[83][1]+\
(icalculaties.c.stansen+iclusters.c.stansen)*rppar[84][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sstansen+iclusters.c.sstansen)*rppar[84][1]+\
(icalculaties.c.lassen_co2+iclusters.c.lassen_co2)*rppar[85][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.slassen_co2+iclusters.c.slassen_co2)*rppar[85][1]+\
(icalculaties.c.lassen_hand+iclusters.c.lassen_hand)*rppar[86][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.slassen_hand+iclusters.c.slassen_hand)*rppar[86][1]+\
(icalculaties.c.verpakken+iclusters.c.verpakken)*rppar[87][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sverpakken+iclusters.c.sverpakken)*rppar[87][1]+\
(icalculaties.c.verzinken+iclusters.c.verzinken)*rppar[88][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sverzinken+iclusters.c.sverzinken)*rppar[88][1]+\
(icalculaties.c.moffelen+iclusters.c.moffelen)*rppar[89][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.smoffelen+iclusters.c.smoffelen)*rppar[89][1]+\
(icalculaties.c.schilderen+iclusters.c.schilderen)*rppar[90][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sschilderen+iclusters.c.sschilderen)*rppar[90][1]+\
(icalculaties.c.spuiten+iclusters.c.spuiten)*rppar[91][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sspuiten+iclusters.c.sspuiten)*rppar[91][1]+\
(icalculaties.c.ponsen+iclusters.c.ponsen)*rppar[92][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sponsen+iclusters.c.sponsen)*rppar[92][1]+\
(icalculaties.c.persen+iclusters.c.persen)*rppar[93][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.spersen+iclusters.c.spersen)*rppar[93][1]+\
(icalculaties.c.gritstralen+iclusters.c.gritstralen)*rppar[94][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.sgritstralen+iclusters.c.sgritstralen)*rppar[94][1]+\
(icalculaties.c.montage+iclusters.c.montage)*rppar[95][1]*icalculaties.c.hoeveelheid+\
(icalculaties.c.smontage+iclusters.c.smontage)*rppar[95][1])
con.execute(updcalc)
for row in rpclart:
selart = select([materiaallijsten.c.artikelID, materiaallijsten.c.icalculatie]).where(and_(materiaallijsten.\
c.artikelID == row[1], materiaallijsten.c.icalculatie == record[3]))
rpart = con.execute(selart).first()
if rpart:
updmatlijst = update(materiaallijsten).where(and_(materiaallijsten.c.\
artikelID == row[1], materiaallijsten.c.icalculatie == record[3]))\
.values(hoeveelheid = materiaallijsten.c.hoeveelheid+(record[5]*row[3]),\
artikelprijs = row[6]*(1+rppar[6][1]), subtotaal = materiaallijsten.\
c.subtotaal+record[5]*row[3]*row[6]*(1+rppar[6][1]))
con.execute(updmatlijst)
elif not rpart:
mmatlijstnr = (con.execute(select([func.max(materiaallijsten.c.matlijstID,\
type_=Integer).label('mmatlijstnr')])).scalar())
mmatlijstnr += 1
insmatlijst = insert(materiaallijsten).values(matlijstID = mmatlijstnr,\
icalculatie = record[3], artikelID = row[1],\
hoeveelheid = record[5]*row[3], resterend = record[5]*row[3],\
artikelprijs = row[6]*(1+rppar[6][1]),\
subtotaal = record[5]*row[3]*row[6]*(1+rppar[6][1]))
con.execute(insmatlijst)
selber = select([icalculaties.c.icalcID, icalculaties.c.icalculatie])\
.where(icalculaties.c.icalculatie == mcalnr)
rpselber = con.execute(selber)
for regel in rpselber:
updber = update(icalculaties).where(icalculaties.c.icalculatie==mcalnr)\
.values(prijs=icalculaties.c.materialen+icalculaties.c.lonen,\
werkomschrijving = mwerkomschr)
con.execute(updber)
opvragenCalc(mcalnr, mwerkomschr, mverw, m_email)
def printCalculatie(mcalnr):
from sys import platform
metadata = MetaData()
icalculaties = Table('icalculaties', metadata,
Column('icalcID', Integer(), primary_key=True),
Column('iclusterID', None, ForeignKey('iclusters.iclusterID')),
Column('koppelnummer', Integer),
Column('icalculatie', Integer),
Column('omschrijving', String),
Column('hoeveelheid', Float),
Column('eenheid', String),
Column('prijs', Float),
Column('materialen', Float),
Column('lonen', Float),
Column('werkomschrijving', String))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selcal = select([icalculaties]).where(icalculaties.c.icalculatie == mcalnr)
rpcal = con.execute(selcal)
mblad = 1
rgl = 0
mmat = 0
mlon = 0
mtotaal = 0
for row in rpcal:
if rgl == 0 or rgl%57 == 0:
if platform == 'win32':
filename = '.\\forms\\Intern_Clustercalculaties\\clustercalculatie-'+str(row[3])+'-'+str(row[2])+'.txt'
else:
filename = './forms/Intern_Clustercalculaties/clustercalculatie-'+str(row[3])+'-'+str(row[2])+'.txt'
kop=\
('Werkorder: '+ str(row[2])+' '+'{:<24s}'.format(str(row[10]))+' Calculatie: '+str(row[3])+' Datum: '+str(datetime.datetime.now())[0:10]+' Blad : '+str(mblad)+'\n'+
'================================================================================================\n'+
'Cluster Omschrijving Eenheid Aantal Materialen Lonen Bedrag\n'+
'================================================================================================\n')
if rgl == 0:
open(filename, 'w').write(kop)
elif rgl%57 == 0:
open(filename, 'a').write(kop)
mblad += 1
open(filename,'a').write('{:<9s}'.format(row[1])+'{:<23.21}'.format(row[4])+'{:<5s}'.format(row[6])+'{:5.2f}'.format(row[5])+'{:12.2f}'.format(row[8])+'{:12.2f}'.format(row[9])+' '+'{:12.2f}'.format(row[7])+'\n')
mmat = mmat+row[8]
mlon = mlon+row[9]
mtotaal = mtotaal+row[7]
rgl += 1
tail =(\
'-------------------------------------------------------------------------------------------------\n'+
'Totalen '+'{:12.2f}'.format(mmat)+'{:12.2f}'.format(mlon)+' '+'{:12.2f}'.format(mtotaal)+'\n'
'=================================================================================================\n')
open(filename,'a').write(tail)
if platform == 'win32':
os.startfile(filename, "print")
else:
os.system("lpr "+filename)
printing()
def printArtikellijst(mcalnr):
from sys import platform
metadata = MetaData()
materiaallijsten = Table('materiaallijsten', metadata,
Column('matlijstID', Integer, primary_key=True),
Column('icalculatie', Integer),
Column('artikelID', None, ForeignKey('artikelen.artikelID')),
Column('artikelprijs', Float),
Column('hoeveelheid', Float),
Column('subtotaal', Float))
artikelen = Table('artikelen', metadata,
Column('artikelID', Integer(), primary_key=True),
Column('artikelomschrijving', String),
Column('art_eenheid', String),
Column('locatie_magazijn', String))
icalculaties = Table('icalculaties', metadata,
Column('icalculatie', Integer),
Column('koppelnummer', Integer))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selmat = select([materiaallijsten, artikelen])\
.where(and_(materiaallijsten.c.artikelID == artikelen.c.artikelID,\
materiaallijsten.c.artikelID == artikelen.c.artikelID,\
materiaallijsten.c.icalculatie == mcalnr)).order_by(materiaallijsten.c.artikelID)
rpmat = con.execute(selmat)
selkop = select([icalculaties]).where(icalculaties.c.icalculatie == mcalnr)
rpkop = con.execute(selkop).first()
mblad = 1
rgl = 0
for row in rpmat:
if rgl == 0 or rgl%57 == 0:
if platform == 'win32':
filename = filename = '.\\forms\\Intern_Clustercalculaties\\materiaallijst-'+str(rpkop[0])+'-'+str(rpkop[1])+'.txt'
else:
filename = filename = './forms/Intern_Clustercalculaties/materiaallijst-'+str(rpkop[0])+'-'+str(rpkop[1])+'.txt'
kop=\
('Werkorder: '+ str(rpkop[1])+' Calculatie: '+str(rpkop[0])+' Datum: '+str(datetime.datetime.now())[0:10]+' Blad : '+str(mblad)+'\n'+
'=============================================================================================\n'+
'Artikelnr Omschrijving Eenheid Prijs Aantal \n'+
'=============================================================================================\n')
if rgl == 0:
open(filename, 'w').write(kop)
elif rgl%57 == 0:
open(filename, 'a').write(kop)
mblad += 1
open(filename,'a').write('{:<11d}'.format(row[6])+'{:<37.35s}'.format(row[7])+'{:<8.6s}'.format(row[8])+'{:10.2f}'.format(row[3])+' '+'{:10.2f}'.format(row[4])+'\n')
rgl += 1
if platform == 'win32':
os.startfile(filename, "print")
else:
os.system("lpr "+filename)
printing()
def toonCalculatie(mcalnr):
class MyWindow(QDialog):
def __init__(self, data_list, header, *args):
QWidget.__init__(self, *args,)
self.setGeometry(50, 50, 1800, 900)
self.setWindowTitle('Clustercalculatie')
self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
self.setWindowFlags(self.windowFlags()| Qt.WindowSystemMenuHint |
Qt.WindowMinMaxButtonsHint)
table_model = MyTableModel(self, data_list, header)
table_view = QTableView()
table_view.setModel(table_model)
font = QFont("Arial", 10)
table_view.setFont(font)
table_view.resizeColumnsToContents()
table_view.setSelectionBehavior(QTableView.SelectRows)
#table_view.clicked.connect(selectRow)
table_view.clicked.connect(ShowSelection)
layout = QVBoxLayout(self)
layout.addWidget(table_view)
self.setLayout(layout)
class MyTableModel(QAbstractTableModel):
def __init__(self, parent, mylist, header, *args):
QAbstractTableModel.__init__(self, parent, *args)
self.mylist = mylist
self.header = header
def rowCount(self, parent):
return len(self.mylist)
def columnCount(self, parent):
return len(self.mylist[0])
def data(self, index, role):
veld = self.mylist[index.row()][index.column()]
if not index.isValid():
return None
elif role == Qt.TextAlignmentRole and (type(veld) == float or type(veld) == int):
return Qt.AlignRight | Qt.AlignVCenter
elif role != Qt.DisplayRole:
return None
if type(veld) == float:
return '{:12.2f}'.format(veld)
else:
return veld
def headerData(self, col, orientation, role):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
return self.header[col]
return None
header = ['ID','Calculatie','Clusternr', 'Omschrijving','Werkomschrijving','Verwerkt',
'Hoeveelheid','Eenheid','Koppelnummer','Totaalprijs','Materialen', 'Lonen',\
'Materieel','Diensten','Inhuur','St.zagen','Zagen','St.schaven','Schaven',\
'St.steken','Steken','St.boren','Boren','St.frezen','Frezen','St.draaien klein',\
'Draaien klein','St.draaien_groot','Draaien groot','St.tappen','Tappen',\
'St.nube draaien','Nube draaien','St.nube bewerken','Nube bewerken',\
'St.knippen','Knippen','St.kanten','Kanten','St.stansen','Stansen',\
'St.lassen co2','Lassen co2','St.lassen hand','Lassen hand','St.verpakken',\
'Verpakken','St.verzinken','Verzinken','St.moffelen','Moffelen','St.schilderen',\
'Schilderen','St.spuiten','Spuiten','St.ponsen','Ponsen','St.persen',\
'Persen','St.gritstralen','Gritstralen','St.montage','Montage']
metadata = MetaData()
icalculaties = Table('icalculaties', metadata,
Column('icalcID', Integer(), primary_key=True),
Column('icalculatie', Integer),
Column('iclusterID', None, ForeignKey('iclusters.iclusterID')),
Column('omschrijving', String),
Column('werkomschrijving', String),
Column('verwerkt', Integer),
Column('hoeveelheid', Float),
Column('eenheid', String),
Column('koppelnummer', Integer),
Column('prijs', Float),
Column('materialen', Float),
Column('lonen', Float),
Column('materieel', Float),
Column('diensten', Float),
Column('inhuur', Float),
Column('szagen', Float),
Column('zagen', Float),
Column('sschaven', Float),
Column('schaven', Float),
Column('ssteken', Float),
Column('steken', Float),
Column('sboren', Float),
Column('boren', Float),
Column('sfrezen', Float),
Column('frezen', Float),
Column('sdraaien_klein', Float),
Column('draaien_klein', Float),
Column('sdraaien_groot', Float),
Column('draaien_groot', Float),
Column('stappen', Float),
Column('tappen', Float),
Column('snube_draaien', Float),
Column('nube_draaien', Float),
Column('snube_bewerken', Float),
Column('nube_bewerken', Float),
Column('sknippen', Float),
Column('knippen', Float),
Column('skanten', Float),
Column('kanten', Float),
Column('sstansen', Float),
Column('stansen', Float),
Column('slassen_co2', Float),
Column('lassen_co2', Float),
Column('slassen_hand', Float),
Column('lassen_hand', Float),
Column('sverpakken', Float),
Column('verpakken', Float),
Column('sverzinken', Float),
Column('verzinken', Float),
Column('smoffelen', Float),
Column('moffelen', Float),
Column('sschilderen', Float),
Column('schilderen', Float),
Column('sspuiten', Float),
Column('spuiten', Float),
Column('sponsen', Float),
Column('ponsen', Float),
Column('spersen', Float),
Column('persen', Float),
Column('sgritstralen', Float),
Column('gritstralen', Float),
Column('smontage', Float),
Column('montage', Float))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selcal = select([icalculaties]).where(icalculaties.c.icalculatie == mcalnr).\
order_by(icalculaties.c.iclusterID)
rpcal = con.execute(selcal)
data_list=[]
for row in rpcal:
data_list += [(row)]
def ShowSelection(idx):
mcalnr = idx.data()
if idx.column() == 0:
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selcal = select([icalculaties]).where(icalculaties.c.icalcID == mcalnr)
rpcal = con.execute(selcal).first()
header = ['ID','Calculatie','Clusternr', 'Omschrijving','Werkomschrijving',\
'Verwerkt','Hoeveelheid','Eenheid', 'Koppelnr', 'Totaalprijs','Materialen',\
'Lonen','Materieel', 'Diensten', 'Inhuur','St.zagen','Zagen','St.schaven',\
'Schaven','St.steken','Steken','St.boren','Boren','St.frezen','Frezen',\
'St.draaien klein','Draaien klein','St.draaien_groot','Draaien groot',\
'St.tappen','Tappen','St.nube draaien','Nube draaien','St.nube bewerken',\
'Nube bewerken','St.knippen','Knippen','St.kanten','Kanten','St.stansen',\
'Stansen','St.lassen co2','Lassen co2','St.lassen hand','Lassen hand',\
'St.verpakken','Verpakken','St.verzinken','Verzinken','St.moffelen',\
'Moffelen','St.schilderen','Schilderen','St.spuiten','Spuiten','St.ponsen',\
'Ponsen','St.persen','Persen','St.gritstralen','Gritstralen','St.montage','Montage']
class MainWindow(QDialog):
def __init__(self):
QDialog.__init__(self)
grid = QGridLayout()
grid.setSpacing(20)
self.setWindowTitle("Opvragen Clustercalculatie")
self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
self.setFont(QFont('Arial', 10))
self.lbl = QLabel()
self.pixmap = QPixmap('./images/logos/verbinding.jpg')
self.lbl.setPixmap(self.pixmap)
grid.addWidget(self.lbl , 0, 0)
grid.addWidget(QLabel('Opvragen Clustercalculatie'),0, 0, 1, 9, Qt.AlignCenter)
self.logo = QLabel()
self.pixmap = QPixmap('./images/logos/logo.jpg')
self.logo.setPixmap(self.pixmap)
grid.addWidget(self.logo , 0, 9, 1, 1, Qt.AlignRight)
index = 0
for item in header:
horpos = index%5
if index%5 == 0:
verpos = index
elif index%5 == 1:
verpos = index-1
elif index%5 == 2:
verpos = index-2
elif index%5 == 3:
verpos = index -3
elif index%5 == 4:
verpos = index-4
self.lbl = QLabel(header[index])
self.Gegevens = QLabel()
if type(rpcal[index]) == float :
q1Edit = QLineEdit('{:12.2f}'.format(rpcal[index]))
q1Edit.setAlignment(Qt.AlignRight)
elif type(rpcal[index]) == int:
q1Edit = QLineEdit(str(rpcal[index]))
q1Edit.setAlignment(Qt.AlignRight)
else:
q1Edit = QLineEdit(str(rpcal[index]))
q1Edit.setFixedWidth(150)
q1Edit.setStyleSheet("QLineEdit { font-size: 10pt; font-family: Arial; color: black }")
grid.addWidget(self.lbl, verpos+2, horpos+horpos%5)
grid.addWidget(q1Edit, verpos+2, horpos+horpos%5+1)
q1Edit.setDisabled(True)
index +=1
terugBtn = QPushButton('Sluiten')
terugBtn.clicked.connect(self.accept)
grid.addWidget(terugBtn, verpos+3, 9, 1 , 1, Qt.AlignRight)
terugBtn.setFont(QFont("Arial",10))
terugBtn.setFixedWidth(100)
terugBtn.setStyleSheet("color: black; background-color: gainsboro")
grid.addWidget(QLabel('\u00A9 2017 all rights reserved dj.jansen@casema.nl'), verpos+4, 0, 1, 9, Qt.AlignCenter)
self.setLayout(grid)
self.setGeometry(100, 100, 150, 150)
mainWin = MainWindow()
mainWin.exec_()
win = MyWindow(data_list, header)
win.exec_()
def toonArtikellijst(mcalnr):
class MyWindow(QDialog):
def __init__(self, data_list, header, *args):
QWidget.__init__(self, *args,)
self.setGeometry(100, 50, 1700, 900)
self.setWindowTitle('Materiaallijst')
self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
self.setWindowFlags(self.windowFlags()| Qt.WindowSystemMenuHint |
Qt.WindowMinMaxButtonsHint)
table_model = MyTableModel(self, data_list, header)
table_view = QTableView()
table_view.setModel(table_model)
font = QFont("Arial", 10)
table_view.setFont(font)
table_view.resizeColumnsToContents()
table_view.setColumnHidden(4, True)
table_view.setSelectionBehavior(QTableView.SelectRows)
#table_view.clicked.connect(selectRow)
table_view.clicked.connect(showSelart)
layout = QVBoxLayout(self)
layout.addWidget(table_view)
self.setLayout(layout)
class MyTableModel(QAbstractTableModel):
def __init__(self, parent, mylist, header, *args):
QAbstractTableModel.__init__(self, parent, *args)
self.mylist = mylist
self.header = header
def rowCount(self, parent):
return len(self.mylist)
def columnCount(self, parent):
return len(self.mylist[0])
def data(self, index, role):
veld = self.mylist[index.row()][index.column()]
if not index.isValid():
return None
elif role == Qt.TextAlignmentRole and (type(veld) == float or type(veld) == int):
return Qt.AlignRight | Qt.AlignVCenter
elif role != Qt.DisplayRole:
return None
if type(veld) == float:
return '{:12.2f}'.format(veld)
else:
return veld
def headerData(self, col, orientation, role):
if orientation == Qt.Horizontal and role == Qt.DisplayRole:
return self.header[col]
return None
header = ['Artikelnr','Omschrijving','Reserveringsaldo','LijstID','Calculatie',\
'Werknummer','Orderinkoopnummer', 'Artikelnr','ArtikelPrijs',\
'Hoeveelheid','Afroep','Resterend','Subtotaal','Reserveringdatum',\
'Levering eind','Levering begin','Categorie']
metadata = MetaData()
materiaallijsten = Table('materiaallijsten', metadata,
Column('matlijstID', Integer, primary_key=True),
Column('icalculatie', Integer),
Column('werknummerID', Integer),
Column('orderinkoopID', Integer),
Column('artikelID', None, ForeignKey('artikelen.artikelID')),
Column('artikelprijs', Float),
Column('hoeveelheid', Float),
Column('afroep', Float),
Column('resterend', Float),
Column('subtotaal', Float),
Column('reserverings_datum', String),
Column('levertijd_end', String),
Column('levertijd_begin', String),
Column('categorie', Integer))
artikelen = Table('artikelen', metadata,
Column('artikelID', Integer(), primary_key=True),
Column('artikelomschrijving', String),
Column('reserveringsaldo', Float))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selmat = select([artikelen, materiaallijsten]).where(and_(materiaallijsten.c.artikelID\
== artikelen.c.artikelID, materiaallijsten.c.artikelID == artikelen.c.artikelID,\
materiaallijsten.c.icalculatie == mcalnr))\
.order_by(materiaallijsten.c.artikelID)
rpmat = con.execute(selmat)
data_list=[]
for row in rpmat:
data_list += [(row)]
def showSelart(idx):
martnr = idx.data()
if idx.column() == 0:
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
selmat = select([artikelen, materiaallijsten]).where(and_(\
materiaallijsten.c.artikelID == artikelen.c.artikelID,\
materiaallijsten.c.artikelID == int(martnr),\
materiaallijsten.c.icalculatie == mcalnr))\
.order_by(materiaallijsten.c.artikelID)
rpmat = con.execute(selmat).first()
header = ['Artikelnr','Omschrijving','Reserveringsaldo','LijstID',\
'Calculatie','Werknummer','Orderinkoopnummer', 'Artikelnr',\
'ArtikelPrijs','Hoeveelheid','Afroep','Resterend','Subtotaal',\
'Reserveringdatum','Levering eind','Levering begin', 'Categorie']
class MainWindow(QDialog):
def __init__(self):
QDialog.__init__(self)
grid = QGridLayout()
grid.setSpacing(20)
self.setWindowTitle("Opvragen Artikelen Clustercalculatie")
self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
self.setFont(QFont('Arial', 10))
self.lbl = QLabel()
self.pixmap = QPixmap('./images/logos/verbinding.jpg')
self.lbl.setPixmap(self.pixmap)
grid.addWidget(self.lbl , 0, 0)
grid.addWidget(QLabel('Opvragen Artikelen Calculatie'),0, 1, 1, 2)
self.logo = QLabel()
self.pixmap = QPixmap('./images/logos/logo.jpg')
self.logo.setPixmap(self.pixmap)
grid.addWidget(self.logo , 0, 3, 1, 1, Qt.AlignRight)
index = 1
for item in header:
self.lbl = QLabel(header[index-1])
self.Gegevens = QLabel()
if index == 1:
if type(rpmat[index-1]) == float:
q1Edit = QLineEdit('{:12.2f}'.format(rpmat[index-1]))
q1Edit.setAlignment(Qt.AlignRight)
elif type(rpmat[index-1]) == int:
q1Edit = QLineEdit(str(rpmat[index-1]))
q1Edit.setAlignment(Qt.AlignRight)
else:
q1Edit = QLineEdit(str(rpmat[index-1]))
q1Edit .setStyleSheet("QLineEdit { font-size: 10pt; font-family: Arial; color: black }")
q1Edit.setFixedWidth(100)
q1Edit.setDisabled(True)
grid.addWidget(self.lbl, 1, 0)
grid.addWidget(q1Edit, index, 1, 1, 2)
elif index == 2:
q1Edit = QLineEdit(str(rpmat[index-1]))
q1Edit.setFixedWidth(400)
q1Edit.setDisabled(True)
q1Edit .setStyleSheet("QLineEdit { font-size: 10pt; font-family: Arial; color: black }")
grid.addWidget(self.lbl, 2, 0)
grid.addWidget(q1Edit, index, 1, 1, 3)
elif index%2 == 0:
if type(rpmat[index-1]) == float:
q1Edit = QLineEdit('{:12.2f}'.format(rpmat[index-1]))
q1Edit.setAlignment(Qt.AlignRight)
elif type(rpmat[index-1]) == int:
q1Edit = QLineEdit(str(rpmat[index-1]))
q1Edit.setAlignment(Qt.AlignRight)
else:
q1Edit = QLineEdit(str(rpmat[index-1]))
q1Edit.setFixedWidth(100)
q1Edit.setDisabled(True)
q1Edit .setStyleSheet("QLineEdit { font-size: 10pt; font-family: Arial; color: black }")
grid.addWidget(self.lbl, index, 0)
grid.addWidget(q1Edit, index, 1)
else:
if type(rpmat[index-1]) == float:
q1Edit = QLineEdit('{:12.2f}'.format(rpmat[index-1]))
q1Edit.setAlignment(Qt.AlignRight)
elif type(rpmat[index-1]) == int:
q1Edit = QLineEdit(str(rpmat[index-1]))
q1Edit.setAlignment(Qt.AlignRight)
else:
q1Edit = QLineEdit(str(rpmat[index-1]))
q1Edit.setFixedWidth(100)
q1Edit .setStyleSheet("QLineEdit { font-size: 10pt; font-family: Arial; color: black }")
q1Edit.setDisabled(True)
grid.addWidget(self.lbl, index+1, 2)
grid.addWidget(q1Edit, index+1, 3)
index += 1
terugBtn = QPushButton('Sluiten')
terugBtn.clicked.connect(self.accept)
grid.addWidget(terugBtn, index+1, 3, 1, 1, Qt.AlignRight)
terugBtn.setFont(QFont("Arial",10))
terugBtn.setFixedWidth(100)
grid.addWidget(QLabel('\u00A9 2017 all rights reserved dj.jansen@casema.nl'), index+2, 0, 1, 4, Qt.AlignCenter)
self.setLayout(grid)
self.setGeometry(400, 200, 150, 150)
mainWin = MainWindow()
mainWin.exec_()
win = MyWindow(data_list, header)
win.exec_()

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/gapyanpeng-Pandora.git
git@api.gitlife.ru:oschina-mirror/gapyanpeng-Pandora.git
oschina-mirror
gapyanpeng-Pandora
gapyanpeng-Pandora
master