Пример #1
0
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();
     }

}
Пример #2
0
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;
    }

}
Пример #3
0
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;
    }

}