Exemple #1
0
 def clicked(self, position):
     if(self.sender().rowCount()==0): # Ninguna fila en la tabla
         return
     tabla = self.sender()
     menu = QtGui.QMenu()
     editarAction = menu.addAction("Editar")
     eliminarAction = menu.addAction("Eliminar")
     contabilizar = 0
     for idx in reversed(tabla.selectionModel().selectedRows()):
         if(tabla.item(idx.row(),0).text()=="No"):
             contabilizar = 1
             break
     contabilizarAction = None
     if(contabilizar):
         contabilizarAction = menu.addAction("Contabilizar")
     else:
         contabilizarAction = menu.addAction("Descontabilizar")
     action = menu.exec_(tabla.viewport().mapToGlobal(position))
     row = tabla.rowAt(position.y())
     allRows = tabla.columnCount()
     
     if action == contabilizarAction:
         lista = []
         for idx in reversed(tabla.selectionModel().selectedRows()):
             datos = {}
             for i in range(tabla.horizontalHeader().count()):
                 datos[ unicode(tabla.horizontalHeaderItem(i).text())] =  unicode(tabla.item(idx.row(),i).text())
             lista.append(datos)
         if(self.sender().objectName()=="tableWidget_Ventas"):
             DBController.contabilizar(self, 1,contabilizar, lista)
         else:
             DBController.contabilizar(self, 0,contabilizar, lista)
     elif action == editarAction:
         datos = {}
         
         for i in range(tabla.horizontalHeader().count()):
             datos[ unicode(tabla.horizontalHeaderItem(i).text())] =  unicode(tabla.item(row,i).text())
         tipo = 0
         if(self.sender().objectName()=="tableWidget_Ventas"):
             tipo = 1
         fac = DBController.getFactura(datos, tipo)
         datos["Cuenta"] = fac.cuentaProveedores
         datos["Correlativo"] = unicode(fac.correlativo)
         my_dialog = EditarDocumentoModal(tipo, datos ) 
         if(my_dialog.resultado):
             self.updateTablas()
     elif action == eliminarAction:
         # TODO: lanzar evento al oprimir suprimir,
         qm = QtGui.QMessageBox(self)
         qm.setWindowTitle('Eliminar documento')
         if( len(tabla.selectionModel().selectedRows()) == 1):
             qm.setText("Esta seguro de que desea eliminar el documento ?")
         else:
             qm.setText("Esta seguro de que desea eliminar los %d documentos ?"%len(tabla.selectionModel().selectedRows()))
         qm.addButton(QtGui.QMessageBox.Yes).setText("Si")
         qm.addButton(QtGui.QMessageBox.No).setText("No")
         qm.setIcon(QtGui.QMessageBox.Question)
         reply = qm.exec_()
         
         if reply == QtGui.QMessageBox.Yes:
             for idx in reversed(tabla.selectionModel().selectedRows()):
                 DBController.eliminarFactura(tabla.item(idx.row(),16).text())
                 tabla.removeRow(idx.row())