Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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