def actualizar_producto(self): '''Funcion para actualizar un producto ''' producto = Producto() producto.id = self.txtCodigoED.get() # Recibe el id de producto producto_editar = producto.seleccionar( ) #SQL que devuelve el producto escogido if producto_editar: self.VtBuscar.destroy() for producto_edit in producto_editar: #Llena la ventana con los datos del producto self.widgets_producto() self.nuevo_producto.title('Editar producto') self.txtCodigo.insert(0, producto_edit[0]) self.txtNombre.insert(0, producto_edit[1]) self.txtPrecio_compra['validate'] = 'none' self.txtPrecio_venta['validate'] = 'none' self.txtPrecio_compra.insert(END, float(producto_edit[2])) self.txtPrecio_compra['validate'] = 'key' self.txtPrecio_venta.insert(END, float(producto_edit[3])) self.txtPrecio_compra['validate'] = 'key' self.txtStock.insert(0, (producto_edit[4])) self.valor.set(producto_edit[5]) self.BtnGuardar[ 'command'] = lambda: self.crear_o_editar_producto(2)
def inactivar_producto(self): #Inactiva un producto para que no se liste id = self.listdetalle.focus() elementos = self.listdetalle.item(id) producto = Producto() producto.id = elementos['text'] producto.estado = False if producto.inactivar(): self.listar_productos()
def busca_productos(self): clave = self.combobox_campos.currentText() texto = self.texto_buscar.text() try: if clave == 'Modelo': self.productos = Producto.get_productos(modelo=texto) elif clave == 'Descripción': self.productos = Producto.get_productos(descripcion=texto) elif clave == 'Marca': self.productos = Producto.get_productos(marca=texto) elif clave == 'Proveedor': self.productos = Producto.get_productos(proveedor=texto) elif clave == 'Último Costo': self.productos = Producto.get_productos(ultimo_costo=texto) elif clave == 'Moneda Costo': self.productos = Producto.get_productos(moneda_costo=texto) elif clave == 'Precio Venta': self.productos = Producto.get_productos(precio_venta=texto) elif clave == 'Moneda Venta': self.productos = Producto.get_productos(moneda_venta=texto) elif clave == 'Último TE': self.productos = Producto.get_productos(ultimo_te=texto) self.llena_lista() except TipoValorError: error = Error('De ingresar un valor numerico') error.exec_()
def registrar_producto(cls, datos_producto): if cls.productos is None: cls.productos = [] nuevo_producto = Producto(datos_producto['nombre'], datos_producto['precio']) cls.productos.append(nuevo_producto) return nuevo_producto
def registrar_producto_de_compra(cls, nombre_producto, cantidad): respuesta = False producto_comprado = Producto.buscar_producto( nombre_producto, ControladorProducto.productos) if producto_comprado: cls.compra_actual.aniadir_producto(producto_comprado, cantidad) respuesta = True return respuesta
def carga_completa(self): opciones_busqueda = ['Modelo', 'Descripción', 'Marca', 'Proveedor', 'Último Costo', 'Moneda Costo', 'Precio Venta', 'Moneda Venta', 'Último TE'] self.texto_buscar.clear() try: self.productos = Producto.get_productos() except OperationalError: raise ErrorConexion else: for opcion in opciones_busqueda: self.combobox_campos.addItem(opcion) self.llena_lista()
def abre_edita_producto(self): producto = Producto.get_producto( self.tabla_productos.selectedItems()[0].text() ) catalogo_producto = CatalogoProducto(producto) catalogo_producto.exec_()
def abre_nuevo_producto(self): producto = Producto() catalogo_producto = CatalogoProducto(producto) catalogo_producto.texto_modelo.setEnabled(True) catalogo_producto.exec_()
def carga_detalles(self): COL_PARTE, COL_MODELO, COL_DESCRIPCION, COL_MARCA, COL_TE = range(5) COL_CANTIDAD, COL_PU, COL_IMPORTE, COL_PROVEEDOR, COL_CU = range(5, 10) try: lineas = DetalleCotizacion.get_detalle(self.cotizacion.clave) except OperationalError: raise ErrorConexion else: for num, detalle in enumerate(lineas): producto = Producto.get_producto(detalle.modelo_producto) productos = Producto.get_productos_modelo() productos = [x[0] for x in productos] proveedor = Proveedor.get_proveedor(producto.clave_proveedor) combo_proveedor = Combo(productos) self.tabla_detalle.insertRow(num) self.tabla_detalle.setItem( num, COL_PARTE, QtWidgets.QTableWidgetItem(str(detalle.linea)) ) self.tabla_detalle.setCellWidget( num, COL_MODELO, combo_proveedor # QtWidgets.QTableWidgetItem(producto.modelo) ) self.tabla_detalle.setItem( num, COL_DESCRIPCION, QtWidgets.QTableWidgetItem(producto.descripcion) ) self.tabla_detalle.setItem( num, COL_MARCA, QtWidgets.QTableWidgetItem(producto.marca) ) self.tabla_detalle.setItem( num, COL_TE, QtWidgets.QTableWidgetItem(detalle.tiempo_entrega) ) self.tabla_detalle.setItem( num, COL_CANTIDAD, QtWidgets.QTableWidgetItem(str(detalle.cantidad)) ) self.tabla_detalle.setItem( num, COL_PU, QtWidgets.QTableWidgetItem(str(detalle.precio_unitario)) ) self.tabla_detalle.setItem( num, COL_IMPORTE, QtWidgets.QTableWidgetItem(str(detalle.importe)) ) self.tabla_detalle.setItem( num, COL_PROVEEDOR, QtWidgets.QTableWidgetItem(proveedor.nombre) ) self.tabla_detalle.setItem( num, COL_CU, QtWidgets.QTableWidgetItem(str(producto.ultimo_costo)) ) cabecera = self.tabla_detalle.horizontalHeader() cabecera.setSectionResizeMode( COL_PARTE, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_MODELO, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_DESCRIPCION, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_MARCA, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_TE, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_CANTIDAD, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_PU, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_IMPORTE, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_PROVEEDOR, QtWidgets.QHeaderView.ResizeToContents ) cabecera.setSectionResizeMode( COL_CU, QtWidgets.QHeaderView.ResizeToContents )
def crear_o_editar_producto(self, op): ''' Funcion asociada para crear o actualizar un producto ''' producto = Producto() producto.id = self.txtCodigo.get() producto.nombre = self.txtNombre.get() producto.precio_compra = float(self.txtPrecio_compra.get()) producto.precio_venta = float(self.txtPrecio_venta.get()) producto.stock = int(self.txtStock.get()) producto.estado = self.valor.get() if producto.validar(): #Valida si el objeto tiene valores nulos if op == 1: # Parametro recibido del boton nuevo if producto.guardar(): self.listar_productos() self.nuevo_producto.destroy() elif op == 2: #Parametro recibido del boton actualizar if producto.actualizar(): self.nuevo_producto.destroy() self.listar_productos() else: self.lbError['text'] = 'Datos erroneos'