23QStringList
toQStringList(
const std::vector<std::string>& values) {
25 out.reserve(
static_cast<int>(values.size()));
26 for (
const auto& value : values) {
27 out.push_back(QString::fromStdString(value));
32QString proofImageDataUrl(
const std::vector<std::uint8_t>& bytes) {
36 const QByteArray data(
reinterpret_cast<const char*
>(bytes.data()),
37 static_cast<int>(bytes.size()));
38 return QString::fromLatin1(data.toBase64());
44 std::shared_ptr<core::ports::importing::IImportRunner> runner)
45 : runner_(std::move(runner)) {}
52 "ImportAdapter::startStatementImport",
"Import runner invoked",
54 return runner_ ? runner_->startStatementImport(request, std::move(callback))
61 runner_->unsubscribe(handle);
67 runner_->cancel(handle);
73 runner_->pause(handle);
79 runner_->resume(handle);
84 return runner_ ? runner_->importResult(handle)
92 return runner_ ? runner_->buildDraftDerivedState(state, selection)
99 return runner_ ? runner_->mergeWorkspaceState(std::move(primary), secondary)
100 : std::move(primary);
104 const core_importing::TransactionDraft& draft,
107 return toTransactionDraftView(draft, derived);
110core_importing::DraftLinkSelection
111ImportAdapter::toCoreSelection(
const core_importing::TransactionDraft& draft) {
112 core_importing::DraftLinkSelection out;
113 out.name = draft.name;
114 out.metadata = draft.metadata;
115 out.actorText = draft.actorText;
116 out.propertyText = draft.propertyText;
117 out.actorId = draft.actorId;
118 out.actorSelected = draft.actorSelected;
119 out.contractId = draft.contractId;
120 out.contractSelected = draft.contractSelected;
121 out.type = draft.type;
122 out.allocatable = draft.allocatable;
123 out.allocatableSelected = draft.allocatableSelected;
124 out.propertyIds = draft.propertyIds;
129 core_importing::TransactionDraft& draft,
131 const core_importing::TransactionDraftEdit& edit)
const {
132 return runner_ && runner_->updateTransactionDraft(draft, state, edit);
136 core_importing::StatementDraft& draft,
137 const core_importing::StatementDraftEdit& edit)
const {
138 return runner_ ? runner_->updateStatementDraft(draft, edit)
139 : core_importing::StatementDraftEditResult{};
143 const std::string& sourceFile,
146 const std::vector<core_importing::TransactionDraft>& transactions,
147 const std::string& draftId)
const {
148 return runner_ ? runner_->buildStatementDraft(sourceFile, statement, state,
149 transactions, draftId)
150 : core_importing::StatementDraft{};
155 return runner_ ? runner_->restoreStatementDraft(draft)
156 : core_importing::StatementDraft{};
161 const core_importing::StatementDraft& draft,
163 return runner_ ? runner_->buildStatementDraftSnapshot(draft, state)
168 const core_importing::TransactionDraft& draft,
169 const core_importing::DraftDerivedState& derived) {
171 view.
id = QString::fromStdString(draft.id);
172 view.
name = QString::fromStdString(draft.name);
173 view.
bookingDate = QString::fromStdString(draft.bookingDate);
174 view.
valuta = QString::fromStdString(draft.valuta);
175 view.
amountText = QVariant(draft.amount).toString();
176 view.
metadata = QString::fromStdString(draft.metadata);
177 const QString proofData = proofImageDataUrl(draft.proofImageData);
181 : QStringLiteral(
"data:image/jpeg;base64,") + proofData;
182 view.
actorId = QString::fromStdString(draft.actorId);
183 view.
contractId = QString::fromStdString(draft.contractId);
184 view.
propertyIds = toQStringList(draft.propertyIds);
185 view.
status = draft.status;
188 : derived.effectiveAllocatable;
191 QString::fromStdString(derived.actorSuggestionSummary);
194 QString::fromStdString(derived.propertySuggestionSummary);
197 QString::fromStdString(derived.contractSuggestionSummary);
199 derived.allocatableSuggestionConfidence;
201 QString::fromStdString(derived.allocatableSuggestionSummary);
Declares the import adapter used by UI import workflows.
Coordinates asynchronous statement imports and in-memory draft sessions.
Declares lightweight conversions between common Qt string types and standard strings.
Declarations for the UI Trace component.
void unsubscribe(const core::ports::importing::StatementImportHandle &handle)
Removes an import event subscription.
core::ports::importing::draft::StatementDraft buildStatementDraft(const std::string &sourceFile, const core::ports::workspace::StatementSnapshot &statement, const core::ports::workspace::WorkspaceSnapshot &state, const std::vector< core::ports::importing::draft::TransactionDraft > &transactions, const std::string &draftId) const
Builds a statement draft from an imported statement result.
ImportAdapter(std::shared_ptr< core::ports::importing::IImportRunner > runner)
Creates an adapter backed by the core import runner port.
core::ports::importing::StatementImportHandle startStatementImport(const core::ports::importing::ImportRequest &request, core::ports::importing::StatementImportEventCallback callback)
Starts an asynchronous statement import through the runner.
core::ports::importing::draft::StatementDraft restoreStatementDraft(const core::ports::workspace::StatementDraftSnapshot &draft) const
Restores a statement draft from workspace draft state.
core::ports::workspace::WorkspaceSnapshot mergeWorkspaceState(core::ports::workspace::WorkspaceSnapshot primary, const core::ports::workspace::WorkspaceSnapshot &secondary) const
Merges stored draft catalog state with live workspace state.
core::ports::importing::ImportResult importResult(const core::ports::importing::StatementImportHandle &handle)
Reads the final import result for a handle.
bool updateTransactionDraft(core::ports::importing::draft::TransactionDraft &draft, const core::ports::workspace::WorkspaceSnapshot &state, const core::ports::importing::draft::TransactionDraftEdit &edit) const
Applies a transaction draft edit through the runner.
core::ports::importing::draft::DraftDerivedState buildDraftDerivedState(const core::ports::workspace::WorkspaceSnapshot &state, const core::ports::importing::draft::DraftLinkSelection &selection) const
Builds derived draft suggestion state through the runner.
void cancel(const core::ports::importing::StatementImportHandle &handle)
Requests cancellation of a running import.
void pause(const core::ports::importing::StatementImportHandle &handle)
Requests pausing of a running import.
void resume(const core::ports::importing::StatementImportHandle &handle)
Requests resuming of a paused import.
core::ports::importing::draft::StatementDraftEditResult updateStatementDraft(core::ports::importing::draft::StatementDraft &draft, const core::ports::importing::draft::StatementDraftEdit &edit) const
Applies a statement draft edit through the runner.
TransactionDraftView transactionDraftView(const core::ports::importing::draft::TransactionDraft &draft, const core::ports::workspace::WorkspaceSnapshot &state) const
Builds the QML transaction draft view through core-derived state.
core::ports::workspace::StatementDraftSnapshot buildStatementDraftSnapshot(const core::ports::importing::draft::StatementDraft &draft, const core::ports::workspace::WorkspaceSnapshot &state) const
Builds workspace draft state from the active statement draft.
std::function< void(const StatementImportEvent &)> StatementImportEventCallback
void traceAdapter(const char *origin, std::string message, core::errors::ErrorContext context={})
Emits an adapter trace event.
QStringList toQStringList(const std::vector< std::string > &values)
Converts standard strings to a Qt string list.
Qt-friendly projection of the currently edited import transaction.
QString propertySuggestionSummary
bool effectiveAllocatable
QString contractSuggestionSummary
double propertySuggestionConfidence
QString allocatableSuggestionSummary
double allocatableSuggestionConfidence
double contractSuggestionConfidence
double actorSuggestionConfidence
QString actorSuggestionSummary