Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision e48eb4dc

Von Kivitendo Admin vor etwa 8 Jahren hinzugefügt

  • ID e48eb4dc7e721dbdf15417167e9320fd12decf69
  • Vorgänger 6d7433f9
  • Nachfolger d9e0bbb5

Preisgruppen - Umstellung auf Controller, sortkey, obsolete

Neuer CRUD-Controller nur für Preisgruppen.

Die Reihenfolge der Preisgruppen kann nun eingestellt werden, und man
kann Preisgruppen auf ungültig setzen, sofern sie nicht mehr aktiv bei
Kunden in Verwendung sind, so daß sie bei Kunden oder neuen Belegen
nicht mehr ausgewählt werden können.

Unterschiede anzeigen:

SL/DB/Pricegroup.pm
4 4

  
5 5
use SL::DB::MetaSetup::Pricegroup;
6 6
use SL::DB::Manager::Pricegroup;
7
use SL::DB::Helper::ActsAsList;
8
use SL::DB::Customer;
7 9

  
8 10
__PACKAGE__->meta->initialize;
9 11

  
......
13 15
  return join ' ', grep $_, $self->id, $self->pricegroup;
14 16
}
15 17

  
18
sub validate {
19
  my ($self) = @_;
20

  
21
  my @errors;
22

  
23
  if ( $self->obsolete && SL::DB::Manager::Customer->get_all_count(query => [ pricegroup_id => $self->id ]) ) {
24
    push @errors, $::locale->text('The pricegroup is being used by customers.');
25
  }
26

  
27
  return @errors;
28
}
29

  
30
sub orphaned {
31
  my ($self) = @_;
32
  die 'not an accessor' if @_ > 1;
33

  
34
  return 1 unless $self->id;
35

  
36
  my @relations = qw(
37
    SL::DB::Customer
38
    SL::DB::Price
39
  );
40

  
41
  # check if pricegroup is the default pricegroup for any customers and has any
42
  # prices assigned.
43

  
44
  for my $class (@relations) {
45
    eval "require $class";
46
    return 0 if $class->_get_manager_class->get_all_count(query => [ pricegroup_id => $self->id ]);
47
  }
48

  
49
  # check if pricegroup was used in any pricesource
50
  my @item_relations = qw(
51
    SL::DB::OrderItem
52
    SL::DB::DeliveryOrderItem
53
    SL::DB::InvoiceItem
54
  );
55

  
56
  for my $class (@item_relations) {
57
    eval "require $class";
58
    return 0 if $class->_get_manager_class->get_all_count(query => [ active_price_source => 'pricegroup/' . $self->id ]);
59
  }
60

  
61
  return 1;
62
}
16 63

  
17 64
1;

Auch abrufbar als: Unified diff