def buscarRemito(self): if self.lineNumero.isEnabled(): numeroRemito=self.lineNumero.text() if len(numeroRemito)==0: self.showMsjEstado("No se ha ingresado numero de remito") else: self.remitoActual=RemitoModel.existeRemito(int(numeroRemito),self.sesion) if self.remitoActual== None: QtGui.QMessageBox.warning(self,"Advertencia","El remito ingresado no existe") else: if self.remitoActual.estoyCobrado()!=None: QtGui.QMessageBox.information(self,"Aviso","El remito ingresado ya sido cobrado") else: detallesRemitos=RemitoModel.buscarDetalles(int(numeroRemito),self.sesion) self.limpiarTabla(self.tableRemitos) self.cargarObjetos(self.tableRemitos, detallesRemitos,("producto","cantidad") ) importes=[] for a in detallesRemitos: for b in self.sesion.query(ProductoModel).filter(ProductoModel.codigo_barra==a.producto): importes.append(b.importe * a.cantidad) for row in range(0,self.tableRemitos.rowCount()): self.tableRemitos.setItem(row, 2, QtGui.QTableWidgetItem(str(importes[row]))) self.lineNumero.setEnabled(False) else: self.lineNumero.clear() self.lineNumero.setEnabled(True) self.limpiarTabla(self.tableRemitos)
def cargarDetalles(self): self.limpiarTabla(self.tableDetalles) self.tableDetalles.setVisible(True) self.lblDetalles.setVisible(True) self.lineNumero.setEnabled(False) itemActual=self.tableRemito.currentItem() valor=int(self.tableRemito.item(itemActual.row(),0).text()) self.lineNumero.setText(str(valor)) self.cargarObjetos(self.tableDetalles, RemitoModel.buscarDetalles(valor,self.sesion), ("nro_linea","producto","cantidad") ) ##Para el calculo de subtotal. Como el subtotal es una dato calculado, no se puede hacer explicita la carga ##como sucede en el cargarObjetos importes=[] for a in self.sesion.query(DetalleRemitoModel).filter(DetalleRemitoModel.id_remito==valor): for b in self.sesion.query(ProductoModel).filter(ProductoModel.codigo_barra==a.producto): importes.append(b.importe * a.cantidad) for row in range(0,self.tableDetalles.rowCount()): self.tableDetalles.setItem(row, 3, QtGui.QTableWidgetItem(str(importes[row])))
def cargarDetalles(self): self.limpiarTabla(self.tableDetalles) self.tableDetalles.setVisible(True) self.lblDetalles.setVisible(True) self.lineNumero.setEnabled(False) itemActual = self.tableRemito.currentItem() valor = int(self.tableRemito.item(itemActual.row(), 0).text()) self.lineNumero.setText(str(valor)) self.cargarObjetos(self.tableDetalles, RemitoModel.buscarDetalles(valor, self.sesion), ("nro_linea", "producto", "cantidad")) ##Para el calculo de subtotal. Como el subtotal es una dato calculado, no se puede hacer explicita la carga ##como sucede en el cargarObjetos importes = [] for a in self.sesion.query(DetalleRemitoModel).filter( DetalleRemitoModel.id_remito == valor): for b in self.sesion.query(ProductoModel).filter( ProductoModel.codigo_barra == a.producto): importes.append(b.importe * a.cantidad) for row in range(0, self.tableDetalles.rowCount()): self.tableDetalles.setItem( row, 3, QtGui.QTableWidgetItem(str(importes[row])))
def buscarRemito(self): """ Busca el remito ingresado por el usuario. Si existe carga los detalles del mismo. Si existe pero ya fue cobrado o si no existe, se le notifica al usuario. :return: """ if self.lineNumero.isEnabled(): numeroRemito=self.lineNumero.text() if len(numeroRemito)==0: QtGui.QMessageBox.information(self,"Aviso","No se ha ingresado numero de remito") else: self.remitoActual = RemitoModel.existeRemito(int(numeroRemito),self.sesion) if self.remitoActual== None: QtGui.QMessageBox.warning(self,"Aviso","El remito ingresado no existe") elif self.remitoActual.getCobrado() == True: QtGui.QMessageBox.information(self,"Aviso","El remito ya ha sido cobrado") elif self.remitoActual in self.remitosCobrados: QtGui.QMessageBox.information(self,"Aviso","El remito ya ha sido agregado a la factura") else: detallesRemitos=RemitoModel.buscarDetalles(int(numeroRemito),self.sesion) self.limpiarTabla(self.tableRemitos) self.cargarObjetos(self.tableRemitos, detallesRemitos,("producto","cantidad") ) importes=[] for a in detallesRemitos: for b in self.sesion.query(ProductoModel).filter(ProductoModel.codigo_barra==a.producto): importes.append(b.importe * a.cantidad) for row in range(0,self.tableRemitos.rowCount()): self.tableRemitos.setItem(row, 2, QtGui.QTableWidgetItem(str(importes[row]))) self.lineNumero.setEnabled(False) else: self.lineNumero.clear() self.lineNumero.setEnabled(True) self.limpiarTabla(self.tableRemitos)
def buscarRemito(self): if self.lineNumero.isEnabled(): numeroRemito = self.lineNumero.text() if len(numeroRemito) == 0: self.showMsjEstado("No se ha ingresado numero de remito") else: self.remitoActual = RemitoModel.existeRemito( int(numeroRemito), self.sesion) if self.remitoActual == None: QtGui.QMessageBox.warning(self, "Advertencia", "El remito ingresado no existe") else: if self.remitoActual.estoyCobrado() != None: QtGui.QMessageBox.information( self, "Aviso", "El remito ingresado ya sido cobrado") else: detallesRemitos = RemitoModel.buscarDetalles( int(numeroRemito), self.sesion) self.limpiarTabla(self.tableRemitos) self.cargarObjetos(self.tableRemitos, detallesRemitos, ("producto", "cantidad")) importes = [] for a in detallesRemitos: for b in self.sesion.query(ProductoModel).filter( ProductoModel.codigo_barra == a.producto): importes.append(b.importe * a.cantidad) for row in range(0, self.tableRemitos.rowCount()): self.tableRemitos.setItem( row, 2, QtGui.QTableWidgetItem(str(importes[row]))) self.lineNumero.setEnabled(False) else: self.lineNumero.clear() self.lineNumero.setEnabled(True) self.limpiarTabla(self.tableRemitos)