-my $pkgpart = scalar($cgi->param('pkgpart'));
-
-my $format = "%m/%d/%Y %T %z (%Z)"; #false laziness w/REAL_cust_pkg.cgi?
-my $start_date = $cust_main->next_bill_date;
-$start_date = $start_date ? time2str($format, $start_date) : '';
+my $part_pkg = '';
+if ( $cgi->param('lock_pkgpart') ) {
+ $part_pkg = qsearchs({
+ 'table' => 'part_pkg',
+ 'hashref' => { 'pkgpart' => scalar($cgi->param('lock_pkgpart')) },
+ 'extra_sql' => ' AND '. FS::part_pkg->agent_pkgs_sql( $cust_main->agent ),
+ })
+ or die "unknown pkgpart ". $cgi->param('lock_pkgpart');
+}
+
+my $pkgpart = $part_pkg ? $part_pkg->pkgpart : scalar($cgi->param('pkgpart'));
+
+my $format = $date_format. ' %T %z (%Z)'; #false laziness w/REAL_cust_pkg.cgi?
+my $start_date = '';
+if( ! $conf->exists('order_pkg-no_start_date') ) {
+ $start_date = $cust_main->next_bill_date;
+ $start_date = $start_date ? time2str($format, $start_date) : '';
+}
+
+my $svcpart = scalar($cgi->param('svcpart'));