extractoview1 Class Reference

Esta clase mantiene la generación de extractos contables. More...

#include <extractoview1.h>

Inheritance diagram for extractoview1:

FichaBc Ui_ExtractoBase Ficha BLWidget DBRecord dialogChanges QWidget PEmpresaBase

Public Slots

virtual void on_mui_actualizar_clicked ()
virtual void accept ()
 Esta función carga el cursor de cuentas que forman el todo por el todo.
virtual void boton_siguiente ()
 Esta es la función que avanza un registro entre las cuentas.
virtual void boton_anterior ()
 Esta es la función que retrocede un registro entre las cuentas.
virtual void boton_fin ()
 Avanza al final de las cuentas.
virtual void boton_inicio ()
 Retrocede al principio de las cuentas.
virtual void boton_imprimir ()
 Imprime el extracto.
virtual void boton_guardar ()
virtual void on_mui_borrapunteo_clicked ()
 Esta función borra todo el punteo de un extracto y lo pone a cero.
virtual void on_mui_casacion_clicked ()
 Realiza la casacion de los apuntes.
virtual void on_mui_guardarpunteo_clicked ()
 Guarda el punteo en disco para poder recuperarlo despues.
virtual void on_mui_cargarpunteos_clicked ()
 Carga los punteos desde un fichero de texto que se solicita mediante un QFileDialog.
virtual void on_mui_configurar_clicked ()
virtual void on_mui_list_cellDoubleClicked (int, int columna)

Public Member Functions

 extractoview1 (Empresa *, QWidget *parent=0, int flags=0)
 ~extractoview1 ()
 Destructor de la clase.
void inicializa1 (QString, QString, QString, QString, int)
void vaciar ()
 Limpia los totales.
void presentar ()
 Esta función se encarga de montar la consulta que va a hacer a la base de datos.
void ajustes ()
void boton_filtrar ()
QString imprimeExtractoCuenta (QString)
int guardar ()
 Guarda los datos de la ficha en la base de datos.
virtual void on_mui_imprimir_clicked ()
 Slot que responde a la Impresion del extracto.

Data Fields

cursor2m_cursorcta
 El extracto se realiza sobre un cursor que siempre está en memoria.

Detailed Description

Esta clase mantiene la generación de extractos contables.

A partir de esta pantalla se pueden llevar a cabo todos los temas de punteo y casación. Y acceso a filtrado. También desde esta pantalla se puede pedir más información de una cuenta determinada.

Definition at line 38 of file extractoview1.h.


Constructor & Destructor Documentation

extractoview1::extractoview1 ( Empresa emp,
QWidget parent = 0,
int  flags = 0 
)

Parameters:
emp 
parent 

Iniciamos los componentes

Iniciamos los componentes de la fecha para que al principio aparezcan como el año inicial.

Definition at line 50 of file extractoview1.cpp.

References _depura(), BusquedaCuenta::hideNombre(), Ui_ExtractoBase::m_codigofinal, Ui_ExtractoBase::m_codigoinicial, m_cursorcta, Ui_ExtractoBase::m_fechafinal1, Ui_ExtractoBase::m_fechainicial1, Ficha::meteWindow(), Ui_ExtractoBase::mui_codigocontrapartida, Ui_ExtractoBase::mui_list, Ficha::setDBTableName(), BusquedaCuenta::setEmpresaBase(), SubForm2Bc::setEmpresaBase(), BusquedaFecha::setText(), Ficha::setTitleName(), and Ui_ExtractoBase::setupUi().

00050                                                                : FichaBc(emp, parent) {
00051     _depura("extractoview1::extractoview1", 0);
00052     setupUi(this);
00053 
00054     setTitleName(tr("Extracto de Cuentas"));
00055     setDBTableName("apunte");
00056 
00057     mui_list->setEmpresaBase( emp );
00058 
00060     m_codigoinicial->setEmpresaBase( emp );
00061     m_codigofinal->setEmpresaBase( emp );
00062     mui_codigocontrapartida->setEmpresaBase( emp );
00063     m_codigoinicial->hideNombre();
00064     m_codigofinal->hideNombre();
00065 
00068     QString cadena;
00069     cadena.sprintf ( "%2.2d/%2.2d/%4.4d", 1, 1, QDate::currentDate().year() );
00070     m_fechainicial1->setText ( cadena );
00071     cadena.sprintf ( "%2.2d/%2.2d/%4.4d", 31, 12, QDate::currentDate().year() );
00072     m_fechafinal1->setText ( cadena );
00073     m_cursorcta = NULL;
00074     meteWindow ( windowTitle(), this );
00075     _depura ( "END extractoview1::extractoview1", 0 );
00076 }

extractoview1::~extractoview1 (  ) 

Destructor de la clase.

Definition at line 82 of file extractoview1.cpp.

References _depura(), FichaBc::empresaBase(), m_cursorcta, and EmpresaBase::sacaWindow().

00082                               {
00083     _depura ( "extractoview1::~extractoview1", 0 );
00084     delete m_cursorcta;
00085     empresaBase()->sacaWindow ( this );
00086     _depura ( "END extractoview1::~extractoview1", 0 );
00087 }


Member Function Documentation

void extractoview1::inicializa1 ( QString  codinicial,
QString  codfinal,
QString  fecha1,
QString  fecha2,
int   
)

Parameters:
codinicial 
codfinal 
fecha1 
fecha2 

Definition at line 421 of file extractoview1.cpp.

References _depura(), Ui_ExtractoBase::m_codigofinal, Ui_ExtractoBase::m_codigoinicial, Ui_ExtractoBase::m_fechafinal1, Ui_ExtractoBase::m_fechainicial1, normalizafecha(), BusquedaFecha::setText(), and BusquedaCuenta::setText().

Referenced by SubForm2Bc::boton_extracto1(), and BalanceTreeView::boton_extracto1().

00421                                                                                                             {
00422     _depura ( "extractoview1::inicializa1", 0 );
00423     m_codigoinicial->setText ( codinicial );
00424     m_codigofinal->setText ( codfinal );
00425     m_fechainicial1->setText ( normalizafecha ( fecha1 ).toString ( "dd/MM/yyyy" ) );
00426     m_fechafinal1->setText ( normalizafecha ( fecha2 ).toString ( "dd/MM/yyyy" ) );
00427     _depura ( "END extractoview1::inicializa1", 0 );
00428 }

void extractoview1::vaciar (  )  [virtual]

Limpia los totales.

Reimplemented from DBRecord.

Definition at line 250 of file extractoview1.cpp.

References _depura(), Ui_ExtractoBase::inicialdebe, Ui_ExtractoBase::inicialhaber, Ui_ExtractoBase::inicialsaldo, Ui_ExtractoBase::totaldebe, Ui_ExtractoBase::totalhaber, and Ui_ExtractoBase::totalsaldo.

00250                            {
00251     _depura ( "extractoview1::vaciar", 0 );
00252     inicialdebe->setText ( "0" );
00253     inicialhaber->setText ( "0" );
00254     inicialsaldo->setText ( "0" );
00255     totaldebe->setText ( "0" );
00256     totalhaber->setText ( "0" );
00257     totalsaldo->setText ( "0" );
00258     _depura ( "END extractoview1::vaciar", 0 );
00259 }

void extractoview1::presentar (  ) 

Esta función se encarga de montar la consulta que va a hacer a la base de datos.

Returns:

Preparamos el string para que aparezca una u otra cosa según el punteo.

Escribimos el nombre de la cuenta y el código de la misma.

Hacemos la consulta de los apuntes a listar en la base de datos.

Al igual que en el caso anterior los centros de coste han cambiado y aún no se pueden implementar.

Cargamos los saldos iniciales.

Establecemos los saldos iniciales

Recorremos la lista agregando el campo de saldo.

Liberamos memoria que pueda haber quedado reservada.

Definition at line 288 of file extractoview1.cpp.

References _depura(), ajustes(), cursor2::bof(), selectcanalview::cadcanal(), SelectCCosteView::cadcoste(), postgresiface2::cargacursor(), SubForm3::cargar(), Ui_ExtractoBase::codigocuenta, FichaBc::empresaBase(), cursor2::eof(), Empresa::getselcanales(), Empresa::getselccostes(), Ui_ExtractoBase::inicialdebe, Ui_ExtractoBase::inicialhaber, Ui_ExtractoBase::inicialsaldo, SubForm3::lineaat(), m_cursorcta, Ui_ExtractoBase::m_fechafinal1, Ui_ExtractoBase::m_fechainicial1, mensajeInfo(), Ui_ExtractoBase::mui_asAbiertos, Ui_ExtractoBase::mui_codigocontrapartida, Ui_ExtractoBase::mui_list, Ui_ExtractoBase::mui_punteopunteado, Ui_ExtractoBase::mui_punteotodos, Ui_ExtractoBase::nombrecuenta, cursor2::primerregistro(), SubForm3::setDBvalue(), cursor2::siguienteregistro(), BusquedaCuenta::text(), BusquedaFecha::text(), Fixed::toQString(), Ui_ExtractoBase::totaldebe, Ui_ExtractoBase::totalhaber, Ui_ExtractoBase::totalsaldo, and cursor2::valor().

Referenced by accept(), boton_anterior(), boton_fin(), boton_inicio(), boton_siguiente(), on_mui_borrapunteo_clicked(), on_mui_cargarpunteos_clicked(), and on_mui_casacion_clicked().

00288                               {
00289     _depura ( "extractoview1::presentar", 0 );
00290     Fixed debe("0.00"), haber("0.00"), saldo("0.00");
00291     Fixed debeinicial("0.00"), haberinicial("0.00"), saldoinicial("0.00");
00292     Fixed debefinal("0.00"), haberfinal("0.00"), saldofinal("0.00");
00293     QString idcuenta;
00294     QString finicial = m_fechainicial1->text();
00295     QString ffinal = m_fechafinal1->text();
00296     QString contra = mui_codigocontrapartida->text();
00297     QString cad;
00298     QString cadaux;
00299     cursor2 *cursorapt = NULL;
00300     cursor2 *cursoraux = NULL;
00301     try {
00303         QString tipopunteo;
00304         tipopunteo = "";
00305         if ( mui_punteotodos->isChecked() ) {
00306             tipopunteo = "";
00307         } else if ( mui_punteopunteado->isChecked() ) {
00308             tipopunteo = " AND punteo = TRUE ";
00309         } else {
00310             tipopunteo = " AND punteo = FALSE ";
00311         } // end if
00312 
00313 
00314         if ( m_cursorcta->eof() || m_cursorcta->bof() )
00315             return;
00316 
00317         idcuenta = m_cursorcta->valor ( "idcuenta" );
00319         codigocuenta->setText ( m_cursorcta->valor ( "codigo" ) );
00320         nombrecuenta->setText ( m_cursorcta->valor ( "descripcion" ) );
00322         QString query = "";
00325         selectcanalview *scanal = empresaBase()->getselcanales();
00326         SelectCCosteView *scoste = empresaBase()->getselccostes();
00327         QString ccostes = scoste->cadcoste();
00328         if ( ccostes != "" ) {
00329             ccostes.sprintf ( " AND idc_coste IN (%s) ", ccostes.toAscii().constData() );
00330         } // end if
00331         QString ccanales = scanal->cadcanal();
00332         if ( ccanales != "" ) {
00333             ccanales.sprintf ( " AND idcanal IN (%s) ", ccanales.toAscii().constData() );
00334         } // end if
00335         QString tabla;
00336         QString cont;
00337         if ( mui_asAbiertos->isChecked() ) {
00338             tabla = "borrador";
00339             cont = " FALSE AS punteo, * ";
00340         } else {
00341             tabla = "apunte";
00342             cont = " * ";
00343         } // end if
00344 
00345         if ( contra != "" ) {
00346             tipopunteo += " AND " + tabla + ".contrapartida = id_cuenta('" + contra + "') ";
00347         } // end if
00348 
00349         query = "SELECT * FROM ((SELECT " + cont + " FROM " + tabla + " WHERE  idcuenta = " + idcuenta + " AND fecha >= '" + finicial + "' AND fecha <= '" + ffinal + "' " + ccostes + " " + ccanales + " " + tipopunteo + ") AS t2 ";
00350         query += " LEFT JOIN (SELECT idcuenta AS idc, descripcion, codigo, tipocuenta FROM cuenta) AS t9 ON t2.idcuenta = t9.idc) AS t1";
00351         query += " LEFT JOIN asiento ON asiento.idasiento = t1.idasiento ";
00352         query += " LEFT JOIN (SELECT idc_coste AS idccoste, nombre AS nombrec_coste FROM c_coste) AS t5 ON t5.idccoste = t1.idc_coste ";
00353         query += " LEFT JOIN (SELECT idcanal AS id_canal, nombre AS nombrecanal FROM canal) AS t6 ON t6.id_canal = t1.idcanal ";
00354         query += " LEFT JOIN (SELECT idcuenta AS idcontrapartida, codigo AS codcontrapartida FROM cuenta) as t8 ON t8.idcontrapartida = t1.contrapartida";
00355         query += " ORDER BY t1.fecha, ordenasiento, t1.orden";
00356 
00357         mui_list->cargar ( query );
00358 
00359 
00360         cursorapt = empresaBase()->cargacursor ( query );
00361         cursorapt->primerregistro();
00362         if ( !cursorapt->eof() ) {
00364             query = "SELECT sum(debe) AS tdebe, sum(haber) AS thaber FROM apunte WHERE idcuenta =" + idcuenta + " AND fecha < '" + finicial + "'";
00365             cursoraux = empresaBase()->cargacursor ( query );
00366             if ( !cursoraux->eof() ) {
00367                 debeinicial = Fixed ( cursoraux->valor ( "tdebe" ) );
00368                 haberinicial = Fixed ( cursoraux->valor ( "thaber" ) );
00369                 saldoinicial = debeinicial - haberinicial;
00370             } // end if
00371             delete cursoraux;
00372             cursoraux = NULL;
00373 
00375             inicialdebe->setText ( debeinicial.toQString() );
00376             inicialhaber->setText ( haberinicial.toQString() );
00377             inicialsaldo->setText ( saldoinicial.toQString() );
00378             saldo = saldoinicial;
00379             debefinal = debeinicial;
00380             haberfinal = haberinicial;
00381 
00383             int i = 0;
00384             while ( !cursorapt->eof() ) {
00385                 debe = Fixed(cursorapt->valor ( "debe" ));
00386                 haber = Fixed ( cursorapt->valor ( "haber" ) );
00387                 saldo = saldo + debe - haber;
00388                 debefinal = debefinal + debe;
00389                 haberfinal = haberfinal + haber;
00390                 if (mui_list->lineaat(i)) 
00391                         mui_list->setDBvalue("saldo", i++, saldo.toQString());
00392                 cursorapt->siguienteregistro();
00393             } // end while
00394 
00395             saldofinal = debefinal - haberfinal;
00396             totaldebe->setText ( debefinal.toQString() );
00397             totalhaber->setText ( haberfinal.toQString() );
00398             totalsaldo->setText ( saldofinal.toQString() );
00399         } // end if
00400         delete cursorapt;
00401         cursorapt = NULL;
00402         ajustes();
00403     } catch (...) {
00404         mensajeInfo("Error en los calculos");
00406         if (cursorapt) delete cursorapt;
00407         if (cursoraux) delete cursoraux;
00408         return;
00409     } // end catch
00410     _depura ( "END extractoview1::presentar", 0 );
00411 }

void extractoview1::ajustes (  ) 

Definition at line 265 of file extractoview1.cpp.

References _depura().

Referenced by presentar().

00265                             {
00266     _depura("extractoview1::ajustes", 0);
00267     _depura("END extractoview1::ajustes", 0);
00268 }

void extractoview1::boton_filtrar (  ) 

QString extractoview1::imprimeExtractoCuenta ( QString  idcuenta  ) 

Parameters:
idcuenta 
Returns:

Preparamos el string para que aparezca una u otra cosa según el punteo.

Hacemos la consulta de los apuntes a listar en la base de datos.

Al igual que en el caso anterior los centros de coste han cambiado y aún no se pueden implementar.

Cargamos los saldos iniciales.

Presentamos la información inicial y de la cuenta.

Aqui va la impresion pero con cabeceras.

Definition at line 555 of file extractoview1.cpp.

References _depura(), selectcanalview::cadcanal(), SelectCCosteView::cadcoste(), postgresiface2::cargacursor(), FichaBc::empresaBase(), cursor2::eof(), Empresa::getselcanales(), Empresa::getselccostes(), Ui_ExtractoBase::m_fechafinal1, Ui_ExtractoBase::m_fechainicial1, Ui_ExtractoBase::mui_asAbiertos, Ui_ExtractoBase::mui_codigocontrapartida, Ui_ExtractoBase::mui_punteopunteado, Ui_ExtractoBase::mui_punteotodos, cursor2::siguienteregistro(), BusquedaCuenta::text(), BusquedaFecha::text(), Fixed::toQString(), and cursor2::valor().

Referenced by on_mui_imprimir_clicked().

00555                                                                 {
00556     _depura ( "extractoview1::imprimeExtractoCuenta", 0, idcuenta );
00557     QString salida = "";
00558     Fixed debeinicial ( "0" ), haberinicial ( "0" ), saldoinicial ( "0" );
00559     Fixed debefinal ( "0" ), haberfinal ( "0" ), saldofinal ( "0" );
00560     QString finicial = m_fechainicial1->text();
00561     QString ffinal = m_fechafinal1->text();
00562     QString contra = mui_codigocontrapartida->text();
00563 
00565     QString tipopunteo;
00566     tipopunteo = "";
00567     if ( mui_punteotodos->isChecked() ) {
00568         tipopunteo = "";
00569     } else if ( mui_punteopunteado->isChecked() ) {
00570         tipopunteo = " AND punteo = TRUE ";
00571     } else {
00572         tipopunteo = " AND punteo = FALSE ";
00573     } // end if
00574 
00575     if ( contra != "" ) {
00576         tipopunteo += " AND apunte.contrapartida = id_cuenta('" + contra + "') ";
00577     } // end if
00578 
00579     QString cad;
00580     QString cadaux;
00581     cursor2 *cursorapt;
00582 
00583     if ( idcuenta == "" )
00584         return "";
00585 
00587     QString query = "";
00590     selectcanalview *scanal = empresaBase()->getselcanales();
00591     SelectCCosteView *scoste = empresaBase()->getselccostes();
00592     QString ccostes = scoste->cadcoste();
00593     if ( ccostes != "" ) {
00594         ccostes.sprintf ( " AND idc_coste IN (%s) ", ccostes.toAscii().constData() );
00595     } // end if
00596     QString ccanales = scanal->cadcanal();
00597     if ( ccanales != "" ) {
00598         ccanales.sprintf ( " AND idcanal IN (%s) ", ccanales.toAscii().constData() );
00599     } // end if
00600     QString tabla;
00601     QString cont;
00602     if ( mui_asAbiertos->isChecked() ) {
00603         tabla = "borrador";
00604         cont = " FALSE AS punteo, * ";
00605     } else {
00606         tabla = "apunte";
00607         cont = " * ";
00608     } // end if
00609 
00610     query = "SELECT * FROM ((SELECT "+cont+" FROM " + tabla + " WHERE  idcuenta = " + idcuenta + " AND fecha >= '" + finicial + "' AND fecha <= '" + ffinal + "' " + ccostes + " " + ccanales + " " + tipopunteo + ") AS t2 LEFT JOIN cuenta ON t2.idcuenta = cuenta.idcuenta) AS t1 LEFT JOIN asiento ON asiento.idasiento = t1.idasiento ";
00611     query += " LEFT JOIN (SELECT idc_coste, nombre AS nombrec_coste FROM c_coste) AS t5 ON t5.idc_coste = t1.idc_coste ";
00612     query += " LEFT JOIN (SELECT idcanal, nombre AS nombrecanal FROM canal) AS t6 ON t6.idcanal = t1.idcanal ";
00613     query += " ORDER BY t1.fecha, ordenasiento, t1.orden";
00614 
00615     cursorapt=empresaBase()->cargacursor ( query );
00616 
00618     cursor2 *cursoraux;
00619     query = "SELECT sum(debe) AS tdebe, sum(haber) AS thaber FROM apunte WHERE idcuenta =" + idcuenta + " AND fecha < '" + finicial + "'";
00620     cursoraux = empresaBase()->cargacursor ( query );
00621     if ( !cursoraux->eof() ) {
00622         debeinicial = Fixed ( cursoraux->valor ( "tdebe" ) );
00623         haberinicial = Fixed ( cursoraux->valor ( "thaber" ) );
00624         saldoinicial = debeinicial - haberinicial;
00625         debefinal = debeinicial;
00626         haberfinal = haberinicial;
00627     } // end if
00628     delete cursoraux;
00629 
00631     cursor2 *cursorcta = empresaBase()->cargacursor ( "SELECT * FROM cuenta WHERE idcuenta="+idcuenta );
00632 
00633     salida += "<blockTable>\n";
00634     salida += "<tr>";
00635     salida += "<td> Codigo: "+cursorcta->valor ( "codigo" ) +" </td>";
00636     salida += "<td> Fecha Inicial: "+finicial+" </td>";
00637     salida += "<td> Fecha Final: "+ffinal+" </td>";
00638     salida += "<td> Debe Inicial: "+debeinicial.toQString() +" </td>";
00639     salida += "<td> Debe Final: "+haberinicial.toQString() +" </td>";
00640     salida += "</tr>";
00641     salida += "<tr>";
00642     salida += "<td> Cuenta: "+cursorcta->valor ( "descripcion" ) +" </td>";
00643     salida += "<td> </td>";
00644     salida += "<td> </td>";
00645     salida += "<td> </td>";
00646     salida += "<td> </td>";
00647     salida += "</tr>";
00648     salida += "</blockTable>\n";
00649     salida += "<spacer length=\"5mm\" width=\"1mm\"/>\n";
00650 
00651     delete cursorcta;
00653     salida += "<blockTable style=\"tabla\" repeatRows=\"1\">\n";
00654     salida += "<tr>\n";
00655     salida += "<td> Fecha </td>";
00656     salida += "<td> Asiento </td>";
00657     salida += "<td> Concepto </td>";
00658     salida += "<td> Debe </td>";
00659     salida += "<td> Haber </td>";
00660     salida += "<td> Saldo </td>";
00661     salida += "</tr>\n";
00662 
00663     while ( ! cursorapt->eof() ) {
00664         saldofinal = saldofinal + Fixed ( cursorapt->valor ( "debe" ) ) - Fixed ( cursorapt->valor ( "haber" ) );
00665         debefinal = debefinal + Fixed ( cursorapt->valor ( "debe" ) );
00666         haberfinal = haberfinal + Fixed ( cursorapt->valor ( "haber" ) );
00667 
00668         salida +=  "<tr>\n";
00669         salida +=  "<td>"+cursorapt->valor ( "fecha" ) +"</td>";
00670         salida +=  "<td>"+cursorapt->valor ( "orden" ) +"</td>";
00671         salida +=  "<td>"+cursorapt->valor ( "conceptocontable" ) +"</td>";
00672         salida +=  "<td>"+cursorapt->valor ( "debe" ) +"</td>";
00673         salida +=  "<td>"+cursorapt->valor ( "haber" ) +"</td>";
00674         salida +=  "<td>"+saldofinal.toQString() +"</td>";
00675         salida +=  "</tr>\n";
00676         cursorapt->siguienteregistro();
00677     } // end while
00678 
00679     salida += "</blockTable>\n";
00680 
00681     salida += "<spacer length=\"5mm\" width=\"1mm\"/>\n";
00682 
00683 
00684     salida += "<blockTable>\n";
00685     salida += "<tr>\n";
00686     salida += "<td> Debe Final: "+debefinal.toQString() +" </td>\n";
00687     salida += "<td> Haber Final: "+haberfinal.toQString() +" </td>\n";
00688     salida += "<td> Saldo Final: "+saldofinal.toQString() +"</td>\n";
00689     salida += "</tr>\n";
00690     salida += "</blockTable>\n";
00691 
00692     delete cursorapt;
00693     _depura ( "END extractoview1::imprimeExtractoCuenta", 0 );
00694     return salida;
00695 }

int extractoview1::guardar (  )  [virtual]

Guarda los datos de la ficha en la base de datos.

Este metodo guarda los contenidos de la Ficha (siempre que esta haya sido inicializada). Luego llama a plugins y a guardarPost por si se quieren hacer acciones adicionales de guardado. Tras guardar todos los elementos hace una carga.

Returns:
0 Si no hay problemas. -1 Si ha habido problemas.

Lanzamos los plugins.

Hacemos una carga para que se actualizen datos como la referencia.

Reimplemented from Ficha.

Definition at line 274 of file extractoview1.cpp.

References _depura(), SubForm3::guardar(), Ui_ExtractoBase::mui_asAbiertos, and Ui_ExtractoBase::mui_list.

Referenced by boton_anterior(), boton_fin(), boton_inicio(), and boton_siguiente().

00274                            {
00275     _depura ( "extractoview1::on_mui_guardar_clicked", 0 );
00276     if ( mui_asAbiertos->isChecked() ) return 0;
00277     mui_list->guardar();
00278     return 0;
00279     _depura ( "END extractoview1::on_mui_guardar_clicked", 0 );
00280 
00281 }

void extractoview1::on_mui_imprimir_clicked (  )  [virtual]

Slot que responde a la Impresion del extracto.

Copiamos el archivo.

Copiamos el logo

Si los datos de código inicial y final están vacios los ponemos nosotros.

Crea el pdf y lo muestra.

Reimplemented from Ficha.

Definition at line 702 of file extractoview1.cpp.

References _depura(), postgresiface2::cargacursor(), BusquedaCuenta::codigocuenta(), CONF_DIR_OPENREPORTS, CONF_DIR_USER, confpr, FichaBc::empresaBase(), cursor2::eof(), imprimeExtractoCuenta(), invocaPDF(), Ui_ExtractoBase::m_codigofinal, Ui_ExtractoBase::m_codigoinicial, cursor2::siguienteregistro(), cursor2::valor(), and configuracion::valor().

00702                                             {
00703     _depura ( "extractoview1::on_mui_imprimir_clicked", 0 );
00704 
00705     QString archivo = confpr->valor ( CONF_DIR_OPENREPORTS ) + "extracto.rml";
00706     QString archivod = confpr->valor ( CONF_DIR_USER ) + "extracto.rml";
00707     QString archivologo = confpr->valor ( CONF_DIR_OPENREPORTS ) + "logo.jpg";
00709 #ifdef WINDOWS
00710 
00711     archivo = "copy " + archivo + " " + archivod;
00712 #else
00713 
00714     archivo = "cp " + archivo + " " + archivod;
00715 #endif
00716 
00717     system ( archivo.toAscii().constData() );
00719 #ifdef WINDOWS
00720 
00721     archivologo = "copy " + archivologo + " " + confpr->valor ( CONF_DIR_USER ) + "logo.jpg";
00722 #else
00723 
00724     archivologo = "cp " + archivologo + " " + confpr->valor ( CONF_DIR_USER ) + "logo.jpg";
00725 #endif
00726 
00727     system ( archivologo.toAscii().constData() );
00728     QFile file;
00729     file.setFileName ( archivod );
00730     file.open ( QIODevice::ReadOnly );
00731     QTextStream stream ( &file );
00732     QString buff = stream.readAll();
00733     file.close();
00734     QString fitxersortidatxt = "";
00735 
00736     QString codinicial = m_codigoinicial->codigocuenta();
00737     QString codfinal = m_codigofinal->codigocuenta();
00738 
00739     QString query;
00742     if ( codinicial == "" ) {
00743         codinicial = "0";
00744     } // end if
00745     if ( codfinal == "" ) {
00746         codfinal = "9999999";
00747     } // end if
00748     query = "SELECT * FROM cuenta WHERE idcuenta IN (SELECT idcuenta FROM apunte) AND codigo >= '" + codinicial + "' AND codigo <= '" + codfinal + "' ORDER BY codigo";
00749     cursor2 *curcta = empresaBase()->cargacursor ( query );
00750     if (!curcta) return;
00751     while ( ! curcta->eof() ) {
00752         fitxersortidatxt += imprimeExtractoCuenta ( curcta->valor ( "idcuenta" ) );
00753         curcta->siguienteregistro();
00754         if ( ! curcta->eof() )
00755             fitxersortidatxt += "<nextFrame/><nextPage/>";
00756     }// end while
00757     delete curcta;
00758 
00759 
00760     buff.replace ( "[story]",fitxersortidatxt );
00761     if ( file.open ( QIODevice::WriteOnly ) ) {
00762         QTextStream stream ( &file );
00763         stream << buff;
00764         file.close();
00765     } // end if
00767     invocaPDF ( "extracto" );
00768     _depura ( "END extractoview1::on_mui_imprimir_clicked", 0 );
00769 }

void extractoview1::on_mui_actualizar_clicked (  )  [virtual, slot]

Definition at line 112 of file extractoview1.cpp.

References _depura(), and accept().

00112                                               {
00113     _depura("extractoview1::on_mui_actualizar_clicked", 0);
00114     accept();
00115     _depura("END extractoview1::on_mui_actualizar_clicked", 0);
00116 }

void extractoview1::accept (  )  [virtual, slot]

Esta función carga el cursor de cuentas que forman el todo por el todo.

Si los datos de código inicial y final están vacios los ponemos nosotros.

Definition at line 132 of file extractoview1.cpp.

References _depura(), postgresiface2::cargacursor(), BusquedaCuenta::codigocuenta(), FichaBc::empresaBase(), Ui_ExtractoBase::m_codigofinal, Ui_ExtractoBase::m_codigoinicial, m_cursorcta, and presentar().

Referenced by SubForm2Bc::boton_extracto1(), BalanceTreeView::boton_extracto1(), Empresa::boton_reload(), and on_mui_actualizar_clicked().

00132                            {
00133     _depura ( "extractoview1::accept", 0 );
00134     QString codinicial = m_codigoinicial->codigocuenta();
00135     QString codfinal = m_codigofinal->codigocuenta();
00136     QString query;
00139     if ( codinicial == "" ) {
00140         codinicial = "0";
00141     } // end if
00142     if ( codfinal == "" ) {
00143         codfinal = "9999999";
00144     } // end if
00145     query = "SELECT * FROM cuenta WHERE idcuenta IN (SELECT idcuenta FROM apunte) AND codigo >= '" + codinicial + "' AND codigo <= '" + codfinal + "' ORDER BY codigo";
00146 
00147     if ( m_cursorcta != NULL ) {
00148         delete m_cursorcta;
00149     } // end if
00150     m_cursorcta = empresaBase()->cargacursor ( query );
00151     presentar();
00152     _depura ( "END extractoview1::accept",0 );
00153 }

void extractoview1::boton_siguiente (  )  [virtual, slot]

Esta es la función que avanza un registro entre las cuentas.

Definition at line 159 of file extractoview1.cpp.

References _depura(), cursor2::esultimoregistro(), guardar(), m_cursorcta, presentar(), and cursor2::siguienteregistro().

Referenced by Empresa::boton_siguiente().

00159                                     {
00160     _depura ( "extractoview1::boton_siguiente", 0 );
00161     if ( m_cursorcta != NULL ) {
00162         if ( !m_cursorcta->esultimoregistro() ) {
00163             guardar();
00164             m_cursorcta->siguienteregistro();
00165             presentar();
00166         } // end if
00167     } // end if
00168     _depura ( "END extractoview1::boton_siguiente", 0 );
00169 }

void extractoview1::boton_anterior (  )  [virtual, slot]

Esta es la función que retrocede un registro entre las cuentas.

Definition at line 175 of file extractoview1.cpp.

References _depura(), cursor2::esprimerregistro(), guardar(), m_cursorcta, presentar(), and cursor2::registroanterior().

Referenced by Empresa::boton_anterior().

00175                                    {
00176     _depura ( "extractoview1::boton_anterior", 0 );
00177     if ( m_cursorcta != NULL ) {
00178         if ( !m_cursorcta->esprimerregistro() ) {
00179             guardar();
00180             m_cursorcta->registroanterior();
00181             presentar();
00182         } // end if
00183     } // end if
00184     _depura ( "END extractoview1::boton_anterior", 0 );
00185 }

void extractoview1::boton_fin (  )  [virtual, slot]

Avanza al final de las cuentas.

Definition at line 203 of file extractoview1.cpp.

References _depura(), guardar(), m_cursorcta, presentar(), and cursor2::ultimoregistro().

Referenced by Empresa::boton_ultimo().

00203                               {
00204     _depura ( "extractoview1::boton_fin", 0 );
00205     if ( m_cursorcta != NULL ) {
00206         guardar();
00207         m_cursorcta->ultimoregistro();
00208         presentar();
00209     } // end if
00210     _depura ( "END extractoview1::boton_fin", 0 );
00211 }

void extractoview1::boton_inicio (  )  [virtual, slot]

Retrocede al principio de las cuentas.

Definition at line 190 of file extractoview1.cpp.

References _depura(), guardar(), m_cursorcta, presentar(), and cursor2::primerregistro().

Referenced by Empresa::boton_primero().

00190                                  {
00191     _depura ( "extractoview1::boton_inicio", 0 );
00192     if ( m_cursorcta != NULL ) {
00193         guardar();
00194         m_cursorcta->primerregistro();
00195         presentar();
00196     } // end if
00197     _depura ( "END extractoview1::boton_inicio", 0 );
00198 }

void extractoview1::boton_imprimir (  )  [virtual, slot]

Imprime el extracto.

Definition at line 217 of file extractoview1.cpp.

References _depura(), FichaBc::empresaBase(), and print.

Referenced by Empresa::boton_imprimir().

00217                                    {
00218     _depura ( "extractoview1::boton_imprimir", 0 );
00219     ExtractoPrintView *print = new ExtractoPrintView ( empresaBase(), 0 );
00220     print->exec();
00221     _depura ( "END extractoview1::boton_imprimir", 0 );
00222 }

void extractoview1::boton_guardar (  )  [virtual, slot]

Definition at line 228 of file extractoview1.cpp.

References _depura(), CONF_DIR_USER, confpr, FichaBc::empresaBase(), Ui_ExtractoBase::m_codigofinal, Ui_ExtractoBase::m_codigoinicial, Ui_ExtractoBase::m_fechafinal1, Ui_ExtractoBase::m_fechainicial1, BusquedaCuenta::text(), BusquedaFecha::text(), and configuracion::valor().

Referenced by Empresa::boton_guardar().

00228                                   {
00229     _depura ( "extractoview1::boton_guardar", 0 );
00230     QString fn = QFileDialog::getSaveFileName ( this,
00231                  tr ( "Guardar libro diario" ),
00232                  confpr->valor ( CONF_DIR_USER ),
00233                  tr ( "Diarios (*.txt)" ) );
00234 
00235     if ( !fn.isEmpty() ) {
00236         libromayorprint libromayor(empresaBase());
00237         QString finicial = m_fechainicial1->text().toAscii().constData();
00238         QString ffinal = m_fechafinal1->text().toAscii().constData();
00239         libromayor.inicializa1 ( m_codigoinicial->text(), m_codigofinal->text(), finicial, ffinal );
00240         libromayor.inicializa2 ( ( char * ) fn.toAscii().constData() );
00241         libromayor.accept();
00242     } // end if
00243     _depura ( "END extractoview1::boton_guardar", 0 );
00244 }

void extractoview1::on_mui_borrapunteo_clicked (  )  [virtual, slot]

Esta función borra todo el punteo de un extracto y lo pone a cero.

Definition at line 498 of file extractoview1.cpp.

References _depura(), postgresiface2::begin(), postgresiface2::commit(), postgresiface2::ejecuta(), FichaBc::empresaBase(), and presentar().

00498                                                {
00499     _depura ( "extractoview1::on_mui_borrapunteo_clicked", 0 );
00500     int valor = QMessageBox::warning ( 0,
00501                                        tr ( "Borrar punteo" ),
00502                                        tr ( "Se dispone a borrar el punteo. Este cambio \
00503                                             es irrecuperable si no ha guardado su el punte. \
00504                                             Desea continuar?" ),
00505                                        QMessageBox::Yes, QMessageBox::No );
00506     if ( valor == QMessageBox::Yes ) {
00507         empresaBase()->begin()
00508         ;
00509         empresaBase()->ejecuta ( "UPDATE apunte SET punteo = FALSE" );
00510         empresaBase()->commit();
00511         presentar();
00512     } // end if
00513     _depura ( "END extractoview1::on_mui_borrapunteo_clicked", 0 );
00514 }

void extractoview1::on_mui_casacion_clicked (  )  [virtual, slot]

Realiza la casacion de los apuntes.

Definition at line 434 of file extractoview1.cpp.

References _depura(), postgresiface2::begin(), postgresiface2::cargacursor(), postgresiface2::commit(), postgresiface2::ejecuta(), FichaBc::empresaBase(), cursor2::eof(), m_cursorcta, presentar(), cursor2::siguienteregistro(), and cursor2::valor().

00434                                             {
00435     _depura ( "extractoview1::on_mui_casacion_clicked", 0 );
00436     QString query;
00437     query.sprintf ( "SELECT * FROM apunte WHERE punteo = FALSE AND haber <> 0 AND idcuenta = %s ORDER BY fecha", m_cursorcta->valor ( "idcuenta" ).toAscii().constData() );
00438     empresaBase()->begin();
00439     cursor2 *curshaber = empresaBase()->cargacursor ( query, "curshaber" );
00440     empresaBase()->commit();
00441     while ( !curshaber->eof() ) {
00442         query.sprintf ( "SELECT * FROM apunte WHERE punteo = FALSE AND debe = %s AND idcuenta = %s ORDER BY fecha", curshaber->valor ( "haber" ).toAscii().constData(), m_cursorcta->valor ( "idcuenta" ).toAscii().constData() );
00443         empresaBase()->begin();
00444         cursor2 *cursdebe = empresaBase()->cargacursor ( query.toAscii(), "cursdebe" );
00445         empresaBase()->commit();
00446         if ( !cursdebe->eof() ) {
00447             query.sprintf ( "UPDATE apunte set punteo = TRUE WHERE idapunte = %s", curshaber->valor ( "idapunte" ).toAscii().constData() );
00448             empresaBase()->begin();
00449             empresaBase()->ejecuta ( query );
00450             query.sprintf ( "UPDATE apunte SET punteo = TRUE WHERE idapunte = %s", cursdebe->valor ( "idapunte" ).toAscii().constData() );
00451             empresaBase()->ejecuta ( query );
00452             empresaBase()->commit();
00453         } // end if
00454         delete cursdebe;
00455         curshaber->siguienteregistro();
00456     } // end while
00457     delete curshaber;
00458     presentar();
00459     _depura ( "END extractoview1::on_mui_casacion_clicked", 0 );
00460 }

void extractoview1::on_mui_guardarpunteo_clicked (  )  [virtual, slot]

Guarda el punteo en disco para poder recuperarlo despues.

Definition at line 466 of file extractoview1.cpp.

References _depura(), postgresiface2::cargacursor(), CONF_DIR_USER, confpr, FichaBc::empresaBase(), cursor2::eof(), cursor2::siguienteregistro(), cursor2::valor(), and configuracion::valor().

00466                                                  {
00467     _depura ( "extractoview1::on_mui_guardarpunteo_clicked", 0 );
00468     QString fn = QFileDialog::getSaveFileName ( this,
00469                  tr ( "Guardar punteo" ),
00470                  confpr->valor ( CONF_DIR_USER ),
00471                  tr ( "Punteos (*.pto)" ) );
00472 
00473     if ( !fn.isEmpty() ) {
00474         FILE *mifile;
00475         mifile = fopen ( ( char * ) fn.toAscii().constData(), "wt" );
00476         if ( mifile != NULL ) {
00477             QString query;
00478             query = "SELECT * FROM apunte WHERE punteo = TRUE";
00479             cursor2 *cursp = empresaBase()->cargacursor ( query, "punteos" );
00480             while ( !cursp->eof() ) {
00481                 fprintf ( mifile,"%s\n", cursp->valor ( "idapunte" ).toAscii().constData() );
00482                 cursp->siguienteregistro();
00483             } // end while
00484             delete cursp;
00485             fclose ( mifile );
00486         } // end if
00487     } // end if
00488     _depura ( "END extractoview1::on_mui_guardarpunteo_clicked", 0 );
00489 }

void extractoview1::on_mui_cargarpunteos_clicked (  )  [virtual, slot]

Carga los punteos desde un fichero de texto que se solicita mediante un QFileDialog.

El fichero de punteos requiere que no se hayan modificado los identificadores de borrador. Para ello es preciso que no se hayan abierto y cerrado los asientos correspondientes ya que en dicho caso la carga del punteo no funciona correctamente.

Definition at line 522 of file extractoview1.cpp.

References _depura(), CONF_DIR_USER, confpr, postgresiface2::ejecuta(), FichaBc::empresaBase(), presentar(), and configuracion::valor().

00522                                                  {
00523     _depura ( "extractoview1::on_mui_cargarpunteos_clicked", 0 );
00524     QString fn = QFileDialog::getOpenFileName ( this,
00525                  tr ( "Cargar punteo" ),
00526                  confpr->valor ( CONF_DIR_USER ),
00527                  tr ( "Punteo (*.pto)" ) );
00528 
00529     if ( !fn.isEmpty() ) {
00530         QFile file ( fn );
00531         if ( !file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) {
00532             return;
00533         } // end if
00534         QTextStream filestr ( &file );
00535         QString a;
00536         empresaBase()->ejecuta ( "UPDATE apunte SET punteo = FALSE" );
00537         while ( !filestr.atEnd() ) {
00538             filestr >> a;
00539             QString query;
00540             query = "UPDATE apunte SET punteo = TRUE WHERE idapunte = "+ a;
00541             empresaBase()->ejecuta ( query );
00542         } // end while
00543         file.close();
00544     } // end if
00545     presentar();
00546     _depura ( "END extractoview1::on_mui_cargarpunteos_clicked", 0 );
00547 }

void extractoview1::on_mui_configurar_clicked (  )  [virtual, slot]

Definition at line 120 of file extractoview1.cpp.

References _depura(), Ui_ExtractoBase::mui_list, and SubForm3::showConfig().

00120                                               {
00121     _depura("extractoview1::on_mui_configurar_clicked", 0);
00122     mui_list->showConfig();
00123     _depura("END extractoview1::on_mui_configurar_clicked", 0);
00124 }

void extractoview1::on_mui_list_cellDoubleClicked ( int  ,
int  columna 
) [virtual, slot]

Parameters:
columna 

Definition at line 94 of file extractoview1.cpp.

References _depura(), SubForm3::cabecera(), SubForm3::DBvalue(), FichaBc::empresaBase(), Empresa::intapuntsempresa(), Empresa::muestraapuntes1(), Asiento1View::muestraasiento(), and Ui_ExtractoBase::mui_list.

00094                                                                   {
00095     _depura("asientosview::on_mui_list_cellDoubleClicked", 0);
00096     QString textoHeader;
00097     textoHeader =  mui_list->cabecera()->at(columna)->nomcampo().toAscii();
00098     if (textoHeader == "ordenasiento") {
00099         QString idasiento = mui_list->DBvalue("idasiento");
00100         empresaBase()->intapuntsempresa()->muestraasiento(idasiento);
00101         empresaBase()->intapuntsempresa()->show();
00102         empresaBase()->intapuntsempresa()->setFocus();
00103         empresaBase()->muestraapuntes1();
00104     } // end if
00105     _depura("END asientosview::on_mui_list_cellDoubleClicked", 0);
00106 }


Field Documentation

cursor2* extractoview1::m_cursorcta

El extracto se realiza sobre un cursor que siempre está en memoria.

Definition at line 43 of file extractoview1.h.

Referenced by accept(), boton_anterior(), boton_fin(), boton_inicio(), boton_siguiente(), extractoview1(), on_mui_casacion_clicked(), presentar(), and ~extractoview1().


The documentation for this class was generated from the following files:
Generated on Sat Dec 15 00:01:52 2007 for BulmaGes by  doxygen 1.5.1