add part_referral external ID for API signups, #39776
authorMark Wells <mark@freeside.biz>
Wed, 13 Apr 2016 20:18:41 +0000 (13:18 -0700)
committerMark Wells <mark@freeside.biz>
Wed, 13 Apr 2016 22:07:50 +0000 (15:07 -0700)
FS/FS/Schema.pm
FS/FS/part_referral.pm
httemplate/edit/part_referral.html

index 82cf680..d94f963 100644 (file)
@@ -3591,10 +3591,11 @@ sub tables_hashref {
         'refnum',   'serial',     '',        '', '', '', 
         'referral', 'varchar',    '',   $char_d, '', '', 
         'disabled', 'char',   'NULL',         1, '', '', 
-        'agentnum', 'int',    'NULL',        '', '', '', 
+        'agentnum', 'int',    'NULL',        '', '', '',
+        'title',   'varchar', 'NULL',   $char_d, '', '', 
       ],
       'primary_key'  => 'refnum',
-      'unique'       => [],
+      'unique'       => [ ['agentnum', 'title'] ],
       'index'        => [ ['disabled'], ['agentnum'], ],
       'foreign_keys' => [
                           { columns    => [ 'agentnum' ],
index e4a5823..2df8a75 100644 (file)
@@ -44,6 +44,9 @@ The following fields are currently supported:
 
 =item agentnum - Optional agentnum (see L<FS::agent>)
 
+=item title - an optional external string that identifies this
+referral source, such as an advertising campaign code.
+
 =back
 
 =head1 NOTE
@@ -101,6 +104,7 @@ sub check {
     || $self->ut_text('referral')
     || $self->ut_enum('disabled', [ '', 'Y' ] )
     #|| $self->ut_foreign_keyn('agentnum', 'agent', 'agentnum')
+    || $self->ut_textn('title')
     || ( $setup_hack
            ? $self->ut_foreign_keyn('agentnum', 'agent', 'agentnum' )
            : $self->ut_agentnum_acl('agentnum', 'Edit global advertising sources')
index e9fd794..04287d6 100755 (executable)
@@ -3,11 +3,13 @@
                 'table'       => 'part_referral',
                 'fields'      => [ 'referral',
                                    { field=>'agentnum', type=>'select-agent', },
+                                   'title',
                                    { field=>'disabled', type=>'checkbox', value=>'Y'  } ,
                                  ],
                 'labels'      => { 'refnum'   => 'Ad Source',
                                    'referral' => 'Advertising source',
                                    'agentnum' => 'Agent',
+                                   'title'    => 'External ID',
                                    'disabled' => 'Disabled',
                                  },
                 'viewall_dir' => 'browse',