void Form_listSTbyPhong::on_pushButton_2_clicked()
{
    NCReport *report = new NCReport();
    report->setReportSource( NCReportSource::File ); // set report source type
    //report->addItemModel(querymodel_room,"myModel");
    report->setReportFile("/home/xdien/ProjectsQT/qlsv_ktx/lietkeDSSV.ncr"); //set the report filename fullpath or relative to dir
    report->runReportToPreview(); // run to preview output
    // error handling
    if( report->hasError())
    {
        QMessageBox msgBox;
        msgBox.setText(QObject::tr("Report error: ") + report->lastErrorMsg());
        msgBox.exec();
    }
    else
    {
        // show preview
        NCReportPreviewWindow *pv = new NCReportPreviewWindow();    // create preview window
        pv->setOutput( (NCReportPreviewOutput*)report->output() );  // add output to the window
        pv->setReport(report);
        pv->setWindowModality(Qt::ApplicationModal );    // set modality
        pv->setAttribute( Qt::WA_DeleteOnClose );    // set attrib
        pv->exec();  // run like modal dialog
    }
    delete report;
}
Exemple #2
0
void Widget::on_pushButton_clicked()
{
    QStringList list;

    list << "a;a;a;a;a;a"
         << "aa;aa;aa;aa;aa;aa"
         << "aaa;aaa;aaa;aaa;aaa;aaa"
         << "aaaa;aaaa;aaaa;aaaa;aaaa;aaaa"
         << "aaaaa;aaaaa;aaaaa;aaaaa;aaaaa;aaaaa"
         << "aaaaaa;aaaaaa;aaaaaa;aaaaaa;aaaaaa;aaaaaa";


    NCReport *report = new NCReport();

    report->setReportSource( NCReportSource::File );    
    report->setReportFile(":/reports/report.xml");
    report->addStringList(list, "model1");

    report->runReportToPreview();

    if (report->hasError()) {

        qDebug() << "ERROR:" << report->lastErrorMsg();

    } else {

        NCReportPreviewWindow *pv = new NCReportPreviewWindow();
        pv->setOutput( (NCReportPreviewOutput*)report->output() );
        pv->setWindowModality( Qt::ApplicationModal );
        pv->setAttribute( Qt::WA_DeleteOnClose );
        pv->show();
    }

    delete report;
}
void BienesporSector::on_btnVerReporte_clicked()
{


     NCReport *report = new NCReport();
     report->reset(true);
     report->setReportSource( NCReportSource::File  );
     report->setReportFile("Reportes/listadoBienesAF.xml");
     report->addParameter( "idUnidad", QVariant(registroBasico->getUnidad()->id));

     if(ui->anioSelecc->currentText()==("<< Todos >>"))
         report->addParameter( "anioInventarioSelecc", QVariant("%"));
     else
         report->addParameter( "anioInventarioSelecc", QVariant(ui->anioSelecc->currentText()));

     if(ui->descripSector->currentText()==("<< Todos >>"))
         report->addParameter( "descripcionSectoSelecc",QVariant("%"));
     else
         report->addParameter( "descripcionSectoSelecc",QVariant(ui->descripSector->currentText()));


     report->runReportToPreview();
     QString error=report->lastErrorMsg();
     std::cout<< error.toStdString();

     if ( !report->hasError() ) {
       NCReportPreviewWindow *pv = new NCReportPreviewWindow();
       pv->setOutput( (NCReportPreviewOutput*)report->output() );
       pv->setWindowModality( Qt::ApplicationModal );
       pv->show();
     }

}
void reporte_cliente::save_reporte(QString p_apellido,QString s_apellido,QString nombre)
{
    set_file_name();
    this->current_date=QDate::currentDate();
    this->header_current_date.append(current_date.toString(Qt::ISODate));
    this->current_time=QTime::currentTime();
    this->header_current_hora.append(current_time.toString());

    make_query_cliente(p_apellido,s_apellido,nombre);

    report->addParameter("sql",quer);

    QString fullname;
    fullname.append(p_apellido);
    fullname.append(" ");
    fullname.append(s_apellido);
    fullname.append(" ");
    fullname.append(nombre);
    report->addParameter("nombre",fullname);

    fecha_final_s.clear();
    fecha_inicio_s.clear();
    fecha_inicio_s.append(this->fecha_inicio.toString(Qt::ISODate));
    fecha_final_s.append(this->fecha_fin.toString(Qt::ISODate));
    report->addParameter("usuario",current_user);
    report->addParameter("fecha_inicio",fecha_inicio_s);
    report->addParameter("fecha_final",fecha_final_s);
    report->addParameter("fecha_actual",current_date.toString(Qt::ISODate));
    report->addParameter("hora_actual",current_time.toString());
    NCReportOutput *output=0;
    output = new NCReportPreviewOutput();
    output->setAutoDelete( FALSE );
    report->setOutput( output );

    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    report->runReport();
    //report->runReportToPreview();
    bool error = report->hasError();
    QString err = report->lastErrorMsg();
    QApplication::restoreOverrideCursor();

    if ( error )
        QMessageBox::information( 0, "Report error", err );
    else
    {
            //-----------------------------
            // PRINT PREVIEW
            //-----------------------------
            NCReportPreviewWindow *pv = new NCReportPreviewWindow();
            pv->setReport( report );
            pv->setOutput( (NCReportPreviewOutput*)output );
            pv->setWindowModality(Qt::ApplicationModal );
            pv->setAttribute( Qt::WA_DeleteOnClose );
            pv->show();
    }

    //report->runReportToShowPreview();
}
void reporte_tienda::save_reporte(QString alias, int no_tienda)
{
    set_file_name();
    this->current_date=QDate::currentDate();
    this->header_current_date.append(current_date.toString(Qt::ISODate));
    this->current_time=QTime::currentTime();
    this->header_current_hora.append(current_time.toString());

    make_query_tienda(alias,no_tienda);

    report->addParameter("sql",quer);
    report->addParameter("usuario",current_user);
    report->addParameter("tienda",alias);
    //qDebug()<<fecha_inicio_s;
    report->addParameter("fecha_consulta",fecha_inicio_s);
    report->addParameter("fecha_actual",current_date.toString(Qt::ISODate));
    report->addParameter("hora_actual",current_time.toString());
    NCReportOutput *output=0;
    output = new NCReportPreviewOutput();
    output->setAutoDelete( FALSE );
    report->setOutput( output );

    QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    report->runReport();
    //report->runReportToPreview();
    bool error = report->hasError();
    QString err = report->lastErrorMsg();
    QApplication::restoreOverrideCursor();

    if ( error )
        QMessageBox::information( 0, "Report error", err );
    else
    {
            //-----------------------------
            // PRINT PREVIEW
            //-----------------------------
            NCReportPreviewWindow *pv = new NCReportPreviewWindow();
            pv->setReport( report );
            pv->setOutput( (NCReportPreviewOutput*)output );
            pv->setWindowModality(Qt::ApplicationModal );
            pv->setAttribute( Qt::WA_DeleteOnClose );
            pv->show();
    }

    //report->runReportToShowPreview();
    //report->runReportToShowPreview();
}
void ingresoBienes::guardar(){

    QMessageBox msgBox;
    msgBox.setText("Ingreso de Transacciones.");
    msgBox.setInformativeText("¿Desea guardar y terminar la transaccion?");
    msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Cancel);
    msgBox.setDefaultButton(QMessageBox::Save);
    int ret = msgBox.exec(), codigoIngreso=0;
    bool exitoTrans=true;

    switch (ret) {
        case QMessageBox::Save:{

                QDateTime HoraFecha=QDateTime::currentDateTime();
                Fecha *_fechaTran=new Fecha(HoraFecha.date().day(), HoraFecha.date().month(), HoraFecha.date().year());

                /*Variables del bien*/
                string nombreClase, cuentaAsignada;
                float valor=0.0;
                Fecha *fechaAdquisicion;
                QString fechaAq;
                QDate fAdquisicion;

                int inventarioAF=QVariant(m_ui->anioInventario->itemData(m_ui->anioInventario->currentIndex())).toInt();


                /**Variables Generales*/
                QString facturaProveedor, noCEF, fechaFactura, noCSU, fechaCSU, proveedor;
                QString fuentedeFondos, observaciones, tipoBien, Horatran, Fechatran, serie, marca, modelo, especifico, codigoBien, codCuenta, codIngreso;

                facturaProveedor=m_ui->noFactura->text();
                noCEF=m_ui->CEF->text();
                fechaFactura=m_ui->fechaFactura->date().toString(Qt::ISODate);
                noCSU=m_ui->numeroAcuerdoCSU->text();
                fechaCSU=m_ui->fechaAcuerdo->date().toString(Qt::ISODate);
                proveedor=m_ui->nombreProveedor->currentText();
                observaciones=m_ui->observaciones->text();
                tipoBien=QString("activofijo");
                Horatran=HoraFecha.time().toString(Qt::ISODate);
                Fechatran=HoraFecha.date().toString(Qt::ISODate);
                codIngreso=m_ui->numeroIngreso->text();

                int sector=0;

                //servicioPersistencia=new Persistencia(this->regBasico->getUnidad()->id);
                std::map<int, string> listaSectores=servicioPersistencia->cargarSectores();

                //servicioPersistencia->BEGIN();
                QSqlDatabase::database("sibcues").exec("begin");


                if(m_ui->fondoGeneral->isChecked())
                    fuentedeFondos="fondogeneral";
                if(m_ui->fondosPropios->isChecked())
                    fuentedeFondos="fondospropios";
                if(m_ui->donado->isChecked())
                    fuentedeFondos="donado";

                if(this->nuevoIngreso){
                 codigoIngreso=servicioPersistencia->guardarIngresoBienes(Fechatran, proveedor, noCEF, facturaProveedor, fechaFactura, noCSU , fechaCSU, fuentedeFondos, observaciones, tipoBien, Horatran, this->estadoIngreso, codIngreso );
                }
                else{
                  servicioPersistencia->actualizarIngresoBienes(this->idIngreso, proveedor, noCEF, facturaProveedor,  fechaFactura,  noCSU , fechaCSU,  fuentedeFondos,  observaciones,  estadoIngreso, codIngreso);
                  codigoIngreso=this->idIngreso;
                }


                /**Objeto Bien*/
                Bien *bien;
                int codBien;


                for(int i=0; i< m_ui->tablaBienes->rowCount(); i++)
                {

                    for
                    (
                            map<int, string>::iterator it = listaSectores.begin();
                            it != listaSectores.end();
                            ++it
                     ){
                                    if(m_ui->tablaBienes->item(i, 9)->data(0).toString()==QString::fromStdString(it->second))
                                        sector=it->first;
                    }

                    codCuenta=m_ui->tablaBienes->item(i, 0)->data(0).toString();
                    cuentaAsignada=QString(this->listaCodigosCuentas[m_ui->tablaBienes->item(i, 0)->data(0).toString().toStdString()].c_str() ).toStdString();
                    nombreClase=m_ui->tablaBienes->item(i, 1)->data(0).toString().toStdString();

                    especifico=m_ui->tablaBienes->item(i, 2)->data(0).toString();
                    valor=m_ui->tablaBienes->item(i, 8)->data(0).toString().toFloat();
                    fechaAq=m_ui->tablaBienes->item(i, 7)->data(0).toString();
                    fAdquisicion=m_ui->tablaBienes->item(i, 7)->data(0).toDate();

                    fechaAdquisicion=new Fecha(fAdquisicion.day(), fAdquisicion.month(), fAdquisicion.year() );

                    marca=m_ui->tablaBienes->item(i, 4)->data(0).toString();
                    modelo=m_ui->tablaBienes->item(i, 5)->data(0).toString();
                    serie=m_ui->tablaBienes->item(i, 6)->data(0).toString();

                    if(this->registroCatalogo->existeClase( nombreClase , cuentaAsignada))
                    {

                        moduloinventario::EspecificacionBien *espec=this->registroCatalogo->getEspecificacion(nombreClase , cuentaAsignada );
                        if(m_ui->tablaBienes->item(i, 10)->data(0).toInt()==0)
                            bien=this->inventario->crearBien(espec, valor, fechaAdquisicion, 1, true);
                        else
                            bien=this->inventario->crearBien(espec, valor, fechaAdquisicion, 1, false);

                        bien->setSerie(serie.toStdString());
                        bien->estadoBien=1;
                        bien->setSector(sector);

                        if(m_ui->tablaBienes->item(i, 10)->data(0).toInt()==0){
                            QList<QString> listaCorrelativos=servicioPersistencia->getListaCorelativosDisponiblesAF(espec->oid_especbien);
                            bien->correlativo=listaCorrelativos.takeFirst().toStdString();
                        }

                        QString codigUnidad=QString::fromStdString(this->regBasico->getUnidad()->codigoP1())+QString::fromStdString(this->regBasico->getUnidad()->codigoP2());
                        codigoBien=codCuenta+"-"+codigUnidad+"-"+QString::fromStdString(nombreClase)+"-"+QString::fromStdString(bien->correlativo)+"-"+especifico;

                        if(m_ui->tablaBienes->item(i, 10)->data(0).toInt()==0){
                            codBien=servicioPersistencia->guardarBien(espec, QString(bien->correlativo.c_str()), serie, valor, fechaAq, sector, modelo, marca, especifico, codigoBien, this->estadoBien, inventarioAF);
                            if(exitoTrans)
                                exitoTrans=servicioPersistencia->crearlineaIngresoAF(codBien, codigoIngreso );
                        }
                        else{
                            codBien=m_ui->tablaBienes->item(i, 10)->data(0).toInt();
                            servicioPersistencia->actualizarBien(codBien, espec, serie, valor, fechaAq, sector, modelo, marca, especifico, this->estadoBien);
                            if(exitoTrans)
                                exitoTrans=servicioPersistencia->crearlineaIngresoAF(codBien, codigoIngreso );
                        }
                        bien->oid=codBien;
                        bien->idModelo=servicioPersistencia->oidModelo(modelo);
                   }
                }

                if(exitoTrans){

                    QSqlDatabase::database("sibcues").commit();
                    QMessageBox msgBox;
                    msgBox.information(0,"Captura de Datos","    Ingresado con exito!.   ");

                    for(int i=m_ui->tablaBienes->rowCount() -1; i>=0; i--)
                    {
                        this->m_ui->tablaBienes->removeRow(i);
                    }
                    this->fila=0;
                    this->m_ui->finalizarTransaccion->setDisabled(true);
                    this->m_ui->btmGuardar->setDisabled(true);

                       servicioPersistencia->crearConexion();

                       NCReport *report = new NCReport();
                       report->reset(true);
                       report->setReportSource( NCReportSource::File  );
                       report->setReportFile("Reportes/ingresoBienesAF.xml");

                       report->addParameter( "idIngreso", QVariant(codigoIngreso) );

                       report->runReportToPreview();
                       QString error=report->lastErrorMsg();
                       std::cout<< error.toStdString();

                       if ( !report->hasError() ) {
                         NCReportPreviewWindow *pv = new NCReportPreviewWindow();
                         pv->setOutput( (NCReportPreviewOutput*)report->output() );
                         pv->setWindowModality( Qt::ApplicationModal );
                         //pv->setAttribute( Qt::WA_DeleteOnClose );
                         pv->show();
                       }
                 }

            }
            break;

      case QMessageBox::Cancel:{
                  QMessageBox msgBox;
                  msgBox.setText("    Puede continuar ingresando transacciones   ");
                  msgBox.exec();
            }
            break;
       default:
            break;
    }

}
void DescargoBienesMB::on_finalizarTransaccion_pressed(){
    QMessageBox msgBox;
    msgBox.setText("Descargo de Bienes");
    msgBox.setInformativeText("¿Desea guardar y terminar la transaccion?");
    msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Cancel);

    msgBox.setDefaultButton(QMessageBox::Save);

    int ret = msgBox.exec();

    switch (ret) {
        case QMessageBox::Save:{

            QDateTime HoraFecha=QDateTime::currentDateTime();

            QString Horatran, Fechatran, observaciones, motivo;

            Horatran=HoraFecha.time().toString(Qt::ISODate);
            Fechatran=HoraFecha.date().toString(Qt::ISODate);
            observaciones=m_ui->observaciones->text();
            motivo=m_ui->motivo->text();

            servicioPersistencia=new Persistencia(this->regBasico->getUnidad()->id);

            this->estadoDescargo="finalizado";

            int codDescargo=servicioPersistencia->guardarDescargoBienes(Fechatran, Horatran,   observaciones,  motivo, "matbibliografico", m_ui->codigoDescargo->text(), this->estadoDescargo);

            for
            (
               map<int, Bien*>::iterator it = listaBienes.begin();
               it != listaBienes.end();
                ++it
            ){
                 servicioPersistencia->cambiaEstadoDescargadoMB(it->second);
                 //it->second->setDescargadoMB();
                 servicioPersistencia->crearlineaDescargoMB(it->second->oid, codDescargo);
            }

                  QMessageBox msgBox;
                  msgBox.information(0,"Descargo de Bienes","Descargado con exito!. ");

                  for(int i=m_ui->tablaBienes->rowCount() -1; i>=0; i--)
                  {
                      this->m_ui->tablaBienes->removeRow(i);
                  }
                  this->fila=0;
                  this->m_ui->finalizarTransaccion->setDisabled(true);

                  //CARGAR EL INVENTARIO
                 //this->inventario->cargarInventario(this->registroCatalogo, this->regBasico->getUnidad()->idInventario);

                     NCReport *report = new NCReport();
                     report->reset(true);
                     report->setReportSource( NCReportSource::File  );
                     report->setReportFile("Reportes/descargoBienesBiblio.xml");
                     report->addParameter( "idDescargo", QVariant(codDescargo) );

                     report->runReportToPreview();
                     QString error=report->lastErrorMsg();
                     std::cout<< error.toStdString();

                     NCReportPreviewWindow *pv = new NCReportPreviewWindow();
                     pv->setReport( report );
                     pv->setOutput( (NCReportPreviewOutput*) report->output() );
                     pv->setWindowModality(Qt::ApplicationModal );
                     pv->setAttribute( Qt::WA_DeleteOnClose );
                     pv->show();
                     this->close();

            }
            break;

      case QMessageBox::Cancel:{
                  QMessageBox msgBox;
                  QMessageBox::information(this,"Descargo de Bienes del Inventario","Puede continuar ingresando transacciones", QMessageBox::Ok);

            }
            break;
       default:
            break;
    }

}