Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
authorG. Richardson <information@lx-office-hosting.de>
Mon, 9 Jan 2012 16:22:19 +0000 (17:22 +0100)
committerG. Richardson <information@lx-office-hosting.de>
Mon, 9 Jan 2012 16:22:19 +0000 (17:22 +0100)
14 files changed:
SL/DB/Customer.pm
SL/DB/MetaSetup/Customer.pm
SL/DB/MetaSetup/Part.pm
SL/DB/MetaSetup/Vendor.pm
SL/DB/Part.pm
SL/DO.pm
SL/Form.pm
SL/IS.pm
SL/User.pm
bin/mozilla/ir.pl
bin/mozilla/is.pl
doc/changelog
locale/de/special_chars
templates/webpages/do/form_header.html

index f9f8901..2e3fa68 100644 (file)
@@ -26,11 +26,6 @@ __PACKAGE__->meta->add_relationship(
     column_map   => { id      => 'cp_cv_id' },
     manager_args => { sort_by => 'lower(contacts.cp_name)' },
   },
-  business => {
-    type         => 'one to one',
-    class        => 'SL::DB::Business',
-    column_map   => { business_id => 'id' },
-  },
 );
 
 __PACKAGE__->meta->initialize;
index 00bdb25..181f6e6 100644 (file)
@@ -51,14 +51,30 @@ __PACKAGE__->meta->setup(
     taxzone_id     => { type => 'integer', default => '0', not_null => 1 },
     greeting       => { type => 'text' },
     ustid          => { type => 'text' },
+    direct_debit   => { type => 'boolean', default => 'false' },
     iban           => { type => 'varchar', length => 100 },
     bic            => { type => 'varchar', length => 100 },
-    direct_debit   => { type => 'boolean', default => 'false' },
+    curr           => { type => 'character', length => 3 },
   ],
 
   primary_key_columns => [ 'id' ],
 
-  allow_inline_column_values => 1,
+  foreign_keys => [
+    business => {
+      class       => 'SL::DB::Business',
+      key_columns => { business_id => 'id' },
+    },
+
+    language_obj => {
+      class       => 'SL::DB::Language',
+      key_columns => { language_id => 'id' },
+    },
+
+    payment => {
+      class       => 'SL::DB::PaymentTerm',
+      key_columns => { payment_id => 'id' },
+    },
+  ],
 );
 
 1;
index d6814e8..d4e142b 100644 (file)
@@ -59,6 +59,11 @@ __PACKAGE__->meta->setup(
       class       => 'SL::DB::Buchungsgruppe',
       key_columns => { buchungsgruppen_id => 'id' },
     },
+
+    unit_obj => {
+      class       => 'SL::DB::Unit',
+      key_columns => { unit => 'name' },
+    },
   ],
 );
 
index ae71c62..2fc47cc 100644 (file)
@@ -54,6 +54,7 @@ __PACKAGE__->meta->setup(
     direct_debit   => { type => 'boolean', default => 'false' },
     iban           => { type => 'varchar', length => 100 },
     bic            => { type => 'varchar', length => 100 },
+    curr           => { type => 'character', length => 3 },
   ],
 
   primary_key_columns => [ 'id' ],
index 22fbc1b..952bce2 100644 (file)
@@ -16,11 +16,6 @@ use SL::DB::Helper::CustomVariables (
 );
 
 __PACKAGE__->meta->add_relationships(
-  unit_obj                     => {
-    type         => 'one to one',
-    class        => 'SL::DB::Unit',
-    column_map   => { unit => 'name' },
-  },
   assemblies                     => {
     type         => 'one to many',
     class        => 'SL::DB::Assembly',
index 0d2a5ec..f241cdf 100644 (file)
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -350,7 +350,7 @@ sub save {
              conv_i($form->{salesman_id}), conv_i($form->{cp_id}),
              $form->{transaction_description},
              $form->{type} =~ /^sales/ ? 't' : 'f',
-             conv_i($form->{taxzone_id}), $form->{taxincluded} ? 't' : 'f', conv_i($form->{terms}), $form->{curr},
+             conv_i($form->{taxzone_id}), $form->{taxincluded} ? 't' : 'f', conv_i($form->{terms}), substr($form->{currency}, 0, 3),
              conv_i($form->{id}));
   do_query($form, $dbh, $query, @values);
 
@@ -601,7 +601,7 @@ sub retrieve {
          d.description AS department, dord.language_id,
          dord.shipto_id,
          dord.globalproject_id, dord.delivered, dord.transaction_description,
-         dord.taxzone_id, dord.taxincluded, dord.terms, dord.curr
+         dord.taxzone_id, dord.taxincluded, dord.terms, dord.curr AS currency
        FROM delivery_orders dord
        JOIN ${vc} cv ON (dord.${vc}_id = cv.id)
        LEFT JOIN employee e ON (dord.employee_id = e.id)
@@ -623,6 +623,9 @@ sub retrieve {
   }
   $sth->finish();
 
+  # remove any trailing whitespace
+  $form->{currency} =~ s/\s*$//;
+
   $form->{donumber_array} =~ s/\s*$//g;
 
   $form->{saved_donumber} = $form->{donumber};
index f100b8c..d0a4157 100644 (file)
@@ -2857,7 +2857,7 @@ sub create_links {
     if ($self->{"$self->{vc}_id"}) {
 
       # only setup currency
-      ($self->{currency}) = split(/:/, $self->{currencies});
+      ($self->{currency}) = split(/:/, $self->{currencies}) if !$self->{currency};
 
     } else {
 
index 22c25c7..56c266c 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -1413,14 +1413,16 @@ sub delete_invoice {
     do_query($form, $dbh, qq|UPDATE ar SET storno = 'f', paid = 0 WHERE id = ?|, $invoice_id);
   }
 
-  # delete AR record
-  do_query($form, $dbh, qq|DELETE FROM ar WHERE id = ?|, @values);
-
   # delete spool files
   my @spoolfiles = selectall_array_query($form, $dbh, qq|SELECT spoolfile FROM status WHERE trans_id = ?|, @values);
 
-  # delete status entries
-  do_query($form, $dbh, qq|DELETE FROM status WHERE trans_id = ?|, @values);
+  my @queries = (
+    qq|DELETE FROM status WHERE trans_id = ?|,
+    qq|DELETE FROM periodic_invoices WHERE ar_id = ?|,
+    qq|DELETE FROM ar WHERE id = ?|,
+  );
+
+  map { do_query($form, $dbh, $_, @values) } @queries;
 
   my $rc = $dbh->commit;
 
index 640299d..49ba339 100644 (file)
@@ -77,9 +77,9 @@ sub country_codes {
   my @dir = grep(!/(^\.\.?$|\..*)/, readdir(DIR));
 
   foreach my $dir (@dir) {
-    next unless open(FH, "locale/$dir/LANGUAGE");
-    @language = <FH>;
-    close FH;
+    next unless open(my $fh, '<:encoding(UTF-8)', "locale/$dir/LANGUAGE");
+    @language = <$fh>;
+    close $fh;
 
     $cc{$dir} = "@language";
   }
index b550532..2ace9a7 100644 (file)
@@ -116,7 +116,7 @@ sub invoice_links {
     }
   }
 
-  my ($payment_id, $language_id, $taxzone_id);
+  my ($payment_id, $language_id, $taxzone_id, $currency);
   if ($form->{payment_id}) {
     $payment_id = $form->{payment_id};
   }
@@ -126,6 +126,9 @@ sub invoice_links {
   if ($form->{taxzone_id}) {
     $taxzone_id = $form->{taxzone_id};
   }
+  if ($form->{currency}) {
+    $currency = $form->{currency};
+  }
 
   my $cp_id = $form->{cp_id};
   IR->get_vendor(\%myconfig, \%$form);
@@ -141,6 +144,9 @@ sub invoice_links {
   if ($taxzone_id) {
     $form->{taxzone_id} = $taxzone_id;
   }
+  if ($currency) {
+    $form->{currency} = $currency;
+  }
 
   my @curr = split(/:/, $form->{currencies}); #seems to be missing
   map { $form->{selectcurrency} .= "<option>$_\n" } @curr;
index b858db1..489a6d9 100644 (file)
@@ -146,7 +146,7 @@ sub invoice_links {
 
   my $editing = $form->{id};
 
-  $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes id shipto_id));
+  $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded currency cp_id intnotes id shipto_id));
 
   IS->get_customer(\%myconfig, \%$form);
 
@@ -158,7 +158,7 @@ sub invoice_links {
   $form->restore_vars(qw(id));
 
   IS->retrieve_invoice(\%myconfig, \%$form);
-  $form->restore_vars(qw(payment_id language_id taxzone_id intnotes cp_id shipto_id));
+  $form->restore_vars(qw(payment_id language_id taxzone_id currency intnotes cp_id shipto_id));
   $form->restore_vars(qw(taxincluded)) if $form->{id};
   $form->restore_vars(qw(salesman_id)) if $editing;
 
index d85e5b5..841f844 100644 (file)
@@ -75,6 +75,7 @@
   - Bugfix 1753: Benutzerdefinierte Variable f. Waren: bearbeitbar nicht auswählbar
   - Bugfix 1738:  Entwürfe können nicht gelöscht werden
   - Bugfix 1759: Währung bei Kunden / Lieferanten vorbelegen
+  - Bugfix 1770: Währung / currency überlebt Workflow über Lieferschein nicht
   - Bugfix 1773: SQL Fehler bei Anzeige von Angeboten
 
 
index 945b239..c481fe6 100644 (file)
@@ -29,7 +29,7 @@ order=< > \n
 \n=<br>
 
 [Template/LaTeX]
-order=\\ <pagebreak> & \n \r " $ <bullet> % _ # ^ { } < > £ ± ² ³ ° § ® ©
+order=\\ <pagebreak> & \n \r " $ <bullet> % _ # ^ { } < > £ ± ² ³ ° § ® © \xad
 \\=\\textbackslash\s
 <pagebreak>=
 "=''
@@ -53,7 +53,9 @@ _=\\_
 °=$^\\circ$
 §=\\S
 ®=\\textregistered
-©=\\textcopyright
+©=\\textcopyrighta
+\xad=\\-
+
 
 [Template/OpenDocument]
 order=& < > " ' \x80 \n \r
index 393422e..a83a2b9 100644 (file)
@@ -64,7 +64,7 @@
   <input type="hidden" name="cc" value="[% HTML.escape(cc) %]">
   <input type="hidden" name="closed" value="[% HTML.escape(closed) %]">
   <input type="hidden" name="convert_from_oe_ids" value="[% HTML.escape(convert_from_oe_ids) %]">
-  <input type="hidden" name="curr" value="[% HTML.escape(curr) %]">
+  <input type="hidden" name="currency" value="[% HTML.escape(currency) %]">
   <input type="hidden" name="customer_klass" value="[% HTML.escape(customer_klass) %]">
   <input type="hidden" name="discount" value="[% HTML.escape(discount) %]">
   <input type="hidden" name="dunning_amount" value="[% HTML.escape(dunning_amount) %]">