Example #1
0
    def filtrar(self):
        """
        Funcion que agrega todos los folios y productos al combobox
        """
        rut = db_model.obtener_rut()
        for dato in range(len(rut)):
            self.ui.comboProv.addItem(str(rut[dato][0]))

        folio = db_model.obtener_folio()
        for dato in range(len(folio)):
            self.ui.comboFolio.addItem(str(folio[dato][0]))

        productos = db_model.obtener_producto()
        for dato in range(len(productos)):
            self.ui.filtro.addItem(str(productos[dato][0]))
    def filtrar(self):
        """
        Funcion que agrega todos los folios y productos al combobox
        """
        rut= db_model.obtener_rut()
        for dato in range(len(rut)):
            self.ui.comboProv.addItem(str(rut[dato][0]))

        folio= db_model.obtener_folio()
        for dato in range(len(folio)):
            self.ui.comboFolio.addItem(str(folio[dato][0]))

        productos= db_model.obtener_producto()
        for dato in range(len(productos)):
            self.ui.filtro.addItem(str(productos[dato][0]))
    def load_data(self):
        """
        Función que carga la información de clientes en la grilla
        """
        clientes = db_model.obtener_rut()
        #Creamos el modelo asociado a la tabla
        self.data = QtGui.QStandardItemModel(len(clientes), 6)
        self.data.setHorizontalHeaderItem(
            0, QtGui.QStandardItem(u"RUT"))
        self.data.setHorizontalHeaderItem(
            1, QtGui.QStandardItem(u"Nombres"))
        self.data.setHorizontalHeaderItem(
            2, QtGui.QStandardItem(u"Apellidos"))
        self.data.setHorizontalHeaderItem(
            3, QtGui.QStandardItem(u"Correo"))
        self.data.setHorizontalHeaderItem(
            4, QtGui.QStandardItem(u"TotalVentas"))
        self.data.setHorizontalHeaderItem(
            5, QtGui.QStandardItem(u"TotalIngreso"))

        for r, row in enumerate(clientes):
            index = self.data.index(r, 0, QtCore.QModelIndex())
            self.data.setData(index, row['rut'])
            index = self.data.index(r, 1, QtCore.QModelIndex())
            self.data.setData(index, row['nombres'])
            index = self.data.index(r, 2, QtCore.QModelIndex())
            self.data.setData(index, row['apellidos'])
            index = self.data.index(r, 3, QtCore.QModelIndex())
            self.data.setData(index, row['correo'])
            index = self.data.index(r, 4, QtCore.QModelIndex())
            self.data.setData(index, db_model.obtener_TotalVenta(row['rut']))
            index = self.data.index(r, 5, QtCore.QModelIndex())
            self.data.setData(index, db_model.obtener_TotalIngreso(row['rut']))

        self.ui.table.setModel(self.data)

        # Para que las columnas 1 y 2 se estire o contraiga cuando
        # se cambia el tamaño de la pantalla
        self.ui.table.horizontalHeader().setResizeMode(
            1, self.ui.table.horizontalHeader().Stretch)
        self.ui.table.horizontalHeader().setResizeMode(
            2, self.ui.table.horizontalHeader().Stretch)

        self.ui.table.setColumnWidth(0, 100)
        self.ui.table.setColumnWidth(1, 210)
        self.ui.table.setColumnWidth(2, 210)
        self.ui.table.setColumnWidth(3, 220)
    def load_data(self):
        """
        Función que carga la información de clientes en la grilla
        """
        clientes = db_model.obtener_rut()
        #Creamos el modelo asociado a la tabla
        self.data = QtGui.QStandardItemModel(len(clientes), 6)
        self.data.setHorizontalHeaderItem(0, QtGui.QStandardItem(u"RUT"))
        self.data.setHorizontalHeaderItem(1, QtGui.QStandardItem(u"Nombres"))
        self.data.setHorizontalHeaderItem(2, QtGui.QStandardItem(u"Apellidos"))
        self.data.setHorizontalHeaderItem(3, QtGui.QStandardItem(u"Correo"))
        self.data.setHorizontalHeaderItem(4,
                                          QtGui.QStandardItem(u"TotalVentas"))
        self.data.setHorizontalHeaderItem(5,
                                          QtGui.QStandardItem(u"TotalIngreso"))

        for r, row in enumerate(clientes):
            index = self.data.index(r, 0, QtCore.QModelIndex())
            self.data.setData(index, row['rut'])
            index = self.data.index(r, 1, QtCore.QModelIndex())
            self.data.setData(index, row['nombres'])
            index = self.data.index(r, 2, QtCore.QModelIndex())
            self.data.setData(index, row['apellidos'])
            index = self.data.index(r, 3, QtCore.QModelIndex())
            self.data.setData(index, row['correo'])
            index = self.data.index(r, 4, QtCore.QModelIndex())
            self.data.setData(index, db_model.obtener_TotalVenta(row['rut']))
            index = self.data.index(r, 5, QtCore.QModelIndex())
            self.data.setData(index, db_model.obtener_TotalIngreso(row['rut']))

        self.ui.table.setModel(self.data)

        # Para que las columnas 1 y 2 se estire o contraiga cuando
        # se cambia el tamaño de la pantalla
        self.ui.table.horizontalHeader().setResizeMode(
            1,
            self.ui.table.horizontalHeader().Stretch)
        self.ui.table.horizontalHeader().setResizeMode(
            2,
            self.ui.table.horizontalHeader().Stretch)

        self.ui.table.setColumnWidth(0, 100)
        self.ui.table.setColumnWidth(1, 210)
        self.ui.table.setColumnWidth(2, 210)
        self.ui.table.setColumnWidth(3, 220)
    def __init__(self, parent=None, folio=None, rut=None):
        """
        Formulario para crear y editar cliente.
        Si se recibe la var folio
        entonces se está en modo de edición.
        """
        super(FormVenta, self).__init__(parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.ui.id_prod.activated[int].connect(self.onActivated_idprod)

        if folio is None:
            self.ui.aceptar.setText("Agregar")
            self.ui.venta.setText("Terminar Venta")
            self.ui.guardar.setEnabled(False)
            self.ui.aceptar.clicked.connect(self.crear_venta)
            self.ui.venta.clicked.connect(self.crear_venta2)
            rut = db_model.obtener_rut()
            for dato in range(len(rut)):
                self.ui.comboRut.addItem(str(rut[dato][0]))
            idprod = db_model.obtener_idprod()
            for dato in range(len(idprod)):
                self.ui.id_prod.addItem(str(idprod[dato][0]))
        else:
            self.ui.aceptar.setText("Editar Producto")
            self.ui.venta.setText("Terminar")

            detalle = db_model.obtener_ventas_formulario(folio)
            self.ui.comboRut.setEnabled(False)
            self.ui.folio.setText(str(folio))
            self.ui.folio.setEnabled(False)
            self.ui.id_prod.setEnabled(False)
            self.ui.cantidad.setEnabled(False)
            self.ui.precio.setEnabled(False)
            #Creamos el modelo asociado a la tabla
            self.data = QtGui.QStandardItemModel(len(detalle), 4)
            self.data.setHorizontalHeaderItem(0,
                                              QtGui.QStandardItem(u"producto"))
            self.data.setHorizontalHeaderItem(1,
                                              QtGui.QStandardItem(u"cantidad"))
            self.data.setHorizontalHeaderItem(
                2, QtGui.QStandardItem(u"precio unitario"))
            self.data.setHorizontalHeaderItem(3, QtGui.QStandardItem(u"Total"))

            for r, row in enumerate(detalle):
                index = self.data.index(r, 0, QtCore.QModelIndex())
                self.data.setData(index, row['producto_sku'])
                index = self.data.index(r, 1, QtCore.QModelIndex())
                self.data.setData(index, row['cantidad'])
                index = self.data.index(r, 2, QtCore.QModelIndex())
                self.data.setData(index, row['precio_unitario'])
                index = self.data.index(r, 3, QtCore.QModelIndex())
                self.data.setData(index, row['total'])

            self.ui.grilla_prod.setModel(self.data)

            self.ui.grilla_prod.setColumnWidth(0, 100)
            self.ui.grilla_prod.setColumnWidth(1, 100)
            self.ui.grilla_prod.setColumnWidth(2, 100)
            self.ui.grilla_prod.setColumnWidth(3, 100)

            self.ui.aceptar.clicked.connect(self.carga_venta)
            self.ui.guardar.clicked.connect(self.edita_venta)
            self.ui.venta.clicked.connect(self.cerrar)
    def __init__(self, parent=None, folio=None,rut=None):
        """
        Formulario para crear y editar cliente.
        Si se recibe la var folio
        entonces se está en modo de edición.
        """
        super(FormVenta, self).__init__(parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.ui.id_prod.activated[int].connect(self.onActivated_idprod)

        if folio is None:
            self.ui.aceptar.setText("Agregar")
            self.ui.venta.setText("Terminar Venta")
            self.ui.guardar.setEnabled(False)
            self.ui.aceptar.clicked.connect(self.crear_venta)
            self.ui.venta.clicked.connect(self.crear_venta2)
            rut= db_model.obtener_rut()
            for dato in range(len(rut)):
                self.ui.comboRut.addItem(str(rut[dato][0]))
            idprod= db_model.obtener_idprod()
            for dato in range(len(idprod)):
                self.ui.id_prod.addItem(str(idprod[dato][0]))
        else:
            self.ui.aceptar.setText("Editar Producto")
            self.ui.venta.setText("Terminar")
            
            
            detalle = db_model.obtener_ventas_formulario(folio)
            self.ui.comboRut.setEnabled(False)
            self.ui.folio.setText(str(folio))
            self.ui.folio.setEnabled(False)
            self.ui.id_prod.setEnabled(False)
            self.ui.cantidad.setEnabled(False)
            self.ui.precio.setEnabled(False)
            #Creamos el modelo asociado a la tabla
            self.data = QtGui.QStandardItemModel(len(detalle), 4)
            self.data.setHorizontalHeaderItem(
                0, QtGui.QStandardItem(u"producto"))
            self.data.setHorizontalHeaderItem(
                1, QtGui.QStandardItem(u"cantidad"))
            self.data.setHorizontalHeaderItem(
                2, QtGui.QStandardItem(u"precio unitario"))
            self.data.setHorizontalHeaderItem(
                3, QtGui.QStandardItem(u"Total"))
           

            for r, row in enumerate(detalle):
                index = self.data.index(r, 0, QtCore.QModelIndex())
                self.data.setData(index, row['producto_sku'])
                index = self.data.index(r, 1, QtCore.QModelIndex())
                self.data.setData(index, row['cantidad'])
                index = self.data.index(r, 2, QtCore.QModelIndex())
                self.data.setData(index, row['precio_unitario'])
                index = self.data.index(r, 3, QtCore.QModelIndex())
                self.data.setData(index, row['total'])                

            self.ui.grilla_prod.setModel(self.data)

            self.ui.grilla_prod.setColumnWidth(0, 100)
            self.ui.grilla_prod.setColumnWidth(1, 100)
            self.ui.grilla_prod.setColumnWidth(2, 100)
            self.ui.grilla_prod.setColumnWidth(3, 100)

            self.ui.aceptar.clicked.connect(self.carga_venta)
            self.ui.guardar.clicked.connect(self.edita_venta)
            self.ui.venta.clicked.connect(self.cerrar)