Fix contract creation and subscriber lock handling

Properly create contact on-the-go.
Set lock preferences of subscribers only if >0.
agranig/1_0_subfix
Andreas Granig 13 years ago
parent 6d38442876
commit d2db386252

@ -175,16 +175,13 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) {
my $contract = $c->stash->{contract_result};
my $billing_mapping = $contract->billing_mappings->find($contract->get_column('bmid'));
my $params = {};
$params = $params->merge($c->session->{created_objects});
unless($posted) {
$params->{billing_profile}{id} = $billing_mapping->billing_profile->id;
$params->{contact}{id} = $contract->contact_id;
$params->{external_id} = $contract->external_id;
$params->{status} = $contract->status;
}
# TODO: handle created contact/bilprof
$params = $params->merge($c->session->{created_objects});
my $form = NGCP::Panel::Form::Contract->new;
$form->process(
posted => $posted,
@ -193,7 +190,7 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) {
);
NGCP::Panel::Utils::Navigation::check_form_buttons(
c => $c, form => $form,
fields => {'contract.contact.create' => $c->uri_for('/contact/create'),
fields => {'contact.create' => $c->uri_for('/contact/create'),
'billing_profile.create' => $c->uri_for('/billing/create')},
back_uri => $c->req->uri,
);

@ -60,7 +60,7 @@ sub base :Chained('list_customer') :PathPart('') :CaptureArgs(1) {
}
my $contract = $c->model('DB')->resultset('contracts')
->search_rs(id => $contract_id);
->search('me.id' => $contract_id);
unless($c->user->is_superuser) {
$contract = $contract->search({
'contact.reseller_id' => $c->user->reseller_id,

@ -1609,9 +1609,13 @@ sub edit_master :Chained('master') :PathPart('edit') :Args(0) {
}
if($lock->first) {
$lock->first->update({ value => $form->field('lock')->value });
} else {
$lock->create({ value => $form->field('lock')->value });
if ($form->values->{lock} == 0) {
$lock->delete;
} else {
$lock->first->update({ value => $form->values->{lock} });
}
} elsif($form->values->{lock} > 0) {
$lock->create({ value => $form->values->{lock} });
}
});
$c->flash(messages => [{type => 'success', text => 'Successfully updated subscriber'}]);

@ -14,20 +14,55 @@
<span>
<a class="btn btn-primary btn-large" href="[% c.uri_for('/back') %]"><i class="icon-arrow-left"></i> Back</a>
</span>
[% UNLESS c.user.read_only -%]
<span>
<a class="btn btn-primary btn-large" href="[% c.uri_for_action('/contract/edit', [ contract.id ]) %]"><i class="icon-edit"></i> Edit</a>
</span>
[% END -%]
</div>
[% back_created = 1 -%]
[% IF messages -%]
<div class="row">
[% FOREACH m IN messages -%]
<div class="alert alert-[% m.type %]">[% m.text %]</div>
[% END -%]
[% IF contract.status != "active" -%]
<div class="alert">Customer is <b>[% contract.status %]</b></div>
[% END -%]
</div>
[% END -%]
<div class="ngcp-separator"></div>
<div class="accordion" id="customer_details">
[% IF c.user.is_superuser -%]
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#customer_details" href="#collapse_reseller">Reseller</a>
</div>
<div class="accordion-body collapse" id="collapse_reseller">
<div class="accordion-inner">
<table class="table table-bordered table-striped table-highlight table-hover">
<thead>
<th>Name</th>
<th>Value</th>
</thead>
<tbody>
<tr>
<td>#</td>
<td>[% contract.contact.reseller.id %]</td>
</tr>
<tr>
<td>Name</td>
<td>[% contract.contact.reseller.name %]</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
[% END -%]
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#customer_details" href="#collapse_contact">Contact Details</a>
@ -89,12 +124,11 @@
</thead>
<tbody>
[% FOR mapping IN contract.billing_mappings.all -%]
[% bprof = mapping.billing_profile -%]
<tr class="sw_action_row">
<td>
[% bprof.start_date ? bprof.start_date : 'NULL' %] - [% bprof.end_date ? bprof.end_date : 'NULL' %]
[% mapping.start_date ? mapping.start_date : 'NULL' %] - [% mapping.end_date.defined ? mapping.end_date : 'NULL' %]
</td>
<td>[% bprof.name %]</td>
<td>[% mapping.billing_profile.name %]</td>
</tr>
[% END -%]
</tbody>

@ -9,10 +9,15 @@
<div class="ngcp-separator"></div>
[% FOREACH m IN messages -%]
<div class="alert alert-[% m.type %]">[% m.text %]</div>
[% END -%]
<div class="row">
[% FOREACH m IN messages -%]
<div class="alert alert-[% m.type %]">[% m.text %]</div>
[% END -%]
[% IF reseller.first.status != "active" -%]
<div class="alert">Reseller is <b>[% reseller.first.status %]</b></div>
[% END -%]
[% messages = [] -%]
</div>
<div class="accordion" id="reseller_details">

@ -9,13 +9,14 @@
</div>
[% back_created = 1 -%]
[% IF messages -%]
<div class="row">
[% FOREACH m IN messages -%]
<div class="alert alert-[% m.type %]">[% m.text %]</div>
[% END -%]
[% IF subscriber.status != "active" -%]
<div class="alert">Subscriber is <b>[% subscriber.status %]</b></div>
[% END -%]
</div>
[% END -%]
<div class="ngcp-separator"></div>
@ -44,6 +45,7 @@
</tr>
[%
elements = [
{ value = subscriber.status, desc = 'Status'},
{ value = subscriber.provisioning_voip_subscriber.webusername, desc = 'CSC Username'},
{ value = subscriber.provisioning_voip_subscriber.webpassword, desc = 'CSC Password'},
{ value = subscriber.username _ '@' _ subscriber.domain.domain, desc = 'SIP URI'},

Loading…
Cancel
Save