Bug 3050 - Add an option to upload scanned invoices #2/3
[koha_fer] / acqui / basketgroup.pl
index 2051eaa..cdb392d 100755 (executable)
@@ -126,7 +126,8 @@ sub printbasketgrouppdf{
     my ($basketgroupid) = @_;
     
     my $pdfformat = C4::Context->preference("OrderPdfFormat");
-    if ($pdfformat eq 'pdfformat::layout3pages' || $pdfformat eq 'pdfformat::layout2pages' || $pdfformat eq 'pdfformat::layout3pagesfr'){
+    if ($pdfformat eq 'pdfformat::layout3pages' || $pdfformat eq 'pdfformat::layout2pages' || $pdfformat eq 'pdfformat::layout3pagesfr'
+        || $pdfformat eq 'pdfformat::layout2pagesde'){
        eval {
         eval "require $pdfformat";
            import $pdfformat;
@@ -199,12 +200,15 @@ sub printbasketgrouppdf{
 
             # Editor Number
             my $en;
+            my $edition;
             my $marcrecord=eval{MARC::Record::new_from_xml( $ord->{marcxml},'UTF-8' )};
             if ($marcrecord){
                 if ( C4::Context->preference("marcflavour") eq 'UNIMARC' ) {
                     $en = $marcrecord->subfield( '345', "b" );
+                    $edition = $marcrecord->subfield( '205', 'a' );
                 } elsif ( C4::Context->preference("marcflavour") eq 'MARC21' ) {
                     $en = $marcrecord->subfield( '037', "a" );
+                    $edition = $marcrecord->subfield( '250', 'a' );
                 }
             }
 
@@ -212,8 +216,9 @@ sub printbasketgrouppdf{
                 isbn => ($ord->{isbn} ? $ord->{isbn} : undef),
                 itemtype => ( $ord->{itemtype} and $bib->{itemtype} ? $itemtypes->{$bib->{itemtype}}->{description} : undef ),
                 en => ( $en ? $en : undef ),
+                edition => ( $edition ? $edition : undef ),
             };
-            for my $key ( qw/ gstrate author title itemtype publishercode discount quantity rrpgsti rrpgste gstgsti gstgste ecostgsti ecostgste gstvalue totalgste totalgsti / ) {
+            for my $key ( qw/ gstrate author title itemtype publishercode copyrightdate publicationyear discount quantity rrpgsti rrpgste gstgsti gstgste ecostgsti ecostgste gstvalue totalgste totalgsti order_vendornote / ) {
                 $ba_order->{$key} = $ord->{$key};
             }
 
@@ -250,68 +255,48 @@ if ( $op eq "add" ) {
 # else, edit (if it is open) or display (if it is close) the basketgroup basketgroupid
 # the template will know if basketgroup must be displayed or edited, depending on the value of closed key
 #
-    if(! $booksellerid){
-# Unknown bookseller
-# FIXME : ungroupedlist does not seem to be used in this file nor in template
-        $template->param( ungroupedlist => 1);
-        my @booksellers = GetBookSeller('');
-       for (my $i=0; $i < scalar @booksellers; $i++) {
-            my $baskets = &GetBasketsByBookseller($booksellers[$i]->{id});
-            for (my $j=0; $j < scalar @$baskets; $j++) {
-                if(! @$baskets[$i]->{closedate} || @$baskets[$i]->{basketgroupid}) {
-                    splice(@$baskets, $j, 1);
-                    $j--;
-                }
-            }
-            if (scalar @$baskets == 0){
-                splice(@booksellers, $i, 1);
-                $i--;
-            }
+    my $bookseller = &GetBookSellerFromId($booksellerid);
+    my $basketgroupid = $input->param('basketgroupid');
+    my $billingplace;
+    my $deliveryplace;
+    my $freedeliveryplace;
+    if ( $basketgroupid ) {
+        # Get the selected baskets in the basketgroup to display them
+        my $selecteds = GetBasketsByBasketgroup($basketgroupid);
+        foreach my $basket(@{$selecteds}){
+            $basket->{total} = BasketTotal($basket->{basketno}, $bookseller);
         }
+        $template->param(basketgroupid => $basketgroupid,
+                         selectedbaskets => $selecteds);
+
+        # Get general informations about the basket group to prefill the form
+        my $basketgroup = GetBasketgroup($basketgroupid);
+        $template->param(
+            name            => $basketgroup->{name},
+            deliverycomment => $basketgroup->{deliverycomment},
+            freedeliveryplace => $basketgroup->{freedeliveryplace},
+        );
+        $billingplace  = $basketgroup->{billingplace};
+        $deliveryplace = $basketgroup->{deliveryplace};
+        $freedeliveryplace = $basketgroup->{freedeliveryplace};
+        $template->param( closedbg => ($basketgroup ->{'closed'}) ? 1 : 0);
     } else {
-# Known bookseller
-        my $basketgroupid = $input->param('basketgroupid');
-        my $billingplace;
-        my $deliveryplace;
-        my $freedeliveryplace;
-        if ( $basketgroupid ) {
-            # Get the selected baskets in the basketgroup to display them
-            my $selecteds = GetBasketsByBasketgroup($basketgroupid);
-            foreach (@{$selecteds}){
-                $_->{total} = BasketTotal($_->{basketno}, $_);
-            }
-            $template->param(basketgroupid => $basketgroupid,
-                             selectedbaskets => $selecteds);
-
-            # Get general informations about the basket group to prefill the form
-            my $basketgroup = GetBasketgroup($basketgroupid);
-            $template->param(
-                name            => $basketgroup->{name},
-                deliverycomment => $basketgroup->{deliverycomment},
-                freedeliveryplace => $basketgroup->{freedeliveryplace},
-            );
-            $billingplace  = $basketgroup->{billingplace};
-            $deliveryplace = $basketgroup->{deliveryplace};
-            $freedeliveryplace = $basketgroup->{freedeliveryplace};
-            $template->param( closedbg => ($basketgroup ->{'closed'}) ? 1 : 0);
-        } else {
-            $template->param( closedbg => 0);
-        }
-        # determine default billing and delivery places depending on librarian homebranch and existing basketgroup data
-        my $borrower = GetMember( ( 'borrowernumber' => $loggedinuser ) );
-        $billingplace  = $billingplace  || $borrower->{'branchcode'};
-        $deliveryplace = $deliveryplace || $borrower->{'branchcode'};
-
-        my $branches = C4::Branch::GetBranchesLoop( $billingplace );
-        $template->param( billingplaceloop => $branches );
-        $branches = C4::Branch::GetBranchesLoop( $deliveryplace );
-        $template->param( deliveryplaceloop => $branches );
-        $template->param( booksellerid => $booksellerid );
+        $template->param( closedbg => 0);
     }
+    # determine default billing and delivery places depending on librarian homebranch and existing basketgroup data
+    my $borrower = GetMember( ( 'borrowernumber' => $loggedinuser ) );
+    $billingplace  = $billingplace  || $borrower->{'branchcode'};
+    $deliveryplace = $deliveryplace || $borrower->{'branchcode'};
+
+    my $branches = C4::Branch::GetBranchesLoop( $billingplace );
+    $template->param( billingplaceloop => $branches );
+    $branches = C4::Branch::GetBranchesLoop( $deliveryplace );
+    $template->param( deliveryplaceloop => $branches );
+    $template->param( booksellerid => $booksellerid );
+
     # the template will display a unique basketgroup
     $template->param(grouping => 1);
     my $basketgroups = &GetBasketgroups($booksellerid);
-    my $bookseller = &GetBookSellerFromId($booksellerid);
     my $baskets = &GetBasketsByBookseller($booksellerid);
     displaybasketgroups($basketgroups, $bookseller, $baskets);
 } elsif ($op eq 'mod_basket') {