Action - approval, refuse
Approval은 청구 목록에 대하여 승인 기능을 refuse는 청구 목렉에 대하여 거부 기능을 가지게 된다.
승인 기능은 두가지 상황에서 선택 할수 있게 된다. /list/view/user_num과 전체 list상태, 대기 리스트 상태, 거부 리스트 상태 에서 활성화가 되고 action을 취할수 있게 한다.
거부 기능은 두가지 상황에서 선택 할수 있게 된다. /list/view/user_num과 전체 list상태, 대기 리스트 상태, 승인 리스트 상태 에서 활성화가 되고 action 을 취할수 있게 한다.
/list/view/user_id
아래와 같이 id 값과 함께 전달 할수 있다.
<a href="[% c.uri_for('/list/approval', charge.id) %]" class="btn btn-primary">승인</a>
<a href="[% c.uri_for('/list/refuse', charge.id) %]" class="btn btn-primary">거부</a>
CaputreArgs(1) 옵션으로 $id 값(들)을 받을수 있게 된다.
sub approval :Local :CaptureArgs(1) {
my ( $self, $c, $id ) = @_;
my @target_ids = split ',', $id;
sub refuse :Local :CaptureArgs(1) {
my ( $self, $c, $id ) = @_;
my @target_ids = split ',', $id;
@target_id의 모든 값(들)을 status값이 2 or 3로 업데이트 한다. 업데이트는 검색을 한 값들을 대상으로 update를 하게 된다.
$ vi root/templates/default/src/list
# 승인
my $approval = $c->model('MyApp_DB')->resultset('Charge')->search({ id => { -in
=> \@target_ids } })->update_all({ status => '2' });
# 거부
my $refuse = $c->model('MyApp_DB')->resultset('Charge')->search({ id => { -in
=> \@target_ids } })->update_all({ status => '3' });
flash기능으로 messages값을 전달하여 조건에 맞을시 메세지를 출력 시키도록 한다.(/list/index.tt 참고) 조건은 approval, refuse기능이 정상 작동 되었는지를 검사 하게 된다.
if ($query_status) {
$c->flash->{messages} = 'Success message.';
}
else {
$c->flash->{messages} = 'No status Item.';
}
템플릿에 쓰일 status값과 함께 전체 목록으로 redirect 시키도록 한다.
$c->stash->{status} = '2'; #상태에 맞는 status값
$c->res->redirect($c->uri_for('/list'));
Action - delete
승인 기능은 두가지 상황에서 선택 할수 있게 된다. /list/view/user_num과 전체 list상태, 대기, 거부, 수정 상태 에서 활성화가 되고 action을 취할수 있게 한다.
$ vi root/templates/default/src/list
<a href="[% c.uri_for('/list/delete', charge.id) %]" class="btn btn-primary">삭제</a>
다른 기능과 같이 CaptureArgs(1)를 받는다.
sub delete :Local :CaptureArgs(1) {
my ( $self, $c, $id ) = @_;
my @target_ids = split ',', $id;
다른 기능과 달리 update_all 이 아닌 delete_all를 통하여 내용을 삭제 한다.
my $charge = $c->model('DonDB')->resultset('Charge')->search({ id => { -in => \@target_ids } })->delete_all;