X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/7c931a23dd4be179df2003599724734a23a9eade..24bff6e45ea380c65791b68745f615763d9472ab:/scripts/rose_auto_create_model.pl diff --git a/scripts/rose_auto_create_model.pl b/scripts/rose_auto_create_model.pl index b23a75d29..1850f4599 100755 --- a/scripts/rose_auto_create_model.pl +++ b/scripts/rose_auto_create_model.pl @@ -44,6 +44,18 @@ our $meta_path = "SL/DB/MetaSetup"; my %config; +our %foreign_key_name_map = ( + oe => { payment => 'payment_terms', }, + ar => { payment => 'payment_terms', }, + ap => { payment => 'payment_terms', }, + + orderitems => { parts => 'part', trans => 'order', }, + delivery_order_items => { parts => 'part' }, + invoice => { parts => 'part' }, + + periodic_invoices_configs => { oe => 'order' }, +); + sub setup { SL::LxOfficeConf->read; @@ -81,7 +93,7 @@ sub process_table { my $file = "SL/DB/${package}.pm"; $schema = <meta->schema('$schema'); +__PACKAGE__->meta->schema('$schema'); CODE my $definition = eval <meta->table('$table'); -$schema + $schema __PACKAGE__->meta->auto_initialize; __PACKAGE__->meta->perl_class_definition(indent => 2); # , braces => 'bsd' @@ -103,6 +115,11 @@ CODE } $definition =~ s/::AUTO::/::/g; + + while (my ($auto_generated_name, $desired_name) = each %{ $foreign_key_name_map{$table} || {} }) { + $definition =~ s/( foreign_keys \s*=> \s*\[ .* ^\s+ ) ${auto_generated_name} \b/${1}${desired_name}/msx; + } + my $full_definition = <meta->make_manager_class; 1; @@ -246,7 +264,7 @@ __END__ =head1 NAME -rose_auto_create_model - mana Rose::DB::Object classes for Lx-Office +rose_auto_create_model - mana Rose::DB::Object classes for kivitendo =head1 SYNOPSIS