def modificar(self): """ Modifica los datos de la presentación seleccionada. :return: """ presActual = self.tablaPresentacion.currentItem() if presActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.validarFracciones(): row = presActual.row() tipo = str(self.tablaPresentacion.item(row, 0).text()) self.presentacion = PresentacionModel.buscarAlta(PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setUnidadMedida(str(self.lineUnidad_Medida.text())) self.presentacion.setCantidadFracciones(str(self.spinCantidad.value())) self.presentacion.setSubPresentacion(self.subPresentacion) if self.subPresentacion != None: self.setSuperPresentacion(str(self.lineTipo.text())) if self.subPresentacionOld != None: self.subPresentacion = self.subPresentacionOld self.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La Presentación fue modificada.', 'Aceptar') self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning(self, 'Atención', 'Seleccione la Presentación en la ' 'cual puede fraccionarse la Presentación actual.', '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 una Presentación de la tabla', 'Aceptar')
def eliminar(self): """ Da de baja la presentación seleccionada. :return: """ itemActual = self.tablaPresentacion.currentItem() if itemActual == None: self.showMsjEstado( "No se ha seleccionado ninguna Presentación de la tabla") else: row = itemActual.row() tipo = str(self.tablaPresentacion.item(row, 0).text()) if self.bajaValida(ProductoModel, ProductoModel.id_presentacion, tipo): self.presentacion = PresentacionModel.buscarAlta( PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.borrar(self.sesion) self.showMsjEstado("La Presentación ha sido eliminada") tipo = self.presentacion.getSubPresentacion() if tipo: self.presentacion.setSubPresentacion(None) self.presentacion.modificar(self.sesion) self.presentacion = PresentacionModel.buscarAlta( PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) tipo = self.presentacion.getSuperPresentacion() if tipo: self.presentacion.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) self.presentacion = PresentacionModel.buscarAlta( PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setSubPresentacion(None) self.presentacion.modificar(self.sesion) self.tablaPresentacion.removeRow(row) self.objectDeleted.emit() self.actualizar() else: QtGui.QMessageBox.critical( self, 'Error', 'La Presentación no puede ser dada de baja, ' 'esta asignada a 1 ó más productos', 'Aceptar')
def setSuperPresentacion(self, superPresentacion): """ Setea la referencia a la presentación fraccionable. :param superPresentacion: referencia a la presentación fraccionable. :return: """ presentacion = PresentacionModel.buscarAlta( PresentacionModel.tipo, self.sesion, self.subPresentacion).first() presentacion.setSuperPresentacion(superPresentacion) presentacion.modificar(self.sesion) self.objectModified.emit()
def setSuperPresentacion(self, superPresentacion): """ Setea la referencia a la presentación fraccionable. :param superPresentacion: referencia a la presentación fraccionable. :return: """ presentacion = PresentacionModel.buscarAlta(PresentacionModel.tipo, self.sesion, self.subPresentacion).first() presentacion.setSuperPresentacion(superPresentacion) presentacion.modificar(self.sesion) self.objectModified.emit()
def cantidadFracciones(self, codigo, cantidad): """ Calcula y devuelve la cantidad del poducto (subproducto, fracciones del producto fraccionable), número de fracciones * cantidad a fraccionar. :param codigo: Código del producto a fraccionar. :param cantidad: Cantidad a fraccionar. :return: resultado """ producto = ProductoModel.buscarAlta(ProductoModel.codigo_barra, self.sesion, codigo).first() presentacion = PresentacionModel.buscarAlta(PresentacionModel.tipo, self.sesion, producto.id_presentacion).first() resultado = int(presentacion.getCantidadFracciones()) * cantidad return resultado
def eliminar(self): """ Da de baja la presentación seleccionada. :return: """ itemActual = self.tablaPresentacion.currentItem() if itemActual == None: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado ninguna Presentación de la tabla.', 'Aceptar') else: row = itemActual.row() tipo = str(self.tablaPresentacion.item(row, 0).text()) if self.bajaValida(ProductoModel, ProductoModel.id_presentacion, tipo): self.presentacion = PresentacionModel.buscarAlta(PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.borrar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La Presentación ha sido eliminada.', 'Aceptar') tipo = self.presentacion.getSubPresentacion() if tipo: self.presentacion.setSubPresentacion(None) self.presentacion.modificar(self.sesion) self.presentacion = PresentacionModel.buscarAlta(PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) tipo = self.presentacion.getSuperPresentacion() if tipo: self.presentacion.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) self.presentacion = PresentacionModel.buscarAlta(PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setSubPresentacion(None) self.presentacion.modificar(self.sesion) self.tablaPresentacion.removeRow(row) self.objectDeleted.emit() self.actualizar() else: QtGui.QMessageBox.critical(self, 'Error', 'La Presentación no puede ser dada de baja, ' 'esta asignada a 1 ó más productos', 'Aceptar')
def cantidadFracciones(self, codigo, cantidad): """ Calcula y devuelve la cantidad del poducto (subproducto, fracciones del producto fraccionable), número de fracciones * cantidad a fraccionar. :param codigo: Código del producto a fraccionar. :param cantidad: Cantidad a fraccionar. :return: resultado """ producto = ProductoModel.buscarAlta(ProductoModel.codigo_barra, self.sesion, codigo).first() presentacion = PresentacionModel.buscarAlta( PresentacionModel.tipo, self.sesion, producto.id_presentacion).first() resultado = int(presentacion.getCantidadFracciones()) * cantidad return resultado
def modificar(self): """ Modifica los datos de la presentación seleccionada. :return: """ presActual = self.tablaPresentacion.currentItem() if presActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.validarFracciones(): row = presActual.row() tipo = str(self.tablaPresentacion.item(row, 0).text()) self.presentacion = PresentacionModel.buscarAlta( PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setUnidadMedida( str(self.lineUnidad_Medida.text())) self.presentacion.setCantidadFracciones( str(self.spinCantidad.value())) self.presentacion.setSubPresentacion(self.subPresentacion) if self.subPresentacion != None: self.setSuperPresentacion(str(self.lineTipo.text())) if self.subPresentacionOld != None: self.subPresentacion = self.subPresentacionOld self.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) self.showMsjEstado("La Presentación fue modificada") self.objectModified.emit() self.actualizar() else: self.showMsjEstado( "Seleccione la Presentación en la cual puede fraccionarse la Presentación actual." ) else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado( "No se ha seleccionado una Presentación de la tabla")