use List::MoreUtils qw(pairwise);
use SL::Helper::Csv;
+use SL::DB::Currency;
use SL::DB::Customer;
use SL::DB::Language;
use SL::DB::PaymentTerm;
use Rose::Object::MakeMethods::Generic
(
scalar => [ qw(controller file csv test_run save_with_cascade) ],
- 'scalar --get_set_init' => [ qw(profile displayable_columns existing_objects class manager_class cvar_columns all_cvar_configs all_languages payment_terms_by all_vc vc_by) ],
+ 'scalar --get_set_init' => [ qw(profile displayable_columns existing_objects class manager_class cvar_columns all_cvar_configs all_languages payment_terms_by all_currencies default_currency_id all_vc vc_by) ],
);
sub run {
return SL::DB::Manager::Language->get_all;
}
+sub init_all_currencies {
+ my ($self) = @_;
+
+ return SL::DB::Manager::Currency->get_all;
+}
+
+sub init_default_currency_id {
+ my ($self) = @_;
+
+ return SL::DB::Default->get->currency_id;
+}
+
sub init_payment_terms_by {
my ($self) = @_;
vendors => SL::DB::Manager::Vendor->get_all };
}
+sub force_allow_columns {
+ return ();
+}
+
sub init_vc_by {
my ($self) = @_;
eval "require " . $self->class;
my %unwanted = map { ( $_ => 1 ) } (qw(itime mtime), map { $_->name } @{ $self->class->meta->primary_key_columns });
+ delete $unwanted{$_} for ($self->force_allow_columns);
+
my %profile;
for my $col ($self->class->meta->columns) {
next if $unwanted{$col};
}
}
+sub clean_fields {
+ my ($self, $illegal_chars, $object, @fields) = @_;
+
+ my @cleaned_fields;
+ foreach my $field (grep { $object->can($_) } @fields) {
+ my $value = $object->$field;
+
+ next unless defined($value) && ($value =~ s/$illegal_chars/ /g);
+
+ $object->$field($value);
+ push @cleaned_fields, $field;
+ }
+
+ return @cleaned_fields;
+}
+
1;