def __init__(self, winPrincipal): self.winPrincipal = winPrincipal self.producto = Producto() self.proveedor = Proveedor() self.marca = Marca() self.rubro = Rubro() self.estado = "" self.conexionProducto = conexionProducto() self.configInit()
def changeSelectedTable(self, selected, deselected): self.winRubro.tvRubros_r.selectRow(selected.row()) rubroList = selected.model().mylist rubroSelected = rubroList[selected.row()] self.rubro = Rubro() self.rubro.setIdRubro(int(rubroSelected[0])) self.rubro.setRubro(str(rubroSelected[1])) self.winRubro.tvRubros_r.setRowHeight(deselected.row(), 33) self.winRubro.tvRubros_r.setRowHeight(selected.row(), 45) self.winRubro.txtDescripcion_r.setText(str(self.rubro.getRubro())) self.winRubro.btnModificar_r.setEnabled(True) self.winRubro.btnBorrar_r.setEnabled(True)
def changeSelectedTable(self, selected, deselected): productoList = selected.model().mylist productoSelected = productoList[selected.row()] self.producto = Producto() self.rubro = Rubro() self.proveedor = Proveedor() self.marca = Marca() self.producto.setIdProducto(productoSelected[0]) self.producto.setNombre(productoSelected[1]) self.producto.setDescripcion(productoSelected[2]) self.producto.setPrecioCompra(productoSelected[3]) self.producto.setPrecioVenta(productoSelected[4]) self.producto.setGenero(productoSelected[5]) self.producto.setEstado(productoSelected[6]) self.producto.setCantidad(productoSelected[7]) self.producto.setCantidadMinima(productoSelected[8]) self.marca.setIdMarca(productoSelected[9]) self.marca.setMarca(productoSelected[10]) self.producto.setMarca(self.marca) self.rubro.setIdRubro(productoSelected[11]) self.rubro.setRubro(productoSelected[12]) self.producto.setRubro(self.rubro) self.proveedor.setIdProveedor(productoSelected[13]) self.proveedor.setDescripcion(productoSelected[14]) self.producto.setProveedor(self.proveedor) self.winPrincipal.tvProductos_p.setRowHeight(deselected.row(),33) self.winPrincipal.tvProductos_p.setRowHeight(selected.row(),45) self.setCampos() self.winPrincipal.btnModificar_p.setEnabled(True) self.winPrincipal.btnBorrar_p.setEnabled(True)
def __init__(self): self.__idProducto = "" self.__nombre = "" self.__cantidad = 0 self.__cantidadMinima = 0 self.__descripcion = "" self.__genero = "" self.__rubro = Rubro() self.__proveedor = Proveedor() self.__marca = Marca() self.__estado = 0 self.__pCompra = 0, 00 self.__pVenta = 0, 00
def __init__(self): #Definiendo variables self.winRubro = uic.loadUi('../Vista/abmRubro.ui') self.rubro = Rubro() self.conexionRubro = conexionRubro() self.contAttr = 0 self.estado = "" #Variable donde guardo el estado, para saber que accion hace el boton guardar. #Configurando botones self.winRubro.btnGuardar_r.clicked.connect(self.onClickGuardar_r) self.winRubro.btnModificar_r.clicked.connect(self.onClickModificar_r) self.winRubro.btnBorrar_r.clicked.connect(self.onClickBorrar_r) self.winRubro.btnAgregar_r.clicked.connect(self.onClickAgregar_r) self.winRubro.txtFilterRubros_r.returnPressed.connect(self.search) #Seteo propiedades de la tabla self.winRubro.tvRubros_r.setSortingEnabled(True) self.winRubro.tvRubros_r.setMouseTracking(True) self.winRubro.tvRubros_r.setSelectionBehavior( QAbstractItemView.SelectRows) self.winRubro.exec()
def __init__(self): # Definiendo variables self.winRubro = uic.loadUi("../Vista/abmRubro.ui") self.rubro = Rubro() self.conexionRubro = conexionRubro() self.contAttr = 0 self.estado = "" # Variable donde guardo el estado, para saber que accion hace el boton guardar. # Configurando botones self.winRubro.btnGuardar_r.clicked.connect(self.onClickGuardar_r) self.winRubro.btnModificar_r.clicked.connect(self.onClickModificar_r) self.winRubro.btnBorrar_r.clicked.connect(self.onClickBorrar_r) self.winRubro.btnAgregar_r.clicked.connect(self.onClickAgregar_r) self.winRubro.txtFilterRubros_r.returnPressed.connect(self.search) # Seteo propiedades de la tabla self.winRubro.tvRubros_r.setSortingEnabled(True) self.winRubro.tvRubros_r.setMouseTracking(True) self.winRubro.tvRubros_r.setSelectionBehavior(QAbstractItemView.SelectRows) self.winRubro.exec()
def __init__(self): self.conexion = Conexion() self.__rubro = Rubro()
class PestaniaProducto(): def __init__(self, winPrincipal): self.winPrincipal = winPrincipal self.producto = Producto() self.proveedor = Proveedor() self.marca = Marca() self.rubro = Rubro() self.estado = "" self.conexionProducto = conexionProducto() self.completerRubro = QCompleter() self.completerMarca = QCompleter() self.completerProveedor = QCompleter() self.configInit() def configInit(self): #Configurando botones self.winPrincipal.btnAgregar_p.clicked.connect(self.onClickAgregar_p) self.winPrincipal.btnGuardar_p.clicked.connect(self.onClickGuardar_p) self.winPrincipal.btnBorrar_p.clicked.connect(self.onClickBorrar_p) self.winPrincipal.btnModificar_p.clicked.connect( self.onClickModificar_p) self.winPrincipal.btnRubro_p.clicked.connect(windowRubro) self.winPrincipal.btnMarca_p.clicked.connect(windowMarca) #windowMarca.connect(windowMarca, Qt.SIGNAL('destroyed()'), self.onQuitMarca) self.winPrincipal.txtFilterProductos_p.returnPressed.connect( self.search) #self.cargarTabla() self.winPrincipal.tvProductos_p.setMouseTracking(True) self.winPrincipal.tvProductos_p.setSelectionBehavior( QAbstractItemView.SelectRows) self.setCompleterMarca() self.setCompleterRubro() self.setCompleterProveedor() self.winPrincipal.txtFilterProductos_p.setFocus(True) def finish(self): self.winPrincipal.btnAgregar_p.disconnect() self.winPrincipal.btnGuardar_p.disconnect() self.winPrincipal.btnModificar_p.disconnect() self.winPrincipal.btnBorrar_p.disconnect() self.winPrincipal.btnRubro_p.disconnect() self.winPrincipal.btnMarca_p.disconnect() self.winPrincipal.tvProductos_p.disconnect() def search(self): if self.winPrincipal.txtFilterProductos_p.hasFocus() is True: self.cargarTabla() def onClickAgregar_p(self): self.estado = 'AGREGAR' self.validarBotones(button='AGREGAR') def onClickGuardar_p(self): validar = self.validar() if validar != "": print(validar) alert = QDialog() QMessageBox.information(alert, "ERROR", validar) else: self.producto.setDescripcion( str(self.winPrincipal.txtDescripcion_p.toPlainText())) self.producto.setCantidad( int(self.winPrincipal.sbCantidad_p.value())) self.producto.setCantidadMinima( int(self.winPrincipal.sbCantidadMin_p.value())) if self.winPrincipal.cbEstado_p.currentText() == "ACTIVO": self.producto.setEstado(1) else: self.producto.setEstado(0) if self.winPrincipal.rbFemenino_p.isChecked() is True: self.producto.setGenero("F") elif self.winPrincipal.rbMasculino_p.isChecked() is True: self.producto.setGenero("M") else: self.producto.setGenero("I") self.producto.setNombre(str(self.winPrincipal.txtNombre_p.text())) self.producto.setPrecioCompra( float(self.winPrincipal.txtPrecioCompra_p.text())) self.producto.setPrecioVenta( float(self.winPrincipal.txtPrecioVenta_p.text())) self.rubro.setRubro(str(self.completerRubro.currentCompletion())) self.producto.setRubro(self.rubro) self.proveedor.setDescripcion( str(self.completerProveedor.currentCompletion())) self.producto.setProveedor(self.proveedor) self.marca.setMarca(str(self.completerMarca.currentCompletion())) self.producto.setMarca(self.marca) if self.estado == 'AGREGAR': self.insertarProducto() elif self.estado == 'MODIFICAR': self.modificarProducto() self.validarBotones('GUARDAR') def onClickModificar_p(self): self.estado = 'MODIFICAR' self.validarBotones(button='MODIFICAR') def onClickBorrar_p(self): if self.winPrincipal.btnGuardar_p.isEnabled() != True: self.conexionProducto.borrarProducto(self.producto) self.cargarTabla() self.validarBotones(button='BORRAR') def cargarTabla(self): parameter = self.winPrincipal.txtFilterProductos_p.text() typeParameter = '' if self.winPrincipal.cbFilterProducto_p.currentText() == 'Nombre': typeParameter = 'p.nombre' elif self.winPrincipal.cbFilterProducto_p.currentText() == 'Marca': typeParameter = 'm.descripcion' else: typeParameter = 'r.descripcion' parameterState = 1 if self.winPrincipal.cbInactivo_p.isChecked() is True: parameterState = 0 parameterStock = 1 if self.winPrincipal.cbSinStock_p.isChecked() is True: parameterStock = 0 listaProductos = self.conexionProducto.selectProducto( typeParameter, parameter, parameterState, parameterStock) if len(listaProductos) > 0: header = [ 'idPro', 'Nombre', 'Descripcion', 'PC', 'PV', 'G', 'Estado', 'Cant', 'Cantidad Min', 'idMar', 'Marca', 'idRubro', 'Rubro', 'idProv', 'Proveedor' ] self.tablaModel = MyTableModel(self.winPrincipal.tvProductos_p, listaProductos, header) self.winPrincipal.tvProductos_p.setModel(self.tablaModel) self.winPrincipal.tvProductos_p.selectionModel( ).currentChanged.connect(self.changeSelectedTable) self.winPrincipal.tvProductos_p.setColumnHidden(0, True) self.winPrincipal.tvProductos_p.setColumnWidth(1, 200) self.winPrincipal.tvProductos_p.setColumnWidth(2, 320) self.winPrincipal.tvProductos_p.setColumnWidth(3, 60) self.winPrincipal.tvProductos_p.setColumnWidth(4, 60) self.winPrincipal.tvProductos_p.setColumnWidth(5, 60) self.winPrincipal.tvProductos_p.setColumnHidden(6, True) self.winPrincipal.tvProductos_p.setColumnWidth(7, 40) self.winPrincipal.tvProductos_p.setColumnHidden(8, True) self.winPrincipal.tvProductos_p.setColumnHidden(9, True) self.winPrincipal.tvProductos_p.setColumnWidth(10, 130) self.winPrincipal.tvProductos_p.setColumnHidden(11, True) self.winPrincipal.tvProductos_p.setColumnWidth(12, 130) self.winPrincipal.tvProductos_p.setColumnHidden(13, True) self.winPrincipal.tvProductos_p.setColumnWidth(14, 130) else: self.winPrincipal.tvProductos_p.setModel(None) def changeSelectedTable(self, selected, deselected): productoList = selected.model().mylist productoSelected = productoList[selected.row()] self.producto = Producto() self.rubro = Rubro() self.proveedor = Proveedor() self.marca = Marca() self.producto.setIdProducto(productoSelected[0]) self.producto.setNombre(productoSelected[1]) self.producto.setDescripcion(productoSelected[2]) self.producto.setPrecioCompra(productoSelected[3]) self.producto.setPrecioVenta(productoSelected[4]) self.producto.setGenero(productoSelected[5]) self.producto.setEstado(productoSelected[6]) self.producto.setCantidad(productoSelected[7]) self.producto.setCantidadMinima(productoSelected[8]) self.marca.setIdMarca(productoSelected[9]) self.marca.setMarca(productoSelected[10]) self.producto.setMarca(self.marca) self.rubro.setIdRubro(productoSelected[11]) self.rubro.setRubro(productoSelected[12]) self.producto.setRubro(self.rubro) self.proveedor.setIdProveedor(productoSelected[13]) self.proveedor.setDescripcion(productoSelected[14]) self.producto.setProveedor(self.proveedor) self.winPrincipal.tvProductos_p.setRowHeight(deselected.row(), 33) self.winPrincipal.tvProductos_p.setRowHeight(selected.row(), 45) self.setCampos() self.winPrincipal.btnModificar_p.setEnabled(True) self.winPrincipal.btnBorrar_p.setEnabled(True) def validarBotones(self, button): if button == 'AGREGAR': self.winPrincipal.wDatosProducto.setEnabled(True) self.winPrincipal.btnBorrar_p.setEnabled(True) self.winPrincipal.btnBorrar_p.setText('CANCELAR') self.winPrincipal.btnGuardar_p.setEnabled(True) self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(False) self.winPrincipal.tvProductos_p.setEnabled(False) self.limpiarCampos() elif button == 'GUARDAR': self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(True) self.winPrincipal.btnGuardar_p.setEnabled(False) self.winPrincipal.btnBorrar_p.setText('BORRAR') self.winPrincipal.btnBorrar_p.setEnabled(False) self.winPrincipal.tvProductos_p.setEnabled(True) self.winPrincipal.wDatosProducto.setEnabled(False) self.limpiarCampos() elif button == 'MODIFICAR': self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(False) self.winPrincipal.btnGuardar_p.setEnabled(True) self.winPrincipal.btnBorrar_p.setText('CANCELAR') self.winPrincipal.btnBorrar_p.setEnabled(True) self.winPrincipal.tvProductos_p.setEnabled(False) self.winPrincipal.wDatosProducto.setEnabled(True) elif button == 'BORRAR': self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(True) self.winPrincipal.btnGuardar_p.setEnabled(False) self.winPrincipal.btnBorrar_p.setText('BORRAR') self.winPrincipal.btnBorrar_p.setEnabled(False) self.winPrincipal.tvProductos_p.setEnabled(True) self.winPrincipal.wDatosProducto.setEnabled(False) self.limpiarCampos() def insertarProducto(self): self.conexionProducto.insertarProducto(producto=self.producto) self.cargarTabla() def modificarProducto(self): self.conexionProducto.modificarProducto(self.producto) self.cargarTabla() def limpiarCampos(self): self.winPrincipal.txtNombre_p.setText('') self.winPrincipal.txtPrecioCompra_p.setText('') self.winPrincipal.txtPrecioVenta_p.setText('') self.winPrincipal.sbCantidad_p.setValue(0) self.winPrincipal.sbCantidadMin_p.setValue(0) self.winPrincipal.txtProveedor_p.setText('') self.winPrincipal.txtDescripcion_p.setText('') self.winPrincipal.txtRubro_p.setText('') self.winPrincipal.txtMarca_p.setText('') self.completerProveedor.setCurrentRow(0) self.completerRubro.setCurrentRow(0) self.completerMarca.setCurrentRow(0) self.winPrincipal.txtFilterProductos_p.setText('') self.winPrincipal.tvProductos_p.setModel(None) self.winPrincipal.txtFilterProductos_p.setFocus(True) def setCampos(self): self.winPrincipal.txtNombre_p.setText(self.producto.getNombre()) self.winPrincipal.txtDescripcion_p.setText( str(self.producto.getDescripcion())) self.winPrincipal.txtPrecioCompra_p.setText( str(self.producto.getPrecioCompra())) self.winPrincipal.txtPrecioVenta_p.setText( str(self.producto.getPrecioVenta())) self.winPrincipal.txtProveedor_p.setText( str(self.producto.getProveedor().getDescripcion())) self.winPrincipal.sbCantidad_p.setValue( int(self.producto.getCantidad())) self.winPrincipal.sbCantidadMin_p.setValue( int(self.producto.getCantidadMinima())) self.winPrincipal.txtRubro_p.setText( str(self.producto.getRubro().getRubro())) self.winPrincipal.txtMarca_p.setText( str(self.producto.getMarca().getMarca())) if self.producto.getEstado() == 1: self.winPrincipal.cbEstado_p.setCurrentIndex(0) else: self.winPrincipal.cbEstado_p.setCurrentIndex(1) if self.producto.getGenero() == 'F': self.winPrincipal.rbFemenino_p.setChecked(True) elif self.producto.getGenero() == 'M': self.winPrincipal.rbMasculino_p.setChecked(True) else: self.winPrincipal.rbIndiferente_p.setChecked(True) def validar(self): mensaje = '' if self.winPrincipal.txtNombre_p.text() == '': mensaje = "Falta ingresar Nombre" elif self.winPrincipal.txtPrecioCompra_p.text() == '': mensaje = "Falta ingresar Precio de Compra" elif self.winPrincipal.txtPrecioVenta_p.text() == '': mensaje = "Falta ingresar Precio de Venta" elif self.completerProveedor.currentCompletion() == '': mensaje = "Falta ingresar un Proveedor" elif self.completerMarca.currentCompletion() == '': mensaje = "Falta seleccionar la marca" elif self.completerRubro.currentCompletion() == '': mensaje = 'Falta seleccionar el rubro' """elif self.completerProveedor.currentCompletion() =='' or self.completerProveedor.currentRow() == 0: mensaje= "Falta ingresar un Proveedor" elif self.completerMarca.currentCompletion() == '' or self.completerMarca.currentRow() == 0: mensaje = "Falta seleccionar la marca" elif self.completerRubro.currentCompletion() == '' or self.completerRubro.currentRow() == 0: mensaje = 'Falta seleccionar el rubro' """ return mensaje def setCompleterMarca(self): listMarcas = self.conexionProducto.listMarcas() self.completerMarca = QCompleter(listMarcas) self.completerMarca.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.winPrincipal.txtMarca_p.setCompleter(self.completerMarca) def setCompleterRubro(self): listRubros = self.conexionProducto.listRubro() self.completerRubro = QCompleter(listRubros) #self.completerRubro.dynamicPropertyNames() self.completerRubro.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.winPrincipal.txtRubro_p.setCompleter(self.completerRubro) def setCompleterProveedor(self): listProveedores = self.conexionProducto.listProveedor() self.completerProveedor = QCompleter(listProveedores) self.completerProveedor.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.winPrincipal.txtProveedor_p.setCompleter(self.completerProveedor)
class windowRubro(): def __init__(self): #Definiendo variables self.winRubro = uic.loadUi('../Vista/abmRubro.ui') self.rubro = Rubro() self.conexionRubro = conexionRubro() self.contAttr = 0 self.estado = "" #Variable donde guardo el estado, para saber que accion hace el boton guardar. #Configurando botones self.winRubro.btnGuardar_r.clicked.connect(self.onClickGuardar_r) self.winRubro.btnModificar_r.clicked.connect(self.onClickModificar_r) self.winRubro.btnBorrar_r.clicked.connect(self.onClickBorrar_r) self.winRubro.btnAgregar_r.clicked.connect(self.onClickAgregar_r) #Seteando tabla self.cargarTabla() #Seteo propiedades de la tabla self.winRubro.tvRubros_r.setSortingEnabled(True) self.winRubro.tvRubros_r.setMouseTracking(True) self.winRubro.tvRubros_r.setSelectionBehavior(QAbstractItemView.SelectRows) self.winRubro.exec() #sys.executable(self.winRubro.exec_()) def onClickGuardar_r(self): if self.winRubro.txtDescripcion_r.text() != "": self.rubro.setRubro(self.winRubro.txtDescripcion_r.text()) if self.estado == 'AGREGAR': self.insertRubro() elif self.estado == 'MODIFICAR': self.modificarRubro() else: print("Falta completar el campo descripcion") alert = QDialog() QMessageBox.information(alert,"ERROR", "Falta completar el campo descripcion") self.validarBotones(button='GUARDAR') def onClickAgregar_r(self): self.estado = 'AGREGAR' self.validarBotones(button='AGREGAR') def onClickModificar_r(self): self.estado = 'MODIFICAR' self.validarBotones(button='MODIFICAR') def onClickBorrar_r(self): if self.rubro and self.winRubro.btnAgregar_r.isEnabled(): self.conexionRubro.borrarRubro(self.rubro) self.cargarTabla() self.validarBotones(button='BORRAR') def cargarTabla(self): #Seteo el dataProvider de la tabla listaRubros = self.conexionRubro.selectRubro() header = ['ID', 'Rubro'] self.tablaModel = MyTableModel(self.winRubro.tvRubros_r, listaRubros, header) self.winRubro.tvRubros_r.setModel(self.tablaModel) self.winRubro.tvRubros_r.selectionModel().currentChanged.connect(self.changeSelectedTable) self.winRubro.tvRubros_r.setColumnHidden(0, True) self.winRubro.tvRubros_r.setColumnWidth(1, 245) def changeSelectedTable(self, selected, deselected): self.winRubro.tvRubros_r.selectRow(selected.row()) rubroList = selected.model().mylist rubroSelected = rubroList[selected.row()] self.rubro = Rubro() self.rubro.setIdRubro(int(rubroSelected[0])) self.rubro.setRubro(str(rubroSelected[1])) self.winRubro.tvRubros_r.setRowHeight(deselected.row(), 33) self.winRubro.tvRubros_r.setRowHeight(selected.row(), 45) self.winRubro.txtDescripcion_r.setText(str(self.rubro.getRubro())) self.winRubro.btnModificar_r.setEnabled(True) self.winRubro.btnBorrar_r.setEnabled(True) def validarBotones(self, button): if button == 'AGREGAR': self.winRubro.btnModificar_r.setEnabled(False) self.winRubro.btnAgregar_r.setEnabled(False) self.winRubro.btnGuardar_r.setEnabled(True) self.winRubro.btnBorrar_r.setText('CANCELAR') self.winRubro.btnBorrar_r.setEnabled(True) self.winRubro.tvRubros_r.setEnabled(False) self.winRubro.txtDescripcion_r.setText('') self.winRubro.txtDescripcion_r.setEnabled(True) elif button == 'GUARDAR': self.winRubro.btnModificar_r.setEnabled(False) self.winRubro.btnAgregar_r.setEnabled(True) self.winRubro.btnGuardar_r.setEnabled(False) self.winRubro.btnBorrar_r.setText('BORRAR') self.winRubro.btnBorrar_r.setEnabled(False) self.winRubro.tvRubros_r.setEnabled(True) self.winRubro.txtDescripcion_r.setText('') self.winRubro.txtDescripcion_r.setEnabled(False) elif button == 'MODIFICAR': self.winRubro.btnModificar_r.setEnabled(False) self.winRubro.btnAgregar_r.setEnabled(False) self.winRubro.btnGuardar_r.setEnabled(True) self.winRubro.btnBorrar_r.setText('CANCELAR') self.winRubro.btnBorrar_r.setEnabled(True) self.winRubro.tvRubros_r.setEnabled(False) self.winRubro.txtDescripcion_r.setEnabled(True) elif button == 'BORRAR': self.winRubro.btnModificar_r.setEnabled(False) self.winRubro.btnAgregar_r.setEnabled(True) self.winRubro.btnGuardar_r.setEnabled(False) self.winRubro.btnBorrar_r.setText('BORRAR') self.winRubro.btnBorrar_r.setEnabled(False) self.winRubro.tvRubros_r.setEnabled(True) self.winRubro.txtDescripcion_r.setText('') self.winRubro.txtDescripcion_r.setEnabled(False) def insertRubro(self): if self.rubro: self.conexionRubro.insertarRubro(self.rubro) self.cargarTabla() def modificarRubro(self): if self.rubro: self.conexionRubro.modificarRubro(self.rubro) self.cargarTabla()
def __init__(self): self.conexion = Conexion() self.producto = Producto() self.proveedor = Proveedor() self.rubro = Rubro() self.marca = Marca()
class PestaniaProducto(): def __init__(self, winPrincipal): self.winPrincipal = winPrincipal self.producto = Producto() self.proveedor = Proveedor() self.marca = Marca() self.rubro = Rubro() self.estado = "" self.conexionProducto = conexionProducto() self.configInit() def configInit(self): #Configurando botones self.winPrincipal.btnAgregar_p.clicked.connect(self.onClickAgregar_p) self.winPrincipal.btnGuardar_p.clicked.connect(self.onClickGuardar_p) self.winPrincipal.btnBorrar_p.clicked.connect(self.onClickBorrar_p) self.winPrincipal.btnModificar_p.clicked.connect(self.onClickModificar_p) self.winPrincipal.btnRubro_p.clicked.connect(windowRubro) self.winPrincipal.btnMarca_p.clicked.connect(windowMarca) self.cargarTabla() self.winPrincipal.tvProductos_p.setMouseTracking(True) self.winPrincipal.tvProductos_p.setSelectionBehavior(QAbstractItemView.SelectRows) self.setCompleterMarca() self.setCompleterRubro() self.setCompleterProveedor() def onClickAgregar_p(self): self.estado = 'AGREGAR' self.validarBotones(button='AGREGAR') def onClickGuardar_p(self): validar = self.validar() if validar != "": print(validar) alert = QDialog() QMessageBox.information(alert,"ERROR", validar) else: self.producto.setDescripcion(str(self.winPrincipal.txtDescripcion_p.toPlainText())) self.producto.setCantidad(int(self.winPrincipal.sbCantidad_p.value())) self.producto.setCantidadMinima(int(self.winPrincipal.sbCantidadMin_p.value())) if self.winPrincipal.cbEstado_p.currentText() == "ACTIVO": self.producto.setEstado(1) else: self.producto.setEstado(0) if self.winPrincipal.rbFemenino_p.isChecked() is True: self.producto.setGenero("F") else: self.producto.setGenero("M") self.producto.setNombre(str(self.winPrincipal.txtNombre_p.text())) self.producto.setPrecioCompra(float(self.winPrincipal.txtPrecioCompra_p.text())) self.producto.setPrecioVenta(float(self.winPrincipal.txtPrecioVenta_p.text())) self.rubro.setRubro(str(self.completerRubro.currentCompletion())) self.producto.setRubro(self.rubro) self.proveedor.setDescripcion(str(self.completerProveedor.currentCompletion())) self.producto.setProveedor(self.proveedor) self.marca.setMarca(str(self.completerMarca.currentCompletion())) self.producto.setMarca(self.marca) if self.estado == 'AGREGAR': self.insertarProducto() elif self.estado == 'MODIFICAR': self.modificarProducto() self.validarBotones('GUARDAR') def onClickModificar_p(self): self.estado = 'MODIFICAR' self.validarBotones(button='MODIFICAR') def onClickBorrar_p(self): if self.winPrincipal.btnGuardar_p.isEnabled() != True: self.conexionProducto.borrarProducto(self.producto) self.cargarTabla() self.validarBotones(button='BORRAR') def cargarTabla(self): listaProductos = self.conexionProducto.selectProducto() if len(listaProductos) > 0: header = ['idPro','Nombre', 'Descripcion', 'PC', 'PV', 'G', 'Estado', 'Cant', 'Cantidad Min', 'idMar', 'Marca', 'idRubro', 'Rubro', 'idProv', 'Proveedor'] self.tablaModel = MyTableModel(self.winPrincipal.tvProductos_p, listaProductos, header) self.winPrincipal.tvProductos_p.setModel(self.tablaModel) self.winPrincipal.tvProductos_p.selectionModel().currentChanged.connect(self.changeSelectedTable) self.winPrincipal.tvProductos_p.setColumnHidden(0, True) self.winPrincipal.tvProductos_p.setColumnWidth(1, 200) self.winPrincipal.tvProductos_p.setColumnWidth(2, 320) self.winPrincipal.tvProductos_p.setColumnWidth(3, 60) self.winPrincipal.tvProductos_p.setColumnWidth(4, 60) self.winPrincipal.tvProductos_p.setColumnWidth(5, 60) self.winPrincipal.tvProductos_p.setColumnHidden(6, True) self.winPrincipal.tvProductos_p.setColumnWidth(7, 40) self.winPrincipal.tvProductos_p.setColumnHidden(8, True) self.winPrincipal.tvProductos_p.setColumnHidden(9, True) self.winPrincipal.tvProductos_p.setColumnWidth(10, 130) self.winPrincipal.tvProductos_p.setColumnHidden(11, True) self.winPrincipal.tvProductos_p.setColumnWidth(12, 130) self.winPrincipal.tvProductos_p.setColumnHidden(13, True) self.winPrincipal.tvProductos_p.setColumnWidth(14, 130) def changeSelectedTable(self, selected, deselected): productoList = selected.model().mylist productoSelected = productoList[selected.row()] self.producto = Producto() self.rubro = Rubro() self.proveedor = Proveedor() self.marca = Marca() self.producto.setIdProducto(productoSelected[0]) self.producto.setNombre(productoSelected[1]) self.producto.setDescripcion(productoSelected[2]) self.producto.setPrecioCompra(productoSelected[3]) self.producto.setPrecioVenta(productoSelected[4]) self.producto.setGenero(productoSelected[5]) self.producto.setEstado(productoSelected[6]) self.producto.setCantidad(productoSelected[7]) self.producto.setCantidadMinima(productoSelected[8]) self.marca.setIdMarca(productoSelected[9]) self.marca.setMarca(productoSelected[10]) self.producto.setMarca(self.marca) self.rubro.setIdRubro(productoSelected[11]) self.rubro.setRubro(productoSelected[12]) self.producto.setRubro(self.rubro) self.proveedor.setIdProveedor(productoSelected[13]) self.proveedor.setDescripcion(productoSelected[14]) self.producto.setProveedor(self.proveedor) self.winPrincipal.tvProductos_p.setRowHeight(deselected.row(),33) self.winPrincipal.tvProductos_p.setRowHeight(selected.row(),45) self.setCampos() self.winPrincipal.btnModificar_p.setEnabled(True) self.winPrincipal.btnBorrar_p.setEnabled(True) def validarBotones(self, button): if button == 'AGREGAR' : self.winPrincipal.wDatosProducto.setEnabled(True) self.winPrincipal.btnBorrar_p.setEnabled(True) self.winPrincipal.btnBorrar_p.setText('CANCELAR') self.winPrincipal.btnGuardar_p.setEnabled(True) self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(False) self.winPrincipal.tvProductos_p.setEnabled(False) self.limpiarCampos() elif button=='GUARDAR': self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(True) self.winPrincipal.btnGuardar_p.setEnabled(False) self.winPrincipal.btnBorrar_p.setText('BORRAR') self.winPrincipal.btnBorrar_p.setEnabled(False) self.winPrincipal.tvProductos_p.setEnabled(True) self.winPrincipal.wDatosProducto.setEnabled(False) self.limpiarCampos() elif button == 'MODIFICAR': self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(False) self.winPrincipal.btnGuardar_p.setEnabled(True) self.winPrincipal.btnBorrar_p.setText('CANCELAR') self.winPrincipal.btnBorrar_p.setEnabled(True) self.winPrincipal.tvProductos_p.setEnabled(False) self.winPrincipal.wDatosProducto.setEnabled(True) elif button=='BORRAR': self.winPrincipal.btnModificar_p.setEnabled(False) self.winPrincipal.btnAgregar_p.setEnabled(True) self.winPrincipal.btnGuardar_p.setEnabled(False) self.winPrincipal.btnBorrar_p.setText('BORRAR') self.winPrincipal.btnBorrar_p.setEnabled(False) self.winPrincipal.tvProductos_p.setEnabled(True) self.winPrincipal.wDatosProducto.setEnabled(False) self.limpiarCampos() def insertarProducto(self): self.conexionProducto.insertarProducto(producto=self.producto) self.cargarTabla() def modificarProducto(self): self.conexionProducto.modificarProducto(self.producto) self.cargarTabla() def limpiarCampos(self): self.winPrincipal.txtNombre_p.setText('') self.winPrincipal.txtPrecioCompra_p.setText('') self.winPrincipal.txtPrecioVenta_p.setText('') self.winPrincipal.sbCantidad_p.setValue(0) self.winPrincipal.sbCantidadMin_p.setValue(0) self.winPrincipal.txtProveedor_p.setText('') self.winPrincipal.txtDescripcion_p.setText('') self.winPrincipal.txtRubro_p.setText('') self.winPrincipal.txtMarca_p.setText('') def setCampos(self): self.winPrincipal.txtNombre_p.setText(self.producto.getNombre()) self.winPrincipal.txtDescripcion_p.setText(str(self.producto.getDescripcion())) self.winPrincipal.txtPrecioCompra_p.setText(str(self.producto.getPrecioCompra())) self.winPrincipal.txtPrecioVenta_p.setText(str(self.producto.getPrecioVenta())) self.winPrincipal.txtProveedor_p.setText(str(self.producto.getProveedor().getDescripcion())) self.winPrincipal.sbCantidad_p.setValue(int(self.producto.getCantidad())) self.winPrincipal.sbCantidadMin_p.setValue(int(self.producto.getCantidadMinima())) self.winPrincipal.txtRubro_p.setText(str(self.producto.getRubro().getRubro())) self.winPrincipal.txtMarca_p.setText(str(self.producto.getMarca().getMarca())) if self.producto.getEstado() == 1: self.winPrincipal.cbEstado_p.setCurrentIndex(0) else: self.winPrincipal.cbEstado_p.setCurrentIndex(1) if self.producto.getGenero() == 'F': self.winPrincipal.rbFemenino_p.setChecked(True) else: self.winPrincipal.rbMasculino_p.setChecked(True) def validar(self): mensaje='' if self.winPrincipal.txtNombre_p.text() == '': mensaje= "Falta ingresar Nombre" elif self.winPrincipal.txtPrecioCompra_p.text() =='': mensaje= "Falta ingresar Precio de Compra" elif self.winPrincipal.txtPrecioVenta_p.text() =='': mensaje= "Falta ingresar Precio de Venta" elif self.completerProveedor.currentCompletion() =='' or self.completerProveedor.currentRow() == 0: mensaje= "Falta ingresar un Proveedor" elif self.completerMarca.currentCompletion() == '' or self.completerMarca.currentRow() == 0: mensaje = "Falta seleccionar la marca" elif self.completerRubro.currentCompletion() == '' or self.completerRubro.currentRow() == 0: mensaje = 'Falta seleccionar el rubro' return mensaje def setCompleterMarca(self): listMarcas = self.conexionProducto.listMarcas() self.completerMarca = QCompleter(listMarcas) self.completerMarca.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.winPrincipal.txtMarca_p.setCompleter(self.completerMarca) def setCompleterRubro(self): listRubros = self.conexionProducto.listRubro() self.completerRubro = QCompleter(listRubros) self.completerRubro.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.winPrincipal.txtRubro_p.setCompleter(self.completerRubro) def setCompleterProveedor(self): listProveedores = self.conexionProducto.listProveedor() self.completerProveedor = QCompleter(listProveedores) pass self.completerProveedor.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.winPrincipal.txtProveedor_p.setCompleter(self.completerProveedor)