예제 #1
0
    def removeRows(self, position):
        row_count = self.rowCount()
        row_count -= 1
        self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count)
        if isinstance(position, int):
            document_id = self.user_data[position][0]
            databaseOperations.remove_data(document_id, self.table_name)
        elif isinstance(position, QtCore.QModelIndex):
            row_id = position.row()
            document_id = self.user_data[row_id][0]
            databaseOperations.remove_data(document_id, self.table_name)

        elif isinstance(position, list):
            for data in self.user_data:
                k = 0
                for i in range(len(position)):
                    if data[i + 1] == position[i].data():
                        k += 1

                if (k == len(position)):
                    rowid = data[0]
                    databaseOperations.remove_data(rowid, self.table_name)

        else:
            return False

        self.user_data = databaseOperations.get_multiple_data(self.table_name)
        # print(self.user_data)
        self.endRemoveRows()
        return True
예제 #2
0
 def insertRows_vendor_part(self, details):
     row_count = len(self.user_data)
     self.beginInsertRows(QtCore.QModelIndex(), row_count, row_count)
     empty_data = []
     if len(details) == 1:  #Vendor
         for key in self.columns:
             if not key == 'id_':
                 if key == "Vendor Name":
                     empty_data.append(str(details[0]))
                 else:
                     empty_data.append("")
         print(empty_data)
         document_id = databaseOperations.insert_data(
             empty_data, self.column_names, self.table_name)
     else:
         for key in self.columns:
             if not key == 'id_':
                 if key == "Part Name":
                     empty_data.append(str(details[0]))
                 elif key == "Vehicle Type":
                     empty_data.append(str(details[1]))
                 else:
                     empty_data.append("")
         document_id = databaseOperations.insert_data(
             empty_data, self.column_names, self.table_name)
     row_count += 1
     new_data = databaseOperations.get_single_data(row_count,
                                                   self.table_name)
     self.user_data = databaseOperations.get_multiple_data(self.table_name)
     self.endInsertRows()
     return True
예제 #3
0
    def __init__(self, table):
        QtCore.QAbstractTableModel.__init__(self)
        self.table_name = table.name
        self.user_data = databaseOperations.get_multiple_data(self.table_name)

        self.columns = table.headers
        self.column_names = table.column_names
예제 #4
0
 def removeRows(self, position):
     row_count = self.rowCount()
     row_count -= 1
     self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count)
     if isinstance(position, int):
         document_id = self.user_data[position][0]
     else:
         row_id = position.row()
         document_id = self.user_data[row_id][0]
     # print("To be deleted: {}".format(document_id))
     print(document_id)
     databaseOperations.remove_data(document_id, self.table_name)
     self.user_data = databaseOperations.get_multiple_data(self.table_name)
     # print(self.user_data)
     self.endRemoveRows()
     return True
예제 #5
0
 def insertRows(self):
     row_count = len(self.user_data)
     self.beginInsertRows(QtCore.QModelIndex(), row_count, row_count)
     empty_data = []
     for key in self.columns:
         if not key == 'id_':
             empty_data.append("")
     document_id = databaseOperations.insert_data(empty_data,
                                                  self.column_names,
                                                  self.table_name)
     row_count += 1
     new_data = databaseOperations.get_single_data(row_count,
                                                   self.table_name)
     self.user_data = databaseOperations.get_multiple_data(self.table_name)
     self.endInsertRows()
     return True
예제 #6
0
    def removeRows_vendor_part(self, details):
        row_count = self.rowCount()
        row_count -= 1
        self.beginRemoveRows(QtCore.QModelIndex(), row_count, row_count)

        if len(details) == 1:  #Vendor
            databaseOperations.remove_data_vendor_part(details,
                                                       self.table_name)
        else:
            databaseOperations.remove_data_vendor_part(details,
                                                       self.table_name)

        self.user_data = databaseOperations.get_multiple_data(self.table_name)
        # print(self.user_data)
        self.endRemoveRows()
        return True
    def __init__(self):
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        ## TOGGLE MENU
        ########################################################################
        self.ui.Btn_Toggle.clicked.connect(
            lambda: UIFunctions.toggleMenu(self, 200, True))

        ## Current Page
        self.ui.Pages_Widget.setCurrentWidget(self.ui.home_page)

        self.ui.Btn_Customer.clicked.connect(
            lambda: Customer.show_customer(self))
        self.ui.Btn_add_customer.clicked.connect(
            lambda: Customer.add_customer(self))

        self.ui.Btn_Home.clicked.connect(self.show_home)

        # self.customer_data = CustomerModel.objects()
        # for i in self.customer_data[:]:
        #     data = [i.first_name, i.last_name, i.phone_no, i.office_no, i.email, i.address]
        # self.model = CustomerTableModel(data)
        # self.ui.tableView.setModel(self.model)
        # for i in customer:
        #     result = [i.first_name, i.last_name, i.phone_no, i.office_no, i.email, i.address]
        #     print(result)
        #     for key in customer[0]:
        #         print(key)key
        self.customer_data = databaseOperations.get_multiple_data()
        self.model = CustomerTableModel(self.customer_data)
        self.ui.tableView.setModel(self.model)
        self.ui.tableView.setItemDelegate(InLineEditDelegate())
        self.ui.tableView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.ui.tableView.customContextMenuRequested.connect(self.context_menu)
        self.ui.tableView.verticalHeader().setDefaultSectionSize(50)
        self.ui.tableView.setColumnWidth(0, 100)
        self.ui.tableView.hideColumn(0)

        ## SHOW ==> MAIN WINDOW
        ########################################################################
        self.show()
예제 #8
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()]
         new_data = list(selected_row)
         new_data[index.column()] = value
         self.dataChanged.emit(index, index, (QtCore.Qt.DisplayRole, ))
         ok = databaseOperations.update_existing(new_data[0], new_data[1:],
                                                 self.column_names,
                                                 self.table_name)
         self.user_data = databaseOperations.get_multiple_data(
             self.table_name)
         if ok:
             return True
     return False
예제 #9
0
import abc
import databaseOperations
## GLOBALS
# VENDORS
VENDORS_TABLE_NAME = "Vendors"
VENDORS_DATA = databaseOperations.get_multiple_data(VENDORS_TABLE_NAME)
VENDORS_HEADERS = ["id_", "Name", "Address", "Contact"]
VENDORS_COLUMN_NAMES = ["name", "address", "contact"]

# PARTS
PARTS_TABLE_NAME = "Parts"
PARTS_DATA = databaseOperations.get_multiple_data(PARTS_TABLE_NAME)
PARTS_HEADERS = ["id_", "Name", "Vehicle Type", "Rack Number", "Threshold"]
PARTS_COLUMN_NAMES = ["part_name", "vehicle_type", "rack_number", "Threshold"]

# STATS
STATS_TABLE_NAME = "Stats"
STATS_DATA = databaseOperations.get_multiple_data(STATS_TABLE_NAME)
STATS_HEADERS = [
    "id_", "Vendor Name", "Part Name", "Vehicle Type", "Stock", "Cost Price"
]
STATS_COLUMN_NAMES = [
    "vendor_name", "part_name", "vehicle_type", "stock", "cp"
]

# INVOICE
INVOICE_TABLE_NAME = "Invoice"
INVOICE_DATA = databaseOperations.get_multiple_data(INVOICE_TABLE_NAME)
INVOICE_HEADERS = [
    "id_", "Invoice Number", "Part Name", "Vehicle Type", "Price", "Volume",
    "Amount", "Vendor Name", "Cost Price"