DiarioPrintView Class Reference

Declaramos la clase empresa como amiga para que la compilació no sea complicada. More...

#include <diarioprintview.h>

Inheritance diagram for DiarioPrintView:

QDialog Ui_DiarioPrintBase PEmpresaBase

Public Slots

virtual void accept ()
 Se ha pulsado sobre el botón aceptar del formulario.

Public Member Functions

 DiarioPrintView (Empresa *emp, QWidget *parent)
 Puntero al filtrado de datos.
 ~DiarioPrintView ()
void presentar (char *tipus="html")

Data Fields

int numdigitos

Private Member Functions

QString montaQuery ()

Detailed Description

Declaramos la clase empresa como amiga para que la compilació no sea complicada.

Es la ventana de impresió de diarios.

Definition at line 43 of file diarioprintview.h.


Constructor & Destructor Documentation

DiarioPrintView::DiarioPrintView ( Empresa emp,
QWidget parent 
)

Puntero al filtrado de datos.

Establece cual es la ventana de filtro de diario. Es imprescindible inicializar el filtro antes de mostrar la ventana o el botón de filtro no funcionará.

Definition at line 41 of file diarioprintview.cpp.

References _depura(), PEmpresaBase::empresaBase(), numdigitos, and Ui_DiarioPrintBase::setupUi().

00042         : QDialog(parent), PEmpresaBase(emp) {
00043     _depura("DiarioPrintView::DiarioPrintView", 0);
00044     setupUi(this);
00045     numdigitos = ((Empresa *)empresaBase())->numdigitosempresa();
00046     _depura("END DiarioPrintView::DiarioPrintView", 0);
00047 }

DiarioPrintView::~DiarioPrintView (  ) 

Definition at line 53 of file diarioprintview.cpp.

References _depura().

00053                                   {
00054     _depura("DiarioPrintView::~DiarioPrintView", 0);
00055     _depura("END DiarioPrintView::~DiarioPrintView", 0);
00056 }


Member Function Documentation

void DiarioPrintView::presentar ( char *  tipus = "html"  ) 

Parameters:
tipus 

Tipo de presentación.

Cogemos los valores del formulario.

Creamos los archivos de salida.

Verificamos que se hayan creado correctamente los archivos.

Sólo continuamos se hemos podido crear algún archivo.

Presentación txt normal.

Presentación html normal.

Presentación txt normal.

Presentació html normal.

Presentación html normal.

Presentació txt normal.

Presentació html normal.

Creamos los archivos de salida.

Verificamos que se hayan podido crear correctamente los archivos.

Se puede mejorar el tratamiento de errores.

Sólo continuamos si hemos podido crear algún archivo.

Presentación txt formato aprendizaje.

Presentación html formato aprendizaje.

Presentación txt formato aprendizaje.

Presentación html formato aprendizaje.

Presentación txt formato aprendizaje.

Presentación html formato aprendizaje.

Presentación txt formato aprendizaje.

Presentación html formato aprendizaje.

Presentación txt formato aprendizaje.

Presentación html formato aprendizaje.

Definition at line 131 of file diarioprintview.cpp.

References _depura(), postgresiface2::begin(), postgresiface2::cargaasientosfecha(), postgresiface2::cargacursor(), postgresiface2::commit(), CONF_EDITOR, CONF_NAVEGADOR, CONF_PLANTILLA, confpr, diario, PEmpresaBase::empresaBase(), cursor2::eof(), montaQuery(), cursor2::siguienteregistro(), cursor2::valor(), and configuracion::valor().

Referenced by accept().

00131                                            {
00132     _depura("DiarioPrintView::presentar", 0);
00133     DiarioView *diario = ((Empresa *)empresaBase())->diarioempresa();
00134     int txt, html, txtapren, htmlapren;
00135     float debe, haber;
00136     int idcuenta;
00137     int idasiento;
00138     char data[15];
00139     string fecha;
00140     string fechaasiento;
00141     string descripcion;
00142     string concepto;
00143     string codigocuenta;
00144     string cad;
00145     cursor2 *cursoraux;
00146 
00148     txt =! strcmp(tipus, "txt");
00149     html =! strcmp(tipus, "html");
00150     txtapren =! strcmp(tipus, "txtapren");
00151     htmlapren =! strcmp(tipus, "htmlapren");
00152 
00154     QString finicial = diario->mui_fechainicial->text();
00155     QString ffinal = diario->mui_fechafinal->text();
00156 
00157     if (txt | html) {
00159         ofstream fitxersortidatxt("diario.txt");
00160         ofstream fitxersortidahtml("diario.html");
00161 
00162         if (!fitxersortidatxt) {
00164             txt = 0;
00165         } // end if
00166         if (!fitxersortidahtml) {
00167             html = 0;
00168         } // end if
00169 
00170         if (txt | html) {
00172             if (txt) {
00174                 fitxersortidatxt.setf(ios::fixed);
00175                 fitxersortidatxt.precision(2);
00176                 fitxersortidatxt << "                                        LLIBRE DIARI \n" ;
00177                 fitxersortidatxt << "Data Inicial: " << finicial.toAscii().constData() << "   Data Final: " << ffinal.toAscii().constData() << endl;
00178                 fitxersortidatxt << "ASIENTO   FECHA    SUBCUENTA   DESCRIPCION                                   DEBE     HABER \n" ;
00179                 fitxersortidatxt << "_______________________________________________________________________________________________\n";
00180             } // end if
00181             if (html) {
00183                 fitxersortidahtml.setf(ios::fixed);
00184                 fitxersortidahtml.precision(2);
00185                 fitxersortidahtml << "<html>\n";
00186                 fitxersortidahtml << "<head>\n";
00187                 fitxersortidahtml << "  <!DOCTYPE / public \"-//w3c//dtd xhtml 1.0 transitional//en\"\n";
00188                 fitxersortidahtml << "    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
00189                 fitxersortidahtml << "  <LINK REL=StyleSheet HREF=\"" << confpr->valor(CONF_PLANTILLA).toAscii().constData() <<"\" TYPE=\"text/css\" MEDIA=screen>\n";
00190                 fitxersortidahtml << "  <title> Llibre Diari </title>\n";
00191                 fitxersortidahtml << "</head>\n";
00192                 fitxersortidahtml << "<body>\n";
00193                 fitxersortidahtml << "<table><tr><td colspan=\"6\" class=titoldiari> Llibre diari <hr></td></tr>\n\n";
00194                 fitxersortidahtml << "<tr><td colspan=\"6\" class=periodediari> Data Inicial: " << finicial.toAscii().constData() << " -  Data Final: " << ffinal.toAscii().constData() << "<hr></td></tr>\n\n";
00195                 fitxersortidahtml << "<tr><td class=titolcolumnadiari>Assentament</td><td class=titolcolumnadiari>Data</td><td class=titolcolumnadiari>Subcompte</td><td class=titolcolumnadiari>Descripció</td><td class=titolcolumnadiari>Deure</td><td class=titolcolumnadiari>Haver</td></tr>\n";
00196             } // end if
00197             QString query = montaQuery();
00198             empresaBase()->begin();
00199             cursoraux = empresaBase()->cargacursor(query, "elquerydb");
00200             empresaBase()->commit();
00201 
00202             for (; !cursoraux->eof(); cursoraux->siguienteregistro()) {
00203                 fechaasiento = cursoraux->valor("fechaasiento").toAscii().constData();
00204                 idasiento = atoi(cursoraux->valor("ordenasiento").toAscii());
00205                 fecha = cursoraux->valor("fecha").toAscii().constData();
00206                 descripcion = cursoraux->valor("descripcion").toAscii().constData();
00207                 concepto = cursoraux->valor("conceptocontable").toAscii().constData();
00208                 debe = atof(cursoraux->valor("debe").toAscii());
00209                 haber = atof(cursoraux->valor("haber").toAscii());
00210                 idcuenta = atoi(cursoraux->valor("idcuenta").toAscii());
00211                 codigocuenta = cursoraux->valor("codigocuenta").toAscii().constData();
00212                 strncpy(data,fecha.c_str(), 10);
00213                 data[10] = '\0';
00214                 if (txt) {
00216                     fitxersortidatxt << setw(5) << idasiento << "  " << setw(10) << data << " " << setw(10) << codigocuenta.c_str() <<  "  " << setw(40) <<  setiosflags(ios::left) << descripcion.c_str() <<  resetiosflags(ios::left)<< " " << setw(10) << debe << " " << setw(10) << haber << endl;
00217                 } // end if
00218                 if (html) {
00220                     fitxersortidahtml << "<tr><td class=assentamentdiari>" << idasiento << "</td><td class=datadiari>" << data << "</td><td class=codicomptediari>" << codigocuenta.c_str() << "</td><td class=descripciodiari>" <<  descripcion.c_str() << "</td><td class=dosdecimals>" << debe << "</td><td class=dosdecimals>" << haber << "</td></tr>\n";
00221                 } // end if
00222             } // end for
00223             delete cursoraux;
00224             if (html) {
00226                 fitxersortidahtml << "</table>\n<hr>\n</body>\n</html>\n";
00227                 fitxersortidahtml.close();
00228             } // end if
00229             if (txt) {
00230                 fitxersortidatxt << "_______________________________________________________________________________________________\n";
00231                 fitxersortidatxt.close();
00232             } // end if
00233         } // end if
00234         if (txt) {
00236             QString cadaux = confpr->valor(CONF_EDITOR) + " diairo.txt";
00237             system(cadaux.toAscii());
00238         }
00239         if (html) {
00241             QString cadaux = confpr->valor(CONF_NAVEGADOR) + " diario.html";
00242             system(cadaux.toAscii());
00243         } // end if
00244     } // end if
00245     if (txtapren | htmlapren ) {
00246         char *argstxt[] = {"diariaprenentatge.txt", "diariaprenentatge.txt", NULL};
00247         char *argshtml[] = {"diariaprenentatge.html", "diariaprenentatge.html", NULL};
00249         ofstream fitxersortidatxt(argstxt[0]);
00250         ofstream fitxersortidahtml(argshtml[0]);
00251 
00252         if (!fitxersortidatxt) {
00254             txtapren = 0;
00255         } // end if
00256         if (!fitxersortidahtml) {
00258             htmlapren = 0;
00259         } // end if
00260         if (txtapren | htmlapren) {
00262             if (txtapren) {
00264                 fitxersortidatxt.setf(ios::fixed)
00265                     ;
00266                 fitxersortidatxt.precision(2);
00267                 fitxersortidatxt << "                                                      LLIBRE DIARI \n" ;
00268                 fitxersortidatxt << "Data Inicial: " << finicial.toAscii().constData() << "   Data Final: " << ffinal.toAscii().constData() << endl;
00269                 fitxersortidatxt << "___________________________________________________________________________________________________________________________________\n";
00270             } // end if
00271             if (htmlapren) {
00273                 fitxersortidahtml.setf(ios::fixed)
00274                     ;
00275                 fitxersortidahtml.precision(2);
00276                 fitxersortidahtml << "<html>\n";
00277                 fitxersortidahtml << "<head>\n";
00278                 fitxersortidahtml << "  <!DOCTYPE / public \"-//w3c//dtd xhtml 1.0 transitional//en\"\n";
00279                 fitxersortidahtml << "    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
00280                 fitxersortidahtml << "  <LINK REL=StyleSheet HREF=\"estils.css\" TYPE=\"text/css\" MEDIA=screen>\n";
00281                 fitxersortidahtml << "  <title> Llibre Diari </title>\n";
00282                 fitxersortidahtml << "</head>\n";
00283                 fitxersortidahtml << "<body>\n";
00284                 fitxersortidahtml << "<table><tr><td colspan=\"7\" class=titoldiariapren> Llibre diari <hr></td></tr>\n\n";
00285                 fitxersortidahtml << "<tr><td colspan=\"7\" class=periodediariapren> Data Inicial: " << finicial.toAscii().constData() << " -  Data Final: " << ffinal.toAscii().constData() << "<hr></td></tr>\n\n";
00286             } // end if
00287             empresaBase()->begin();
00288             cursoraux = empresaBase()->cargaasientosfecha((char *)finicial.toAscii().constData(), (char *)ffinal.toAscii().constData());
00289 
00290             for (; !cursoraux->eof(); cursoraux->siguienteregistro()) {
00291                 int idasiento = atoi(cursoraux->valor("idasiento").toAscii());
00292                 if (txtapren) {
00294                     fitxersortidatxt << "_________________________________________________________   " << idasiento << "   ___________________________________________________________________\n";
00295                 } // end if
00296                 if (htmlapren) {
00298                     fitxersortidahtml << "\n<tr><td colspan=\"7\" class=liniadiariapren>____________________________________________________   " << idasiento << "   _____________________________________________________</td></tr>\n" ;
00299                 } // end if
00300                 char consulta[400];
00301                 char codicompte[20];
00302                 sprintf(consulta,"SELECT cuenta.codigo, cuenta.descripcion AS nomcuenta, apunte.debe AS debe, apunte.haber AS haber FROM apunte, cuenta WHERE apunte.idasiento=%d AND apunte.haber=0 AND cuenta.idcuenta=apunte.idcuenta",idasiento);
00303                 empresaBase()->begin();
00304                 cursor2 *cursasiento = empresaBase()->cargacursor(consulta,"asiento");
00305                 empresaBase()->commit();
00306 
00307                 while (!cursasiento->eof()) {
00308                     if (txtapren) {
00310                         sprintf(codicompte,"( %s )",cursasiento->valor("codigo").toAscii().constData());
00311                         fitxersortidatxt << setw(12) << atof(cursasiento->valor("debe").toAscii()) << "  " << setw(10) << codicompte << "  " << cursasiento->valor("nomcuenta").toAscii().constData() << endl;
00312                     } // end if
00313                     if (htmlapren) {
00315                         fitxersortidahtml << " <tr><td class=deurediariapren> " << atof(cursasiento->valor("debe").toAscii()) << " </td><td class=codidiariapren> ( " << cursasiento->valor("codigo").toAscii().constData() << " ) </td><td class=nomcomptediariapren> " << cursasiento->valor("nomcuenta").toAscii().constData() << " </td><td> </td><td> </td><td> </td><td> </td></tr>\n";
00316                     } // end if
00317                     cursasiento->siguienteregistro();
00318                 } // end while
00319 
00320                 delete cursasiento;
00321                 sprintf(consulta, "SELECT cuenta.codigo, cuenta.descripcion AS nomcuenta, apunte.debe AS debe, apunte.haber AS haber FROM apunte, cuenta WHERE apunte.idasiento = %d AND apunte.debe = 0 AND cuenta.idcuenta = apunte.idcuenta", idasiento);
00322                 empresaBase()->begin();
00323                 cursasiento = empresaBase()->cargacursor(consulta, "asiento");
00324                 empresaBase()->commit();
00325 
00326                 while (!cursasiento->eof()) {
00327                     if (txtapren) {
00329                         sprintf(codicompte, "( %s )", cursasiento->valor("codigo").toAscii().constData());
00330                         fitxersortidatxt << "                                                                 a  " << setw(30) << cursasiento->valor("nomcuenta").toAscii().constData() << "  " << setw(10) << codicompte << "  " << setw(12) <<  atof(cursasiento->valor("haber").toAscii()) <<endl;
00331                     } // end if
00332                     if (htmlapren) {
00334                         fitxersortidahtml << " <tr><td> </td><td> </td><td> </td><td class=adiariapren>  a  </td><td class=nomcomptediariapren> " << cursasiento->valor("nomcuenta").toAscii().constData() << " </td><td class=codidiariapren> ( " << cursasiento->valor("codigo").toAscii().constData() << " ) </td><td class=haverdiariapren> " <<  atof(cursasiento->valor("haber").toAscii()) << " </td></tr>\n";
00335                     } // end if
00336                     cursasiento->siguienteregistro();
00337                 } // end while
00338                 delete cursasiento;
00339             } // end for
00340 
00341             delete cursoraux;
00342             empresaBase()->commit();
00343 
00344             if (txtapren) {
00345                 fitxersortidatxt << "____________________________________________________________________________________________________________________________________\n" ;//presentació text format aprenentatge
00346                 fitxersortidatxt.close();
00347             } // end if
00348             if (htmlapren) {
00349                 fitxersortidahtml << "<tr><td colspan=\"7\"  class=liniadiariapren>\n_____________________________________________________________________________________________________________\n<hr></td></tr>\n</table>\n</body></html>\n";     //presentació html format aprenentatge
00350                 fitxersortidahtml.close();
00351             } // end if
00352             if (txtapren) {
00354                 QString cadaux = confpr->valor(CONF_EDITOR) + " diario.txt";
00355                 system(cadaux.toAscii());
00356             } // end if
00357             if (htmlapren) {
00359                 QString cadaux = confpr->valor(CONF_NAVEGADOR) + " diario.txt";
00360                 system(cadaux.toAscii());
00361             } // end if
00362         } // end if
00363     } // end if
00364     _depura("END DiarioPrintView::presentar", 0);
00365 }

QString DiarioPrintView::montaQuery (  )  [private]

Returns:

Consideraciones para centros de coste y canales.

Definition at line 65 of file diarioprintview.cpp.

References _depura(), selectcanalview::cadcanal(), SelectCCosteView::cadcoste(), diario, and PEmpresaBase::empresaBase().

Referenced by presentar().

00065                                     {
00066     _depura("DiarioPrintView::montaQuery", 0);
00067     DiarioView *diario = ((Empresa *)empresaBase())->diarioempresa();
00068     QString query;
00069     QString fecha;
00070     QString fechaasiento;
00071     QString descripcion;
00072     QString concepto;
00073     QString codigocuenta;
00074     QString nomcuenta;
00075     QString cadaux;
00076     QString finicial = diario->mui_fechainicial->text();
00077     QString ffinal = diario->mui_fechafinal->text();
00078     QString cad;
00079 
00081     selectcanalview *scanal = ((Empresa *)empresaBase())->getselcanales();
00082     SelectCCosteView *scoste = ((Empresa *)empresaBase())->getselccostes();
00083     QString ccostes = scoste->cadcoste();
00084     if (ccostes != "") {
00085         ccostes.sprintf(" AND idc_coste IN (%s) ", ccostes.toAscii().constData());
00086     } // end if
00087     QString ccanales = scanal->cadcanal();
00088     if (ccanales != "") {
00089         ccanales.sprintf(" AND idcanal IN (%s) ", ccanales.toAscii().constData());
00090     } // end if
00091     QString tabla;
00092     if (diario->mui_asAbiertos->isChecked()) {
00093         tabla = "borrador";
00094     } else {
00095         tabla = "apunte";
00096     } // end if
00097     query = "SELECT asiento.ordenasiento, " + tabla + ".contrapartida, " + tabla + ".fecha, asiento.fecha AS fechaasiento,cuenta.tipocuenta, cuenta.descripcion, "+tabla+".conceptocontable,"+tabla+".descripcion AS descapunte, to_char("+tabla+".debe,'MI999G999G990D99') AS debe, to_char("+tabla+".haber,'MI999G999G990D99') AS haber, cuenta.idcuenta, asiento.idasiento, "+tabla+".idc_coste, "+tabla+".idcanal, cuenta.codigo AS codigocuenta FROM asiento, "+tabla+", cuenta WHERE asiento.idasiento="+tabla+".idasiento AND "+tabla+".idcuenta = cuenta.idcuenta AND "+tabla+".fecha >= '"+finicial+"' AND "+tabla+".fecha <= '" + ffinal + "' " + ccostes + " " + ccanales + " ORDER BY asiento.ordenasiento, " + tabla + ".orden";
00098     _depura("END DiarioPrintView::montaQuery", 0);
00099     return query;
00100 }

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

Se ha pulsado sobre el botón aceptar del formulario.

Versión por si sólo permitimos elegir una opción.

Definition at line 107 of file diarioprintview.cpp.

References _depura(), presentar(), Ui_DiarioPrintBase::radioaprendizaje, Ui_DiarioPrintBase::radiohtml, Ui_DiarioPrintBase::radionormal, and Ui_DiarioPrintBase::radiotexto.

00107                              {
00108     _depura("DiarioPrintView::accept", 0);
00110     if (radiotexto->isChecked()) {
00111         if (radionormal->isChecked()) {
00112             presentar("txt");
00113         } else if (radioaprendizaje->isChecked()) {
00114             presentar("txtapren");
00115         } // end if
00116     } else if (radiohtml->isChecked()) {
00117         if (radionormal->isChecked()) {
00118             presentar("html");
00119         } else if (radioaprendizaje->isChecked()) {
00120             presentar("htmlapren");
00121         } // end if
00122     } // end if
00123     _depura("END DiarioPrintView::accept", 0);
00124 }


Field Documentation

int DiarioPrintView::numdigitos

Definition at line 47 of file diarioprintview.h.

Referenced by DiarioPrintView().


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