Better messaging and error handling in the Shop/Credit screen. Cannot give credit to Visitor.
This commit is contained in:
parent
f04cf29300
commit
17841c838f
2 changed files with 25 additions and 10 deletions
|
|
@ -49,8 +49,11 @@ The reason for this adjustment.
|
|||
|
||||
sub adjust {
|
||||
my ($self, $amount, $comment) = @_;
|
||||
my $user = WebGUI::User->new($self->session, $self->userId);
|
||||
return 0 if $user->isVisitor;
|
||||
$self->session->db->write("insert into shopCredit (creditId, userId, amount, comment, dateOfAdjustment) values (?,?,?,?,now())",
|
||||
[$self->session->id->generate, $self->userId, $amount, $comment]);
|
||||
return $amount;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -179,11 +182,11 @@ sub www_adjust {
|
|||
my ($class, $session) = @_;
|
||||
my $admin = WebGUI::Shop::Admin->new($session);
|
||||
return $session->privilege->insufficient() unless $admin->canManage;
|
||||
my $form = $session->form;
|
||||
my $credit = $class->new($session, $form->get('userId'));
|
||||
$credit->adjust($form->get('amount'), $form->get('comment'));
|
||||
my $i18n = WebGUI::International->new($session, "Shop");
|
||||
my $message = sprintf $i18n->get('add credit message'), $form->get('amount'), WebGUI::User->new($session, $form->get('userId'))->username, $credit->getSum;
|
||||
my $form = $session->form;
|
||||
my $credit = $class->new($session, $form->get('userId'));
|
||||
my $amount = $credit->adjust($form->get('amount'), $form->get('comment'));
|
||||
my $i18n = WebGUI::International->new($session, "Shop");
|
||||
my $message = sprintf $i18n->get('add credit message'), $amount, WebGUI::User->new($session, $form->get('userId'))->username, $credit->getSum;
|
||||
return $class->www_manage($session, $message);
|
||||
}
|
||||
|
||||
|
|
@ -199,14 +202,16 @@ sub www_manage {
|
|||
my ($class, $session, $message) = @_;
|
||||
my $admin = WebGUI::Shop::Admin->new($session);
|
||||
return $session->privilege->insufficient() unless $admin->canManage;
|
||||
my $i18n = WebGUI::International->new($session, "Shop");
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
$f->hidden(name=>'shop',value=>'credit');
|
||||
$f->hidden(name=>'method',value=>'adjust');
|
||||
my $i18n = WebGUI::International->new($session, "Shop");
|
||||
my $f = WebGUI::HTMLForm->new($session);
|
||||
my $userId = $session->form->process('userId') || $session->user->userId;
|
||||
my $user = WebGUI::User->new($session, $userId);
|
||||
$f->hidden(name => 'shop', value => 'credit');
|
||||
$f->hidden(name => 'method', value => 'adjust');
|
||||
$f->user(
|
||||
name => 'userId',
|
||||
label => $i18n->get('username'),
|
||||
value => $session->user->userId,
|
||||
value => $userId,
|
||||
);
|
||||
$f->float(
|
||||
name => 'amount',
|
||||
|
|
@ -217,6 +222,10 @@ sub www_manage {
|
|||
label => $i18n->get('notes'),
|
||||
);
|
||||
$f->submit;
|
||||
if (! $message) {
|
||||
my $credit = $class->new($session, $userId);
|
||||
$message ||= sprintf $i18n->get('current credit message'), $user->username, $credit->getSum;
|
||||
}
|
||||
return $admin->getAdminConsole->render($message.$f->print, $i18n->get('in shop credit'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -567,6 +567,12 @@ our $I18N = {
|
|||
context => q|field label|
|
||||
},
|
||||
|
||||
'current credit message' => {
|
||||
message => q|%s has a total credit of %s.|,
|
||||
lastUpdated => 0,
|
||||
context => q|field label|
|
||||
},
|
||||
|
||||
'amount' => {
|
||||
message => q|Amount|,
|
||||
lastUpdated => 1213632324,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue