Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 25230b8c

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

  • ID 25230b8c8a406c836091f135445f1e1a97dad549
  • Vorgänger 2eaabab4
  • Nachfolger 66135d67

BankTransaction(closed_period) Prüft Valutadatum gegen closedto

Gibt 1 (wahr) zurück falls das Valutadatum der Bankbewegung
innerhalb einer geschloßenen Periode ist. Andernfalls 0.

POD, Test und 2 Stellen im Controller geändert.
Offen: Payment-Helper, der sollte allerdings nichts über den Zustand
der Bankbewegung wissen müssen ...

Unterschiede anzeigen:

SL/Controller/BankTransaction.pm
561 561

  
562 562
  my $bank_transaction = $data{bank_transaction};
563 563

  
564
  if ($bank_transaction->closed_period) {
565
    return {
566
      %data,
567
      result => 'error',
568
      message => $::locale->text('Cannot post payment for a closed period!'),
569
    };
570
  }
564 571
  my (@warnings);
565 572

  
566 573
  my $worker = sub {
......
729 736

  
730 737
  croak("No bank transaction ids") unless scalar @{ $::form->{ids}} > 0;
731 738

  
732
  my $closedto = $::locale->parse_date_to_object($::instance_conf->get_closedto);
733 739
  my $success_count;
734 740

  
735 741
  foreach my $bt_id (@{ $::form->{ids}} )  {
736 742

  
737 743
    my $bank_transaction = SL::DB::Manager::BankTransaction->find_by(id => $bt_id);
738 744
    croak("No valid bank transaction found") unless (ref($bank_transaction)  eq 'SL::DB::BankTransaction');
745
    croak t8('Cannot unlink payment for a closed period!') if $bank_transaction->closed_period;
739 746

  
740 747
    # everything in one transaction
741 748
    my $rez = $bank_transaction->db->with_transaction(sub {
......
747 754
      foreach my $acc_trans_id_entry (@{ SL::DB::Manager::BankTransactionAccTrans->get_all(where => [bank_transaction_id => $bt_id ] )}) {
748 755

  
749 756
        my $acc_trans = SL::DB::Manager::AccTransaction->get_all(where => [acc_trans_id => $acc_trans_id_entry->acc_trans_id]);
750
        # check closedto for acc trans entries
751
        croak t8('Cannot unlink payment for a closed period!') if (ref $closedto && grep { $_->transdate < $closedto } @{ $acc_trans } );
752 757

  
753 758
        # save trans_id and type
754 759
        die "no type" unless ($acc_trans_id_entry->ar_id || $acc_trans_id_entry->ap_id || $acc_trans_id_entry->gl_id);
755 760
        $trans_ids{$acc_trans_id_entry->ar_id} = 'ar' if $acc_trans_id_entry->ar_id;
756 761
        $trans_ids{$acc_trans_id_entry->ap_id} = 'ap' if $acc_trans_id_entry->ap_id;
757 762
        $trans_ids{$acc_trans_id_entry->gl_id} = 'gl' if $acc_trans_id_entry->gl_id;
758

  
759 763
        # 2. all good -> ready to delete acc_trans and bt_acc link
760 764
        $acc_trans_id_entry->delete;
761 765
        $_->delete for @{ $acc_trans };

Auch abrufbar als: Unified diff