def buscarLote(self): """ Busca y carga en la tabla los datos de un lote para un código ingresado. :return: """ self.lote = LoteModel.buscar(LoteModel.codigo, self.sesion, str(self.lineCod_Lote.text())).first() if self.lote != None: loteProducto = LoteProductoModel.buscar(LoteProductoModel.id_lote, self.sesion, str(self.lineCod_Lote.text())).all() if loteProducto.__len__() < 2: self.cantLoteProd = True else: self.cantLoteProd = False self.dateFechVenc.setEnabled(False) formato = "%Y-%m-%d" fechaVenc = datetime.strptime(str(self.lote.fecha_vencimiento), formato) formato = "%d/%m/%y" f = fechaVenc.strftime(formato) formato = "dd/MM/yy" fecha = QtCore.QDate.fromString(str(f), formato) self.dateFechVenc.setDate(fecha) else: self.cantLoteProd = True self.setFecha() self.dateFechVenc.setEnabled(True)
def buscarLote(self): """ Busca y carga en la tabla los datos de un lote para un código ingresado. :return: """ self.lote = LoteModel.buscar(LoteModel.codigo, self.sesion, str(self.lineCod_Lote.text())).first() if self.lote != None: loteProducto = LoteProductoModel.buscar( LoteProductoModel.id_lote, self.sesion, str(self.lineCod_Lote.text())).all() if loteProducto.__len__() < 2: self.cantLoteProd = True else: self.cantLoteProd = False self.dateFechVenc.setEnabled(False) formato = "%Y-%m-%d" fechaVenc = datetime.strptime(str(self.lote.fecha_vencimiento), formato) formato = "%d/%m/%y" f = fechaVenc.strftime(formato) formato = "dd/MM/yy" fecha = QtCore.QDate.fromString(str(f), formato) self.dateFechVenc.setDate(fecha) else: self.cantLoteProd = True self.setFecha() self.dateFechVenc.setEnabled(True)
def validarLote(self, producto): if self.lote != None: loteProd = LoteProductoModel.buscar(LoteProductoModel.id_lote, self.sesion, self.lote.getCodigo()).all() if loteProd.__len__() == 1: for lp in loteProd: prod = ProductoModel.buscar(ProductoModel.codigo_barra, self.sesion, lp.getIdProducto()).first() if prod.getIdMedicamento() != producto.getIdMedicamento(): return False return True
def actualizarLoteProd(self, producto): """ Actualiza la cantidad de un producto para un lote determinado. :param producto: referencia del producto al cual se le actualiza la cantidad. :return: """ lote_producto = LoteProductoModel.buscar(LoteProductoModel.id_producto, self.sesion, producto).all() for lp in lote_producto: lp.setCantidad(0) lp.modificar(self.sesion)
def stock(self, cod_barra): lote_producto = LoteProductoModel.buscar(LoteProductoModel.id_producto, self.sesion, cod_barra).all() for lp in lote_producto: if (lp.getCantidad() > 0): return False return True