regivaprintview Class Reference

#include <regivaprintview.h>

Inheritance diagram for regivaprintview:

QDialog Ui_RegIvaPrintBase PEmpresaBase

Public Slots

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

Public Member Functions

 regivaprintview (Empresa *, QWidget *parent=0)
 ~regivaprintview ()
void inicializa1 (QString, QString)
void presentar (char *tipus)
 Se ha pulsado sobre el botón aceptar del formulario.

Data Fields

char * fichero

Detailed Description

Definition at line 43 of file regivaprintview.h.


Constructor & Destructor Documentation

regivaprintview::regivaprintview ( Empresa emp,
QWidget parent = 0 
)

Parameters:
emp 
parent 

Definition at line 41 of file regivaprintview.cpp.

References _depura(), fichero, and Ui_RegIvaPrintBase::setupUi().

00042         : QDialog(parent), PEmpresaBase(emp) {
00043     _depura("regivaprintview::regivaprintview", 0);
00044     setupUi(this);
00045     fichero = NULL;
00046     _depura("END regivaprintview::regivaprintview", 0);
00047 }

regivaprintview::~regivaprintview (  ) 

Definition at line 53 of file regivaprintview.cpp.

References _depura().

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


Member Function Documentation

void regivaprintview::inicializa1 ( QString  finicial1,
QString  ffinal1 
)

Parameters:
finicial1 
ffinal1 

Definition at line 83 of file regivaprintview.cpp.

References _depura(), Ui_RegIvaPrintBase::fechafinal1, and Ui_RegIvaPrintBase::fechainicial1.

00083                                                                     {
00084     _depura("regivaprintview::inicializa1", 0);
00085     fechainicial1->setText(finicial1);
00086     fechafinal1->setText(ffinal1);
00087     _depura("END regivaprintview::inicializa1", 0);
00088 }

void regivaprintview::presentar ( char *  tipus  ) 

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

Parameters:
tipus 

tipo de presentación.

Cogemos los valores del formulario.

Presentación txt normal.

Presentación html normal.

Creamos los archivos de salida.

Verificamos que se hayan creado correctamente los archivos.

Se puede mejorar el tratamiento de errores.

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

Calculamos cuantos registros van a crearse y dimensionamos la tabla.

Presentación txt normal.

Presentación html normal.

Presentación txt normal.

Presentación html normal.

Calculamos la siguiente cuenta registro y finalizamos el bucle.

Vaciamos el cursor de la base de datos.

AHORA PONEMOS EL RESUMEN DEL IVA REPERCUTIDO.

Pasamos al formato de representación español las cantidades a mostrar.

Calculamos cuantos registros van a crearse y dimensionamos la tabla.

Presentación txt normal.

Presentación html normal.

Pasamos al formato de representacion español las cantidades a mostrar.

Hacemos el cálculo de la cuota (así nos sirve para ver si se cálculo el % correcto).

Acumulamos los totales para al final poder escribirlos.

Presentación txt normal.

Presentación html normal.

Calculamos la siguiente cuenta registro y finalizamos el bucle.

Vaciamos el cursor de la base de datos.

Ahora ponemos el resumen del IVA soportado.

Pasamos al formato de representación español las cantidades a mostrar.

Ahora cerramos los ficheros.

Presentación txt normal.

Presentación html normal.

Definition at line 95 of file regivaprintview.cpp.

References _depura(), postgresiface2::begin(), postgresiface2::cargacursor(), postgresiface2::commit(), CONF_EDITOR, CONF_NAVEGADOR, confpr, PEmpresaBase::empresaBase(), cursor2::eof(), Ui_RegIvaPrintBase::fechafinal1, Ui_RegIvaPrintBase::fechainicial1, iva, cursor2::siguienteregistro(), configuracion::valor(), and cursor2::valor().

Referenced by accept().

00095                                            {
00096     _depura("regivaprintview::presentar", 0);
00097 #ifndef WIN32
00098     int txt, html, txtapren, htmlapren;
00099     int error;
00100     int pid;
00101     QString data;
00102     QString datahora;
00103 
00104     QString query;
00105 
00107     txt =! strcmp(tipus, "txt");
00108     html =! strcmp(tipus, "html");
00109     txtapren =! strcmp(tipus, "txtapren");
00110     htmlapren =! strcmp(tipus, "htmlapren");
00111 
00113     QString finicial = fechainicial1->text();
00114     QString ffinal = fechafinal1->text();
00115 
00116     if (txt | html) {
00117         char *argstxt[] = {"iva.txt", "iva.txt", NULL}; 
00118         char *argshtml[]={"iva.html","iva.html",NULL}; 
00119 
00120         ofstream fitxersortidatxt(argstxt[0]); 
00121         ofstream fitxersortidahtml(argshtml[0]);
00122 
00123         if (!fitxersortidatxt)
00124             txt = 0; 
00125         if (!fitxersortidahtml)
00126             html = 0;  
00127         if (txt | html) { 
00128             int num1;
00129             cursor2 *cursorapt;
00130             empresaBase()->begin();
00131             query.sprintf("SELECT * FROM registroiva, cuenta, borrador, asiento  where cuenta.idcuenta = borrador.idcuenta AND borrador.idborrador = registroiva.idborrador AND asiento.idasiento = borrador.idasiento AND (cuenta.codigo LIKE '43%%' OR cuenta.codigo LIKE '600%%') AND borrador.fecha >= '%s' AND borrador.fecha <= '%s' ORDER BY asiento.ordenasiento", fechainicial1->text().toAscii().constData(), fechafinal1->text().toAscii().constData());
00132             fprintf(stderr, "%s\n", query.toAscii().constData());
00133             cursorapt = empresaBase()->cargacursor(query, "mycursor");
00134             empresaBase()->commit();
00136             num1 = cursorapt->numregistros();
00137             int hoja = 0;
00138 
00139             if (txt) {
00141                 fitxersortidatxt.setf(ios::fixed)
00142                     ;
00143                 fitxersortidatxt.precision(2);
00144                 fitxersortidatxt << "                                        IVA Repercutido \n" ;
00145                 fitxersortidatxt << "Fecha Inicial: " << finicial.toAscii().constData() <<
00146                 "   Fecha Final: " << ffinal.toAscii().constData() << endl;
00147                 fitxersortidatxt << "Asiento  Fecha   Cuenta   Descripción                        Base imponible    Factura \n" ;
00148                 fitxersortidatxt << "__________________________________________________________________________________________________________\n";
00149             } // end if
00150             if (html) {
00152                 fitxersortidahtml.setf(ios::fixed)
00153                     ;
00154                 fitxersortidahtml.precision(2);
00155                 fitxersortidahtml << "<html>\n";
00156                 fitxersortidahtml << "<head>\n";
00157                 fitxersortidahtml << "  <!DOCTYPE / public \"-//w3c//dtd xhtml 1.0 transitional//en\"\n";
00158                 fitxersortidahtml << "    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
00159                 fitxersortidahtml << "  <LINK REL=StyleSheet HREF=\"estils.css\" TYPE=\"text/css\" MEDIA=screen>\n";
00160                 fitxersortidahtml << "  <title> IVA Repercutit </title>\n";
00161                 fitxersortidahtml << "</head>\n";
00162                 fitxersortidahtml << "<body>\n";
00163                 fitxersortidahtml << "<table><tr><td colspan=\"10\" class=titoliva> IVA Repercutido <hr></td></tr>\n\n";
00164                 fitxersortidahtml << "<tr><td colspan=\"10\" class periodeiva> Data Inicial: " << finicial.toAscii().constData() << " -  Data Final: " << ffinal.toAscii().constData() << "<hr></td></tr>\n\n";
00165                 fitxersortidahtml << "<tr><td class=titolcolumnaiva> Asiento </td><td class=titolcolumnaiva> Data </td><td class=titolcolumnaiva> Cuenta </td><td class=titolcolumnaiva> Descripción</td><td class=titolcolumnaiva> Base Imponible </td><td class=titolcolumnaiva> % IVA </td><td class=titolcolumnaiva> Quota IVA </td><td class=titolcolumnaiva> Factura </td><td class=titolcolumnaiva> CIF </td><td class=titolcolumnaiva> Cuenta IVA </td></tr>\n";
00166             } // end if
00167             while (!cursorapt->eof()) {
00168                 datahora = cursorapt->valor("fecha");
00169                 data = datahora.mid(0, 10);
00170                 int baseimp = cursorapt->valor("baseimp").replace(".", "").toInt();
00171                 int total = baseimp *cursorapt->valor("baseimp").replace(".", "").toInt() / 10000;
00172                 QString numberstr = QString::number(total);
00173                 numberstr = numberstr.left(numberstr.length() - 2) + "." + numberstr.right(2);
00174                 if (txt) {
00176                     fitxersortidatxt << setw(10) << cursorapt->valor("ordenasiento").toAscii().data() << " " <<
00177                     data.toAscii().constData() << " " <<
00178                     cursorapt->valor("contrapartida").toAscii().constData() << " " << cursorapt->valor("descripcion").toAscii().constData() << " " << cursorapt->valor("baseimp").toAscii().constData() << " " <<
00179                     cursorapt->valor("iva").toAscii().constData() << " " <<
00180                     numberstr.toAscii().constData() <<" " <<
00181                     cursorapt->valor("factura").toAscii().constData() << " " <<
00182                     cursorapt->valor("cif").toAscii().constData() << " " <<
00183                     endl;
00184                 } // end if
00185                 if (html) {
00187                     fitxersortidahtml << "<tr><td class=assentamentiva>" << cursorapt->valor("idasiento").toAscii().constData() << "</td><td class=dataiva>" << data.toAscii().constData() << "</td><td class=contrapartidaiva>" << cursorapt->valor("contrapartida").toAscii().constData() << "</td><td class=descripcioiva>" << cursorapt->valor("descripcion").toAscii().constData() << "</td><td class=baseimponibleiva>" << cursorapt->valor("baseimp").toAscii().constData() << "</td><td class=tipusiva>" << cursorapt->valor("iva").toAscii().constData() << "</td><td class=quotaiva>" << numberstr.toAscii().constData() << "</td><td class=facturaiva>" << cursorapt->valor("factura").toAscii().constData() << "</td><td class=cifiva>" << cursorapt->valor("cif").toAscii().constData() << "</td></tr> \n";
00188                 } // end if
00190                 cursorapt->siguienteregistro();
00191             } // end while
00193             delete cursorapt;
00194 
00196             QString SQLQuery = "SELECT * FROM cuenta, tipoiva LEFT JOIN (SELECT idtipoiva, SUM(baseiva) AS tbaseiva FROM iva iva.idregistroiva IN (SELECT idregistroiva FROM registroiva WHERE ffactura >='"+fechainicial1->text()+"' AND ffactura <='"+fechafinal1->text()+"' ) GROUP BY idtipoiva) AS dd ON dd.idtipoiva=tipoiva.idtipoiva WHERE tipoiva.idcuenta = cuenta.idcuenta AND cuenta.codigo LIKE '477%'";
00197             empresaBase()->begin();
00198             cursor2* cur = empresaBase()->cargacursor(SQLQuery, "elcursor");
00199             empresaBase()->commit();
00200             int j = 0;
00201             Fixed tivar("0");
00202             Fixed tbaseimpr("0");
00203             while (!cur->eof()) {
00204                 Fixed baseiva(cur->valor("tbaseiva").replace(".", "").toAscii().constData());
00205                 Fixed porcent(cur->valor("porcentajetipoiva").replace(".", "").toAscii().constData());
00206                 Fixed baseimp = baseiva * 1000000 / porcent;
00207                 QString numberstr = baseimp.toQString();
00208 
00211                 QString iva = QString::number(cursorapt->valor("tbaseiva").toDouble(), 'f', 2);
00212                 QString bi = QString::number(numberstr.toDouble(), 'f', 2);
00213 
00214                 fitxersortidatxt << setiosflags( ios::left ) << setw(16) << cur->valor("nombretipoiva").toAscii().constData() << " IVA: ";
00215                 fitxersortidatxt << resetiosflags( ios::left ) << setw(12) << iva.toAscii().constData() << " BI: ";
00216                 fitxersortidatxt << setw(10) << bi.toAscii().constData() << endl;
00217 
00218                 tivar = tivar+baseiva;
00219                 tbaseimpr = tbaseimpr+baseimp;
00220                 cur->siguienteregistro();
00221                 j++;
00222             } // end while
00223             delete cur;
00224 
00225             empresaBase()->begin();
00226             query.sprintf("SELECT *, (baseimp + iva) AS total, (iva / baseimp * 100)::INTEGER AS cuota FROM registroiva, cuenta, borrador, asiento  WHERE cuenta.idcuenta=borrador.idcuenta AND borrador.idborrador=registroiva.idborrador AND asiento.idasiento=borrador.idasiento AND (cuenta.codigo NOT LIKE '43%%' AND cuenta.codigo NOT LIKE '600%%') AND borrador.fecha >= '%s' AND borrador.fecha <= '%s' ORDER BY cuota, borrador.fecha", fechainicial1->text().toAscii().constData(), fechafinal1->text().toAscii().constData());
00227             fprintf(stderr, "%s\n", query.toAscii().constData());
00228             cursorapt = empresaBase()->cargacursor(query, "mycursor");
00229             empresaBase()->commit();
00231             num1 = cursorapt->numregistros();
00232             hoja = 0;
00233             if (txt) {
00235                 fitxersortidatxt.setf(ios::fixed)
00236                     ;
00237                 fitxersortidatxt.precision(2);
00238                 fitxersortidatxt << "                                        IVA Soportado \n" ;
00239                 fitxersortidatxt << "Asiento   Fecha     Cuenta   Descripción                        Subtotal Cuota   IVA       Total   Factura    CIF\n" ;
00240                 fitxersortidatxt << "_______________________________________________________________________________________________________________________\n";
00241             }
00242             if (html) {
00244                 fitxersortidahtml.setf(ios::fixed)
00245                     ;
00246                 fitxersortidahtml.precision(2);
00247                 fitxersortidahtml << "<html>\n";
00248                 fitxersortidahtml << "<head>\n";
00249                 fitxersortidahtml << "  <!DOCTYPE / public \"-//w3c//dtd xhtml 1.0 transitional//en\"\n";
00250                 fitxersortidahtml << "    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
00251                 fitxersortidahtml << "  <LINK REL=StyleSheet HREF=\"estils.css\" TYPE=\"text/css\" MEDIA=screen>\n";
00252                 fitxersortidahtml << "  <title> IVA Soportat </title>\n";
00253                 fitxersortidahtml << "</head>\n";
00254                 fitxersortidahtml << "<body>\n";
00255                 fitxersortidahtml << "<tr><td colspan=\"10\" class=titoliva> IVA Soportado <hr></td></tr>\n\n";
00256                 fitxersortidahtml << "<tr><td class=titolcolumnaiva> Asiento </td><td class=titolcolumnaiva> Fecha </td><td class=titolcolumnaiva> Cuenta </td><td class=titolcolumnaiva> Descripcion</td><td class=titolcolumnaiva> Base Imponible </td><td class=titolcolumnaiva> % IVA </td><td class=titolcolumnaiva> Quota IVA </td><td class=titolcolumnaiva> Factura </td><td class=titolcolumnaiva> CIF </td><td class=titolcolumnaiva> Cuenta IVA </td></tr>\n";
00257             }
00258             while (!cursorapt->eof()) {
00259                 datahora = cursorapt->valor("fecha");
00260                 data = datahora.mid(0, 10);
00262                 QString bi = QString::number(cursorapt->valor("baseimp").toDouble(), 'f', 2);
00263                 QString iva = QString::number(cursorapt->valor("iva").toDouble(), 'f', 2);
00264                 QString total = QString::number(cursorapt->valor("total").toDouble(), 'f', 2);
00267                 // int calculo = round(cursorapt->valor("iva").toDouble()/cursorapt->valor("baseimp").toDouble()*100);
00268                 // QString cuota = QString::number(calculo);
00269                 QString cuota = QString::number(cursorapt->valor("cuota").toInt());
00271                 if (txt) {
00273                     fitxersortidatxt << setiosflags(ios::left) << setw(8) << cursorapt->valor("ordenasiento").toAscii().constData() << setw(12) << data.toAscii().constData() << setw(9) << cursorapt->valor("codigo").toAscii().constData() << setw(30) << cursorapt->valor("descripcion").left(30).toAscii().constData() << " " << resetiosflags( ios::left ) << setw(12) << bi.toAscii().constData() << " " << setw(3) << cuota.toAscii().constData() << "%" << setw(9) << iva.toAscii().constData() << setw(12) << total.toAscii().constData() << setiosflags( ios::left ) << "  " << setw(10) << cursorapt->valor("factura").right(8).toAscii().constData() <<  setw(10) << cursorapt->valor("cif").toAscii().constData() << endl;
00274                 }
00275                 if (html) {
00277                     fitxersortidahtml << "<tr><td class=assentamentiva>" << cursorapt->valor("ordenasiento").toAscii().constData() << "</td><td class=dataiva>" << data.toAscii().constData() << "</td><td class=contrapartidaiva>" << cursorapt->valor("contrapartida").toAscii().constData() << "</td><td class=descripcioiva>" << cursorapt->valor("descripcion").toAscii().constData() << "</td><td class=baseimponibleiva>" << cursorapt->valor("baseimp").toAscii().constData() << "</td><td class=tipusiva>" << cursorapt->valor("iva").toAscii().constData() << "</td><td class=quotaiva>" << total.toAscii().constData() << "</td><td class=facturaiva>" << cursorapt->valor("factura").toAscii().constData() << "</td><td class=cifiva>" << cursorapt->valor("cif").toAscii().constData() << "</td></tr> \n";
00278                 }
00280                 cursorapt->siguienteregistro();
00281             } // end while
00283             delete cursorapt;
00284 
00286             SQLQuery = "SELECT * FROM cuenta, tipoiva LEFT JOIN (SELECT idtipoiva, SUM(baseiva) AS tbaseiva FROM iva  WHERE iva.idregistroiva IN (SELECT idregistroiva FROM registroiva WHERE ffactura >='"+fechainicial1->text()+"' AND ffactura <='"+fechafinal1->text()+"' ) GROUP BY idtipoiva) AS dd ON dd.idtipoiva=tipoiva.idtipoiva WHERE tipoiva.idcuenta = cuenta.idcuenta AND cuenta.codigo LIKE '472%'";
00287             empresaBase()->begin();
00288             cur = empresaBase()->cargacursor(SQLQuery, "elcursor");
00289             empresaBase()->commit();
00290             j = 0;
00291             Fixed tivas("0");
00292             Fixed tbaseimps("0");
00293             while (!cur->eof()) {
00294                 Fixed baseiva(cur->valor("tbaseiva").toAscii().constData());
00295                 Fixed porcent(cur->valor("porcentajetipoiva").toAscii().constData());
00296                 Fixed ivacalculado = baseiva * porcent / 100;
00297                 QString numberstr = ivacalculado.toQString();
00298 
00301                 QString bi = QString::number(cur->valor("tbaseiva").toDouble(), 'f', 2);
00302                 QString iva = QString::number(numberstr.toDouble(), 'f', 2);
00303 
00304                 if (j == 0) {
00305                     fitxersortidatxt << endl;
00306                 } // end if
00307                 fitxersortidatxt << setiosflags(ios::left) << setw(16) << cur->valor("nombretipoiva").toAscii().constData() << " BI: ";
00308                 fitxersortidatxt << resetiosflags( ios::left ) << setw(12) << bi.toAscii().constData() << " IVA: ";
00309                 fitxersortidatxt << setw(10) << iva.toAscii().constData() << endl;
00310 
00311                 tivas = tivas + ivacalculado;
00312                 tbaseimps = tbaseimps + baseiva;
00313                 cur->siguienteregistro();
00314                 j++;
00315             } // end while
00316             delete cur;
00317 
00319             if (txt) {
00320                 fitxersortidatxt.close();
00322                 if ((pid=fork()) < 0) {
00323                     perror ("Fork failed");
00324                     exit(errno);
00325                 } // end if
00326                 if (!pid) {
00327                     error = execvp(confpr->valor(CONF_EDITOR).toAscii(), argstxt);
00328                 } // end if
00329             } // end if
00330             if (html) {
00331                 fitxersortidahtml << "\n</table>\n</body>\n</html>\n";
00332                 fitxersortidahtml.close();
00334                 if ((pid = fork()) < 0) {
00335                     perror("Fork failed");
00336                     exit(errno);
00337                 } // end if
00338                 if (!pid) {
00339                     error = execvp(confpr->valor(CONF_NAVEGADOR).toAscii(),argshtml);
00340                 } // end if
00341             } // end if
00342         }
00343     }
00344 
00345 #endif
00346     _depura("END regivaprintview::presentar", 0);
00347 }

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

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

Lanza dialogo de generacion de modelo 300 Deberia revisarse el Widget parent de la variable modelo (listivaview--->modelo, en vez de regivaprintview--->modelo) modelo->exec();

Definition at line 62 of file regivaprintview.cpp.

References _depura(), presentar(), Ui_RegIvaPrintBase::radiohtml, Ui_RegIvaPrintBase::radioPS, and Ui_RegIvaPrintBase::radiotexto.

00062                              {
00063     _depura("regivaprintview::accept", 0);
00064     if (radiotexto->isChecked())
00065         presentar("txt");
00066     if (radiohtml->isChecked())
00067         presentar("html");
00068     if (radioPS->isChecked()) {
00073     } // end if
00074     _depura("END regivaprintview::accept", 0);
00075 }


Field Documentation

char* regivaprintview::fichero

Definition at line 47 of file regivaprintview.h.

Referenced by regivaprintview().


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