+sub normalize_name {
+ my ($self) = @_;
+
+ # check if feature is enabled (select normalize_vc_names from defaults)
+ return unless ($::instance_conf->get_normalize_vc_names);
+
+ return unless $self->{cv};
+ my $name = $self->{cv}->name;
+ $name =~ s/\s+$//;
+ $name =~ s/^\s+//;
+ $name =~ s/\s+/ /g;
+ $self->{cv}->name($name);
+}
+
+sub home_address_for_google_maps {
+ my ($self) = @_;
+
+ my $address = $::instance_conf->get_address // '';
+ $address =~ s{^\s+|\s+$|\r+}{}g;
+ $address =~ s{\n+}{,}g;
+ $address =~ s{\s+}{ }g;
+
+ return $address;
+}
+
+sub init_customer_models {
+ my ($self) = @_;
+
+ SL::Controller::Helper::GetModels->new(
+ controller => $self,
+ model => 'Customer',
+ sorted => {
+ _default => {
+ by => 'customernumber',
+ dir => 1,
+ },
+ customernumber => t8('Customer Number'),
+ },
+ query => [
+ ( salesman_id => SL::DB::Manager::Employee->current->id) x !$::auth->assert('customer_vendor_all_edit', 1),
+ ],
+ );
+}
+
+sub init_vendor_models {
+ my ($self) = @_;
+
+ SL::Controller::Helper::GetModels->new(
+ controller => $self,
+ model => 'Vendor',
+ sorted => {
+ _default => {
+ by => 'vendornumber',
+ dir => 1,
+ },
+ vendornumber => t8('Vendor Number'),
+ },
+ );
+}
+
+sub _new_customer_vendor_object {
+ my ($self) = @_;
+
+ my $class = 'SL::DB::' . ($self->is_vendor ? 'Vendor' : 'Customer');
+ return $class->new(
+ contacts => [],
+ shipto => [],
+ custom_variables => [],
+ );
+}
+
+sub _new_contact_object {
+ my ($self) = @_;
+
+ return SL::DB::Contact->new(custom_variables => []);
+}
+