Exemple #1
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        darle formato a los campos de la tabla
        """
        if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
            return ""
        line = self.lines[index.row()]
        column = index.column()
        if role == Qt.DisplayRole:
            if column == DESCRIPCION:
                return line.pagoDescripcion
            elif column == REFERENCIA:
                return line.referencia
            elif column == MONTO:
                value = moneyfmt( line.monto, 4, line.simboloMoneda ) if line.monto != 0 else ""
                return value
            elif column == MONTODOLAR:
                return moneyfmt( line.montoDolar , 4, "US$" ) if line.montoDolar != 0 else ""
            elif column == IDMONEDA:
                return line.monedaId
            elif column == BANCO:
                return line.banco
            elif column == IDPAGO:
                return line.pagoId
        elif role == Qt.EditRole:
#            Esto es lo que recibe el delegate cuando va a mostrar la el widget 
            if column == MONTO:
                return line.monto
            elif column == IDMONEDA:
                return line.monedaId
            elif column == REFERENCIA:
                return line.referencia
        elif role == Qt.TextAlignmentRole:
            if column != DESCRIPCION:
                return Qt.AlignHCenter | Qt.AlignVCenter
 def data( self, column, role ):
     if role == Qt.DisplayRole :
         if column == IDCUENTA:
             return self.id
         elif column == CODIGO:
             return self.code
         elif column == DESCRIPCION:
             return self.description
         elif column == MONTO:
             return moneyfmt( self.monto, 4, 'C$' ) if self.monto != 0 else ""
         elif column == ACUMULADO:
             value = moneyfmt( self.acumulado, 4, 'C$' )
             return value if value != 0 else ""
         elif column == ESDEBE:
             return self.esdebe
         elif column == PADRE:
             return self.parent().id
         elif column == HIJOS:
             return self.childCount()
     elif role == Qt.EditRole:
         if column == CODIGO:
             return self.code
         elif column == DESCRIPCION:
             return self.description
         elif column == ESDEBE:
             return self.esdebe
         elif column == IDCUENTA:
             return self.id
         elif column == MONTO:
             return self.monto
         elif column == ACUMULADO:
             return self.acumulado.to_eng_string()
Exemple #3
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        darle formato a los campos de la tabla
        """
        if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
            return ""
        line = self.lines[index.row()]
        column = index.column()
        if role == Qt.DisplayRole:
            if column == NFAC:
                return line.nFac
            elif column == ABONO:
                return moneyfmt( Decimal( line.monto ), 4, "US$" ) if line.monto != 0 else ""
            elif column == TOTALFAC:
                return moneyfmt( line.totalFac , 4, "US$" )
            elif column == SUBABONO:
                return moneyfmt( line.subMonto , 4, "US$" )
            elif column == SALDO:
                return moneyfmt( line.saldo , 4, "US$" )
        elif role == Qt.EditRole:
#            Esto es lo que recibe el delegate cuando va a mostrar la el widget 
            if column == ABONO:
                return line.monto
            elif column == SUBABONO:
                return line.subMonto
Exemple #4
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        darle formato a los campos de la tabla
        """
        if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
            return ""
        line = self.lines[index.row()]
        column = index.column()
        if role == Qt.DisplayRole:
            if column == IDARTICULO:
                return line.itemId
#            Esto es lo que se muestra en la tabla
            elif column == DESCRIPCION:
                return line.itemDescription
            elif column == CANTIDAD:
                return line.quantity if line.quantity != 0 else ""
            elif column == PRECIO:
                return moneyfmt( line.itemPrice , 4, "US$" ) if line.itemPrice != 0 else ""
            elif column == TOTALPROD:
                return moneyfmt( line.total , 4, "US$" ) if line.itemId != 0 else ""
        elif role == Qt.EditRole:
            if column == PRECIO:
                return float( line.itemPrice )
        elif role == Qt.TextAlignmentRole:
#            if column==:
#                return Qt.AlignHCenter | Qt.AlignVCenter
            if column in ( CANTIDAD, PRECIO, TOTALPROD ):
                return Qt.AlignRight | Qt.AlignVCenter
        elif role == Qt.ToolTipRole:
            if column == CANTIDAD:
                return u"Máximo %d" % line.existencia
    def data( self, index, role = Qt.DisplayRole ):
        if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
            return None

        line = self.lines[index.row()]
        column = index.column()

        if role == Qt.DisplayRole:
            if column == FECHA:
                return line.fecha
            elif column == CONCEPTO:
                return line.descripcion
            elif column == DEBE:
                return moneyfmt( line.monto, 4, self.moneda ) if line.monto > 0 else None
            elif column == HABER:
                return moneyfmt( abs( line.monto ), 4, self.moneda ) if line.monto < 0 else None
            elif column == SALDO:
                return moneyfmt( line.saldo, 4, self.moneda )
            elif column == DELBANCO:
                return 'Si' if line.del_banco else 'No'
            elif column == IDTIPODOC:
                return str( line.tipo_doc )

        elif role == Qt.EditRole:
            if column == IDTIPODOC:
                return str( line.tipo_doc )
            elif column == DELBANCO:
                return "1" if line.del_banco else "0"
            elif column == CONCILIADO:
                return "1" if line.conciliado else "0"

        elif role == Qt.CheckStateRole and column == CONCILIADO and index.row() > 0:
            return QVariant( Qt.Checked if line.conciliado else Qt.Unchecked )
 def data( self, index, role = Qt.DisplayRole ):
     """
     Los datos que muestran las vistas asignadas a este modelo
     """
     if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
         return ""
     line = self.lines[index.row()]
     column = index.column()
     if role == Qt.DisplayRole:
         if column == IDARTICULO:
             return line.itemId
         elif column == DESCRIPCION:
             return line.itemDescription
         elif column == CANTIDAD:
             return line.quantity if line.quantity != 0 else ""
         elif column == PRECIO:
             return moneyfmt( Decimal( line.itemPriceC ), 4, "C$" ) if line.itemPriceC != 0 else ""
         elif column == PRECIOD:
             return moneyfmt( Decimal( line.itemPriceD ), 4, "US$" ) if line.itemPriceD != 0 else ""
         elif column == TOTALC:
             return moneyfmt( line.totalC , 4, "C$" ) if line.totalC != 0 else ""
         elif column == TOTALD:
             return moneyfmt( line.totalD, 4, "US$" ) if line.totalD != 0 else ""
     elif role == Qt.EditRole:
         if column == PRECIO:
             return line.itemPriceC
         elif column == PRECIOD:
             return line.itemPriceD
Exemple #7
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        Esta funcion redefine data en la clase base, es el metodo 
        que se utiliza para mostrar los datos del modelo
        """

        if not index.isValid():
            return None

        column = index.column()

        value = QSqlQueryModel.data( self, index, role )

        if column == CONCILIADO:
            if role == Qt.CheckStateRole and index.row() > 0:
                value = QSqlQueryModel.data( self, self.index( index.row(), 4 ), Qt.DisplayRole ).toInt()[0]
                return QVariant( Qt.Checked ) if value == 1 else QVariant( Qt.Unchecked )
            elif role == Qt.EditRole:
                return QSqlQueryModel.data( self, self.index( index.row(), 4 ), Qt.DisplayRole ).toInt()[0]
            else:
                return None
        elif column == SALDO:
            if role == Qt.DisplayRole:
                value = QSqlQueryModel.data( self, self.index( index.row(), 3 ), Qt.DisplayRole )
                value = Decimal( value.toString() )
                return moneyfmt( value, 4, "C$" )
        elif column == DEBE:
            if role == Qt.DisplayRole:
                value = Decimal( value.toString() )
                return moneyfmt( value, 4, "C$" ) if value > 0 else ""
            elif role == Qt.EditRole:
                return value
        elif column == HABER:
            if role == Qt.DisplayRole:
                value = Decimal( QSqlQueryModel.data( self, self.index( index.row(), DEBE ), role ).toString() )
                return moneyfmt( value * -1, 4, "C$" ) if value < 0 else ""
        elif column == CONCEPTO:
            if role == Qt.ToolTipRole:
                value = QSqlQueryModel.data( self, self.index( index.row(), 7 ), Qt.DisplayRole )
                return value
            elif role == Qt.DisplayRole:
                return value
            else:
                return None
        elif column == DELBANCO:
            if role == Qt.EditRole:
                value = QSqlQueryModel.data( self, self.index( index.row(), 5 ), Qt.DisplayRole )
                return value
            elif role == Qt.DisplayRole and index.row() > 0:
                value = QSqlQueryModel.data( self, self.index( index.row(), 5 ), Qt.DisplayRole )
                return "Si" if value == 1 else "No"
        elif column == IDTIPODOC:
            if role == Qt.EditRole:
                value = QSqlQueryModel.data( self, self.index( index.row(), 6 ), Qt.DisplayRole )
                return value
        elif column == FECHA:
            return value
        return None
    def updateLabels( self, index1 = None, index2 = None ):
        self.lblSubtotal.setText( 
                          moneyfmt( self.editmodel.subtotalC, 4, "C$" ) )

        self.lblIVA.setText( moneyfmt( self.editmodel.IVAC, 4, "C$" ) )

        self.lblTotal.setText( moneyfmt( self.editmodel.totalC, 4, "C$" ) )

        self.lblTotalD.setText( 
                            moneyfmt( self.editmodel.totalD, 4, "US$" ) )
Exemple #9
0
 def data( self, index, role = Qt.DisplayRole ):
     """
     Esta funcion redefine data en la clase base, es el metodo que se utiliza para mostrar los datos del modelo
     """
     value = QSqlQueryModel.data( self, index, role )
     exchangeRate = Decimal( QSqlQueryModel.data( self, index.model().index( index.row(), TASA ) ).toString() )
     if value.isValid() and role in ( Qt.DisplayRole, Qt.EditRole ):
         if index.column() in ( TOTAL, SUBTOTAL, COSTO, IMPUESTOS ):
             return moneyfmt( Decimal( value.toString() ), 2, "US$" ) + " / " + moneyfmt( Decimal( value.toString() ) * exchangeRate, 2 , "C$" )
     return value
Exemple #10
0
 def data( self, index, role = Qt.DisplayRole ):
     """
     Esta funcion redefine data en la clase base, es el metodo 
     que se utiliza para mostrar los datos del modelo
     """
     value = QSortFilterProxyModel.data( self, index, role )
     if value.isValid() and role in ( Qt.EditRole, Qt.DisplayRole ):
         if index.column() in ( SUBTOTALC, IVAC, TOTALC ):
             return moneyfmt( Decimal( value.toString() ), 4, "C$" )
         elif index.column() == TOTALD:
             return moneyfmt( Decimal( value.toString() ), 4, "US$" )
     return value
 def data(self, index, role=Qt.DisplayRole):
     """
     darle formato a los campos de la tabla
     """
     value = super(SingleSelectionModel, self).data(index, role)
     if role == Qt.DisplayRole:
         if index.column() == PRECIOEX:
             return moneyfmt(Decimal(value.toString()), 4, "US$")
         elif index.column() == COSTOEX:
             return moneyfmt(Decimal(value.toString()), 4, "C$")
         else:
             return value
     return value
Exemple #12
0
    def data( self, column, role ):
        if role == Qt.DisplayRole :
            if not column in ( ACUMULADO, MONTO, HIJOS ):
                return self.itemData[column]
            elif column == MONTO:
                return moneyfmt( self.itemData[MONTO], 4, 'C$' )
            elif column == ACUMULADO:
                return moneyfmt( self.acumulado, 4, "C$" )
            elif column == HIJOS:
                return self.childCount()

        elif role == Qt.EditRole:
            return self.itemData[column]
Exemple #13
0
 def data( self, index, role = Qt.DisplayRole ):
     if role == Qt.DisplayRole:
         if index.column() in  ( TOTALD, IMPUESTOTOTAL, CIFTOTAL, FOBTOTAL ):
             return moneyfmt( 
                  Decimal( super( LiquidacionNavModel, self ).data( index,
                                                      role ).toString() ),
                   4, "US$" )
         elif index.column() == TOTALC:
             return moneyfmt( 
                  Decimal( super( LiquidacionNavModel, self ).data( index,
                                                      role ).toString() ),
                  4, "C$" )
     return super( LiquidacionNavModel, self ).data( index, role )
Exemple #14
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        Retornar los datos del modelo
        """
        if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
            return None

        line = self.lines[ index.row() ]
        column = index.column()

        if role == Qt.DisplayRole:
            if column == CANTIDAD:
                return line.quantity
            elif column == TOTAL:
                return moneyfmt( line.total, 4, line.symbol )
            elif column == DENOMINACION:
                return line.denomination
            elif column == MONEDA:
                return line.currencyId
            elif column == IDDENOMINACION:
                return line.denominationId

        elif role == Qt.EditRole:
            if column == DENOMINACION:
                return line.denomination
Exemple #15
0
 def data( self, index, role = Qt.DisplayRole ):
     """
     Esta funcion redefine data en la clase base, es el metodo que se utiliza para mostrar los datos del modelo
     """
     value = QSortFilterProxyModel.data( self, index, role )
     if value.isValid() and role == Qt.DisplayRole:
         if index.column() == SALDO:
             return moneyfmt( Decimal( value.toString() ), 4, "US$ " )
     return value
    def data( self, index, role = Qt.DisplayRole ):
        """
        darle formato a los campos de la tabla
        """
        if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
            return None
        line = self.lines[index.row()]
        column = index.column()

        if role == Qt.DisplayRole:
            if column == DESCRIPCION:
                return line.itemDescription
            elif column == PRECIO:
                return moneyfmt( Decimal( line.itemPrice ), 4, "US$" )
            elif column == CANTIDADMAX:
                return line.maxquantity
            elif column == CANTIDAD:
                return line.quantity
            elif column == TOTALPROD:
                return moneyfmt( line.totalD, 4, "US$" )
    def data( self, index, role = Qt.DisplayRole ):
        if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
            return None
        line = self.lines[index.row()]
        column = index.column()

        if role == Qt.DisplayRole:
            if column == IDARTICULO:
                return line.itemId
            elif column == DESCRIPCION:
                return line.description
            elif column == CANTIDAD:
                return line.quantity
            elif column == COSTO:
                return moneyfmt( line.itemCost, 4, "US$" )
            elif column == COSTOT:
                return moneyfmt( line.totalCost, 4, "US$" )
        elif role == Qt.EditRole:
            if column == COSTO:
                return line.itemCost
            if column == COSTOT:
                return line.totalCost
Exemple #18
0
    def updateLabels( self ):
        self.txttotallibro.setText( moneyfmt( self.editmodel.total_libro, 4, self.editmodel.moneda ) )
        self.txtcheque.setText( moneyfmt( self.editmodel.total_cheques, 4, self.editmodel.moneda ) )
        self.txtdeposito.setText( moneyfmt( self.editmodel.total_depositos, 4, self.editmodel.moneda ) )
        self.txtnotacredito.setText( moneyfmt( self.editmodel.total_nota_credito, 4, self.editmodel.moneda ) )
        self.txtnotadebito.setText( moneyfmt( self.editmodel.total_nota_debito, 4, self.editmodel.moneda ) )

        self.txttotalbanco.setText( moneyfmt( self.editmodel.total_banco, 4, self.editmodel.moneda ) )

        dif = self.editmodel.diferencia
        self.lbldiferencia.setText( ( "Diferencia " + moneyfmt( dif, 4, self.editmodel.moneda ) ) if dif != 0 else "CONCILIADO" )
Exemple #19
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        Esta funcion redefine data en la clase base, es el metodo que se utiliza para mostrar los datos del modelo
        """
        value = QSortFilterProxyModel.data( self, index, role )
        if value.isValid() and role in ( Qt.EditRole, Qt.DisplayRole , Qt.TextAlignmentRole ):
            if index.column() in ( TOTAL, TOTALPAGADO, TOTALRETENCION ) :
                if role in ( Qt.EditRole, Qt.DisplayRole ):
                    value = value.toString()
                    return moneyfmt( Decimal( value if value != "-" else 0 ), 4, "US$" )
                elif role == Qt.TextAlignmentRole:
                    return Qt.AlignHCenter | Qt.AlignVCenter

        return value
Exemple #20
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        darle formato a los campos de la tabla
        """
        if not index.isValid() or not ( 0 <= index.row() < len( self.items ) ):
            return ""
        line = self.items[index.row()]
        if role == Qt.DisplayRole:
            if index.column() in ( 2, 3 ):
                return str( line[index.column()] ) + "%"
            elif index.column() == 4:
                return moneyfmt( line[index.column()], 4, "US$" )
            return line[index.column()]
# 0 = id articulo, 1 = descripcion articulo, 2 = dai, 3 = isc, 4 = comision
        elif role == Qt.EditRole:
            return line[index.column()]
    def data( self, index, role = Qt.DisplayRole ):
        """
        Esta funcion redefine data en la clase base, es el metodo que se 
        utiliza para mostrar los datos del modelo
        """
        value = QSqlQueryModel.data( self, index, role )
        if not value.isValid():
            return None

        if index.column() in ( SALDO, TOTAL ):
            if role == Qt.DisplayRole:
                value = value.toString()
                value = moneyfmt( Decimal( value ), 4, "C$" ) if value != "" else ""


        return value
 def data( self, index, role = Qt.DisplayRole ):
     """
     darle formato a los campos de la tabla
     """
     if not index.isValid() or not ( 0 <= index.row() < len( self.lines ) ):
         return ""
     line = self.lines[index.row()]
     column = index.column()
     if role == Qt.DisplayRole:
         if column == IDCUENTA:
             return line.itemId
         elif column == NCUENTA:
             return line.name
         elif column == CODCUENTA:
             return line.code
         elif column == MONTO:
             return moneyfmt( line.amount, 4, "C$" ) if line.amount != 0 else ""
     if role == Qt.EditRole:
         if column == MONTO:
             return float( line.amount )
Exemple #23
0
    def updateLabels( self ):
        """
        """
        self.ckretener.setEnabled( self.editmodel.tieneRetencion )
        retencion = self.editmodel.retencionCordoba
        self.lblretencion.setText( moneyfmt( retencion / self.sesion.tipoCambioBanco, 4, "US$ " ) )
        self.lblretencion.setToolTip( moneyfmt( retencion, 4, "C$ " ) )


        self.lbltotal.setText( moneyfmt( self.editmodel.totalDolar, 4, "US$ " ) )
        self.lbltotal.setToolTip( moneyfmt( self.editmodel.totalCordoba, 4, "C$ " ) )

        total = self.editmodel.totalCordoba - retencion
        self.lbltotalpago.setText( moneyfmt( total / self.sesion.tipoCambioBanco , 4, "US$ " ) )
        self.lbltotalpago.setToolTip( moneyfmt( total, 4, "C$ " ) )
Exemple #24
0
    def cargarMovimientos( self ):
        index = self.mapper.currentIndex()
        saldobanco = Decimal( self.navmodel.record( index ).value( "saldobanco" ).toString() )
        saldolibro = Decimal( self.navmodel.record( index ).value( "saldolibro" ).toString() )

        fecha = self.navmodel.record( index ).value( "fecha" ).toDate()
        self.lblfecha.setText( fecha.toString( "MMMM yyyy" ).upper() )
        ctaBanco = self.navmodel.record( index ).value( "idcuentacontable" ).toString()
        try:
            if not self.database.isOpen():
                if not self.database.open():
                    raise Exception( "No se pudo abrir la base" )
            self.detailsmodel.setQuery( "CALL spMovimientoCuenta(" + ctaBanco + "," + fecha.toString( "yyyyMMdd" ) + ");" )
            self.proxymodel.setSourceModel( self.detailsmodel )
        except Exception as inst:
            logging.error( unicode( inst ) )
        finally:
            if self.database.isOpen():
                self.database.close()
        self.tablenavigation.selectRow( self.mapper.currentIndex() )


        self.spbsaldobanco.setValue( saldobanco )
        self.txtsaldolibro.setText( moneyfmt( saldolibro, 4, "C$" ) )

        nc = self.tablabancomas.model().total
        nd = self.tablabancomenos.model().total
        depositos = self.tablalibromas.model().total
        cheques = self.tablalibromenos.model().total
        self.txtcheque.setText( moneyfmt( cheques, 4, "C$" ) )
        self.txtdeposito.setText( moneyfmt( depositos, 4, self.editmodel.moneda ) )
        self.txtnotacredito.setText( moneyfmt( nc, 4, self.editmodel.moneda ) )
        self.txtnotadebito.setText( moneyfmt( nd, 4, self.editmodel.moneda ) )

        self.txttotallibro.setText( moneyfmt( saldobanco + depositos + cheques, 4, self.editmodel.moneda ) )
        self.txttotalbanco.setText( moneyfmt( saldolibro + nc + nd , 4, self.editmodel.moneda ) )
        dif = saldobanco + depositos + cheques - ( saldolibro + nc + nd )
        self.lbldiferencia.setText( moneyfmt( dif, 4, self.editmodel.moneda ) if dif != 0 else "CONCILIADO" )
Exemple #25
0
    def data( self, index, role = Qt.DisplayRole ):
        """
        Esta funcion redefine data en la clase base, es el metodo que 
        se utiliza para mostrar los datos del modelo
        """
        if not index.isValid():
            return None

        if index.column() == DEBE:
            _row = self.mapToSource( index ).row()
#            value = self.sourceModel().sourceModel().lines[row].monto
#            try:
            value = QSortFilterProxyModel.data( self, index, Qt.EditRole ).toString()
            value = Decimal( value if value != "" else 0 )

            if role == Qt.EditRole:
                return QSortFilterProxyModel.data( self, index, Qt.EditRole )
            elif role == Qt.DisplayRole:
                self.dataChanged.emit( index, index )
                return moneyfmt( value, 4, '' )
        else:
            return QSortFilterProxyModel.data( self, index, role )
Exemple #26
0
    def updateLabels( self ):
        #Asingar el total al modelo
        totalAbono = self.totalFactura

        retener = self.datosRecibo.retencionValida

        if self.cbtasaret.currentIndex() > -1 or ( not self.ckretener.isEnabled() ):
            self.ckretener.setChecked( retener )
        self.ckretener.setEnabled( retener )

        ret = self.datosRecibo.obtenerRetencion
        self.editmodel.asignarTotal( totalAbono - ret )
        tasa = self.datosRecibo.datosSesion.tipoCambioBanco

        self.lbltotal.setText( moneyfmt( totalAbono, 4, "US$ " ) )
        self.lbltotal.setToolTip( moneyfmt( totalAbono * tasa, 4, "C$ " ) )

        self.lbltotalreten.setText( moneyfmt( ret, 4, "US$ " ) )
        self.lbltotalreten.setToolTip( moneyfmt( ret * tasa, 4, "C$ " ) )

        self.lbltotalrecibo.setText( moneyfmt( totalAbono - ret, 4, "US$ " ) )
        self.lbltotalrecibo.setToolTip( moneyfmt( ( totalAbono - ret ) * tasa, 4, "C$ " ) )
Exemple #27
0
 def updateLabels( self ):
     self.lblTotal.setText( moneyfmt( self.editmodel.totalD, 4, "US$" ) + " / " + moneyfmt( self.editmodel.totalC, 4, "C$" ) )
     self.lblSubtotal.setText( moneyfmt( self.editmodel.subtotalD, 4, "US$" ) + " / " + moneyfmt( self.editmodel.subtotalC, 4, "C$" ) )
     self.lblTaxes.setText( moneyfmt( self.editmodel.ivaD, 4, "US$" ) + " / " + moneyfmt( self.editmodel.ivaC, 4, "C$" ) )
Exemple #28
0
    def newDocument( self ):
        """
        activar todos los controles, llenar los modelos necesarios, 
        crear el modelo Pago, aniadir una linea a la tabla
        """
        if not self.database.isOpen():
            if not self.database.open():
                raise UserWarning( u"No se pudo establecer la conexión con "\
                                   + "la base de datos" )
        query = QSqlQuery()
        try:

#            Rellenar el combobox de las CONCEPTOS

            self.conceptosModel.setQuery( """
               SELECT idconcepto, descripcion FROM conceptos c WHERE idtipodoc = %d;
            """ % constantes.IDPAGO )

            if self.conceptosModel.rowCount() == 0:
                raise UserWarning( u"No existen conceptos en la base de "\
                                   + "datos para los pagos" )

            self.beneficiariosModel = QSqlQueryModel()
            self.beneficiariosModel.setQuery( """
            SELECT
            s.idpersona,
            s.nombre
            FROM personas s
            WHERE s.tipopersona <> %d
            ORDER BY s.nombre
            """ % constantes.AUTOR )

            if self.beneficiariosModel.rowCount() == 0:
                raise UserWarning( u"No existen personas en la base de datos" )

            #            Rellenar el combobox de las retenciones
            self.retencionModel = QSqlQueryModel()
            self.retencionModel.setQuery( """
                    SELECT 
                        idcostoagregado, 
                        FORMAT(valorcosto,0) as tasa
                    FROM costosagregados 
                    WHERE 
                    idtipocosto IN (%d,%d) AND 
                    activo=1 
                    ORDER BY valorcosto desc; 
                    """ % ( constantes.RETENCIONPROFESIONALES,
                            constantes.RETENCIONFUENTE ) )
            if self.retencionModel.rowCount() == 0:
                raise UserWarning( u"No existe ninguna tasa de retención en "\
                                   + "la base de datos" )
            query = QSqlQuery( 
            """
            SELECT
                SUM(IF(m.idtipomoneda = %d,m.monto,0)) as totalC,
                SUM(IF(m.idtipomoneda = %d,m.monto,0)) as totalD
            FROM
            movimientoscaja m
            JOIN documentos d ON d.iddocumento = m.iddocumento
            WHERE d.idcaja = %d AND m.idtipomovimiento=%d
            ;
            """ % ( constantes.IDCORDOBAS,
                    constantes.IDDOLARES,
                    self.sesion.cajaId,
                    constantes.IDPAGOEFECTIVO ) )
            if not query.exec_():
                raise UserWarning( u"No pudo obtenerse de la base de datos la cantidad de dinero en caja" )
            query.first()
            maxCordoba = Decimal( query.value( 0 ).toString() )
            maxDolar = Decimal( query.value( 1 ).toString() )

            if maxCordoba <= 0 and maxDolar <= 0:
                raise UserWarning( u"No hay Efectivo en Caja" )


            query = QSqlQuery( "SELECT fnCONSECUTIVO(%d,null);" % constantes.IDPAGO )
            if not query.exec_():
                raise UserWarning( u"No pudo obtenerse el número del comprobante" )
            query.first()
            ndoc = query.value( 0 ).toString()
            self.lblnpago.setText( ndoc )

            self.txttipocambio.setText( moneyfmt( self.sesion.tipoCambioBanco, 4 ) )

            self.cbtasaret.setModel( self.retencionModel )
            self.cbtasaret.setModelColumn( 1 )
            self.cbtasaret.setCurrentIndex( -1 )
            self.retencionId = 0



            self.cbbeneficiario.setModel( self.beneficiariosModel )
            self.cbbeneficiario.setCurrentIndex( -1 )
            self.cbbeneficiario.setModelColumn( 1 )
            completer = QCompleter()
            completer.setCaseSensitivity( Qt.CaseInsensitive )
            completer.setModel( self.beneficiariosModel )
            completer.setCompletionColumn( 1 )


            self.cbconcepto.setModel( self.conceptosModel )
            self.cbconcepto.setCurrentIndex( -1 )
            self.cbconcepto.setModelColumn( 1 )
            completerconcepto = QCompleter()
            completerconcepto.setCaseSensitivity( Qt.CaseInsensitive )
            completerconcepto.setModel( self.conceptosModel )
            completerconcepto.setCompletionColumn( 1 )

            self.editmodel = PagoModel( self.sesion )
            self.editmodel.docImpreso = ndoc

            self.editmodel.maxCordoba = maxCordoba
            self.editmodel.maxDolar = maxDolar
            self.sbtotalc.setToolTip( "Max= " + moneyfmt( maxCordoba, 4, 'C$' ) )
            self.sbtotald.setToolTip( "Max= " + moneyfmt( maxDolar, 4, 'US$' ) )
            self.sbtotalc.setMaximum( maxCordoba )
            self.sbtotald.setMaximum( maxDolar )

            query = QSqlQuery( """
            SELECT idcostoagregado, valorcosto 
            FROM costosagregados c  
            WHERE idtipocosto = %d AND activo = 1;
            """ % constantes.IVA )
            if not query.exec_():
                raise UserWarning( u"No pudo obtenerse la tasa de IVA" )
            query.first()
            self.editmodel.ivaId = query.value( 0 ).toInt()[0]
            self.editmodel.ivaTasa = Decimal( query.value( 1 ).toString() )



            self.ckiva.setToolTip( query.value( 1 ).toString() + '%' )


            self.status = False

        except UserWarning as inst:
            QMessageBox.critical( self, qApp.organizationName(), unicode( inst ) )
            logging.error( unicode( inst ) )
            logging.error( query.lastError().text() )
#        except Exception as inst:
#            QMessageBox.critical( self, qApp.organizationName(),
#                                   "Hubo un problema al tratar de crear"\
#                                   + " el nuevo pago" )
#            logging.critical( unicode( inst ) )
#            logging.error( query.lastError().text() )
        finally:
            if QSqlDatabase.database().isOpen():
                QSqlDatabase.database().close()
Exemple #29
0
 def updateLabels( self ):
     self.lblsubtotal.setText( moneyfmt( self.editmodel.subtotal, 4, "US$ " ) )
     self.lbliva.setText( moneyfmt( self.editmodel.IVA, 4, "US$ " ) )
     self.lbltotal.setText( moneyfmt( self.editmodel.total, 4, "US$ " ) )
     self.lbltasaiva.setText( str( self.editmodel.ivaTasa ) + '%' )
     self.tabledetails.resizeColumnsToContents()
Exemple #30
0
    def updateLabels( self ):
        self.lblCashC.setText( "%s / %s" % ( 
                        moneyfmt( self.editmodel.totalCashC, 4, "C$" ),
                        moneyfmt( self.editmodel.expectedCashC, 4, "C$" ) )
        )
        self.lblCashD.setText( "%s / %s" % ( 
                        moneyfmt( self.editmodel.totalCashD, 4, "US$" ),
                        moneyfmt( self.editmodel.expectedCashD, 4, "US$" ) )
        )

        self.lblCkC.setText( moneyfmt( self.editmodel.expectedCkC, 4, "C$" ) )
        self.lblCkD.setText( moneyfmt( self.editmodel.expectedCkD, 4, "US$" ) )

        self.lblCardC.setText( 
                        moneyfmt( self.editmodel.expectedCardC, 4, "C$" ) )
        self.lblCardD.setText( 
                        moneyfmt( self.editmodel.expectedCardD, 4, "US$" ) )

        self.lblDepositC.setText( 
                         moneyfmt( self.editmodel.expectedDepositC, 4, "C$" ) )
        self.lblDepositD.setText( 
                         moneyfmt( self.editmodel.expectedDepositD, 4, "US$" ) )

        self.lblTransferC.setText( 
                          moneyfmt( self.editmodel.expectedDepositC, 4, "C$" ) )
        self.lblTransferD.setText( 
                          moneyfmt( self.editmodel.expectedDepositD, 4, "US$" ) )