package LIMS::Controller::Admin::Config::NetworkLocations;

use base 'LIMS::Base';

use LIMS::Local::Sugar;
use Data::Dumper;

__PACKAGE__->authz->authz_runmodes( ':all' => 'do_admin' );

#-------------------------------------------------------------------------------
startmode default { 
    $self->_debug_path($self->get_current_runmode);

    { # get existing HMRN parent orgs:
        my $locations = $self->model('Base')->get_objects('LocalNetworkLocation');
        my %map = map { $_->parent_id => 1 } @$locations;
        $self->tt_params( hmrn_location_map => \%map );
    }   
    
    { # get all parent orgs:
        my @args = (
            { 'referral_type.description' => 'hospital' },
            { sort_by => 'description' },
        );
        
        my $parent_orgs
            = $self->model('ReferralSource')->get_parent_organisations(@args);

        $self->tt_params( parent_orgs => $parent_orgs );
    }

    return $self->tt_process;
}

#-------------------------------------------------------------------------------
runmode update { 
    $self->_debug_path($self->get_current_runmode);
 
    my @parent_ids = $self->query->param('parent_id'); # warn Dumper \@parent_ids;
    
    my $rtn = $self->model('ReferralSource')->update_network_locations(\@parent_ids);
    
    return $rtn
        ? $self->error($rtn)
        : $self->redirect( $self->query->url . '/config/network-locations' );
}

1;