From: Ivan Kohler Date: Fri, 15 Nov 2013 22:25:03 +0000 (-0800) Subject: fix detaching w/cust_main-require_phone, RT#25987 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=8fcb85e75b56d703cddc9569593c3468d6e49c7e fix detaching w/cust_main-require_phone, RT#25987 --- diff --git a/FS/FS/contact_phone.pm b/FS/FS/contact_phone.pm index 0eb216668..610753fc0 100644 --- a/FS/FS/contact_phone.pm +++ b/FS/FS/contact_phone.pm @@ -4,6 +4,7 @@ use base qw( FS::Record ); use strict; use FS::Record qw( qsearch qsearchs ); use FS::contact; +use FS::phone_type; =head1 NAME @@ -144,6 +145,16 @@ sub contact { qsearchs( 'contact', { 'contactnum' => $self->contactnum } ); } +sub phone_type { + my $self = shift; + qsearchs('phone_type', { 'phonetypenum' => $self->phonetypenum } ); +} + +sub typename { + my $self = shift; + $self->phone_type->typename; +} + =back =head1 BUGS diff --git a/httemplate/edit/cust_main/contact.html b/httemplate/edit/cust_main/contact.html index 4140ec1ea..c2ebb093c 100644 --- a/httemplate/edit/cust_main/contact.html +++ b/httemplate/edit/cust_main/contact.html @@ -94,30 +94,13 @@ <%def phones> - - <% mt('Phones') %> - - - - - - - - - - -
- <%$style%>> -
<% $daytime_label %> -
  - <%$style%>> -
<% $night_label %> -
  - <%$style%>> -
<% $mobile_label %> -
- - + <& /elements/tr-cust_main-phones.html, + 'prefix' => $pre, + 'cust_main' => $cust_main, + 'onchange' => $onchange, + 'disabled' => $disabled, + 'style' => $style, + &> <%def fax> @@ -136,9 +119,7 @@ my $r = qq!* !; <%shared> -my( %opt, $cust_main, $pre, $onchange, $disabled, @style, $style, - $daytime_label, $night_label, $mobile_label, - ); +my( %opt, $cust_main, $pre, $onchange, $disabled, @style, $style ); <%init> @@ -176,16 +157,6 @@ $opt{geocode} ||= $cust_main->get('geocode'); $opt{censustract} ||= $cust_main->censustract; -$daytime_label = FS::Msgcat::_gettext('daytime') =~ /^(daytime)?$/ - ? 'Day' - : FS::Msgcat::_gettext('daytime'); -$night_label = FS::Msgcat::_gettext('night') =~/^(night)?$/ - ? 'Night' - : FS::Msgcat::_gettext('night') || 'Night'; -$mobile_label = FS::Msgcat::_gettext('mobile') =~/^(mobile)?$/ - ? 'Mobile' - : FS::Msgcat::_gettext('mobile') || 'Mobile'; - my $stateid_label = FS::Msgcat::_gettext('stateid') =~ /^(stateid)?$/ ? 'Driver’s License' : FS::Msgcat::_gettext('stateid') || 'Driver’s License'; diff --git a/httemplate/elements/tr-cust_main-phones.html b/httemplate/elements/tr-cust_main-phones.html new file mode 100644 index 000000000..accf8ac64 --- /dev/null +++ b/httemplate/elements/tr-cust_main-phones.html @@ -0,0 +1,45 @@ + + <% mt('Phones') %> + + + + + + + + + + +
+ <%$style%>> +
<% $daytime_label %> +
  + <%$style%>> +
<% $night_label %> +
  + <%$style%>> +
<% $mobile_label %> +
+ + +<%init> + +my $daytime_label = FS::Msgcat::_gettext('daytime') =~ /^(daytime)?$/ + ? 'Day' + : FS::Msgcat::_gettext('daytime'); +my $night_label = FS::Msgcat::_gettext('night') =~/^(night)?$/ + ? 'Night' + : FS::Msgcat::_gettext('night') || 'Night'; +my $mobile_label = FS::Msgcat::_gettext('mobile') =~/^(mobile)?$/ + ? 'Mobile' + : FS::Msgcat::_gettext('mobile') || 'Mobile'; + +my %opt = @_; + +my $pre = $opt{'prefix'}; +my $cust_main = $opt{'cust_main'}; +my $onchange = $opt{'onchange'}; +my $disabled = $opt{'disabled'}; +my $style = $opt{'style'}; + + diff --git a/httemplate/misc/detach_pkg.html b/httemplate/misc/detach_pkg.html index 64b3e6e3f..366bbac3f 100755 --- a/httemplate/misc/detach_pkg.html +++ b/httemplate/misc/detach_pkg.html @@ -50,9 +50,26 @@ +% if ( $conf->config_bool('cust_main-require_phone') ) { +% #XXX should be sticky on errors +% my $ph_cust_main = FS::cust_main->new({}); +% foreach my $contact_phone ( $cust_contact->contact_phone ) { +% my $t = $contact_phone->typename; +% #countrycodes? interface doesn't parse/take em yet +% $ph_cust_main->daytime( $contact_phone->phonenum ) if $t eq 'Work'; +% $ph_cust_main->night( $contact_phone->phonenum ) if $t eq 'Home'; +% $ph_cust_main->mobile( $contact_phone->phonenum ) if $t eq 'Mobile'; +% $ph_cust_main->fax( $contact_phone->phonenum ) if $t eq 'Fax'; +% } + + <& /elements/tr-cust_main-phones.html, + 'cust_main' => $ph_cust_main, + &> +% } + -%#XXX payment info +%#payment info %#XXX should be sticky on errors... <& /edit/cust_main/billing.html, FS::cust_main->new({}), invoicing_list => [],