]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
authorG. Richardson <information@lx-office-hosting.de>
Wed, 1 Aug 2012 10:03:07 +0000 (12:03 +0200)
committerG. Richardson <information@lx-office-hosting.de>
Wed, 1 Aug 2012 10:03:07 +0000 (12:03 +0200)
SL/BackgroundJob/SelfTest/Base.pm
SL/Controller/CsvImport/CustomerVendor.pm
SL/Controller/CsvImport/Part.pm
SL/DB/MetaSetup/Customer.pm
SL/DB/MetaSetup/Vendor.pm
SL/Helper/Csv.pm
sql/Pg-upgrade2/customer_vendor_phone_no_limits.sql [new file with mode: 0644]
t/helper/csv.t
templates/webpages/ct/form_header.html

index f790137d2bd3ea9cfd733919c25044906f09a464..857de8a7aa691b9793293d37f587719b998e1498 100644 (file)
@@ -1,5 +1,7 @@
 package SL::BackgroundJob::SelfTest::Base;
 
+use strict;
+
 use Test::Builder;
 
 use parent qw(Rose::Object);
index c0d9ca288a4b25f996c2318cbe9becad16498775..02d84836c4b7a96668971f5827d5da708de2bee7 100644 (file)
@@ -182,7 +182,6 @@ sub field_lengths {
            city           => 75,
            country        => 75,
            contact        => 75,
-           phone          => 30,
            fax            => 30,
            account_number => 15,
            bank_code      => 10,
index d707aaafd3603898198fcf2475015ae691c1d82f..3be6f2a4421b8e3b6eaf9285e62a0851ec4162eb 100644 (file)
@@ -194,7 +194,10 @@ sub check_existing {
 
   my $object = $entry->{object};
 
-  $entry->{part} = $self->parts_by->{partnumber}->{ $object->type }->{ $object->partnumber };
+  $entry->{part} = SL::DB::Manager::Part->find_by(
+    SL::DB::Manager::Part->type_filter($object->type),
+    ( partnumber => $object->partnumber )                 x!! $object->partnumber,
+  );
 
   if ($self->settings->{article_number_policy} eq 'update_prices') {
     if ($entry->{part}) {
index 8735268c086a8d89e201f70deeeac3aa724a6d97..722ff9df694ecdae3b185757eeed72c4e53ea47b 100644 (file)
@@ -19,7 +19,7 @@ __PACKAGE__->meta->setup(
     city           => { type => 'varchar', length => 75 },
     country        => { type => 'varchar', length => 75 },
     contact        => { type => 'text' },
-    phone          => { type => 'varchar', length => 30 },
+    phone          => { type => 'text' },
     fax            => { type => 'varchar', length => 30 },
     homepage       => { type => 'text' },
     email          => { type => 'text' },
index 6511ea286d8adc27c74566f9f26d3651a31d45de..387b2d8575c83fa6c108a8666367170b03d2fe07 100644 (file)
@@ -19,7 +19,7 @@ __PACKAGE__->meta->setup(
     city           => { type => 'varchar', length => 75 },
     country        => { type => 'varchar', length => 75 },
     contact        => { type => 'varchar', length => 75 },
-    phone          => { type => 'varchar', length => 30 },
+    phone          => { type => 'text' },
     fax            => { type => 'varchar', length => 30 },
     homepage       => { type => 'text' },
     email          => { type => 'text' },
index 3132b284699a3e4b756bc9386dad1a48e65ee784..5b629ee63b6f9dd181baba6cc475c1aa5f837895 100644 (file)
@@ -111,6 +111,14 @@ sub _check_header {
     ]) unless $header;
   }
 
+  # Special case: utf8 BOM.
+  # certain software (namely MS Office and notepad.exe insist on prefixing
+  # data with a discouraged but valid byte order mark
+  # if not removed, the first header field will not be recognized
+  if ($header && $header->[0] && $self->encoding =~ /utf-?8/i) {
+    $header->[0] =~ s/^\x{FEFF}//;
+  }
+
   return unless $header;
   return $self->header([ map { lc } @$header ]);
 }
diff --git a/sql/Pg-upgrade2/customer_vendor_phone_no_limits.sql b/sql/Pg-upgrade2/customer_vendor_phone_no_limits.sql
new file mode 100644 (file)
index 0000000..30998ea
--- /dev/null
@@ -0,0 +1,7 @@
+-- @tag: customer_vendor_phone_no_limits
+-- @description: Keine Längenbeschränkung für Spalte phone in den Tabellen customer und vendor.
+-- @depends: release_2_7_0
+-- @charset: utf-8
+
+ALTER TABLE customer ALTER COLUMN phone TYPE text;
+ALTER TABLE vendor   ALTER COLUMN phone TYPE text;
index 4e7ef121c5d4a0bbbdac270da509e9b84f2732ef..63fc858c95d5cb3b8640d6b7fb34ffbf53f7542c 100644 (file)
@@ -1,4 +1,4 @@
-use Test::More tests => 40;
+use Test::More tests => 41;
 
 use lib 't';
 
@@ -285,11 +285,21 @@ is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive hea
 #####
 
 $csv = SL::Helper::Csv->new(
-  file   => \"Kaffee",
-  header => [ 'Description' ],
-  class  => 'SL::DB::Part',
+file   => \"Kaffee",
+header => [ 'Description' ],
+class  => 'SL::DB::Part',
 );
 $csv->parse;
 is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive header as param works';
 
+#####
+
+$csv = SL::Helper::Csv->new(
+  file   => \"\x{FEFF}description\nKaffee",
+  class  => 'SL::DB::Part',
+  encoding => 'utf8',
+);
+$csv->parse;
+is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'utf8 BOM works (bug 1872)';
+
 # vim: ft=perl
index 8263d873ddaff938bb304d71947ff5cc72e5bfdf..bdf22dfedd34c4e776de7b5fc2b01ef4a826ff7c 100644 (file)
 
      <tr>
       <th align="right" nowrap>[% 'Phone' | $T8 %]</th>
-      <td><input name="phone" size="30" maxlength="30" value="[% HTML.escape(phone) %]"></td>
+      <td><input name="phone" size="30" value="[% HTML.escape(phone) %]"></td>
      </tr>
 
      <tr>