Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 60fd9199

Von Frank Messerschmidt vor mehr als 8 Jahren hinzugefügt

  • ID 60fd91996b9b38f11519f467e8b0664448db2755
  • Vorgänger 9249a264
  • Nachfolger 6f4fcf7b

Bücherkontrolle in Zahlungseingängen und Zahlungsausgängen fehlerhaft

- Erweiterung der Header und Footer Funktionen um das Buchungsdatum anhand der Bücherkontrolle zu prüfen
- Fällt Buchungsdatum ausserhalb des zulässigen Zeitraum der Bücherkontrolle so werden die betreffenden Einträge bei Zahlungsein-/ausgang deaktiviert
- Einbinden der Prüfung des maximal zukünftigen Buchungsdatums von Zahlungen ausgehend vom heutigen Datum
- Erweiterung der Prüfung bei Neueingabe von Zahlungsein-/ausgängen:
- Es werden nur noch die editierbaren Einträge geprüft
- Einträge ohne Zahlungen werden nicht geprüft und auch nicht gebucht

fix redmine #164

Unterschiede anzeigen:

bin/mozilla/ap.pl
426 426
      $changeable = (($form->{"gldate_$i"} eq '') || $form->current_date(\%myconfig) eq $form->{"gldate_$i"});
427 427
    }
428 428

  
429
    #deaktivieren von gebuchten Zahlungen ausserhalb der Bücherkontrolle, vorher prüfen ob heute eingegeben
430
    if ($form->date_closed($form->{"gldate_$i"})) {
431
       $changeable = 0;
432
    }
433

  
429 434
    $form->{'paidaccount_changeable_'. $i} = $changeable;
430 435

  
431 436
    $form->{'labelpaid_project_id_'. $i} = $project_labels{$form->{'paid_project_id_'. $i}};
......
594 599

  
595 600
      $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
596 601

  
602
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
603
        if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
604

  
605
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
606
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
597 607
      $form->error($locale->text('Cannot post payment for a closed period!'))
598
        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
608
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
599 609

  
600 610
      if ($form->{defaultcurrency} && ($form->{currency} ne $form->{defaultcurrency})) {
601 611
        $form->{"exchangerate_$i"} = $form->{exchangerate}
......
674 684

  
675 685
      $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
676 686

  
687
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
688
      if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
689

  
690
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
691
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
677 692
      $form->error($locale->text('Cannot post payment for a closed period!'))
678
        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
693
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
679 694

  
680 695
      if ($form->{defaultcurrency} && ($form->{currency} ne $form->{defaultcurrency})) {
681 696
        $form->{"exchangerate_$i"} = $form->{exchangerate}
bin/mozilla/ar.pl
435 435
      : SL::DB::Default->get->payments_changeable == 2 ? $payment->{gldate} eq '' || $payment->{gldate} eq $now
436 436
      :                                                           1;
437 437

  
438
    #deaktivieren von gebuchten Zahlungen ausserhalb der Bücherkontrolle, vorher prüfen ob heute eingegeben
439
    if ($form->date_closed($payment->{"gldate_$i"})) {
440
        $payment->{changeable} = 0;
441
    }
442

  
438 443
    push @payments, $payment;
439 444
  }
440 445

  
......
624 629

  
625 630
      $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
626 631

  
627
      $form->error($locale->text('Cannot post payment for a closed period!')) if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
632
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
633
        if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
634

  
635
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
636
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
637
      $form->error($locale->text('Cannot post payment for a closed period!'))
638
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
628 639

  
629 640
      if ($form->{defaultcurrency} && ($form->{currency} ne $form->{defaultcurrency})) {
630 641
#        $form->{"exchangerate_$i"} = $form->{exchangerate} if ($invdate == $datepaid);
......
689 700

  
690 701
  $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
691 702
    if ($form->date_max_future($transdate, \%myconfig));
703

  
692 704
  $form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig));
693 705

  
694 706
  $form->error($locale->text('Zero amount posting!'))
......
705 717

  
706 718
      $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
707 719

  
720
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
721
        if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
722

  
723
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
724
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
708 725
      $form->error($locale->text('Cannot post payment for a closed period!'))
709
        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
726
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
710 727

  
711 728
      if ($form->{defaultcurrency} && ($form->{currency} ne $form->{defaultcurrency})) {
712 729
        $form->{"exchangerate_$i"} = $form->{exchangerate} if ($transdate == $datepaid);
bin/mozilla/ir.pl
431 431
                                  ($form->current_date(\%myconfig) eq $form->{"gldate_$i"}));
432 432
    }
433 433

  
434
    $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
435
      if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
436

  
437
    #deaktivieren von Zahlungen ausserhalb der Bücherkontrolle
438
    if ($form->date_closed($form->{"gldate_$i"})) {
439
      $form->{"changeable_$i"} = 0;
440
    }
441

  
434 442
    $form->{"selectAP_paid_$i"} = $form->{selectAP_paid};
435 443
    if (!$form->{"AP_paid_$i"}) {
436 444
      $form->{"selectAP_paid_$i"} =~ s/option>$accno_arap--(.*?)>/option selected>$accno_arap--$1>/;
......
678 686

  
679 687
      $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
680 688

  
689
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
690
        if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
691

  
692
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
693
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
681 694
      $form->error($locale->text('Cannot post payment for a closed period!'))
682
        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
695
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
683 696

  
684 697
      if ($form->{currency} ne $form->{defaultcurrency}) {
685 698
#        $form->{"exchangerate_$i"} = $form->{exchangerate} if ($invdate == $datepaid); # invdate isn't set here
......
774 787

  
775 788
      $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
776 789

  
790
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
791
        if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
792

  
793
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
794
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
777 795
      $form->error($locale->text('Cannot post payment for a closed period!'))
778
        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
796
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
779 797

  
780 798
      if ($form->{currency} ne $form->{defaultcurrency}) {
781 799
        $form->{"exchangerate_$i"} = $form->{exchangerate}
bin/mozilla/is.pl
498 498
                                  ($form->current_date(\%myconfig) eq $form->{"gldate_$i"}));
499 499
    }
500 500

  
501
    #deaktivieren von gebuchten Zahlungen ausserhalb der Bücherkontrolle, vorher prüfen ob heute eingegeben
502
    if ($form->date_closed($form->{"gldate_$i"})) {
503
      $form->{"changeable_$i"} = 0;
504
    }
505

  
501 506
    $form->{"selectAR_paid_$i"} = $form->{selectAR_paid};
502 507
    if (!$form->{"AR_paid_$i"}) {
503 508
      $form->{"selectAR_paid_$i"} =~ s/option>$accno_arap--(.*?)</option selected>$accno_arap--$1</;
......
707 712
        $form->isblank("exchangerate_$i",
708 713
                       $locale->text('Exchangerate for payment missing!'));
709 714
      }
715
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
716
        if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
717

  
718
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
719
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
720
      $form->error($locale->text('Cannot post payment for a closed period!'))
721
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
710 722
    }
711 723
  }
712
  # Abgeschlossene Zeiträume nur für den letzten (aktuellen) Zahlungseingang prüfen
713
  # Details s.a. Bug 1502
714
  # Das Problem ist jetzt, dass man Zahlungseingänge nachträglich ändern kann
715
  # Wobei dies für Installationen die sowieso nicht mit Bücherkontrolle arbeiten keinen
716
  # keinen Unterschied macht.
717
  # Optimal wäre, wenn gegen einen Zeitstempel des Zahlungsfelds geprüft würde ...
718
  # Das Problem hierbei ist, dass in IS.pm post_invoice IMMER alle Zahlungseingänge aus $form
719
  # erneut gespeichert werden. Prinzipiell wäre es besser NUR die Änderungen des Rechnungs-
720
  # belegs (neue Zahlung aber nichts anderes) zu speichern ...
721
  # Vielleicht könnte man ähnlich wie bei Rechnung löschen verfahren
722
  $form->error($locale->text('Cannot post payment for a closed period!'))
723
    if ($form->date_closed($form->{"datepaid_$form->{paidaccounts}"}, \%myconfig));
724 724

  
725 725
  ($form->{AR})      = split /--/, $form->{AR};
726 726
  ($form->{AR_paid}) = split /--/, $form->{AR_paid};
......
793 793

  
794 794
      $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
795 795

  
796
      $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
797
        if ($form->date_max_future($form->{"datepaid_$i"}, \%myconfig));
798

  
799
      #Zusätzlich noch das Buchungsdatum in die Bücherkontrolle einbeziehen
800
      # (Dient zur Prüfung ob ZE oder ZA geprüft werden soll)
796 801
      $form->error($locale->text('Cannot post payment for a closed period!'))
797
        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
802
        if ($form->date_closed($form->{"datepaid_$i"})  && !$form->date_closed($form->{"gldate_$i"}, \%myconfig));
798 803

  
799 804
      if ($form->{currency} ne $form->{defaultcurrency}) {
800 805
        $form->{"exchangerate_$i"} = $form->{exchangerate}

Auch abrufbar als: Unified diff