Revision b11c7ad5
Von Jan Büren vor etwa 5 Jahren hinzugefügt
SL/BackgroundJob/SelfTest/Transactions.pm | ||
---|---|---|
43 | 43 |
$self->check_zero_amount_paid_but_datepaid_exists; |
44 | 44 |
$self->check_orphaned_reconciliated_links; |
45 | 45 |
$self->check_recommended_client_settings; |
46 |
$self->check_orphaned_bank_transaction_acc_trans_links; |
|
46 | 47 |
} |
47 | 48 |
|
48 | 49 |
sub _setup { |
... | ... | |
672 | 673 |
|
673 | 674 |
$self->tester->ok(1, "Mandantenkonfiguration optimal eingestellt.") if ($payments_ok && $all_ok); |
674 | 675 |
} |
676 |
|
|
677 |
sub check_orphaned_bank_transaction_acc_trans_links { |
|
678 |
my ($self) = @_; |
|
679 |
|
|
680 |
my $query = qq| |
|
681 |
SELECT purpose from bank_transactions |
|
682 |
WHERE invoice_amount <> 0 |
|
683 |
AND id not in (SELECT bank_transaction_id from bank_transaction_acc_trans) |
|
684 |
AND transdate >= ? AND transdate <= ?|; |
|
685 |
|
|
686 |
my $bt_assigned_no_link = selectall_hashref_query($::form, $self->dbh, $query, $self->fromdate, $self->todate); |
|
687 |
|
|
688 |
if ( scalar @{ $bt_assigned_no_link } > 0 ) { |
|
689 |
$self->tester->ok(0, "Verwaiste Verknüpfungen zu Bankbewegungen gefunden. Bei folgenden Bankbewegungen ist eine interne Verknüpfung gelöscht worden:"); |
|
690 |
|
|
691 |
for my $bt_orphaned (@{ $bt_assigned_no_link }) { |
|
692 |
$self->tester->diag("Verwendungszweck: $bt_orphaned->{purpose}"); |
|
693 |
} |
|
694 |
} else { |
|
695 |
$self->tester->ok(1, "Keine verwaisten Einträge in verknüpften Bankbewegungen (Richtung Bank)."); |
|
696 |
} |
|
697 |
# check for deleted acc_trans_ids |
|
698 |
my $query = qq| |
|
699 |
SELECT purpose from bank_transactions |
|
700 |
WHERE id in |
|
701 |
(SELECT bank_transaction_id from bank_transaction_acc_trans |
|
702 |
where acc_trans_id NOT IN (select acc_trans_id from acc_trans) |
|
703 |
AND transdate >= ? AND transdate <= ?)|; |
|
704 |
|
|
705 |
my $bt_assigned_no_acc_trans = selectall_hashref_query($::form, $self->dbh, $query, $self->fromdate, $self->todate); |
|
706 |
|
|
707 |
if ( scalar @{ $bt_assigned_no_acc_trans } > 0 ) { |
|
708 |
$self->tester->ok(0, "Verwaiste Verknüpfungen zu Bankbewegungen gefunden. Bei folgenden Bankbewegungen ist eine interne Verknüpfung gelöscht worden:"); |
|
709 |
|
|
710 |
for my $bt_orphaned (@{ $bt_assigned_no_acc_trans }) { |
|
711 |
$self->tester->diag("Verwendungszweck: $bt_orphaned->{purpose}"); |
|
712 |
} |
|
713 |
} else { |
|
714 |
$self->tester->ok(1, "Keine verwaisten Einträge in verknüpften Bankbewegungen (Richtung Buchung (Richtung Buchung))."); |
|
715 |
} |
|
716 |
} |
|
717 |
|
|
675 | 718 |
1; |
676 | 719 |
|
677 | 720 |
__END__ |
Auch abrufbar als: Unified diff
BankTransaction: want a whole lotta test
neuer Test full_workflow in bank_transactions
1.
Verbucht drei Verkaufsrechnungen nacheinander, davon
eine mit Zahlungsbedingung Skonto nach ZB. Zusätzlich
zu den Nebenbücher werden acc_trans Einträge kontrolliert,
sowie der gesetzte RecordLink.
2.
Da die Bankbewegung komplett aufgeht, wird diese abgeglichen
und die Zustände danach kontrolliert.
3.
Leider war die Verbuchung komplett Murks, weswegen die
Ursprungszustand vor 1. wiederhergestellt (neues Funktion
Kontoauszug-Verbuchung rückgängig machen)
Bonus-Level:
Damit andere Anwendungen / Schnittstellen, DB-Admins nicht
auf die Idee kommen an der Hilfstabelle bank_transaction_acc_trans
zu schrauben, entsprechend einen weiteren SelfTest geschrieben