Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / view / cust_main / packages / package.html
index f0ece98..e47d891 100644 (file)
         %>
         <A NAME="cust_pkg<% $cust_pkg->pkgnum %>"
            ID  ="cust_pkg<% $cust_pkg->pkgnum %>"
-        ><% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B></A>
-        - 
-        <% $part_pkg->custom_comment |h %>
+        ><% $opt{show_pkgnum} ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B></A>
+%
+%       my $custom_comment;
+%       if ( 0 && FS::part_pkg::flat->can('price_info') eq $part_pkg->can('price_info') ) {
+%         #perf hack / disabled in 4.x (feature pricing / cust_pkg_usageprice incompatible, well, harder)
+%
+%         $part_pkg->{"_$_"} = $part_pkg->option($_) || 0
+%           foreach grep !defined($part_pkg->{"_$_"} ), qw(setup_fee recur_fee);
+%           
+%         my $str = '';
+%         $str = $opt{money_char} . $part_pkg->{_setup_fee}.
+%                ($part_pkg->{_recur_fee} ? ' setup' : ' one-time')
+%           if $part_pkg->{_setup_fee};
+%         $str .= ', ' if $part_pkg->{_setup_fee} && $part_pkg->{_recur_fee};
+%         $str .= $opt{money_char}. $part_pkg->{_recur_fee}.
+%                 '/'. $part_pkg->freq_pretty
+%           if $part_pkg->{_recur_fee};
+%         $str;
+%
+%         $custom_comment = 
+%           ( $part_pkg->custom ? '(CUSTOM) ' : '' ).
+%           $part_pkg->comment.
+%           ( ($part_pkg->custom || $part_pkg->comment) ? ' - ' : '' ).
+%           ($str || 'No charge');
+%
+%       } else {
+%         $custom_comment = $part_pkg->custom_comment('cust_pkg'=>$cust_pkg);
+%       }
+        <% $custom_comment ? ' - ' : '' %>
+        <% $custom_comment |h %>
       </TD>
     </TR>
 
       <TD COLSPAN=2>
         <FONT SIZE=-1>
 
-%         unless ( $cust_pkg->get('cancel') || $opt{no_links} ) {
+%         if ( $part_pkg->freq eq '0' and !$opt{no_links} ) {
+%           # One-time charge.  Nothing you can do with this, unless:
+%           if ( $curuser->access_right('Modify one-time charge') ) {
+                (&nbsp;<%onetime_change_link($cust_pkg)%>&nbsp;)
+%           }
+%           # also, you can discount it
+%           if ( $curuser->access_right('Discount customer package')
+%                && ! scalar($cust_pkg->cust_pkg_discount_active)
+%                && ! scalar($cust_pkg->part_pkg->part_pkg_discount)
+%              ) {
+              (&nbsp;<%pkg_discount_link($cust_pkg)%>&nbsp;)
+%           }
+          <BR>
+%
+%         } elsif ( !$cust_pkg->get('cancel') and !$opt{no_links} ) {
 %
 %           if ( $change_from ) {
 %             # This is the target package for a future change.
 %             # Nothing you can do with it besides modify/cancel the 
 %             # future change, and that's on the current package.
-%           } elsif ( $supplemental or $part_pkg->freq eq '0' ) {
+%           } elsif ( $supplemental ) {
 %             # Supplemental packages can't be changed independently.
-%             # One-time charges don't need to be changed.
-%             # For both of those, we only show "Add comments",
-%             # and "Add invoice details".
+%             # Show only "Add comments" and "Add invoice details".
 %           } else {
 %             # the usual case: links to change package definition,
 %             # discount, and customization
 %
 %             if ( $curuser->access_right('Discount customer package')
 %                  && $part_pkg->can_discount
-%                  && ! scalar($cust_pkg->cust_pkg_discount_active)
-%                  && ! scalar($cust_pkg->part_pkg->part_pkg_discount)
+%                  && ! scalar( @{ $cust_pkg->{_cust_pkg_discount_active} } )
+%                  && (    ! $opt{'term_discounts'}
+%                       || ! scalar($cust_pkg->part_pkg->part_pkg_discount)
+%                     )
 %                )
 %             {
 %               $br=1;
               <% $br ? '<BR>' : '' %>
 %           } 
 
-%           if ( $cust_pkg->num_cust_event
-%                && (    $curuser->access_right('Billing event reports')
+%           if (    (    $curuser->access_right('Billing event reports')
 %                     || $curuser->access_right('View customer billing events')
 %                   )
+%                && $cust_pkg->exists_cust_event
 %              ) {
               (&nbsp;<%pkg_event_link($cust_pkg)%>&nbsp;)
 %           }
 %       if ( $cust_pkg->salesnum ) {
 %         $change_sales_label = 'change';
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<% mt('Sales Person:') |h %> 
-          <B><% $cust_pkg->salesperson %></B>
+          <B><% $cust_pkg->salesperson |h %></B>
 %       }
 
 %       if ( $curuser->access_right('Change customer package')
 %     $trstyle = ' CLASS="shared"' if $part->shared;
     <TR<%$trstyle%>>
       <TD ALIGN="right"><% $part->description %>: </TD>
-      <TD <%$color%> ALIGN="right"><% $usage->minutes %></TD>
+      <TD <%$color%> ALIGN="right"><% sprintf('%.1f', $usage->minutes) %></TD>
       <TD <%$color%>> / </TD>
       <TD <%$color%>><% $part->minutes %></TD>
 %     if ( $part->shared ) {
@@ -320,6 +361,19 @@ sub pkg_change_link {
   );
 }
 
+sub onetime_change_link {
+  my $cust_pkg = shift;
+  my $pkgnum = $cust_pkg->pkgnum;
+  include( '/elements/popup_link-cust_pkg.html',
+    'action'      => $p. "edit/quick-charge.html?change_pkgnum=$pkgnum",
+    'label'       => emt('Modify one-time charge'),
+    'actionlabel' => emt('Modify'),
+    'cust_pkg'    => $cust_pkg,
+    'width'       => 690,
+    'height'      => 380,
+  );
+}
+
 sub pkg_change_location_link {
   my $cust_pkg = shift;
   my $pkgpart = $cust_pkg->pkgpart;