diff options
-rw-r--r-- | perllib/Open311.pm | 6 | ||||
-rw-r--r-- | t/open311.t | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/perllib/Open311.pm b/perllib/Open311.pm index b380409cf..997f04b53 100644 --- a/perllib/Open311.pm +++ b/perllib/Open311.pm @@ -102,7 +102,11 @@ sub _populate_service_request_params { last_name => $lastname || '', }; - if ( $problem->used_map || $self->always_send_latlong ) { + # if you click nearby reports > skip map then it's possible + # to end up with used_map = f and nothing in postcode + if ( $problem->used_map || $self->always_send_latlong + || ( !$problem->used_map && !$problem->postcode ) ) + { $params->{lat} = $problem->latitude; $params->{long} = $problem->longitude; } else { diff --git a/t/open311.t b/t/open311.t index d6a5ef6f6..d66a9c2e5 100644 --- a/t/open311.t +++ b/t/open311.t @@ -342,6 +342,13 @@ for my $test ( postcode => 'EH99 1SP', used_map => 1, includes_latlong => 1, + }, + { + desc => 'no use lat long, no map and no postcode sends lat long', + use_latlong => 0, + postcode => '', + used_map => 0, + includes_latlong => 1, } ) { subtest $test->{desc} => sub { |