diff options
Diffstat (limited to 'httemplate/elements/tr-pkg_svc.html')
-rw-r--r-- | httemplate/elements/tr-pkg_svc.html | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/httemplate/elements/tr-pkg_svc.html b/httemplate/elements/tr-pkg_svc.html new file mode 100644 index 000000000..6d17a376d --- /dev/null +++ b/httemplate/elements/tr-pkg_svc.html @@ -0,0 +1,139 @@ +<TR> + <TD CLASS="background" COLSPAN=99> + +<% itable('', 4, 1) %><TR><TD VALIGN="top"> +<% $thead %> + +%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' => '', +% 'hidden' => '', +% } ); +% if ( $cgi->param('error') ) { +% my $primary_svc = ( $pkg_svc->primary_svc =~ /^Y/i ); +% my $pkg_svc_primary = scalar($cgi->param('pkg_svc_primary')); +% $pkg_svc->primary_svc('') +% if $primary_svc && $pkg_svc_primary != $svcpart; +% $pkg_svc->primary_svc('Y') +% if ! $primary_svc && $pkg_svc_primary == $svcpart; +% } +% +% push @fixups, "pkg_svc$svcpart"; +% +% my $quan = 0; +% if ( $cgi->param("pkg_svc$svcpart") =~ /^\s*(\d+)\s*$/ ) { +% $quan = $1; +% } elsif ( $pkg_svc->quantity ) { +% $quan = $pkg_svc->quantity; +% } +% +% my @exports = $pkg_svc->part_svc->part_export; +% foreach my $export ( @exports ) { +% push @possible_exports, $export if $export->can('external_pkg_map'); +% } + + <TR> + <TD> + <INPUT TYPE="text" NAME="pkg_svc<% $svcpart %>" SIZE=7 MAXLENGTH=6 VALUE="<% $quan %>"> + </TD> + + <TD ALIGN="center"> + <INPUT TYPE="radio" NAME="pkg_svc_primary" VALUE="<% $svcpart %>" <% $pkg_svc->primary_svc =~ /^Y/i ? ' CHECKED' : '' %>> + </TD> + + <TD> + <A HREF="part_svc.cgi?<% $part_svc->svcpart %>"><% $part_svc->svc %></A> <% $part_svc->disabled =~ /^Y/i ? ' (DISABLED' : '' %> + </TD> + + <TD> + <INPUT TYPE="checkbox" NAME="hidden<% $svcpart %>" VALUE="Y"<% $pkg_svc->hidden =~ /^Y/i ? ' CHECKED' : ''%>> + </TD> + </TR> +% foreach ( 1 .. $columns-1 ) { +% if ( $count == int( $_ * scalar(@part_svc) / $columns ) ) { +% + + </TABLE></TD><TD VALIGN="top"><% $thead %> +% } +% } +% $count++; +% +% } + +</TR></TABLE></TD></TR></TABLE> + +% if ( scalar(@possible_exports) > 0 || scalar(@mapped_exports) > 0 ) { + <TABLE><TR> + <TH BGCOLOR="#dcdcdc">Export</TH> + <TH BGCOLOR="#dcdcdc">Vendor Package Id <FONT SIZE="-2">(blank to delete)</FONT></TH> + </TR> +% foreach my $export ( @mapped_exports ) { + <TR> + <TD><% $export->exportname %></TD> + <TD><INPUT TYPE="text" NAME="export<% $export->exportnum %>" + SIZE="30" VALUE="<% $vendor_pkg_ids{$export->exportnum} %>"> + </TD> + </TR> +% } +% foreach my $export ( @possible_exports ) { +% unless ( defined $vendor_pkg_ids{$export->exportnum} ) { + <TR> + <TD><% $export->exportname %></TD> + <TD> + <INPUT TYPE="text" NAME="export<% $export->exportnum %>" SIZE="30"> + </TD> + </TR> +% } +% } + </TABLE> +% } + + </TD> +</TR> + +<%init> + +my %opt = @_; +my $cgi = $opt{'cgi'}; + +my $thead = "\n\n". ntable('#cccccc', 2). + '<TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH>'. + '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-2>Primary</FONT></TH>'. + '<TH BGCOLOR="#dcdcdc">Service</TH>'. + '<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Hide</FONT></TH>'. + '</TR>'; + +my $part_pkg = $opt{'object'}; +my $pkgpart = $part_pkg->pkgpart; + +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 %pkg_svc = map { $_->svcpart => $_ } $part_pkg->pkg_svc('disable_linked'=>1); + +my @fixups = (); +my $count = 0; +my $columns = 3; + +my @possible_exports = (); +my @mapped_exports = (); +my @part_pkg_vendor = $part_pkg->part_pkg_vendor; +foreach my $part_pkg_vendor ( @part_pkg_vendor ) { + push @mapped_exports, $part_pkg_vendor->part_export; +} +my %vendor_pkg_ids = $part_pkg->vendor_pkg_ids; + +</%init> |