/*! * \fn VCuentaCorriente::listadoDeudor() * Imprime el listado de cuentas corrientes deudoras */ void VCuentaCorriente::listadoDeudor() { EReporte *rep = new EReporte( 0 ); rep->especial( "ListadoCtaCteSaldo", ParameterList() ); rep->hacer(); 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; } }
void FormFacturacionEmitida::imprimirListadoGeneral() { // Busco el id que está del servicio EReporte *rep = new EReporte( 0 ); ParameterList lista; lista.append( "id_servicio", CBServicio->idActual() ); if( ERegistroPlugins::getInstancia()->existePluginExterno( "hicomp" ) ) { rep->especial( "ListaDeudoresServicioHC", lista ); } else { rep->especial( "ListaDeudoresServicio", lista ); } rep->hacer(); delete rep; }
/*! \fn FormResumenCtaCte::imprimir() */ void FormResumenCtaCte::imprimir() { if( modeloItem->rowCount() <= 0 ) { QMessageBox::warning( this, "Error", "No hay ningun movimiento para la cuenta corriente. No se imprimira nada" ); return; } // Busco la cuenta? ParameterList lista; lista.append( Parameter( "ctacte", CBClienteCtaCte->itemData( CBClienteCtaCte->currentIndex(), Qt::UserRole ).toString() ) ); lista.append( Parameter( "filtro", this->_filtro ) ); EReporte *rep = new EReporte( 0 ); rep->especial( "ResumenCtaCte", lista ); if( ! rep->hacer() ) { QMessageBox::warning( this, "Error", "No se pudo imprimir el resumen de cuenta corriente" ); } delete rep; rep = 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; }
/*! * @fn MClientesServicios::darDeBaja( int id_cliente, int id_servicio, QString razon ) * Da de baja al cliente seleccionado segun la razon espcificada * Si no se especifica una razon, se coloca una predeterminada. * La fecha de baja es cuando se realiza la operación. * Si la baja se realizo correctamente, se imprime el comprobante de baja. El no imprimirlo, no modifica el resultado. * \param id_cliente Identificador del cliente. * \param id_servicio Identificador del servicio. * \param razon Texto de por que da de baja el servicio. * \return Verdadero se pudo realizar la baja. */ bool MClientesServicios::darDeBaja( int id_cliente, int id_servicio, QString razon ) { // Verificar existencia de la asociacion QSqlQuery cola; if( !cola.exec( QString( "SELECT COUNT(id_cliente) FROM servicios_clientes WHERE id_cliente = %1 AND id_servicio = %2" ).arg( id_cliente ).arg( id_servicio ) ) ) { qDebug( "Error al ejecutar la cola de obtencion de lciente servicio." ); qDebug( cola.lastError().text().toLocal8Bit() ); qDebug( cola.lastQuery().toLocal8Bit() ); } else { if( !cola.next() ) { qDebug( "Error al hacer next en la cola de obtencion del cliente servicio" ); qDebug( cola.lastError().text().toLocal8Bit() ); qDebug( cola.lastQuery().toLocal8Bit() ); return false; } else { if( cola.record().value(0).toInt() <= 0 ) { qWarning( "El cliente seleccionado no esta adherido al servicio especificado" ); qDebug( cola.lastError().text().toLocal8Bit() ); qDebug( cola.lastQuery().toLocal8Bit() ); return false; } } } // Existe // verificar deudas existentes respecto a servicios if( MCobroServicioClientePeriodo::esDeudor( id_cliente, id_servicio ) ) { QMessageBox::warning( 0, "Saldo incompleto", "El cliente todavía tiene cuotas pendientes de pago. <br/> No se podrá realizar la baja hasta que se paguen las deudas pendientes" ); return false; } // verificar fecha respecto al periodo del servicio y facturar lo que falte ? ( ya esta echo por el punto anterior ) // Verificar la razon if( razon.isEmpty() ) { qDebug( "Razon de baja de adhesion desconocida. Colocando la default." ); razon = "Desconocida - No Especificada."; } // Ingresar baja QSqlQuery cola2; if( !cola2.prepare( QString( "UPDATE servicios_clientes SET fecha_baja = :fecha, razon = :razon WHERE id_cliente = %1 AND id_servicio = %2" ) .arg( id_cliente ).arg( id_servicio ) ) ) { qDebug( "Error al preparar la cola" ); qDebug( cola2.lastError().text().toLocal8Bit() ); qDebug( cola2.lastQuery().toLocal8Bit() ); return false; } cola2.bindValue( ":fecha" , QDate::currentDate() ); cola2.bindValue( ":razon", razon ); /*cola2.bindValue( ":id_cliente", id_cliente ); cola2.bindValue( ":id_servicio", id_servicio );*/ if( !cola2.exec() ) { qDebug( "Error al ejecutar la cola de insercion de fecha de baja y razon en la tabla de servicios_clientes" ); qDebug( cola2.lastError().text().toLocal8Bit() ); qDebug( cola2.lastQuery().toLocal8Bit() ); return false; } else { qDebug( cola2.lastError().text().toLocal8Bit() ); qDebug( cola2.lastQuery().toLocal8Bit() ); } // Imprimir comprobante de baja EReporte *rep = new EReporte( 0 ); ParameterList parametros; parametros.append( Parameter( "id_cliente", id_cliente ) ); parametros.append( Parameter( "id_servicio", id_servicio ) ); parametros.append( Parameter( "razon", razon ) ); parametros.append( Parameter( "fecha", QDate::currentDate() ) ); rep->especial( "baja-servicio", parametros ); rep->hacer(); delete rep; return true; }