コード例 #1
0
 def setInvoiceNumberLine(self):
     if self.invoiceTypeComboBox.currentText() == "Hurtowa":
         number = (operationsMongo.Database("SP").searchForItem(
             "H", "TYP_FS"))[-1]["NUMER"] + 1
         self.accountingNumberSpinBox.setValue(number)
         numberString = "H" + str(number) + "/1"
         self.invoiceNumberEdit.setText(numberString)
     elif self.invoiceTypeComboBox.currentText() == "Paragon":
         number = (operationsMongo.Database("SP").searchForItem(
             "P", "TYP_FS"))[-1]["NUMER"] + 1
         self.accountingNumberSpinBox.setValue(number)
         numberString = "P" + str(number) + "/1"
         self.invoiceNumberEdit.setText(numberString)
     elif self.invoiceTypeComboBox.currentText() == "Kupna":
         number = (operationsMongo.Database("SP").searchForItem(
             "K", "TYP_FS"))[-1]["NUMER"] + 1
         self.accountingNumberSpinBox.setValue(number)
         numberString = "K" + str(number) + "/1"
         self.invoiceNumberEdit.setText(numberString)
     elif self.invoiceTypeComboBox.currentText() == "Detaliczna":
         number = (operationsMongo.Database("SP").searchForItem(
             "D", "TYP_FS"))[-1]["NUMER"] + 1
         self.accountingNumberSpinBox.setValue(number)
         numberString = "D" + str(number) + "/1"
         self.invoiceNumberEdit.setText(numberString)
コード例 #2
0
 def searchItemByName(self, varModel, varTableView, varUserData,
                      collectionName, searchedKey):
     searchPhrase, ok = QtWidgets.QInputDialog.getText(
         self, 'Wprowadz dane', 'Wprowadz dane')
     try:
         if ok:
             if varModel == self.model:
                 self.refreshTable((
                     operationsMongo.Database(collectionName).searchForItem(
                         searchPhrase, searchedKey)),
                                   selectTable=1)
             elif varModel == self.model_6:
                 self.refreshTable((
                     operationsMongo.Database(collectionName).searchForItem(
                         searchPhrase, searchedKey)),
                                   selectTable=6)
             elif varModel == self.model_9:
                 self.refreshTable((
                     operationsMongo.Database(collectionName).searchForItem(
                         searchPhrase, searchedKey)),
                                   selectTable=9)
             elif varModel == self.model_11:
                 self.refreshTable((
                     operationsMongo.Database(collectionName).searchForItem(
                         searchPhrase, searchedKey)),
                                   selectTable=11)
     except IndexError:
         QtWidgets.QMessageBox.critical(self, "Błąd",
                                        "Brak takiej pozycji!")
コード例 #3
0
 def generateRWFinalAction(self):
     totalAmount = 0
     finalInvoiceList = operationsMongo.Database("TEMPRW").getMultipleData()
     accountingNumber = self.rwAccountingNumberSpinBox_2.value()
     invoiceGenerationDate = self.rwGenerationDateEdit_2.date().toString(
         "dd.MM.yyyy")
     invoiceNumber = self.rwNumberEdit_2.text()
     source = self.sourceWarehouseComboBox_2.currentText()
     destination = self.destinationWarehouseComboBox_2.currentText()
     listPosition = 0
     for invoiceFinalItem in finalInvoiceList[1:]:
         listPosition += 1
         amountOfStuff = float((invoiceFinalItem)["ILOSC"])
         document_id = (invoiceFinalItem)["PREVID"]
         ok = operationsMongo.Database("ASOR").shiftBetweenWarehouses(
             document_id, listPosition, amountOfStuff,
             invoiceGenerationDate, accountingNumber, invoiceNumber, source,
             destination)
         totalAmount += amountOfStuff * (invoiceFinalItem["CENA"])
     try:
         if ok:
             invoiceGenerationDate = self.rwGenerationDateEdit_2.date(
             ).toString("dd.MM.yyyy")
             warehouse = self.warehouseSelectComboBox_6.currentText()
             source = self.sourceWarehouseComboBox_2.currentText()
             destination = self.destinationWarehouseComboBox_2.currentText()
             operationsMongo.Database("RW").createRW(
                 totalAmount, invoiceGenerationDate, invoiceNumber,
                 warehouse, accountingNumber, source, destination)
             QtWidgets.QMessageBox.information(self, "Ok",
                                               "Invoice Created!")
             operationsMongo.Database(
                 "TEMPRW").clearTemporaryTableForPurchaseInvoice()
     except UnboundLocalError:
         QtWidgets.QMessageBox.critical(self, "Błąd", "Wypełnij komórki!")
コード例 #4
0
 def generatePurchaseInvoiceFinalAction(self):
     # if not self.invoiceNumberEdit.text():
     #     QtWidgets.QMessageBox.critical(
     #                 self, "Błąd", "Wypełnij komórkę!")
     totalAmount = 0
     taxAmount = 0
     finalInvoiceList = operationsMongo.Database("TEMPKU").getMultipleData()
     discount = self.discountSpinBox.value()
     accountingNumber = self.accountingNumberSpinBox_2.value()
     print(discount)
     invoiceGenerationDate = self.invoiceGenerationDateEdit_2.date(
     ).toString("dd.MM.yyyy")
     invoiceNumber = self.invoiceNumberEdit_2.text()
     clientName = self.clientResultLabel_2.text()
     listPosition = 0
     for invoiceFinalItem in finalInvoiceList[1:]:
         listPosition += 1
         # itemName = (invoiceFinalItem)["NAZWA"]
         # itemPrice = (invoiceFinalItem)["KOSZT"]
         # itemCode = (invoiceFinalItem)["KOD"]
         vatCondition = "PRAWDA"
         tax = invoiceFinalItem["PODAT"]
         if invoiceFinalItem["UPUST"] != 0:
             discount = float(invoiceFinalItem["UPUST"])
         amountOfStuff = float((invoiceFinalItem)["ILOSC"])
         document_id = (invoiceFinalItem)["PREVID"]
         ok = operationsMongo.Database("ASOR").addDataToWarehouse(
             document_id, listPosition, amountOfStuff,
             invoiceGenerationDate, accountingNumber, invoiceNumber,
             clientName)
         totalAmount += amountOfStuff * (invoiceFinalItem["CENA"])
         taxAmount += 0 if tax == 0 else ((tax / 100) * totalAmount)
     try:
         if ok:
             paymentType = self.paymentComboBox_2.currentText()
             invoiceGenerationDate = self.invoiceGenerationDateEdit_2.date(
             ).toString("dd.MM.yyyy")
             invoicePaymentDate = self.invoicePaymentDateEdit_2.date(
             ).toString("dd.MM.yyyy")
             invoiceInflowDate = self.invoiceSaleDateEdit_3.date().toString(
                 "dd.MM.yyyy")
             invoiceType = self.invoiceTypeComboBox_4.currentText()
             warehouse = self.warehouseSelectComboBox_3.currentText()
             priceType = self.priceTypeComboBox_2.currentText()
             source = self.sourceEdit.text()
             destination = self.destinationEdit.text()
             operationsMongo.Database("KU").createPurchaseInvoice(
                 totalAmount, clientName, invoiceGenerationDate,
                 invoiceInflowDate, discount, invoicePaymentDate,
                 invoiceNumber, invoiceType, warehouse, priceType,
                 paymentType, accountingNumber, source, destination,
                 taxAmount)
             QtWidgets.QMessageBox.information(self, "Ok",
                                               "Invoice Created!")
             operationsMongo.Database(
                 "TEMPKU").clearTemporaryTableForPurchaseInvoice()
     except UnboundLocalError:
         QtWidgets.QMessageBox.critical(self, "Błąd", "Wypełnij fakturę!")
コード例 #5
0
 def getAmountOfStuff(self, varModel, varTableView):
     if PythonMongoDB.invoice != None or self.clientResultLabel_2 != "Not selected yet":
         amountOfStuff, ok = QtWidgets.QInputDialog.getDouble(
             self, 'Wprowadz dane', 'Wprowadz dane')
         if ok:
             QtWidgets.QMessageBox.information(self, "Ok", "Ok!")
             if varModel == self.model:
                 tempList = "TEMPSP"
             elif varModel == self.model_6:
                 tempList = "TEMPKU"
             elif varModel == self.model_9:
                 tempList = "TEMPMM"
             elif varModel == self.model_11:
                 tempList = "TEMPRW"
             itemAndCountMultiplied = varModel.addRowsToInvoice(
                 varTableView.currentIndex(), amountOfStuff, tempList)
             PythonMongoDB.nettoAmount += itemAndCountMultiplied
             PythonMongoDB.totalAmount += (itemAndCountMultiplied +
                                           (itemAndCountMultiplied * 0.23))
             if tempList == "TEMPSP":
                 self.refreshTable(
                     operationsMongo.Database(tempList).getMultipleData(),
                     selectTable=3)
                 self.nettoAmountResultLabel.setText(
                     str(PythonMongoDB.nettoAmount))
                 self.totalAmountResultLabel.setText(
                     str(PythonMongoDB.totalAmount))
             elif tempList == "TEMPKU":
                 self.refreshTable(
                     operationsMongo.Database(tempList).getMultipleData(),
                     selectTable=7)
                 self.nettoAmountResultLabel_2.setText(
                     str(PythonMongoDB.nettoAmount))
                 self.totalAmountResultLabel_2.setText(
                     str(PythonMongoDB.totalAmount))
             elif tempList == "TEMPMM":
                 self.refreshTable(
                     operationsMongo.Database(tempList).getMultipleData(),
                     selectTable=10)
                 self.nettoAmountResultLabel_3.setText(
                     str(PythonMongoDB.nettoAmount))
                 self.totalAmountResultLabel_3.setText(
                     str(PythonMongoDB.totalAmount))
             elif tempList == "TEMPRW":
                 self.refreshTable(
                     operationsMongo.Database(tempList).getMultipleData(),
                     selectTable=12)
                 self.nettoAmountResultLabel_4.setText(
                     str(PythonMongoDB.nettoAmount))
                 self.totalAmountResultLabel_4.setText(
                     str(PythonMongoDB.totalAmount))
     else:
         QtWidgets.QMessageBox.critical(self, "Błąd", "Wybierz Klienta!")
コード例 #6
0
 def sort(self, Ncol, order):
     try:
         self.layoutAboutToBeChanged.emit()
         if not order:
             self.user_data = operationsMongo.Database(
                 self.collection).sortAscending(self.columns[Ncol])
         else:
             self.user_data = operationsMongo.Database(
                 self.collection).sortDescending(self.columns[Ncol])
         self.layoutChanged.emit()
     except Exception as e:
         print(e)
コード例 #7
0
 def insertRows(self):
     row_count = len(self.user_data)
     self.beginInsertRows(QtCore.QModelIndex(), row_count, row_count)
     empty_data = {key: None for key in self.columns if not key == '_id'}
     document_id = operationsMongo.Database(
         self.collection).insertData(empty_data)
     new_data = operationsMongo.Database(
         self.collection).getSingleData(document_id)
     self.user_data.append(new_data)
     row_count += 1
     self.endInsertRows()
     return True
コード例 #8
0
def createInvoice(invoice, totalAmount, paymentType, invoiceGenerationDate,
                  invoicePaymentDate, invoiceSaleDate, invoiceNumber, discount,
                  tax, invoiceType, taxAmount, warehouse, priceType,
                  accountingNumber):
    pdf = SimpleInvoice(invoice)
    currentDate = datetime.datetime.now().strftime("%H.%M %d-%m-%y")
    pdf.gen("faktura " + str(currentDate) + ".pdf", generate_qr_code=True)
    invoiceCode = operationsMongo.Database(
        "SP").getSingleLastData()["NR_KOD"] + 1
    warehouseDocumentCode = operationsMongo.Database(
        "WZ").getSingleLastData()["NR_KOD"] + 1
    invoice.number = invoiceNumber
    # print(invoice.client.summary)
    operationsMongo.Database("SP").insertData({
        "NR_KOD": invoiceCode,
        "TYP_FS": invoiceType,
        "DATA": invoiceGenerationDate,
        "NUMER": accountingNumber,
        "MAGAZYN": int(warehouse),
        "PARTNER": invoice.client.summary,
        "WARTOSC": totalAmount,
        "UPUST": discount,
        "RODZ_PL": paymentType,
        "UWAGI_PL": '',
        "DATA_PL": invoicePaymentDate,
        "R_CEN": priceType,
        "MAGA": "PRAWDA",
        "PODAT_WR": taxAmount,
        "DATA_SPRZ": invoiceSaleDate,
        "ZAT": "PRAWDA",
        "NOP": 1,
        "NR_DOK_MG": warehouseDocumentCode,
        "TYP_DOK_MG": "WZ",
        "WAR_DOK_MG": 689.0,
        "POMOCNICZE": "11",
        "WALUTA": 'PZL',
        "KURS": 0.0,
        "WARTOSCWAL": 'null',
        "TEKSTNUMER": 'null'
    })
    operationsMongo.Database("WZ").insertData({
        "NR_KOD": warehouseDocumentCode,
        "DATA": invoiceGenerationDate,
        "NUMER": accountingNumber,
        "SKAD": invoiceNumber + " - " + invoiceGenerationDate,
        "DOKAD": invoice.client.summary,
        "WARTOSC": totalAmount,
        "R_CEN": priceType,
        "MAGAZYN": int(warehouse),
        "ZAT": "PRAWDA",
        "NOP": 1
    })
コード例 #9
0
 def setClientForInvoice(self, position):
     row_count = self.rowCount()
     row_count -= 1
     self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count)
     row_id = position.row()
     document_id = self.user_data[row_id]['_id']
     clientName = (operationsMongo.Database(
         self.collection).getSingleData(document_id)["NAZWA_I"])
     clientAddress = str(
         operationsMongo.Database(self.collection).getSingleData(
             document_id)["MIEJSC"]) + ' ' + str(
                 operationsMongo.Database(
                     self.collection).getSingleData(document_id)["ADRES"])
     clientContact = (operationsMongo.Database(
         self.collection).getSingleData(document_id)["TELEFONY"])
     return clientName, clientAddress, clientContact
コード例 #10
0
 def showInvoice(self, position, collumnType):
     row_count = self.rowCount()
     row_count -= 1
     self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count)
     row_id = position.row()
     document_id = self.user_data[row_id]['NR_KOD']
     data = operationsMongo.Database(collumnType + "ZAW").searchByNumer(
         document_id, "NR_KOD")
     return list(data)
コード例 #11
0
 def removeRows(self, position):
     row_count = self.rowCount()
     row_count -= 1
     self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count)
     row_id = position.row()
     document_id = self.user_data[row_id]['_id']
     operationsMongo.Database(self.collection).removeData(document_id)
     self.user_data.pop(row_id)
     self.endRemoveRows()
     return True
コード例 #12
0
 def searchItemByName(self, varModel, varTableView, varUserData,
                      collectionName):
     searchPhrase, ok = QtWidgets.QInputDialog.getText(
         self, 'Wprowadz dane', 'Wprowadz dane')
     if ok:
         # QtWidgets.QMessageBox.information(self, "Ok", "Ok!")
         # varModel.addRowsToInvoice(varTableView.currentIndex(), PythonMongoDB.invoice, amountOfStuff)
         varUserData = operationsMongo.Database(
             collectionName).searchForItem((searchPhrase), collectionName)
         varModel = customModel.CustomTableModel(varUserData,
                                                 collectionName)
         varTableView.setModel(varModel)
コード例 #13
0
    def __init__(self):
        super(PythonMongoDB, self).__init__()
        self.setupUi(self)
        # self.invoice = invoice
        self.user_data = operationsMongo.Database("SPZAW").getMultipleData()
        self.user_data_2 = operationsMongo.Database("SP").getMultipleData()
        self.model = customModel.CustomTableModel(self.user_data, "SPZAW")
        self.model_2 = customModel.CustomTableModel(self.user_data_2, "SP")

        self.delegate = customModel.InLineEditDelegate()
        self.tableView.setModel(self.model)
        self.tableView.setItemDelegate(self.delegate)
        # self.tableView.setItemDelegateForColumn(1, customModel.ProfilePictureDelegate())
        self.tableView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model, self.tableView))
        self.tableView.verticalHeader().setDefaultSectionSize(50)
        self.tableView.setColumnWidth(0, 30)
        self.tableView_2.setModel(self.model_2)
        self.tableView_2.setItemDelegate(self.delegate)
        self.tableView_2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_2.customContextMenuRequested.connect(
            lambda: self.context_menu_client(self.model_2, self.tableView_2))
        # self.generateInvoiceButton.clicked.connect(lambda : print(j)))
        self.user_data_3 = operationsMongo.Database("TEMPSP").getMultipleData()
        self.model_3 = customModel.CustomTableModel(self.user_data_3, "TEMPSP")
        self.tableView_3.setModel(self.model_3)
        self.tableView_3.setItemDelegate(self.delegate)
        self.tableView_3.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_3.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_3, self.tableView_3))
        self.generateInvoiceButton.clicked.connect(
            lambda: generateInvoice.createInvoice(PythonMongoDB.invoice))
        self.searchForItemButton.clicked.connect(lambda: self.searchItemByName(
            self.model, self.tableView, self.user_data, "ASOR"))
        self.searchForClientButton.clicked.connect(
            lambda: self.searchItemByName(self.model_2, self.tableView_2, self.
                                          user_data_2, "KONTRAH"))
コード例 #14
0
def createPurchaseInvoice(invoice, totalAmount):
    pdf = SimpleInvoice(invoice)
    currentDate = datetime.datetime.now().strftime("%H.%M %d-%m-%y")
    currentDateDbFormat = datetime.datetime.now().strftime("%d.%m.%Y")
    pdf.gen("faktura " + str(currentDate) + ".pdf", generate_qr_code=True)
    invoiceCode = operationsMongo.Database(
        "KU").getSingleLastData()["NR_KOD"] + 1
    invoiceCode = operationsMongo.Database(
        "KU").getSingleLastData()["NR_KOD"] + 1
    print(invoice.client.summary)
    operationsMongo.Database("KU").insertData({
        "NR_KOD": invoiceCode,
        "TYP_FS": "H",
        "DATA": currentDateDbFormat,
        "NUMER": 89,
        "MAGAZYN": 1,
        "PARTNER": invoice.client.summary,
        "WARTOSC": totalAmount,
        "UPUST": 0.0,
        "RODZ_PL": "G",
        "UWAGI_PL": '',
        "DATA_PL": '',
        "R_CEN": "H",
        "MAGA": "PRAWDA",
        "PODAT_WR": 210.98,
        "DATA_SPRZ": currentDateDbFormat,
        "ZAT": "PRAWDA",
        "NOP": 1,
        "NR_DOK_MG": 478.0,
        "TYP_DOK_MG": "WZ",
        "WAR_DOK_MG": 689.0,
        "POMOCNICZE": "11",
        "WALUTA": 'null',
        "KURS": 0.0,
        "WARTOSCWAL": 'null',
        "TEKSTNUMER": 'null'
    })
コード例 #15
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     """
     Edit data in table cells
     :param index:
     :param value:
     :param role:
     :return:
     """
     if index.isValid():
         selected_row = self.user_data[index.row()]
         selected_column = self.columns[index.column()]
         selected_row[selected_column] = value
         self.dataChanged.emit(index, index, (QtCore.Qt.DisplayRole, ))
         ok = operationsMongo.Database(self.collection).updateData(
             selected_row['_id'], selected_row)
         if ok:
             return True
     return False
コード例 #16
0
 def context_menu(self, varModel, varTableView):
     menu = QtWidgets.QMenu()
     refresh_data = menu.addAction("Refresh Data")
     if refresh_data.triggered.connect(lambda: self):
         self.user_data_3 = operationsMongo.Database(
             "TEMPSP").getMultipleData()
         self.model_3 = customModel.CustomTableModel(
             self.user_data_3, "TEMPSP")
         self.tableView_3.setModel(self.model_3)
     add_to_invoice = menu.addAction("Add This To Invoice")
     add_to_invoice.setIcon(QtGui.QIcon(":/icons/images/add-icon.png"))
     add_to_invoice.triggered.connect(
         lambda: self.getAmountOfStuff(varModel, varTableView))
     add_data = menu.addAction("Add New Data")
     add_data.setIcon(QtGui.QIcon(":/icons/images/add-icon.png"))
     add_data.triggered.connect(lambda: varModel.insertRows())
     if varTableView.selectedIndexes():
         remove_data = menu.addAction("Remove Data")
         remove_data.setIcon(QtGui.QIcon(":/icons/images/remove.png"))
         remove_data.triggered.connect(
             lambda: varModel.removeRows(varTableView.currentIndex()))
     cursor = QtGui.QCursor()
     menu.exec_(cursor.pos())
コード例 #17
0
    def addRowsToInvoice(self, position, amountOfStuff, tempList):
        row_count = self.rowCount()
        row_count -= 1
        self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count)
        row_id = position.row()
        document_id = self.user_data[row_id]['_id']
        itemName = (operationsMongo.Database(
            self.collection).getSingleData(document_id)["NAZWA"])
        itemPrice = (operationsMongo.Database(
            self.collection).getSingleData(document_id)["KOSZT"])
        itemCode = (operationsMongo.Database(
            self.collection).getSingleData(document_id)["KOD"])
        if tempList == "TEMPSP":
            invoiceCode = operationsMongo.Database(
                "SP").getSingleLastData()["NR_KOD"] + 1
            operationsMongo.Database("TEMPSP").insertData({
                "NR_KOD":
                invoiceCode,
                "LP":
                1,
                "LEK":
                itemName,
                "NUMER":
                'null',
                "CENA":
                itemPrice,
                "ILOSC":
                amountOfStuff,
                "WARTOSC":
                float(amountOfStuff) * float(itemPrice),
                "KOD":
                itemCode,
                "JEST_VAT":
                "PRAWDA",
                "PODAT":
                23.0,
                "UPUST":
                0.0,
                "PREVID":
                document_id
            })
        elif tempList == "TEMPKU":
            invoiceCode = operationsMongo.Database(
                "KU").getSingleLastData()["NR_KOD"] + 1
            operationsMongo.Database("TEMPKU").insertData({
                "NR_KOD":
                invoiceCode,
                "LP":
                1,
                "LEK":
                itemName,
                "NUMER":
                'null',
                "CENA":
                itemPrice,
                "ILOSC":
                amountOfStuff,
                "WARTOSC":
                float(amountOfStuff) * float(itemPrice),
                "KOD":
                itemCode,
                "PODAT":
                23.0,
                "KONTO_KU":
                '',
                "UPUST":
                0.0,
                "JEST_VAT":
                "PRAWDA",
                "PREVID":
                document_id
            })
        elif tempList == "TEMPWZ":
            invoiceCode = operationsMongo.Database(
                "WZ").getSingleLastData()["NR_KOD"] + 1
            operationsMongo.Database("TEMPWZ").insertData({
                "NR_KOD":
                invoiceCode,
                "LP":
                1,
                "LEK":
                itemName,
                "CENA":
                itemPrice,
                "ILOSC":
                amountOfStuff,
                "WARTOSC":
                float(amountOfStuff) * float(itemPrice),
                "KOD":
                itemCode,
                "PREVID":
                document_id
            })
        elif tempList == "TEMPPZ":
            invoiceCode = operationsMongo.Database(
                "PZ").getSingleLastData()["NR_KOD"] + 1
            operationsMongo.Database("TEMPPZ").insertData({
                "NR_KOD":
                invoiceCode,
                "LP":
                1,
                "LEK":
                itemName,
                "CENA":
                itemPrice,
                "ILOSC":
                amountOfStuff,
                "WARTOSC":
                float(amountOfStuff) * float(itemPrice),
                "KOD":
                itemCode,
                "PREVID":
                document_id
            })
        elif tempList == "TEMPMM":
            invoiceCode = operationsMongo.Database(
                "MM").getSingleLastData()["NR_KOD"] + 1
            operationsMongo.Database("TEMPMM").insertData({
                "NR_KOD":
                invoiceCode,
                "LP":
                1,
                "LEK":
                itemName,
                "CENA":
                itemPrice,
                "ILOSC":
                amountOfStuff,
                "WARTOSC":
                float(amountOfStuff) * float(itemPrice),
                "KOD":
                itemCode,
                "PREVID":
                document_id
            })
        elif tempList == "TEMPRW":
            invoiceCode = operationsMongo.Database(
                "RW").getSingleLastData()["NR_KOD"] + 1
            operationsMongo.Database("TEMPRW").insertData({
                "NR_KOD":
                invoiceCode,
                "LP":
                1,
                "LEK":
                itemName,
                "CENA":
                itemPrice,
                "ILOSC":
                amountOfStuff,
                "WARTOSC":
                float(amountOfStuff) * float(itemPrice),
                "KOD":
                itemCode,
                "PREVID":
                document_id
            })

        itemAndCountMultiplied = float(itemPrice) * float(amountOfStuff)
        return itemAndCountMultiplied
コード例 #18
0
    def __init__(self):
        super(PythonMongoDB, self).__init__()
        self.setupUi(self)
        # self.invoice = invoice
        self.user_data = operationsMongo.Database("ASOR").getMultipleData()
        self.user_data_2 = operationsMongo.Database(
            "KONTRAH").getMultipleData()
        self.model = customModel.CustomTableModel(self.user_data, "ASOR")
        self.model_2 = customModel.CustomTableModel(self.user_data_2,
                                                    "KONTRAH")
        self.delegate = customModel.InLineEditDelegate()
        self.tableView.setModel(self.model)
        self.tableView.setItemDelegate(self.delegate)
        # self.tableView.setItemDelegateForColumn(1, customModel.ProfilePictureDelegate())
        self.tableView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model, self.tableView))
        self.tableView.verticalHeader().setDefaultSectionSize(50)
        self.tableView.setColumnWidth(0, 30)
        self.tableView.hideColumn(0)
        self.tableView.hideColumn(2)
        self.tableView.hideColumn(3)
        self.tableView.hideColumn(4)
        self.tableView.hideColumn(14)
        self.tableView.hideColumn(15)
        self.tableView.hideColumn(16)

        self.tableView_2.setModel(self.model_2)
        self.tableView_2.setItemDelegate(self.delegate)
        self.tableView_2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_2.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_2, self.tableView_2))
        self.tableView_2.hideColumn(0)
        # self.generateInvoiceButton.clicked.connect(lambda : print(j)))
        self.user_data_3 = operationsMongo.Database("TEMPSP").getMultipleData()
        self.model_3 = customModel.CustomTableModel(self.user_data_3, "TEMPSP")

        self.tableView_3.setModel(self.model_3)
        self.tableView_3.setItemDelegate(self.delegate)
        self.tableView_3.hideRow(0)
        self.tableView_3.hideColumn(0)
        self.tableView_3.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_3.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_3, self.tableView_3))

        self.user_data_4 = operationsMongo.Database("SP").sortDescending(
            "NR_KOD")
        self.model_4 = customModel.CustomTableModel(self.user_data_4, "SP")
        self.tableView_4.setModel(self.model_4)
        self.tableView_4.setItemDelegate(self.delegate)
        self.tableView_4.hideColumn(0)
        self.tableView_4.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_4.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_4, self.tableView_4))

        self.model_5 = customModel.CustomTableModel(self.user_data_2,
                                                    "KONTRAH")
        self.tableView_5.setModel(self.model_5)
        self.tableView_5.setItemDelegate(self.delegate)
        self.tableView_5.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_5.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_5, self.tableView_5))

        self.model_6 = customModel.CustomTableModel(self.user_data, "ASOR")
        self.tableView_6.setModel(self.model_6)
        self.tableView_6.setItemDelegate(self.delegate)
        self.tableView_6.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_6.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_6, self.tableView_6))

        self.user_data_7 = operationsMongo.Database("TEMPKU").getMultipleData()
        self.model_7 = customModel.CustomTableModel(self.user_data_7, "TEMPKU")
        self.tableView_7.setModel(self.model_7)
        self.tableView_7.setItemDelegate(self.delegate)
        self.tableView_7.hideRow(0)
        self.tableView_7.hideColumn(0)
        self.tableView_7.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_7.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_7, self.tableView_7))

        self.model_9 = customModel.CustomTableModel(self.user_data, "ASOR")
        self.tableView_9.setModel(self.model_9)
        self.tableView_9.setItemDelegate(self.delegate)
        self.tableView_9.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_9.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_9, self.tableView_9))

        self.user_data_10 = operationsMongo.Database(
            "TEMPMM").getMultipleData()
        self.model_10 = customModel.CustomTableModel(self.user_data_10,
                                                     "TEMPMM")
        self.tableView_10.setModel(self.model_10)
        self.tableView_10.setItemDelegate(self.delegate)
        self.tableView_10.hideRow(0)
        self.tableView_10.hideColumn(0)
        self.tableView_10.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_10.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_10, self.tableView_10))

        self.model_11 = customModel.CustomTableModel(self.user_data, "ASOR")
        self.tableView_11.setModel(self.model_11)
        self.tableView_11.setItemDelegate(self.delegate)
        self.tableView_11.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_11.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_11, self.tableView_11))

        self.user_data_12 = operationsMongo.Database(
            "TEMPRW").getMultipleData()
        self.model_12 = customModel.CustomTableModel(self.user_data_12,
                                                     "TEMPRW")
        self.tableView_12.setModel(self.model_12)
        self.tableView_12.setItemDelegate(self.delegate)
        self.tableView_12.hideRow(0)
        self.tableView_12.hideColumn(0)
        self.tableView_12.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tableView_12.customContextMenuRequested.connect(
            lambda: self.context_menu(self.model_12, self.tableView_12))

        self.generateInvoiceButton.clicked.connect(
            self.generateInvoiceFinalAction)
        self.generateInvoiceButton_2.clicked.connect(
            self.generatePurchaseInvoiceFinalAction)
        self.generateInvoiceButton_3.clicked.connect(
            self.generateMMFinalAction)
        self.generateInvoiceButton_4.clicked.connect(
            self.generateRWFinalAction)

        self.searchForItemButton.clicked.connect(lambda: self.searchItemByName(
            self.model, self.tableView, self.user_data, "ASOR", "NAZWA"))
        self.searchItemByCodeButton.clicked.connect(
            lambda: self.searchItemByCode(self.model, self.tableView, self.
                                          user_data, "ASOR", "KOD"))
        self.searchItemByGroupButton.clicked.connect(
            lambda: self.searchItemByName(self.model, self.tableView, self.
                                          user_data, "ASOR", "GRUPA"))
        # self.searchItemsByCityButton.clicked.connect(self.openAddItemWindow)

        self.searchForClientButton.clicked.connect(
            lambda: self.searchClientByName(self.model_2, self.tableView_2,
                                            self.user_data_2, "KONTRAH",
                                            "NAZWA_I"))
        self.searchClientsByNIPButton.clicked.connect(
            lambda: self.searchClientByName(self.model_2, self.tableView_2,
                                            self.user_data_2, "KONTRAH",
                                            "REJESTR"))
        self.searchClientByCodeButton.clicked.connect(
            lambda: self.searchItemByCode(self.model_2, self.tableView_2, self.
                                          user_data_2, "KONTRAH", "NR_KONTRAH")
        )
        self.searchClientsByCityButton.clicked.connect(
            lambda: self.searchClientByName(self.model_2, self.tableView_2,
                                            self.user_data_2, "KONTRAH",
                                            "MIEJSC"))

        self.searchForItemButton_2.clicked.connect(
            lambda: self.searchItemByName(self.model_6, self.tableView_6, self.
                                          user_data, "ASOR", "NAZWA"))
        self.searchItemByCodeButton_2.clicked.connect(
            lambda: self.searchItemByCode(self.model_6, self.tableView_6, self.
                                          user_data, "ASOR", "KOD"))
        self.searchItemByGroupButton_2.clicked.connect(
            lambda: self.searchItemByName(self.model_6, self.tableView_6, self.
                                          user_data, "ASOR", "GRUPA"))
        # self.searchItemsByCityButton.clicked.connect(self.openAddItemWindow)

        self.searchForClientButton_2.clicked.connect(
            lambda: self.searchClientByName(self.model_5, self.tableView_5,
                                            self.user_data_2, "KONTRAH",
                                            "NAZWA_I"))
        self.searchClientsByNIPButton_2.clicked.connect(
            lambda: self.searchClientByName(self.model_5, self.tableView_5,
                                            self.user_data_2, "KONTRAH",
                                            "REJESTR"))
        self.searchClientByCodeButton_2.clicked.connect(
            lambda: self.searchItemByCode(self.model_5, self.tableView_5, self.
                                          user_data_2, "KONTRAH", "NR_KONTRAH")
        )
        self.searchClientsByCityButton_2.clicked.connect(
            lambda: self.searchClientByName(self.model_5, self.tableView_5,
                                            self.user_data_2, "KONTRAH",
                                            "MIEJSC"))

        self.searchForItemButton_3.clicked.connect(
            lambda: self.searchItemByName(self.model_9, self.tableView_9, self.
                                          user_data, "ASOR", "NAZWA"))
        self.searchItemByCodeButton_3.clicked.connect(
            lambda: self.searchItemByCode(self.model_9, self.tableView_9, self.
                                          user_data, "ASOR", "KOD"))
        self.searchItemByGroupButton_3.clicked.connect(
            lambda: self.searchItemByName(self.model_9, self.tableView_9, self.
                                          user_data, "ASOR", "GRUPA"))

        self.searchForItemButton_4.clicked.connect(
            lambda: self.searchItemByName(self.model_11, self.tableView_11,
                                          self.user_data, "ASOR", "NAZWA"))
        self.searchItemByCodeButton_4.clicked.connect(
            lambda: self.searchItemByCode(self.model_11, self.tableView_11,
                                          self.user_data, "ASOR", "KOD"))
        self.searchItemByGroupButton_4.clicked.connect(
            lambda: self.searchItemByName(self.model_11, self.tableView_11,
                                          self.user_data, "ASOR", "GRUPA"))

        self.invoiceGenerationDateEdit.setDate(datetime.datetime.now())
        self.invoicePaymentDateEdit.setDate(datetime.datetime.now())
        self.invoiceSaleDateEdit_2.setDate(datetime.datetime.now())
        self.invoiceGenerationDateEdit_2.setDate(datetime.datetime.now())
        self.invoicePaymentDateEdit_2.setDate(datetime.datetime.now())
        self.invoiceSaleDateEdit_3.setDate(datetime.datetime.now())
        self.mmGenerationDateEdit.setDate(datetime.datetime.now())
        self.rwGenerationDateEdit_2.setDate(datetime.datetime.now())
        self.documentsTypeComboBox.currentTextChanged.connect(
            lambda: self.refreshTable(
                operationsMongo.Database(self.setDocumentPreview()).
                sortDescending("NR_KOD"), 4))
        self.invoiceTypeComboBox.currentTextChanged.connect(
            self.setInvoiceNumberLine)
        self.accountingNumberSpinBox.setValue(
            operationsMongo.Database("SP").getSingleLastData()["NUMER"] + 1)

        self.accountingNumberSpinBox_2.setValue(
            operationsMongo.Database("KU").getSingleLastData()["NR_KSIEG"] + 1)
        self.mmAccountingNumberSpinBox.setValue(
            operationsMongo.Database("MM").getSingleLastData()["NUMER"] + 1)
        self.rwAccountingNumberSpinBox_2.setValue(
            operationsMongo.Database("RW").getSingleLastData()["NUMER"] + 1)
        self.invoiceNumberEdit.setText("H" + str(
            operationsMongo.Database("SP").getSingleLastData()["NUMER"] + 1) +
                                       "/1")
        self.mmNumberEdit.setText("MM" + str(
            operationsMongo.Database("MM").getSingleLastData()["NUMER"] + 1) +
                                  "/1")
        self.rwNumberEdit_2.setText("RW" + str(
            operationsMongo.Database("RW").getSingleLastData()["NUMER"] + 1) +
                                    "/1")

        self.accountingNumberSpinBox.valueChanged.connect(
            lambda: self.invoiceNumberEdit.setText("H" + str(
                self.accountingNumberSpinBox.value()) + "/1"))
        self.mmAccountingNumberSpinBox.valueChanged.connect(
            lambda: self.mmNumberEdit.setText("MM" + str(
                self.mmAccountingNumberSpinBox.value()) + "/1"))
        self.rwAccountingNumberSpinBox_2.valueChanged.connect(
            lambda: self.rwNumberEdit_2.setText("RW" + str(
                self.rwAccountingNumberSpinBox_2.value()) + "/1"))

        self.actionDark_Theme.triggered.connect(self.setDarkTheme)
        self.actionAbout_Program_2.triggered.connect(self.openAboutItemWindow)
コード例 #19
0
    def context_menu(self, varModel, varTableView):
        menu = QtWidgets.QMenu()
        refresh_data = menu.addAction("Refresh Data")
        refresh_data.setIcon(QtGui.QIcon(":/icons/images/refresh.png"))
        if varModel == self.model:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("ASOR").getMultipleData(), 1))
        elif varModel == self.model_2:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("KONTRAH").getMultipleData(), 2))
        elif varModel == self.model_3:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("TEMPSP").getMultipleData(), 3))
        elif varModel == self.model_4:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database(self.setDocumentPreview()).
                sortDescending("NR_KOD"), 4))
        elif varModel == self.model_5:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("KONTRAH").getMultipleData(), 5))
        elif varModel == self.model_6:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("ASOR").getMultipleData(), 6))
        elif varModel == self.model_7:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("TEMPKU").getMultipleData(), 7))
        elif varModel == self.model_9:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("ASOR").getMultipleData(), 9))
        elif varModel == self.model_10:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("TEMPMM").getMultipleData(), 10))
        elif varModel == self.model_11:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("ASOR").getMultipleData(), 11))
        elif varModel == self.model_12:
            refresh_data.triggered.connect(lambda: self.refreshTable(
                operationsMongo.Database("TEMPRW").getMultipleData(), 12))

        if varModel == self.model:
            add_to_invoice = menu.addAction("Add This To Invoice")
            add_to_invoice.setIcon(QtGui.QIcon(":/icons/images/choose.png"))
            add_to_invoice.triggered.connect(
                lambda: self.getAmountOfStuff(varModel, varTableView))
        elif varModel == self.model_2:
            set_client_for_invoice = menu.addAction("Choose this Client")
            set_client_for_invoice.setIcon(
                QtGui.QIcon(":/icons/images/choose.png"))
            set_client_for_invoice.triggered.connect(
                lambda: self.setClient(varModel, varTableView))
        elif varModel == self.model_6:
            add_to_invoice = menu.addAction("Add This To Invoice")
            add_to_invoice.setIcon(QtGui.QIcon(":/icons/images/choose.png"))
            add_to_invoice.triggered.connect(
                lambda: self.getAmountOfStuff(varModel, varTableView))
        elif varModel == self.model_9:
            add_to_invoice = menu.addAction("Add This To Invoice")
            add_to_invoice.setIcon(QtGui.QIcon(":/icons/images/choose.png"))
            add_to_invoice.triggered.connect(
                lambda: self.getAmountOfStuff(varModel, varTableView))
        elif varModel == self.model_11:
            add_to_invoice = menu.addAction("Add This To Invoice")
            add_to_invoice.setIcon(QtGui.QIcon(":/icons/images/choose.png"))
            add_to_invoice.triggered.connect(
                lambda: self.getAmountOfStuff(varModel, varTableView))
        elif varModel == self.model_5:
            set_client_for_invoice = menu.addAction("Choose this Client")
            set_client_for_invoice.setIcon(
                QtGui.QIcon(":/icons/images/choose.png"))
            set_client_for_invoice.triggered.connect(
                lambda: self.setClient(varModel, varTableView))
        elif varModel == self.model_4:
            show_this_invoice = menu.addAction("Show this invoice")
            show_this_invoice.setIcon(QtGui.QIcon(":/icons/images/look.png"))
            try:
                show_this_invoice.triggered.connect(lambda: self.refreshTable(
                    varModel.showInvoice(varTableView.currentIndex(),
                                         self.setDocumentPreview()), 4))
            except KeyError:
                QtWidgets.QMessageBox.critical(self, "Błąd",
                                               "Tu nie ma zawartości!")
            except TypeError:
                QtWidgets.QMessageBox.critical(self, "Błąd",
                                               "Tu nie ma zawartości!")
        if varModel == self.model_4:
            pass
        else:
            add_data = menu.addAction("Add New Data")
            add_data.setIcon(QtGui.QIcon(":/icons/images/add.png"))
            add_data.triggered.connect(lambda: varModel.insertRows())

        if varModel == self.model_4:
            pass
        else:
            if varTableView.selectedIndexes():
                remove_data = menu.addAction("Remove Data")
                remove_data.setIcon(QtGui.QIcon(":/icons/images/delete.png"))
                remove_data.triggered.connect(
                    lambda: varModel.removeRows(varTableView.currentIndex()))
        cursor = QtGui.QCursor()
        menu.exec_(cursor.pos())
        return PythonMongoDB.invoice