X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/a36f8ac729bac34b3dbb43cb8e50924afd51d5ff..b04128a335772d4cb9a30b0fde52413796981de0:/SL/InstanceConfiguration.pm diff --git a/SL/InstanceConfiguration.pm b/SL/InstanceConfiguration.pm index 4e05b841f..084f0ac94 100644 --- a/SL/InstanceConfiguration.pm +++ b/SL/InstanceConfiguration.pm @@ -3,30 +3,47 @@ package SL::InstanceConfiguration; use strict; use Carp; -use SL::DB::Currency; -use SL::DB::Default; +use SL::DBUtils (); +use SL::System::Process; use parent qw(Rose::Object); use Rose::Object::MakeMethods::Generic ( - 'scalar --get_set_init' => [ qw(data currencies) ], + 'scalar --get_set_init' => [ qw(data currencies default_currency _table_currencies_exists crm_installed) ], ); sub init_data { - my $default = SL::DB::Default->get; - my $data = { map { $_ => $default->$_ } $default->meta->columns }; - $data->{default_currency} = $default->currency ? $default->currency->name : undef; + return {} if !$::auth->client; + return SL::DBUtils::selectfirst_hashref_query($::form, $::form->get_standard_dbh, qq|SELECT * FROM defaults|); +} - return $data; +sub init__table_currencies_exists { + return 0 if !$::auth->client; + return !!(SL::DBUtils::selectall_hashref_query($::form, $::form->get_standard_dbh, qq|SELECT tablename FROM pg_tables WHERE (schemaname = 'public') AND (tablename = 'currencies')|))[0]; } sub init_currencies { - return [ map { $_->name } @{ SL::DB::Manager::Currency->get_all_sorted } ]; + my ($self) = @_; + + return [] if !$self->_table_currencies_exists; + return [ map { $_->{name} } SL::DBUtils::selectall_hashref_query($::form, $::form->get_standard_dbh, qq|SELECT name FROM currencies ORDER BY id ASC|) ]; +} + +sub init_default_currency { + my ($self) = @_; + + return undef if !$self->_table_currencies_exists || !$self->data->{currency_id}; + return (SL::DBUtils::selectfirst_array_query($::form, $::form->get_standard_dbh, qq|SELECT name FROM currencies WHERE id = ?|, $self->data->{currency_id}))[0]; +} + +sub init_crm_installed { + return -f (SL::System::Process->exe_dir . '/crm/Changelog'); } sub reload { - my ($self) = @_; - $self->{data} = $self->init_data; - $self->{currencies} = $self->init_currencies; + my ($self) = @_; + + delete @{ $self }{qw(data currencies default_currency)}; + return $self; } @@ -42,6 +59,8 @@ sub AUTOLOAD { my $method = $AUTOLOAD; $method =~ s/.*:://; + return if $method eq 'DESTROY'; + if ($method =~ m/^get_/) { $method = substr $method, 4; return $self->data->{$method} if exists $self->data->{$method}; @@ -75,151 +94,10 @@ C<$::instance_conf>. =over 4 -=item C - -Creates a new instance. Does not read the configuration. - -=item C - -Reads the configuration from the database. Returns C<$self>. - =item C Returns an array of configured currencies. -=item C - -Returns the default currency or undef if no currency has been -configured. - -=item C - -Returns the default accounting method, accrual or cash - -=item C - -Returns the default inventory system, perpetual or periodic - -=item C - -Returns the default profit determination method, balance or income - - -=item C - -=item C - -=item C - -=item C - -=item C - -Returns if and when these record types are changeable or deleteable after -posting. 0 means never, 1 means always and 2 means on the same day. - -=item C - -Returns true if datev check should be performed on sales invoices - -=item C - -Returns true if datev check should be performed on purchase invoices - -=item C - -Returns true if datev check should be performed on ar transactions - -=item C - -Returns true if datev check should be performed on ap transactions - -=item C - -Returns true if datev check should be performed on gl transactions - -=item C - -Returns the default behavior for showing best before date, true or false - -=item C - -=item C - -=item C - -=item C - -Returns the default behavior for showing the mark as paid button for the -corresponding record type (true or false). - -=item C - -=item C - -=item C - -=item C - -Returns the default behavior for showing the delete button for the -corresponding record type (true or false). - -=item C - -Returns the default warehouse_id - -=item C - -Returns the default bin_id - -=item C - -Returns the default warehouse_id for transfers without checking the -current stock quantity - -=item C - -Returns the default bin_id for transfers without checking the. -current stock quantity - - - -=item C - -=item C - -=item C - -Returns the default behavior for the transfer out default feature (true or false) - -=item C - -Returns the maximum interval value for future bookings - -=item C - -Returns the configuration for webdav - -=item C - -Returns the configuration for storing documents in the corresponding webdav folder - -=item C - -Returns the configuration for "vertreter" - -=item C - -Returns the configuarion for show image in parts - -=item C - -Returns the css format string for images shown in parts - -=item C - -Returns the configuartion for showing the picture in the results when you search for parts - =back =head1 BUGS