Q19QToolButton Class Reference

#include <q19qtoolbutton.h>

Inheritance diagram for Q19QToolButton:

QToolButton

Public Slots

virtual void click ()

Public Member Functions

 Q19QToolButton (CobrosList *cob=NULL, QWidget *parent=NULL)
 ~Q19QToolButton ()
void setBoton ()
QByteArray cobroQ19 (QTextStream &, QString)
QByteArray cabeceraPresentador (QTextStream &, QString)
QByteArray cabeceraOrdenante (QTextStream &, QString)
QByteArray totalOrdenante (QTextStream &, QString, QString, QString)
QByteArray totalGeneral (QTextStream &, QString, QString, QString)

Private Attributes

Companym_companyact
CobrosListm_cobrosList

Detailed Description

Definition at line 35 of file q19qtoolbutton.h.


Constructor & Destructor Documentation

Q19QToolButton::Q19QToolButton ( CobrosList cob = NULL,
QWidget parent = NULL 
)

Parameters:
cob 
parent 

Definition at line 46 of file q19qtoolbutton.cpp.

References _depura(), m_cobrosList, and setBoton().

00046                                                                  : QToolButton(parent) {
00047     _depura("Q19QToolButton::Q19QToolButton", 0);
00048     m_cobrosList = cob;
00049     setBoton();
00050     _depura("END Q19QToolButton::Q19QToolButton", 0);
00051 }

Q19QToolButton::~Q19QToolButton (  ) 

Definition at line 57 of file q19qtoolbutton.cpp.

References _depura().

00057                                 {
00058     _depura("Q19QToolButton::~Q19QToolButton", 0);
00059     _depura("Q19QToolButton::~Q19QToolButton", 0);
00060 }


Member Function Documentation

void Q19QToolButton::setBoton (  ) 

Definition at line 66 of file q19qtoolbutton.cpp.

References _depura(), and click().

Referenced by Q19QToolButton().

00066                               {
00067     _depura("Q19QToolButton::setBoton", 0);
00068     connect(this, SIGNAL(clicked()), this, SLOT(click()));
00069     setObjectName(QString::fromUtf8("exporta"));
00070     setStatusTip("Generar Q19");
00071     setToolTip("Generar archivo Q19 de los elementos seleccionados");
00072     setMinimumSize(QSize(32, 32));
00073     setIcon(QIcon(QString::fromUtf8("/usr/share/bulmages/icons/q19.png")));
00074     setIconSize(QSize(22, 22));
00075     _depura("END Q19QToolButton::setBoton", 0);
00076 }

QByteArray Q19QToolButton::cobroQ19 ( QTextStream &  out,
QString  idcobro 
)

Parameters:
out 
idcobro 
Returns:

CABECERA INDIVIDUAL OBLIGATORIO

Registro en Euros. Longitud: 2

Registro de codigo de dato: 80. Longitud: 2

Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12 Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12

Codigo de referencia Longitud: 12

Nombre del titular de la domiciliacion: 40

Entidad domiciliacion del fichero Longitud: 4

Oficina domiciliacion del fichero Longitud: 4

DC domiciliacion del fichero Longitud: 2

Oficina domiciliacion del fichero Longitud: 10

Total Importe domiciliacion Longitud: 10

Codigo para devoluciones Longitud : 6

Codigo de referencia interna Longitud 10

Primer campo de concepto Longitud: 40

Espacio libre Longitud: 8

Definition at line 286 of file q19qtoolbutton.cpp.

References _depura(), postgresiface2::cargacursor(), PEmpresaBase::empresaBase(), m_cobrosList, m_companyact, and cursor2::valor().

Referenced by click().

00286                                                                      {
00287     _depura("Q19QToolButton::cobroQ19", 0);
00288     cursor2 *curcobro = m_companyact->cargacursor("SELECT * FROM cobro NATURAL LEFT JOIN banco WHERE idcobro = "+idcobro);
00289 
00291     QString cab_indob="";
00293     cab_indob.append("56");
00295     cab_indob.append("80");
00298     cursor2 *cur = m_cobrosList->empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre='CIF'");
00299     QString nif = cur->valor("valor");
00300     delete cur;
00301     QString sufijo = "000";
00302     QString codpresent = nif+sufijo;
00303     codpresent = codpresent.rightJustified(12, '0');
00304     if (codpresent.size() > 12) _depura("CIF CLiente demasiado largo", 2);
00305     cab_indob.append(codpresent.toAscii());
00306 
00308     QString cod_ref = curcobro->valor("idcliente");
00309     cod_ref = cod_ref.rightJustified(12, '0');
00310     cab_indob.append(cod_ref.toAscii());
00311 
00312 
00314     cur = m_companyact->cargacursor("SELECT * FROM cliente WHERE idcliente= " + curcobro->valor("idcliente"));
00315     QString clientedomiciliacion = cur->valor("nomcliente");
00316 
00317     clientedomiciliacion = clientedomiciliacion.leftJustified(40, ' ');
00318     if(clientedomiciliacion.size() > 40) _depura("Nombre cliente demasiado largo", 2);
00319     cab_indob.append(clientedomiciliacion.toAscii());
00320 
00321 
00323     QString bancocliente = cur->valor("bancocliente").remove(QChar(' '));
00324     if (bancocliente.size() != 20)
00325         _depura("Banco de Cliente invalido en el cobro", 2);
00326     bancocliente = bancocliente.leftJustified(20,' ');
00327     QString ent_recept = bancocliente.left(4);
00328     cab_indob.append(ent_recept.toAscii());
00329 
00331     bancocliente = bancocliente.left(16);
00332     QString ofi_recept = bancocliente.left(4);
00333     cab_indob.append(ofi_recept.toAscii());
00334 
00336     bancocliente = bancocliente.left(12);
00337     QString dc_recept = bancocliente.left(2);
00338     cab_indob.append(dc_recept.toAscii());
00339 
00341     bancocliente = bancocliente.left(10);
00342     QString cta_recept = bancocliente.left(10);
00343     cab_indob.append(cta_recept.toAscii());
00344 
00345     delete cur;
00346 
00348     QString importe = curcobro->valor("cantcobro").remove('.').remove(',');
00349     importe = importe.rightJustified(10, '0');
00350     cab_indob.append(importe.toAscii());
00351 
00353     QString coddev = curcobro->valor("idcobro");
00354     coddev = coddev.rightJustified(6, '0');
00355     cab_indob.append(coddev.toAscii());
00356 
00358     QString codrefint = curcobro->valor("idcobro");
00359     codrefint = codrefint.rightJustified(10, ' ');
00360     cab_indob.append(codrefint.toAscii());
00361 
00363     QString concepto = curcobro->valor("comentcobro");
00364     concepto = concepto.leftJustified(40, ' ');
00365     concepto = concepto.left(40);
00366     cab_indob.append(concepto.toAscii());
00367 
00369     cab_indob.append(QString(8, ' ').toAscii());
00370     out << cab_indob.toAscii() << "\n";
00371     delete curcobro;
00372     _depura("END Q19QToolButton::cobroQ19", 0);
00373     return cab_indob.toAscii();
00374 }

QByteArray Q19QToolButton::cabeceraPresentador ( QTextStream &  out,
QString  idcobro 
)

Parameters:
out 
idcobro 
Returns:

CABECERA PRESENTADOR Generamos la cabecera presentador

Registro en Euros. Longitud: 2

Registro de codigo de dato: 80. Longitud: 2

Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12

Fecha de emision del archivo

Espacio libre Longitud: 6

Nombre del cliente Presentador Longitud: 40

Espacio libre Longitud: 20

Entidad Receptora del fichero Longitud: 4

Oficina Receptora del fichero Longitud: 4

Espacio libre Longitud: 12

Espacio libre Longitud: 40

Espacio libre Longitud: 14

Definition at line 130 of file q19qtoolbutton.cpp.

References _depura(), postgresiface2::cargacursor(), PEmpresaBase::empresaBase(), m_cobrosList, m_companyact, and cursor2::valor().

Referenced by click().

00130                                                                                 {
00131     _depura("Q19QToolButton::cabeceraPresentador", 0);
00132     cursor2 *curcobro = m_companyact->cargacursor("SELECT * FROM cobro NATURAL LEFT JOIN banco WHERE idcobro = "+idcobro);
00133 
00136     QString cab_present = "";
00138     cab_present.append("51");
00140     cab_present.append("80");
00141 
00143     cursor2 *cur = m_cobrosList->empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre='CIF'");
00144     QString nif = cur->valor("valor");
00145     delete cur;
00146     QString sufijo = "000";
00147     QString codpresent = nif+sufijo;
00148     codpresent = codpresent.rightJustified(12, '0');
00149     if (codpresent.size() > 12)  _depura("El CIF del ordenante supera la longitud maxima", 2);
00150     cab_present.append(codpresent.toAscii());
00151 
00153     QString fechaemfich = QDate::currentDate().toString("ddMMyy");
00154     cab_present.append(fechaemfich.toAscii());
00155 
00157     cab_present.append(QString(6, ' ').toAscii());
00158 
00160     cur = m_cobrosList->empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre='NombreEmpresa'");
00161     QString clientepresentador = cur->valor("valor");
00162     delete cur;
00163     clientepresentador = clientepresentador.leftJustified(40, ' ');
00164     clientepresentador = clientepresentador.left(40);
00165     cab_present.append(clientepresentador.toAscii());
00166 
00168     cab_present.append(QString(20, ' ').toAscii());
00169 
00171     QString ent_recept = curcobro->valor("codentidadbanco").leftJustified(4, '0');
00172     if (ent_recept.size() > 4) _depura("Entidad bancaria supera longitud maxima", 2);
00173     cab_present.append(ent_recept.toAscii());
00174 
00176     QString ofi_recept = curcobro->valor("codagenciabanco").leftJustified(4, '0');
00177     if (ofi_recept.size() > 4) _depura("Oficina bancaria supera longitud maxima", 2);
00178     cab_present.append(ofi_recept.toAscii());
00179 
00181     cab_present.append(QString(12, ' ').toAscii());
00182 
00184     cab_present.append(QString(40, ' ').toAscii());
00185 
00187     cab_present.append(QString(14, ' ').toAscii());
00188     out << cab_present.toAscii()  << "\n";
00189     delete curcobro;
00190     _depura("END Q19QToolButton::cabeceraPresentador", 0);
00191     return cab_present.toAscii();
00192 }

QByteArray Q19QToolButton::cabeceraOrdenante ( QTextStream &  out,
QString  idcobro 
)

Parameters:
out 
idcobro 
Returns:

GENERAMOS LA CABECERA ORDENANTE REGISTRO DEL ORDENANTE

Registro en Euros. Longitud: 2

Registro de codigo de dato: 80. Longitud: 2

Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12

Fecha de emision del archivo

Fecha de cargo

Nombre del cliente Ordenante Longitud: 40

Entidad Receptora del fichero Longitud: 4

Oficina Receptora del fichero Longitud: 4

DC Receptora del fichero Longitud: 2

Oficina Receptora del fichero Longitud: 10

Espacio libre Longitud: 8

Procedimiento de realizacion del adeudo (01 o 02) Longitud: 2

Espacio libre Longitud: 10

Espacio libre Longitud: 40

Espacio libre Longitud: 14

Definition at line 201 of file q19qtoolbutton.cpp.

References _depura(), postgresiface2::cargacursor(), PEmpresaBase::empresaBase(), m_cobrosList, m_companyact, normalizafecha(), and cursor2::valor().

Referenced by click().

00201                                                                               {
00202     _depura("Q19QToolButton::cabeceraOrdenante", 0);
00203     cursor2 *curcobro = m_companyact->cargacursor("SELECT * FROM cobro NATURAL LEFT JOIN banco WHERE idcobro = "+idcobro);
00204 
00207     QString cab_orden = "";
00209     cab_orden.append("53");
00211     cab_orden.append("80");
00212 
00214     cursor2 *cur = m_cobrosList->empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre='CIF'");
00215     QString nif = cur->valor("valor");
00216     delete cur;
00217     QString sufijo = "000";
00218     QString codpresent = nif+sufijo;
00219     codpresent = codpresent.rightJustified(12, '0');
00220     if (codpresent.size() > 12) _depura("CIF demasiado largo", 2);
00221     cab_orden.append(codpresent.toAscii());
00222 
00224     QString fechaemfich = QDate::currentDate().toString("ddMMyy");
00225     cab_orden.append(fechaemfich.toAscii());
00226 
00228     QString fechacargo = normalizafecha(curcobro->valor("fechacobro")).toString("ddMMyy");
00229     cab_orden.append(fechacargo.toAscii());
00230 
00232     cur = m_cobrosList->empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre='NombreEmpresa'");
00233     QString clientepresentador = cur->valor("valor");
00234     delete cur;
00235     clientepresentador = clientepresentador.leftJustified(40, ' ');
00236     if (clientepresentador.size() > 40) _depura("Nombre de empresa demasiado largo", 2);
00237     cab_orden.append(clientepresentador.toAscii());
00238 
00240     QString ent_recept = curcobro->valor("codentidadbanco").leftJustified(4, '0');
00241     if (ent_recept.size() > 4) _depura("Entidad bancaria demasiado larga", 2);
00242     cab_orden.append(ent_recept.toAscii());
00243 
00245     QString ofi_recept = curcobro->valor("codagenciabanco").leftJustified(4, '0');
00246     if (ofi_recept.size() > 4) _depura("Oficina bancaria demasiado larga", 2);
00247     cab_orden.append(ofi_recept.toAscii());
00248 
00250     QString dc_recept = curcobro->valor("dcbanco").leftJustified(2, '0');
00251     if (dc_recept.size() > 4) _depura("Control bancario demasiado larga", 2);
00252     cab_orden.append(dc_recept.toAscii());
00253 
00255     QString cta_recept = curcobro->valor("numcuentabanco").leftJustified(10, '0');
00256     if (cta_recept.size() > 10) _depura("Cuenta bancaria demasiado larga", 2);
00257     cab_orden.append(cta_recept.toAscii());
00258 
00260     cab_orden.append(QString(8, ' '));
00261 
00263     cab_orden.append(QString("01").toAscii());
00264 
00266     cab_orden.append(QString(10, ' '));
00267 
00269     cab_orden.append(QString(40, ' '));
00270 
00272     cab_orden.append(QString(14, ' '));
00273     out << cab_orden.toAscii()  << "\n";
00274     delete curcobro;
00275     _depura("END Q19QToolButton::cabeceraOrdenante", 0);
00276     return cab_orden.toAscii();
00277 }

QByteArray Q19QToolButton::totalOrdenante ( QTextStream &  out,
QString  importes,
QString  ordenantes,
QString  registros 
)

Parameters:
out 
importes 
ordenantes 
registros 
Returns:

CABECERA TOTAL ORDENANTE

Registro en Euros. Longitud: 2

Registro de codigo de dato: 80. Longitud: 2

Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12 Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12

Espacio libre Longitud: 12

Espacio libre Longitud: 40

Espacio libre Longitud: 20

Suma de Importes del Ordenante Longitud: 10

Espacio libre Longitud: 6

Numero de domiciliaciones del ordenante : 10

Numero total registros del ordenante : 10

Espacio libre Longitud: 20

Espacio libre Longitud: 18

Imprimimos los resultados

Definition at line 385 of file q19qtoolbutton.cpp.

References _depura(), postgresiface2::cargacursor(), PEmpresaBase::empresaBase(), m_cobrosList, and cursor2::valor().

Referenced by click().

00385                                                                                                                    {
00386     _depura("Q19QToolButton::totalOrdenante", 0);
00388     QString cab_indob="";
00390     cab_indob.append("58");
00391 
00393     cab_indob.append("80");
00394 
00397     cursor2 *cur = m_cobrosList->empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre='CIF'");
00398     QString nif = cur->valor("valor");
00399     delete cur;
00400     QString sufijo = "000";
00401     QString codpresent = nif+sufijo;
00402     codpresent = codpresent.rightJustified(12, '0');
00403     if (codpresent.size() > 12) _depura("CIF demasiado largo", 2);
00404     cab_indob.append(codpresent.toAscii());
00405 
00406 
00408     cab_indob.append(QString(12, ' ').toAscii());
00409 
00410 
00412     cab_indob.append(QString(40, ' ').toAscii());
00413 
00415     cab_indob.append(QString(20, ' ').toAscii());
00416 
00418     QString importe = importes;
00419     importe = importe.rightJustified(10, '0');
00420     importe = importe.right(10);
00421     cab_indob.append(importe.toAscii());
00422 
00424     cab_indob.append(QString(6, ' ').toAscii());
00425 
00427     QString coddev = ordenantes;
00428     coddev = coddev.rightJustified(10, '0');
00429     coddev = coddev.right(10);
00430     cab_indob.append(coddev.toAscii());
00431 
00433     coddev = registros;
00434     coddev = coddev.rightJustified(10, '0');
00435    coddev = coddev.right(10);
00436     cab_indob.append(coddev.toAscii());
00437 
00439     cab_indob.append(QString(20, ' ').toAscii());
00440 
00442     cab_indob.append(QString(18, ' ').toAscii());
00443 
00444 
00446     out << cab_indob.toAscii() << "\n";
00447     _depura("END Q19QToolButton::totalOrdenante", 0);
00448     return cab_indob.toAscii();
00449 }

QByteArray Q19QToolButton::totalGeneral ( QTextStream &  out,
QString  importes,
QString  domiciliaciones,
QString  registros 
)

Parameters:
out 
importes 
domiciliaciones 
registros 
Returns:

CABECERA INDIVIDUAL OBLIGATORIO

Registro en Euros. Longitud: 2

Registro de codigo de dato: 80. Longitud: 2

Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12 Codigo de presentador (NIF + Sufijo alineado a la derecha y rellenado con ceros) Longitud: 12

Espacio libre Longitud: 12

Espacio libre Longitud: 40

Numero de Ordenantes Longitud : 4 PAra este algoritmo siempre es un ordenante

Espacio libre Longitud: 16

Suma de Importes Longitud: 10

Espacio libre Longitud: 6

Numero de domiciliaciones : 10

Numero total registros : 10

Espacio libre Longitud: 20

Espacio libre Longitud: 18

Imprimimos los resultados

Definition at line 460 of file q19qtoolbutton.cpp.

References _depura(), postgresiface2::cargacursor(), PEmpresaBase::empresaBase(), m_cobrosList, and cursor2::valor().

Referenced by click().

00460                                                                                                                       {
00461     _depura("Q19QToolButton::totalGeneral", 0);
00463     QString cab_indob="";
00465     cab_indob.append("59");
00467     cab_indob.append("80");
00470     cursor2 *cur = m_cobrosList->empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre='CIF'");
00471     QString nif = cur->valor("valor");
00472     delete cur;
00473     QString sufijo = "000";
00474     QString codpresent = nif+sufijo;
00475     codpresent = codpresent.rightJustified(12, '0');
00476     codpresent = codpresent.right(12);
00477     cab_indob.append(codpresent.toAscii());
00478 
00479 
00481     cab_indob.append(QString(12, ' ').toAscii());
00482 
00483 
00485     cab_indob.append(QString(40, ' ').toAscii());
00486 
00489     QString coddev = "1";
00490     coddev = coddev.rightJustified(4, '0');
00491     cab_indob.append(coddev.toAscii());
00492 
00494     cab_indob.append(QString(16, ' ').toAscii());
00495 
00497     QString importe = importes;
00498     importe = importe.rightJustified(10, '0');
00499     cab_indob.append(importe.toAscii());
00500 
00502     cab_indob.append(QString(6, ' ').toAscii());
00503 
00505     coddev = domiciliaciones;
00506     coddev = coddev.rightJustified(10, '0');
00507     cab_indob.append(coddev.toAscii());
00508 
00510     coddev = registros;
00511     coddev = coddev.rightJustified(10, '0');
00512     cab_indob.append(coddev.toAscii());
00513 
00515     cab_indob.append(QString(20, ' ').toAscii());
00516 
00518     cab_indob.append(QString(18, ' ').toAscii());
00519 
00520 
00522     out << cab_indob.toAscii() << "\n";
00523     _depura("END Q19QToolButton::totalGeneral", 0);
00524     return cab_indob.toAscii();
00525 }

void Q19QToolButton::click ( void   )  [virtual, slot]

Returns:

Reseteamos los valores

La primera vez se ponen las cabeceras

Definition at line 83 of file q19qtoolbutton.cpp.

References _depura(), cabeceraOrdenante(), cabeceraPresentador(), cobroQ19(), PEmpresaBase::empresaBase(), SubForm3::lineaat(), m_cobrosList, m_companyact, Ui_CobrosListBase::mui_list, SDBRecord::refresh(), SubForm3::rowCount(), Fixed::toQString(), totalGeneral(), and totalOrdenante().

Referenced by setBoton().

00083                            {
00084     _depura("Q19QToolButton::click", 0);
00085 
00086     QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
00087                        "",
00088                        tr("*.q19"));
00089     QFile file(fileName);
00090     if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
00091         return;
00092 
00093     QTextStream out(&file);
00094 
00095     m_companyact = (Company *)m_cobrosList->empresaBase();
00096     SubForm3 *sub = m_cobrosList->mui_list;
00097 
00098     Fixed total("0.00");
00099     int j= 0;
00101     for (int i = 0; i < sub->rowCount(); i++) {
00102         SDBRecord *rec = sub->lineaat(i);
00103         rec->refresh();
00104         QString val = rec->DBvalue("selector");
00105         if (val == "TRUE") {
00107             if (j == 0) {
00108                 cabeceraPresentador(out, rec->DBvalue("idcobro"));
00109                 cabeceraOrdenante(out, rec->DBvalue("idcobro"));
00110             }
00111             cobroQ19(out, rec->DBvalue("idcobro"));
00112             j++;
00113             total = total + Fixed(rec->DBvalue("cantcobro"));
00114         } // end if
00115     } // end for
00116     totalOrdenante(out, total.toQString().remove(',').remove('.'), QString::number(j), QString::number(j+2));
00117     totalGeneral(out, total.toQString().remove(',').remove('.'), QString::number(j), QString::number(j+4));
00118     file.close();
00119 
00120     _depura("END Q19QToolButton::click", 0);
00121 }


Field Documentation

Company* Q19QToolButton::m_companyact [private]

Definition at line 39 of file q19qtoolbutton.h.

Referenced by cabeceraOrdenante(), cabeceraPresentador(), click(), and cobroQ19().

CobrosList* Q19QToolButton::m_cobrosList [private]

Definition at line 40 of file q19qtoolbutton.h.

Referenced by cabeceraOrdenante(), cabeceraPresentador(), click(), cobroQ19(), Q19QToolButton(), totalGeneral(), and totalOrdenante().


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