qualification address handling changes, RT#7111
[freeside.git] / FS / FS / part_export / ikano.pm
index 604f47e..b04defa 100644 (file)
@@ -42,6 +42,33 @@ sub rebless { shift; }
 
 sub external_pkg_map { 1; }
 
+sub location_types {
+  (
+    ''     => '(None)',
+    'APT'  => 'Apartment',
+    'BLDG' => 'Building',
+    'FLR'  => 'Floor',
+    'LOT'  => 'Lot',
+    'RM'   => 'Room',
+    'SLIP' => 'Slip',
+    'SUIT' => 'Suite',
+    'TRLR' => 'Trailer',
+    'UNIT' => 'Unit',
+    'WING' => 'Wing',
+  );
+}
+
+sub location_types_parse {
+  my $class = shift;
+  my %t = $class->location_types;
+  delete $t{''};
+  (
+    (map { $_ => $_ } keys %t),
+    (reverse %t),
+    'STE' => 'SUIT', #USPS
+  );
+}
+
 sub dsl_pull {
 # we distinguish between invalid new data (return error) versus data that
 # has legitimately changed (may eventually execute hooks; now just update)
@@ -263,9 +290,11 @@ sub qual {
     my($self,$qual) = (shift,shift);
 
     my %location_hash = $qual->location_hash; 
-    warn Dumper $qual->location_hash;
     return 'No address provided' unless keys %location_hash;
 
+    warn Dumper(\%location_hash);
+    return 'Location kind is required' unless $location_hash{location_kind};
+
     my $svctn = $qual->phonenum;
 
     my $result = $self->ikano_command('PREQUAL',