Exemple #1
0
int XSqlQueryProto::findFirst(const QString & col, const QString & val)
{
  XSqlQuery *item = qscriptvalue_cast<XSqlQuery*>(thisObject());
  if (item)
    return item->findFirst(col, val);
  return -1;
}
Exemple #2
0
void commentType::sModuleSelected(const QString &pModule)
{
  XTreeWidgetItem *granted = NULL;
  XTreeWidgetItem *available = NULL;

  _available->clear();
  _granted->clear();

  XSqlQuery sources;
  sources.prepare( "SELECT source_id, source_descrip "
                   "FROM source "
                   "WHERE (source_module=:source_module) "
                   "ORDER BY source_descrip;" );
  sources.bindValue(":source_module", pModule);
  sources.exec();
  if (sources.first())
  {
    granted = NULL;
    available = NULL;

//  Insert each source into either the available or granted list
    XSqlQuery cmnttypesource;
    cmnttypesource.prepare( "SELECT source_id "
                            "FROM source, cmnttypesource "
                            "WHERE ( (cmnttypesource_source_id=source_id)"
                            " AND (cmnttypesource_cmnttype_id=:cmnttype_id)"
                            " AND (source_module=:source_module) );" );
    cmnttypesource.bindValue(":cmnttype_id", _cmnttypeid);
    cmnttypesource.bindValue(":source_module", _module->currentText());
    cmnttypesource.exec();

    do
    {
      if (cmnttypesource.findFirst("source_id", sources.value("source_id").toInt()) == -1)
        available = new XTreeWidgetItem(_available, available, sources.value("source_id").toInt(), sources.value("source_descrip"));
      else
      {
        granted = new XTreeWidgetItem(_granted, granted, sources.value("source_id").toInt(), sources.value("source_descrip"));
      }
    }
    while (sources.next());
  }
}
Exemple #3
0
void group::sModuleSelected(const QString &pModule)
{
  _available->clear();
  _granted->clear();

  XSqlQuery privs;
  privs.prepare( "SELECT priv_id, priv_name "
                 "FROM priv "
                 "WHERE (priv_module=:priv_module) "
                 "ORDER BY priv_name;" );
  privs.bindValue(":priv_module", pModule);
  privs.exec();
  if (privs.first())
  {
    XTreeWidgetItem *granted = NULL;
    XTreeWidgetItem *available = NULL;

//  Insert each priv into either the available or granted list
    XSqlQuery grppriv;
    grppriv.prepare( "SELECT priv_id "
                     "FROM priv, grppriv "
                     "WHERE ( (grppriv_priv_id=priv_id)"
                     " AND (grppriv_grp_id=:grp_id)"
                     " AND (priv_module=:priv_module) );" );
    grppriv.bindValue(":grp_id", _grpid);
    grppriv.bindValue(":priv_module", _module->currentText());
    grppriv.exec();
    do
    {
      if (grppriv.findFirst("priv_id", privs.value("priv_id").toInt()) == -1)
        available = new XTreeWidgetItem(_available, available, privs.value("priv_id").toInt(), privs.value("priv_name"));
      else
        granted = new XTreeWidgetItem(_granted, granted, privs.value("priv_id").toInt(), privs.value("priv_name"));
    }
    while (privs.next());
  }
}
Exemple #4
0
void user::sModuleSelected(const QString &pModule)
{
    XTreeWidgetItem *granted = NULL;
    XTreeWidgetItem *available = NULL;

    _availableGroup->clear();
    _grantedGroup->clear();
    XSqlQuery groups;
    groups.prepare("SELECT grp_id, grp_name, grp_descrip, usrgrp_id"
                   "  FROM grp LEFT OUTER JOIN usrgrp"
                   "    ON (usrgrp_grp_id=grp_id AND usrgrp_username=:username);");
    groups.bindValue(":username", _cUsername);
    groups.exec();
    while(groups.next())
    {
        if (groups.value("usrgrp_id").toInt() == 0)
            available = new XTreeWidgetItem(_availableGroup, available, groups.value("grp_id").toInt(), groups.value("grp_name"), groups.value("grp_descrip"));
        else
            granted = new XTreeWidgetItem(_grantedGroup, granted, groups.value("grp_id").toInt(), groups.value("grp_name"), groups.value("grp_descrip"));
    }
    if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting Groups"),
                             groups, __FILE__, __LINE__))
        return;

    _available->clear();
    _granted->clear();

    XSqlQuery privs;
    privs.prepare( "SELECT priv_id, priv_name, priv_descrip "
                   "FROM priv "
                   "WHERE (priv_module=:priv_module) "
                   "ORDER BY priv_name;" );
    privs.bindValue(":priv_module", pModule);
    privs.exec();
    if (privs.first())
    {
        granted = NULL;
        available = NULL;

//  Insert each priv into either the available or granted list
        XSqlQuery usrpriv;
        usrpriv.prepare( "SELECT priv_id "
                         "FROM priv, usrpriv "
                         "WHERE ( (usrpriv_priv_id=priv_id)"
                         " AND (usrpriv_username=:username)"
                         " AND (priv_module=:priv_module) );" );
        usrpriv.bindValue(":username", _cUsername);
        usrpriv.bindValue(":priv_module", _module->currentText());
        usrpriv.exec();

        XSqlQuery grppriv;
        grppriv.prepare("SELECT priv_id"
                        "  FROM priv, grppriv, usrgrp"
                        " WHERE((usrgrp_grp_id=grppriv_grp_id)"
                        "   AND (grppriv_priv_id=priv_id)"
                        "   AND (usrgrp_username=:username)"
                        "   AND (priv_module=:priv_module));");
        grppriv.bindValue(":username", _cUsername);
        grppriv.bindValue(":priv_module", _module->currentText());
        grppriv.exec();

        do
        {
            if (usrpriv.findFirst("priv_id", privs.value("priv_id").toInt()) == -1 && grppriv.findFirst("priv_id", privs.value("priv_id").toInt()) == -1)
                available = new XTreeWidgetItem(_available, available, privs.value("priv_id").toInt(), privs.value("priv_name"), privs.value("priv_descrip"));
            else
            {
                granted = new XTreeWidgetItem(_granted, granted, privs.value("priv_id").toInt(), privs.value("priv_name"), privs.value("priv_descrip"));
                if(usrpriv.findFirst("priv_id", privs.value("priv_id").toInt()) == -1)
                    granted->setTextColor(Qt::gray);
            }
        }
        while (privs.next());
    }
}
Exemple #5
0
void WoLineEdit::sParse()
{
  if (!_parsed)
  {
    if (text().stripWhiteSpace().length() == 0)
      setId(-1);

    else if (_useQuery)
    {
      XSqlQuery wo;
      wo.prepare(_sql);
      wo.exec();
      if (wo.findFirst("wonumber", text().stripWhiteSpace().upper()) != -1)
      {
        setId(wo.value("wo_id").toInt());
        return;
      }
    }

    else if (text().contains('-'))
    {
      int soNumber = text().left(text().find('-')).toInt();
      int subNumber = text().right(text().length() - text().find('-') - 1).toInt();
 //     bool statusCheck = FALSE;
      QString sql = QString( "SELECT wo_id "
                             "FROM wo "
                             "WHERE ((wo_number=%1)"
                             " AND (wo_subnumber=%2)" )
                    .arg(soNumber)
                    .arg(subNumber);

  //  Add in the Status checks
      QStringList statuses;
      if (_woType & cWoOpen)
        statuses << "(wo_status='O')";

      if (_woType & cWoExploded)
        statuses << "(wo_status='E')";

      if (_woType & cWoReleased)
        statuses << "(wo_status='R')";

      if (_woType & cWoIssued)
        statuses << "(wo_status='I')";

      if (_woType & cWoClosed)
        statuses << "(wo_status='C')";

      if(!statuses.isEmpty())
        sql += " AND (" + statuses.join(" OR ") + ")";

      sql += ")";

      XSqlQuery wo(sql);

      if (wo.first())
        setId(wo.value("wo_id").toInt());
      else
        setId(-1);
    }

    else
    {
      bool statusCheck = FALSE;
      QString sql = QString( "SELECT wo_id, wo_number "
                             "FROM wo "
                             "WHERE ((wo_number=%1)")
                    .arg(text().toInt());

//  Add in the Status checks
      if (_woType)
      {
	sql += " AND (";

	if (_woType & cWoOpen)
	{
	  sql += "(wo_status='O')";
	  statusCheck = TRUE;
	}

	if (_woType & cWoExploded)
	{
	  if (statusCheck)
	    sql += " OR ";
	  sql += "(wo_status='E')";
	  statusCheck = TRUE;
	}

	if (_woType & cWoReleased)
	{
	  if (statusCheck)
	    sql += " OR ";
	  sql += "(wo_status='R')";
	  statusCheck = TRUE;
	}

	if (_woType & cWoIssued)
	{
	  if (statusCheck)
	    sql += " OR ";
	  sql += "(wo_status='I')";
	  statusCheck = TRUE;
	}

	if (_woType & cWoClosed)
	{
	  if (statusCheck)
	    sql += " OR ";
	  sql += "(wo_status='C')";
	}

	sql += ")";
      }
      sql += ");";

      XSqlQuery wo(sql);

      if (wo.first())
      {
        if (wo.size() == 1)
          setId(wo.value("wo_id").toInt());
        else
        {
          setId(-1);
          setText(wo.value("wo_number").toString() + "-");
          focusNextPrevChild(FALSE);
          home(FALSE);
          end(FALSE);
        }
      }
      else
        setId(-1);
    }
  }
}
Exemple #6
0
void WoLineEdit::setId(int pId)
{
  bool found = FALSE;
  if (pId != -1)
  {
    XSqlQuery wo;
	if (_useQuery)
    {
      wo.prepare(_sql);
      wo.exec();
      found = (wo.findFirst("wo_id", pId) != -1);
    }
	else
	{
      wo.prepare( "SELECT formatWONumber(wo_id) AS wonumber,"
                  "       warehous_code, item_id, item_number, uom_name,"
                  "       item_descrip1, item_descrip2,"
                  "       wo_qtyord, wo_qtyrcv, wo_status,"
                  "       formatDate(wo_duedate) AS duedate,"
                  "       formatDate(wo_startdate) AS startdate,"
                  "       formatQtyPer(wo_qtyord) AS ordered,"
                  "       formatQtyPer(wo_qtyrcv) AS received, "
                  "       formatQtyPer(noNeg(wo_qtyord - wo_qtyrcv)) AS balance "
                  "FROM wo, itemsite, item, warehous, uom "
                  "WHERE ((wo_itemsite_id=itemsite_id)"
                  " AND (itemsite_item_id=item_id)"
                  " AND (item_inv_uom_id=uom_id)"
                  " AND (itemsite_warehous_id=warehous_id)"
                  " AND (wo_id=:wo_id));" );
      wo.bindValue(":wo_id", pId);
      wo.exec();
      found = (wo.first());
	}
	if (found)
    {
      _id    = pId;
      _valid = TRUE;

      setText(wo.value("wonumber").toString());

      emit newId(_id);
      emit newItemid(wo.value("item_id").toInt());
      emit warehouseChanged(wo.value("warehous_code").toString());
      emit itemNumberChanged(wo.value("item_number").toString());
      emit uomChanged(wo.value("uom_name").toString());
      emit itemDescrip1Changed(wo.value("item_descrip1").toString());
      emit itemDescrip2Changed(wo.value("item_descrip2").toString());
      emit startDateChanged(wo.value("startdate").toString());
      emit dueDateChanged(wo.value("duedate").toString());
      emit qtyOrderedChanged(wo.value("ordered").toString());
      emit qtyReceivedChanged(wo.value("received").toString());
      emit qtyBalanceChanged(wo.value("balance").toString());
      emit statusChanged(wo.value("wo_status").toString());
      emit valid(TRUE);

      _qtyOrdered  = wo.value("wo_qtyord").toDouble();
      _qtyReceived = wo.value("wo_qtyrcv").toDouble();

      _parsed = TRUE;

      return;
    }
  }

  _id    = -1;
  _valid = FALSE;

  setText("");

  emit newId(-1);
  emit newItemid(-1);
  emit warehouseChanged("");
  emit itemNumberChanged("");
  emit uomChanged("");
  emit itemDescrip1Changed("");
  emit itemDescrip2Changed("");
  emit startDateChanged("");
  emit dueDateChanged("");
  emit qtyOrderedChanged("");
  emit qtyReceivedChanged("");
  emit qtyBalanceChanged("");
  emit statusChanged("");
  emit valid(FALSE);
    
  _qtyOrdered  = 0;
  _qtyReceived = 0;

  _parsed = TRUE;
}
Exemple #7
0
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);
  }
} 
Exemple #8
0
void ItemLineEdit::setItemNumber(const QString& 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_upccode");

      QStringList clauses;
      clauses = _extraClauses;
      clauses << "(item_number=:item_number OR item_upccode=:item_number)";

      item.prepare(buildItemLineEditQuery(pre, clauses, QString::null, _type));
      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();
    _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 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 upcChanged("");

    emit valid(FALSE);
  }
}
Exemple #9
0
void WoLineEdit::setId(int pId)
{
  bool found = FALSE;
  if (pId != -1)
  {
    XSqlQuery wo;
    if (_useQuery)
    {
      wo.prepare(_sql);
      wo.exec();
      found = (wo.findFirst("wo_id", pId) != -1);
    }
    else
    {
      wo.prepare( "SELECT formatWONumber(wo_id) AS wonumber,"
                  "       warehous_code, item_id, item_number, uom_name,"
                  "       item_descrip1, item_descrip2,"
                  "       abs(wo_qtyord) AS wo_qtyord,"
                  "       abs(wo_qtyrcv) AS wo_qtyrcv, "
                  "       CASE WHEN (wo_status = 'O') THEN :open "
                  "       WHEN (wo_status = 'E') THEN :exploded "
                  "       WHEN (wo_status = 'I') THEN :inprocess "
                  "       WHEN (wo_status = 'R') THEN :released "
                  "       WHEN (wo_status = 'C') THEN :closed "
                  "       ELSE :unknown END AS wo_status,"
                  "       wo_duedate,"
                  "       wo_startdate,"
                  "       noNeg(abs(wo_qtyord) - abs(wo_qtyrcv)) AS balance, "
                  "       CASE WHEN (wo_qtyord >= 0) THEN "
                  "         :assemble "
                  "       ELSE "
                  "         :disassemble "
                  "       END AS wo_method, "
                  "       CASE WHEN (wo_qtyord >= 0) THEN "
                  "         'A' "
                  "       ELSE "
                  "         'D' "
                  "       END AS method "
                  "FROM wo, itemsite, item, warehous, uom "
                  "WHERE ((wo_itemsite_id=itemsite_id)"
                  " AND (itemsite_item_id=item_id)"
                  " AND (item_inv_uom_id=uom_id)"
                  " AND (itemsite_warehous_id=warehous_id)"
                  " AND (wo_id=:wo_id));" );
      wo.bindValue(":wo_id", pId);
      wo.bindValue(":assemble", tr("Assembly"));
      wo.bindValue(":disassemble", tr("Disassembly"));
      wo.bindValue(":open", tr("Open"));
      wo.bindValue(":exploded", tr("Exploded"));
      wo.bindValue(":inprocess", tr("In Process"));
      wo.bindValue(":released", tr("Released"));
      wo.bindValue(":closed", tr("Closed"));
      wo.exec();
      found = (wo.first());
    }
    if (found)
    {
      _id    = pId;
      _valid = TRUE;

      setText(wo.value("wonumber").toString());

      _qtyOrdered  = wo.value("wo_qtyord").toDouble();
      _qtyReceived = wo.value("wo_qtyrcv").toDouble();
      _method = wo.value("method").toString();

      emit newId(_id);
      emit newItemid(wo.value("item_id").toInt());
      emit warehouseChanged(wo.value("warehous_code").toString());
      emit itemNumberChanged(wo.value("item_number").toString());
      emit uomChanged(wo.value("uom_name").toString());
      emit itemDescrip1Changed(wo.value("item_descrip1").toString());
      emit itemDescrip2Changed(wo.value("item_descrip2").toString());
      emit startDateChanged(wo.value("wo_startdate").toDate());
      emit dueDateChanged(wo.value("wo_duedate").toDate());
      emit qtyOrderedChanged(wo.value("wo_qtyord").toDouble());
      emit qtyReceivedChanged(wo.value("wo_qtyrcv").toDouble());
      emit qtyBalanceChanged(wo.value("balance").toDouble());
      emit statusChanged(wo.value("wo_status").toString());
      emit methodChanged(wo.value("wo_method").toString());
      emit valid(TRUE);
    }
  }
  else
  {
    _id    = -1;
    _valid = FALSE;

    setText("");

    emit newId(-1);
    emit newItemid(-1);
    emit warehouseChanged("");
    emit itemNumberChanged("");
    emit uomChanged("");
    emit itemDescrip1Changed("");
    emit itemDescrip2Changed("");
    emit startDateChanged(QDate());
    emit dueDateChanged(QDate());
    emit qtyOrderedChanged(0);
    emit qtyReceivedChanged(0);
    emit qtyBalanceChanged(0);
    emit statusChanged("");
    emit methodChanged("");
    emit valid(FALSE);
      
    _qtyOrdered  = 0;
    _qtyReceived = 0;
  }
  
  if (_mapper->model() &&
    _mapper->model()->data(_mapper->model()->index(_mapper->currentIndex(),_mapper->mappedSection(this))).toString() != text())
      _mapper->model()->setData(_mapper->model()->index(_mapper->currentIndex(),_mapper->mappedSection(this)), text());
  
  _parsed = TRUE;
}
Exemple #10
0
void ItemLineEdit::sParse()
{
    if (!_parsed)
    {
        _parsed = TRUE;

        if (text().length() == 0)
        {
            setId(-1);
            return;
        }

        else if (_useValidationQuery)
        {
            XSqlQuery item;
            item.prepare("SELECT item_id FROM item WHERE (item_number = :searchString);");
            item.bindValue(":searchString", text().stripWhiteSpace().upper());
            item.exec();
            if (item.first())
            {
                int itemid = item.value("item_id").toInt();
                item.prepare(_validationSql);
                item.bindValue(":item_id", itemid);
                item.exec();
                if (item.first())
                {
                    setId(itemid);
                    return;
                }
            }
        }

        else if (_useQuery)
        {
            XSqlQuery item;
            item.prepare(_sql);
            item.exec();
            if (item.findFirst("item_number", text().stripWhiteSpace().upper()) != -1)
            {
                setId(item.value("item_id").toInt());
                return;
            }
        }
        else
        {
            XSqlQuery item;

            QString pre( "SELECT DISTINCT item_id" );

            QStringList clauses;
            clauses = _extraClauses;
            clauses << "(item_number=:searchString)";

            item.prepare(buildItemLineEditQuery(pre, clauses, QString::null, _type));
            item.bindValue(":searchString", text().stripWhiteSpace().upper());
            item.exec();
            if (item.first())
            {
                setId(item.value("item_id").toInt());
                return;
            }
        }

        setId(-1);
        focusNextPrevChild(FALSE);
        QMessageBox::warning( this, tr("Invalid Item Number"),
                              tr( "<p>The Item Number you entered is Invalid.</p>") );
    }
}
Exemple #11
0
void ItemLineEdit::silentSetId(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");

        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)
    {
        _itemNumber = item.value("item_number").toString();
        _uom        = item.value("uom_name").toString();
        _itemType   = item.value("item_type").toString();
        _configured = item.value("item_config").toBool();
        _id         = pId;
        _valid      = TRUE;

        setText(item.value("item_number").toString());

        if (_mapper->model() &&
                _mapper->model()->data(_mapper->model()->index(_mapper->currentIndex(),_mapper->mappedSection(this))).toString() != text())
            _mapper->model()->setData(_mapper->model()->index(_mapper->currentIndex(),_mapper->mappedSection(this)), text());

        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 valid(TRUE);
    }
    else
    {
        _itemNumber = "";
        _uom        = "";
        _itemType   = "";
        _id         = -1;
        _valid      = FALSE;

        setText("");

        emit aliasChanged("");
        emit typeChanged("");
        emit descrip1Changed("");
        emit descrip2Changed("");
        emit uomChanged("");
        emit configured(FALSE);

        emit valid(FALSE);
    }
}
Exemple #12
0
void ItemLineEdit::setItemNumber(QString pNumber)
{
    XSqlQuery item;
    bool      found = FALSE;

    _parsed = TRUE;

    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_number, item_descrip1, item_descrip2,"
                     "                uom_name, item_type, item_config");

        QStringList clauses;
        clauses = _extraClauses;
        clauses << "(item_number=:item_number)";

        item.prepare(buildItemLineEditQuery(pre, clauses, QString::null, _type));
        item.bindValue(":item_number", pNumber);
        item.exec();

        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();
        _id         = item.value("item_id").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 valid(TRUE);
    }
    else
    {
        _itemNumber = "";
        _uom        = "";
        _itemType   = "";
        _id         = -1;
        _valid      = FALSE;

        setText("");

        emit aliasChanged("");
        emit typeChanged("");
        emit descrip1Changed("");
        emit descrip2Changed("");
        emit uomChanged("");
        emit configured(FALSE);

        emit valid(FALSE);
    }
}
void expenseCategories::sDelete()
{
  XSqlQuery expenseDelete;
  expenseDelete.prepare( "SELECT poitem_status, COUNT(*) "
             "FROM poitem "
             "WHERE (poitem_expcat_id=:expcat_id) "
             "GROUP BY poitem_status;" );
  expenseDelete.bindValue(":expcat_id", _expcat->id());
  expenseDelete.exec();
  if (expenseDelete.first())
  {
    if (expenseDelete.findFirst("poitem_status", "U") != -1)
      QMessageBox::warning( this, tr("Cannot Delete Expense Category"),
                            tr( "<p>The selected Expense Category cannot be deleted as there are unposted P/O Lines assigned to it. "
                                "You must reassign these P/O Lines before you may delete the selected Expense Category.</p>" ) );
    else if (expenseDelete.findFirst("poitem_status", "O") != -1)
      QMessageBox::warning( this, tr("Cannot Delete Expense Category"),
                            tr( "<p>The selected Expense Category cannot be deleted as there are open P/O Lines assigned to it. "
                                "You must close these P/O Lines before you may delete the selected Expense Category.</p>" ) );
    else if (expenseDelete.findFirst("poitem_status", "C") != -1)
    {
      int result = QMessageBox::warning( this, tr("Cannot Delete Expense Category"),
                                         tr( "<p>The selected Expense Category cannot be deleted as there are closed P/O Lines assigned to it. "
                                             "Would you like to mark the selected Expense Category as inactive instead?</p>" ),
                                         tr("&Yes"), tr("&No"), QString::null );
      if (result == 0)
      {
        expenseDelete.prepare( "UPDATE expcat "
                   "SET expcat_active=FALSE "
                   "WHERE (expcat_id=:expcat_id);" );
        expenseDelete.bindValue(":expcat_id", _expcat->id());
        expenseDelete.exec();
	sFillList();
      }
    }
  }
  else
  {
    expenseDelete.prepare( "SELECT checkhead_id AS id"
               "  FROM checkhead"
               " WHERE(checkhead_expcat_id=:expcat_id)"
               " UNION "
               "SELECT vodist_id AS id"
               "  FROM vodist"
               " WHERE(vodist_expcat_id=:expcat_id)");
    expenseDelete.bindValue(":expcat_id", _expcat->id());
    expenseDelete.exec();
    if(expenseDelete.first())
    {
      QMessageBox::warning( this, tr("Cannot Delete Expense Category"),
        tr( "<p>The selected Expense Category cannot be deleted as there are Checks and Voucher Distributions assigned to it. "
            "You must change these before you may delete the selected Expense Category.</p>" ) );
    }
    else
    {
      expenseDelete.prepare( "DELETE FROM expcat "
                 "WHERE (expcat_id=:expcat_id); ");
      expenseDelete.bindValue(":expcat_id", _expcat->id());
      expenseDelete.exec();
      sFillList();
    }
  }
}