X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FHelper%2FMappings.pm;h=a5b6f054463707e7744234eb755c3c0c9dba5d94;hb=9636227ee0ce9cb050db33573e523d68764ebde8;hp=5267449ba2a65d601dd08f266cc65fc453522059;hpb=0c28bb82b805b07543debaf08061b58d0b437c07;p=kivitendo-erp.git diff --git a/SL/DB/Helper/Mappings.pm b/SL/DB/Helper/Mappings.pm index 5267449ba..a5b6f0544 100644 --- a/SL/DB/Helper/Mappings.pm +++ b/SL/DB/Helper/Mappings.pm @@ -3,19 +3,21 @@ package SL::DB::Helper::Mappings; use utf8; use strict; +use SL::Util qw(camelify); + require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(get_table_for_package get_package_for_table get_package_names); # these will not be managed as Rose::DB models, because they are not normalized, # significant changes are needed to get them done, or they were done by CRM. -my @lxoffice_blacklist_permanent = qw( +my @kivitendo_blacklist_permanent = qw( leads ); # these are not managed _yet_, but will hopefully at some point. # if you are confident that one of these works, remove it here. -my @lxoffice_blacklist_temp = qw( +my @kivitendo_blacklist_temp = qw( ); # tables created by crm module @@ -27,19 +29,23 @@ my @cash_register_blacklist = qw( ekartikel ekbon ekkunde ektext erptasten ); -my @lxoffice_blacklist = (@lxoffice_blacklist_permanent, @lxoffice_blacklist_temp, @crm_blacklist, @cash_register_blacklist); +my @kivitendo_blacklist = (@kivitendo_blacklist_permanent, @kivitendo_blacklist_temp, @crm_blacklist, @cash_register_blacklist); # map table names to their models. # unlike rails we have no singular<->plural magic. # remeber: tables should be named as the plural of the model name. -my %lxoffice_package_names = ( +my %kivitendo_package_names = ( + # TABLE # MODEL (given in C style) acc_trans => 'acc_transaction', audittrail => 'audit_trail', - auth_group => 'auth_groups', - auth_group_right => 'auth_group_rights', - auth_user => 'auth_users', - auth_user_config => 'auth_user_configs', - auth_user_group => 'auth_user_groups', + 'auth.clients' => 'auth_client', + 'auth.clients_users' => 'auth_client_user', + 'auth.clients_groups' => 'auth_client_group', + 'auth.group' => 'auth_group', + 'auth.group_rights' => 'auth_group_right', + 'auth.user' => 'auth_user', + 'auth.user_config' => 'auth_user_config', + 'auth.user_group' => 'auth_user_group', ar => 'invoice', ap => 'purchase_invoice', background_jobs => 'background_job', @@ -53,6 +59,7 @@ my %lxoffice_package_names = ( csv_import_reports => 'csv_import_report', csv_import_report_rows => 'csv_import_report_row', csv_import_report_status => 'csv_import_report_status', + currencies => 'currency', custom_variable_configs => 'custom_variable_config', custom_variables => 'custom_variable', custom_variables_validity => 'custom_variable_validity', @@ -72,7 +79,6 @@ my %lxoffice_package_names = ( follow_up_links => 'follow_up_link', follow_ups => 'follow_up', generic_translations => 'generic_translation', - gifi => 'gifi', gl => 'GLTransaction', history_erp => 'history', inventory => 'inventory', @@ -92,8 +98,6 @@ my %lxoffice_package_names = ( pricegroup => 'pricegroup', printers => 'Printer', record_links => 'record_link', - rma => 'RMA', - rmaitems => 'RMA_item', sepa_export => 'sepa_export', sepa_export_items => 'sepa_export_item', schema_info => 'schema_info', @@ -109,42 +113,42 @@ my %lxoffice_package_names = ( vendor => 'vendor', ); -my (%lxoffice_tables_to_packages, %lxoffice_tables_to_manager_packages, %lxoffice_packages_to_tables); +my (%kivitendo_tables_to_packages, %kivitendo_tables_to_manager_packages, %kivitendo_packages_to_tables); sub get_blacklist { - return LXOFFICE => \@lxoffice_blacklist; + return KIVITENDO => \@kivitendo_blacklist; } sub get_package_names { - return LXOFFICE => \%lxoffice_package_names; + return KIVITENDO => \%kivitendo_package_names; } sub get_package_for_table { - %lxoffice_tables_to_packages = map { ($_ => "SL::DB::" . camelify($lxoffice_package_names{$_})) } keys %lxoffice_package_names - unless %lxoffice_tables_to_packages; + %kivitendo_tables_to_packages = map { ($_ => "SL::DB::" . camelify($kivitendo_package_names{$_})) } keys %kivitendo_package_names + unless %kivitendo_tables_to_packages; - return $lxoffice_tables_to_packages{ $_[0] }; + return $kivitendo_tables_to_packages{ $_[0] }; } sub get_manager_package_for_table { - %lxoffice_tables_to_manager_packages = map { ($_ => "SL::DB::Manager::" . camelify($lxoffice_package_names{$_})) } keys %lxoffice_package_names - unless %lxoffice_tables_to_manager_packages; + %kivitendo_tables_to_manager_packages = map { ($_ => "SL::DB::Manager::" . camelify($kivitendo_package_names{$_})) } keys %kivitendo_package_names + unless %kivitendo_tables_to_manager_packages; - return $lxoffice_tables_to_manager_packages{ $_[0] }; + return $kivitendo_tables_to_manager_packages{ $_[0] }; } sub get_table_for_package { - get_package_for_table('dummy') if !%lxoffice_tables_to_packages; - %lxoffice_packages_to_tables = reverse %lxoffice_tables_to_packages unless %lxoffice_packages_to_tables; + get_package_for_table('dummy') if !%kivitendo_tables_to_packages; + %kivitendo_packages_to_tables = reverse %kivitendo_tables_to_packages unless %kivitendo_packages_to_tables; my $package = $_[0] =~ m/^SL::DB::/ ? $_[0] : "SL::DB::" . $_[0]; - return $lxoffice_packages_to_tables{ $package }; + return $kivitendo_packages_to_tables{ $package }; } sub db { my $string = $_[0]; - my $lookup = $lxoffice_package_names{$_[0]} || - plurify($lxoffice_package_names{singlify($_[0])}); + my $lookup = $kivitendo_package_names{$_[0]} || + plurify($kivitendo_package_names{singlify($_[0])}); for my $thing ($string, $lookup) { @@ -160,18 +164,6 @@ sub db { die "Can't resolve '$string' as a database model, sorry. Did you perhaps forgot to load it?"; } -sub camelify { - my ($str) = @_; - $str =~ s/_+(.)/uc($1)/ge; - ucfirst $str; -} - -sub snakify { - my ($str) = @_; - $str =~ s/(?