RSS Git Download  Clone
Raw Blame History
package LIMS::Controller::Admin::Config::OutreachPractices;

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 all outreach practices:
        my $practices = $self->model('Outreach')->get_outreach_practices;
        
        # extract & add post_code info:
        for (@$practices) {
            my $address = $_->{display_name};
            my @addr = split ', ', $address;
            $_->{post_code} = $addr[-1]; # last entry
        }
        $self->tt_params( practices => $practices );
    }   
    
    { # current practice overrides as hashref of practice_id => tube_type:
        my $practices = $self->model('Outreach')->get_blood_tube_overrides;
        $self->tt_params( overrides => $practices );
    }

    { # callback for default blood-tube-type:
        require LIMS::Controller::Outreach; # load at run-time not compile-time !!
        $self->tt_params( tube_type => sub {
            LIMS::Controller::Outreach::get_blood_tube_type(@_);
        } );
    }

    return $self->tt_process;
}

# -------------------------------------------------------------------------------------
runmode edit ($id) {
    $self->_debug_path($self->get_current_runmode);

    $id || return $self->error('no id passed to '.$self->get_current_runmode);  # $self->debug('id:'.$id);

    my $data = $self->model('Outreach')->get_practice_blood_tube($id);

    $self->tt_params( data => $data );
    return $self->tt_process($errs);
}

#-------------------------------------------------------------------------------
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/hmrn-locations' );
}

1;