def fraccionar(self): """ Fracciona un producto. Da de alta y almacena un nuevo producto en la base de datos de acuerdo al producto seleccionado para fraccionar, o si ya existe actualiza la cantidad. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.tablaFraccionable.rowCount() > 0: itemFracc = self.tablaFraccionable.currentItem() if itemFracc != None: row = itemActual.row() codigo_barra = str(self.tablaProducto.item(row, 0).text()) codigo_lote = str(self.tablaProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if int(self.spinCantidad.value()) > int(self.loteProducto.getCantidad()): QtGui.QMessageBox.warning(self, 'Atención', 'La cantidad ingresada no puede ser mayor a la ' 'cantidad del Producto.', 'Aceptar') else: resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) cantidadFracciones = self.cantidadFracciones(codigo_barra, int(self.spinCantidad.value())) row = itemFracc.row() codigo_barra = str(self.tablaFraccionable.item(row, 0).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if self.loteProducto: suma = int(self.loteProducto.cantidad) + int(cantidadFracciones) self.loteProducto.setCantidad(suma) self.loteProducto.modificar(self.sesion) else: loteProducto = LoteProductoModel(codigo_lote, codigo_barra, int(cantidadFracciones)) if loteProducto.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'Lote/Producto fue dado de alta.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'Lote/Producto ya existe.', 'Aceptar') QtGui.QMessageBox.information(self, 'Info', 'La cantidad fue modificada.', 'Aceptar') self.actualizar() self.objectModified.emit() else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Fraccionable de la tabla.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'El Producto seleccionado no puede fraccionarse.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Producto de la tabla.', 'Aceptar')
def fraccionar(self): """ Fracciona un producto. Da de alta y almacena un nuevo producto en la base de datos de acuerdo al producto seleccionado para fraccionar, o si ya existe actualiza la cantidad. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.tablaFraccionable.rowCount() > 0: itemFracc = self.tablaFraccionable.currentItem() if itemFracc != None: row = itemActual.row() codigo_barra = str(self.tablaProducto.item(row, 0).text()) codigo_lote = str(self.tablaProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if int(self.spinCantidad.value()) > int(self.loteProducto.getCantidad()): self.showMsjEstado("La cantidad ingresada no puede ser mayor a la " "cantidad del Producto.") else: resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) cantidadFracciones = self.cantidadFracciones(codigo_barra, int(self.spinCantidad.value())) row = itemFracc.row() codigo_barra = str(self.tablaFraccionable.item(row, 0).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if self.loteProducto: suma = int(self.loteProducto.cantidad) + int(cantidadFracciones) self.loteProducto.setCantidad(suma) self.loteProducto.modificar(self.sesion) else: loteProducto = LoteProductoModel(codigo_lote, codigo_barra, int(cantidadFracciones)) if loteProducto.guardar(self.sesion): self.showMsjEstado("Lote/Producto fue dado de alta.") else: self.showMsjEstado("Lote/Producto ya existe.") self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado("No se ha seleccionado un Fraccionable de la tabla.") else: self.showMsjEstado("El Producto seleccionado no puede fraccionarse.") else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Producto de la tabla")
def ajuste(self): """ Actualiza la cantidad del producto seleccionado para realizar el ajuste negativo de stock. :return: """ itemActual = self.tablaLoteProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() codigo_barra = str(self.tablaLoteProducto.item(row, 0).text()) codigo_lote = str(self.tablaLoteProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) if resto < 0: QtGui.QMessageBox.critical(self, 'Error', 'La cantidad ingresada no puede ser mayor ' 'a la cantidad del Producto.', 'Aceptar') else: self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La cantidad fue modificada.', 'Aceptar') self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Lote/Producto de la tabla.', 'Aceptar')
def ajuste(self): """ Actualiza la cantidad del producto seleccionado para realizar el ajuste negativo de stock. :return: """ itemActual = self.tablaLoteProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() codigo_barra = str(self.tablaLoteProducto.item(row, 0).text()) codigo_lote = str(self.tablaLoteProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto( self.sesion, codigo_barra, codigo_lote).first() resto = int(self.loteProducto.getCantidad()) - int( self.spinCantidad.value()) if resto < 0: self.showMsjEstado( "La cantidad ingresada no puede ser mayor a la cantidad del Producto" ) else: self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado( "No se ha seleccionado un Lote/Producto de la tabla")
def ajuste(self): """ Actualiza la cantidad del producto seleccionado para realizar el ajuste negativo de stock. :return: """ itemActual = self.tablaLoteProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() codigo_barra = str(self.tablaLoteProducto.item(row, 0).text()) codigo_lote = str(self.tablaLoteProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) if resto < 0: self.showMsjEstado("La cantidad ingresada no puede ser mayor a la cantidad del Producto") else: self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Lote/Producto de la tabla")
def fraccionar(self): """ Fracciona un producto. Da de alta y almacena un nuevo producto en la base de datos de acuerdo al producto seleccionado para fraccionar, o si ya existe actualiza la cantidad. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.tablaFraccionable.rowCount() > 0: itemFracc = self.tablaFraccionable.currentItem() if itemFracc != None: row = itemActual.row() codigo_barra = str( self.tablaProducto.item(row, 0).text()) codigo_lote = str( self.tablaProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto( self.sesion, codigo_barra, codigo_lote).first() if int(self.spinCantidad.value()) > int( self.loteProducto.getCantidad()): self.showMsjEstado( "La cantidad ingresada no puede ser mayor a la " "cantidad del Producto.") else: resto = int(self.loteProducto.getCantidad()) - int( self.spinCantidad.value()) self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) cantidadFracciones = self.cantidadFracciones( codigo_barra, int(self.spinCantidad.value())) row = itemFracc.row() codigo_barra = str( self.tablaFraccionable.item(row, 0).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto( self.sesion, codigo_barra, codigo_lote).first() if self.loteProducto: suma = int(self.loteProducto.cantidad) + int( cantidadFracciones) self.loteProducto.setCantidad(suma) self.loteProducto.modificar(self.sesion) else: loteProducto = LoteProductoModel( codigo_lote, codigo_barra, int(cantidadFracciones)) if loteProducto.guardar(self.sesion): self.showMsjEstado( "Lote/Producto fue dado de alta.") else: self.showMsjEstado( "Lote/Producto ya existe.") self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado( "No se ha seleccionado un Fraccionable de la tabla." ) else: self.showMsjEstado( "El Producto seleccionado no puede fraccionarse.") else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Producto de la tabla")