/** * @RDE_HEADER@ * WarehouseManagement - Operator Edit Dialog * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-02-29 */ #include "charge_edit_dialog.h" #include "ui_charge_edit_dialog.h" #include #include #include #include namespace ProjectDataManagement { ChargeEditDialog::ChargeEditDialog(const int chargeId, LtsSession::LtsSession *session, QWidget *parent) : LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel) , m_ui(new Ui::ChargeEditDialog) , m_session(session) , m_ftc(nullptr) , m_requestHelper(new LtsUtils::RequestHelper(this)) , m_logger(ProjectDataManagement::getLogger("InjuryModelEditDialog")) { m_ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); m_uiRequirements->addRequirement({m_ui->lbxLongName, [this]() { m_ui->leLongName->setText(m_ui->leLongName->text().simplified()); return (m_ui->leLongName->text().size() > 0); }}); m_uiRequirements->addRequirement({m_ui->lbxShortName, [this]() { m_ui->leShortName->setText(m_ui->leShortName->text().simplified()); return (m_ui->leShortName->text().size() > 0); }}); setOnlineHelpFilename(QStringLiteral("Administrator-ChargeEdit")); m_chargeType.id(chargeId); } ChargeEditDialog::~ChargeEditDialog() { delete m_requestHelper; delete m_ui; } bool ChargeEditDialog::init() { std::shared_ptr dtc; if (!m_session->getDtc(dtc) || !dtc->enableChargeType() || !m_session->getFtc(m_ftc) || !m_ftc->enableUpdateChargeNames()) return false; m_chargeType = dtc->chargeType(m_chargeType.id()); loadUiValues(); return true; } void ChargeEditDialog::loadUiValues() { // Todo: Why is it always hasChanges()? m_ui->leLongName->setText(QString::fromStdString(m_chargeType.name())); m_ui->leShortName->setText(QString::fromStdString(m_chargeType.shortName())); m_ui->lbPredefinedName->setText(QString::fromStdString(m_chargeType.predefinedName())); retranslate(); } void ChargeEditDialog::onUpdateChargeNamesReply(const Core::FunctionReplyObject &reply) { m_requestHelper->requestReply(reply); } void ChargeEditDialog::retranslate() { // Todo: Either no Charge Type specified or Predefined name falls back to default text // translate(m_ui, m_chargeType, tr("Charge Type")); if (m_ui->lbPredefinedName->text().contains(QLatin1Char('\n'))) translate(m_ui, tr("Edit Charge Type '%1[...]'").arg(m_ui->lbPredefinedName->text().split(QLatin1Char('\n')).first())); else translate(m_ui, tr("Edit Charge Type '%1'").arg(m_ui->lbPredefinedName->text())); } bool ChargeEditDialog::apply() { ProjectDataManagement::UpdateChargeNamesRequest req(m_chargeType.id(),m_ui->leLongName->text().toStdString(),m_ui->leShortName->text().toStdString()); return m_requestHelper->startSingleRequest([req, this]() { return m_ftc->updateChargeNamesRequest(req, this); }); } } // namespace ProjectDataManagement