add expenses editable
This commit is contained in:
parent
515d18647d
commit
0daaf393c8
|
@ -45,10 +45,11 @@ class TableEdit(QAbstractTableModel):
|
|||
return True
|
||||
|
||||
def flags(self, index):
|
||||
if index.column() == 1:
|
||||
return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable
|
||||
else:
|
||||
col = index.column()
|
||||
if self._fields[col].get('readonly'):
|
||||
return Qt.ItemIsEnabled
|
||||
else:
|
||||
return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable
|
||||
|
||||
def headerData(self, section, orientation, role):
|
||||
""" Set the headers to be displayed. """
|
||||
|
@ -60,6 +61,13 @@ class TableEdit(QAbstractTableModel):
|
|||
return self._fields[i]['label']
|
||||
return None
|
||||
|
||||
def add_record(self, rec):
|
||||
length = len(self._data)
|
||||
self.beginInsertRows(QModelIndex(), length, length)
|
||||
self._data.append(rec)
|
||||
self.endInsertRows()
|
||||
return rec
|
||||
|
||||
|
||||
class TableModel(QAbstractTableModel):
|
||||
|
||||
|
|
|
@ -7,13 +7,13 @@ STRETCH = QHeaderView.Stretch
|
|||
class TableView(QTableView):
|
||||
|
||||
def __init__(self, name, model, col_sizes=[], method_selected_row=None,
|
||||
selection_edit=False):
|
||||
editable=False):
|
||||
super(TableView, self).__init__()
|
||||
self.setObjectName(name)
|
||||
self.verticalHeader().hide()
|
||||
self.setGridStyle(Qt.DotLine)
|
||||
self.setAlternatingRowColors(True)
|
||||
if not selection_edit:
|
||||
if not editable:
|
||||
self.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||
self.setSelectionMode(QAbstractItemView.SingleSelection)
|
||||
|
@ -23,11 +23,13 @@ class TableView(QTableView):
|
|||
self.doubleClicked.connect(self.on_selected_row)
|
||||
self.clicked.connect(self.selected_clicked)
|
||||
self.setWordWrap(False)
|
||||
|
||||
self.selected_rows = []
|
||||
if model:
|
||||
self.setModel(model)
|
||||
|
||||
header = self.horizontalHeader()
|
||||
header.setStretchLastSection(True)
|
||||
if col_sizes:
|
||||
for i, size in enumerate(col_sizes):
|
||||
if type(size) == int:
|
||||
|
|
|
@ -800,15 +800,14 @@ class DialogMoneyCount(QuickDialog):
|
|||
self.kind = None
|
||||
width, height = get_screen()
|
||||
grid = QGridLayout()
|
||||
col_sizes = [160, 120, 240]
|
||||
_sizes = [160, 120, 240]
|
||||
fields = [
|
||||
{'label': 'MONEDA', 'type': 'integer'},
|
||||
{'label': 'MONEDA', 'type': 'integer', 'readonly': True},
|
||||
{'label': 'CANTIDAD', 'type': 'integer', 'change': 'get_subtotal'},
|
||||
{'label': 'SUBTOTAL', 'type': 'integer'},
|
||||
{'label': 'SUBTOTAL', 'type': 'integer', 'readonly': True},
|
||||
]
|
||||
self.model_money_count = TableEdit(self, MONEY, fields)
|
||||
table = TableView('model_money_count', self.model_money_count,
|
||||
col_sizes, selection_edit=True)
|
||||
self.model = TableEdit(self, MONEY, fields)
|
||||
table = TableView('model', self.model, _sizes, editable=True)
|
||||
table.setFixedSize(width * 0.35, height * 0.4)
|
||||
grid.addWidget(table, 1, 0, 1, 2)
|
||||
|
||||
|
@ -837,7 +836,6 @@ class DialogMoneyCount(QuickDialog):
|
|||
grid.setSpacing(10)
|
||||
super(DialogMoneyCount, self).__init__(parent, 'action',
|
||||
widgets=[grid])
|
||||
# self.setGeometry(0, 0, width * 0.4, height * 0.5)
|
||||
self.setWindowTitle('CONTEO DE DINERO')
|
||||
|
||||
def exec(self, kind):
|
||||
|
@ -845,7 +843,7 @@ class DialogMoneyCount(QuickDialog):
|
|||
self.exec_()
|
||||
|
||||
def get_subtotal(self, row):
|
||||
_row = self.model_money_count._data[row]
|
||||
_row = self.model._data[row]
|
||||
money, value = _row[0], _row[1]
|
||||
_row[2] = int(value) * int(money)
|
||||
self.field_total_money.setText(str(self.get_sum()))
|
||||
|
@ -856,12 +854,12 @@ class DialogMoneyCount(QuickDialog):
|
|||
if self.kind == 'open':
|
||||
self.parent.open_statement_accepted(val)
|
||||
else:
|
||||
values = self.model_money_count._data
|
||||
values = self.model._data
|
||||
self.parent.close_statement_accepted(values)
|
||||
|
||||
def clear(self):
|
||||
new_data = [[d[0], 0, 0] for d in self.model_money_count._data]
|
||||
self.model_money_count._data = new_data
|
||||
new_data = [[d[0], 0, 0] for d in self.model._data]
|
||||
self.model._data = new_data
|
||||
self.field_total_money.setText('0')
|
||||
|
||||
def action_print_count_money(self):
|
||||
|
@ -869,7 +867,7 @@ class DialogMoneyCount(QuickDialog):
|
|||
if self.kind == 'open':
|
||||
kind = 'APERTURA'
|
||||
|
||||
_data = [(str(d[0]), str(d[1]), str(d[2])) for d in self.model_money_count._data]
|
||||
_data = [(str(d[0]), str(d[1]), str(d[2])) for d in self.model._data]
|
||||
data = {
|
||||
'type': kind,
|
||||
'total': self.field_total_money.text(),
|
||||
|
@ -878,7 +876,7 @@ class DialogMoneyCount(QuickDialog):
|
|||
self.parent.action_print_count_money(data)
|
||||
|
||||
def get_sum(self):
|
||||
return sum([int(d[2]) for d in self.model_money_count._data])
|
||||
return sum([int(d[2]) for d in self.model._data])
|
||||
|
||||
|
||||
class DialogExpenses(QuickDialog):
|
||||
|
@ -887,38 +885,58 @@ class DialogExpenses(QuickDialog):
|
|||
width, height = get_screen()
|
||||
grid = QGridLayout()
|
||||
|
||||
col_sizes = [150, 270, 210, 150]
|
||||
self.screen_size = parent.screen_size
|
||||
self.button_add = CustomButton(
|
||||
self,
|
||||
id='button_add_expense',
|
||||
size='small',
|
||||
icon=get_icon('plus'),
|
||||
title='AGREGAR',
|
||||
method='action_add_expense',
|
||||
name_style='mini_button',
|
||||
)
|
||||
grid.addWidget(self.button_add, 1, 0)
|
||||
|
||||
_sizes = [140, 290, 210, 150]
|
||||
fields = [
|
||||
{'label': 'FACTURA', 'type': 'char'},
|
||||
{'label': 'DESCRIPCION', 'type': 'char'},
|
||||
{'label': 'REFERENCIA', 'type': 'char'},
|
||||
{'label': 'VALOR', 'type': 'integer'},
|
||||
]
|
||||
self.model_expenses = TableEdit(self, parent.data_expenses, fields)
|
||||
table = TableView('model_expenses', self.model_expenses,
|
||||
col_sizes, selection_edit=True)
|
||||
table.setFixedSize(width * 0.4, height * 0.4)
|
||||
grid.addWidget(table, 1, 0, 1, 2)
|
||||
self.model = TableEdit(self, parent.data_expenses, fields)
|
||||
table = TableView('model_expenses', self.model, _sizes, editable=True)
|
||||
grid.addWidget(table, 2, 0, 1, 2)
|
||||
|
||||
label_total = QLabel('TOTAL:')
|
||||
label_total.setObjectName('label_total_expenses')
|
||||
label_total.setAlignment(alignCenter)
|
||||
grid.addWidget(label_total, 2, 0)
|
||||
grid.addWidget(label_total, 3, 0)
|
||||
|
||||
self.field_total = FieldMoney(self, 'field_total_expenses')
|
||||
self.field_total.setObjectName('field_total_expenses')
|
||||
self.field_total.setAlignment(alignLeft)
|
||||
grid.addWidget(self.field_total, 2, 1)
|
||||
grid.setRowStretch(0, 0)
|
||||
grid.addWidget(self.field_total, 3, 1)
|
||||
grid.setSpacing(10)
|
||||
|
||||
super(DialogExpenses, self).__init__(parent, 'action', widgets=[grid])
|
||||
self.setGeometry(0, 0, width * 0.4, height * 0.6)
|
||||
self.setGeometry(0, 0, width * 0.5, height * 0.7)
|
||||
self.setWindowTitle('GASTOS')
|
||||
# self.accepted.connect(self.dialog_expenses_accepted)
|
||||
#
|
||||
# def dialog_expenses_accepted(self):
|
||||
# return True
|
||||
|
||||
def action_add_expense(self):
|
||||
print('XXXXXXXXXXXXXX')
|
||||
# value = self.model.insertRow(1)
|
||||
record = ['', '', '', 0]
|
||||
rec = self.model.add_record(record)
|
||||
print(rec)
|
||||
|
||||
def get_sum(self):
|
||||
return sum([int(d[3]) for d in self.model._data])
|
||||
|
||||
def clear(self):
|
||||
new_data = [[d[0], 0, 0] for d in self.model._data]
|
||||
self.model._data = new_data
|
||||
self.field_total.setText('0')
|
||||
|
||||
|
||||
class DialogTaxes(QuickDialog):
|
||||
|
|
Loading…
Reference in New Issue