예제 #1
0
/*!
 * \brief FormRecibo::aPdf
 * Convierte el recibo actual a PDF
 */
void FormRecibo::aPdf() {
    if( _id_actual > 0 ) {
        EReporte *rep = new EReporte( 0 );
        rep->recibo();
        ParameterList lista;
        lista.append( "id_recibo", _id_actual );
        rep->hacerPDF( lista, QString( "Recibo #%1" ).arg( MPagos::buscarNumeroComprobantePorId( _id_actual ).aCadena() ) );
        delete rep;
    }
}
예제 #2
0
/*!
 * \brief FormRecibo::imprimir
 * Reimprime el recibo actual
 */
void FormRecibo::imprimir() {
    if( _id_actual > 0 ) {
        EReporte *rep = new EReporte( 0 );
        rep->recibo();
        ParameterList lista;
        lista.append( "id_recibo", _id_actual );
        rep->hacer( lista );
        delete rep;
    }
}
예제 #3
0
/*!
  \fn FormAgregarRecibo::guardar()
 */
void FormAgregarRecibo::guardar()
{
    // Si fue llamado sin modelo adyacente
    if( this->_modelo ) {
        this->setearModelo( 0 );
    }
    // Verificaciónes iniciales
    if( this->CBCliente->currentIndex() == -1 ) {
        QMessageBox::warning( this, "Faltan datos", "Por favor verifique que un cliente este elegido" );
        return;
    }
    if( this->TETexto->toPlainText().isEmpty() ) {
        QMessageBox::warning( this, "Faltan datos", "Por favor verifique que el texto del recibo no este vacio" );
        return;
    }
    if( (!this->RBContado->isChecked()) && (!this->RBotro->isChecked()) && (!this->RBLuego->isChecked()) ) {
        QMessageBox::warning( this, "Faltan datos", "Por favor verifique que haya elegido una forma de pago." );
        return;
    }
    if( this->dSBPagado->value() <= 0.0 ) {
        QMessageBox::warning( this, "Faltan datos", "Por favor verifique que haya ingresado una cantidad a pagar" );
        return;
    }
    // busco la fecha de la ultima factura y verifico que facturemos con fecha igual o mayor
    QDate fecha_ultima_factura = this->_modelo->buscarFechaUltimoRecibo();
    if( ( fecha_ultima_factura.isValid() ) && ( this->DEFecha->date() < fecha_ultima_factura ) ) {
        QMessageBox::warning( this, "Faltan datos", QString( "Por favor verifique que haya ingresado una fecha mayor o igual a %1" ).arg( fecha_ultima_factura.toString() ) );
        return;
    }
    int id_cliente = this->CBCliente->model()->data( this->CBCliente->model()->index( this->CBCliente->currentIndex(), 0 ), Qt::EditRole ).toInt();
    QDate fecha = this->DEFecha->date();
    QString contenido = this->TETexto->toPlainText();
    double total = this->dSBPagado->value();
    bool pagado = false;
    bool contado = false;
    if( this->RBContado->isChecked() ) {
        pagado = true;
        contado = true;
    } else if( this->RBotro->isChecked() ) {
        pagado = true;
    } // Si esta como luego, pongo los dos parametros como estan false, false
    // Genero la transacción
    QSqlDatabase::database().transaction();
    this->_modelo->setEditStrategy( QSqlTableModel::OnManualSubmit );
    int num_recibo = this->_modelo->agregarRecibo( id_cliente, fecha, contenido, total, pagado, contado );
    if( num_recibo == -1 ) {
        this->_modelo->revertAll();
        QSqlDatabase::database().rollback();
        QMessageBox::warning( this, "Error", QString( "Ocurrio un error al intentar guardar el recibo" ) );
        return;
    }
    this->_modelo->submitAll();
    QSqlDatabase::database().commit();
    // Imprimir el recibo
    QMessageBox::information( this, "Correcto", QString::fromUtf8( "El recibo nº %1 se guardo correctamente y se ha enviado a imprimir automaticamente" ).arg( this->_modelo->buscarNumeroComprobantePorId( num_recibo ).aCadena() ) );
    /// Imprimo el recibo
    ParameterList lista;
    lista.append( "id_recibo", num_recibo );
    EReporte *rep = new EReporte( this );
    rep->recibo();
    if( !rep->hacer( lista ) ) {
        rep->mostrarError( this );
        QMessageBox::information( this, "Error", QString( "No se pudo encontrar la definicion del informe. Contactese con el administrador." ) );
    }
    this->close();
    this->_modelo = 0;
    return;
}