fix error editing customers w/contacts -- contacts can be shared among customers...
[freeside.git] / httemplate / edit / cust_main / contacts_new.html
1 <DIV ID="contacts_div" STYLE="display:<% $display %>">
2 <BR>
3 <FONT CLASS="fsinnerbox-title">Contacts</FONT>
4 <% include('/edit/elements/edit.html',
5      'embed'           => $opt{cust_main},
6      'table'           => 'cust_main',
7      'labels'          => { 'contactnum'  => 'Contact',
8                             #'locationnum' => '&nbsp;',
9                           },
10      'fields'          => [
11        { 'field'             => 'contactnum',
12          'type'              => 'contact',
13          'colspan'           => 6,
14          'custnum'           => $opt{cust_main}->custnum,
15          'm2m_method'        => 'cust_contact',
16          'm2m_dstcol'        => 'contactnum',   
17          'm2_label'          => 'Contact',
18          'm2_error_callback' => $m2_error_callback,
19        },
20      ],
21      'agent_virt'      => 1,
22     )
23 %>
24 </DIV>
25 <%init>
26
27 my %opt = @_;
28
29 my $display = ($opt{'cust_main'}->residential_commercial eq 'Commercial')
30                 ? ''
31                 : 'none';
32
33 my $curuser = $FS::CurrentUser::CurrentUser;
34 my $conf = new FS::Conf;
35
36 my $m2_error_callback = sub {
37   my($cgi, $object) = @_;
38
39   #process_o2m fields in process/cust_main-contacts.html
40   my $fields = FS::contact->cgi_contact_fields;
41   my @gfields = ( '', map "_$_", @$fields );
42
43   map {
44         if ( /^contactnum(\d+)$/ ) {
45           my $num = $1;
46           if ( grep $cgi->param("contactnum$num$_"), @gfields ) {
47             my $x = new FS::contact {
48               'contactnum' => scalar($cgi->param("contactnum$num")),
49               map { $_ => scalar($cgi->param("contactnum${num}_$_")) } @$fields,
50             };
51             $x;
52           } else {
53             ();
54           }
55         } else {
56           ();
57         }
58       }
59       $cgi->param;
60 };
61
62 </%init>