void ordersfrm::complete() { int r = QMessageBox::question(this, tr("Complete items..."),tr("Change status for completed items?"),QMessageBox::Yes, QMessageBox::No); if(r == QMessageBox::Yes) { int i; QTreeWidgetItem *item = new QTreeWidgetItem; for(i=0;i<treemain->topLevelItemCount();i++) { item = treemain->topLevelItem(i); if(item->checkState(0)) { QString qstr = QString("SELECT STATUS, STOCK, DEF FROM `orders` WHERE `ID`=%1;").arg(item->text(0)); QSqlQuery query1(qstr); query1.next(); if(query1.value(0).toInt() < 2) { QSqlQuery query2; query2.prepare("UPDATE `orders` SET `STATUS`= :status, `DATE"+QString("%1").arg(query1.value(0).toInt()+2, 0, 10)+"`= :date WHERE `ID`=:ID LIMIT 1;"); query2.bindValue(":status", query1.value(0).toInt()+1); query2.bindValue(":date", QDate::currentDate().toString("yyyy-MM-dd")); query2.bindValue(":ID", item->text(0)); query2.exec(); } if(query1.value(0).toInt() == 2) { qstr = QString("UPDATE `orders` SET `STATUS`= '%1' WHERE `ID`='%2' LIMIT 1;").arg(query1.value(0).toInt()+1).arg(item->text(0)); QSqlQuery query2(qstr); qstr = QString("SELECT NAME, USERS FROM datatables WHERE `DESCRIPTION`='%1';").arg(query1.value(1).toString()); QSqlQuery query3(qstr); query3.next(); QString stock = query3.value(0).toString(); qstr = QString("SELECT ID, col3 FROM %1 WHERE `col1`= '%2';").arg(stock).arg(item->text(2)); QSqlQuery query4(qstr); query4.next(); QString id = query4.value(0).toString(); QString old_q = query4.value(1).toString(); qstr = QString("UPDATE `%1` SET `col3`= '%2' WHERE `ID`= '%3' LIMIT 1;").arg(stock).arg(old_q.toInt() + item->text(4).toInt()).arg(id); QSqlQuery query5(qstr); QMessageBox::question(this, tr("Complete items..."), query5.executedQuery()); } } } loadentries(); countentries(); } }
int handleclient(int conn) { char *basedir; char *clientdir; mp3entry *mp3buf; FILE *stream; if ((stream = fdopen(conn, "r+")) == NULL || !readrequest(stream)) { debug(1, "error while reading client request"); fclose(stream); return(EXIT_FAILURE); } debug(1, "requested path %s", conf.path); GETCWD(basedir); if(chdir(conf.path)) die("incorrect dir"); GETCWD(clientdir); debug(1, "doing security checks"); if(strncmp(basedir, clientdir, strlen(basedir) - 1)) { fclose(stream); debug(1, "basedir %s, clientdir %s", basedir, clientdir); die("client tried to break out of base directory"); } debug(1, "looking for mp3 files in subdirectory %s", conf.path); if(!MODE_ISSET(MODE_SINGLE)) { getfiles("."); } else if(validfile(conf.filename, clientdir, &mp3buf)) { addentry(&root, mp3buf); } if(!root) die("no files"); else debug(1, "%d MP3 file(s) found", countentries(root)); if(!MODE_ISSET(MODE_INDEX) && !conf.order) { debug(1, "shuffling mp3 files"); shuffleentries(); } if(conf.debuglevel > 2) { debug(1, "listing mp3 files"); dumpentries(); } if(MODE_ISSET(MODE_INDEX)) { debug(1, "entering HTTP mode"); fprintf(stream, HTTPSERVMSG, AMPLE_VERSION); fflush(stream); createhtml(stream,(clientdir + strlen(basedir)),(strlen(clientdir) + 1)); } else if(MODE_ISSET(MODE_SINGLE)) { debug(1, "entering MP3-Single mode"); fprintf(stream, SINGLESERVMSG, AMPLE_VERSION, root->filesize); fflush(stream); playfile(stream, root); } else if (MODE_ISSET(MODE_METADATA)) { debug(1, "entering MP3-Metadata mode"); fprintf(stream, SHOUTSERVMSG, AMPLE_VERSION, conf.servername, BYTESBETWEENMETA); fflush(stream); playlist(stream); } else { debug(1, "entering MP3-Basic mode"); fprintf(stream, BASICSERVMSG, AMPLE_VERSION); fflush(stream); playlist(stream); } fclose(stream); clearlist(root); return(EXIT_SUCCESS); }