X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_pkg.cgi;h=1702a6dc7d2fd62cc9efac7c06dc6ad5a03ac860;hb=d9edf24e9d3e1fd87a23359a7679ef6d6637c00d;hp=f4ebd6770bf4436f3962c5b65c6836bde2b7610b;hpb=46477667466732de54a034fae994e71f9ca62b50;p=freeside.git diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index f4ebd6770..1702a6dc7 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -1,464 +1,1221 @@ - -<% +<& elements/edit.html, + 'post_url' => popurl(1).'process/part_pkg.cgi', + 'name' => "Package definition", + 'table' => 'part_pkg', -if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) { - $cgi->param('clone', $1); -} else { - $cgi->param('clone', ''); -} -if ( $cgi->param('pkgnum') && $cgi->param('pkgnum') =~ /^(\d+)$/ ) { - $cgi->param('pkgnum', $1); -} else { - $cgi->param('pkgnum', ''); -} + 'agent_virt' => 1, + 'agent_null_right' => $edit_global, + 'agent_clone_extra_sql' => $agent_clone_extra_sql, + #'viewall_dir' => 'browse', + 'viewall_url' => $p.'browse/part_pkg.cgi', + 'html_init' => include('/elements/init_overlib.html'). + $javascript, + 'html_bottom' => $html_bottom, + 'body_etc' => + 'onLoad="agent_changed(document.edit_topform.agentnum); + aux_planchanged(document.edit_topform.plan); + hide_supp_pkgs()"', -my ($query) = $cgi->keywords; -my $action = ''; -my $part_pkg = ''; -if ( $cgi->param('error') ) { - $part_pkg = new FS::part_pkg ( { - map { $_, scalar($cgi->param($_)) } fields('part_pkg') - } ); -} -if ( $cgi->param('clone') ) { - $action='Custom Pricing'; - my $old_part_pkg = - qsearchs('part_pkg', { 'pkgpart' => $cgi->param('clone') } ); - $part_pkg ||= $old_part_pkg->clone; - $part_pkg->disabled('Y'); -} elsif ( $query && $query =~ /^(\d+)$/ ) { - $part_pkg ||= qsearchs('part_pkg',{'pkgpart'=>$1}); -} else { - $part_pkg ||= new FS::part_pkg {}; - $part_pkg->plan('flat'); -} -unless ( $part_pkg->plan ) { #backwards-compat - $part_pkg->plan('flat'); - $part_pkg->plandata("setup_fee=". $part_pkg->setup. "\n". - "recur_fee=". $part_pkg->recur. "\n"); -} -$action ||= $part_pkg->pkgpart ? 'Edit' : 'Add'; -my $hashref = $part_pkg->hashref; + 'begin_callback' => $begin_callback, + 'end_callback' => $end_callback, + 'new_hashref_callback' => $new_hashref_callback, + 'new_object_callback' => $new_object_callback, + 'new_callback' => $new_callback, + 'clone_callback' => $clone_callback, + 'edit_callback' => $edit_callback, + 'error_callback' => $error_callback, + 'field_callback' => $field_callback, -%> + 'onsubmit' => 'confirm_submit', - + 'labels' => { + 'pkgpart' => 'Package Definition', + 'pkg' => 'Package', + %locale_field_labels, + 'comment' => 'Comment (customer-hidden)', + 'classnum' => 'Package class', + 'addon_classnum' => 'Restrict additional orders to package class', + 'promo_code' => 'Promotional code', + 'freq' => 'Recurring fee frequency', + 'setuptax' => 'Setup fee tax exempt', + 'recurtax' => 'Recurring fee tax exempt', + 'taxclass' => 'Tax class', + 'taxproduct_select'=> 'Tax products', + 'plan' => 'Price plan', + 'disabled' => 'Disable new orders', + 'disable_line_item_date_ranges' => 'Disable line item date ranges', + 'start_on_hold' => 'Start on hold', + 'setup_cost' => 'Setup cost', + 'recur_cost' => 'Recur cost', + 'pay_weight' => 'Payment weight', + 'credit_weight' => 'Credit weight', + 'agent_pkgpartid' => 'External ID', + 'agentnum' => 'Agent', + 'agent_type' => ' ', #just its title headingn is fine + 'setup_fee' => 'Setup fee', + 'setup_show_zero' => 'Show zero setup', + 'recur_fee' => 'Recurring fee', + 'recur_show_zero' => 'Show zero recurring', + ( map { ( "setup_fee_$_" => "Setup fee $_", + "recur_fee_$_" => "Recurring fee $_", + ); + } + $conf->config('currencies') + ), + 'usagepricepart' => ' ', + 'discountnum' => 'Offer discounts for longer terms', + 'bill_dst_pkgpart' => 'Include line item(s) from package', + 'svc_dst_pkgpart' => 'Include services of package', + 'supp_dst_pkgpart' => 'When ordering package, also order', + 'report_option' => 'Report classes', + 'fcc_ds0s' => 'Voice-grade equivalents', + 'fcc_voip_class' => 'Category', + 'delay_start' => 'Default delay (days)', + }, -<% + 'fields' => [ + { field=>'clone', type=>'hidden', + curr_value_callback => + sub { shift->param('clone') }, + }, + { field=>'pkgnum', type=>'hidden', + curr_value_callback => + sub { shift->param('pkgnum') }, + }, -print header("$action Package Definition", menubar( - 'Main Menu' => popurl(2), - 'View all packages' => popurl(2). 'browse/part_pkg.cgi', -), ' onLoad="visualize()"'); + { field=>'custom', type=>'hidden' }, + { field=>'family_pkgpart', type=>'hidden' }, + { field=>'successor', type=>'hidden' }, -print qq!Error: !, $cgi->param('error'), - "" - if $cgi->param('error'); + { type => 'columnstart' }, + + { field => 'pkg', + type => 'text', + size => 40, #32 + maxlength => 50, + }, + #@locale_fields, + {field=>'comment', type=>'text', size=>40 }, #32 + { field => 'agentnum', + type => 'select-agent', + disable_empty => ! $acl_edit_global, + empty_label => '(global)', + onchange => 'agent_changed', + }, + {field=>'classnum', type=>'select-pkg_class' }, + ( $conf->exists('pkg-addon_classnum') + ? ( { field=>'addon_classnum', + type =>'select-pkg_class', + } + ) + : () + ), + {field=>'disabled', type=>$disabled_type, value=>'Y'}, + {field=>'disable_line_item_date_ranges', type=>$disabled_type, value=>'Y'}, + { field => 'start_on_hold', + type => 'checkbox', + value => 'Y' + }, -#print '
- - - -<% my %plandata = map { /^(\w+)=(.*)$/; ( $1 => $2 ); } - split("\n", $part_pkg->plandata ); - #foreach my $layer ( 'konq_kludge', keys %plans ) { - foreach my $layer ( 'konq_kludge', keys %plans ) { - my $visibility = "hidden"; -%> - - -