コード例 #1
0
class AllDrugsWindow(QFrame):
    def __init__(self):
        QFrame.__init__(self)
        self.ui = Ui_all_drugs_form()

        self.ui.setupUi(self)

        QObject.connect(self.ui.new_drug_btn, SIGNAL("clicked()"), self.showNewDrugForm)
        QObject.connect(self.ui.del_drug_btn, SIGNAL("clicked()"), self.delDrug)
        QObject.connect(self.ui.tableWidget, SIGNAL("cellDoubleClicked(int, int)"), self.showDetails)
        QObject.connect(self.ui.close_btn, SIGNAL("clicked()"), self.closeme)

        self.drugs = self.getDrugs(0)
        self.drawTable()
        self.setWindowTitle(QString.fromUtf8("Склад"))

    def getDrugs(self, name_filter):
        if name_filter:
            return query_session.query(Drug).filter_by(name=name_filter)
            # Session.close()
        else:
            return query_session.query(Drug)
            # Session.close()

    def drawTable(self):
        self.drugs = query_session.query(GeneralDrug).all()
        self.ui.tableWidget.clear()
        self.ui.tableWidget.setRowCount(0)
        self.ui.tableWidget.setColumnCount(4)
        self.ui.tableWidget.setHorizontalHeaderLabels(
            [
                QString.fromUtf8("ИД"),
                QString.fromUtf8("Название препарата"),
                QString.fromUtf8("Количество"),
                QString.fromUtf8("Сумма"),
            ]
        )
        self.summ = 0
        for drug in self.drugs:
            self.ui.tableWidget.setRowCount(self.ui.tableWidget.rowCount() + 1)
            data = []
            data.append(str(drug.id))
            data.append(drug.name)
            data.append(str(drug.count()))
            data.append(str(drug.summ()))
            self.summ = self.summ + drug.summ()
            for i in range(0, 4):
                tableitem = QTableWidgetItem()
                tableitem.setText(data[i])
                tableitem.font = QFont("Arial", 10)
                tableitem.font.setBold(True)
                tableitem.textcolor = QColor("black")
                tableitem.setBackgroundColor(QColor("White"))
                self.ui.tableWidget.setItem(self.ui.tableWidget.rowCount() - 1, i, tableitem)
        self.ui.tableWidget.resizeColumnsToContents()
        self.ui.label_3.setText(QString.fromUtf8("Всего лс на сумму " + str(self.summ) + "р."))

    def showNewDrugForm(self):
        self.new_drug_form = NewDrugForm()
        self.new_drug_form.setWindowModality(2)
        # QObject.connect(self.new_drug_form, SIGNAL("drugCreated()"), self.drawTable)
        self.new_drug_form.show()

    def delDrug(self):
        row = self.ui.tableWidget.currentRow()
        id_for_delete = int(self.ui.tableWidget.item(row, 0).text())
        drug_for_delete = query_session.query(Drug).filter_by(id=id_for_delete).one()
        s = Session()
        s.delete(drug_for_delete)
        s.commit()
        s.close
        self.drawTable()

    def showDetails(self, i, j):
        self.t = QTableWidget(self)
        self.t.setRowCount(4)
        self.t.setColumnCount(4)
        self.ui.tableWidget.setCellWidget(i, j, self.t)

    def closeme(self):
        self.parent().close()
コード例 #2
0
 def showNewDrugForm(self):
     self.new_drug_form = NewDrugForm()
     self.new_drug_form.setWindowModality(2)
     # QObject.connect(self.new_drug_form, SIGNAL("drugCreated()"), self.drawTable)
     self.new_drug_form.show()
コード例 #3
0
class AddDrugForm(QFrame):
	def __init__(self, parent):
		QFrame.__init__(self)
		self.ui = Ui_add_drug_form()
	
		self.ui.setupUi(self)
		QObject.connect(self.ui.filter_text, SIGNAL("textEdited(QString)"), self.drawTable)
		if hasattr(parent, 'deliver'):
			QObject.connect(self.ui.drugsTable, SIGNAL("cellDoubleClicked(int, int)"), self.setDrugForDeliver)
			self.fordeliver = True
		else:
			QObject.connect(self.ui.drugsTable, SIGNAL("cellDoubleClicked(int, int)"), self.setDrugForSale)
			self.fordeliver = False
			
		QObject.connect(self.ui.newDrugBtn, SIGNAL("clicked()"), self.showNewDrugForm)
		
		self.parent = parent
		self.count_form = CountForm(self)
        
		self.drawTable()

	def getDrugs(self, filter):
		if filter:
			drugs = query_session.query(Drug).filter(Drug.name.like('%'+str(filter.toUtf8())+'%'))
			
		else:
			drugs = query_session.query(Drug).all()
		result = []
			
	
	def drawTable(self):
		self.drugs = self.getDrugs(self.ui.filter_text.text())
		self.ui.drugsTable.clear()
		self.ui.drugsTable.setRowCount(0)
		self.ui.drugsTable.setColumnCount(7)
		self.ui.drugsTable.setHorizontalHeaderLabels([QString.fromUtf8('ИД'), QString.fromUtf8('Название препарата'), QString.fromUtf8('Производитель'), QString.fromUtf8('Серийный номер'), QString.fromUtf8('Годен до'), QString.fromUtf8('Цена'),QString.fromUtf8('Количество')])
		for drug in self.drugs:
			if drug.count() > 0 or self.fordeliver:
				self.ui.drugsTable.setRowCount(self.ui.drugsTable.rowCount()+1)
				data = []
				data.append(str(drug.id))
				data.append(QString.fromUtf8(drug.name()))
				data.append(QString.fromUtf8(drug.manufacter.name))
				data.append(str(drug.serial))
				data.append(str(drug.best_before))
				data.append(str(drug.price))
				data.append(str(drug.count()))
				for i in range(0,7):	
					tableitem = QTableWidgetItem()
					tableitem.setText(data[i])
					tableitem.font = QFont("Arial", 10)
					tableitem.font.setBold(True)
					tableitem.textcolor = QColor("black")
					tableitem.setBackgroundColor(QColor('White'))
					self.ui.drugsTable.setItem(self.ui.drugsTable.rowCount() - 1,i,tableitem)
		self.ui.drugsTable.resizeColumnsToContents()
	
	def setDrugForDeliver(self,i,j):
		#self.parent.drug_deliver_map = DrugDeliverMap(self.parent.deliver)
		selected_drug = query_session.query(Drug).filter_by(id=int(self.ui.drugsTable.item(i,0).text())).one()
#		self.parent.drug_deliver_map.drug = selected_drug
		self.m = DrugDeliverMap()
		self.m.drug = selected_drug
		self.count_form.setWindowModality(2)
		self.count_form.show()
	
	
	def setDrugForSale(self,i,j):
		#self.parent.drug_deliver_map = DrugDeliverMap(self.parent.deliver)
		selected_drug = query_session.query(Drug).filter_by(id=int(self.ui.drugsTable.item(i,0).text())).one()
#		self.parent.drug_deliver_map.drug = selected_drug
		self.m = DrugSaleMap()
		self.m.drug = selected_drug
		self.count_form.setWindowModality(2)
		self.count_form.show()
		
		
	def showNewDrugForm(self):
		self.new_drug_form = NewDrugForm()
		self.new_drug_form.setWindowModality(2)
		QObject.connect(self.new_drug_form, SIGNAL("drugCreated()"), self.drawTable)
		self.new_drug_form.show()