本文整理汇总了C++中XSqlQuery::first方法的典型用法代码示例。如果您正苦于以下问题:C++ XSqlQuery::first方法的具体用法?C++ XSqlQuery::first怎么用?C++ XSqlQuery::first使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XSqlQuery
的用法示例。
在下文中一共展示了XSqlQuery::first方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sHandleSo
void shipOrder::sHandleSo()
{
XSqlQuery shipHandleSo;
_coitem->clear();
_shipment->setEnabled(false);
_shipment->removeOrderLimit();
sHandleButtons();
shipHandleSo.prepare( "SELECT cohead_holdtype, cust_name, cohead_shiptoname, "
" cohead_shiptoaddress1, cohead_curr_id, cohead_freight "
"FROM cohead, custinfo "
"WHERE ((cohead_cust_id=cust_id) "
" AND (cohead_id=:sohead_id));" );
shipHandleSo.bindValue(":sohead_id", _order->id());
shipHandleSo.exec();
if (shipHandleSo.first())
{
QString msg;
if ( (shipHandleSo.value("cohead_holdtype").toString() == "C"))
msg = storedProcErrorLookup("shipShipment", -12);
else if (shipHandleSo.value("cohead_holdtype").toString() == "P")
msg = storedProcErrorLookup("shipShipment", -13);
else if (shipHandleSo.value("cohead_holdtype").toString() == "R")
msg = storedProcErrorLookup("shipShipment", -14);
else if (shipHandleSo.value("cohead_holdtype").toString() == "S")
msg = storedProcErrorLookup("shipShipment", -15);
if (! msg.isEmpty())
{
QMessageBox::warning(this, tr("Cannot Ship Order"), msg);
if (_captive)
{
_reject = true; // so set() can return an error
reject(); // this only works if shipOrder has been exec()'ed
}
else
{
_order->setId(-1);
return;
}
}
_freight->setId(shipHandleSo.value("cohead_curr_id").toInt());
_freight->setLocalValue(shipHandleSo.value("cohead_freight").toDouble());
_billToName->setText(shipHandleSo.value("cust_name").toString());
_shipToName->setText(shipHandleSo.value("cohead_shiptoname").toString());
_shipToAddr1->setText(shipHandleSo.value("cohead_shiptoaddress1").toString());
QString sql( "SELECT shiphead_id "
"FROM shiphead "
"WHERE ( (NOT shiphead_shipped)"
"<? if exists(\"shiphead_id\") ?>"
" AND (shiphead_id=<? value(\"shiphead_id\") ?>)"
"<? endif ?>"
" AND (shiphead_order_id=<? value(\"sohead_id\") ?>)"
" AND (shiphead_order_type='SO'));" );
ParameterList params;
params.append("sohead_id", _order->id());
if (_shipment->isValid())
params.append("shiphead_id", _shipment->id());
MetaSQLQuery mql(sql);
shipHandleSo = mql.toQuery(params);
if (shipHandleSo.first())
{
if (_shipment->id() != shipHandleSo.value("shiphead_id").toInt())
_shipment->setId(shipHandleSo.value("shiphead_id").toInt());
if (shipHandleSo.next())
{
_shipment->setType("SO");
_shipment->limitToOrder(_order->id());
_shipment->setEnabled(true);
}
}
else if (shipHandleSo.lastError().type() != QSqlError::NoError)
{
systemError(this, shipHandleSo.lastError().databaseText(), __FILE__, __LINE__);
return;
}
else if (_shipment->isValid())
{
params.clear();
params.append("sohead_id", _order->id());
MetaSQLQuery mql(sql);
shipHandleSo = mql.toQuery(params);
if (shipHandleSo.first())
{
_shipment->setId(shipHandleSo.value("shiphead_id").toInt());
if (shipHandleSo.next())
{
_shipment->setType("SO");
_shipment->limitToOrder(_order->id());
_shipment->setEnabled(true);
}
}
else if (shipHandleSo.lastError().type() != QSqlError::NoError)
{
systemError(this, shipHandleSo.lastError().databaseText(), __FILE__, __LINE__);
//.........这里部分代码省略.........
示例2: populate
void package::populate()
{
XSqlQuery packagepopulate;
if (DEBUG) qDebug("package::populate() entered");
packagepopulate.prepare("SELECT *, packageIsEnabled(pkghead_name) AS enabled "
"FROM pkghead WHERE (pkghead_id=:pkghead_id);");
packagepopulate.bindValue(":pkghead_id", _pkgheadid);
packagepopulate.exec();
if (packagepopulate.first())
{
if (DEBUG) qDebug("package::populate() select pkghead succeeded");
_name->setText(packagepopulate.value("pkghead_name").toString());
_description->setText(packagepopulate.value("pkghead_descrip").toString());
if (DEBUG) qDebug("package::populate() select pkghead half done");
_version->setText(packagepopulate.value("pkghead_version").toString());
_developer->setText(packagepopulate.value("pkghead_developer").toString());
_notes->setText(packagepopulate.value("pkghead_notes").toString());
_enabled->setChecked(packagepopulate.value("enabled").toBool());
_priorEnabledState = _enabled->isChecked();
_indev->setChecked(packagepopulate.value("pkghead_indev").toBool());
if (DEBUG) qDebug("package::populate() select pkghead complete");
}
else if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Retrieving Package Information"),
packagepopulate, __FILE__, __LINE__))
{
return;
}
ParameterList params;
params.append("pkgname", _name->text());
params.append("script", tr("Script"));
params.append("cmd", tr("Custom Command"));
params.append("function",tr("Stored Procedure"));
params.append("trigger", tr("Trigger"));
params.append("image", tr("Image"));
params.append("metasql", tr("MetaSQL"));
params.append("priv", tr("Privilege"));
params.append("report", tr("Report"));
params.append("schema", tr("Schema"));
params.append("table", tr("Table"));
params.append("uiform", tr("Screen"));
params.append("view", tr("View"));
params.append("sequence",tr("Sequence"));
params.append("index", tr("Index"));
if (_showSystemDetails->isChecked())
params.append("showsystemdetails");
MetaSQLQuery itemmql = mqlLoad("package", "items");
packagepopulate = itemmql.toQuery(params);
packagepopulate.exec();
if (DEBUG) qDebug("package::populate() select pkgitem exec'ed");
_rec->populate(packagepopulate);
if (DEBUG) qDebug("package::populate() populate pkgitem done");
else if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Retrieving Package Information"),
packagepopulate, __FILE__, __LINE__))
{
return;
}
// TODO: make this recursive?
packagepopulate.prepare("SELECT pkghead.* "
"FROM pkgdep, pkghead "
"WHERE ((pkgdep_pkghead_id=pkghead_id)"
" AND (pkgdep_parent_pkghead_id=:pkghead_id));");
packagepopulate.bindValue(":pkghead_id", _pkgheadid);
packagepopulate.exec();
if (DEBUG) qDebug("package::populate() select pkgdep exec'ed");
_dep->populate(packagepopulate);
if (DEBUG) qDebug("package::populate() populate pkgdep done");
if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting Package Info"),
packagepopulate, __FILE__, __LINE__))
{
return;
}
// TODO: make this recursive?
packagepopulate.prepare("SELECT * "
"FROM pkgdep, pkghead "
"WHERE ((pkgdep_parent_pkghead_id=pkghead_id)"
" AND (pkgdep_pkghead_id=:pkghead_id));");
packagepopulate.bindValue(":pkghead_id", _pkgheadid);
packagepopulate.exec();
if (DEBUG) qDebug("package::populate() select pkgdep exec'ed");
_req->populate(packagepopulate);
if (DEBUG) qDebug("package::populate() populate pkgdep done");
if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting Package Info"),
packagepopulate, __FILE__, __LINE__))
{
return;
}
}
示例3: sSave
void terms::sSave()
{
XSqlQuery termsSave;
if(_code->text().trimmed().isEmpty())
{
QMessageBox::warning(this, tr("Cannot Save Terms"),
tr("You must specify a code for the Terms."));
_code->setFocus();
return;
}
if (_mode == cNew)
{
if (sCheck())
{
QMessageBox::warning( this, tr("Cannot Save Terms Code"),
tr("This Terms code already exists. You have been placed in edit mode.") );
return;
}
termsSave.exec("SELECT NEXTVAL('terms_terms_id_seq') AS _terms_id");
if (termsSave.first())
_termsid = termsSave.value("_terms_id").toInt();
else
{
systemError(this, tr("A System Error occurred at %1::%2.")
.arg(__FILE__)
.arg(__LINE__) );
return;
}
termsSave.prepare( "INSERT INTO terms "
"( terms_id, terms_code, terms_descrip, terms_type,"
" terms_ap, terms_ar,"
" terms_duedays, terms_discdays, terms_discprcnt, terms_cutoffday ) "
"VALUES "
"( :terms_id, :terms_code, :terms_descrip, :terms_type,"
" :terms_ap, :terms_ar,"
" :terms_duedays, :terms_discdays, :terms_discprcnt, :terms_cutoffday );" );
}
else if (_mode == cEdit)
{
termsSave.prepare( "SELECT terms_id "
"FROM terms "
"WHERE ( (UPPER(terms_code)=UPPER(:terms_code))"
" AND (terms_id<>:terms_id) );" );
termsSave.bindValue(":terms_id", _termsid);
termsSave.bindValue(":terms_code", _code->text().trimmed());
termsSave.exec();
if (termsSave.first())
{
QMessageBox::warning( this, tr("Cannot Save Terms"),
tr("You may not rename this Terms code with the entered name as it is in use by another Terms code.") );
return;
}
termsSave.prepare( "UPDATE terms "
"SET terms_code=:terms_code, terms_descrip=:terms_descrip, terms_type=:terms_type,"
" terms_ap=:terms_ap, terms_ar=:terms_ar,"
" terms_duedays=:terms_duedays, terms_discdays=:terms_discdays,"
" terms_discprcnt=:terms_discprcnt, terms_cutoffday=:terms_cutoffday "
"WHERE (terms_id=:terms_id);" );
}
if (_days->isChecked())
termsSave.bindValue(":terms_type", "D");
else
termsSave.bindValue(":terms_type", "P");
termsSave.bindValue(":terms_id", _termsid);
termsSave.bindValue(":terms_code", _code->text().trimmed());
termsSave.bindValue(":terms_descrip", _description->text().trimmed());
termsSave.bindValue(":terms_ap", QVariant(_ap->isChecked()));
termsSave.bindValue(":terms_ar", QVariant(_ar->isChecked()));
termsSave.bindValue(":terms_duedays", _dueDays->value());
termsSave.bindValue(":terms_discdays", _discountDays->value());
termsSave.bindValue(":terms_discprcnt", (_discountPercent->toDouble() / 100.0));
termsSave.bindValue(":terms_cutoffday", _cutOffDay->value());
termsSave.exec();
done(_termsid);
}
示例4: sSave
void apAccountAssignment::sSave()
{
QList<GuiErrorCheck> errors;
if (_metrics->boolean("InterfaceAPToGL"))
{
errors << GuiErrorCheck(!_ap->isValid(), _ap,
tr("<p>You must select an A/P Account before saving this A/P Account Assignment."))
<< GuiErrorCheck(!_prepaid->isValid(), _prepaid,
tr("<p>You must select a Prepaid Account before saving this A/P Account Assignment."))
<< GuiErrorCheck(!_discount->isValid(), _discount,
tr("<p>You must select a Discount Account before saving this A/P Account Assignment."))
;
}
XSqlQuery saveAssign;
if (_mode == cNew)
{
saveAssign.prepare( "SELECT apaccnt_id "
"FROM apaccnt "
"WHERE ( (apaccnt_vendtype_id=:apaccnt_vendtype_id)"
" AND (apaccnt_vendtype=:apaccnt_vendtype) );" );
if (_allVendorTypes->isChecked())
{
saveAssign.bindValue(":apaccnt_vendtype_id", -1);
saveAssign.bindValue(":apaccnt_vendtype", ".*");
}
else if (_selectedVendorType->isChecked())
{
saveAssign.bindValue(":apaccnt_vendtype_id", _vendorTypes->id());
saveAssign.bindValue(":apaccnt_vendtype", "");
}
else if (_vendorTypePattern->isChecked())
{
saveAssign.bindValue(":apaccnt_vendtype_id", -1);
saveAssign.bindValue(":apaccnt_vendtype", _vendorType->text().trimmed());
}
saveAssign.exec();
if (saveAssign.first())
{
errors << GuiErrorCheck(true, _allVendorTypes,
tr("<p>You may not save this A/P Account Assignment as it already exists."));
}
}
if (GuiErrorCheck::reportErrors(this, tr("Cannot Save A/P Account Assignment"), errors))
return;
if (_mode == cNew)
{
saveAssign.exec("SELECT NEXTVAL('apaccnt_apaccnt_id_seq') AS _apaccnt_id;");
if (saveAssign.first())
_apaccntid = saveAssign.value("_apaccnt_id").toInt();
// ToDo
saveAssign.prepare( "INSERT INTO apaccnt "
"( apaccnt_id, apaccnt_vendtype_id, apaccnt_vendtype,"
" apaccnt_ap_accnt_id, apaccnt_prepaid_accnt_id,"
" apaccnt_discount_accnt_id ) "
"VALUES "
"( :apaccnt_id, :apaccnt_vendtype_id, :apaccnt_vendtype,"
" :apaccnt_ap_accnt_id, :apaccnt_prepaid_accnt_id,"
" :apaccnt_discount_accnt_id ) " );
}
else if (_mode == cEdit)
saveAssign.prepare( "UPDATE apaccnt "
"SET apaccnt_vendtype_id=:apaccnt_vendtype_id,"
" apaccnt_vendtype=:apaccnt_vendtype,"
" apaccnt_ap_accnt_id=:apaccnt_ap_accnt_id,"
" apaccnt_prepaid_accnt_id=:apaccnt_prepaid_accnt_id,"
" apaccnt_discount_accnt_id=:apaccnt_discount_accnt_id "
"WHERE (apaccnt_id=:apaccnt_id);" );
saveAssign.bindValue(":apaccnt_id", _apaccntid);
saveAssign.bindValue(":apaccnt_ap_accnt_id", _ap->id());
saveAssign.bindValue(":apaccnt_prepaid_accnt_id", _prepaid->id());
saveAssign.bindValue(":apaccnt_discount_accnt_id", _discount->id());
if (_allVendorTypes->isChecked())
{
saveAssign.bindValue(":apaccnt_vendtype_id", -1);
saveAssign.bindValue(":apaccnt_vendtype", ".*");
}
else if (_selectedVendorType->isChecked())
{
saveAssign.bindValue(":apaccnt_vendtype_id", _vendorTypes->id());
saveAssign.bindValue(":apaccnt_vendtype", "");
}
else if (_vendorTypePattern->isChecked())
{
saveAssign.bindValue(":apaccnt_vendtype_id", -1);
saveAssign.bindValue(":apaccnt_vendtype", _vendorType->text().trimmed());
}
saveAssign.exec();
done(_apaccntid);
}
示例5: sSave
void state::sSave()
{
XSqlQuery stateSave;
_abbr->setText(_abbr->text().trimmed());
_name->setText(_name->text().trimmed());
struct {
bool condition;
QString msg;
QWidget* widget;
} error[] = {
{ (! _country->isValid()), tr("<p>You must select a country."), _country },
{ _name->text().isEmpty(),
tr("<p>You must enter a name for the state/province."), _name },
{ true, "", NULL }
}; // error[]
int errIndex;
for (errIndex = 0; ! error[errIndex].condition; errIndex++)
;
if (! error[errIndex].msg.isEmpty())
{
QMessageBox::warning(this, tr("Cannot Save State/Province"),
error[errIndex].msg);
error[errIndex].widget->setFocus();
return;
}
XSqlQuery stateq;
stateq.prepare("SELECT state_id "
"FROM state "
"WHERE ((state_country_id=:country_id)"
" AND ((UPPER(state_abbr)=UPPER(:state_abbr) AND :state_abbr != '')"
" OR (UPPER(state_name)=UPPER(:state_name) AND :state_name != ''))"
" AND (state_id!=:state_id));");
stateq.bindValue(":country_id", _country->id());
stateq.bindValue(":state_abbr", _abbr->text());
stateq.bindValue(":state_name", _name->text());
stateq.bindValue(":state_id", _stateid);
stateq.exec();
if (stateq.first())
{
QMessageBox::warning(this, tr("Cannot Save State/Province"),
tr("There is already another state/province for %1 "
"with the same name or abbreviation.")
.arg(_country->currentText()));
_abbr->setFocus();
return;
}
else if (stateq.lastError().type() != QSqlError::NoError)
{
systemError(this, stateq.lastError().databaseText(), __FILE__, __LINE__);
return;
}
if (_mode == cNew)
stateSave.prepare("INSERT INTO state ("
" state_id, state_abbr, state_name, state_country_id"
") VALUES ("
" DEFAULT, :state_abbr, :state_name, :country_id"
") RETURNING state_id;");
else if (_mode == cEdit)
{
stateSave.prepare("UPDATE state "
"SET state_abbr=:state_abbr, state_name=:state_name,"
" state_country_id=:country_id "
"WHERE (state_id=:state_id) RETURNING state_id;" );
stateSave.bindValue(":state_id", _stateid);
}
stateSave.bindValue(":state_abbr", _abbr->text().trimmed());
stateSave.bindValue(":state_name", _name->text().trimmed());
stateSave.bindValue(":country_id", _country->id());
stateSave.exec();
if (stateSave.first())
_stateid = stateSave.value("state_id").toInt();
else if (stateSave.lastError().type() != QSqlError::NoError)
{
systemError(this, stateSave.lastError().databaseText(), __FILE__, __LINE__);
return;
}
done(_stateid);
}
示例6: sFillList
void shipOrder::sFillList()
{
if (_shipment->isValid())
{
calcFreight();
QString ordertype;
XSqlQuery shipq;
shipq.prepare("SELECT shiphead_order_id, shiphead_shipvia, shiphead_order_type,"
" shiphead_tracknum, shiphead_freight, shiphead_freight_curr_id,"
" COALESCE(shipchrg_custfreight, TRUE) AS custfreight,"
" COALESCE(shiphead_shipdate,CURRENT_DATE) AS effective "
"FROM shiphead LEFT OUTER JOIN "
" shipchrg ON (shiphead_shipchrg_id=shipchrg_id) "
"WHERE ( (NOT shiphead_shipped)"
" AND (shiphead_id=:shiphead_id));" );
shipq.bindValue(":shiphead_id", _shipment->id());
shipq.exec();
if (shipq.first())
{
_order->setId(shipq.value("shiphead_order_id").toInt(),shipq.value("shiphead_order_type").toString());
_shipVia->setText(shipq.value("shiphead_shipvia").toString());
ordertype = shipq.value("shiphead_order_type").toString();
_tracknum->addItem(shipq.value("shiphead_tracknum").toString(), shipq.value("shiphead_tracknum").toString());
if (shipq.value("custfreight").toBool())
{
_freight->setEnabled(TRUE);
_freight->set(shipq.value("shiphead_freight").toDouble(),
shipq.value("shiphead_freight_curr_id").toInt(),
shipq.value("effective").toDate(), false);
}
else
{
_freight->setEnabled(FALSE);
_freight->set(0,
shipq.value("shiphead_freight_curr_id").toInt(),
shipq.value("effective").toDate());
}
}
else if (shipq.lastError().type() != QSqlError::NoError)
{
systemError(this, shipq.lastError().databaseText(), __FILE__, __LINE__);
return;
}
else
{
QMessageBox::warning(this, tr("Shipment/Order mismatch"),
tr("<p>Shipment #%1 either is not part of "
"Order #%2 or has already shipped. Please change "
"either the Order # or Shipment #.")
.arg(_shipment->number())
.arg(_order->number()));
_shipment->clear();
_shipment->setEnabled(false);
return;
}
ParameterList itemp;
itemp.append("shiphead_id", _shipment->id());
itemp.append("ordertype", ordertype);
if (ordertype == "SO")
itemp.append("sohead_id", _order->id());
else if (ordertype == "TO")
itemp.append("tohead_id", _order->id());
QString items = "<? if exists(\"sohead_id\") ?>"
"SELECT coitem_id,"
" formatSOlinenumber(coitem_id) AS linenumber, item_number,"
" (item_descrip1 || ' ' || item_descrip2) AS itemdescrip,"
" uom_name,"
" SUM(shipitem_qty) AS shipitem_qty, "
" 'qty' AS shipitem_qty_xtnumericrole "
"FROM shiphead JOIN shipitem ON (shipitem_shiphead_id=shiphead_id) "
" JOIN coitem ON (coitem_id=shipitem_orderitem_id) "
" JOIN itemsite ON (itemsite_id=coitem_itemsite_id) "
" JOIN item ON (item_id=itemsite_item_id) "
" JOIN uom ON (uom_id=coitem_qty_uom_id) "
"WHERE ( (shiphead_id=<? value(\"shiphead_id\") ?>)"
" AND (NOT shiphead_shipped) ) "
"GROUP BY coitem_id, coitem_linenumber, item_number,"
" uom_name, itemdescrip, coitem_subnumber "
"ORDER BY coitem_linenumber, coitem_subnumber;"
"<? elseif exists(\"tohead_id\") ?>"
"SELECT toitem_id,"
" toitem_linenumber AS linenumber, item_number,"
" (item_descrip1 || ' ' || item_descrip2) AS itemdescrip,"
" uom_name,"
" SUM(shipitem_qty) AS shipitem_qty, "
" 'qty' AS shipitem_qty_xtnumericrole "
"FROM shiphead JOIN shipitem ON (shipitem_shiphead_id=shiphead_id) "
" JOIN toitem ON (toitem_id=shipitem_orderitem_id) "
" JOIN item ON (item_id=toitem_item_id) "
" JOIN uom ON (uom_id=item_inv_uom_id) "
"WHERE ( (shiphead_id=<? value(\"shiphead_id\") ?>)"
" AND (NOT shiphead_shipped) ) "
"GROUP BY toitem_id, toitem_linenumber, item_number,"
" uom_name, itemdescrip "
"ORDER BY toitem_linenumber;"
"<? endif ?>" ;
//.........这里部分代码省略.........
示例7: sHandleTo
void shipOrder::sHandleTo()
{
XSqlQuery shipHandleTo;
_coitem->clear();
_shipment->setEnabled(false);
_shipment->removeOrderLimit();
sHandleButtons();
shipHandleTo.prepare("SELECT tohead_freight_curr_id, tohead_destname,"
" tohead_destaddress1,"
" SUM(toitem_freight) + tohead_freight AS freight "
"FROM tohead, toitem "
"WHERE ((toitem_tohead_id=tohead_id)"
" AND (toitem_status<>'X')"
" AND (tohead_id=:tohead_id)) "
"GROUP BY tohead_freight_curr_id, tohead_destname,"
" tohead_destaddress1, tohead_freight;");
shipHandleTo.bindValue(":tohead_id", _order->id());
shipHandleTo.exec();
if (shipHandleTo.first())
{
_freight->setId(shipHandleTo.value("tohead_freight_curr_id").toInt());
_freight->setLocalValue(shipHandleTo.value("freight").toDouble());
_billToName->setText(tr("Transfer Order"));
_shipToName->setText(shipHandleTo.value("tohead_destname").toString());
_shipToAddr1->setText(shipHandleTo.value("tohead_destaddress1").toString());
}
else if (shipHandleTo.lastError().type() != QSqlError::NoError)
{
systemError(this, shipHandleTo.lastError().databaseText(), __FILE__, __LINE__);
return;
}
QString sql( "SELECT shiphead_id "
"FROM shiphead "
"WHERE ( (NOT shiphead_shipped)"
"<? if exists(\"shiphead_id\") ?>"
" AND (shiphead_id=<? value(\"shiphead_id\") ?>)"
"<? endif ?>"
" AND (shiphead_order_id=<? value(\"tohead_id\") ?>)"
" AND (shiphead_order_type='TO'));" );
ParameterList params;
params.append("tohead_id", _order->id());
if (_shipment->isValid())
params.append("shiphead_id", _shipment->id());
MetaSQLQuery mql(sql);
shipHandleTo = mql.toQuery(params);
if (shipHandleTo.first())
{
if (_shipment->id() != shipHandleTo.value("shiphead_id").toInt())
_shipment->setId(shipHandleTo.value("shiphead_id").toInt());
if (shipHandleTo.next())
{
_shipment->setType("TO");
_shipment->limitToOrder(_order->id());
_shipment->setEnabled(true);
}
}
else if (shipHandleTo.lastError().type() != QSqlError::NoError)
{
systemError(this, shipHandleTo.lastError().databaseText(), __FILE__, __LINE__);
return;
}
else if (_shipment->isValid())
{
params.clear();
params.append("tohead_id", _order->id());
MetaSQLQuery mql(sql);
shipHandleTo = mql.toQuery(params);
if (shipHandleTo.first())
{
_shipment->setId(shipHandleTo.value("shiphead_id").toInt());
if (shipHandleTo.next())
{
_shipment->setType("TO");
_shipment->limitToOrder(_order->id());
_shipment->setEnabled(true);
}
}
else if (shipHandleTo.lastError().type() != QSqlError::NoError)
{
systemError(this, shipHandleTo.lastError().databaseText(), __FILE__, __LINE__);
return;
}
else
_shipment->clear();
}
else
{
QMessageBox::warning(this, tr("Nothing to ship"),
tr("<p>You may not ship this Transfer Order because "
"no stock has been issued to shipping for it."));
_order->setFocus();
return;
}
}
示例8: sAddBomitem
void copyItem::sAddBomitem()
{
if (_availablebomitems->id() == -1)
{
QMessageBox::critical(this, tr("Error"), tr("Please select an Available BOM Item."));
return;
}
XSqlQuery bomitemq;
int uomid;
QString uomname;
double qtyper;
bool ok;
bomitemq.prepare("SELECT item_inv_uom_id, uom_name "
"FROM item JOIN uom ON (uom_id=item_inv_uom_id) "
"WHERE (item_id=:item_id);");
bomitemq.bindValue(":item_id", _availablebomitems->id());
bomitemq.exec();
if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting UOM"),
bomitemq, __FILE__, __LINE__))
return;
if (bomitemq.first())
{
uomid = bomitemq.value("item_inv_uom_id").toInt();
uomname = bomitemq.value("uom_name").toString();
}
qtyper = QInputDialog::getDouble(this, tr("Quantity Per"),
uomname,
qtyper, 1, 10000, 5, &ok);
if ( !ok )
return;
bomitemq.prepare( "INSERT INTO bomitem"
" ( bomitem_parent_item_id, bomitem_seqnumber,"
" bomitem_item_id, bomitem_qtyper, bomitem_scrap,"
" bomitem_status, bomitem_effective, bomitem_expires,"
" bomitem_createwo, bomitem_issuemethod, bomitem_schedatwooper,"
" bomitem_ecn, bomitem_moddate, bomitem_subtype,"
" bomitem_uom_id, bomitem_rev_id, bomitem_booitem_seq_id,"
" bomitem_char_id, bomitem_value, bomitem_notes,"
" bomitem_ref, bomitem_qtyfxd, bomitem_issuewo )"
" SELECT"
" :targetitemid, (MAX(bomitem_seqnumber) + 10),"
" :bomitemid, :qtyper, 0.0,"
" NULL, startOfTime(), endOfTime(),"
" FALSE, 'M', TRUE,"
" NULL, CURRENT_DATE, 'I',"
" :uomid, -1, -1,"
" NULL, NULL, NULL,"
" NULL, 0.0, FALSE "
" FROM bomitem "
" WHERE (bomitem_parent_item_id=:targetitemid);" );
bomitemq.bindValue(":targetitemid", _newitemid);
bomitemq.bindValue(":bomitemid", _availablebomitems->id());
bomitemq.bindValue(":qtyper", qtyper);
bomitemq.bindValue(":uomid", uomid);
bomitemq.exec();
if (ErrorReporter::error(QtCriticalMsg, this, tr("Adding Bomitem"),
bomitemq, __FILE__, __LINE__))
return;
sFillBomitem();
}
示例9: met
bool Prerequisite::met(QString &errMsg)
{
if (DEBUG)
qDebug("Prerequisite::met() name %s, type %d (%s), message %s, "
"dependency %p (%s %s %s), query %s",
qPrintable(_name), _type, qPrintable(typeToName(_type)),
qPrintable(_message), _dependency,
qPrintable(/*_dependency ? _dependency->name() :*/ QString()),
qPrintable(/*_dependency ? _dependency->version() :*/ QString()),
qPrintable(/*_dependency ? _dependency->developer():*/ QString()),
qPrintable(_query));
bool returnVal = false;
switch (_type)
{
case Query:
{
XSqlQuery query;
query.exec(_query);
if (query.first())
{
returnVal = query.value(0).toBool();
errMsg = _message;
}
else if (query.lastError().type() != QSqlError::NoError)
errMsg = _sqlerrtxt.arg(_name).arg(query.lastError().databaseText())
.arg(query.lastError().driverText());
else
{
returnVal = false;
errMsg = _message;
}
break;
}
case License:
{
LicenseWindow newdlg(_message);
returnVal = (newdlg.exec() == QDialog::Accepted);
if (! returnVal)
errMsg = TR("The user declined to accept the usage license.");
break;
}
case Dependency:
{
QString sql = "SELECT * FROM pkghead WHERE ((pkghead_name=:name) ";
if (! _dependency->version().isEmpty())
sql += "AND (pkghead_version=:version) ";
if (! _dependency->developer().isEmpty())
sql += "AND (pkghead_developer=:developer) ";
sql += ");";
XSqlQuery query;
query.prepare(sql);
query.bindValue(":name", _dependency->name());
query.bindValue(":version", _dependency->version());
query.bindValue(":developer", _dependency->developer());
query.exec();
if (query.first())
returnVal = true;
else if (query.lastError().type() != QSqlError::NoError)
errMsg = _sqlerrtxt.arg(_name).arg(query.lastError().databaseText())
.arg(query.lastError().driverText());
else
errMsg = TR("%1<br>The prerequisite %2 has not been met. It "
"requires that the package %3 (version %4, "
"developer %5) be installed first.")
.arg(_message).arg(_name).arg(_dependency->name())
.arg(_dependency->version().isEmpty() ?
TR("Unspecified") : _dependency->version())
.arg(_dependency->developer().isEmpty() ?
TR("Unspecified") : _dependency->developer());
break;
}
default:
errMsg = TR("Encountered an unknown Prerequisite type. "
"Prerequisite '%1' has not been validated.")
.arg(_name);
break;
}
return returnVal;
}
示例10: writeToDB
int Prerequisite::writeToDB(const QString pkgname, QString &errMsg)
{
if (DEBUG)
qDebug("Prerequisite::writeToDB(%s, &errMsg)", qPrintable(pkgname));
if (! pkgname.isEmpty() && _dependency)
{
XSqlQuery select;
int pkgheadid = -1;
select.prepare("SELECT pkghead_id FROM pkghead WHERE (pkghead_name=:name);");
select.bindValue(":name", pkgname);
select.exec();
if (select.first())
pkgheadid = select.value(0).toInt();
else if (select.lastError().type() != QSqlError::NoError)
{
errMsg = _sqlerrtxt.arg(_name)
.arg(select.lastError().databaseText())
.arg(select.lastError().driverText());
return -1;
}
int parentid = -1;
QString sql = "SELECT * FROM pkghead WHERE ((pkghead_name=:name) ";
if (! _dependency->version().isEmpty())
sql += "AND (pkghead_version=:version) ";
if (! _dependency->developer().isEmpty())
sql += "AND (pkghead_developer=:developer) ";
sql += ") ORDER BY pkghead_version DESC LIMIT 1;";
select.prepare(sql);
select.bindValue(":name", _dependency->name());
select.bindValue(":version", _dependency->version());
select.bindValue(":developer", _dependency->developer());
select.exec();
if (select.first())
parentid = select.value(0).toInt();
else if (select.lastError().type() != QSqlError::NoError)
{
errMsg = _sqlerrtxt.arg(_name)
.arg(select.lastError().databaseText())
.arg(select.lastError().driverText());
return -2;
}
else
{
errMsg = TR("Could not record the dependency %1 of package %2 "
"on package %3 (version %4, developer %5) because "
"the record for %6 was not found.")
.arg(_name).arg(pkgname).arg(_dependency->name())
.arg(_dependency->version().isEmpty() ?
TR("Unspecified") : _dependency->version())
.arg(_dependency->developer().isEmpty() ?
TR("Unspecified") : _dependency->developer())
.arg(_dependency->name());
return -3;
}
int pkgdepid = -1;
select.prepare("SELECT * FROM pkgdep "
"WHERE ((pkgdep_pkghead_id=:pkgheadid)"
" AND (pkgdep_parent_pkghead_id=:parentid));");
select.bindValue(":pkgheadid", pkgheadid);
select.bindValue(":parentid", parentid);
select.exec();
if (select.first())
pkgdepid=select.value(0).toInt();
else if (select.lastError().type() != QSqlError::NoError)
{
errMsg = _sqlerrtxt.arg(_name)
.arg(select.lastError().databaseText())
.arg(select.lastError().driverText());
return -4;
}
XSqlQuery upsert;
if (pkgdepid > 0)
upsert.prepare("UPDATE pkgdep "
"SET pkgdep_pkghead_id=:pkgheadid,"
" pkgdep_parent_pkghead_id=:parentid "
"WHERE (pkgdep_id=:pkgdepid);");
else
{
upsert.exec("SELECT NEXTVAL('pkgdep_pkgdep_id_seq');");
if (upsert.first())
pkgdepid = upsert.value(0).toInt();
else if (upsert.lastError().type() != QSqlError::NoError)
{
QSqlError err = upsert.lastError();
errMsg = _sqlerrtxt.arg(_name).arg(err.driverText()).arg(err.databaseText());
return -5;
}
upsert.prepare("INSERT INTO pkgdep ("
" pkgdep_id, pkgdep_pkghead_id, pkgdep_parent_pkghead_id"
") VALUES ("
" :pkgdepid, :pkgheadid, :parentid);");
}
upsert.bindValue(":pkgdepid", pkgdepid);
upsert.bindValue(":pkgheadid", pkgheadid);
//.........这里部分代码省略.........
示例11: set
int characteristicAssignment::set(const ParameterList &pParams)
{
QVariant param;
bool valid;
/* derive the targetType from the source table and pParams,
skipping params we know don't describe targets.
*/
QStringList passedIn;
foreach (Parameter p, pParams)
{
if (p.name() != "charass_id" && p.name() != "char_id" &&
p.name() != "mode" && p.name() != "showPrices")
{
passedIn << p.name();
}
}
if (! passedIn.isEmpty())
{
ParameterList srcp;
srcp.append("paramName", passedIn);
MetaSQLQuery srcm("SELECT source.* FROM source WHERE source_key_param IN ("
"<? foreach('paramName') ?>"
" <? if not isfirst('paramName') ?>, <? endif ?>"
" <? value('paramName') ?>"
"<? endforeach ?>);");
XSqlQuery srcq = srcm.toQuery(srcp);
if (srcq.first())
{
QString paramName = srcq.value("source_key_param").toString();
param = pParams.value(paramName, &valid);
if (valid)
{
_targetId = param.toInt();
_d->targetType = srcq.value("source_charass").toString();
_d->handleTargetType();
}
}
else if (ErrorReporter::error(QtCriticalMsg, this,
tr("Error Finding Characteristic Information"),
srcq, __FILE__, __LINE__))
{
return Error_NoSetup;
}
}
param = pParams.value("charass_id", &valid);
if (valid)
{
_charassid = param.toInt();
populate();
}
param = pParams.value("mode", &valid);
if (valid)
{
if (param.toString() == "new")
{
_mode = cNew;
}
else if (param.toString() == "edit")
{
_mode = cEdit;
}
else if (param.toString() == "view")
{
_mode = cView;
_char->setEnabled(false);
_value->setEnabled(false);
_buttonBox->setStandardButtons(QDialogButtonBox::Close);
}
}
param = pParams.value("showPrices", &valid);
if (valid)
{
_listpriceLit->show();
_listprice->show();
}
param = pParams.value("char_id", &valid);
if (valid)
{
for (int i = 0; i < _char->model()->rowCount(); i++)
{
QModelIndex idx = _char->model()->index(i, _d->idCol);
if (_char->model()->data(idx) == param)
_char->setCurrentIndex(i);
}
}
return NoError;
}
示例12: sSave
void package::sSave()
{
XSqlQuery packageSave;
if (_mode == cNew)
{
packageSave.exec("SELECT NEXTVAL('pkghead_pkghead_id_seq') AS _pkghead_id");
if (packageSave.first())
_pkgheadid = packageSave.value("_pkghead_id").toInt();
else if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Retrieving Package Information"),
packageSave, __FILE__, __LINE__))
{
return;
}
packageSave.prepare( "INSERT INTO pkghead ("
" pkghead_id, pkghead_name, pkghead_descrip,"
" pkghead_version, pkghead_developer, pkghead_notes,"
" pkghead_indev"
") VALUES ("
" :pkghead_id, :pkghead_name, :pkghead_descrip, "
" :pkghead_version, :pkghead_developer, :pkghead_notes,"
" :pkghead_indev);");
}
else if (_mode == cEdit)
{
packageSave.prepare( "SELECT pkghead_id "
"FROM pkghead "
"WHERE ( (UPPER(pkghead_name)=UPPER(:pkghead_name))"
" AND (pkghead_id<>:pkghead_id) );" );
packageSave.bindValue(":pkghead_id", _pkgheadid);
packageSave.bindValue(":pkghead_name", _name->text());
packageSave.exec();
if (packageSave.first())
{
QMessageBox::warning( this, tr("Cannot Save Package"),
tr("<p>You may not rename this Package to %1 as "
"this value is used by a different Package.") );
return;
}
packageSave.prepare( "UPDATE pkghead "
"SET pkghead_name=:pkghead_name,"
" pkghead_descrip=:pkghead_descrip,"
" pkghead_version=:pkghead_version,"
" pkghead_developer=:pkghead_developer,"
" pkghead_notes=:pkghead_notes,"
" pkghead_indev=:pkghead_indev "
"WHERE (pkghead_id=:pkghead_id);" );
}
packageSave.bindValue(":pkghead_id", _pkgheadid);
packageSave.bindValue(":pkghead_name", _name->text());
packageSave.bindValue(":pkghead_descrip", _description->text());
packageSave.bindValue(":pkghead_version", _version->text());
packageSave.bindValue(":pkghead_developer",_developer->text());
packageSave.bindValue(":pkghead_notes", _notes->toPlainText());
packageSave.bindValue(":pkghead_indev", _indev->isChecked());
packageSave.exec();
if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Saving Package Information"),
packageSave, __FILE__, __LINE__))
{
return;
}
if (DEBUG) qDebug("_enabled->isChecked: %d\tprior state: %d",
_enabled->isChecked(), _priorEnabledState);
if (_enabled->isChecked() != _priorEnabledState)
{
XSqlQuery eq;
QString funcname;
if (_enabled->isChecked())
{
eq.prepare("SELECT enablePackage(:id) AS result;");
funcname = "enablePackage";
}
else
{
eq.prepare("SELECT disablePackage(:id) AS result;");
funcname = "disablePackage";
}
eq.bindValue(":id", _pkgheadid);
eq.exec();
if (eq.first())
{
int result = eq.value("result").toInt();
if (result < 0)
{
ErrorReporter::error(QtCriticalMsg, this, tr("Error Saving Package Information"),
storedProcErrorLookup("funcname", result),
__FILE__, __LINE__);
return;
}
}
else if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Saving Package Information"),
eq, __FILE__, __LINE__))
{
return;
}
}
//.........这里部分代码省略.........
示例13: sSave
void characteristicAssignment::sSave()
{
if(_d->targetType == "I" || _d->targetType == "ITEMGRP")
{
if ( ((_stackedWidget->currentIndex() == CHARTEXT) && (_value->text().trimmed() == "")) ||
((_stackedWidget->currentIndex() == CHARLIST) && (_listValue->currentText() == "")) ||
((_stackedWidget->currentIndex() == CHARDATE) && (_dateValue->date().toString() == "")) )
{
QMessageBox::information( this, tr("No Value Entered"),
tr("You must enter a value before saving this Characteristic.") );
return;
}
}
XSqlQuery characteristicSave;
if (_char->model()->data(_char->model()->index(_char->currentIndex(), _d->idCol)) == -1)
{
QMessageBox::information( this, tr("No Characteristic Selected"),
tr("You must select a Characteristic before saving this Characteristic Assignment.") );
_char->setFocus();
return;
}
if (_mode == cNew &&
_d->_template &&
_stackedWidget->currentIndex() == CHARDATE)
{
characteristicSave.prepare("SELECT charass_id "
"FROM charass "
"WHERE ((charass_char_id=:charass_char_id) "
" AND (charass_target_id=:charass_target_id) "
" AND (charass_target_type=:charass_target_type));");
characteristicSave.bindValue(":charass_target_id", _targetId);
characteristicSave.bindValue(":charass_target_type", _d->targetType);
characteristicSave.bindValue(":charass_char_id", _char->model()->data(_char->model()->index(_char->currentIndex(), _d->idCol)));
characteristicSave.exec();
if (characteristicSave.first())
{
QMessageBox::critical(this, tr("Error"), tr("You can not use the same characteristic "
"for date type characteristics more than "
"once in this context."));
return;
}
}
if (_mode == cNew)
{
characteristicSave.exec("SELECT NEXTVAL('charass_charass_id_seq') AS charass_id;");
if (characteristicSave.first())
{
_charassid = characteristicSave.value("charass_id").toInt();
characteristicSave.prepare( "INSERT INTO charass "
"( charass_id, charass_target_id, charass_target_type, charass_char_id, charass_value, charass_price, charass_default ) "
"VALUES "
"( :charass_id, :charass_target_id, :charass_target_type, :charass_char_id, :charass_value, :charass_price, :charass_default );" );
}
}
else if (_mode == cEdit)
characteristicSave.prepare( "UPDATE charass "
"SET charass_char_id=:charass_char_id, charass_value=:charass_value, "
"charass_price=:charass_price, charass_default=:charass_default "
"WHERE (charass_id=:charass_id);" );
characteristicSave.bindValue(":charass_id", _charassid);
characteristicSave.bindValue(":charass_target_id", _targetId);
characteristicSave.bindValue(":charass_target_type", _d->targetType);
characteristicSave.bindValue(":charass_char_id", _char->model()->data(_char->model()->index(_char->currentIndex(), _d->idCol)));
if (_stackedWidget->currentIndex() == CHARTEXT)
characteristicSave.bindValue(":charass_value", _value->text());
else if (_stackedWidget->currentIndex() == CHARLIST)
characteristicSave.bindValue(":charass_value", _listValue->currentText());
else if (_stackedWidget->currentIndex() == CHARDATE)
characteristicSave.bindValue(":charass_value", _dateValue->date());
characteristicSave.bindValue(":charass_price", _listprice->toDouble());
characteristicSave.bindValue(":charass_default", QVariant(_default->isChecked()));
characteristicSave.exec();
done(_charassid);
}
示例14: sReassign
void reassignLotSerial::sReassign()
{
XSqlQuery reassignReassign;
if (_expirationDate->isEnabled())
{
if (!_expirationDate->isValid() || _expirationDate->isNull())
{
QMessageBox::critical( this, tr("Enter a valid date"),
tr("You must enter a valid expiration date before you can continue.") );
_expirationDate->setFocus();
return;
}
}
if (_source->currentItem() == 0)
{
QMessageBox::critical( this, tr("Select Source Location"),
tr("You must select a Source Location before reassigning its Lot/Serial #.") );
_source->setFocus();
return;
}
if (_qty->toDouble() == 0)
{
QMessageBox::critical( this, tr("Enter Quantity to Reassign"),
tr("You must enter a quantity to reassign.") );
_qty->setFocus();
return;
}
if (_lotNumber->text().length() == 0)
{
QMessageBox::critical( this, tr("Enter New Lot Number to Reassign"),
tr("You must enter a New Lot Number to reassign.") );
_qty->setFocus();
return;
}
QDoubleValidator* qtyVal = (QDoubleValidator*)(_qty->validator());
reassignReassign.prepare("SELECT reassignLotSerial(:source, CAST (:qty AS NUMERIC(100,:decimals)), "
" :lotNumber, :expirationDate, :warrantyDate) AS result;");
reassignReassign.bindValue(":source", _source->id());
reassignReassign.bindValue(":qty", _qty->toDouble());
reassignReassign.bindValue(":decimals", qtyVal->decimals());
reassignReassign.bindValue(":lotNumber", _lotNumber->text());
if (_expirationDate->isEnabled())
reassignReassign.bindValue(":expirationDate", _expirationDate->date());
else
reassignReassign.bindValue(":expirationDate", omfgThis->endOfTime());
if (_warrantyDate->isEnabled())
reassignReassign.bindValue(":warrantyDate", _warrantyDate->date());
reassignReassign.exec();
if (reassignReassign.first())
{
int result = reassignReassign.value("result").toInt();
if (result < 0)
{
systemError(this, storedProcErrorLookup("reassignLotSerial", result),
__FILE__, __LINE__);
return;
}
}
else if (reassignReassign.lastError().type() != QSqlError::NoError)
{
systemError(this, reassignReassign.lastError().databaseText(), __FILE__, __LINE__);
return;
}
if (_captive)
accept();
else
{
_close->setText(tr("&Close"));
sFillList();
if (_qty->isEnabled())
_qty->clear();
_qty->setFocus();
_lotNumber->clear();
_expirationDate->setNull();
_warrantyDate->setNull();
}
}
示例15: sShip
void shipOrder::sShip()
{
XSqlQuery shipq;
shipq.prepare( "UPDATE shiphead "
" SET shiphead_shipvia=:shiphead_shipvia,"
" shiphead_freight=:shiphead_freight,"
" shiphead_freight_curr_id=:shiphead_freight_curr_id,"
" shiphead_tracknum=:shiphead_tracknum "
" WHERE (shiphead_id=:shiphead_id);");
shipq.bindValue(":shiphead_shipvia", _shipVia->currentText());
shipq.bindValue(":shiphead_freight", _freight->localValue());
shipq.bindValue(":shiphead_freight_curr_id", _freight->id());
shipq.bindValue(":shiphead_tracknum", _tracknum->currentText());
shipq.bindValue(":shiphead_id", _shipment->id());
shipq.exec();
if (shipq.lastError().type() != QSqlError::NoError)
{
systemError(this, shipq.lastError().databaseText(), __FILE__, __LINE__);
return;
}
XSqlQuery rollback;
rollback.prepare("ROLLBACK;");
// failed insertGLTransaction RETURNs -5 rather than RAISE EXCEPTION
shipq.exec("BEGIN;");
shipq.prepare( "SELECT shipShipment(:shiphead_id, :ts) AS result;");
shipq.bindValue(":shiphead_id", _shipment->id());
shipq.bindValue(":ts", _transDate->date());
shipq.exec();
if (shipq.first())
{
int result = shipq.value("result").toInt();
if (result == -6)
{
rollback.exec();
shipq.prepare("SELECT itemsite_id, tohead_trns_warehous_id,"
" tohead_dest_warehous_id "
"FROM shiphead, shipitem, tohead, toitem, itemsite "
"WHERE ((itemsite_item_id=toitem_item_id)"
" AND (itemsite_warehous_id=tohead_src_warehous_id)"
" AND (toitem_tohead_id=tohead_id)"
" AND (shipitem_orderitem_id=toitem_id)"
" AND (shiphead_id=shipitem_shiphead_id)"
" AND (shiphead_order_type='TO')"
" AND (NOT shiphead_shipped)"
" AND (shiphead_id=:shiphead_id));");
shipq.bindValue(":shiphead_id", _shipment->id());
shipq.exec();
while (shipq.next())
{
// missing transit itemsite is fatal here but not missing dest
int transis = itemSite::createItemSite(this,
shipq.value("itemsite_id").toInt(),
shipq.value("tohead_trns_warehous_id").toInt(),
false);
int destis = itemSite::createItemSite(this,
shipq.value("itemsite_id").toInt(),
shipq.value("tohead_dest_warehous_id").toInt(),
true);
if (transis <= 0 || destis < 0)
return;
}
if (shipq.lastError().type() != QSqlError::NoError)
{
systemError(this, shipq.lastError().databaseText(), __FILE__, __LINE__);
return;
}
sShip(); // beware of endless loop if you change createItemSite err check
return; // return because the recursive call cleans up for us
}
else if (result < 0)
{
rollback.exec();
systemError(this, storedProcErrorLookup("shipShipment", result),
__FILE__, __LINE__);
return;
}
}
else if (shipq.lastError().type() != QSqlError::NoError)
{
rollback.exec();
QString errorStr = shipq.lastError().databaseText();
if(errorStr.startsWith("ERROR: null value in column \"gltrans_accnt_id\" violates not-null constraint"))
errorStr = tr("One or more required accounts are not set or set incorrectly."
" Please make sure that all your Cost Category and Sales Account Assignments"
" are complete and correct.");
systemError(this, errorStr, __FILE__, __LINE__);
return;
}
shipq.exec("COMMIT;");
if (shipq.lastError().type() != QSqlError::NoError)
{
systemError(this, shipq.lastError().databaseText(), __FILE__, __LINE__);
return;
}
// END the transaction
if (_print->isChecked())
//.........这里部分代码省略.........