void ArtGraficos::on_mui_list_cellClicked ( int row, int column ) { BL_FUNC_DEBUG QString artvarios = g_confpr->value( CONF_ARTICULOS_VARIOS ); QString codigo = m_articulos[row][column]; QString idArticulo = m_nodarticulos[row][column].firstChildElement("IDARTICULO").toElement().text(); BtTicket *tick = (( BtCompany * ) mainCompany() ) ->ticketActual(); /// Buscamos si ya hay una linea con el articulo que buscamos BlDbRecord *m_lineaActual = NULL; BlDbRecord *item; bool nuevaLinea = artvarios.contains ( codigo ); for ( int i = 0; i < tick->listaLineas() ->size(); ++i ) { item = tick->listaLineas() ->at ( i ); if ( item->dbValue ( "idarticulo" ) == idArticulo ) m_lineaActual = item; }// end for if ( m_lineaActual && nuevaLinea == false ) { /// Ya hay una linea con este articulo (es un agregado) BlFixed cantidadib ( m_lineaActual->dbValue ( "cantlalbaran" ) ); BlFixed cant1 = cantidadib + BlFixed("1"); m_lineaActual->setDbValue ( "cantlalbaran", cant1.toQString() ); } else { /// No hay ningun item con este articulo (es una insercion) m_lineaActual = tick->agregarLinea(); m_lineaActual->setDbValue ( "idarticulo", idArticulo ); QString a("1.00"); m_lineaActual->setDbValue ( "cantlalbaran", "1.00" ); m_lineaActual->setDbValue ( "pvpivainclalbaran", m_nodarticulos[row][column].firstChildElement("PVPIVAINCARTICULO").toElement().text()); m_lineaActual->setDbValue ( "pvplalbaran", m_nodarticulos[row][column].firstChildElement("PVPARTICULO").toElement().text()); m_lineaActual->setDbValue ( "codigocompletoarticulo", m_nodarticulos[row][column].firstChildElement("PVPIVAINCARTICULO").toElement().text()); m_lineaActual->setDbValue ( "nomarticulo", m_nodarticulos[row][column].firstChildElement("NOMARTICULO").toElement().text()); m_lineaActual->setDbValue ( "desclalbaran", m_nodarticulos[row][column].firstChildElement("NOMARTICULO").toElement().text()); m_lineaActual->setDbValue ( "ivalalbaran", m_nodarticulos[row][column].firstChildElement("IVAARTICULO").toElement().text()); } // end if /// Pintamos el ticket ya que se ha modificado. tick->pintar(); BlDebug::blDebug("END ArtGraficos::on_mui_list_cellClicked"); }
void Trabajadores::trabajadorClicked() { BtCompany *emp1 = ( BtCompany * ) mainCompany(); BtTicket *ticket = NULL; BtTicket *ticketv = NULL; bool encontrado = false; /// Buscamos cual ha sido el trabajador pulsado. BlDbRecordSet *cur = mainCompany() ->loadQuery ( "SELECT * FROM trabajador" ); while ( !encontrado && !cur->eof() ) { if ( ( ( QPushButton * ) sender() ) ->text() == cur->value( "nomtrabajador" ) + " " + cur->value( "apellidostrabajador" ) && ((cur->value("passwordtrabajador") == mui_password->text() || cur->value("passwordtrabajador") == "")) ) { encontrado = true; } else { cur->nextRecord(); } // end if } // end while if (encontrado) { /// Buscamos el ticket vacio de este trabajador y lo pintamos for ( int i = 0; i < emp1->listaTickets() ->size(); ++i ) { ticket = emp1->listaTickets() ->at ( i ); if ( ticket->nomTicketDefecto() == ticket->dbValue ( "nomticket" ) && cur->value( "idtrabajador" ) == ticket->dbValue ( "idtrabajador" ) ) { ( ( BtCompany * ) mainCompany() ) ->setTicketActual ( ticket ); ticket->pintar(); ticketv = ticket; }// end if }// end for /// Si el trabajador no tiene ticket vacio lo creamos y le ponemos el idtrabajador. if ( !ticketv ) { BtTicket * tick = emp1->newBtTicket(); tick->setDbValue ( "idtrabajador", cur->value( "idtrabajador" ) ); emp1->setTicketActual ( tick ); emp1->listaTickets() ->append ( tick ); tick->pintar(); }// end if /// Segun los privilegios que tenga el camarero le desabilitamos determinados objetos. if(cur->value("admintrabajador") == "t") { QToolButton *toolz = g_main->findChild<QToolButton *> ( "mui_z" ); if (toolz) { toolz->setEnabled(true); } // end if QToolButton *toolx = g_main->findChild<QToolButton *> ( "mui_x" ); if (toolx) { toolx->setEnabled(true); } // end if QToolButton *toolborraticket = g_main->findChild<QToolButton *> ( "mui_borrarticket" ); if (toolborraticket) { toolborraticket->setEnabled(true); } // end if } else { QToolButton *toolz = g_main->findChild<QToolButton *> ( "mui_z" ); if (toolz) { toolz->setEnabled(false); } // end if QToolButton *toolx = g_main->findChild<QToolButton *> ( "mui_x" ); if (toolx) { toolx->setEnabled(false); } // end if QToolButton *toolborraticket = g_main->findChild<QToolButton *> ( "mui_borrarticket" ); if (toolborraticket) { toolborraticket->setEnabled(false); } // end if } // end if delete cur; m_validUser = true; done ( 0 ); } // end if }
void Mesa::abrirMesa() { BtCompany * emp = ( BtCompany * ) mainCompany(); /// Miramos que no haya ningun ticket abierto con el nombre usado BtTicket *ticket; for ( int i = 0; i < emp->listaTickets() ->size(); ++i ) { ticket = emp->listaTickets() ->at ( i ); if ( m_nombreMesa == ticket->dbValue ( "nomticket" )) { /// Quitamos el bloqueo emp->ticketActual() ->setDbValue( "bloqueadoticket", "FALSE"); /// Llamamos a plugins para poder hacer lo pertinente g_plugins->run("Abrevs_on_mui_aparcar_clicked", this); /// Ponemos al trabajador creado el trabajador del ticket actual. emp->setTicketActual ( ticket ); /// Borra el valor del Input. emp->pulsaTecla ( Qt::Key_F4, "" ); /// Llamamos a plugins para poder hacer lo pertinente g_plugins->run("Abrevs_on_mui_aparcar_clicked_Post", this); /// Ponemos el nuevo bloqueo ticket->setDbValue("bloqueadoticket", "TRUE"); ticket->pintar(); g_mesas->on_mui_mesas_clicked(); return; }// end if }// end for BtTicket *tick; tick = emp->newBtTicket(); tick->setDbValue ( "idtrabajador", emp->ticketActual() ->dbValue ( "idtrabajador" ) ); emp->setValorBtInput(m_nombreMesa); emp->listaTickets() ->insert ( 0, tick ); /// El nombre del ticket a aparcar lo coge del BtInput. tick ->setDbValue ( "nomticket", m_nombreMesa ); /// Quitamos el bloqueo emp->ticketActual() ->setDbValue( "bloqueadoticket", "FALSE"); /// Llamamos a plugins para poder hacer lo pertinente g_plugins->run("Abrevs_on_mui_aparcar_clicked", this); /// Ponemos al trabajador creado el trabajador del ticket actual. emp->setTicketActual ( tick ); /// Borra el valor del Input. emp->pulsaTecla ( Qt::Key_F4, "" ); /// Llamamos a plugins para poder hacer lo pertinente g_plugins->run("Abrevs_on_mui_aparcar_clicked_Post", this); /// Ponemos el nuevo bloqueo tick->setDbValue("bloqueadoticket", "TRUE"); tick->pintar(); g_mesas->on_mui_mesas_clicked(); }