]> wagnertech.de Git - mfinanz.git/commitdiff
Rose: Fremdschlüsselbenennung fixen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 22 Jan 2013 15:26:38 +0000 (16:26 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 23 Jan 2013 09:13:10 +0000 (10:13 +0100)
Die von Rose erzeugten Fremdschlüsselaccessoren heißen wie die
Spaltennamen, also z.B. in Perl 'trans' zu Spalte 'trans_id'. Das ist
unintuitiv und muss an vielen Stellen (z.B. bei den manager_args,
with_objects etc.) auch als 'trans' angegeben werden.

Also im Generatorscript gewisse Namen auf sinnvollere Namen mappen.

14 files changed:
SL/DB/DeliveryOrder.pm
SL/DB/DeliveryOrderItem.pm
SL/DB/Invoice.pm
SL/DB/InvoiceItem.pm
SL/DB/MetaSetup/DeliveryOrderItem.pm
SL/DB/MetaSetup/Invoice.pm
SL/DB/MetaSetup/InvoiceItem.pm
SL/DB/MetaSetup/Order.pm
SL/DB/MetaSetup/OrderItem.pm
SL/DB/MetaSetup/PurchaseInvoice.pm
SL/DB/Order.pm
SL/DB/OrderItem.pm
SL/DB/PurchaseInvoice.pm
scripts/rose_auto_create_model.pl

index fda171a20e61c7b8d0a56c58dae26b8071313a57..ca36cbda72c3381e823680d5bb859c9960db7126 100644 (file)
@@ -15,7 +15,7 @@ use List::Util qw(first);
 __PACKAGE__->meta->add_relationship(orderitems => { type         => 'one to many',
                                                     class        => 'SL::DB::DeliveryOrderItem',
                                                     column_map   => { id => 'delivery_order_id' },
 __PACKAGE__->meta->add_relationship(orderitems => { type         => 'one to many',
                                                     class        => 'SL::DB::DeliveryOrderItem',
                                                     column_map   => { id => 'delivery_order_id' },
-                                                    manager_args => { with_objects => [ 'parts' ] }
+                                                    manager_args => { with_objects => [ 'part' ] }
                                                   },
                                    );
 
                                                   },
                                    );
 
index 433e676b0aa472af50fca8791876c859d0dca323..d50a63ff409df45cf2ba790688dd761c2624a48c 100644 (file)
@@ -24,9 +24,4 @@ __PACKAGE__->meta->initialize;
 
 # methods
 
 
 # methods
 
-sub part {
-  # canonial alias for parts.
-  goto &parts;
-}
-
 1;
 1;
index f75a6cd65b5013a0918ea7b3a07a622b76a9f9fa..b164c03512671bd2ba6f850df091120acd6e6150 100644 (file)
@@ -25,7 +25,7 @@ __PACKAGE__->meta->add_relationship(
     class        => 'SL::DB::InvoiceItem',
     column_map   => { id => 'trans_id' },
     manager_args => {
     class        => 'SL::DB::InvoiceItem',
     column_map   => { id => 'trans_id' },
     manager_args => {
-      with_objects => [ 'parts' ]
+      with_objects => [ 'part' ]
     }
   },
 );
     }
   },
 );
@@ -34,8 +34,7 @@ __PACKAGE__->meta->initialize;
 
 # methods
 
 
 # methods
 
-sub items        { goto &invoiceitems; }
-sub payment_term { goto &payment;      }
+sub items { goto &invoiceitems; }
 
 sub is_sales {
   # For compatibility with Order, DeliveryOrder
 
 sub is_sales {
   # For compatibility with Order, DeliveryOrder
index 36f0870d0c7eafc5bc71073bba6072fce8dbbdb9..a4135fc4c67b9acdd1c4cc40be90dab70187c9fe 100644 (file)
@@ -24,9 +24,4 @@ __PACKAGE__->meta->make_manager_class;
 
 __PACKAGE__->meta->initialize;
 
 
 __PACKAGE__->meta->initialize;
 
-sub part {
-  # canonial alias for parts.
-  goto &parts;
-}
-
 1;
 1;
index 1e9a52be24e5378a9454345749b4b9d3c706e6b1..d5aaf3c79119e9fe19516c72f43c3785af543650 100644 (file)
@@ -45,7 +45,7 @@ __PACKAGE__->meta->setup(
       key_columns => { delivery_order_id => 'id' },
     },
 
       key_columns => { delivery_order_id => 'id' },
     },
 
-    parts => {
+    part => {
       class       => 'SL::DB::Part',
       key_columns => { parts_id => 'id' },
     },
       class       => 'SL::DB::Part',
       key_columns => { parts_id => 'id' },
     },
index 1111a980ba0192cec3b2aecbbc34bb2021dbf344..b01b1417d6334bde6fb10a18ca16c8d97ad15259 100644 (file)
@@ -99,7 +99,7 @@ __PACKAGE__->meta->setup(
       key_columns => { language_id => 'id' },
     },
 
       key_columns => { language_id => 'id' },
     },
 
-    payment => {
+    payment_terms => {
       class       => 'SL::DB::PaymentTerm',
       key_columns => { payment_id => 'id' },
     },
       class       => 'SL::DB::PaymentTerm',
       key_columns => { payment_id => 'id' },
     },
index 470c4c4e677ae3ad7d4332ed1f3fcbd6b38511d8..eb5d84d2cfc815f52bab87a479dc8b28dd378f99 100644 (file)
@@ -46,7 +46,7 @@ __PACKAGE__->meta->setup(
   allow_inline_column_values => 1,
 
   foreign_keys => [
   allow_inline_column_values => 1,
 
   foreign_keys => [
-    parts => {
+    part => {
       class       => 'SL::DB::Part',
       key_columns => { parts_id => 'id' },
     },
       class       => 'SL::DB::Part',
       key_columns => { parts_id => 'id' },
     },
index 05512cd631e66f8ef5f7c01ee618a0f6ee23b8ea..f68c276efcf8daf6874b1666bfd81344ae76bac5 100644 (file)
@@ -93,7 +93,7 @@ __PACKAGE__->meta->setup(
       key_columns => { language_id => 'id' },
     },
 
       key_columns => { language_id => 'id' },
     },
 
-    payment => {
+    payment_terms => {
       class       => 'SL::DB::PaymentTerm',
       key_columns => { payment_id => 'id' },
     },
       class       => 'SL::DB::PaymentTerm',
       key_columns => { payment_id => 'id' },
     },
index 732d4c92e06e03e891cf38c349567cfb37b54f50..3d0c98e7e22d78a6225a3a8cf4d4a638ed49939f 100644 (file)
@@ -44,7 +44,7 @@ __PACKAGE__->meta->setup(
   allow_inline_column_values => 1,
 
   foreign_keys => [
   allow_inline_column_values => 1,
 
   foreign_keys => [
-    parts => {
+    part => {
       class       => 'SL::DB::Part',
       key_columns => { parts_id => 'id' },
     },
       class       => 'SL::DB::Part',
       key_columns => { parts_id => 'id' },
     },
@@ -64,7 +64,7 @@ __PACKAGE__->meta->setup(
       key_columns => { project_id => 'id' },
     },
 
       key_columns => { project_id => 'id' },
     },
 
-    trans => {
+    order => {
       class       => 'SL::DB::Order',
       key_columns => { trans_id => 'id' },
     },
       class       => 'SL::DB::Order',
       key_columns => { trans_id => 'id' },
     },
index 636a5d823a329499a3d7e3345287b1984f9e11ad..309884c680ed779fbcd942f9e26bb139cf8f22a0 100644 (file)
@@ -75,7 +75,7 @@ __PACKAGE__->meta->setup(
       key_columns => { language_id => 'id' },
     },
 
       key_columns => { language_id => 'id' },
     },
 
-    payment => {
+    payment_terms => {
       class       => 'SL::DB::PaymentTerm',
       key_columns => { payment_id => 'id' },
     },
       class       => 'SL::DB::PaymentTerm',
       key_columns => { payment_id => 'id' },
     },
index ae5c5045d96e92f509db66eb514c091360569787..b9959aa7e2c9437adddecf656f1c3ef72718366f 100644 (file)
@@ -23,7 +23,7 @@ __PACKAGE__->meta->add_relationship(
     class        => 'SL::DB::OrderItem',
     column_map   => { id => 'trans_id' },
     manager_args => {
     class        => 'SL::DB::OrderItem',
     column_map   => { id => 'trans_id' },
     manager_args => {
-      with_objects => [ 'parts' ]
+      with_objects => [ 'part' ]
     }
   },
   periodic_invoices_config => {
     }
   },
   periodic_invoices_config => {
@@ -37,8 +37,7 @@ __PACKAGE__->meta->initialize;
 
 # methods
 
 
 # methods
 
-sub items         { goto &orderitems; }
-sub payment_terms { goto &payment;    }
+sub items { goto &orderitems; }
 
 sub type {
   my $self = shift;
 
 sub type {
   my $self = shift;
index f7ff3bbe691554e9c023469c2422e92583af0cce..862a215a15d4895dd7d6e12ac30c0a39d3a3a819 100644 (file)
@@ -39,14 +39,4 @@ sub shipped_qty {
   return sum(map { AM->convert_unit($_->unit => $self->unit) * $_->qty } @doi);
 }
 
   return sum(map { AM->convert_unit($_->unit => $self->unit) * $_->qty } @doi);
 }
 
-sub part {
-  # canonial alias for parts.
-  goto &parts;
-}
-
-sub order {
-  # canonial alias for trans.
-  goto &trans;
-}
-
 1;
 1;
index 9ec6035b8117e5d30f7b0e50a4386f2eddd709c5..da34a27b8a496d8abd30f891bc913532d0c4af8d 100644 (file)
@@ -19,8 +19,7 @@ __PACKAGE__->meta->add_relationship(invoiceitems => { type         => 'one to ma
 
 __PACKAGE__->meta->initialize;
 
 
 __PACKAGE__->meta->initialize;
 
-sub items        { goto &invoiceitems; }
-sub payment_term { goto &payment;      }
+sub items { goto &invoiceitems; }
 
 sub is_sales {
   # For compatibility with Order, DeliveryOrder
 
 sub is_sales {
   # For compatibility with Order, DeliveryOrder
index f7cc62d8a81a746c63e75dadb0010690e122b6cf..20048f2d46822eb86c54cc8156223d6ca4f1e4eb 100755 (executable)
@@ -44,6 +44,16 @@ our $meta_path = "SL/DB/MetaSetup";
 
 my %config;
 
 
 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' },
+);
+
 sub setup {
 
   SL::LxOfficeConf->read;
 sub setup {
 
   SL::LxOfficeConf->read;
@@ -103,6 +113,11 @@ CODE
   }
 
   $definition =~ s/::AUTO::/::/g;
   }
 
   $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 = <<CODE;
 # This file has been auto-generated. Do not modify it; it will be overwritten
 # by $::script automatically.
   my $full_definition = <<CODE;
 # This file has been auto-generated. Do not modify it; it will be overwritten
 # by $::script automatically.