1 <% include('elements/edit.html',
2 'name_singular' => 'rule',
4 'labels' => { 'rulenum' => 'Rule',
6 'comment' => 'Comment',
7 'priority' => 'Priority',
8 'ruleconditionnum' => 'Condition',
9 'ruleactionnum' => 'Action',
13 { 'field' => 'priority',
15 'options' => [ 0 .. 10 ],
16 'labels' => { 0 => 'Inactive' },
18 { 'field' => 'svcnum', 'type' => 'hidden', },
19 { 'type' => 'tablebreak-tr-title',
20 'value' => 'Conditions',
22 { 'field' => 'ruleconditionnum',
23 'type' => 'select-cgp_rule_condition',
24 'o2m_table' => 'cgp_rule_condition',
25 'm2_label' => 'Condition',
26 'm2_error_callback' => $m2_error_callback_cond,
28 { 'type' => 'tablebreak-tr-title',
31 { 'field' => 'ruleactionnum',
32 'type' => 'select-cgp_rule_action',
33 'o2m_table' => 'cgp_rule_action',
34 'm2_label' => 'Action',
35 'm2_error_callback' => $m2_error_callback_action,
38 'new_callback' => sub { my( $cgi, $cgp_rule ) = @_;
39 $cgp_rule->svcnum( $cgi->param('svcnum') );
41 #'viewall_url' => $viewall_url,
49 #my $viewall_url = $p. "browse/$table.html?svcnum=$svcnum";
51 my $m2_error_callback_cond = sub {
52 my($cgi, $object) = @_;
54 my @fields = qw( conditionname op params );
55 my @gfields = ( '', map "_$_", @fields );
58 if ( /^ruleconditionnum(\d+)$/ ) {
60 if ( grep $cgi->param("ruleconditionnum$num$_"), @gfields ) {
61 my $x = new FS::cgp_rule_condition {
62 'ruleconditionnum' => scalar($cgi->param("ruleconditionnum$num")),
63 map { $_ => scalar($cgi->param("ruleconditionnum${num}_$_")) } @fields,
76 my $m2_error_callback_action = sub {
77 my($cgi, $object) = @_;
79 my @fields = qw( action params );
80 my @gfields = ( '', map "_$_", @fields );
83 if ( /^ruleactionnum(\d+)$/ ) {
85 if ( grep $cgi->param("ruleactionnum$num$_"), @gfields ) {
86 my $x = new FS::cgp_rule_action {
87 'ruleactionnum' => scalar($cgi->param("ruleactionnum$num")),
88 map { $_ => scalar($cgi->param("ruleactionnum${num}_$_")) } @fields,