#include <ticket.h>
Inheritance diagram for Ticket:

Public Slots | |
| virtual void | subir () |
| virtual void | bajar () |
| virtual void | agregarCantidad (QString cantidad) |
| virtual void | ponerCantidad (QString cantidad) |
| virtual void | ponerPrecio (QString precio) |
| virtual void | insertarArticuloCodigo (QString) |
| virtual void | insertarArticuloCodigoNL (QString) |
Public Member Functions | |
| virtual void | pintar () |
| Ticket (EmpresaBase *emp=NULL, QWidget *parent=0) | |
| virtual | ~Ticket () |
| QList< DBRecord * > * | listaLineas () |
| DBRecord * | insertarArticulo (QString idArticulo, Fixed cantidad=Fixed("1"), bool nuevaLinea=FALSE) |
| void | borrarArticulo (DBRecord *linea, Fixed cantidad=Fixed("1")) |
| void | vaciarTicket () |
| void | subirPosArticulo (DBRecord *linea, int filas=1) |
| void | bajarPosArticulo (DBRecord *linea, int filas=1) |
| void | inicioPosTicket (DBRecord *) |
| void | finPosTicket (DBRecord *) |
| DBRecord * | lineaTicket (int posicion) |
| DBRecord * | lineaActTicket () |
| void | setLineaActual (DBRecord *) |
| void | setDescuentoGlobal (Fixed descuento) |
| virtual void | imprimir () |
| int | guardar () |
| Guarda los datos de la ficha en la base de datos. | |
Private Member Functions | |
| DBRecord * | agregarLinea () |
Private Attributes | |
| QList< DBRecord * > * | m_listaLineas |
| DBRecord * | m_lineaActual |
Definition at line 34 of file ticket.h.
| Ticket::Ticket | ( | EmpresaBase * | emp = NULL, |
|
| QWidget * | parent = 0 | |||
| ) |
Definition at line 35 of file ticket.cpp.
References _depura(), DBRecord::addDBCampo(), CONF_IDALMACEN_DEFECTO, CONF_IDCLIENTE_DEFECTO, confpr, DBCampo::DBboolean, DBCampo::DBdate, DBCampo::DBint, DBCampo::DBNoSave, DBCampo::DBNothing, DBCampo::DBNotNull, DBCampo::DBPrimaryKey, DBCampo::DBvarchar, m_lineaActual, m_listaLineas, DBRecord::setDBCampoId(), DBRecord::setDBTableName(), DBRecord::setDBvalue(), and configuracion::valor().
00035 : BLWidget(emp, parent), DBRecord(emp) { 00036 _depura("Ticket::Ticket", 0); 00038 setDBTableName ( "albaran" ); 00039 setDBCampoId ( "idalbaran" ); 00040 addDBCampo ( "descalbaran", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate("Ticket", "descripcion")); 00041 addDBCampo ( "nomticket", DBCampo::DBvarchar, DBCampo::DBNoSave, QApplication::translate("Ticket", "nombre")); 00042 addDBCampo ( "idalbaran", DBCampo::DBint, DBCampo::DBPrimaryKey, QApplication::translate ( "Ticket", "Id albaran" ) ); 00043 addDBCampo ( "fechaalbaran", DBCampo::DBdate, DBCampo::DBNothing, QApplication::translate ( "Ticket", "Id fechaalbaran" ) ); 00044 addDBCampo ( "horaalbaran", DBCampo::DBvarchar, DBCampo::DBNoSave, QApplication::translate ( "Ticket", "hora" ) ); 00045 addDBCampo ( "idtrabajador", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Trabajador" ) ); 00046 addDBCampo ( "idcliente", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Cliente" ) ); 00047 addDBCampo ( "idalmacen", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Almacen" ) ); 00048 addDBCampo ( "numalbaran", DBCampo::DBint, DBCampo::DBNothing, QApplication::translate ( "Ticket", "Num" ) ); 00049 addDBCampo ( "refalbaran", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate ( "Ticket", "Referencia" ) ); 00050 addDBCampo ( "ticketalbaran", DBCampo::DBboolean, DBCampo::DBNothing, QApplication::translate ( "Ticket", "Ticket" ) ); 00051 00052 00053 setDBvalue("ticketalbaran", "TRUE"); 00054 setDBvalue("idalmacen", confpr->valor(CONF_IDALMACEN_DEFECTO)); 00055 setDBvalue("idcliente", confpr->valor(CONF_IDCLIENTE_DEFECTO)); 00056 setDBvalue("descalbaran", "Ticket de venta"); 00057 00058 m_lineaActual = NULL; 00059 m_listaLineas = new QList<DBRecord *>; 00060 00061 _depura("END Ticket::Ticket", 0); 00062 }
| Ticket::~Ticket | ( | ) | [virtual] |
| DBRecord * Ticket::agregarLinea | ( | ) | [private] |
Definition at line 69 of file ticket.cpp.
References _depura(), DBRecord::addDBCampo(), DBCampo::DBint, DBCampo::DBNoSave, DBCampo::DBNothing, DBCampo::DBNotNull, DBCampo::DBnumeric, DBCampo::DBPrimaryKey, DBRecord::DBRecord(), DBCampo::DBvarchar, PEmpresaBase::empresaBase(), m_listaLineas, DBRecord::setDBCampoId(), DBRecord::setDBTableName(), and DBRecord::setDBvalue().
Referenced by insertarArticulo().
00069 { 00070 _depura("Ticket::agregarLinea",0); 00071 00073 DBRecord * item = new DBRecord(empresaBase()); 00074 item->setDBTableName ( "lalbaran" ); 00075 item->setDBCampoId ( "numlalbaran" ); 00076 item->addDBCampo ( "idalbaran", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Id Albaran" ) ); 00077 item->addDBCampo ( "numlalbaran", DBCampo::DBint, DBCampo::DBPrimaryKey, QApplication::translate ( "Ticket", "Id lalbaran" ) ); 00078 item->addDBCampo ( "cantlalbaran", DBCampo::DBnumeric, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Cantidad" ) ); 00079 item->addDBCampo ( "pvplalbaran", DBCampo::DBnumeric, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Precio" ) ); 00080 item->addDBCampo ( "ivalalbaran", DBCampo::DBnumeric, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "IVA" ) ); 00081 item->addDBCampo ( "descuentolalbaran", DBCampo::DBnumeric, DBCampo::DBNothing, QApplication::translate ( "Ticket", "Descuento" ) ); 00082 item->addDBCampo ( "ordenlalbaran", DBCampo::DBnumeric, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Orden" ) ); 00083 item->addDBCampo ( "reqeqlalbaran", DBCampo::DBnumeric, DBCampo::DBNothing, QApplication::translate ( "Ticket", "REQ EQ" ) ); 00084 // item->addDBCampo ( "lotelalbaran", DBCampo::DBnumeric, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Lote" ) ); 00085 item->addDBCampo ( "idarticulo", DBCampo::DBint, DBCampo::DBNotNull, QApplication::translate ( "Ticket", "Id Articulo" ) ); 00086 item->addDBCampo ( "codigocompletoarticulo", DBCampo::DBvarchar, DBCampo::DBNoSave, QApplication::translate ( "Ticket", "Codigo Articulo" ) ); 00087 item->addDBCampo ( "nomarticulo", DBCampo::DBvarchar, DBCampo::DBNoSave, QApplication::translate ( "Ticket", "Nombre Articulo" ) ); 00088 item->addDBCampo ( "desclalbaran", DBCampo::DBvarchar, DBCampo::DBNothing, QApplication::translate ( "Ticket", "Nombre Articulo" ) ); 00089 00090 00091 item->setDBvalue("descuentolalbaran", "0"); 00093 m_listaLineas->append(item); 00094 00095 _depura("END Ticket::agregarLinea",0); 00096 return item; 00097 }
| void Ticket::pintar | ( | ) | [virtual] |
Definition at line 99 of file ticket.cpp.
References _depura(), g_plugins, and Plugins::lanza().
Referenced by agregarCantidad(), bajar(), EmpresaTPV::cobrar(), insertarArticulo(), Abrevs::on_mui_aparcar_clicked(), Abrevs::on_mui_cliente_clicked(), ponerCantidad(), ponerPrecio(), subir(), and Trabajadores::trabajadorClicked().
00099 { 00100 _depura("Ticket::pintar", 0, "Metodo para reimplementar en clases derivadas"); 00102 int res = g_plugins->lanza("Ticket_pintar", this); 00103 if (res != 0) { 00104 return; 00105 } // end if 00106 _depura("END Ticket::pintar", 0); 00107 }
| QList< DBRecord * > * Ticket::listaLineas | ( | ) |
Definition at line 109 of file ticket.cpp.
References m_listaLineas.
Referenced by agregarCantidad(), bajar(), guardar(), imprimir(), insertarArticulo(), Abrevs::on_mui_aparcar_clicked(), MTicket::pintar(), ponerCantidad(), subir(), and Ticket_pintar().
00109 { 00110 return m_listaLineas; 00111 }
| DBRecord * Ticket::insertarArticulo | ( | QString | idArticulo, | |
| Fixed | cantidad = Fixed("1"), |
|||
| bool | nuevaLinea = FALSE | |||
| ) |
Inserta o agrega cantidad de articulos al ticket El parametro nuevalinea indica que se inserte en nueva linea.
Buscamos si ya hay una linea con el articulo que buscamos
Ya hay una linea con este articulo (es un agregado)
No hay ningun item con este articulo (es una insercion)
Buscamos los parametros en la base de datos.
Pintamos el ticket ya que se ha modificado.
Definition at line 114 of file ticket.cpp.
References _depura(), agregarLinea(), postgresiface2::cargacursor(), DBRecord::DBvalue(), PEmpresaBase::empresaBase(), cursor2::eof(), FALSE, listaLineas(), m_lineaActual, pintar(), DBRecord::setDBvalue(), Fixed::toQString(), and cursor2::valor().
Referenced by myplugin::elslot(), insertarArticuloCodigo(), and insertarArticuloCodigoNL().
00114 { 00115 _depura("Ticket::insertarArticulo", 0); 00116 00118 m_lineaActual = NULL; 00119 DBRecord *item; 00120 for (int i = 0; i < listaLineas()->size(); ++i) { 00121 item = listaLineas()->at(i); 00122 if (item->DBvalue("idarticulo") == idArticulo) 00123 m_lineaActual = item; 00124 }// end for 00125 00126 if (m_lineaActual && nuevaLinea == FALSE) { 00128 Fixed cantidadib(m_lineaActual->DBvalue("cantlalbaran")); 00129 Fixed cant1 = cantidadib + cantidad; 00130 m_lineaActual->setDBvalue("cantlalbaran", cant1.toQString()); 00131 } else { 00133 m_lineaActual = agregarLinea(); 00134 m_lineaActual->setDBvalue("idarticulo", idArticulo); 00135 m_lineaActual->setDBvalue("cantlalbaran", cantidad.toQString()); 00136 00138 QString query = "SELECT * FROM articulo WHERE idarticulo = " + idArticulo; 00139 cursor2 *cur = empresaBase()->cargacursor(query); 00140 if (!cur->eof()) { 00141 m_lineaActual->setDBvalue("pvplalbaran", cur->valor("pvparticulo")); 00142 m_lineaActual->setDBvalue("codigocompletoarticulo", cur->valor("codigocompletoarticulo")); 00143 m_lineaActual->setDBvalue("nomarticulo", cur->valor("nomarticulo")); 00144 m_lineaActual->setDBvalue("desclalbaran", cur->valor("nomarticulo")); 00145 } // end if 00146 00147 cursor2 *cur1 = empresaBase()->cargacursor("SELECT * FROM tasa_iva WHERE idtipo_iva = " + cur->valor("idtipo_iva") + " ORDER BY fechatasa_iva LIMIT 1"); 00148 if (!cur1->eof() ) 00149 m_lineaActual->setDBvalue("ivalalbaran", cur1->valor("porcentasa_iva")); 00150 delete cur1; 00151 delete cur; 00152 } // end if 00153 00154 00156 pintar(); 00157 00158 _depura("END Ticket::insertarArticulo", 0); 00159 return m_lineaActual; 00160 }
Definition at line 163 of file ticket.cpp.
References DBRecord::borrar(), and m_lineaActual.
00163 { 00165 if (m_lineaActual == NULL) { 00166 return; 00167 } 00168 00169 m_lineaActual->borrar(); 00170 00171 }
| void Ticket::vaciarTicket | ( | ) |
| void Ticket::subirPosArticulo | ( | DBRecord * | linea, | |
| int | filas = 1 | |||
| ) |
| void Ticket::bajarPosArticulo | ( | DBRecord * | linea, | |
| int | filas = 1 | |||
| ) |
| void Ticket::inicioPosTicket | ( | DBRecord * | ) |
| void Ticket::finPosTicket | ( | DBRecord * | ) |
| DBRecord * Ticket::lineaTicket | ( | int | posicion | ) |
| DBRecord * Ticket::lineaActTicket | ( | ) |
Definition at line 190 of file ticket.cpp.
References m_lineaActual.
Referenced by bajar(), MTicket::pintar(), and subir().
00190 { 00191 return m_lineaActual; 00192 }
| void Ticket::setLineaActual | ( | DBRecord * | ) |
Definition at line 194 of file ticket.cpp.
References m_lineaActual.
Referenced by bajar(), and subir().
00194 { 00195 m_lineaActual = rec; 00196 }
| void Ticket::setDescuentoGlobal | ( | Fixed | descuento | ) |
| void Ticket::imprimir | ( | ) | [virtual] |
Reimplemented from DBRecord.
Definition at line 201 of file ticket.cpp.
References _depura(), postgresiface2::cargacursor(), CONF_TICKET_PRINTER_FILE, confpr, DBRecord::DBvalue(), PEmpresaBase::empresaBase(), cursor2::eof(), listaLineas(), Fixed::toQString(), TRUE, cursor2::valor(), configuracion::valor(), and Fixed::value.
Referenced by EmpresaTPV::cobrar(), and Input::keyPressEvent().
00201 { 00202 base basesimp; 00203 base basesimpreqeq; 00204 00205 QFile file( confpr->valor(CONF_TICKET_PRINTER_FILE) ); 00206 if ( !file.open(QIODevice::WriteOnly | QIODevice::Unbuffered)) { 00207 _depura("Error en la Impresion de ticket", 2); 00208 } // end if 00209 file.write (QString("Empresa S.L\n").toAscii()); 00210 file.write (QString("====================================\n").toAscii()); 00211 file.write(QString("Direccion\n").toAscii()); 00212 file.write(QString("CP: 07000 Palma de Mallorca\n").toAscii()); 00213 file.write(QString("Tel: 971 00 00 00\n").toAscii()); 00215 file.write ( "\n \n", 3); 00216 00218 file.write( QString("Ticket: ").toAscii()); 00219 file.write( DBvalue("numalbaran").toAscii()); 00220 file.write ( "\n", 1); 00221 00222 00224 file.write( QString("Fecha: ").toAscii()); 00225 QDate fecha = QDate::currentDate(); 00226 QString sfecha = fecha.toString("d-M-yyyy"); 00227 file.write( sfecha.toAscii()); 00228 QTime hora = QTime::currentTime(); 00229 QString stime = " " + hora.toString("HH:mm"); 00230 file.write( stime.toAscii()); 00231 file.write ( "\n", 1); 00232 00233 00235 file.write( QString("Trabajador: ").toAscii()); 00236 cursor2 *cur = empresaBase()->cargacursor("SELECT * FROM trabajador WHERE idtrabajador=" + DBvalue("idtrabajador")); 00237 if (!cur->eof()) { 00238 file.write( DBvalue("idtrabajador").toAscii()); 00239 file.write(" "); 00240 file.write( cur->valor("nomtrabajador").toAscii()); 00241 file.write ( "\n", 1); 00242 } // end if 00243 delete cur; 00244 00246 cur = empresaBase()->cargacursor("SELECT * FROM cliente WHERE idcliente=" + DBvalue("idcliente")); 00247 if (!cur->eof()) { 00248 file.write( QString("Cliente: ").toAscii()); 00249 file.write( cur->valor("cifcliente").toAscii()); 00250 file.write ( " ", 1); 00251 file.write( cur->valor("nomcliente").toAscii()); 00252 file.write ( "\n", 1); 00253 } // end if 00254 delete cur; 00255 00257 cur = empresaBase()->cargacursor("SELECT * FROM almacen WHERE idalmacen=" + DBvalue("idalmacen")); 00258 if (!cur->eof()) { 00259 file.write( QString("Almacen: ").toAscii()); 00260 file.write( cur->valor("nomalmacen").toAscii()); 00261 file.write ( "\n", 1); 00262 } // end if 00263 delete cur; 00264 00265 00266 file.write ( "\n", 1); 00267 file.write ( "\n", 1); 00268 /* 00269 file.write( QString("Descripcion: ").toAscii()); 00270 file.write( m_albaranClienteView->DBvalue("descalbaran").toAscii()); 00271 file.write ( "\n", 1); 00272 */ 00273 // ============================================ 00275 QString l; 00276 Fixed irpf("0"); 00277 00278 cur = empresaBase()->cargacursor("SELECT * FROM configuracion WHERE nombre = 'IRPF'"); 00279 if (cur) { 00280 if (!cur->eof()) { 00281 irpf = Fixed(cur->valor("valor")); 00282 } // end if 00283 delete cur; 00284 } // end if 00285 00286 DBRecord *linea; 00287 Fixed descuentolinea("0.00"); 00288 for (int i = 0; i < listaLineas()->size(); ++i) { 00289 linea = listaLineas()->at(i); 00290 Fixed cant(linea->DBvalue("cantlalbaran")); 00291 Fixed pvpund(linea->DBvalue("pvplalbaran")); 00292 Fixed desc1(linea->DBvalue("descuentolalbaran")); 00293 Fixed cantpvp = cant * pvpund; 00294 Fixed base = cantpvp - cantpvp * desc1 / 100; 00295 descuentolinea = descuentolinea + (cantpvp * desc1 / 100); 00296 basesimp[linea->DBvalue("ivalalbaran")] = basesimp[linea->DBvalue("ivalalbaran")] + base; 00297 basesimpreqeq[linea->DBvalue("reqeqlalbaran")] = basesimpreqeq[linea->DBvalue("reqeqlalbaran")] + base; 00299 QString str = linea->DBvalue("cantlalbaran").rightJustified(5,' ')+QString(" ")+linea->DBvalue("desclalbaran").leftJustified(24,' ', TRUE)+linea->DBvalue("pvplalbaran").rightJustified(10, ' '); 00300 file.write(str.toAscii()); 00301 file.write ( "\n", 1); 00302 } // end for 00303 00304 00305 file.write ( "\n", 1); 00306 file.write ( "\n", 1); 00307 00308 Fixed basei("0.00"); 00309 base::Iterator it; 00310 for (it = basesimp.begin(); it != basesimp.end(); ++it) { 00311 basei = basei + it.value(); 00312 } // end for 00313 00316 Fixed porcentt("0.00"); 00317 00318 00320 Fixed totbaseimp("0.00"); 00321 Fixed parbaseimp("0.00"); 00322 for (it = basesimp.begin(); it != basesimp.end(); ++it) { 00323 if (porcentt > Fixed("0.00")) { 00324 parbaseimp = it.value() - it.value() * porcentt / 100; 00325 } else { 00326 parbaseimp = it.value(); 00327 } // end if 00328 QString str = "Base Imp" + it.key() + "% " + parbaseimp.toQString().rightJustified(10,' '); 00329 // file.write(str.rightJustified(42,' ').toAscii()); 00330 // file.write ( "\n", 1); 00331 totbaseimp = totbaseimp + parbaseimp; 00332 } // end for 00333 00335 Fixed totiva("0.00"); 00336 Fixed pariva("0.00"); 00337 for (it = basesimp.begin(); it != basesimp.end(); ++it) { 00338 Fixed piva(it.key().toAscii().constData()); 00339 if (porcentt > Fixed("0.00")) { 00340 pariva = (it.value() - it.value() * porcentt / 100) * piva / 100; 00341 } else { 00342 pariva = it.value() * piva / 100; 00343 } // end if 00344 QString str = "IVA" + it.key() + "% " + pariva.toQString().rightJustified(10,' '); 00345 // file.write(str.rightJustified(42,' ').toAscii()); 00346 // file.write ( "\n", 1); 00347 00348 totiva = totiva + pariva; 00349 } // end for 00350 00352 Fixed totreqeq("0.00"); 00353 Fixed parreqeq("0.00"); 00354 for (it = basesimpreqeq.begin(); it != basesimpreqeq.end(); ++it) { 00355 Fixed preqeq(it.key().toAscii().constData()); 00356 if (porcentt > Fixed("0.00")) { 00357 parreqeq = (it.value() - it.value() * porcentt / 100) * preqeq / 100; 00358 } else { 00359 parreqeq = it.value() * preqeq / 100; 00360 } // end if 00361 QString str = "R. Eq" + it.key() + "% " + parreqeq.toQString().rightJustified(10,' '); 00362 // file.write(str.rightJustified(42,' ').toAscii()); 00363 // file.write ( "\n", 1); 00364 totreqeq = totreqeq + parreqeq; 00365 } // end for 00366 00367 00368 00369 Fixed totirpf = totbaseimp * irpf / 100; 00370 00371 // file.write (QString("=======================\n").rightJustified(43,' ').toAscii()); 00372 00373 00374 QString str = "B.IMP " + totbaseimp.toQString().rightJustified(10,' '); 00375 // file.write(str.rightJustified(42,' ').toAscii()); 00376 // file.write ( "\n", 1); 00377 00378 str = "IVA " + totiva.toQString().rightJustified(10,' '); 00379 // file.write(str.rightJustified(42,' ').toAscii()); 00380 // file.write ( "\n", 1); 00381 00382 str = "IRPF " + totirpf.toQString().rightJustified(10,' '); 00383 // file.write(str.rightJustified(42,' ').toAscii()); 00384 // file.write ( "\n", 1); 00385 00386 00387 str = "( IVA INCLUIDO )"; 00388 file.write(str.rightJustified(42,' ').toAscii()); 00389 file.write ( "\n", 1); 00390 00391 00392 00394 file.write (QString("____________________\n").rightJustified(43,' ').toAscii()); 00395 00396 Fixed total = totiva + totbaseimp + totreqeq - totirpf; 00397 str = "TOTAL " + total.toQString().rightJustified(10,' '); 00398 file.write(str.rightJustified(42,' ').toAscii()); 00399 file.write ( "\n", 1); 00400 00401 00402 // ============================================ 00403 00404 00406 file.write ( "\n \n \n \n", 7); 00407 00410 file.write ("\x1Dh\x40",3); 00412 file.write ( "\x1DH\x02",3); 00414 file.write ( "\x1D",1); 00415 file.write ( "f\x01",2); 00416 ; 00418 file.write ( "\x1D\x77\x01",3); 00420 file.write ( "\x1Dk\x04",3); 00421 file.write (QString("ALB").toAscii()); 00422 file.write (" ", 1); 00423 file.write (DBvalue("idalbaran").toAscii()); 00424 file.write (" ", 1); 00425 file.write (DBvalue("numalbaran").toAscii()); 00426 file.write (" ", 1); 00427 file.write (DBvalue("refalbaran").toAscii()); 00428 file.write ("\x00", 1); 00429 00430 00432 /* 00433 file.write ("\x1B\x2A\x00\xD2\x00", 5); 00434 for (int i=0; i <15; i++) { 00435 file.write ( "\x01\x02\x04\x08\x10\x20\x40\x80", 8); 00436 file.write ("\x40\x20\x10\x08\x04\x02", 6); 00437 } 00438 */ 00440 file.write ( "\n \n \n \n \n", 9); 00441 00442 00444 file.write ("\x1D\x56\x01", 3); 00445 file.close(); 00446 }
| int Ticket::guardar | ( | ) | [virtual] |
Guarda los datos de la ficha en la base de datos.
Este metodo guarda los contenidos de la Ficha (siempre que esta haya sido inicializada). Luego llama a plugins y a guardarPost por si se quieren hacer acciones adicionales de guardado. Tras guardar todos los elementos hace una carga.
Reimplemented from DBRecord.
Definition at line 538 of file ticket.cpp.
References _depura(), postgresiface2::begin(), postgresiface2::cargacursor(), postgresiface2::commit(), DBRecord::DBload(), DBRecord::DBsave(), PEmpresaBase::empresaBase(), listaLineas(), mensajeInfo(), postgresiface2::rollback(), and DBRecord::setDBvalue().
Referenced by EmpresaTPV::cobrar().
00538 { 00539 _depura("Ticket::guardar", 0); 00540 00541 try { 00542 QString id; 00543 empresaBase()->begin(); 00544 DBsave(id); 00545 DBRecord *item; 00546 for (int i = 0; i < listaLineas()->size(); ++i) { 00547 QString id1; 00548 item = listaLineas()->at(i); 00549 item->setDBvalue("idalbaran", id); 00550 item->setDBvalue("ordenlalbaran", QString::number(i)); 00551 item->DBsave(id1); 00552 }// end for 00553 empresaBase()->commit(); 00554 00555 cursor2 *cur = empresaBase()->cargacursor("SELECT * FROM albaran WHERE idalbaran = " + id); 00556 DBload(cur); 00557 delete cur; 00558 00559 _depura("END Ticket::guardar", 0); 00560 return 0; 00561 } catch (...) { 00562 mensajeInfo("Error inesperado con la base de datos"); 00563 empresaBase()->rollback(); 00564 return -1; 00565 } // end try 00566 }
| void Ticket::subir | ( | ) | [virtual, slot] |
Definition at line 449 of file ticket.cpp.
References lineaActTicket(), listaLineas(), pintar(), and setLineaActual().
Referenced by Input::keyPressEvent().
00449 { 00450 int i = listaLineas()->indexOf(lineaActTicket()); 00451 if (i > 0) i--; 00452 setLineaActual(listaLineas()->at(i)); 00453 pintar(); 00454 }
| void Ticket::bajar | ( | ) | [virtual, slot] |
Definition at line 456 of file ticket.cpp.
References lineaActTicket(), listaLineas(), pintar(), and setLineaActual().
Referenced by Input::keyPressEvent().
00456 { 00457 int i = listaLineas()->indexOf(lineaActTicket()); 00458 if (i < listaLineas()->size() -1) i++; 00459 setLineaActual(listaLineas()->at(i)); 00460 pintar(); 00461 }
| void Ticket::agregarCantidad | ( | QString | cantidad | ) | [virtual, slot] |
Definition at line 464 of file ticket.cpp.
References DBRecord::DBvalue(), listaLineas(), m_lineaActual, mensajeAviso(), pintar(), and DBRecord::setDBvalue().
Referenced by Input::keyPressEvent().
00464 { 00465 Fixed cant(cantidad); 00467 if (m_lineaActual == NULL) { 00468 mensajeAviso("No existe linea"); 00469 return; 00470 } // end if 00471 Fixed cantorig(m_lineaActual->DBvalue("cantlalbaran")); 00472 Fixed suma = cant + cantorig; 00473 if (suma == Fixed("0.00")) { 00474 listaLineas()->removeAt(listaLineas()->indexOf(m_lineaActual)); 00475 m_lineaActual = listaLineas()->at(0); 00476 } else { 00477 m_lineaActual->setDBvalue("cantlalbaran", suma.toQString()); 00478 } // end if 00479 pintar(); 00480 }
| void Ticket::ponerCantidad | ( | QString | cantidad | ) | [virtual, slot] |
Definition at line 482 of file ticket.cpp.
References listaLineas(), m_lineaActual, mensajeAviso(), pintar(), DBRecord::setDBvalue(), and Fixed::toQString().
Referenced by Input::keyPressEvent(), and MTicket::on_mui_borrar_clicked().
00482 { 00483 Fixed cant(cantidad); 00485 if (m_lineaActual == NULL) { 00486 mensajeAviso("No existe linea"); 00487 return; 00488 } // end if 00489 00490 if (cant == 0) { 00491 listaLineas()->removeAt(listaLineas()->indexOf(m_lineaActual)); 00492 m_lineaActual = listaLineas()->at(0); 00493 } else { 00494 m_lineaActual->setDBvalue("cantlalbaran", cant.toQString()); 00495 } // end if 00496 pintar(); 00497 }
| void Ticket::ponerPrecio | ( | QString | precio | ) | [virtual, slot] |
Definition at line 499 of file ticket.cpp.
References m_lineaActual, mensajeAviso(), pintar(), DBRecord::setDBvalue(), and Fixed::toQString().
Referenced by Input::keyPressEvent().
00499 { 00500 Fixed valor(precio); 00502 if (m_lineaActual == NULL) { 00503 mensajeAviso("No existe linea"); 00504 return; 00505 } // end if 00506 m_lineaActual->setDBvalue("pvplalbaran", valor.toQString()); 00507 pintar(); 00508 }
| void Ticket::insertarArticuloCodigo | ( | QString | ) | [virtual, slot] |
Definition at line 510 of file ticket.cpp.
References postgresiface2::cargacursor(), PEmpresaBase::empresaBase(), cursor2::eof(), insertarArticulo(), and cursor2::valor().
Referenced by Input::keyPressEvent().
00510 { 00511 QString query = "SELECT * FROM articulo WHERE codigocompletoarticulo= '"+ codigo +"'"; 00512 cursor2 *cur = empresaBase()->cargacursor(query); 00513 if (!cur->eof()) { 00514 insertarArticulo(cur->valor("idarticulo"), Fixed("1")); 00515 } // end if 00516 delete cur; 00517 }
| void Ticket::insertarArticuloCodigoNL | ( | QString | ) | [virtual, slot] |
Definition at line 519 of file ticket.cpp.
References postgresiface2::cargacursor(), PEmpresaBase::empresaBase(), cursor2::eof(), insertarArticulo(), TRUE, and cursor2::valor().
Referenced by Input::keyPressEvent().
00519 { 00520 QString query = "SELECT * FROM articulo WHERE codigocompletoarticulo= '"+ codigo +"'"; 00521 cursor2 *cur = empresaBase()->cargacursor(query); 00522 if (!cur->eof()) { 00523 insertarArticulo(cur->valor("idarticulo"), Fixed("1"), TRUE); 00524 } // end if 00525 delete cur; 00526 }
QList<DBRecord *>* Ticket::m_listaLineas [private] |
DBRecord* Ticket::m_lineaActual [private] |
Definition at line 38 of file ticket.h.
Referenced by agregarCantidad(), borrarArticulo(), insertarArticulo(), lineaActTicket(), ponerCantidad(), ponerPrecio(), setLineaActual(), and Ticket().
1.5.1