Properly propagate new contract back to reseller.

agranig/1_0_subfix
Andreas Granig 12 years ago
parent 5e0c8faa0a
commit 6e7ddeeac3

@ -117,6 +117,7 @@ sub create :Chained('contract_list') :PathPart('create') :Args(0) {
);
delete $c->session->{created_objects}->{contact};
delete $c->session->{created_objects}->{billing_profile};
$c->session->{created_objects}->{contract} = { id => $contract->id };
$c->flash(messages => [{type => 'success', text => 'Contract successfully created!'}]);
});
} catch($e) {

@ -50,15 +50,15 @@ sub create :Chained('list_reseller') :PathPart('create') :Args(0) {
$c->detach('/denied_page')
if($c->user->read_only);
my $params = delete $c->session->{created_object} || {};
my $params = {};
$params = Hash::Merge->new('RIGHT_PRECEDENT')->merge($params, $c->session->{created_objects});
my $posted = $c->request->method eq 'POST';
my $form = NGCP::Panel::Form::Reseller->new;
$form->process(
posted => $posted,
item => $params,
params => $c->request->params,
action => $c->uri_for('create'),
item => $params,
);
NGCP::Panel::Utils::Navigation::check_form_buttons(
c => $c,
@ -72,6 +72,7 @@ sub create :Chained('list_reseller') :PathPart('create') :Args(0) {
$form->params->{contract_id} = delete $form->params->{contract}->{id};
delete $form->params->{contract};
$c->model('DB')->resultset('resellers')->create($form->params);
delete $c->session->{created_objects}->{contract};
$c->flash(messages => [{type => 'success', text => 'Reseller successfully created.'}]);
} catch($e) {
@ -178,14 +179,11 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) {
my $form = NGCP::Panel::Form::Reseller->new;
my $params = { $c->stash->{reseller}->first->get_inflated_columns };
$params->{contract}{id} = delete $params->{contract_id};
if($c->session->{created_object}) { # got a contract id from next step
$params = Hash::Merge->new('RIGHT_PRECEDENT')->merge($params, delete $c->session->{created_object});
}
$params = Hash::Merge->new('RIGHT_PRECEDENT')->merge($params, $c->session->{created_objects});
$form->process(
posted => $posted,
params => $c->request->params,
item => $params,
action => $c->request->uri,
);
NGCP::Panel::Utils::Navigation::check_form_buttons(
c => $c, form => $form, fields => [qw/contract.create/],
@ -197,8 +195,8 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) {
$form->params->{contract_id} = delete $form->params->{contract}{id};
delete $form->params->{contract};
$c->stash->{reseller}->first->update($form->params);
delete $c->session->{created_objects}->{contract};
$c->flash(messages => [{type => 'success', text => 'Reseller successfully changed.'}]);
delete $c->session->{contract_id};
} catch($e) {
$c->log->error($e);
$c->flash(messages => [{type => 'error', text => 'Updating reseller failed.'}]);

Loading…
Cancel
Save