Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
 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_()
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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()
Exemplo n.º 7
0
 def abre_edita_producto(self):
     producto = Producto.get_producto(
         self.tabla_productos.selectedItems()[0].text()
     )
     catalogo_producto = CatalogoProducto(producto)
     catalogo_producto.exec_()
Exemplo n.º 8
0
 def abre_nuevo_producto(self):
     producto = Producto()
     catalogo_producto = CatalogoProducto(producto)
     catalogo_producto.texto_modelo.setEnabled(True)
     catalogo_producto.exec_()
Exemplo n.º 9
0
    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
                )
Exemplo n.º 10
0
    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'