X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/43f9b1c512be9bc2199369c2f5accea32b8bd423..d22f89a3ae2c24858c53e35d2ae97a862b9fc711:/SL/InstanceConfiguration.pm?ds=sidebyside diff --git a/SL/InstanceConfiguration.pm b/SL/InstanceConfiguration.pm index 47cdd0e19..6ea88f8d1 100644 --- a/SL/InstanceConfiguration.pm +++ b/SL/InstanceConfiguration.pm @@ -2,51 +2,56 @@ package SL::InstanceConfiguration; use strict; -use SL::DBUtils; +use Carp; +use SL::DBUtils (); -sub new { - my ($class) = @_; +use parent qw(Rose::Object); +use Rose::Object::MakeMethods::Generic ( + 'scalar --get_set_init' => [ qw(data currencies) ], +); - return bless {}, $class; -} - -sub init { - my ($self) = @_; +sub init_data { + return {} if !$::auth->client; - $self->{data} = 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}; - my $curr = $self->{data}->{curr} || ''; - $curr =~ s/\s+//g; - $self->{currencies} = [ split m/:/, $curr ]; - - return $self; + return $data; } -sub get_default_currency { - my ($self) = @_; +sub init_currencies { + return [] if !$::auth->client; + return [ map { $_->{name} } SL::DBUtils::selectall_hashref_query($::form, $::form->get_standard_dbh, qq|SELECT name FROM currencies ORDER BY id ASC|) ]; +} - return ($self->get_currencies)[0]; +sub reload { + my ($self) = @_; + $self->{data} = $self->init_data; + $self->{currencies} = $self->init_currencies; + return $self; } sub get_currencies { my ($self) = @_; - - return $self->{currencies} ? @{ $self->{currencies} } : (); + return @{ $self->currencies }; } -sub get_accounting_method { - my ($self) = @_; - return $self->{data}->{accounting_method}; -} +sub AUTOLOAD { + our $AUTOLOAD; -sub get_inventory_system { - my ($self) = @_; - return $self->{data}->{inventory_system}; -} + my $self = shift; + my $method = $AUTOLOAD; + $method =~ s/.*:://; -sub get_profit_determination { - my ($self) = @_; - return $self->{data}->{profit_determination}; + if ($method =~ m/^get_/) { + $method = substr $method, 4; + return $self->data->{$method} if exists $self->data->{$method}; + croak "Invalid method 'get_${method}'"; + } + + croak "Invalid method '${method}'" if !$self->can($method); + return $self->$method(@_); } 1; @@ -63,8 +68,8 @@ SL::InstanceConfiguration - Provide instance-specific configuration data =head1 SYNOPSIS -Lx-Office has two configuration levels: installation specific -(provided by the global variable C<%::lxoffice_conf>) and instance +kivitendo has two configuration levels: installation specific +(provided by the global variable C<%::lx_office_conf>) and instance specific. The latter is provided by a global instance of this class, C<$::instance_conf>. @@ -101,6 +106,122 @@ Returns the default inventory system, perpetual or periodic 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