% my $plink = "pkgnum=$pkgnum";
% my $reg_recur_cond = sub { $part_pkg->freq ne '0'
% && ! $change_from
% && ! $supplemental
% && ! $cust_pkg->get('cancel')
% };
% my $change_cond = sub { $part_pkg->freq ne '0'
% && ! $change_from
% && ! $supplemental
% && ! $cust_pkg->get('cancel')
% && $cust_pkg->change_to_pkgnum,
% };
<& /elements/dropdown-menu.html,
id => 'cust_pkg'. $cust_pkg->pkgnum. '_menu',
bgcolor => $opt{row} % 2 ? '#ffffff' : '#eeeeee',
menu => [
[
#TODO: order/group these better
{ label => 'Package actions',
content =>
''.
'Package actions'.
' ',
},
{ label => 'Modify one-time charge',
acl => 'Modify one-time charge',
condition => sub { $part_pkg->freq eq '0' },
url => "edit/quick-charge.html?change_$plink",
},
{ label => 'Change package',
acl => 'Change customer package',
condition => $reg_recur_cond,
popup => "misc/change_pkg.cgi?$plink".
';locationnum='. $cust_pkg->locationnum,
actionlabel => emt('Change package'),
#width => 768,
width => 960,
height => 650,
},
{ label => 'Discount package',
condition => sub { ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& $can_discount_pkg
},
popup => "edit/cust_pkg_discount.html?$plink",
actionlabel => emt('Discount package'),
width => 616,
},
{ label => 'Customize package',
acl => 'Customize customer package',
condition => $reg_recur_cond,
url => "edit/part_pkg.cgi?$plink".
';clone='. $part_pkg->pkgpart,
},
{ label => '-',
content => '-',
},
{ label => 'View package events',
acl => [ 'Billing event reports',
'View customer billing events', ],
condition => sub { $cust_pkg->exists_cust_event },
url => "search/cust_event.html?$plink",
},
{ label => '-',
condition => sub { $cust_pkg->exists_cust_event },
content => '-',
},
{ label => 'Change quantity',
acl => 'Change customer package',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& $opt{'invoice-unitprice'}
},
popup => "edit/cust_pkg_quantity.html?$plink",
actionlabel => emt('Change quantity'),
width => 390,
height => 220,
},
{ label => 'Change sales person',
acl => 'Change customer package',
condition => sub { ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
},
popup => "edit/cust_pkg_salesnum.html?$plink",
actionlabel => emt('Change sales persion'),
width => 390,
height => 220,
},
{ label => '-',
content => '-',
},
{ label => (@invoice_detail ? 'Edit' : 'Add').
' invoice details',
acl => 'Edit customer package invoice details',
condition => sub { ! $cust_pkg->get('cancel') },
popup => "edit/cust_pkg_detail.html?$plink".
';detailtype=I',
actionlabel => emt( (@invoice_detail ? 'Edit' : 'Add').
' invoice details'
),
width => 768,
},
{ label => (@comments ? 'Edit' : 'Add'). ' comments',
acl => 'Edit customer package comments',
popup => "edit/cust_pkg_detail.html?$plink".
';detailtype=C',
actionlabel => emt( (@comments ? 'Edit' : 'Add').
' comments'
),
width => 768,
},
{ label => '-',
#condition => sub { $part_pkg->freq ne '0' },
content => '-',
},
{ label => 'Set start date',
acl => 'Change package start date',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& ! $cust_pkg->get('setup')
},
popup => "misc/change_pkg_date.html?$plink".
';field=start_date',
actionlabel => emt('Set start of billing for'),
width => 510,
height => 310,
},
{ label => 'Set contract end',
acl => 'Change package contract end date',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& ! $cust_pkg->change_to_pkgnum
},
popup => "misc/change_pkg_date.html?$plink".
';field=contract_end',
actionlabel => emt('Set contract end for'),
width => 510,
height => 310,
},
{ label => '-',
condition => sub { $part_pkg->freq ne '0' },
content => '-',
},
{ label => 'Change now',
acl => 'Change customer package',
condition => $change_cond,
url => "misc/change_pkg_now.cgi?$pkgnum",
},
{ label => 'Reschedule',
acl => 'Change customer package',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& $cust_pkg->change_to_pkgnum,
},
popup => "misc/change_pkg.html?$plink",
actionlabel => emt('Edit scheduled change for'),
url => "misc/change_pkg_now.cgi?$pkgnum",
width => 960,
height => 490,
},
{ label => 'Abort change',
acl => 'Change customer package',
condition => $change_cond,
url => "misc/do_not_change_pkg.cgi?$pkgnum",
},
{ label => '-',
acl => 'Change customer package',
condition => $change_cond,
content => '-',
},
{ label => 'Suspend now',
acl => 'Suspend customer package',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& ! $cust_pkg->get('susp')
},
popup => "misc/cancel_pkg.html?method=suspend;$plink",
actionlabel => emt('Suspend now'),
color => '#FF9900',
width => 768,
height => 420,
},
{ label => 'Suspend later',
acl => 'Suspend customer package later',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& ! $cust_pkg->get('susp')
},
popup => "misc/cancel_pkg.html?method=adjourn;$plink",
actionlabel => emt('Suspend later'),
color => '#CC6600',
width => 768,
height => 445,
},
{ label => $cust_pkg->dundate
? 'Edit suspension delay'
: 'Delay suspend',
acl => 'Delay suspension events',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& ! $cust_pkg->get('susp')
},
popup => "misc/delay_susp_pkg.html?$plink",
actionlabel => emt('Delay suspend for'),
width => 768,
},
{ label => 'Start billing',
acl => 'Unsuspend customer package',
condition => sub { ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& $cust_pkg->get('susp')
&& $cust_pkg->order_date == $cust_pkg->get('susp')
},
popup => "misc/unhold_pkg.html?$plink",
actionlabel => emt('Start billing'),
color => '#00CC00',
width => 510,
height => 310,
},
{ label => 'Unsuspend now',
acl => 'Unsuspend customer package',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& $cust_pkg->get('susp')
&& $cust_pkg->order_date != $cust_pkg->get('susp')
},
'url' => "misc/unsusp_pkg.cgi?$pkgnum",
},
{ label => 'Unsuspend later',
acl => 'Unsuspend customer package',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& $cust_pkg->get('susp')
&& $cust_pkg->order_date != $cust_pkg->get('susp')
},
popup => "misc/cancel_pkg.html?method=resume;$plink",
actionlabel => emt('Unsuspend later'),
color => '#00CC00',
width => 768,
},
{ label => '-',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->get('cancel')
&& ! $cust_pkg->get('susp')
},
content => '-',
},
{ label => 'Cancel now',
acl => 'Cancel customer package immediately',
condition => sub {
( $part_pkg->freq ne '0' || ! $cust_pkg->get('setup') )
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->change_to_pkgnum
&& ! $cust_pkg->get('cancel')
},
popup => "misc/cancel_pkg.html?method=cancel;$plink",
actionlabel => emt('Cancel now'),
color => '#FF0000',
width => 768,
},
{ label => 'Cancel later',
acl => 'Cancel customer package later',
condition => sub { $part_pkg->freq ne '0'
&& ! $change_from
&& ! $supplemental
&& ! $cust_pkg->change_to_pkgnum
&& ! $cust_pkg->get('cancel')
},
popup => "misc/cancel_pkg.html?method=expire;$plink",
actionlabel => emt('Cancel later'),
color => '#CC0000',
width => 768,
},
{ label => 'Un-cancel',
acl => 'Un-cancel customer package',
condition => sub { $part_pkg->freq ne '0'
&& ! $supplemental
&& ! $cust_pkg->change_custnum
&& $cust_pkg->get('cancel')
},
popup => "misc/cancel_pkg.html?method=uncancel;$plink",
actionlabel => emt('Un-cancel'),
width => 960,
height => 740,
},
{ label => '-',
condition => sub {
( $part_pkg->freq ne '0' || ! $cust_pkg->get('setup') )
&& ! $change_from
&& ! $cust_pkg->get('cancel')
},
content => '-',
},
{ label => 'Add contact',
#acl => 'Add package contact',#or something like that
condition => sub { ! $cust_pkg->get('cancel') },
popup => "misc/change_pkg_contact.html?$plink",
actionlabel => emt('Add contact'),
width => 616,
height => 200,
},
{ label => 'Change location',
acl => 'Change customer package',
condition => sub { ! $change_from },
popup => "misc/change_pkg.cgi?locationnum=-1;$plink;".
"address1=;address2=;city=;county=;state=$statedefault;".
"zip=;country=$countrydefault",
actionlabel => emt('Change location'),
width => 960,
height => 650,
},
{ label => 'Edit location',
acl => 'Change customer package',
condition => sub { ! $change_from && $cust_pkg->locationnum != $cust_pkg->cust_main->ship_locationnum },
popup => 'edit/cust_location.cgi?locationnum='.
$cust_pkg->locationnum,
actionlabel => emt('Edit location'),
width => 700,
height => 355,
},
],
],
&>
|