From: Ivan Kohler Date: Sat, 24 Mar 2012 22:40:03 +0000 (-0700) Subject: enhance contacts: contact classes, RT#16819 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=ed4369640adc2e7c468ca384010729e8ec1f9074 enhance contacts: contact classes, RT#16819 --- diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 67b682360..ab853e6ce 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -981,6 +981,7 @@ sub tables_hashref { 'prospectnum', 'int', 'NULL', '', '', '', 'custnum', 'int', 'NULL', '', '', '', 'locationnum', 'int', 'NULL', '', '', '', #not yet + 'classnum', 'int', 'NULL', '', '', '', # 'titlenum', 'int', 'NULL', '', '', '', #eg Mr. Mrs. Dr. Rev. 'last', 'varchar', '', $char_d, '', '', # 'middle', 'varchar', 'NULL', $char_d, '', '', diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm index 0b50dcc98..f84af425b 100644 --- a/FS/FS/contact.pm +++ b/FS/FS/contact.pm @@ -5,6 +5,7 @@ use base qw( FS::Record ); use FS::Record qw( qsearch qsearchs dbh ); use FS::prospect_main; use FS::cust_main; +use FS::contact_class; use FS::cust_location; use FS::contact_phone; use FS::contact_email; @@ -322,8 +323,9 @@ sub check { my $error = $self->ut_numbern('contactnum') || $self->ut_foreign_keyn('prospectnum', 'prospect_main', 'prospectnum') - || $self->ut_foreign_keyn('custnum', 'cust_main', 'custnum') + || $self->ut_foreign_keyn('custnum', 'cust_main', 'custnum') || $self->ut_foreign_keyn('locationnum', 'cust_location', 'locationnum') + || $self->ut_foreign_keyn('classnum', 'contact_class', 'classnum') || $self->ut_textn('last') || $self->ut_textn('first') || $self->ut_textn('title') @@ -357,6 +359,18 @@ sub cust_location { qsearchs('cust_location', { 'locationnum' => $self->locationnum } ); } +sub contact_class { + my $self = shift; + return '' unless $self->classnum; + qsearchs('contact_class', { 'classnum' => $self->classnum } ); +} + +sub contact_classname { + my $self = shift; + my $contact_class = $self->contact_class or return ''; + $contact_class->classname; +} + sub contact_phone { my $self = shift; qsearch('contact_phone', { 'contactnum' => $self->contactnum } ); diff --git a/httemplate/browse/contact_class.html b/httemplate/browse/contact_class.html index 88df24b40..58215a090 100644 --- a/httemplate/browse/contact_class.html +++ b/httemplate/browse/contact_class.html @@ -1,7 +1,7 @@ <% include( 'elements/browse.html', - 'title' => 'Contact classes', + 'title' => 'Contact types', 'html_init' => $html_init, - 'name' => 'contact classes', + 'name' => 'contact types', 'disableable' => 1, 'disabled_statuspos' => 1, 'query' => { 'table' => 'contact_class', @@ -21,7 +21,7 @@ die "access denied" my $html_init = 'Contact classes define types for contacts.

'. - qq!Add a contact class

!; + qq!Add a contact type

!; my $count_query = 'SELECT COUNT(*) FROM contact_class'; diff --git a/httemplate/edit/contact_class.html b/httemplate/edit/contact_class.html index 2e0965dab..1ab52e5d6 100644 --- a/httemplate/edit/contact_class.html +++ b/httemplate/edit/contact_class.html @@ -1,6 +1,10 @@ <% include( 'elements/class_Common.html', - 'name' => 'Contact Class', + 'name' => 'Contact Type', 'table' => 'contact_class', 'nocat' => 1, + 'addl_labels' => { 'classnum' => 'Type number', + 'classname' => 'Type name', + 'disabled' => 'Disable type', + }, ) %> diff --git a/httemplate/edit/process/prospect_main.html b/httemplate/edit/process/prospect_main.html index 49481d44f..7c8cc276e 100644 --- a/httemplate/edit/process/prospect_main.html +++ b/httemplate/edit/process/prospect_main.html @@ -34,7 +34,7 @@ my $args_callback = sub { }; -my @contact_fields = qw( first last title comment emailaddress ); +my @contact_fields = qw( classnum first last title comment emailaddress ); foreach my $phone_type ( qsearch({table=>'phone_type', order_by=>'weight'}) ) { push @contact_fields, 'phonetypenum'.$phone_type->phonetypenum; } diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index f096dd889..3b0969f5c 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -492,7 +492,7 @@ tie my %config_cust, 'Tie::IxHash', 'Customer classes' => [ $fsurl.'browse/cust_class.html', 'Customer classes define groups of customers for reporting.' ], 'Customer categories' => [ $fsurl.'browse/cust_category.html', 'Customer categories define groups of customer classes.' ], 'separator' => '', #its a separator! - 'Contact classes' => [ $fsurl.'browse/contact_class.html', 'Contact classes define types for contacts.' ], + 'Contact types' => [ $fsurl.'browse/contact_class.html', ''], #XXX useful description ; $config_cust{'Note classes'} = [ $fsurl.'browse/cust_note_class.html', 'Note classes define groups of customer notes for reporting.' ] diff --git a/httemplate/view/prospect_main.html b/httemplate/view/prospect_main.html index 1c8195672..9e85348af 100644 --- a/httemplate/view/prospect_main.html +++ b/httemplate/view/prospect_main.html @@ -32,7 +32,7 @@ % foreach my $contact ( $prospect_main->contact ) { - Contact + <% $contact->contact_classname %> Contact <% $contact->line %> %}