#include <diarioprintview.h>
Inheritance diagram for DiarioPrintView:

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 () |
Es la ventana de impresió de diarios.
Definition at line 43 of file diarioprintview.h.
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 }
| void DiarioPrintView::presentar | ( | char * | tipus = "html" |
) |
| 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] |
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 }
1.5.1