Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / edit / cust_main / cust_payby.html
1 <% include('/edit/elements/edit.html',
2      'embed'            => $opt{cust_main},
3      'tablenum'         => 1,
4      'table'            => 'cust_main',
5      'agent_virt'       => 1,
6      'html_table_class' => 'fsinnerbox',
7      'labels'           => { 'custpaybynum'  => '',
8                              #'locationnum' => '&nbsp;',
9                            },
10      'fields'           => [
11        { 'field'             => 'custpaybynum',
12          'type'              => 'cust_payby',
13          'colspan'           => 6,
14          #'custnum'           => $opt{cust_main}->custnum,
15          'm2m_method'        => 'cust_payby',
16          'm2m_dstcol'        => 'custpaybynum',   
17          'm2_label'          => ' ',
18          'm2_error_callback' => $m2_error_callback,
19        },
20      ],
21     )
22 %>
23 </DIV>
24 <%init>
25
26 my %opt = @_;
27
28 my $m2_error_callback = sub {
29   my($cgi, $object) = @_;
30
31   #process_o2m fields in process/cust_main-cust_payby.html
32   my $fields = FS::cust_payby->cgi_cust_payby_fields;
33   my @gfields = ( '', map "_$_", grep $_ !~ /^(payby|paydate_)/, @$fields );
34
35   map {
36         if ( /^custpaybynum(\d+)$/ ) {
37           my $num = $1;
38           if ( grep $cgi->param("custpaybynum$num$_"), @gfields ) {
39             my %hash = (
40               'custpaybynum' => scalar($cgi->param("custpaybynum$num")),
41               map { $_ => scalar($cgi->param("custpaybynum${num}_$_")) }
42                 @$fields,
43             );
44             FS::cust_payby::cgi_hash_callback( \%hash );
45             FS::cust_payby->new( \%hash );
46           } else {
47             ();
48           }
49         } else {
50           ();
51         }
52       }
53       $cgi->param;
54 };
55
56 </%init>
57