Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6e603868

Von Kivitendo Admin vor mehr als 10 Jahren hinzugefügt

  • ID 6e6038682b1a2b6e6bc74f1eee40eba21afcb7e9
  • Vorgänger 5450d982
  • Nachfolger de3eb257

Steuerzonen ungültig machen

jede Steuerzone kann man unter "System->Steuerzonen->auf Steuerzone klicken"
individuell auf ungültig (obsolete) setzen.

ungültig heißt:

  • Steuerzone erscheint nicht in der großen Buchungsgruppenübersicht
  • Steuerzone erscheint nicht im Drop-Down Menü für Steuerzonen bei neuen
    Belegen (Angebot-Rechnung)

Bei alten Belegen, die erneut geöffnet werden, ist leider das Verhalten unterschiedlich:

  • bei schon gebuchten EK/VK-Rechnungen (id) ist das Drop-Down ausgegraut und
    disabled und es wird nur die ausgewählte Steuerzone angezeigt -> funktioniert
  • bei schon gebuchten Angeboten/Aufträgen müssen immer alle Steuerzonen
    angezeigt werden, da man die Steuerzone auch im Nachhinein ändern kann, aber
    auch alle alten Belege mit mittlerweile ungültigen Steuerzonen korrekt
    angezeigt werden müssen. Man kann also nicht einfach nach id fragen und
    entsprechend nach ungültig filtern.

Bucht man also einen Auftrag mit einer bestimmten Steuerzone, setzt die
Steuerzone auf ungültig, und generiert dann aus dem Auftrag z.B. eine Rechnung,
würde die Steuerzone aus dem Auftrag nicht übernommen werden, sondern die erste
Steuerzone aus der Liste standardmäßig ausgewählt sein.

Unterschiede anzeigen:

SL/Controller/Buchungsgruppen.pm
25 25
  my ($self) = @_;
26 26

  
27 27
  my $buchungsgruppen = SL::DB::Manager::Buchungsgruppe->get_all_sorted();
28
  my $taxzones        = SL::DB::Manager::TaxZone->get_all_sorted();
28
  my $taxzones        = SL::DB::Manager::TaxZone->get_all_sorted(query => [ obsolete => 0 ]);
29 29

  
30 30
  my %chartlist = ();
31 31
  foreach my $gruppe (@{ $buchungsgruppen }) {
......
59 59
sub action_edit {
60 60
  my ($self) = @_;
61 61

  
62
  # check whether buchungsgruppe is assigned to any parts
63
  my $number_of_parts_with_buchungsgruppe = SL::DB::Manager::Part->get_objects_count(where => [ buchungsgruppen_id => $self->config->id]);
64

  
62 65
  $self->show_form(title     => t8('Edit Buchungsgruppe'),
66
                   linked_parts  => $number_of_parts_with_buchungsgruppe,
63 67
                   CHARTLIST => SL::DB::TaxzoneChart->get_all_accounts_by_buchungsgruppen_id($self->config->id));
64 68
}
65 69

  
......
120 124

  
121 125
  $self->config->save;
122 126

  
123
  #Save taxzone_charts:
124
  if ($is_new) {
127
  # check whether there are any assigned parts 
128
  my $number_of_parts_with_buchungsgruppe = SL::DB::Manager::Part->get_objects_count(where => [ buchungsgruppen_id => $self->config->id]);
129

  
130
  # Save or update taxzone_charts:
131
  if ($is_new or $number_of_parts_with_buchungsgruppe == 0) {
125 132
    my $taxzones = SL::DB::Manager::TaxZone->get_all_sorted();
126 133

  
127 134
    foreach my $tz (@{ $taxzones }) {

Auch abrufbar als: Unified diff