enable EnhancedMessagingPreferences to turn notification on/off
[koha.git] / acqui / basketgroup.pl
index 17d8948..0586323 100755 (executable)
@@ -4,6 +4,7 @@
 #written by john.soros@biblibre.com 01/10/2008
 
 # Copyright 2008 - 2009 BibLibre SARL
+# Parts Copyright Catalyst 2010
 #
 # This file is part of Koha.
 #
@@ -16,9 +17,9 @@
 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 
 =head1 NAME
@@ -182,10 +183,10 @@ sub displaybasketgroups {
 sub printbasketgrouppdf{
     my ($basketgroupid) = @_;
     
-    my $pdfformat = C4::Context->preference("pdfformat");
-    eval "use $pdfformat" ;
-    warn @_;
-    eval "use C4::Branch";
+    my $pdfformat = C4::Context->preference("OrderPdfFormat");
+    eval "use $pdfformat";
+    # FIXME consider what would happen if $pdfformat does not
+    # contain the name of a valid Perl module.
     
     my $basketgroup = GetBasketgroup($basketgroupid);
     my $bookseller = GetBookSellerFromId($basketgroup->{'booksellerid'});
@@ -237,14 +238,14 @@ sub printbasketgrouppdf{
                 }
             }
         }
-        %orders->{$basket->{basketno}}=\@ba_orders;
+        $orders{$basket->{basketno}}=\@ba_orders;
     }
-    print $input->header( -type => 'application/pdf', -attachment => 'basketgroup.pdf' );
-    my $branch = GetBranchInfo(GetBranch($input, GetBranches()));
-    $branch = @$branch[0];
-    my $pdf = printpdf($basketgroup, $bookseller, $baskets, $branch, \%orders, $bookseller->{gstrate} || C4::Context->preference("gist")) || die "pdf generation failed";
+    print $input->header(
+        -type       => 'application/pdf',
+        -attachment => ( $basketgroup->{name} || $basketgroupid ) . '.pdf'
+    );
+    my $pdf = printpdf($basketgroup, $bookseller, $baskets, \%orders, $bookseller->{gstrate} || C4::Context->preference("gist")) || die "pdf generation failed";
     print $pdf;
-    exit;
 }
 
 my $op = $input->param('op');
@@ -270,7 +271,8 @@ if ( $op eq "add" ) {
         }
     } else {
         my $basketgroupid = $input->param('basketgroupid');
-        my $branchcode;
+        my $billingplace;
+        my $deliveryplace;
         if ( $basketgroupid ) {
             # Get the selected baskets in the basketgroup to display them
             my $selecteds = GetBasketsByBasketgroup($basketgroupid);
@@ -286,24 +288,42 @@ if ( $op eq "add" ) {
                 name            => $basketgroup->{name},
                 deliverycomment => $basketgroup->{deliverycomment},
             );
-            $branchcode = $basketgroup->{deliveryplace};
+            $billingplace  = $basketgroup->{billingplace};
+            $deliveryplace = $basketgroup->{deliveryplace};
         }
 
-        # Build the combobox to select the delivery place
+        # determine default billing and delivery places depending on librarian homebranch and existing basketgroup data
         my $borrower = GetMember( ( 'borrowernumber' => $loggedinuser ) );
-        my $branch   = $branchcode || $borrower->{'branchcode'};
+        $billingplace  = $billingplace  || $borrower->{'branchcode'};
+        $deliveryplace = $deliveryplace || $borrower->{'branchcode'};
+        
         my $branches = GetBranches;
-        my @branchloop;
-        foreach my $thisbranch (sort keys %$branches) {
-            my $selected = 1 if $thisbranch eq $branch;
+        
+        # Build the combobox to select the billing place
+        my @billingplaceloop;
+        for (sort keys %$branches) {
+            my $selected = 1 if $_ eq $billingplace;
             my %row = (
-                value      => $thisbranch,
+                value      => $_,
                 selected   => $selected,
-                branchname => $branches->{$thisbranch}->{branchname},
+                branchname => $branches->{$_}->{branchname},
             );
-            push @branchloop, \%row;
+            push @billingplaceloop, \%row;
         }
-        $template->param( branchloop => \@branchloop );
+        $template->param( billingplaceloop => \@billingplaceloop );
+        
+        # Build the combobox to select the delivery place
+        my @deliveryplaceloop;
+        for (sort keys %$branches) {
+            my $selected = 1 if $_ eq $deliveryplace;
+            my %row = (
+                value      => $_,
+                selected   => $selected,
+                branchname => $branches->{$_}->{branchname},
+            );
+            push @deliveryplaceloop, \%row;
+        }
+        $template->param( deliveryplaceloop => \@deliveryplaceloop );
 
         $template->param( booksellerid => $booksellerid );
     }
@@ -363,15 +383,15 @@ if ( $op eq "add" ) {
     CloseBasketgroup($basketgroupid);
     
     printbasketgrouppdf($basketgroupid);
+    exit;
 }elsif ($op eq 'print'){
     my $basketgroupid = $input->param('basketgroupid');
     
     printbasketgrouppdf($basketgroupid);
+    exit;
 }elsif( $op eq "delete"){
     my $basketgroupid = $input->param('basketgroupid');
-    warn $basketgroupid;
     DelBasketgroup($basketgroupid);
-    warn "---------------";
     print $input->redirect('/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=' . $booksellerid);
     
 }elsif ( $op eq 'reopen'){
@@ -386,11 +406,11 @@ if ( $op eq "add" ) {
     
     # Getting parameters
     my $basketgroup = {};
-    
     my @baskets         = $input->param('basket');
     my $basketgroupid   = $input->param('basketgroupid');
     my $basketgroupname = $input->param('basketgroupname');
     my $booksellerid    = $input->param('booksellerid');
+    my $billingplace    = $input->param('billingplace');
     my $deliveryplace   = $input->param('deliveryplace');
     my $deliverycomment = $input->param('deliverycomment');
     my $close           = $input->param('close') ? 1 : 0;
@@ -400,6 +420,7 @@ if ( $op eq "add" ) {
               name            => $basketgroupname,
               id              => $basketgroupid,
               basketlist      => \@baskets,
+              billingplace    => $billingplace,
               deliveryplace   => $deliveryplace,
               deliverycomment => $deliverycomment,
               closed          => $close,
@@ -419,8 +440,10 @@ if ( $op eq "add" ) {
         };
         $basketgroupid = NewBasketgroup($basketgroup);
     }
-    
-    print $input->redirect('/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=' . $booksellerid);
+   
+    my $url = '/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=' . $booksellerid;
+    $url .= "&closed=1" if ($input->param("closed")); 
+    print $input->redirect($url);
     
 }else{
     my $basketgroups = &GetBasketgroups($booksellerid);
@@ -429,5 +452,6 @@ if ( $op eq "add" ) {
 
     displaybasketgroups($basketgroups, $bookseller, $baskets);
 }
+$template->param(closed => $input->param("closed"));
 #prolly won't use all these, maybe just use print, the rest can be done inside validate
 output_html_with_http_headers $input, $cookie, $template->output;