'error_redirect' => popurl(3). 'edit/cust_main-contacts.html?',
'agent_virt' => 1,
'skip_process' => 1, #we don't want to make any changes to cust_main
+ 'precheck_callback' => $precheck_callback,
'process_o2m' => {
'table' => 'contact',
- 'fields' => \@contact_fields,
+ 'fields' => FS::contact->cgi_contact_fields,
},
'redirect' => popurl(3). 'view/cust_main.cgi?',
)
%>
<%init>
-
-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;
-}
-
+my $precheck_callback = sub {
+ my $cgi = shift;
+ my $conf = FS::Conf->new;
+ if ( $conf->exists('cust_main-require_invoicing_list_email') ) {
+ my $has_email = 0;
+ foreach my $prefix (grep /^contactnum\d+$/, $cgi->param) {
+ if ( length($cgi->param($prefix . '_emailaddress'))
+ and $cgi->param($prefix . '_invoice_dest') ) {
+ $has_email = 1;
+ last;
+ }
+ }
+ return "At least one contact must receive email invoices"
+ unless $has_email;
+ }
+ '';
+};
</%init>