Revision 7e76e128
Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt
SL/InstanceConfiguration.pm | ||
---|---|---|
3 | 3 |
use strict; |
4 | 4 |
|
5 | 5 |
use Carp; |
6 |
use SL::DB::Currency; |
|
7 |
use SL::DB::Default; |
|
6 |
use SL::DBUtils (); |
|
8 | 7 |
|
9 | 8 |
use parent qw(Rose::Object); |
10 | 9 |
use Rose::Object::MakeMethods::Generic ( |
... | ... | |
12 | 11 |
); |
13 | 12 |
|
14 | 13 |
sub init_data { |
15 |
my $default = SL::DB::Default->get;
|
|
16 |
my $data = { map { $_ => $default->$_ } $default->meta->columns };
|
|
17 |
$data->{default_currency} = $default->currency ? $default->currency->name : undef;
|
|
14 |
my $dbh = $::form->get_standard_dbh;
|
|
15 |
my $data = SL::DBUtils::selectfirst_hashref_query($::form, $dbh, qq|SELECT * FROM defaults|);
|
|
16 |
$data->{default_currency} = (SL::DBUtils::selectfirst_array_query($::form, $dbh, qq|SELECT name FROM currencies WHERE id = ?|, $data->{currency_id}))[0] if $data->{currency_id};
|
|
18 | 17 |
|
19 | 18 |
return $data; |
20 | 19 |
} |
21 | 20 |
|
22 | 21 |
sub init_currencies { |
23 |
return [ map { $_->name } @{ SL::DB::Manager::Currency->get_all_sorted } ];
|
|
22 |
return [ map { $_->{name} } SL::DBUtils::selectall_hashref_query($::form, $::form->get_standard_dbh, qq|SELECT name FROM currencies ORDER BY id ASC|) ];
|
|
24 | 23 |
} |
25 | 24 |
|
26 | 25 |
sub reload { |
Auch abrufbar als: Unified diff
In SL::InstanceConfiguration keine Rose-Objekte nutzen
Die Klasse muss ihre Daten laden, noch bevor die Datenbankupgrades
durch sind. Das bedeutet, dass gerade SL::DB::MetaSetup::Default noch
nicht dem Datenbankschema entspricht und das Laden damit fehlschlägt.