Esempio n. 1
0
 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)
Esempio n. 2
0
 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])))
Esempio n. 3
0
 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])))
Esempio n. 4
0
    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)
Esempio n. 5
0
 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)