def eliminarDetalle(self): itemActual = self.tableDetalles.currentItem() ok = QtGui.QMessageBox.information(self, "Confirmacion", "¿Desea eliminar este item?") if ok: linea = int(self.tableDetalles.item(itemActual.row(), 0).text()) producto = int(self.tableDetalles.item(itemActual.row(), 1).text()) cantidadRemito = int( self.tableDetalles.item(itemActual.row(), 2).text()) finalizeActualizacion = False while not finalizeActualizacion: cantidad, ok = QtGui.QInputDialog.getInt( self, "Cantidad", "Ingrese cantidad del producto", 1, 1, 2000, 5) if not ok: QtGui.QMessageBox.information(self, "Aviso", "No se ingreso cantidad") else: if cantidad > cantidadRemito: QtGui.QMessageBox.information( self, "Aviso", "La cantidad ingresada supera la esperada") else: lote, ok = QtGui.QInputDialog.getText( self, "Lote", "Ingrese lote") if not ok: QtGui.QMessageBox.information( self, "Aviso", "No se ingreso lote") else: loteP = LoteProductoModel.buscarLoteProducto( self.sesion, producto, str(lote)).first() if loteP == None: QtGui.QMessageBox.information( self, "Aviso", "El lote ingresado no se corresponde con el producto" ) else: loteP.aumentarCantidad(cantidad) loteP.modificar(self.sesion) cantidadRemito -= cantidad self.tableDetalles.item( itemActual.row(), 2).setText(str(cantidadRemito)) if cantidadRemito == 0: finalizeActualizacion = True detalle = RemitoModel.getDetalle(int(self.lineNumero.text()), int(linea), self.sesion).first() detalle.borrar(self.sesion) self.tableDetalles.removeRow(itemActual.row()) else: return
def eliminarDetalle(self): """ Elimina un detalle especifico del remito seleccionado por el usuario :return: """ rowActual=self.tableDetalles.currentItem().row() signal = QtGui.QMessageBox.information(self,"Confirmacion","¿Desea eliminar este item?",\ QtGui.QMessageBox.Close | QtGui.QMessageBox.Ok) if signal == QtGui.QMessageBox.Ok: cantidad_detalle = int(self.tableDetalles.item(rowActual,2).text()) linea = int(self.tableDetalles.item(rowActual,0).text()) nro_remito = int(self.lineNumero.text()) detalle = RemitoModel.getDetalle(nro_remito,linea,self.sesion) lotes_detalle = detalle.devolverLotes(self.sesion) temp = lotes_detalle finalize_actualizacion = False cantidad_restante = cantidad_detalle while not finalize_actualizacion: cantidad, ok = QtGui.QInputDialog.getInt(self,"Cantidad","Ingrese cantidad del producto",1,1,2000,5) if ok == False: finalize_actualizacion = True self.tableDetalles.item(rowActual,2).setText(str(cantidad_detalle)) break lote, ok=QtGui.QInputDialog.getText(self,"Lote","Ingrese lote") if ok == False: finalize_actualizacion = True self.tableDetalles.item(rowActual,2).setText(str(cantidad_detalle)) break if not lote in lotes_detalle.keys(): QtGui.QMessageBox.information(self,"Aviso","El lote ingresado no es valido para este detalle") elif lotes_detalle[str(lote)] == 0: QtGui.QMessageBox.information(self,"Aviso","Los productos de este lote ya han sido devueltos") elif cantidad > lotes_detalle[str(lote)]: QtGui.QMessageBox.information(self,"Aviso","La cantidad ingresada es mayor a la esperada para este lote") else: temp[str(lote)] -= cantidad cantidad_restante -= cantidad self.tableDetalles.item(rowActual,2).setText(str(cantidad_restante)) if sum(map(lambda x: temp[x],temp)) == 0: detalle.devolver(self.sesion) self.tableDetalles.removeRow(rowActual) self.objectModified.emit() QtGui.QMessageBox.information(self,"Aviso","Detalle Eliminado Exitosamente") finalize_actualizacion = True
def eliminarDetalle(self): itemActual=self.tableDetalles.currentItem() ok=QtGui.QMessageBox.information(self,"Confirmacion","¿Desea eliminar este item?") if ok: linea=int(self.tableDetalles.item(itemActual.row(),0).text()) producto=int(self.tableDetalles.item(itemActual.row(),1).text()) cantidadRemito=int(self.tableDetalles.item(itemActual.row(),2).text()) finalizeActualizacion=False while not finalizeActualizacion: cantidad, ok=QtGui.QInputDialog.getInt(self,"Cantidad","Ingrese cantidad del producto",1,1,2000,5) if not ok: QtGui.QMessageBox.information(self,"Aviso","No se ingreso cantidad") else: if cantidad > cantidadRemito: QtGui.QMessageBox.information(self,"Aviso","La cantidad ingresada supera la esperada") else: lote, ok=QtGui.QInputDialog.getText(self,"Lote","Ingrese lote") if not ok: QtGui.QMessageBox.information(self,"Aviso","No se ingreso lote") else: loteP=LoteProductoModel.buscarLoteProducto(self.sesion,producto,str(lote)).first() if loteP==None: QtGui.QMessageBox.information(self,"Aviso","El lote ingresado no se corresponde con el producto") else: loteP.aumentarCantidad(cantidad) loteP.modificar(self.sesion) cantidadRemito-=cantidad self.tableDetalles.item(itemActual.row(),2).setText(str(cantidadRemito)) if cantidadRemito==0: finalizeActualizacion=True detalle=RemitoModel.getDetalle(int(self.lineNumero.text()),int(linea),self.sesion).first() detalle.borrar(self.sesion) self.tableDetalles.removeRow(itemActual.row()) else: return