projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
simple protection against selecting and using package add-ons that point to the same...
[freeside.git]
/
httemplate
/
edit
/
part_pkg.cgi
diff --git
a/httemplate/edit/part_pkg.cgi
b/httemplate/edit/part_pkg.cgi
index
f9818c4
..
883630f
100755
(executable)
--- a/
httemplate/edit/part_pkg.cgi
+++ b/
httemplate/edit/part_pkg.cgi
@@
-47,6
+47,7
@@
'bill_dst_pkgpart' => 'Include line item(s) from package',
'svc_dst_pkgpart' => 'Include services of package',
'report_option' => 'Report classes',
'bill_dst_pkgpart' => 'Include line item(s) from package',
'svc_dst_pkgpart' => 'Include services of package',
'report_option' => 'Report classes',
+ 'fcc_ds0s' => 'Voice-grade eqivalents',
},
'fields' => [
},
'fields' => [
@@
-159,6
+160,16
@@
{ field=>'pay_weight', type=>'text', size=>6 },
{ field=>'credit_weight', type=>'text', size=>6 },
{ field=>'pay_weight', type=>'text', size=>6 },
{ field=>'credit_weight', type=>'text', size=>6 },
+ ( $conf->exists('cust_pkg-show_fcc_voice_grade_equivalent')
+ ? (
+ { type => 'tablebreak-tr-title',
+ value => 'FCC Form 477 information',
+ },
+ { field=>'fcc_ds0s', type=>'text', size=>6 },
+ )
+ : ()
+ ),
+
{ type => 'columnend' },
{ type => 'columnend' },
@@
-183,6
+194,10
@@
},
{ 'field' => 'bill_dst_pkgpart',
'type' => 'select-part_pkg',
},
{ 'field' => 'bill_dst_pkgpart',
'type' => 'select-part_pkg',
+ 'extra_sql' => sub { $pkgpart
+ ? "AND pkgpart != $pkgpart"
+ : ''
+ },
'm2_label' => 'Include line item(s) from package',
'm2m_method' => 'bill_part_pkg_link',
'm2m_dstcol' => 'dst_pkgpart',
'm2_label' => 'Include line item(s) from package',
'm2m_method' => 'bill_part_pkg_link',
'm2m_dstcol' => 'dst_pkgpart',
@@
-205,6
+220,10
@@
{ 'field' => 'svc_dst_pkgpart',
'label' => 'Also include services from package: ',
'type' => 'select-part_pkg',
{ 'field' => 'svc_dst_pkgpart',
'label' => 'Also include services from package: ',
'type' => 'select-part_pkg',
+ 'extra_sql' => sub { $pkgpart
+ ? "AND pkgpart != $pkgpart"
+ : ''
+ },
'm2_label' => 'Include services of package: ',
'm2m_method' => 'svc_part_pkg_link',
'm2m_dstcol' => 'dst_pkgpart',
'm2_label' => 'Include services of package: ',
'm2m_method' => 'svc_part_pkg_link',
'm2m_dstcol' => 'dst_pkgpart',
@@
-281,6
+300,8
@@
my @taxproductnums = ( qw( setup recur ), sort (keys %taxproductnums) );
my %options = ();
my $recur_disabled = 1;
my %options = ();
my $recur_disabled = 1;
+my $pkgpart = '';
+
my $error_callback = sub {
my($cgi, $object, $fields, $opt ) = @_;
my $error_callback = sub {
my($cgi, $object, $fields, $opt ) = @_;
@@
-314,6
+335,8
@@
my $error_callback = sub {
$object->set($_ => scalar($cgi->param($_)) )
foreach (qw( setup_fee recur_fee ));
$object->set($_ => scalar($cgi->param($_)) )
foreach (qw( setup_fee recur_fee ));
+ $pkgpart = $object->pkgpart;
+
};
my $new_hashref_callback = sub { { 'plan' => 'flat' }; };
};
my $new_hashref_callback = sub { { 'plan' => 'flat' }; };
@@
-363,6
+386,8
@@
my $edit_callback = sub {
$object->set($_ => $object->option($_))
foreach (qw( setup_fee recur_fee ));
$object->set($_ => $object->option($_))
foreach (qw( setup_fee recur_fee ));
+ $pkgpart = $object->pkgpart;
+
};
my $new_callback = sub {
};
my $new_callback = sub {
@@
-506,6
+531,12
@@
my $html_bottom = sub {
: keys %{ $href };
foreach my $field ( grep $_ !~ /^(setup|recur)_fee$/, @fields ) {
: keys %{ $href };
foreach my $field ( grep $_ !~ /^(setup|recur)_fee$/, @fields ) {
+
+ if(!exists($href->{$field})) {
+ # shouldn't happen
+ warn "nonexistent part_pkg option: '$field'\n";
+ next;
+ }
$html .= '<TR><TD ALIGN="right">'. $href->{$field}{'name'}. '</TD><TD>';
$html .= '<TR><TD ALIGN="right">'. $href->{$field}{'name'}. '</TD><TD>';