3 # process/part_pkg.cgi: Edit package definitions (process form)
5 # ivan@sisd.com 97-dec-10
7 # don't update non-changing records in part_svc (causing harmless but annoying
8 # "Records identical" errors). ivan@sisd.com 98-feb-19
10 # Changes to allow page to work at a relative position in server
11 # bmccane@maxbaud.net 98-apr-3
13 # Added `|| 0 ' when getting quantity off web page ivan@sisd.com 98-jun-4
15 # lose background, FS::CGI ivan@sisd.com 98-sep-2
19 use CGI::Carp qw(fatalsToBrowser);
20 use FS::UID qw(cgisuidsetup);
21 use FS::Record qw(qsearch qsearchs);
22 use FS::part_pkg qw(fields);
24 use FS::CGI qw(eidiot);
26 my($req)=new CGI::Request; # create form object
28 &cgisuidsetup($req->cgi);
30 my($pkgpart)=$req->param('pkgpart');
32 my($old)=qsearchs('part_pkg',{'pkgpart'=>$pkgpart}) if $pkgpart;
34 my($new)=create FS::part_pkg ( {
41 my($error)=$new->replace($old);
42 eidiot($error) if $error;
44 my($error)=$new->insert;
45 eidiot($error) if $error;
46 $pkgpart=$new->getfield('pkgpart');
50 foreach $part_svc (qsearch('part_svc',{})) {
51 # don't update non-changing records in part_svc (causing harmless but annoying
52 # "Records identical" errors). ivan@sisd.com 98-jan-19
53 #my($quantity)=$req->param('pkg_svc'. $part_svc->getfield('svcpart')),
54 my($quantity)=$req->param('pkg_svc'. $part_svc->svcpart) || 0,
55 my($old_pkg_svc)=qsearchs('pkg_svc',{
56 'pkgpart' => $pkgpart,
57 'svcpart' => $part_svc->getfield('svcpart'),
59 my($old_quantity)=$old_pkg_svc ? $old_pkg_svc->quantity : 0;
60 next unless $old_quantity != $quantity; #!here
61 my($new_pkg_svc)=create FS::pkg_svc({
62 'pkgpart' => $pkgpart,
63 'svcpart' => $part_svc->getfield('svcpart'),
64 #'quantity' => $req->param('pkg_svc'. $part_svc->getfield('svcpart')),
65 'quantity' => $quantity,
68 my($error)=$new_pkg_svc->replace($old_pkg_svc);
69 eidiot($error) if $error;
71 my($error)=$new_pkg_svc->insert;
72 eidiot($error) if $error;
76 #$req->cgi->redirect("../../view/part_pkg.cgi?$pkgpart");
77 #$req->cgi->redirect("../../edit/part_pkg.cgi?$pkgpart");
78 $req->cgi->redirect("../../browse/part_pkg.cgi");