#include <q19qtoolbutton.h>
Inheritance diagram for Q19QToolButton:

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 | |
| Company * | m_companyact |
| CobrosList * | m_cobrosList |
Definition at line 35 of file q19qtoolbutton.h.
| Q19QToolButton::Q19QToolButton | ( | CobrosList * | cob = NULL, |
|
| QWidget * | parent = NULL | |||
| ) |
| 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 }
| 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 | |||
| ) |
| out | ||
| idcobro |
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 | |||
| ) |
| out | ||
| idcobro |
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 | |||
| ) |
| out | ||
| idcobro |
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 | |||
| ) |
| out | ||
| importes | ||
| ordenantes | ||
| registros |
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 | |||
| ) |
| out | ||
| importes | ||
| domiciliaciones | ||
| registros |
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] |
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 }
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().
1.5.1