Refactor BankingKreditorSelector and DocumentRenderer components to enhance transaction assignment handling. Remove unused 'assigned_by' field from API requests and update onSave callbacks to pass assigned Kreditor details. Improve SQL queries in bankingTransactions.js to handle both numeric and string transaction IDs, and streamline transaction insertion logic. Update transaction retrieval in transactions.js to include additional assigned Kreditor information.
This commit is contained in:
@@ -225,7 +225,6 @@ class BankingKreditorSelector extends Component {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify({
|
||||
assigned_kreditor_id: parseInt(selectedKreditorId),
|
||||
assigned_by: user?.username || 'Unknown',
|
||||
})
|
||||
}
|
||||
);
|
||||
@@ -240,7 +239,6 @@ class BankingKreditorSelector extends Component {
|
||||
csv_transaction_id: transaction.isFromCSV ? transaction.id : null,
|
||||
banking_iban: transaction['Kontonummer/IBAN'] || transaction.kontonummer_iban,
|
||||
assigned_kreditor_id: parseInt(selectedKreditorId),
|
||||
assigned_by: user?.username || 'Unknown',
|
||||
})
|
||||
}
|
||||
);
|
||||
@@ -257,7 +255,11 @@ class BankingKreditorSelector extends Component {
|
||||
if (response && response.ok) {
|
||||
this.setState({ saving: false });
|
||||
if (onSave) {
|
||||
onSave();
|
||||
// Find the assigned kreditor from the list to pass to callback
|
||||
const assignedKreditor = this.state.assignableKreditors.find(
|
||||
k => k.id === parseInt(selectedKreditorId)
|
||||
);
|
||||
onSave(assignedKreditor);
|
||||
}
|
||||
} else {
|
||||
const errorData = await response.json();
|
||||
|
||||
@@ -386,13 +386,13 @@ const DocumentRenderer = (params) => {
|
||||
sx={{
|
||||
color: !params.data['Kontonummer/IBAN']
|
||||
? 'text.secondary'
|
||||
: (params.data.hasKreditor && params.data.kreditor && !params.data.kreditor.is_banking)
|
||||
: (params.data.hasKreditor && params.data.kreditor && !params.data.kreditor.is_banking) || params.data.assignedKreditor
|
||||
? 'success.main'
|
||||
: 'warning.main',
|
||||
'&.Mui-selected': {
|
||||
color: !params.data['Kontonummer/IBAN']
|
||||
? 'text.secondary'
|
||||
: (params.data.hasKreditor && params.data.kreditor && !params.data.kreditor.is_banking)
|
||||
: (params.data.hasKreditor && params.data.kreditor && !params.data.kreditor.is_banking) || params.data.assignedKreditor
|
||||
? 'success.main'
|
||||
: 'warning.main',
|
||||
}
|
||||
@@ -543,14 +543,22 @@ const DocumentRenderer = (params) => {
|
||||
<BankingKreditorSelector
|
||||
transaction={params.data}
|
||||
user={params.context?.user}
|
||||
onSave={() => {
|
||||
// Refresh the grid to show updated assignment
|
||||
onSave={async (assignedKreditor) => {
|
||||
// Update the transaction data with the new assignment
|
||||
if (assignedKreditor) {
|
||||
params.data.assignedKreditor = assignedKreditor;
|
||||
}
|
||||
|
||||
// Refresh the entire row to update colors and content
|
||||
if (params.api) {
|
||||
params.api.refreshCells({
|
||||
columns: ['Kontonummer/IBAN'],
|
||||
rowNodes: [params.node],
|
||||
force: true
|
||||
});
|
||||
}
|
||||
|
||||
// Force dialog re-render by updating state
|
||||
this.forceUpdate();
|
||||
}}
|
||||
/>
|
||||
</Box>
|
||||
@@ -620,14 +628,22 @@ const DocumentRenderer = (params) => {
|
||||
<BankingKreditorSelector
|
||||
transaction={params.data}
|
||||
user={params.context?.user}
|
||||
onSave={() => {
|
||||
// Refresh the grid to show updated assignment
|
||||
onSave={async (assignedKreditor) => {
|
||||
// Update the transaction data with the new assignment
|
||||
if (assignedKreditor) {
|
||||
params.data.assignedKreditor = assignedKreditor;
|
||||
}
|
||||
|
||||
// Refresh the entire row to update colors and content
|
||||
if (params.api) {
|
||||
params.api.refreshCells({
|
||||
columns: ['Kontonummer/IBAN'],
|
||||
rowNodes: [params.node],
|
||||
force: true
|
||||
});
|
||||
}
|
||||
|
||||
// Force dialog re-render by updating state
|
||||
this.forceUpdate();
|
||||
}}
|
||||
/>
|
||||
</Box>
|
||||
|
||||
Reference in New Issue
Block a user