X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Frose_auto_create_model.pl;h=1850f4599a511c7754d67cd4c304adb8b175b0ba;hb=efac2a408d07588733698720f7198bc053821449;hp=b23a75d29356a1e1d9eb0af79248b3944d796514;hpb=781c16772f3c80cc827f11815bfb07b8318621f0;p=kivitendo-erp.git 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