Esempio n. 1
0
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*)));
    }
}
Esempio n. 2
0
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;
}
Esempio n. 4
0
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;
}
Esempio n. 6
0
/*! 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;
}
Esempio n. 8
0
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;
    }
}
Esempio n. 9
0
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);
}
Esempio n. 10
0
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;
    }
  }
Esempio n. 11
0
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;
}
Esempio n. 13
0
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;
}
Esempio n. 14
0
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();
}
Esempio n. 15
0
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()));
}
Esempio n. 16
0
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;
}
Esempio n. 17
0
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 );
}
Esempio n. 18
0
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;
}
Esempio n. 19
0
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;
}
Esempio n. 20
0
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;
}
Esempio n. 21
0
//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번기능이 실행되었다는 표시
}
Esempio n. 22
0
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__;
Esempio n. 23
0
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;
}