From 228dfbdc7b671f8c8ac8254ae7cda2e3675351ae Mon Sep 17 00:00:00 2001 From: Niclas Zimmermann Date: Fri, 6 Dec 2013 12:45:20 +0100 Subject: [PATCH] Verbessern von Helfer Konsistenz-Check Der Konsistenz-Check wird in den Ordner SL/Controller/CsvImport/Helper/ verschoben. Weiterhin ist er jetzt als Mixin programmiert. --- SL/Controller/CsvImport/CustomerVendor.pm | 4 ++-- .../CsvImport/Helper}/Consistency.pm | 13 ++++++++----- SL/Controller/CsvImport/Order.pm | 3 ++- 3 files changed, 12 insertions(+), 8 deletions(-) rename SL/{Helper/Csv => Controller/CsvImport/Helper}/Consistency.pm (74%) diff --git a/SL/Controller/CsvImport/CustomerVendor.pm b/SL/Controller/CsvImport/CustomerVendor.pm index 5f316148f..9e0c4d5a0 100644 --- a/SL/Controller/CsvImport/CustomerVendor.pm +++ b/SL/Controller/CsvImport/CustomerVendor.pm @@ -3,7 +3,7 @@ package SL::Controller::CsvImport::CustomerVendor; use strict; use SL::Helper::Csv; -use SL::Helper::Csv::Consistency; +use SL::Controller::CsvImport::Helper::Consistency; use SL::DB::Business; use SL::DB::CustomVariable; use SL::DB::CustomVariableConfig; @@ -66,7 +66,7 @@ sub check_objects { $self->check_language($entry); $self->check_business($entry); $self->check_payment($entry); - SL::Helper::Csv::Consistency->check_currency($entry, take_default => 1); + $self->check_currency($entry, take_default => 1); $self->handle_cvars($entry); next if @{ $entry->{errors} }; diff --git a/SL/Helper/Csv/Consistency.pm b/SL/Controller/CsvImport/Helper/Consistency.pm similarity index 74% rename from SL/Helper/Csv/Consistency.pm rename to SL/Controller/CsvImport/Helper/Consistency.pm index 5d52d14a7..a666e6fe5 100644 --- a/SL/Helper/Csv/Consistency.pm +++ b/SL/Controller/CsvImport/Helper/Consistency.pm @@ -1,4 +1,4 @@ -package SL::Helper::Csv::Consistency; +package SL::Controller::CsvImport::Helper::Consistency; use strict; @@ -7,6 +7,9 @@ use SL::DB::Currency; use SL::Helper::Csv::Error; +use parent qw(Exporter); +our @EXPORT = qw(check_currency); + # # public functions # @@ -17,14 +20,14 @@ sub check_currency { my $object = $entry->{object}; # Check whether or not currency ID is valid. - if ($object->currency_id && !$self->_currencies_by->{id}->{ $object->currency_id }) { + if ($object->currency_id && ! _currencies_by($self)->{id}->{ $object->currency_id }) { push @{ $entry->{errors} }, $::locale->text('Error: Invalid currency'); return 0; } # Map name to ID if given. if (!$object->currency_id && $entry->{raw_data}->{currency}) { - my $currency = $self->_currencies_by->{name}->{ $entry->{raw_data}->{currency} }; + my $currency = _currencies_by($self)->{name}->{ $entry->{raw_data}->{currency} }; if (!$currency) { push @{ $entry->{errors} }, $::locale->text('Error: Invalid currency'); return 0; @@ -34,7 +37,7 @@ sub check_currency { } # Set default currency if none was given and take_default is true. - $object->currency_id($self->_default_currency_id) if !$object->currency_id and $params{take_default}; + $object->currency_id(_default_currency_id($self)) if !$object->currency_id and $params{take_default}; $entry->{raw_data}->{currency_id} = $object->currency_id; @@ -48,7 +51,7 @@ sub check_currency { sub _currencies_by { my ($self) = @_; - return { map { my $col = $_; ( $col => { map { ( $_->$col => $_ ) } @{ $self->_all_currencies } } ) } qw(id name) }; + return { map { my $col = $_; ( $col => { map { ( $_->$col => $_ ) } @{ _all_currencies($self) } } ) } qw(id name) }; } sub _all_currencies { diff --git a/SL/Controller/CsvImport/Order.pm b/SL/Controller/CsvImport/Order.pm index 10c3433b6..7577ef047 100644 --- a/SL/Controller/CsvImport/Order.pm +++ b/SL/Controller/CsvImport/Order.pm @@ -6,6 +6,7 @@ use strict; use List::MoreUtils qw(any); use SL::Helper::Csv; +use SL::Controller::CsvImport::Helper::Consistency; use SL::DB::Order; use SL::DB::OrderItem; use SL::DB::Part; @@ -324,7 +325,7 @@ sub handle_order { $self->check_project($entry, global => 1); $self->check_ct_shipto($entry); $self->check_taxzone($entry); - SL::Helper::Csv::Consistency->check_currency($entry, take_default => 0); + $self->check_currency($entry, take_default => 0); if ($vc_obj) { # copy from customer if not given -- 2.20.1