/*! * \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; } }
/*! * \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; } }
/*! \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; }