void RSSEditPopup::parseAndSave(void) { if (m_editing) { QString title = m_titleEdit->GetText(); QString desc = m_descEdit->GetText(); QString author = m_authorEdit->GetText(); QString link = m_urlEdit->GetText(); QString filename = m_thumbImage->GetFilename(); bool download; if (m_download->GetCheckState() == MythUIStateType::Full) download = true; else download = false; removeFromDB(m_urlText, VIDEO_PODCAST); if (insertInDB(new RSSSite(title, filename, VIDEO_PODCAST, desc, link, author, download, QDateTime::currentDateTime()))) emit saving(); Close(); } else { m_manager = new QNetworkAccessManager(); QUrl qurl(m_urlEdit->GetText()); m_reply = m_manager->get(QNetworkRequest(qurl)); connect(m_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotCheckRedirect(QNetworkReply*))); } }
bool databaseInformation::sSave() { emit saving(); _metrics->set("DatabaseName", _description->text().trimmed()); _metrics->set("DatabaseComments", _comments->toPlainText().trimmed()); _metrics->set("DisallowMismatchClientVersion", _disallowMismatchClient->isChecked()); _metrics->set("updateTickInterval", _interval->value()); if(_access->currentIndex() == 1) _metrics->set("AllowedUserLogins", QString("AdminOnly")); else if(_access->currentIndex() == 2) _metrics->set("AllowedUserLogins", QString("Any")); else _metrics->set("AllowedUserLogins", QString("ActiveOnly")); _metrics->set("DisableAutoComplete", _disableAutoComplete->isChecked()); _metrics->load(); omfgThis->setWindowTitle(); return true; }
bool configureWO::sSave() { XSqlQuery configureSave; emit saving(); configureSave.prepare("SELECT setNextWoNumber(:woNumber) AS result;"); configureSave.bindValue(":woNumber", _nextWoNumber->text().toInt()); configureSave.exec(); _metrics->set("AutoExplodeWO", _autoExplode->isChecked()); _metrics->set("IssueToExplodedWO", _issueToExplodedWO->isChecked()); _metrics->set("WorkOrderChangeLog", _workOrderChangeLog->isChecked()); _metrics->set("WONumberGeneration", _woNumGeneration->code()); _metrics->set("ExplodeWOEffective", ((_explodeDateEffective->isChecked()) ? QString("E") : QString("S"))); _metrics->set("WOExplosionLevel", ((_singleLevel->isChecked()) ? QString("S") : QString("M"))); _metrics->set("PostMaterialVariances", _materialVariances->isChecked()); if (_todate->isChecked()) _metrics->set("JobItemCosDefault", QString("D")); else _metrics->set("JobItemCosDefault", QString("P")); return true; }
void RSSEditor::slotEditSite() { QMutexLocker locker(&m_lock); MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack(); RSSSite *site = qVariantValue<RSSSite *>(m_sites->GetItemCurrent()->GetData()); if (site) { RSSEditPopup *rsseditpopup = new RSSEditPopup(site->GetURL(), true, mainStack, "rsseditpopup"); if (rsseditpopup->Create()) { connect(rsseditpopup, SIGNAL(saving()), this, SLOT(listChanged())); mainStack->AddScreen(rsseditpopup); } else { delete rsseditpopup; } } }
bool configureMS::sSave() { emit saving(); XSqlQuery configq; configq.prepare("SELECT setNextPlanNumber(:planord_number) AS result;"); configq.bindValue(":planord_number", _nextPlanNumber->text().toInt()); configq.exec(); _metrics->set("DefaultMSCalendar", _calendar->id()); return true; }
/*! Emits the \a saving() signal which triggers any widgets to save that have a mapped \a savedMethod() specified by \sa insert(). Also reloads metrics, privileges, preferences, and the menubar in the main application. The screen will close if \a close is true. \sa apply() */ void setup::save(bool close) { emit saving(); QMapIterator<QString, ItemProps> i(_itemMap); while (i.hasNext()) { bool ok = false; i.next(); XAbstractConfigure *cw = qobject_cast<XAbstractConfigure*>(i.value().implementation); QScriptEngine *engine = qobject_cast<QScriptEngine*>(i.value().implementation); QString method = QString(i.value().saveMethod).remove("(").remove(")"); if (! i.value().implementation) continue; else if (cw) ok = cw->sSave(); else if (engine && engine->globalObject().property(method).isFunction()) { QScriptValue saveresult = engine->globalObject().property(method).call(); if (saveresult.isBool()) ok = saveresult.toBool(); else qWarning("Problem executing %s method for script %s", qPrintable(i.value().saveMethod), qPrintable(i.key())); } else { qWarning("Could not call save method for %s; it's a(n) %s (%p)", qPrintable(i.key()), qobject_cast<QObject*>(i.value().implementation) ? qobject_cast<QObject*>(i.value().implementation)->metaObject()->className() : "unknown class", i.value().implementation); ok = true; } if (! ok) { setCurrentIndex(i.key()); return; } } _metrics->load(); _privileges->load(); _preferences->load(); omfgThis->initMenuBar(); if (close) accept(); }
bool configureEncryption::sSave() { emit saving(); _metrics->set("CCEncKeyName", _ccEncKeyName->text()); _metrics->set("CCWinEncKey", _ccWinEncKey->text()); _metrics->set("CCLinEncKey", _ccLinEncKey->text()); _metrics->set("CCMacEncKey", _ccMacEncKey->text()); _metrics->load(); if (0 != _metricsenc) _metricsenc->load(); return true; }
void RSSEditor::slotNewSite() { QMutexLocker locker(&m_lock); MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack(); RSSEditPopup *rsseditpopup = new RSSEditPopup("", false, mainStack, "rsseditpopup"); if (rsseditpopup->Create()) { connect(rsseditpopup, SIGNAL(saving()), this, SLOT(listChanged())); mainStack->AddScreen(rsseditpopup); } else { delete rsseditpopup; } }
void ScreenControl::save() { emit saving(); int i=_mapper.currentIndex(); _mapper.submit(); _model->submitAll(); _mapper.setCurrentIndex(i); qDebug("error %d",_model->lastError().isValid()); if (_model->lastError().type() != QSqlError::NoError && _model->lastError().driverText() != "No Fields to update") { QMessageBox::critical(this, tr("Error Saving %1").arg(_tableName), tr("Error saving %1 at %2::%3\n\n%4") .arg(_tableName).arg(__FILE__).arg(__LINE__) .arg(_model->lastError().databaseText())); return; } if (_mode==New) newRow(); _save->setEnabled(false); emit saved(true); }
bool configureCC::sSave() { emit saving(); _metrics->set("CCAccept", _ccAccept->isChecked()); _metrics->set("CCTest", _ccTest->isChecked()); _metrics->set("CCValidDays", _ccValidDays->value()); _metrics->set("CCCompany", _ccCompany->currentText()); _metrics->set("CCServer", _ccServer->text()); _metrics->set("CCPort", _ccPort->text()); _metrics->set("CCUseProxyServer", _ccUseProxyServer->isChecked()); _metrics->set("CCProxyServer", _ccProxyServer->text()); _metrics->set("CCProxyPort", _ccProxyPort->text()); XSqlQuery ccbankq; ccbankq.prepare("SELECT setCCBankAccnt(:cctype, :bankaccnt_id) AS result;"); QList<QPair<QString, XComboBox*> > bankWidgets; bankWidgets << QPair<QString, XComboBox*>("A", _amexBank) << QPair<QString, XComboBox*>("D", _discoverBank) << QPair<QString, XComboBox*>("M", _mastercardBank) << QPair<QString, XComboBox*>("V", _visaBank) << QPair<QString, XComboBox*>("O", _otherBank) // << QPair<QString, XComboBox*>("P", _paypalBank) ; QPair<QString, XComboBox*> bank; foreach(bank, bankWidgets) { ccbankq.bindValue(":cctype", bank.first); ccbankq.bindValue(":bankaccnt_id", bank.second->isValid() ? bank.second->id() : QVariant()); ccbankq.exec(); if (ErrorReporter::error(QtCriticalMsg, this, tr("Setting Credit Card Bank Accounts"), ccbankq, __FILE__, __LINE__)) { bank.second->setFocus(); return false; } }
void ParametersConfiguration::saveAs(QString fileName, bool saveSyncronized) { //qDebug() << "Saving: " << fileName; ParametersConfiguration::lock_.lockForWrite(); QFile data(fileName); if (!data.open(QIODevice::WriteOnly | QIODevice::Text)) return; for (int i = 0; i < sections_.size(); i++) { for (unsigned int j = 0; j < sections_[i]->size(); j++) { ParameterElementData *e = get((*sections_[i])[j]->name()); if (!parentData_ || !saveSyncronized || !e->syncWithUpperLevel()) { if(e->locked()) data.write(QString("# LOCKED: YES\n").toLatin1()); if(e->isWrong()) data.write(QString("# ISWRONG: YES\n").toLatin1()); data.write(QString("set " + e->name() + " = " + '"' + e->value().toString() + '"' + "\n").toLatin1()); } } } data.write("#\n#=============================================================================\n#\n", 83); setModified(false); emit saving(); data.close(); ParametersConfiguration::lock_.unlock(); }
bool configureIM::sSave() { XSqlQuery configureSave; emit saving(); if(!_costAvg->isChecked() && !_costStd->isChecked()) { QMessageBox::warning(this, tr("No Cost selected"), tr("<p>You must have checked Standard Cost, " "Average Cost or both before saving.")); return false; } // Inventory _metrics->set("DefaultEventFence", _eventFence->value()); _metrics->set("ItemSiteChangeLog", _itemSiteChangeLog->isChecked()); _metrics->set("WarehouseChangeLog", _warehouseChangeLog->isChecked()); _metrics->set("PostCountTagToDefault", _postToDefault->isChecked()); _metrics->set("MultiWhs", ((!_multiWhs->isCheckable()) || (_multiWhs->isChecked()))); _metrics->set("LotSerialControl", _lotSerial->isChecked()); _metrics->set("SetDefaultLocations", _setDefLoc->isChecked()); _metrics->set("AllowAvgCostMethod", _costAvg->isChecked()); _metrics->set("AllowStdCostMethod", _costStd->isChecked()); _metrics->set("AllowJobCostMethod", _costJob->isChecked()); _metrics->set("AllowReceiptCostOverride", _receiptCostOverride->isChecked()); if (_toNumGeneration->currentIndex() == 0) _metrics->set("TONumberGeneration", QString("M")); else if (_toNumGeneration->currentIndex() == 1) _metrics->set("TONumberGeneration", QString("A")); else if (_toNumGeneration->currentIndex() == 2) _metrics->set("TONumberGeneration", QString("O")); if (_metrics->boolean("MultiWhs")) { configureSave.prepare("SELECT setNextNumber('ToNumber', :next) AS result;"); configureSave.bindValue(":next", _toNextNum->text()); configureSave.exec(); if (configureSave.first()) { int result = configureSave.value("result").toInt(); if (result < 0) { systemError(this, storedProcErrorLookup("setNextNumber", result), __FILE__, __LINE__); _toNextNum->setFocus(); return false; } } else if (configureSave.lastError().type() != QSqlError::NoError) { systemError(this, configureSave.lastError().databaseText(), __FILE__, __LINE__); _toNextNum->setFocus(); return false; } _metrics->set("DefaultTransitWarehouse", _defaultTransWhs->id()); _metrics->set("EnableTOShipping", _enableToShipping->isChecked()); _metrics->set("TransferOrderChangeLog", _transferOrderChangeLog->isChecked()); } if (_noSlipChecks->isChecked()) _metrics->set("CountSlipAuditing", QString("N")); else if (_checkOnUnpostedWarehouse->isChecked()) _metrics->set("CountSlipAuditing", QString("W")); else if (_checkOnUnposted->isChecked()) _metrics->set("CountSlipAuditing", QString("A")); else if (_checkOnAllWarehouse->isChecked()) _metrics->set("CountSlipAuditing", QString("X")); else if (_checkOnAll->isChecked()) _metrics->set("CountSlipAuditing", QString("B")); if (_useStdCost->isChecked()) _metrics->set("CountAvgCostMethod", QString("STD")); else if (_useActCost->isChecked()) _metrics->set("CountAvgCostMethod", QString("ACT")); else if (_useAvgCost->isChecked()) _metrics->set("CountAvgCostMethod", QString("AVG")); //Shipping and Receiving const char *numberGenerationTypes[] = { "A" }; _metrics->set("ShipmentNumberGeneration", QString(numberGenerationTypes[_shipmentNumGeneration->currentIndex()])); if (! _shipformCopies->save()) return false; _metrics->set("KitComponentInheritCOS", _kitInheritCOS->isChecked()); _metrics->set("DisallowReceiptExcessQty", _disallowReceiptExcess->isChecked()); _metrics->set("WarnIfReceiptQtyDiffers", _warnIfReceiptDiffers->isChecked()); _metrics->set("ReceiptQtyTolerancePct", _tolerance->text()); _metrics->set("RecordPPVonReceipt", _recordPpvOnReceipt->isChecked()); configureSave.prepare("SELECT setval('shipment_number_seq', :shipmentnumber);"); configureSave.bindValue(":shipmentnumber", _nextShipmentNum->text().toInt()); configureSave.exec(); if (configureSave.lastError().type() != QSqlError::NoError) { systemError(this, configureSave.lastError().databaseText(), __FILE__, __LINE__); _nextShipmentNum->setFocus(); return false; } if(_asOfQOH->isChecked() && !_metrics->boolean("EnableAsOfQOH")) { if(QMessageBox::question(this, tr("Enable As-Of QOH Reporting"), tr("<p>Enabling As-Of QOH reporting requires some processing to occur " "for it to work correctly. This may take some time. Would you like to continue?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) { XSqlQuery qq; qq.exec("SELECT buildInvbal(itemsite_id)" " FROM itemsite;"); if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Enabing As-Of Reporting"), qq, __FILE__, __LINE__)) return false; } else return false; } _metrics->set("EnableAsOfQOH", _asOfQOH->isChecked()); return true; }
bool configurePD::sSave() { XSqlQuery configureSave; emit saving(); if (!_metrics->boolean("RevControl") && (_revControl->isChecked())) { if (QMessageBox::warning(this, tr("Enable Revision Control"), tr("Enabling revision control will create control records " "for products that contain revision number data. This " "change can not be undone. Do you wish to proceed?"), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape) == QMessageBox::Yes) { _metrics->set("RevControl", true); QString rsql = "SELECT createbomrev(bomhead_item_id,bomhead_revision) AS result " " FROM bomhead " " WHERE((COALESCE(bomhead_revision,'') <> '') " " AND (bomhead_rev_id=-1))"; if (_metrics->value("Application") != "Standard" && _metrics->value("Application") != "PostBooks") rsql += " UNION " "SELECT createboorev(boohead_item_id,boohead_revision) " " FROM boohead " " WHERE((COALESCE(boohead_revision,'') <> '') " " AND (boohead_rev_id=-1));"; configureSave.exec(rsql); if (configureSave.first() && (configureSave.value("result").toInt() < 0)) { ErrorReporter::error(QtCriticalMsg, this, tr("Error Saving Period"), storedProcErrorLookup("CreateRevision", configureSave.value("result").toInt()), __FILE__, __LINE__); _metrics->set("RevControl", false); return false; } if (configureSave.lastError().type() != QSqlError::NoError) { QMessageBox::critical(this, tr("A System Error Occurred at %1::%2.") .arg(__FILE__) .arg(__LINE__), configureSave.lastError().databaseText()); _metrics->set("RevControl", false); return false; } } else return false; } if (!_metrics->boolean("EnforceUniqueBarcodes") && (_uniqueBarcodes->isChecked())) { // Check for existing duplicated UPC Codes if switching on QString usql = "SELECT EXISTS(SELECT 1 FROM item " " WHERE ((item_active) AND (item_upccode IS NOT NULL)) " " GROUP BY item_upccode " " HAVING count(*) > 1) AS result;"; configureSave.exec(usql); if (configureSave.first() && (configureSave.value("result").toBool())) { QMessageBox::warning(this, tr("Unique Barcodes"), tr("You cannot enable unique bar codes on items " "when duplicates exist. Please first remove all " "duplicate bar codes on active items, then enable this setting.")); _uniqueBarcodes->setChecked(false); return false; } } _metrics->set("Transforms", ((_transforms->isChecked()) && (!_transforms->isHidden()))); _metrics->set("RevControl", ((_revControl->isChecked()) && (!_revControl->isHidden()))); _metrics->set("AllowInactiveBomItems", _inactiveBomItems->isChecked()); _metrics->set("DefaultSoldItemsExclusive", _exclusive->isChecked()); _metrics->set("ItemChangeLog", _changeLog->isChecked()); _metrics->set("AllowBOMItemDelete", _allowDelete->isChecked()); _metrics->set("AutoItemSearch", _autoItemSearch->isChecked()); _metrics->set("EnforceUniqueBarcodes", _uniqueBarcodes->isChecked()); if (_freightCostElementDefault->id() > 0) _metrics->set("DefaultFreightCostElement", _freightCostElementDefault->id()); if (_issueMethod->currentIndex() == 0) _metrics->set("DefaultWomatlIssueMethod", QString("S")); else if (_issueMethod->currentIndex() == 1) _metrics->set("DefaultWomatlIssueMethod", QString("L")); else if (_issueMethod->currentIndex() == 2) _metrics->set("DefaultWomatlIssueMethod", QString("M")); return true; }
void RSSEditPopup::slotSave(QNetworkReply* reply) { QDomDocument document; document.setContent(reply->read(reply->bytesAvailable()), true); QString text = document.toString(); QString title = m_titleEdit->GetText(); QString description = m_descEdit->GetText(); QString author = m_authorEdit->GetText(); QString file = m_thumbImage->GetFilename(); bool download; if (m_download->GetCheckState() == MythUIStateType::Full) download = true; else download = false; VERBOSE(VB_GENERAL|VB_EXTRA, QString("Text to Parse: %1").arg(text)); QDomElement root = document.documentElement(); QDomElement channel = root.firstChildElement ("channel"); if (!channel.isNull ()) { Parse parser; if (title.isEmpty()) title = channel.firstChildElement("title").text().trimmed(); if (description.isEmpty()) description = channel.firstChildElement("description").text(); if (author.isEmpty()) author = parser.GetAuthor(channel); if (author.isEmpty()) author = channel.firstChildElement("managingEditor").text(); if (author.isEmpty()) author = channel.firstChildElement("webMaster").text(); QString thumbnailURL = channel.firstChildElement("image").attribute("url"); if (thumbnailURL.isEmpty()) { QDomElement thumbElem = channel.firstChildElement("image"); if (!thumbElem.isNull()) thumbnailURL = thumbElem.firstChildElement("url").text(); } if (thumbnailURL.isEmpty()) { QDomNodeList nodes = channel.elementsByTagNameNS( "http://www.itunes.com/dtds/podcast-1.0.dtd", "image"); if (nodes.size()) { thumbnailURL = nodes.at(0).toElement().attributeNode("href").value(); if (thumbnailURL.isEmpty()) thumbnailURL = nodes.at(0).toElement().text(); } } bool download; if (m_download->GetCheckState() == MythUIStateType::Full) download = true; else download = false; QDateTime updated = QDateTime::currentDateTime(); QString filename(""); if (file.isEmpty()) filename = file; QString link = m_urlEdit->GetText(); if (!thumbnailURL.isEmpty() && filename.isEmpty()) { QString fileprefix = GetConfDir(); QDir dir(fileprefix); if (!dir.exists()) dir.mkdir(fileprefix); fileprefix += "/MythNetvision"; dir = QDir(fileprefix); if (!dir.exists()) dir.mkdir(fileprefix); fileprefix += "/sitecovers"; dir = QDir(fileprefix); if (!dir.exists()) dir.mkdir(fileprefix); QFileInfo fi(thumbnailURL); QString rawFilename = fi.fileName(); filename = QString("%1/%2").arg(fileprefix).arg(rawFilename); bool exists = QFile::exists(filename); if (!exists) HttpComms::getHttpFile(filename, thumbnailURL, 20000, 1, 2); } if (insertInDB(new RSSSite(title, filename, VIDEO_PODCAST, description, link, author, download, QDateTime::currentDateTime()))) emit saving(); } Close(); }
void configureSO::sSave() { emit saving(); const char *numberGenerationTypes[] = { "M", "A", "O", "S" }; const char *dispositionTypes[] = { "C", "R", "P", "V", "M", "" }; const char *timingTypes[] = { "I", "R", "" }; const char *creditMethodTypes[] = { "N", "M", "K", "C", "" }; if ( (_metrics->boolean("EnableSOReservationsByLocation")) && (!_locationGroup->isChecked()) ) { if (QMessageBox::warning(this, tr("Reserve by Location Disabled"), tr("<p>All existing location reservations will be removed. Are you sure you want to continue?"), QMessageBox::Yes, QMessageBox::No | QMessageBox::Default) == QMessageBox::No) { return; } else { q.prepare("DELETE FROM itemlocrsrv " " WHERE (itemlocrsrv_source='SO');"); q.exec(); } } _metrics->set("ShowQuotesAfterSO", _quoteafterSO->isChecked()); _metrics->set("AllowDiscounts", _allowDiscounts->isChecked()); _metrics->set("AllowASAPShipSchedules", _allowASAP->isChecked()); _metrics->set("CustomerChangeLog", _customerChangeLog->isChecked()); _metrics->set("SalesOrderChangeLog", _salesOrderChangeLog->isChecked()); _metrics->set("RestrictCreditMemos", _restrictCreditMemos->isChecked()); _metrics->set("AutoSelectForBilling", _autoSelectForBilling->isChecked()); _metrics->set("AlwaysShowSaveAndAdd", _saveAndAdd->isChecked()); _metrics->set("FirmSalesOrderPackingList", _firmAndAdd->isChecked()); _metrics->set("DisableSalesOrderPriceOverride", _priceOverride->isChecked()); _metrics->set("AutoAllocateCreditMemos", _autoAllocateCM->isChecked()); _metrics->set("HideSOMiscCharge", _hideSOMiscChrg->isChecked()); _metrics->set("EnableSOShipping", _enableSOShipping->isChecked()); _metrics->set("CONumberGeneration", QString(numberGenerationTypes[_orderNumGeneration->currentIndex()])); _metrics->set("QUNumberGeneration", QString(numberGenerationTypes[_quoteNumGeneration->currentIndex()])); _metrics->set("CMNumberGeneration", QString(numberGenerationTypes[_creditMemoNumGeneration->currentIndex()])); _metrics->set("InvcNumberGeneration", QString(numberGenerationTypes[_invoiceNumGeneration->currentIndex()])); _metrics->set("DefaultShipFormId", _shipform->id()); _metrics->set("DefaultShipViaId", _shipvia->id()); _metrics->set("DefaultCustType", _custtype->id()); _metrics->set("DefaultSalesRep", _salesrep->id()); _metrics->set("DefaultTerms", _terms->id()); _metrics->set("DefaultPartialShipments", _partial->isChecked()); _metrics->set("DefaultBackOrders", _backorders->isChecked()); _metrics->set("DefaultFreeFormShiptos", _freeFormShiptos->isChecked()); _metrics->set("DefaultPrintSOOnSave", _printSO->isChecked()); _metrics->set("UsePromiseDate", _enablePromiseDate->isChecked()); _metrics->set("CalculateFreight", _calcFreight->isChecked()); _metrics->set("IncludePackageWeight", _includePkgWeight->isChecked()); _metrics->set("EnableReturnAuth", _enableReturns->isChecked()); _metrics->set("EnableSOReservations", _enableReservations->isChecked()); _metrics->set("EnableSOReservationsByLocation", _locationGroup->isChecked()); //SOReservationLocationMethod are three Options Either // Lowest quantity first, // Highest quantity first, // Alpha by Location Name if(_lowest->isChecked()) _metrics->set("SOReservationLocationMethod", 1); else if (_highest->isChecked()) _metrics->set("SOReservationLocationMethod", 2); else if(_alpha->isChecked()) _metrics->set("SOReservationLocationMethod", 3); _metrics->set("SOCreditLimit", _creditLimit->text()); _metrics->set("SOCreditRate", _creditRating->text()); if (_priceOrdered->isChecked()) _metrics->set("soPriceEffective", QString("OrderDate")); else if (_priceScheduled->isChecked()) _metrics->set("soPriceEffective", QString("ScheduleDate")); else _metrics->set("soPriceEffective", QString("CurrentDate")); //UpdatePriceLineEdit are three Options Either // Don't Update price // Ask to Update Price, // Update Price if(_dontUpdatePrice->isChecked()) _metrics->set("UpdatePriceLineEdit", 1); else if (_askUpdatePrice->isChecked()) _metrics->set("UpdatePriceLineEdit", 2); else if(_updatePrice->isChecked()) _metrics->set("UpdatePriceLineEdit", 3); _metrics->set("IgnoreCustDisc", _askUpdatePrice->isChecked() && _ignoreCustDisc->isChecked()); if(_invcScheddate->isChecked()) _metrics->set("InvoiceDateSource", QString("scheddate")); else if(_invcShipdate->isChecked()) _metrics->set("InvoiceDateSource", QString("shipdate")); else _metrics->set("InvoiceDateSource", QString("currdate")); _metrics->set("InvoiceCopies", _invoiceNumOfCopies->value()); if (_invoiceNumOfCopies->value()) { for (int counter = 0; counter < _invoiceWatermarks->topLevelItemCount(); counter++ ) { _metrics->set(QString("InvoiceWatermark%1").arg(counter), _invoiceWatermarks->topLevelItem(counter)->text(1)); _metrics->set(QString("InvoiceShowPrices%1").arg(counter), _invoiceWatermarks->topLevelItem(counter)->text(2) == tr("Yes")); } } _metrics->set("CreditMemoCopies", _creditMemoNumOfCopies->value()); if (_creditMemoNumOfCopies->value()) { for (int counter = 0; counter < _creditMemoWatermarks->topLevelItemCount(); counter++) { _metrics->set(QString("CreditMemoWatermark%1").arg(counter), _creditMemoWatermarks->topLevelItem(counter)->text(1)); _metrics->set(QString("CreditMemoShowPrices%1").arg(counter), (_creditMemoWatermarks->topLevelItem(counter)->text(2) == tr("Yes"))); } } switch (_balanceMethod->currentIndex()) { case 0: _metrics->set("DefaultBalanceMethod", QString("B")); break; case 1: _metrics->set("DefaultBalanceMethod", QString("O")); break; } q.prepare( "SELECT setNextSoNumber(:sonumber), setNextQuNumber(:qunumber)," " setNextCmNumber(:cmnumber), setNextInvcNumber(:innumber);" ); q.bindValue(":sonumber", _nextSoNumber->text().toInt()); q.bindValue(":qunumber", _nextQuNumber->text().toInt()); q.bindValue(":cmnumber", _nextCmNumber->text().toInt()); q.bindValue(":innumber", _nextInNumber->text().toInt()); q.exec(); if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); return; } if (_enableReturns->isChecked() || !_enableReturns->isCheckable()) { _metrics->set("DefaultRaDisposition", QString(dispositionTypes[_disposition->currentIndex()])); _metrics->set("DefaultRaTiming", QString(timingTypes[_timing->currentIndex()])); _metrics->set("DefaultRaCreditMethod", QString(creditMethodTypes[_creditBy->currentIndex()])); _metrics->set("ReturnAuthorizationChangeLog", _returnAuthChangeLog->isChecked()); _metrics->set("DefaultPrintRAOnSave", _printRA->isChecked()); _metrics->set("RANumberGeneration", QString(numberGenerationTypes[_returnAuthorizationNumGeneration->currentIndex()])); q.prepare( "SELECT setNextRaNumber(:ranumber);" ); q.bindValue(":ranumber", _nextRaNumber->text().toInt()); q.exec(); if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); return; } } _metrics->set("EnableReturnAuth", (_enableReturns->isChecked() || !_enableReturns->isCheckable())); }
bool configureIE::sSave() { emit saving(); if (_importErrorXMLHandling->isChecked() && _importErrorSelector->option() != FileMoveSelector::Suffix && _importErrorSelector->option() != FileMoveSelector::ChangeDir) { QMessageBox::critical(this, tr("Inconsistent Selection"), tr("<p>Please choose to add a suffix after errors, " "move the import file after errors, or " "uncheck '%1'.") .arg(_importErrorXMLHandling->text())); return false; } _metrics->set("XMLSuccessTreatment", _importSuccessSelector->code()); if (_internal->isChecked()) _metrics->set("XSLTLibrary", _internal->isChecked()); else if (_external->isChecked()) { if (_linuxCmd->text().isEmpty() && _macCmd->text().isEmpty() && _windowsCmd->text().isEmpty() && QMessageBox::question(this, tr("Incomplete Data"), tr("<p>XSLT is not configured. Some XML imports may fail. " "Would you like to fix this now?</p>"), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No) == QMessageBox::Yes) { _tabs->setCurrentIndex(_tabs->indexOf(_mappingTab)); _linuxCmd->setFocus(); return false; } _metrics->set("XSLTLibrary", ! _external->isChecked()); } else { QMessageBox::critical(this, tr("Incomplete Data"), tr("<p>Please choose whether to use the internal " "XSLT processor or an external XSLT processor.")); _tabs->setCurrentIndex(_tabs->indexOf(_importTab)); _internal->setFocus(); return false; } _metrics->set("XSLTDefaultDirLinux", _xsltLinuxDir->text()); _metrics->set("XSLTDefaultDirMac", _xsltMacDir->text()); _metrics->set("XSLTDefaultDirWindows", _xsltWindowsDir->text()); _metrics->set("XSLTProcessorLinux", _linuxCmd->text()); _metrics->set("XSLTProcessorMac", _macCmd->text()); _metrics->set("XSLTProcessorWindows", _windowsCmd->text()); _metrics->set("XMLDefaultDirLinux", _importLinuxDir->text()); _metrics->set("XMLDefaultDirMac", _importMacDir->text()); _metrics->set("XMLDefaultDirWindows", _importWindowsDir->text()); _metrics->set("CSVAtlasDefaultDirLinux", _atlasLinuxDir->text()); _metrics->set("CSVAtlasDefaultDirMac", _atlasMacDir->text()); _metrics->set("CSVAtlasDefaultDirWindows", _atlasWindowsDir->text()); _metrics->set("XMLSuccessSuffix", _importSuccessSelector->suffix()); _metrics->set("XMLSuccessDir", _importSuccessSelector->destdir()); _metrics->set("ImportFailureTreatment", _importErrorSelector->code()); _metrics->set("ImportFailureSuffix", _importErrorSelector->suffix()); _metrics->set("ImportFailureDir", _importErrorSelector->destdir()); _metrics->set("ImportXMLCreateErrorFile", _importErrorXMLHandling->isChecked()); _metrics->set("XMLExportDefaultDirLinux", _exportLinuxDir->text()); _metrics->set("XMLExportDefaultDirMac", _exportMacDir->text()); _metrics->set("XMLExportDefaultDirWindows", _exportWindowsDir->text()); return true; }
bool ContextPrivate::save( const QString &pFileName, const QList<QUuid> *pNodeList ) const { QFileInfo FileInfo( pFileName ); QString TmpFileName = FileInfo.absoluteFilePath().append( ".out" ); if( true ) { QSettings CFG( TmpFileName, QSettings::IniFormat ); if( !CFG.isWritable() ) { return( false ); } CFG.clear(); emit saveStart( CFG ); CFG.beginGroup( "fugio" ); CFG.setValue( "version", int( 2 ) ); CFG.setValue( "duration", double( duration() ) ); CFG.endGroup(); //------------------------------------------------------------------------- CFG.beginGroup( "meta" ); for( auto it = mMetaInfoMap.begin() ; it != mMetaInfoMap.end() ; it++ ) { const QString K = mMetaNameMap.value( it.key() ); const QString V = it.value(); if( !K.isEmpty() && !V.isEmpty() ) { CFG.setValue( K, V ); } } CFG.endGroup(); //------------------------------------------------------------------------- CFG.beginGroup( "nodes" ); for( QSharedPointer<fugio::NodeInterface> N : mNodeHash.values() ) { if( !pNodeList || pNodeList->contains( N->uuid() ) ) { CFG.setValue( fugio::utils::uuid2string( N->uuid() ), fugio::utils::uuid2string( N->controlUuid() ) ); } } CFG.endGroup(); //------------------------------------------------------------------------- CFG.beginGroup( "connections" ); for( QSharedPointer<fugio::NodeInterface> N : mNodeHash.values() ) { if( !pNodeList || pNodeList->contains( N->uuid() ) ) { for( QSharedPointer<fugio::PinInterface> P : N->enumInputPins() ) { if( !P->isConnected() ) { continue; } QSharedPointer<fugio::PinInterface> ConPin = P->connectedPin(); if( !ConPin || !ConPin->node() ) { continue; } if( !pNodeList || pNodeList->contains( ConPin->node()->uuid() ) ) { CFG.setValue( fugio::utils::uuid2string( P->globalId() ), fugio::utils::uuid2string( ConPin->globalId() ) ); } } } } CFG.endGroup(); //------------------------------------------------------------------------- for( QSharedPointer<fugio::NodeInterface> N : mNodeHash.values() ) { if( !pNodeList || pNodeList->contains( N->uuid() ) ) { CFG.beginGroup( fugio::utils::uuid2string( N->uuid() ) ); N->saveSettings( CFG, false ); CFG.endGroup(); for( QSharedPointer<fugio::PinInterface> P : N->enumPins() ) { CFG.beginGroup( fugio::utils::uuid2string( P->globalId() ) ); P->saveSettings( CFG ); CFG.endGroup(); } } } //------------------------------------------------------------------------- CFG.beginGroup( "assets" ); for( auto it : mAssetMap.toStdMap() ) { QFileInfo FI( CFG.fileName() ); QDir FD( FI.absolutePath() ); QString AP = FD.absoluteFilePath( it.second ); qDebug() << AP; CFG.setValue( fugio::utils::uuid2string( it.first ), AP ); } CFG.endGroup(); //------------------------------------------------------------------------- emit saving( CFG ); emit saveEnd( CFG ); } QString TmpOld; if( FileInfo.exists() ) { TmpOld = FileInfo.dir().absoluteFilePath( FileInfo.completeBaseName() ).append( ".old" ); if( !QFile::rename( pFileName, TmpOld ) ) { qWarning() << "Couldn't rename output file"; return( false ); } } if( true ) { QFile SrcDat( TmpFileName ); QFile DstDat( pFileName ); if( !SrcDat.open( QFile::ReadOnly ) ) { qWarning() << "Couldn't open temporary file"; return( false ); } if( !DstDat.open( QFile::WriteOnly ) ) { qWarning() << "Couldn't open output file"; return( false ); } QStringList HdrLst; HdrLst << QString( ";-----------------------------------------------------------------" ); HdrLst << QString( "; Created with Fugio %1" ).arg( QCoreApplication::applicationVersion() ); for( auto it = mMetaInfoMap.begin() ; it != mMetaInfoMap.end() ; it++ ) { const QString K = mMetaNameMap.value( it.key() ); const QString V = it.value(); if( !K.isEmpty() && !V.isEmpty() ) { HdrLst << QString( "; %1: %2" ).arg( K ).arg( V ); } } HdrLst << QString( ";-----------------------------------------------------------------" ); HdrLst << QString( "" ); HdrLst << QString( "" ); QByteArray TmpDat; TmpDat = HdrLst.join( "\n" ).toLatin1(); while( !TmpDat.isEmpty() ) { if( DstDat.write( TmpDat ) != TmpDat.size() ) { qWarning() << "Couldn't write output data"; return( false ); } TmpDat = SrcDat.read( 1024 ); } SrcDat.close(); DstDat.close(); } if( !QFile::remove( TmpFileName ) ) { qWarning() << "Couldn't remove temporary file"; } if( !TmpOld.isEmpty() && !QFile::remove( TmpOld ) ) { qWarning() << "Couldn't remove old file"; } return( true ); }
bool configureGL::sSave() { emit saving(); if (!_cacheint2gl && _int2gl->isChecked()) { q.exec("SELECT costcat_id " "FROM costcat " "WHERE (costcat_asset_accnt_id IS NULL) " " OR (costcat_liability_accnt_id IS NULL) " " OR (costcat_adjustment_accnt_id IS NULL) " " OR (costcat_purchprice_accnt_id IS NULL) " " OR (costcat_scrap_accnt_id IS NULL) " " OR (costcat_invcost_accnt_id IS NULL) " " OR (costcat_wip_accnt_id IS NULL) " " OR (costcat_shipasset_accnt_id IS NULL) " " OR (costcat_mfgscrap_accnt_id IS NULL) " " OR (costcat_freight_accnt_id IS NULL) " " OR (costcat_exp_accnt_id IS NULL) " " OR (costcat_asset_accnt_id = -1) " " OR (costcat_liability_accnt_id = -1) " " OR (costcat_adjustment_accnt_id = -1) " " OR (costcat_purchprice_accnt_id = -1) " " OR (costcat_scrap_accnt_id = -1) " " OR (costcat_invcost_accnt_id = -1) " " OR (costcat_wip_accnt_id = -1) " " OR (costcat_shipasset_accnt_id = -1) " " OR (costcat_mfgscrap_accnt_id = -1) " " OR (costcat_freight_accnt_id = -1) " " OR (costcat_exp_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign G/L Accounts to all Cost Categories"); return false; } if (_metrics->boolean("MultiWhs") && _metrics->boolean("Transforms")) { q.exec("SELECT costcat_id " "FROM costcat " "WHERE (costcat_transform_accnt_id IS NULL) " " OR (costcat_transform_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign a Transform Clearing G/L Account to all Cost Categories"); return false; } } if (_metrics->boolean("MultiWhs")) { q.exec("SELECT costcat_id " "FROM costcat " "WHERE (costcat_toliability_accnt_id IS NULL) " " OR (costcat_toliability_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign a Transfer Order Liability Clearing G/L Account to all Cost Categories"); return false; } } if (_metrics->boolean("Routings")) { q.exec("SELECT costcat_id " "FROM costcat " "WHERE (costcat_laboroverhead_accnt_id IS NULL) " " OR (costcat_laboroverhead_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign a Labor and Overhead Costs G/L Account to all Cost Categories"); return false; } } q.exec("SELECT expcat_id " "FROM expcat " "WHERE (expcat_exp_accnt_id IS NULL) " " OR (expcat_liability_accnt_id IS NULL) " " OR (expcat_freight_accnt_id IS NULL) " " OR (expcat_purchprice_accnt_id IS NULL) " " OR (expcat_exp_accnt_id = -1) " " OR (expcat_liability_accnt_id = -1) " " OR (expcat_freight_accnt_id = -1) " " OR (expcat_purchprice_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign G/L Accounts to all Expense Categories"); return false; } q.exec("SELECT apaccnt_id " "FROM apaccnt " "WHERE (apaccnt_ap_accnt_id IS NULL) " " OR (apaccnt_prepaid_accnt_id IS NULL) " " OR (apaccnt_discount_accnt_id IS NULL) " " OR (apaccnt_ap_accnt_id = -1) " " OR (apaccnt_prepaid_accnt_id = -1) " " OR (apaccnt_discount_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign G/L Accounts to all Payables Assignments"); return false; } q.exec("SELECT araccnt_id " "FROM araccnt " "WHERE (araccnt_ar_accnt_id IS NULL) " " OR (araccnt_prepaid_accnt_id IS NULL) " " OR (araccnt_discount_accnt_id IS NULL) " " OR (araccnt_freight_accnt_id IS NULL) " " OR (araccnt_ar_accnt_id = -1) " " OR (araccnt_prepaid_accnt_id = -1) " " OR (araccnt_discount_accnt_id = -1) " " OR (araccnt_freight_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign G/L Accounts to all Receivables Assignments"); return false; } if (_metrics->boolean("EnableCustomerDeposits")) { q.exec("SELECT araccnt_id " "FROM araccnt " "WHERE (araccnt_deferred_accnt_id IS NULL) " " OR (araccnt_deferred_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign a Deferred Revenue G/L Account to all Receivables Assignments"); return false; } } q.exec("SELECT salesaccnt_id " "FROM salesaccnt " "WHERE (salesaccnt_sales_accnt_id IS NULL) " " OR (salesaccnt_credit_accnt_id IS NULL) " " OR (salesaccnt_cos_accnt_id IS NULL) " " OR (salesaccnt_cor_accnt_id IS NULL) " " OR (salesaccnt_cow_accnt_id IS NULL) " " OR (salesaccnt_sales_accnt_id = -1) " " OR (salesaccnt_credit_accnt_id = -1) " " OR (salesaccnt_cos_accnt_id = -1) " " OR (salesaccnt_cor_accnt_id = -1) " " OR (salesaccnt_cow_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign G/L Accounts to all Sales Assignments"); return false; } if (_metrics->boolean("EnableReturnAuth")) { q.exec("SELECT salesaccnt_id " "FROM salesaccnt " "WHERE (salesaccnt_returns_accnt_id IS NULL) " " OR (salesaccnt_returns_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign a Returns G/L Account to all Sales Assignments"); return false; } } q.exec("SELECT salescat_id " "FROM salescat " "WHERE (salescat_sales_accnt_id IS NULL) " " OR (salescat_prepaid_accnt_id IS NULL) " " OR (salescat_ar_accnt_id IS NULL) " " OR (salescat_sales_accnt_id = -1) " " OR (salescat_prepaid_accnt_id = -1) " " OR (salescat_ar_accnt_id = -1) " "LIMIT 1;"); if (q.first()) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), "You must assign G/L Accounts to all Sales Categories"); return false; } } if (_metrics->boolean("ACHSupported")) { QString tmpCompanyId = _companyId->text(); struct { bool condition; QString msg; QWidget *widget; } error[] = { { _achGroup->isChecked() && _companyId->text().isEmpty(), tr("Please enter a default Company Id if you are going to create " "ACH files."), _companyId }, { _achGroup->isChecked() && (_companyIdIsEIN->isChecked() || _companyIdIsDUNS->isChecked()) && tmpCompanyId.remove("-").size() != 9, tr("EIN, TIN, and DUNS numbers are all 9 digit numbers. Other " "characters (except dashes for readability) are not allowed."), _companyId }, { _achGroup->isChecked() && _companyIdIsOther->isChecked() && _companyId->text().size() > 10, tr("Company Ids must be 10 characters or shorter (not counting dashes " "in EIN's, TIN's, and DUNS numbers)."), _companyId }, { _achGroup->isChecked() && ! (_companyIdIsEIN->isChecked() || _companyIdIsDUNS->isChecked() || _companyIdIsOther->isChecked()), tr("Please mark whether the Company Id is an EIN, TIN, DUNS number, " "or Other."), _companyIdIsEIN } }; for (unsigned int i = 0; i < sizeof(error) / sizeof(error[0]); i++) if (error[i].condition) { QMessageBox::critical(this, tr("Cannot Save Accounting Configuration"), error[i].msg); error[i].widget->setFocus(); return false; } } // AP q.prepare("SELECT setNextAPMemoNumber(:armemo_number) AS result;"); q.bindValue(":armemo_number", _nextAPMemoNumber->text().toInt()); q.exec(); if (_metrics->boolean("ACHSupported")) { _metrics->set("ACHEnabled", _achGroup->isChecked()); if (_achGroup->isChecked()) { _metrics->set("ACHCompanyId", _companyId->text().trimmed()); if (_companyId->text().trimmed().length() > 0) { if (_companyIdIsDUNS->isChecked()) _metrics->set("ACHCompanyIdType", QString("D")); else if (_companyIdIsEIN->isChecked()) _metrics->set("ACHCompanyIdType", QString("E")); else if (_companyIdIsOther->isChecked()) _metrics->set("ACHCompanyIdType", QString("O")); } _metrics->set("ACHCompanyName", _companyName->text().trimmed()); if (_eftAch->isChecked()) { _metrics->set("ACHDefaultSuffix", _eftAchSuffix->text().trimmed()); _metrics->set("EFTRoutingRegex", _eftAchRoutingRegex->text()); _metrics->set("EFTAccountRegex", _eftAchAccountRegex->text()); _metrics->set("EFTFunction", _eftAchFunction->text()); } else if (_eftAba->isChecked()) { _metrics->set("ACHDefaultSuffix", _eftAbaSuffix->text().trimmed()); _metrics->set("EFTRoutingRegex", _eftAbaRoutingRegex->text()); _metrics->set("EFTAccountRegex", _eftAbaAccountRegex->text()); _metrics->set("EFTFunction", _eftAbaFunction->text()); } else { _metrics->set("ACHDefaultSuffix", _eftCustomSuffix->currentText().trimmed()); _metrics->set("EFTRoutingRegex", _eftCustomRoutingRegex->text().trimmed()); _metrics->set("EFTAccountRegex", _eftCustomAccountRegex->text().trimmed()); _metrics->set("EFTFunction", _eftCustomFunction->text().trimmed()); } q.prepare("SELECT setNextNumber('ACHBatch', :number) AS result;"); q.bindValue(":number", _nextACHBatchNumber->text().toInt()); q.exec(); } } _metrics->set("ReqInvRegVoucher", _reqInvoiceReg->isChecked()); _metrics->set("ReqInvMiscVoucher", _reqInvoiceMisc->isChecked()); _metrics->set("RecurringVoucherBuffer", _recurringVoucherBuffer->value()); // AR q.prepare("SELECT setNextARMemoNumber(:armemo_number) AS result;"); q.bindValue(":armemo_number", _nextARMemoNumber->text().toInt()); q.exec(); if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); _nextARMemoNumber->setFocus(); return false; } q.prepare("SELECT setNextCashRcptNumber(:cashrcpt_number) AS result;"); q.bindValue(":cashrcpt_number", _nextCashRcptNumber->text().toInt()); q.exec(); if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); _nextCashRcptNumber->setFocus(); return false; } _metrics->set("HideApplyToBalance", _hideApplyto->isChecked()); _metrics->set("EnableCustomerDeposits", _customerDeposits->isChecked()); _metrics->set("CreditTaxDiscount", _discountTax->isChecked()); _metrics->set("remitto_name", _name->text().trimmed()); _metrics->set("remitto_address1", _address->line1().trimmed()); _metrics->set("remitto_address2", _address->line2().trimmed()); _metrics->set("remitto_address3", _address->line3().trimmed()); _metrics->set("remitto_city", _address->city().trimmed()); _metrics->set("remitto_state", _address->state().trimmed()); _metrics->set("remitto_zipcode", _address->postalCode().trimmed()); _metrics->set("remitto_country", _address->country().trimmed()); _metrics->set("remitto_phone", _phone->text().trimmed()); _address->save(AddressCluster::CHANGEONE); _metrics->set("AutoCreditWarnLateCustomers", _warnLate->isChecked()); if(_warnLate->isChecked()) _metrics->set("DefaultAutoCreditWarnGraceDays", _graceDays->value()); _metrics->set("RecurringInvoiceBuffer", _recurringBuffer->value()); _metrics->set("DefaultARIncidentStatus", _incdtCategory->id()); _metrics->set("AutoCloseARIncident", _closeARIncdt->isChecked()); // GL QAction *profitcenter = omfgThis->findChild<QAction*>("gl.profitCenterNumber"); QAction *subaccounts = omfgThis->findChild<QAction*>("gl.subaccountNumbers"); QAction *companyseg = omfgThis->findChild<QAction*>("gl.companies"); _metrics->set("GLMainSize", _mainSize->value()); if (_useCompanySegment->isChecked()) { _metrics->set("GLCompanySize", _companySegmentSize->value()); _metrics->set("MultiCompanyFinancialConsolidation", _externalConsolidation->isChecked()); } else { _metrics->set("GLCompanySize", 0); _metrics->set("MultiCompanyFinancialConsolidation", 0); _metrics->set("YearEndEquityAccount", _yearend->id()); _metrics->set("CurrencyGainLossAccount", _gainLoss->id()); _metrics->set("GLSeriesDiscrepancyAccount", _discrepancy->id()); } if(companyseg) companyseg->setEnabled(_useCompanySegment->isChecked()); if (_useProfitCenters->isChecked()) { _metrics->set("GLProfitSize", _profitCenterSize->value()); _metrics->set("GLFFProfitCenters", _ffProfitCenters->isChecked()); if(profitcenter) profitcenter->setEnabled(_privileges->check("MaintainChartOfAccounts")); } else { _metrics->set("GLProfitSize", 0); _metrics->set("GLFFProfitCenters", FALSE); if(profitcenter) profitcenter->setEnabled(FALSE); } if (_useSubaccounts->isChecked()) { _metrics->set("GLSubaccountSize", _subaccountSize->value()); _metrics->set("GLFFSubaccounts", _ffSubaccounts->isChecked()); if(subaccounts) subaccounts->setEnabled(_privileges->check("MaintainChartOfAccounts")); } else { _metrics->set("GLSubaccountSize", 0); _metrics->set("GLFFSubaccounts", FALSE); if(subaccounts) subaccounts->setEnabled(FALSE); } _metrics->set("UseJournals", _journal->isChecked()); if(_localToBase->isChecked()) _metrics->set("CurrencyExchangeSense", 1); else // if(_baseToLocal->isChecked()) _metrics->set("CurrencyExchangeSense", 0); _metrics->set("MandatoryGLEntryNotes", _mandatoryNotes->isChecked()); _metrics->set("ManualForwardUpdate", _manualFwdUpdate->isChecked()); _metrics->set("DefaultTaxAuthority", _taxauth->id()); _metrics->set("InterfaceToGL", _int2gl->isChecked()); omfgThis->sConfigureGLUpdated(); if (_metrics->boolean("ACHSupported") && _metrics->boolean("ACHEnabled") && omfgThis->_key.isEmpty()) { if (_privileges->check("ConfigureEncryption")) { if (QMessageBox::question(this, tr("Set Encryption?"), tr("Your encryption key is not set. You will " "not be able to configure electronic " "checking information for Vendors until you " "configure encryption. Would you like to do " "this now?"), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No ) == QMessageBox::Yes) return false; } else QMessageBox::question(this, tr("Set Encryption?"), tr("Your encryption key is not set. You will " "not be able to configure electronic " "checking information for Vendors until the " "system is configured to perform encryption.")); } return true; }
bool configureIM::sSave() { emit saving(); if(!_costAvg->isChecked() && !_costStd->isChecked()) { QMessageBox::warning(this, tr("No Cost selected"), tr("<p>You must have checked Standard Cost, " "Average Cost or both before saving.")); return false; } // Inventory _metrics->set("DefaultEventFence", _eventFence->value()); _metrics->set("ItemSiteChangeLog", _itemSiteChangeLog->isChecked()); _metrics->set("WarehouseChangeLog", _warehouseChangeLog->isChecked()); _metrics->set("PostCountTagToDefault", _postToDefault->isChecked()); _metrics->set("MultiWhs", ((!_multiWhs->isCheckable()) || (_multiWhs->isChecked()))); _metrics->set("LotSerialControl", _lotSerial->isChecked()); _metrics->set("SetDefaultLocations", _setDefLoc->isChecked()); _metrics->set("AllowAvgCostMethod", _costAvg->isChecked()); _metrics->set("AllowStdCostMethod", _costStd->isChecked()); _metrics->set("AllowJobCostMethod", _costJob->isChecked()); if (_toNumGeneration->currentIndex() == 0) _metrics->set("TONumberGeneration", QString("M")); else if (_toNumGeneration->currentIndex() == 1) _metrics->set("TONumberGeneration", QString("A")); else if (_toNumGeneration->currentIndex() == 2) _metrics->set("TONumberGeneration", QString("O")); if (_metrics->boolean("MultiWhs")) { q.prepare("SELECT setNextNumber('ToNumber', :next) AS result;"); q.bindValue(":next", _toNextNum->text()); q.exec(); if (q.first()) { int result = q.value("result").toInt(); if (result < 0) { systemError(this, storedProcErrorLookup("setNextNumber", result), __FILE__, __LINE__); _toNextNum->setFocus(); return false; } } else if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); _toNextNum->setFocus(); return false; } _metrics->set("DefaultTransitWarehouse", _defaultTransWhs->id()); _metrics->set("EnableTOShipping", _enableToShipping->isChecked()); _metrics->set("TransferOrderChangeLog", _transferOrderChangeLog->isChecked()); } if (_noSlipChecks->isChecked()) _metrics->set("CountSlipAuditing", QString("N")); else if (_checkOnUnpostedWarehouse->isChecked()) _metrics->set("CountSlipAuditing", QString("W")); else if (_checkOnUnposted->isChecked()) _metrics->set("CountSlipAuditing", QString("A")); else if (_checkOnAllWarehouse->isChecked()) _metrics->set("CountSlipAuditing", QString("X")); else if (_checkOnAll->isChecked()) _metrics->set("CountSlipAuditing", QString("B")); if (_useStdCost->isChecked()) _metrics->set("CountAvgCostMethod", QString("STD")); else if (_useActCost->isChecked()) _metrics->set("CountAvgCostMethod", QString("ACT")); else if (_useAvgCost->isChecked()) _metrics->set("CountAvgCostMethod", QString("AVG")); //Shipping and Receiving const char *numberGenerationTypes[] = { "A" }; _metrics->set("ShipmentNumberGeneration", QString(numberGenerationTypes[_shipmentNumGeneration->currentIndex()])); _metrics->set("ShippingFormCopies", _shipformNumOfCopies->value()); if (_shipformNumOfCopies->value()) { for (int counter = 0; counter < _shipformWatermarks->topLevelItemCount(); counter++) { QTreeWidgetItem *cursor = _shipformWatermarks->topLevelItem(counter); _metrics->set(QString("ShippingFormWatermark%1").arg(counter), cursor->text(1)); _metrics->set(QString("ShippingFormShowPrices%1").arg(counter), (cursor->text(2) == tr("Yes"))); } } _metrics->set("KitComponentInheritCOS", _kitInheritCOS->isChecked()); _metrics->set("DisallowReceiptExcessQty", _disallowReceiptExcess->isChecked()); _metrics->set("WarnIfReceiptQtyDiffers", _warnIfReceiptDiffers->isChecked()); _metrics->set("ReceiptQtyTolerancePct", _tolerance->text()); _metrics->set("RecordPPVonReceipt", _recordPpvOnReceipt->isChecked()); q.prepare("SELECT setval('shipment_number_seq', :shipmentnumber);"); q.bindValue(":shipmentnumber", _nextShipmentNum->text().toInt()); q.exec(); if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); _nextShipmentNum->setFocus(); return false; } return true; }
bool configureCC::sSave() { emit saving(); _metrics->set("CCAccept", _ccAccept->isChecked()); _metrics->set("CCTest", _ccTest->isChecked()); _metrics->set("CCValidDays", _ccValidDays->value()); _metrics->set("CCCompany", _ccCompany->currentText()); _metrics->set("CCServer", _ccServer->text()); _metrics->set("CCPort", _ccPort->text()); _metrics->set("CCUseProxyServer", _ccUseProxyServer->isChecked()); _metrics->set("CCProxyServer", _ccProxyServer->text()); _metrics->set("CCProxyPort", _ccProxyPort->text()); XSqlQuery ccbankq; ccbankq.prepare("SELECT setCCBankAccnt(:cctype, :bankaccnt_id) AS result;"); ccbankq.bindValue(":cctype", "A"); if (_amexBank->isValid()) ccbankq.bindValue(":bankaccnt_id", _amexBank->id()); else ccbankq.bindValue(":bankaccnt_id", QVariant()); ccbankq.exec(); if (ccbankq.lastError().type() != QSqlError::NoError) { systemError(this, ccbankq.lastError().text(), __FILE__, __LINE__); _amexBank->setFocus(); return false; } ccbankq.bindValue(":cctype", "D"); if (_discoverBank->isValid()) ccbankq.bindValue(":bankaccnt_id", _discoverBank->id()); else ccbankq.bindValue(":bankaccnt_id", QVariant()); ccbankq.exec(); if (ccbankq.lastError().type() != QSqlError::NoError) { systemError(this, ccbankq.lastError().text(), __FILE__, __LINE__); _discoverBank->setFocus(); return false; } ccbankq.bindValue(":cctype", "M"); if (_mastercardBank->isValid()) ccbankq.bindValue(":bankaccnt_id", _mastercardBank->id()); else ccbankq.bindValue(":bankaccnt_id", QVariant()); ccbankq.exec(); if (ccbankq.lastError().type() != QSqlError::NoError) { systemError(this, ccbankq.lastError().text(), __FILE__, __LINE__); _mastercardBank->setFocus(); return false; } /* ccbankq.bindValue(":cctype", "P"); if (_paypalBank->isValid()) ccbankq.bindValue(":bankaccnt_id", _paypalBank->id()); else ccbankq.bindValue(":bankaccnt_id", QVariant()); ccbankq.exec(); if (ccbankq.lastError().type() != QSqlError::NoError) { systemError(this, ccbankq.lastError().text(), __FILE__, __LINE__); _paypalBank->setFocus(); return false; } */ ccbankq.bindValue(":cctype", "V"); if (_visaBank->isValid()) ccbankq.bindValue(":bankaccnt_id", _visaBank->id()); else ccbankq.bindValue(":bankaccnt_id", QVariant()); ccbankq.exec(); if (ccbankq.lastError().type() != QSqlError::NoError) { systemError(this, ccbankq.lastError().text(), __FILE__, __LINE__); _visaBank->setFocus(); return false; } _metrics->set("CCYPWinPathPEM", _ccYPWinPathPEM->text()); _metrics->set("CCYPLinPathPEM", _ccYPLinPathPEM->text()); _metrics->set("CCYPMacPathPEM", _ccYPMacPathPEM->text()); _metrics->set("CCYPLinkShield", _ccYPLinkShield->isChecked()); _metrics->set("CCYPLinkShieldMax", _ccYPLinkShieldMax->text()); _metrics->set("CCConfirmPreauth", _confirmPreauth->isChecked()); _metrics->set("CCConfirmCharge", _confirmCharge->isChecked()); _metrics->set("CCConfirmChargePreauth", _confirmChargePreauth->isChecked()); _metrics->set("CCConfirmCredit", _confirmCredit->isChecked()); _metrics->set("CCEnablePreauth", _enablePreauth->isChecked()); _metrics->set("CCEnableCharge", _enableCharge->isChecked()); _metrics->set("CCEnableChargePreauth", _enableChargePreauth->isChecked()); _metrics->set("CCEnableCredit", _enableCredit->isChecked()); _metrics->set("CCPrintReceipt", _printReceipt->isChecked()); _metrics->set("CCRequireCVV", _cvvRequired->isChecked()); if(_cvvNone->isChecked()) _metrics->set("CCCVVCheck", QString("X")); else if(_cvvWarn->isChecked()) _metrics->set("CCCVVCheck", QString("W")); else if(_cvvReject->isChecked()) _metrics->set("CCCVVCheck", QString("F")); if(_avsNone->isChecked()) _metrics->set("CCAvsCheck", QString("X")); else if(_avsWarn->isChecked()) _metrics->set("CCAvsCheck", QString("W")); else if(_avsReject->isChecked()) _metrics->set("CCAvsCheck", QString("F")); QString str; if (_cvvNotMatch->isChecked()) str += "N"; if (_cvvNotProcessed->isChecked()) str += "P"; if (_cvvNotOnCard->isChecked()) str += "S"; if (_cvvInvalidIssuer->isChecked()) str += "U"; _metrics->set("CCCVVErrors", str); if (_avsAddrNotMatch->isChecked() && _avsAddrNotAvail->isChecked()) _metrics->set("CCAvsAddr", QString("NX")); else if (_avsAddrNotMatch->isChecked()) _metrics->set("CCAvsAddr", QString("N")); else if (_avsAddrNotAvail->isChecked()) _metrics->set("CCAvsAddr", QString("X")); if (_avsZIPNotMatch->isChecked() && _avsZIPNotAvail->isChecked()) _metrics->set("CCAvsZIP", QString("NX")); else if (_avsZIPNotMatch->isChecked()) _metrics->set("CCAvsZIP", QString("N")); else if (_avsZIPNotAvail->isChecked()) _metrics->set("CCAvsZIP", QString("X")); if(_testsAllFail->isChecked()) _metrics->set("CCTestResult", QString("F")); else if(_testsSomeFail->isChecked()) _metrics->set("CCTestResult", QString("S")); else if(_testsAllPass->isChecked()) _metrics->set("CCTestResult", QString("P")); _metrics->load(); if (0 != _metricsenc) { _metricsenc->set("CCLogin", _ccLogin->text()); _metricsenc->set("CCPassword", _ccPassword->text()); _metricsenc->set("CCProxyLogin", _ccProxyLogin->text()); _metricsenc->set("CCProxyPassword", _ccProxyPassword->text()); _metricsenc->set("CCYPStoreNum", _ccYPStoreNum->text()); _metricsenc->set("CCPTDivisionNumber", _ccPTDivisionNumber->text()); _metricsenc->load(); } for (int i = 0; i < _configcclist.size(); i++) if (! _configcclist.at(i)->sSave()) return false; if (_ccAccept->isChecked()) { CreditCardProcessor *cardproc = CreditCardProcessor::getProcessor(_ccCompany->currentText()); if (! cardproc) { QMessageBox::warning(this, tr("Error getting Credit Card Processor"), tr("<p>Internal error finding the right Credit Card " "Processor. The application saved what it could " "but you should re-open this window and double-" "check all of the settings before continuing.")); } else if (cardproc && cardproc->testConfiguration() != 0) { if (QMessageBox::question(this, tr("Invalid Credit Card Configuration"), tr("<p>The configuration has been saved but " "at least one configuration option appears " "to be invalid:<p>%1" "<p>Would you like to fix it now?") .arg(cardproc->errorMsg()), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No) == QMessageBox::Yes) return false; } } configureEncryption *encryption = _keyPage->findChild<configureEncryption*>("_encryption"); if (encryption && ! encryption->sSave()) return false; return true; }
//1번 선택 함수 void menu1(int *indicator1/*1번 기능 실행 여부*/) { FILE *file; //파일 포인터 int choice/* 메뉴 선택 변수*/, i, j, n/*루프에 쓰이는 변수*/; int line[32];//information.txt에서 읽을 data의 line char fileName[20]/*파일 이름 변수*/, mark = 'A'/*파일명에서 다른 부분*/, group[] = "_Group.txt"/*파일명에서 같은 부분*/; char data[4][20]/*나라이름*/, temp[20]/*임시 저장*/; while(1){ //메뉴 printf("\n1. 기존의 조편성 2. 새로운 조편성\n"); printf("작업을 선택하세요 : "); //메뉴선택 fflush(stdin); choice = 0; scanf("%d", &choice); //파일 열기(읽기) file = fopen("information.txt", "r"); //1번을 선택하였을 경우 if(choice == 1){ while(1){ //data 읽기 for(i = 0 ; i < 4 ; i++){ fscanf(file, "%s", data[i]); //필요없는 데이터 skip for(j = 0 ; j < 5 ; j++){ fscanf(file, "%s", temp); } } //파일 이름 생성 fileName[0] = mark; fileName[1] = '\0'; strcat(fileName, group); //sorting함수 호출 sorting(data); //data저장함수 호출 saving(fileName, data); mark++; //파일 이름 바꾸기 //파일이름 앞이 H가 되었을때 if(mark > 72){ fclose(file); break; } } } //2번을 선택하였을 경우 else if(choice == 2){ //파일에서 몇번째줄 data를 읽을것인가를 임의로 생성 n = 0; do{ line[n] = rand() % 32 + 1; i = 0; while(i < n){ if(line[i] == line[n]){ line[n] = rand() % 32 + 1; i = -1; } i++; } n++; }while(n < 32); n = 0; while(1){ //원하는 data 읽기 for(i = 0 ; i < line[n] ; i++){ fscanf(file, "%s", data[0]); for(j = 0 ; j < 5; j++){ fscanf(file, "%s", temp); } } rewind(file); //파일의 처음으로 돌아가기 for(i = 0 ; i < line[n+1] ; i++){ fscanf(file, "%s", data[1]); for(j = 0 ; j < 5 ; j++){ fscanf(file, "%s", temp); } } rewind(file); for(i = 0 ; i < line[n+2] ; i++){ fscanf(file, "%s", data[2]); for(j = 0 ; j < 5 ; j++){ fscanf(file, "%s", temp); } } rewind(file); for(i = 0 ; i < line[n+3] ; i++){ fscanf(file, "%s", data[3]); for(j = 0 ; j < 5 ; j++){ fscanf(file, "%s", temp); } } rewind(file); //파일 이름 생성 fileName[0] = mark; fileName[1] = '\0'; strcat(fileName, group); //sorting함수 호출 sorting(data); //data저장 함수 호출 saving(fileName, data); n += 4; //읽어 들일 줄수 변화 mark++; //파일 이름 바꾸기 //파일 이름 앞이 H일 경우 if(mark > 72){ fclose(file); break; } } } //오류 처리 else{ printf("\n잘못 입력하셨습니다. 다시 입력하세요.\n"); } //1,2번을 선택하였을 경우 함수 끝내기 if(choice == 1) break; if(choice == 2) break; } *indicator1 = 1; //1번기능이 실행되었다는 표시 }
streammarker::~streammarker() { if (saving()) { // Unlink from sb's chain. register streammarker **ptr = &((backupbuf*)_sbuf)->_markers; for (; ; ptr = &(*ptr)->_next) if (*ptr == NULL) break; else if (*ptr == this) { *ptr = _next; return; } } #if 0 if _sbuf has a backup area that is no longer needed, should we delete it now, or wait until underflow()? #endif } #define BAD_DELTA EOF int streammarker::delta(streammarker& other_mark) { if (_sbuf != other_mark._sbuf) return BAD_DELTA; if (saving() && other_mark.saving()) return _pos - other_mark._pos; else if (!saving() && !other_mark.saving()) return _spos - other_mark._spos; else return BAD_DELTA; } int streammarker::delta() { if (_sbuf == NULL) return BAD_DELTA; if (saving()) { int cur_pos; if (_sbuf->in_backup()) cur_pos = _sbuf->_gptr - _sbuf->_egptr; else cur_pos = _sbuf->_gptr - _sbuf->_eback; return _pos - cur_pos; } else { if (_spos == EOF) return BAD_DELTA; int cur_pos = _sbuf->seekoff(0, ios::cur); if (cur_pos == EOF) return BAD_DELTA; return _pos - cur_pos; } } int streambuf::seekmark(streammarker& mark, int delta /* = 0 */) { if (mark._sbuf != this) return EOF; if (!mark.saving()) { return seekpos(mark._spos, ios::in); } else if (mark._pos >= 0) { if (in_backup()) switch_to_main_get_area(); _gptr = _eback + mark._pos; } else { if (!in_backup()) switch_to_backup_area(); _gptr = _egptr + mark._pos; } return 0; } void streambuf::unsave_markers() { register streammarker *mark =_markers; if (_markers) { streampos offset = seekoff(0, ios::cur, ios::in); if (offset != EOF) { offset += eGptr() - Gbase(); for ( ; mark != NULL; mark = mark->_next) mark->set_streampos(mark->_pos + offset); } else { for ( ; mark != NULL; mark = mark->_next) mark->set_streampos(EOF); } _markers = 0; } free_backup_area(); } int backupbuf::pbackfail(int c) { if (_gptr <= _eback) { // Need to handle a filebuf in write mode (switch to read mode). FIXME! if (have_backup() && !in_backup()) { switch_to_backup_area(); } if (!have_backup()) { // No backup buffer: allocate one. // Use short buffer, if unused? (probably not) FIXME int backup_size = 128; _other_gbase = new char [backup_size]; _other_egptr = _other_gbase + backup_size; _aux_limit = _other_egptr; switch_to_backup_area(); } else if (gptr() <= eback()) { // Increase size of existing backup buffer. size_t new_size; size_t old_size = egptr() - eback(); new_size = 2 * old_size; char* new_buf = new char [new_size]; memcpy(new_buf+(new_size-old_size), eback(), old_size); delete [] eback(); setg(new_buf, new_buf+(new_size-old_size), new_buf+new_size); _aux_limit = _gptr; } } _gptr--; if (c != EOF && *_gptr != c) *_gptr = c; return (unsigned char)*_gptr; } unsigned __adjust_column(unsigned start, const char *line, int count) { register const char *ptr = line + count; while (ptr > line) if (*--ptr == '\n') return line + count - ptr - 1; return start + count; } int ios::readable() { return !(rdbuf()->_flags & _S_NO_READS); } int ios::writable() { return !(rdbuf()->_flags & _S_NO_WRITES); } int ios::is_open() { return rdbuf() && (rdbuf()->_flags & _S_NO_READS+_S_NO_WRITES) != _S_NO_READS+_S_NO_WRITES; } #if defined(linux) #define IO_CLEANUP ; #endif #ifdef IO_CLEANUP IO_CLEANUP #else struct __io_defs { __io_defs() { } ~__io_defs() { streambuf::flush_all(); } }; __io_defs io_defs__;
bool configureSO::sSave() { XSqlQuery configureSave; emit saving(); const char *dispositionTypes[] = { "C", "R", "P", "V", "M", "" }; const char *timingTypes[] = { "I", "R", "" }; const char *creditMethodTypes[] = { "N", "M", "K", "C", "" }; if ( (_metrics->boolean("EnableSOReservationsByLocation")) && (!_locationGroup->isChecked()) ) { if (QMessageBox::warning(this, tr("Reserve by Location Disabled"), tr("<p>All existing Sales Order location reservations will be removed. Are you sure you want to continue?"), QMessageBox::Yes, QMessageBox::No | QMessageBox::Default) == QMessageBox::No) { return false; } else { configureSave.prepare("DELETE FROM reserve " " WHERE (reserve_demand_type='SO');"); configureSave.exec(); } } _metrics->set("ShowQuotesAfterSO", _quoteafterSO->isChecked()); _metrics->set("AllowDiscounts", _allowDiscounts->isChecked()); _metrics->set("AllowASAPShipSchedules", _allowASAP->isChecked()); _metrics->set("CustomerChangeLog", _customerChangeLog->isChecked()); _metrics->set("SalesOrderChangeLog", _salesOrderChangeLog->isChecked()); _metrics->set("RestrictCreditMemos", _restrictCreditMemos->isChecked()); _metrics->set("AutoSelectForBilling", _autoSelectForBilling->isChecked()); _metrics->set("AlwaysShowSaveAndAdd", _saveAndAdd->isChecked()); _metrics->set("FirmSalesOrderPackingList", _firmAndAdd->isChecked()); _metrics->set("DisableSalesOrderPriceOverride", _priceOverride->isChecked()); _metrics->set("AutoAllocateCreditMemos", _autoAllocateCM->isChecked()); _metrics->set("HideSOMiscCharge", _hideSOMiscChrg->isChecked()); _metrics->set("EnableSOShipping", _enableSOShipping->isChecked()); _metrics->set("CONumberGeneration", _orderNumGeneration->methodCode()); _metrics->set("QUNumberGeneration", _quoteNumGeneration->methodCode()); _metrics->set("CMNumberGeneration", _creditMemoNumGeneration->methodCode()); _metrics->set("InvcNumberGeneration", _invoiceNumGeneration->methodCode()); _metrics->set("DefaultShipFormId", _shipform->id()); _metrics->set("DefaultShipViaId", _shipvia->id()); _metrics->set("DefaultShipChrgId", _shipchrg->id()); _metrics->set("DefaultSellingWarehouseId", _sellingWarehouse->id()); _metrics->set("DefaultCustType", _custtype->id()); _metrics->set("DefaultSalesRep", _salesrep->id()); _metrics->set("DefaultTerms", _terms->id()); _metrics->set("DefaultPartialShipments", _partial->isChecked()); _metrics->set("DefaultBackOrders", _backorders->isChecked()); _metrics->set("DefaultFreeFormShiptos", _freeFormShiptos->isChecked()); _metrics->set("DefaultPrintSOOnSave", _printSO->isChecked()); _metrics->set("CreditCheckSOOnSave", _creditCheckSO->isChecked()); _metrics->set("DefaultSOLineItemsTab", _lineItemsSO->isChecked()); _metrics->set("UsePromiseDate", _enablePromiseDate->isChecked()); _metrics->set("CalculateFreight", _calcFreight->isChecked()); _metrics->set("IncludePackageWeight", _includePkgWeight->isChecked()); _metrics->set("EnableReturnAuth", _enableReturns->isChecked()); _metrics->set("EnableSOReservations", _enableReservations->isChecked()); _metrics->set("RequireSOReservations", _enableReservations->isChecked() && _requireReservations->isChecked()); _metrics->set("ItemPricingPrecedence", _itemPricingPrecedence->isChecked()); _metrics->set("AllowListPriceSchedules", _useListPriceSchedules->isChecked()); _metrics->set("WholesalePriceCosting", _wholesalePriceCosting->isChecked()); _metrics->set("Long30Markups", _long30Markups->isChecked()); _metrics->set("EnableSOReservationsByLocation", _enableReservations->isChecked() && _locationGroup->isChecked()); _metrics->set("SOManualReservations", _enableReservations->isChecked() && _locationGroup->isChecked() && _manualReservations->isChecked()); //SOReservationLocationMethod are three Options Either // Lowest quantity first, // Highest quantity first, // Alpha by Location Name if(_lowest->isChecked()) _metrics->set("SOReservationLocationMethod", 1); else if (_highest->isChecked()) _metrics->set("SOReservationLocationMethod", 2); else if(_alpha->isChecked()) _metrics->set("SOReservationLocationMethod", 3); _metrics->set("SOCreditLimit", _creditLimit->text()); _metrics->set("SOCreditRate", _creditRating->text()); if (_priceOrdered->isChecked()) _metrics->set("soPriceEffective", QString("OrderDate")); else if (_priceScheduled->isChecked()) _metrics->set("soPriceEffective", QString("ScheduleDate")); else _metrics->set("soPriceEffective", QString("CurrentDate")); //UpdatePriceLineEdit are three Options Either // Don't Update price // Ask to Update Price, // Update Price if(_dontUpdatePrice->isChecked()) _metrics->set("UpdatePriceLineEdit", 1); else if (_askUpdatePrice->isChecked()) _metrics->set("UpdatePriceLineEdit", 2); else if(_updatePrice->isChecked()) _metrics->set("UpdatePriceLineEdit", 3); _metrics->set("IgnoreCustDisc", _askUpdatePrice->isChecked() && _ignoreCustDisc->isChecked()); if(_invcScheddate->isChecked()) _metrics->set("InvoiceDateSource", QString("scheddate")); else if(_invcShipdate->isChecked()) _metrics->set("InvoiceDateSource", QString("shipdate")); else _metrics->set("InvoiceDateSource", QString("currdate")); if (! _invoiceCopies->save()) return false; if (! _creditMemoCopies->save()) return false; switch (_balanceMethod->currentIndex()) { case 0: _metrics->set("DefaultBalanceMethod", QString("B")); break; case 1: _metrics->set("DefaultBalanceMethod", QString("O")); break; } configureSave.prepare( "SELECT setNextSoNumber(:sonumber), setNextQuNumber(:qunumber)," " setNextCmNumber(:cmnumber), setNextInvcNumber(:innumber);" ); configureSave.bindValue(":sonumber", _nextSoNumber->text().toInt()); configureSave.bindValue(":qunumber", _nextQuNumber->text().toInt()); configureSave.bindValue(":cmnumber", _nextCmNumber->text().toInt()); configureSave.bindValue(":innumber", _nextInNumber->text().toInt()); configureSave.exec(); if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Saving SO Setting Information"), configureSave, __FILE__, __LINE__)) { return false; } if (_enableReturns->isChecked() || !_enableReturns->isCheckable()) { _metrics->set("DefaultRaDisposition", QString(dispositionTypes[_disposition->currentIndex()])); _metrics->set("DefaultRaTiming", QString(timingTypes[_timing->currentIndex()])); _metrics->set("DefaultRaCreditMethod", QString(creditMethodTypes[_creditBy->currentIndex()])); _metrics->set("ReturnAuthorizationChangeLog", _returnAuthChangeLog->isChecked()); _metrics->set("DefaultPrintRAOnSave", _printRA->isChecked()); _metrics->set("CloseRAOnCredit", _closeRA->isChecked()); _metrics->set("RANumberGeneration", _returnAuthorizationNumGeneration->methodCode()); configureSave.prepare( "SELECT setNextRaNumber(:ranumber);" ); configureSave.bindValue(":ranumber", _nextRaNumber->text().toInt()); configureSave.exec(); if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Saving SO Setting Information"), configureSave, __FILE__, __LINE__)) { return false; } } _metrics->set("EnableReturnAuth", (_enableReturns->isChecked() || !_enableReturns->isCheckable())); if (_enableSSOS->isChecked()) { QList<GuiErrorCheck>errors; errors<<GuiErrorCheck(!_ssosCust->isValid(), _ssosCust, tr("<p>You must select a Cash Customer # if Simple S/O is enabled.")); if(GuiErrorCheck::reportErrors(this,tr("Unable To Apply Sales Settings"),errors)) return false; _metrics->set("SSOSEnabled", true); _metrics->set("SSOSDefaultCustId", _ssosCust->id()); _metrics->set("SSOSDefaultSaleTypeId", _ssosSaleType->id()); _metrics->set("SSOSRequireInv", _ssosRequireInv->isChecked()); _metrics->set("SSOSPrintSOAck", _ssosPrintSOAck->isChecked()); _metrics->set("SSOSPrintPackList", _ssosPrintPackList->isChecked()); _metrics->set("SSOSPrintInvoice", _ssosPrintInvoice->isChecked()); } else { _metrics->set("SSOSEnabled", false); _metrics->set("SSOSDefaultCustId", -1); _metrics->set("SSOSDefaultSaleTypeId", -1); _metrics->set("SSOSRequireInv", false); _metrics->set("SSOSPrintSOAck", false); _metrics->set("SSOSPrintPackList", false); _metrics->set("SSOSPrintInvoice", false); } return true; }