X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FInstanceConfiguration.pm;h=4c767961da3d3fe31bb3724ce017de86a4953ebc;hb=abafb475d9742e3a6c28427477235c923b21eeef;hp=52e5f48065355ca71c15fac6fded5d2890cdc7f5;hpb=102e10e5c38f4b7d6d871cd52b709dbb87f827d6;p=kivitendo-erp.git diff --git a/SL/InstanceConfiguration.pm b/SL/InstanceConfiguration.pm index 52e5f4806..4c767961d 100644 --- a/SL/InstanceConfiguration.pm +++ b/SL/InstanceConfiguration.pm @@ -4,31 +4,46 @@ use strict; use Carp; 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 { return {} if !$::auth->client; + return SL::DBUtils::selectfirst_hashref_query($::form, $::form->get_standard_dbh, qq|SELECT * FROM defaults|); +} - my $dbh = $::form->get_standard_dbh; - my $data = SL::DBUtils::selectfirst_hashref_query($::form, $dbh, qq|SELECT * FROM defaults|); - $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}; - - 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 [] if !$::auth->client; + 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; } @@ -37,6 +52,16 @@ sub get_currencies { return @{ $self->currencies }; } +sub get_address { + # Compatibility function: back in the day there was only a single + # address field. + my ($self) = @_; + + my $zipcode_city = join ' ', grep { $_ } ($self->get_address_zipcode, $self->get_address_city); + + return join "\n", grep { $_ } ($self->get_address_street1, $self->get_address_street2, $zipcode_city, $self->get_address_country); +} + sub AUTOLOAD { our $AUTOLOAD; @@ -83,9 +108,9 @@ C<$::instance_conf>. Creates a new instance. Does not read the configuration. -=item C +=item C -Reads the configuration from the database. Returns C<$self>. +Returns trueish if the CRM component is installed. =item C @@ -108,6 +133,13 @@ Returns the default inventory system, perpetual or periodic Returns the default profit determination method, balance or income +=item C + +Returns the default method for determining the startdate for the balance +report. + +Valid options: +closed_to start_of_year all_transactions last_ob_or_all_transactions last_ob_or_start_of_year =item C @@ -154,7 +186,7 @@ Returns the default behavior for showing best before date, true or false =item C -Returns the default behavior for showing the mark as paid button for the +Returns the default behavior for showing the "mark as paid" button for the corresponding record type (true or false). =item C @@ -168,26 +200,24 @@ corresponding record type (true or false). Returns the default behavior for showing the delete button for the corresponding record type (true or false). -=item C +=item C Returns the default warehouse_id -=item C +=item C Returns the default bin_id -=item C +=item C Returns the default warehouse_id for transfers without checking the current stock quantity -=item C +=item C -Returns the default bin_id for transfers without checking the. +Returns the default bin_id for transfers without checking the current stock quantity - - =item C =item C @@ -202,16 +232,24 @@ Returns the maximum interval value for future bookings =item C -Returns the configuration for webdav +Returns the configuration for WebDAV =item C -Returns the configuration for storing documents in the corresponding webdav folder +Returns the configuration for storing documents in the corresponding WebDAV folder =item C Returns the configuration for "vertreter" +=item C + +Returns the configuration for experimental feature "assortment" + +=item C + +Returns the configuration for the experimental feature "order" + =item C Returns the configuarion for show image in parts @@ -222,7 +260,7 @@ 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 +Returns the configuration for showing the picture in the results when you search for parts =back