Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision b11c7ad5

Von Jan Büren vor etwa 5 Jahren hinzugefügt

  • ID b11c7ad55b4a6445860e4494e550cb3ff8d09eac
  • Vorgänger cecc0509
  • Nachfolger 2eaabab4

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

Unterschiede anzeigen:

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