projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
self-service keepalives
[freeside.git]
/
httemplate
/
edit
/
process
/
part_pkg.cgi
diff --git
a/httemplate/edit/process/part_pkg.cgi
b/httemplate/edit/process/part_pkg.cgi
index
5850599
..
7eada7b
100755
(executable)
--- a/
httemplate/edit/process/part_pkg.cgi
+++ b/
httemplate/edit/process/part_pkg.cgi
@@
-1,38
+1,39
@@
<%
<%
-#<!-- $Id: part_pkg.cgi,v 1.2 2001-08-21 02:31:56 ivan Exp $ -->
-use strict;
-use vars qw( $cgi $pkgpart $old $new $part_svc $error $dbh );
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup);
-use FS::CGI qw(popurl);
-use FS::Record qw(qsearch qsearchs fields);
-use FS::part_pkg;
-use FS::pkg_svc;
-use FS::cust_pkg;
+my $dbh = dbh;
-$cgi = new CGI;
-$dbh = &cgisuidsetup($cgi);
+my $pkgpart = $cgi->param('pkgpart');
-
$pkgpart = $cgi->param('pkgpart')
;
+
my $old = qsearchs('part_pkg',{'pkgpart'=>$pkgpart}) if $pkgpart
;
-$old = qsearchs('part_pkg',{'pkgpart'=>$pkgpart}) if $pkgpart;
+#fixup plandata
+my $plandata = $cgi->param('plandata');
+my @plandata = split(',', $plandata);
+$cgi->param('plandata',
+ join('', map { "$_=". join(', ', $cgi->param($_)). "\n" } @plandata )
+);
-$new = new FS::part_pkg ( {
+foreach (qw( setuptax recurtax disabled )) {
+ $cgi->param($_, '') unless defined $cgi->param($_);
+}
+
+my $new = new FS::part_pkg ( {
map {
$_, scalar($cgi->param($_));
} fields('part_pkg')
} );
map {
$_, scalar($cgi->param($_));
} fields('part_pkg')
} );
+#warn "setuptax: ". $new->setuptax;
+#warn "recurtax: ". $new->recurtax;
+
#most of the stuff below should move to part_pkg.pm
#most of the stuff below should move to part_pkg.pm
-foreach $part_svc ( qsearch('part_svc', {} ) ) {
+foreach
my
$part_svc ( qsearch('part_svc', {} ) ) {
my $quantity = $cgi->param('pkg_svc'. $part_svc->svcpart) || 0;
unless ( $quantity =~ /^(\d+)$/ ) {
$cgi->param('error', "Illegal quantity" );
print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );
my $quantity = $cgi->param('pkg_svc'. $part_svc->svcpart) || 0;
unless ( $quantity =~ /^(\d+)$/ ) {
$cgi->param('error', "Illegal quantity" );
print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );
-
exit
;
+
myexit()
;
}
}
}
}
@@
-45,6
+46,7
@@
local $SIG{PIPE} = 'IGNORE';
local $FS::UID::AutoCommit = 0;
local $FS::UID::AutoCommit = 0;
+my $error;
if ( $pkgpart ) {
$error = $new->replace($old);
} else {
if ( $pkgpart ) {
$error = $new->replace($old);
} else {
@@
-55,21
+57,29
@@
if ( $error ) {
$dbh->rollback;
$cgi->param('error', $error );
print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );
$dbh->rollback;
$cgi->param('error', $error );
print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );
-
exit
;
+
myexit()
;
}
}
-foreach $part_svc (qsearch('part_svc',{})) {
+foreach
my
$part_svc (qsearch('part_svc',{})) {
my $quantity = $cgi->param('pkg_svc'. $part_svc->svcpart) || 0;
my $quantity = $cgi->param('pkg_svc'. $part_svc->svcpart) || 0;
+ my $primary_svc =
+ $cgi->param('pkg_svc_primary') == $part_svc->svcpart ? 'Y' : '';
my $old_pkg_svc = qsearchs('pkg_svc', {
'pkgpart' => $pkgpart,
'svcpart' => $part_svc->svcpart,
} );
my $old_quantity = $old_pkg_svc ? $old_pkg_svc->quantity : 0;
my $old_pkg_svc = qsearchs('pkg_svc', {
'pkgpart' => $pkgpart,
'svcpart' => $part_svc->svcpart,
} );
my $old_quantity = $old_pkg_svc ? $old_pkg_svc->quantity : 0;
- next unless $old_quantity != $quantity; #!here
+ my $old_primary_svc =
+ ( $old_pkg_svc && $old_pkg_svc->dbdef_table->column('primary_svc') )
+ ? $old_pkg_svc->primary_svc
+ : '';
+ next unless $old_quantity != $quantity || $old_primary_svc ne $primary_svc;
+
my $new_pkg_svc = new FS::pkg_svc( {
my $new_pkg_svc = new FS::pkg_svc( {
- 'pkgpart' => $pkgpart,
- 'svcpart' => $part_svc->svcpart,
- 'quantity' => $quantity,
+ 'pkgpart' => $pkgpart,
+ 'svcpart' => $part_svc->svcpart,
+ 'quantity' => $quantity,
+ 'primary_svc' => $primary_svc,
} );
if ( $old_pkg_svc ) {
my $myerror = $new_pkg_svc->replace($old_pkg_svc);
} );
if ( $old_pkg_svc ) {
my $myerror = $new_pkg_svc->replace($old_pkg_svc);