void ItemLineEdit::setItemNumber(const QString& pNumber) { if (DEBUG) qDebug("%s::setItemNumber(%s) entered", qPrintable(objectName()), qPrintable(pNumber)); XSqlQuery item; bool found = FALSE; _parsed = TRUE; if (pNumber == text()) return; if (!pNumber.isEmpty()) { if (_useValidationQuery) { item.prepare(_validationSql); item.bindValue(":item_number", pNumber); item.exec(); if (item.first()) found = TRUE; } else if (_useQuery) { item.prepare(_sql); item.exec(); found = (item.findFirst("item_number", pNumber) != -1); } else if (pNumber != QString::Null()) { QString pre( "SELECT DISTINCT item_id, item_number, item_descrip1, item_descrip2," " uom_name, item_type, item_config, item_fractional, item_upccode"); QStringList clauses; clauses = _extraClauses; clauses << "(item_number=:item_number OR item_upccode=:item_number)"; item.prepare(buildItemLineEditQuery(pre, clauses, QString::null, _type, false)); item.bindValue(":item_number", pNumber); item.exec(); if (item.size() > 1) { ParameterList params; params.append("search", pNumber); params.append("searchNumber"); params.append("searchUpc"); sSearch(params); return; } else found = item.first(); } } if (found) { _itemNumber = pNumber; _uom = item.value("uom_name").toString(); _itemType = item.value("item_type").toString(); _configured = item.value("item_config").toBool(); _fractional = item.value("item_fractional").toBool(); _id = item.value("item_id").toInt(); _upc = item.value("item_upccode").toInt(); _valid = TRUE; setText(item.value("item_number").toString()); emit aliasChanged(""); emit typeChanged(_itemType); emit descrip1Changed(item.value("item_descrip1").toString()); emit descrip2Changed(item.value("item_descrip2").toString()); emit uomChanged(item.value("uom_name").toString()); emit configured(item.value("item_config").toBool()); emit fractional(item.value("item_fractional").toBool()); emit upcChanged(item.value("item_upccode").toString()); emit valid(TRUE); } else { _itemNumber = ""; _uom = ""; _itemType = ""; _id = -1; _valid = FALSE; _upc = ""; setText(""); emit aliasChanged(""); emit typeChanged(""); emit descrip1Changed(""); emit descrip2Changed(""); emit uomChanged(""); emit configured(FALSE); emit fractional(FALSE); emit upcChanged(""); emit valid(FALSE); } }
void ItemLineEdit::silentSetId(const int pId) { XSqlQuery item; bool found = FALSE; _parsed = TRUE; if (_useValidationQuery) { item.prepare(_validationSql); item.bindValue(":item_id", pId); item.exec(); if (item.first()) found = TRUE; } else if (_useQuery) { item.prepare(_sql); item.exec(); found = (item.findFirst("item_id", pId) != -1); } else if (pId != -1) { QString pre( "SELECT DISTINCT item_number, item_descrip1, item_descrip2," " uom_name, item_type, item_config, item_upccode"); QStringList clauses; clauses = _extraClauses; clauses << "(item_id=:item_id)"; item.prepare(buildItemLineEditQuery(pre, clauses, QString::null, _type)); item.bindValue(":item_id", pId); item.exec(); found = item.first(); } if (found) { if (completer()) { disconnect(this, SIGNAL(textChanged(QString)), this, SLOT(sHandleCompleter())); static_cast<QSqlQueryModel* >(completer()->model())->setQuery(QSqlQuery()); } _itemNumber = item.value("item_number").toString(); _uom = item.value("uom_name").toString(); _itemType = item.value("item_type").toString(); _configured = item.value("item_config").toBool(); _upc = item.value("item_upccode").toString(); _id = pId; _valid = TRUE; setText(item.value("item_number").toString()); emit aliasChanged(""); emit typeChanged(_itemType); emit descrip1Changed(item.value("item_descrip1").toString()); emit descrip2Changed(item.value("item_descrip2").toString()); emit uomChanged(item.value("uom_name").toString()); emit configured(item.value("item_config").toBool()); emit upcChanged(item.value("item_upccode").toString()); emit valid(TRUE); if (completer()) connect(this, SIGNAL(textChanged(QString)), this, SLOT(sHandleCompleter())); } else { _itemNumber = ""; _uom = ""; _itemType = ""; _id = -1; _upc = ""; _valid = FALSE; setText(""); emit aliasChanged(""); emit typeChanged(""); emit descrip1Changed(""); emit descrip2Changed(""); emit uomChanged(""); emit configured(FALSE); emit upcChanged(""); emit valid(FALSE); } }