Bug 14224: Improve escaped characters
[koha.git] / acqui / basketgroup.pl
index ddc2ec2..9e50484 100755 (executable)
@@ -55,7 +55,8 @@ use C4::Acquisition qw/CloseBasketgroup ReOpenBasketgroup GetOrders GetBasketsBy
 use C4::Members qw/GetMember/;
 use Koha::EDI qw/create_edi_order get_edifact_ean/;
 
-use Koha::Acquisition::Bookseller;
+use Koha::Acquisition::Booksellers;
+use Koha::ItemTypes;
 
 our $input=new CGI;
 
@@ -74,13 +75,14 @@ sub BasketTotal {
     my $total = 0;
     my @orders = GetOrders($basketno);
     for my $order (@orders){
-        $total = $total + ( $order->{ecost} * $order->{quantity} );
-        if ($bookseller->{invoiceincgst} && ! $bookseller->{listincgst} && ( $bookseller->{gstrate} // C4::Context->preference("gist") )) {
-            my $gst = $bookseller->{gstrate} // C4::Context->preference("gist");
-            $total = $total * ( $gst / 100 +1);
+        # FIXME The following is wrong
+        if ( $bookseller->listincgst ) {
+            $total = $total + ( $order->{ecost_tax_included} * $order->{quantity} );
+        } else {
+            $total = $total + ( $order->{ecost_tax_excluded} * $order->{quantity} );
         }
     }
-    $total .= " " . ($bookseller->{invoiceprice} // 0);
+    $total .= " " . ($bookseller->invoiceprice // 0);
     return $total;
 }
 
@@ -117,7 +119,7 @@ sub displaybasketgroups {
         }
     }
     $template->param(baskets => $baskets);
-    $template->param( booksellername => $bookseller ->{'name'});
+    $template->param( booksellername => $bookseller->name);
 }
 
 sub printbasketgrouppdf{
@@ -142,7 +144,7 @@ sub printbasketgrouppdf{
     }
     
     my $basketgroup = GetBasketgroup($basketgroupid);
-    my $bookseller = Koha::Acquisition::Bookseller->fetch({ id => $basketgroup->{booksellerid} });
+    my $bookseller = Koha::Acquisition::Booksellers->find( $basketgroup->{booksellerid} );
     my $baskets = GetBasketsByBasketgroup($basketgroupid);
     
     my %orders;
@@ -167,17 +169,21 @@ sub printbasketgrouppdf{
                 croak $@;
             }
 
-            $ord = C4::Acquisition::populate_order_with_prices({ order => $ord, booksellerid => $bookseller->{id}, ordering => 1 });
+            $ord->{tax_value} = $ord->{tax_value_on_ordering};
+            $ord->{tax_rate} = $ord->{tax_rate_on_ordering};
+            $ord->{total_tax_included} = $ord->{ecost_tax_included} * $ord->{quantity};
+            $ord->{total_tax_excluded} = $ord->{ecost_tax_excluded} * $ord->{quantity};
+
             my $bib = GetBiblioData($ord->{biblionumber});
-            my $itemtypes = GetItemTypes();
 
             #FIXME DELETE ME
             # 0      1        2        3         4            5         6       7      8        9
-            #isbn, itemtype, author, title, publishercode, quantity, listprice ecost discount gstrate
+            #isbn, itemtype, author, title, publishercode, quantity, listprice ecost discount tax_rate
 
             # Editor Number
             my $en;
             my $edition;
+            my $ord->{marcxml} = C4::Biblio::GetXmlBiblio( $ord->{biblionumber} );
             my $marcrecord=eval{MARC::Record::new_from_xml( $ord->{marcxml},'UTF-8' )};
             if ($marcrecord){
                 if ( C4::Context->preference("marcflavour") eq 'UNIMARC' ) {
@@ -189,7 +195,7 @@ sub printbasketgrouppdf{
                 }
             }
 
-            $ord->{itemtype} = ( $ord->{itemtype} and $bib->{itemtype} ) ? $itemtypes->{$bib->{itemtype}}->{description} : undef;
+            $ord->{itemtype} = ( $ord->{itemtype} and $bib->{itemtype} ) ? Koha::ItemTypes->find( $bib->{itemtype} )->description : undef;
             $ord->{en} = $en ? $en : undef;
             $ord->{edition} = $edition ? $edition : undef;
 
@@ -201,7 +207,7 @@ sub printbasketgrouppdf{
         -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";
+    my $pdf = printpdf($basketgroup, $bookseller, $baskets, \%orders, $bookseller->tax_rate // C4::Context->preference("gist")) || die "pdf generation failed";
     print $pdf;
 
 }
@@ -238,7 +244,7 @@ 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
 #
-    my $bookseller = Koha::Acquisition::Bookseller->fetch({ id => $booksellerid });
+    my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid );
     my $basketgroupid = $input->param('basketgroupid');
     my $billingplace;
     my $deliveryplace;
@@ -387,7 +393,7 @@ if ( $op eq "add" ) {
 }else{
 # no param : display the list of all basketgroups for a given vendor
     my $basketgroups = &GetBasketgroups($booksellerid);
-    my $bookseller = Koha::Acquisition::Bookseller->fetch({ id => $booksellerid });
+    my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid );
     my $baskets = &GetBasketsByBookseller($booksellerid);
 
     displaybasketgroups($basketgroups, $bookseller, $baskets);