X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=httemplate%2Fedit%2Fpart_pkg.cgi;h=7c6115423bbd512f6eb5c97dd96d982ff6e870dc;hb=d6dbf288fd8ea42ebd5171d80817356248cf22ce;hp=bead1410ab21f941798bb66a589c8e4e9e3479fb;hpb=c828daa905491e65deb30a2ed34af609cdb96b99;p=freeside.git
diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi
index bead1410a..7c6115423 100755
--- a/httemplate/edit/part_pkg.cgi
+++ b/httemplate/edit/part_pkg.cgi
@@ -1,465 +1,412 @@
-
-
-<%
-
-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', '');
-}
-
-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;
-
-%>
-
-
-
-<%
-
-print header("$action Package Definition", menubar(
+%
+%
+%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', '');
+%}
+%
+%my ($query) = $cgi->keywords;
+%
+%my $part_pkg = '';
+%my @agent_type = ();
+%if ( $cgi->param('error') ) {
+% $part_pkg = new FS::part_pkg ( {
+% map { $_, scalar($cgi->param($_)) } fields('part_pkg')
+% } );
+% (@agent_type) = $cgi->param('agent_type');
+%}
+%
+%my $action = '';
+%my $clone_part_pkg = '';
+%my $pkgpart = '';
+%if ( $cgi->param('clone') ) {
+% $pkgpart = $cgi->param('clone');
+% $action = 'Custom Pricing';
+% $clone_part_pkg= qsearchs('part_pkg', { 'pkgpart' => $cgi->param('clone') } );
+% $part_pkg ||= $clone_part_pkg->clone;
+% $part_pkg->disabled('Y'); #isn't sticky on errors
+%} elsif ( $query && $query =~ /^(\d+)$/ ) {
+% (@agent_type) = map {$_->typenum} qsearch('type_pkgs',{'pkgpart'=>$1})
+% unless $part_pkg;
+% $part_pkg ||= qsearchs('part_pkg',{'pkgpart'=>$1});
+% $pkgpart = $part_pkg->pkgpart;
+%} else {
+% unless ( $part_pkg ) {
+% $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;
+%
+%
+
+
+<% include("/elements/header.html","$action Package Definition", menubar(
'Main Menu' => popurl(2),
'View all packages' => popurl(2). 'browse/part_pkg.cgi',
-), ' onLoad="visualize()"');
-
-print qq!Error: !, $cgi->param('error'),
- ""
- if $cgi->param('error');
-
-#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";
-%>
-
-
-
-
-
-
-<% } %>
-
-
+
+
+% if ( $cgi->param('clone') || $conf->exists('agent_defaultpkg') ) {
+
+
+
+% } else {
+
+ Reseller information
+ <% ntable("#cccccc", 2) %>
+ |
+ <% 'Agent Types' %> |
+
+ <% include( '/elements/select-table.html',
+ 'element_name' => 'agent_type',
+ 'table' => 'agent_type',
+ 'name_col' => 'atype',
+ 'value' => \@agent_type,
+ 'empty_label' => 'select agent types',
+ 'element_etc' => 'multiple size="10"',
+ )
+ %>
+ |
+
+
+
+% }
+
+
+
+%
+%my $thead = "\n\n". ntable('#cccccc', 2).
+% 'Quan. | ';
+%$thead .= 'Primary | '
+% if dbdef->table('pkg_svc')->column('primary_svc');
+%$thead .= 'Service |
';
+%
+%
+
+
+
Services included
+<% itable('', 4, 1) %>
+<% $thead %>
+%
+%
+%my $where = "WHERE disabled IS NULL OR disabled = ''";
+%if ( $pkgpart ) {
+% $where .= " OR 0 < ( SELECT quantity FROM pkg_svc
+% WHERE pkg_svc.svcpart = part_svc.svcpart
+% AND pkgpart = $pkgpart
+% )";
+%}
+%my @part_svc = qsearch('part_svc', {}, '', $where);
+%my $q_part_pkg = $clone_part_pkg || $part_pkg;
+%my %pkg_svc = map { $_->svcpart => $_ } $q_part_pkg->pkg_svc;
+%
+%my @fixups = ();
+%my $count = 0;
+%my $columns = 3;
+%foreach my $part_svc ( @part_svc ) {
+% my $svcpart = $part_svc->svcpart;
+% my $pkg_svc = $pkg_svc{$svcpart}
+% || new FS::pkg_svc ( {
+% 'pkgpart' => $pkgpart,
+% 'svcpart' => $svcpart,
+% 'quantity' => 0,
+% 'primary_svc' => '',
+% } );
+%
+% push @fixups, "pkg_svc$svcpart";
+%
+%
+
+
+ |
+
+ quantity || 0 %>">
+ |
+
+
+ primary_svc =~ /^Y/i ? ' CHECKED' : '' %>>
+ |
+
+
+ <% $part_svc->svc %> <% $part_svc->disabled =~ /^Y/i ? ' (DISABLED' : '' %>
+ |
+
+% foreach ( 1 .. $columns-1 ) {
+% if ( $count == int( $_ * scalar(@part_svc) / $columns ) ) {
+%
+
+ <% $thead %>
+% }
+% }
+% $count++;
+%
+% }
+
+
+ |
+% foreach my $f ( qw( clone pkgnum ) ) {
+
+
+% }
+
+
+%
+%
+%# prolly should be in database
+%tie my %plans, 'Tie::IxHash', %{ FS::part_pkg::plan_info() };
+%
+%my %plandata = map { /^(\w+)=(.*)$/; ( $1 => $2 ); }
+% split("\n", ($clone_part_pkg||$part_pkg)->plandata );
+%#warn join("\n", map { "$_: $plandata{$_}" } keys %plandata ). "\n";
+%
+%tie my %options, 'Tie::IxHash', map { $_=>$plans{$_}->{'name'} } keys %plans;
+%
+%#my @form_select = ('classnum');
+%#if ( $conf->exists('enable_taxclasses') ) {
+%# push @form_select, 'taxclass';
+%#} else {
+%# push @fixups, 'taxclass'; #hidden
+%#}
+%my @form_elements = ( 'classnum', 'taxclass', 'agent_type' );
+%
+%my @form_radio = ();
+%if ( dbdef->table('pkg_svc')->column('primary_svc') ) {
+% push @form_radio, 'pkg_svc_primary';
+%}
+%
+%tie my %freq, 'Tie::IxHash', %{FS::part_pkg->freqs_href()};
+%if ( $part_pkg->dbdef_table->column('freq')->type =~ /(int)/i ) {
+% delete $freq{$_} foreach grep { ! /^\d+$/ } keys %freq;
+%}
+%
+%my $widget = new HTML::Widgets::SelectLayers(
+% 'selected_layer' => $part_pkg->plan,
+% 'options' => \%options,
+% 'form_name' => 'dummy',
+% 'form_action' => 'process/part_pkg.cgi',
+% 'form_elements' => \@form_elements,
+% 'form_text' => [ qw(pkg comment promo_code clone pkgnum pkgpart),
+% qw(pay_weight credit_weight), #keys(%weight),
+% @fixups,
+% ],
+% 'form_checkbox' => [ qw(setuptax recurtax disabled) ],
+% 'form_radio' => \@form_radio,
+% 'layer_callback' => sub {
+% my $layer = shift;
+% my $html = qq!!.
+% ntable("#cccccc",2);
+% $html .= '
+%
+% Recurring fee frequency |
+% |
';
+%
+% my $href = $plans{$layer}->{'fields'};
+% foreach my $field ( exists($plans{$layer}->{'fieldorder'})
+% ? @{$plans{$layer}->{'fieldorder'}}
+% : keys %{ $href }
+% ) {
+%
+% $html .= ''. $href->{$field}{'name'}. ' | ';
+%
+% my $format = sub { shift };
+% $format = $href->{$field}{'format'} if exists($href->{$field}{'format'});
+% if ( ! exists($href->{$field}{'type'}) ) {
+% $html .= qq!!;
+% } elsif ( $href->{$field}{'type'} eq 'checkbox' ) {
+% $html .= qq!';
+% } elsif ( $href->{$field}{'type'} =~ /^select/ ) {
+% $html .= '';
+% }
+%
+% $html .= ' |
';
+% }
+% $html .= '';
+%
+% $html .= ''.
+% '
';
+%
+% $html .= '';
+%
+% $html;
+%
+% },
+%);
+%
+%
+
+
+
Price plan <% $widget->html %>