(bug #3622) rewrite a lot of basketgrouping
authorNahuel ANGELINETTI <nahuel.angelinetti@biblibre.com>
Mon, 21 Sep 2009 11:35:35 +0000 (13:35 +0200)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Wed, 30 Sep 2009 09:30:39 +0000 (11:30 +0200)
This patch remade a lot of basketgrouping

C4/Acquisition.pm
acqui/basketgroup.pl
installer/data/mysql/updatedatabase.pl
koha-tmpl/intranet-tmpl/prog/en/js/acq.js
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketgroup.tmpl

index e446e2a..797f0b6 100644 (file)
@@ -37,7 +37,7 @@ BEGIN {
        require Exporter;
        @ISA    = qw(Exporter);
        @EXPORT = qw(
-               &GetBasket &NewBasket &CloseBasket &DelBasket &ModBasket
+               &GetBasket &NewBasket &CloseBasket &CloseBasketgroup &ReOpenBasketgroup &DelBasket &ModBasket
                &ModBasketHeader &GetBasketsByBookseller &GetBasketsByBasketgroup
                &ModBasketgroup &NewBasketgroup &DelBasketgroup &GetBasketgroup
                &GetBasketgroups
@@ -218,6 +218,57 @@ sub CloseBasket {
 
 #------------------------------------------------------------#
 
+=head3 CloseBasketgroup
+
+=over 4
+
+&CloseBasketgroup($basketgroupno);
+
+close a basketgroup
+
+=back
+
+=cut
+
+sub CloseBasketgroup {
+    my ($basketgroupno) = @_;
+    my $dbh        = C4::Context->dbh;
+    my $sth = $dbh->prepare("
+        UPDATE aqbasketgroups
+        SET    closed=1
+        WHERE  id=?
+    ");
+    $sth->execute($basketgroupno);
+}
+
+#------------------------------------------------------------#
+
+=head3 ReOpenBaskergroup($basketgroupno)
+
+=over 4
+
+&ReOpenBaskergroup($basketgroupno);
+
+reopen a basketgroup
+
+=back
+
+=cut
+
+sub ReOpenBasketgroup {
+    my ($basketgroupno) = @_;
+    my $dbh        = C4::Context->dbh;
+    my $sth = $dbh->prepare("
+        UPDATE aqbasketgroups
+        SET    closed=0
+        WHERE  id=?
+    ");
+    $sth->execute($basketgroupno);
+}
+
+#------------------------------------------------------------#
+
+
 =head3 DelBasket
 
 =over 4
@@ -509,12 +560,15 @@ sub ModBasketgroup {
     push(@params, $basketgroupinfo->{'id'});
     my $sth = $dbh->prepare($query);
     $sth->execute(@params);
+    
+    $sth = $dbh->prepare('UPDATE aqbasket SET basketgroupid = NULL WHERE basketgroupid = ?');
+    $sth->execute($basketgroupinfo->{'id'});
+    
     if($basketgroupinfo->{'basketlist'} && @{$basketgroupinfo->{'basketlist'}}){
+        $sth = $dbh->prepare("UPDATE aqbasket SET basketgroupid=? WHERE basketno=?");
         foreach my $basketno (@{$basketgroupinfo->{'basketlist'}}) {
-            my $query2 = "UPDATE aqbasket SET basketgroupid=? WHERE basketno=?";
-            my $sth2 = $dbh->prepare($query2);
-            $sth2->execute($basketgroupinfo->{'id'}, $basketno);
-            $sth2->finish;
+            $sth->execute($basketgroupinfo->{'id'}, $basketno);
+            $sth->finish;
         }
     }
     $sth->finish;
index 86dfae9..9baa172 100755 (executable)
@@ -51,7 +51,7 @@ use C4::Output;
 use CGI;
 
 use C4::Bookseller qw/GetBookSellerFromId/;
-use C4::Acquisition qw/GetOrders GetBasketsByBasketgroup GetBasketsByBookseller ModBasketgroup NewBasketgroup DelBasketgroup GetBasketgroups ModBasket GetBasketgroup GetBasket/;
+use C4::Acquisition qw/CloseBasketgroup ReOpenBasketgroup GetOrders GetBasketsByBasketgroup GetBasketsByBookseller ModBasketgroup NewBasketgroup DelBasketgroup GetBasketgroups ModBasket GetBasketgroup GetBasket/;
 use C4::Bookseller qw/GetBookSellerFromId/;
 
 my $input=new CGI;
@@ -169,17 +169,87 @@ sub displaybasketgroups {
         if( ! @$baskets[$i]->{'closedate'} ) {
             splice(@$baskets, $i, 1);
             --$i;
+        }else{
+            @$baskets[$i]->{total} = BasketTotal(@$baskets[$i]->{basketno}, $bookseller);
         }
     }
     $template->param(baskets => $baskets);
     $template->param( booksellername => $bookseller ->{'name'});
 }
 
+sub printbasketgrouppdf{
+    my ($basketgroupid) = @_;
+    
+    my $pdfformat = C4::Context->preference("pdfformat");
+    eval "use $pdfformat" ;
+    warn @_;
+    eval "use C4::Branch";
+    
+    my $basketgroup = GetBasketgroup($basketgroupid);
+    my $bookseller = GetBookSellerFromId($basketgroup->{'booksellerid'});
+    my $baskets = GetBasketsByBasketgroup($basketgroupid);
+    
+    my %orders;
+    for my $basket (@$baskets) {
+        my @ba_orders;
+        my @ords = &GetOrders($basket->{basketno});
+        for my $ord (@ords) {
+            # ba_order is filled with : 
+            # 0      1        2        3         4            5         6       7      8        9
+            #isbn, itemtype, author, title, publishercode, quantity, listprice ecost discount gstrate
+            my @ba_order;
+            if ( $ord->{biblionumber} && $ord->{quantity}> 0 ) {
+                eval "use C4::Biblio";
+                eval "use C4::Koha";
+                my $bib = GetBiblioData($ord->{biblionumber});
+                my $itemtypes = GetItemTypes();
+                if($ord->{isbn}){
+                    push(@ba_order, $ord->{isbn});
+                } else {
+                    push(@ba_order, undef);
+                }
+                if ($ord->{itemtype}){
+                    push(@ba_order, $itemtypes->{$bib->{itemtype}}->{description}) if $bib->{itemtype};
+                } else {
+                    push(@ba_order, undef);
+                }
+#             } else {
+#                 push(@ba_order, undef, undef);
+                for my $key (qw/author title publishercode quantity listprice ecost/) {
+                    push(@ba_order, $ord->{$key});                                                  #Order lines
+                }
+                push(@ba_order, $bookseller->{discount});
+                push(@ba_order, $bookseller->{gstrate}*100 || C4::Context->preference("gist") || 0);
+                push(@ba_orders, \@ba_order);
+                # Editor Number
+                my $en;
+                if (C4::Context->preference("marcflavour") eq 'UNIMARC') {
+                    $en = MARC::Record::new_from_xml($ord->{marcxml},'UTF-8')->subfield('345',"b");
+                } elsif (C4::Context->preference("marcflavour") eq 'MARC21') {
+                    $en = MARC::Record::new_from_xml($ord->{marcxml},'UTF-8')->subfield('037',"a");
+                }
+                if($en){
+                    push(@ba_order, $en);
+                } else {
+                    push(@ba_order, undef);
+                }
+            }
+        }
+        %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 $pdf;
+    exit;
+}
 
 my $op = $input->param('op');
 my $booksellerid = $input->param('booksellerid');
+$template->param(booksellerid => $booksellerid);
 
-if (! $op ) {
+if ( $op eq "add" ) {
     if(! $booksellerid){
         $template->param( ungroupedlist => 1);
         my @booksellers = GetBookSeller('');
@@ -197,8 +267,18 @@ if (! $op ) {
             }
         }
     } else {
+        my $basketgroupid = $input->param('basketgroupid');
+        if($basketgroupid){
+            my $selecteds = GetBasketsByBasketgroup($basketgroupid);
+            foreach (@{$selecteds}){
+                $_->{total} = BasketTotal($_->{basketno}, $_);
+            }
+            $template->param(basketgroupid => $basketgroupid,
+                             selectedbaskets => $selecteds);
+        }
         $template->param( booksellerid => $booksellerid );
     }
+    $template->param(grouping => 1);
     my $basketgroups = &GetBasketgroups($booksellerid);
     my $bookseller = &GetBookSellerFromId($booksellerid);
     my $baskets = &GetBasketsByBookseller($booksellerid);
@@ -248,106 +328,71 @@ if (! $op ) {
     $baskets = &GetBasketsByBookseller($booksellerid);
 
     displaybasketgroups($basketgroups, $bookseller, $baskets);
-} elsif ( $op eq 'printbgroup') {
-    my $pdfformat = C4::Context->preference("pdfformat");
-    eval "use $pdfformat" ;
-    eval "use C4::Branch";
-    my $basketgroupid = $input->param('bgroupid');
-    my $basketgroup = GetBasketgroup($basketgroupid);
-    my $bookseller = GetBookSellerFromId($basketgroup->{'booksellerid'});
-    my $baskets = GetBasketsByBasketgroup($basketgroupid);
-    my %orders;
-    for my $basket (@$baskets) {
-        my @ba_orders;
-        my @ords = &GetOrders($basket->{basketno});
-        for my $ord (@ords) {
-            # ba_order is filled with : 
-            # 0      1        2        3         4            5         6       7      8        9
-            #isbn, itemtype, author, title, publishercode, quantity, listprice ecost discount gstrate
-            my @ba_order;
-            if ( $ord->{biblionumber} && $ord->{quantity}> 0 ) {
-                eval "use C4::Biblio";
-                eval "use C4::Koha";
-                my $bib = GetBiblioData($ord->{biblionumber});
-                my $itemtypes = GetItemTypes();
-                if($ord->{isbn}){
-                    push(@ba_order, $ord->{isbn});
-                } else {
-                    push(@ba_order, undef);
-                }
-                if ($ord->{itemtype}){
-                    push(@ba_order, $itemtypes->{$bib->{itemtype}}->{description}) if $bib->{itemtype};
-                } else {
-                    push(@ba_order, undef);
-                }
-#             } else {
-#                 push(@ba_order, undef, undef);
-                for my $key (qw/author title publishercode quantity listprice ecost/) {
-                    push(@ba_order, $ord->{$key});                                                  #Order lines
-                }
-                push(@ba_order, $bookseller->{discount});
-                push(@ba_order, $bookseller->{gstrate}*100 || C4::Context->preference("gist") || 0);
-                push(@ba_orders, \@ba_order);
-                # Editor Number
-                my $en;
-                if (C4::Context->preference("marcflavour") eq 'UNIMARC') {
-                    $en = MARC::Record::new_from_xml($ord->{marcxml},'UTF-8')->subfield('345',"b");
-                } elsif (C4::Context->preference("marcflavour") eq 'MARC21') {
-                    $en = MARC::Record::new_from_xml($ord->{marcxml},'UTF-8')->subfield('037',"a");
-                }
-                if($en){
-                    push(@ba_order, $en);
-                } else {
-                    push(@ba_order, undef);
-                }
-            }
-        }
-        %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 $pdf;
-    exit;
+} elsif ( $op eq 'closeandprint') {
+    my $basketgroupid = $input->param('basketgroupid');
+    
+    CloseBasketgroup($basketgroupid);
+    
+    printbasketgrouppdf($basketgroupid);
+}elsif ($op eq 'print'){
+    my $basketgroupid = $input->param('basketgroupid');
+    
+    printbasketgrouppdf($basketgroupid);
+}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'){
+    my $basketgroupid   = $input->param('basketgroupid');
+    my $booksellerid    = $input->param('booksellerid');
+    
+    ReOpenBasketgroup($basketgroupid);
+        
+    print $input->redirect('/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=' . $booksellerid . '#closed');
+    
 } elsif ( $op eq 'attachbasket') {
+    
     # Getting parameters
     my $basketgroup = {};
-    my $basketno = $input->param('basketno');
-    my $basket = GetBasket($basketno);
-    $basketgroup->{'name'} = $input->param('basketgroupname') || $basket->{'basketname'};
-    $basketgroup->{'booksellerid'} = $input->param('booksellerid');
-    my $basketgroupid;
-    warn "basketgroupname", $basketgroup->{'name'};
-
+    
+    my @baskets         = $input->param('basket');
+    my $basketgroupid   = $input->param('basketgroupid');
+    my $basketgroupname = $input->param('basketgroupname');
+    my $booksellerid    = $input->param('booksellerid');
+    my $close           = $input->param('close') ? 1 : 0;
     # If we got a basketgroupname, we create a basketgroup
-    if ($basketgroup->{'name'}) {
+    if ($basketgroupid) {
+        $basketgroup = {
+              name => $basketgroupname,
+              id => $basketgroupid,
+              basketlist => \@baskets,
+              closed      => $close,
+        };
+        ModBasketgroup($basketgroup);
+        if($close){
+            
+        }
+    }else{
+        $basketgroup = {
+            name         => $basketgroupname,
+            booksellerid => $booksellerid,
+            basketlist   => \@baskets,
+            closed        => $close,
+        };
         $basketgroupid = NewBasketgroup($basketgroup);
-    } else {
-       # Else, we use the basketgroupid in parameter
-        $basketgroupid = $input->param('basketgroupid');
     }
-
-    $basketgroup= {};
-    $basketgroup->{'closed'} = 1;
-    $basketgroup->{'id'} = $basketgroupid;
-    ModBasketgroup($basketgroup);
-    $basket = {};
-    $basket->{'basketno'} = $basketno;
-    $basket->{'basketgroupid'} = $basketgroupid;
-    ModBasket($basket);
-
-   
-      $basketgroup = GetBasketgroup($basketgroupid);
-    my $baskets = GetBasketsByBasketgroup($basketgroupid);
+    
+    print $input->redirect('/cgi-bin/koha/acqui/basketgroup.pl?booksellerid=' . $booksellerid);
+    
+}else{
+    my $basketgroups = &GetBasketgroups($booksellerid);
     my $bookseller = &GetBookSellerFromId($booksellerid);
+    my $baskets = &GetBasketsByBookseller($booksellerid);
 
-    if ($input->param('createorder')) {
-       print $input->redirect('/cgi-bin/koha/acqui/basketgroup.pl?op=printbgroup&bgroupid=' . $basketgroupid);
-    } else {
-       print $input->redirect('/cgi-bin/koha/acqui/booksellers.pl');
-    }
+    displaybasketgroups($basketgroups, $bookseller, $baskets);
 }
 #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;
index fedfa70..e2f4583 100755 (executable)
@@ -2781,8 +2781,8 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
                          CONSTRAINT `aqbasketgroups_ibfk_1` FOREIGN KEY (`booksellerid`) REFERENCES `aqbooksellers` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
                          ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
     $dbh->do("ALTER TABLE aqbasket ADD COLUMN `basketgroupid` int(11)");
-    $dbh->do("ALTER TABLE aqbasket ADD FOREIGN KEY (`basketgroupid`) REFERENCES `aqbasketgroups` (`id`) ON UPDATE CASCADE");
-    $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('pdfformat','pdfformat/example.pl','Controls what script is used for printing (basketgroups)','','free')");
+    $dbh->do("ALTER TABLE aqbasket ADD FOREIGN KEY (`basketgroupid`) REFERENCES `aqbasketgroups` (`id`) ON UPDATE CASCADE ON DELETE SET NULL");
+    $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('pdfformat','pdfformat::example','Controls what script is used for printing (basketgroups)','','free')");
     print "Upgrade to $DBversion done (adding basketgroups)\n";
     SetVersion ($DBversion);
 }
index 12cf936..61d841e 100644 (file)
@@ -473,6 +473,14 @@ function closebasketgroup(bgid) {
     div.appendChild(unclosegroup);
 }
 
+function closeandprint(bg){
+       if(document.location = '/cgi-bin/koha/acqui/basketgroup.pl?op=closeandprint&amp;basketgroupid=' + bg ){
+               setTimeout("window.location.reload();",3000);
+       }else{
+               alert('Error downloading the file');
+       }
+}
+
 //function that lets the user unclose a basketgroup as long as he hasn't submitted the changes to the page.
 function unclosegroup(bgid){
     var div = document.getElementById('basketgroup-'+bgid+'-closed').parentNode;
index 6e376d6..69f16ee 100755 (executable)
@@ -2,21 +2,15 @@
 <title>Koha &rsaquo; Basket grouping for Vendor <!-- TMPL_VAR name="booksellername" --></title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
 
-<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.6.0/build/fonts/fonts-min.css" />
-<script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/animation/animation-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/dragdrop/dragdrop-min.js"></script>
+<link rel="stylesheet" type="text/css" href="<!-- TMPL_VAR NAME="yuipath" -->/fonts/fonts-min.css" />
+<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/yahoo-dom-event/yahoo-dom-event.js"></script>
+<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/animation/animation-min.js"></script>
+<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/dragdrop/dragdrop-min.js"></script>
+<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/element/element-min.js"></script>
+<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/tabview/tabview-min.js"></script>
 <script type="text/javascript" src="<!-- TMPL_VAR NAME='themelang' -->/js/acq.js"></script>
-
-<script type="text/javascript">
-//<![CDATA[
-function Check(ff) {
-    ff.submit();
-}
-var basketgroups = 1;
-YAHOO.util.Event.onDOMReady(DDApp.init, DDApp, true);
-//]]>
-</script>
+<link rel="stylesheet" type="text/css" href="<!-- TMPL_VAR NAME='yuipath' -->/tabview/assets/skins/sam/tabview.css" /> 
 <style type="text/css">
 /*margin and padding on body element
   can introduce errors in determining
@@ -28,7 +22,17 @@ body {
        padding:0;
 }
 
-div.workarea { padding:10px; float:left; width: 45%;}
+#ungrouped {
+       overflow: auto;
+       height: 400px;
+}
+
+.draglist{
+       width: 200px;
+       height: 300px;
+       overflow: auto;
+}
+
 div.workarea_alt { padding: 5px; float:left; width: 95%;}
 div.closed { background-color="pink"; padding:10px; float:left; width: 45%;}
 
@@ -89,7 +93,28 @@ fieldset.various li {
     clear: none;
 }
 
+.basketgroup {
+       margin-top: 10px;
+       font-size: 1.2em;
+       font-weight: bold;
+       list-style: none;
+       background-color: #D8D4E2;
+       display: block;
+}
+.basketgroup li{
+       font-size: 0.5em;
+       list-style: none;
+       display: inline;
+}
+
 </style>
+
+<script type="text/javascript">
+//<![CDATA[
+       YAHOO.util.Event.onDOMReady(DDApp.init, DDApp, true);
+       var tabView = new YAHOO.widget.TabView('bgtabs');
+//]]>
+</script>
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
@@ -98,164 +123,203 @@ fieldset.various li {
 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> &rsaquo;<a href="/cgi-bin/koha/acqui/supplier.pl?supplierid=<!-- TMPL_VAR NAME="booksellerid" -->"><!-- TMPL_VAR NAME="booksellername" --></a> &rsaquo; Basket grouping for vendor: <!-- TMPL_VAR NAME="booksellername" --></div>
 
 <div id="doc" class="yui-t7">
-    <div id="bd">
-        <div id="yui-main">
-
-               <div id="toolbar">
-<script type="text/javascript">
-       //<![CDATA[
-
-       // prepare DOM for YUI Toolbar
-
-        $(document).ready(function() {
-           $("#toolbar").empty();
-           yuiToolbar();
-        });
+            
+        <div class="yui-b"> 
+               <div id="toolbar">
+                               <script type="text/javascript">
+                                       //<![CDATA[
+                               
+                                       // prepare DOM for YUI Toolbar
+                               
+                                        $(document).ready(function() {
+                                         //  $("#toolbar").empty();
+                                           yuiToolbar();
+                                        });
+                               
+                                       // YUI Toolbar Functions
+                               
+                                       function yuiToolbar() {
+                                               var booksellermenu = [
+                                                       { text: _("Bookseller"), url: "/cgi-bin/koha/acqui/supplier.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->" },
+                                                       { text: _("Edit bookseller"), url: "/cgi-bin/koha/acqui/booksellers.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->"},
+                                               ]
+                                               var ordersbutton = [
+                                                        { text: _("Manage orders"), url: "/cgi-bin/koha/acqui/booksellers.pl?supplier=<!-- TMPL_VAR name="booksellerid" -->" },
+                                                        { text: _("Edit uncertain prices"), url: "/cgi-bin/koha/acqui/uncertainprice.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->&owner=1" },
+                                               ]
+                                               new YAHOO.widget.Button("newbasketgroup");
+                                           new YAHOO.widget.Button({
+                                               type: "menu",
+                                               label: _("Bookseller"),
+                                               name: "booksellerbutton",
+                                               menu: booksellermenu,
+                                               container: "toolbar"
+                                           });
+                                           
+                                           new YAHOO.widget.Button({
+                                               type: "menu",
+                                               label: _("Orders"),
+                                               name: "ordersbutton",
+                                               menu: ordersbutton,
+                                               container: "toolbar"
+                                           });
+                                       }
+                                       //]]>
+                               </script>
+                               <a href="?op=add&amp;booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->" name="newbasketgroup" id="newbasketgroup">New Basket Group</a>
+                       </div>
+               <h1>Basket grouping for Vendor <a href="/cgi-bin/koha/acqui/supplier.pl?supplierid=<!-- TMPL_VAR NAME="booksellerid" -->"><!-- TMPL_VAR name="booksellername" --></a></h1>
+               </div>
+<!--  TMPL_IF NAME="grouping" -->
+       <div id="bd"> 
+           <div class="yui-gc"> 
+                   <div class="yui-u first"> 
 
-       // YUI Toolbar Functions
+                               <form action="<!-- TMPL_VAR name="scriptname" -->" method="post" name="basketgroups" id="basketgroups">
+                   <div id="groups">
+                   <div class="workarea_alt" >
+                   <h3>Ungrouped Baskets</h3>
+                   <ul id="ungrouped" class="draglist_alt">
+                   <!-- TMPL_IF NAME="baskets" -->
+                       <!-- TMPL_LOOP NAME="baskets" -->
+                           <li class="ungrouped" id="b-<!-- TMPL_VAR NAME="basketno" -->" >
+                               <a href="basket.pl?basketno=<!-- TMPL_VAR NAME="basketno" -->">
+                               <!-- TMPL_IF NAME="basketname" -->
+                                   <!-- TMPL_VAR NAME="basketname" -->
+                               <!-- TMPL_ELSE -->
+                                   No name, basketnumber: <!-- TMPL_VAR NAME="basketno" -->
+                               <!-- /TMPL_IF -->
+                               </a>, <br />
+                               Total: <!-- TMPL_VAR name="total" -->
+                               <input type="hidden" class="basket" name="basket" value="<!-- TMPL_VAR NAME="basketno" -->" />
+                           </li>
+                           <!-- /TMPL_LOOP -->
+                       <!-- /TMPL_IF -->
+                       </ul>
+                   </div>
+                   </div>
+                   </form>
 
-       function yuiToolbar() {
-           new YAHOO.widget.Button("newrecord");
-               var booksellermenu = [
-                       { text: _("Bookseller"), url: "/cgi-bin/koha/acqui/supplier.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->" },
-                       { text: _("Edit bookseller"), url: "/cgi-bin/koha/acqui/booksellers.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->"},
-               ]
-               var ordersbutton = [
-                        { text: _("Manage orders"), url: "/cgi-bin/koha/acqui/booksellers.pl?supplier=<!-- TMPL_VAR name="booksellerid" -->" },
-                        { text: _("Edit uncertain prices"), url: "/cgi-bin/koha/acqui/uncertainprice.pl?booksellerid=<!-- TMPL_VAR name="booksellerid" -->&owner=1" },
-               ]
+                       </div> 
+                       
+                   <div class="yui-u grouping"> 
+                       <form action="" method="post">
+                                       <fieldset id="various" class='various' >
+                               <h3><label for="basketgroupname">Basketgroup Name:</label></h3>
+                               <input type="text" name="basketgroupname" id="basketgroupname" />
+                                       <div class="workarea">
+                                                       <h3>Grouping</h3>
+                                                       <ul class="draglist" id="bg">
+                                                               <!-- TMPL_LOOP NAME="selectedbaskets" -->
+                                                   <li class="grouped" id="b-<!-- TMPL_VAR NAME="basketno" -->" >
+                                                       <a href="basket.pl?basketno=<!-- TMPL_VAR NAME="basketno" -->">
+                                                       <!-- TMPL_IF NAME="basketname" -->
+                                                           <!-- TMPL_VAR NAME="basketname" -->
+                                                       <!-- TMPL_ELSE -->
+                                                           No name, basketnumber: <!-- TMPL_VAR NAME="basketno" -->
+                                                       <!-- /TMPL_IF -->
+                                                       </a>, <br />
+                                                       Total: <!-- TMPL_VAR name="total" -->
+                                                       <input type="hidden" class="basket" name="basket" value="<!-- TMPL_VAR NAME="basketno" -->" />
+                                                   </li>
+                                           <!-- /TMPL_LOOP -->
 
-           new YAHOO.widget.Button({
-               type: "menu",
-               label: _("Bookseller"),
-               name: "booksellerbutton",
-               menu: booksellermenu,
-               container: "toolbar"
-           });
-           
-           new YAHOO.widget.Button({
-               type: "menu",
-               label: _("Orders"),
-               name: "ordersbutton",
-               menu: ordersbutton,
-               container: "toolbar"
-           });
-       }
-       //]]>
-       </script>
-       </div>
-               
-            </div>
-            <div class="yui-b"> 
-        <h1>Basket grouping for Vendor <a href="/cgi-bin/koha/acqui/supplier.pl?supplierid=<!-- TMPL_VAR NAME="booksellerid" -->"><!-- TMPL_VAR name="booksellername" --></a></h1>
-            <div class="yui-gc"> 
-          <div class="yui-u first">
-            <fieldset id="various" class='various' >
-                <ul >
-                <li>
-                <label for="newbasketgroupname">New Basketgroup:</label>
-                <input type="text" name="newbasketgroupname" id="newbasketgroupname" onkeypress="newGroup(event, document.getElementById('newbasketgroupname').value);" checked/>
-                <span class="yui-button yui-link-button">
-                    <span class=" first-child"><a href="javascript: newGroup('button', document.getElementById('newbasketgroupname').value);">Ok</a></span>
-                </span>
-                </li>
-                <li>
-                <label for="filter baskets (regexp)">Filter Basketgroups (regexps allowed):</label>
-                <input type="text" name="filter baskets (regexp)" id="filter baskets (regexp)" onkeypress="filterGroups(event, document.getElementById('filter baskets (regexp)').value);" />
-                <span class="yui-button yui-link-button">
-                    <span class=" first-child"><a href="javascript: filterGroups('button', document.getElementById('filter baskets (regexp)').value);">Ok</a></span>
-                </span>
-                </li>
-                <li>
-                <label for="showclosed">Show closed basketgroups</label>
-                <input type="checkbox" name="showclosed" id="showclosed" value="1" onChange="showhideclosegroups(document.getElementById('showclosed').checked);" unchecked />
-                </li>
-                </ul>
-            </fieldset>
-        <form action="<!-- TMPL_VAR name="scriptname" -->" method="post" name="basketgroups" id="basketgroups">
-            <div id="groups">
-            <div class="workarea_alt" >
-                <h3>Ungrouped Baskets</h3>
-                <ul id="ungrouped" class="draglist_alt">
-                <!-- TMPL_IF NAME="baskets" -->
-                    <!-- TMPL_LOOP NAME="baskets" -->
-                        <li class="ungrouped" id="<!-- TMPL_VAR NAME="basketno" -->" >
-                            <a href="basket.pl?basketno=<!-- TMPL_VAR NAME="basketno" -->">
-                            <!-- TMPL_IF NAME="basketname" -->
-                                <!-- TMPL_VAR NAME="basketname" -->
-                            <!-- TMPL_ELSE -->
-                                No name, basketnumber: <!-- TMPL_VAR NAME="basketno" -->
-                            <!-- /TMPL_IF -->
-                            </a>, <br />
-                            Total: <!-- TMPL_VAR name="total" -->
-                            <input type="hidden" id="<!-- TMPL_VAR NAME="basketno" -->-group" name="<!-- TMPL_VAR NAME="basketno" -->-group" value="0" />
-                            <input type="hidden" id="basket-<!-- TMPL_VAR NAME="basketno" -->-changed" name="basket-<!-- TMPL_VAR NAME="basketno" -->-changed" value="0" />
-                        </li>
-                        <!-- /TMPL_LOOP -->
-                    <!-- /TMPL_IF -->
-                    </ul>
-            </div>
+                                                       </ul>
+                                               </div>
+                                               <div><input type="checkbox" name="close">Close</input></div>
+                               <input type="hidden" name="booksellerid" value="<!-- TMPL_VAR name="booksellerid" -->" />
+                               <!-- TMPL_IF NAME="basketgroupid" -->
+                                       <input type="hidden" name="basketgroupid" value="<!-- TMPL_VAR name="basketgroupid" -->" />
+                               <!-- /TMPL_IF -->
+                               <input type="hidden" name="op" value="attachbasket" />
+                               <input type="submit" value="Save" />
+                                       </fieldset>
+                               </form>
+                       </div> 
+               </div>   
+    </div> 
+<!-- TMPL_ELSE -->
+       <div class="yui-g"> 
+               <div id="bgtabs" class="yui-navset">
+                   <ul class="yui-nav">
+                       <li class="selected"><a href="#opened"><em>Opened</em></a></li>
+                       <li><a href="#closed"><em>Closed</em></a></li>
+                   </ul>            
+                   <div class="yui-content">
+                       <div id="opened">
+                               <ul>
+                                       <!-- TMPL_LOOP NAME="basketgroups" -->
+                                               <!-- TMPL_UNLESS NAME="closed" -->
+                                       <li class="basketgroup">
+                                               <!-- TMPL_IF NAME="name" -->
+                                                       <!-- TMPL_VAR NAME="name" -->
+                                               <!-- TMPL_ELSE -->
+                                                       Basket Group n°<!-- TMPL_VAR NAME="id" -->
+                                               <!-- /TMPL_IF -->
+                                               <ul>
+                                                       <li>
+                                                               <span class="yui-button yui-link-button">
+                                                                       <span class="first-child">
+                                                                               <a href="javascript:closeandprint(<!-- TMPL_VAR "id" -->)" class="yui-button yui-link-button">Close & Print</a>
+                                                                       </span>
+                                                               </span>
+                                                       </li>
+                                                       <li>
+                                                               <span class="yui-button yui-link-button">
+                                                                       <span class="first-child">
+                                                                               <a href="?op=add&amp;booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&amp;basketgroupid=<!-- TMPL_VAR NAME="id" -->" class="yui-button yui-link-button" >Edit</a>
+                                                                       </span>
+                                                               </span>
+                                                               </li>
+                                                               <li>
+                                                               <span class="yui-button yui-link-button">
+                                                                       <span class="first-child">
+                                                                               <a href="?op=delete&amp;booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&amp;basketgroupid=<!-- TMPL_VAR NAME="id" -->" class="yui-button yui-link-button" >Delete</a>
+                                                                       </span>
+                                                               </span>
+                                                               </li>
+                                                               
+                                               </ul>
+                                       </li>
+                                               <!-- /TMPL_UNLESS -->
+                                       <!-- /TMPL_LOOP -->
+                               </ul>
+                       </div>
+                       <div id="closed">
+                               <ul>
+                                       <!-- TMPL_LOOP NAME="basketgroups" -->
+                                               <!-- TMPL_IF NAME="closed" -->
+                                               <li class="basketgroup">
+                                                       <!-- TMPL_IF NAME="name" -->
+                                                               <!-- TMPL_VAR NAME="name" -->
+                                                       <!-- TMPL_ELSE -->
+                                                               Basket Group n°<!-- TMPL_VAR NAME="id" -->
+                                                       <!-- /TMPL_IF -->
+                                                       <ul>
+                                                               <li>
+                                                                               <span class="yui-button yui-link-button">
+                                                                               <span class="first-child">
+                                                                                       <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=reopen&amp;booksellerid=<!-- TMPL_VAR NAME="booksellerid" -->&amp;basketgroupid=<!-- TMPL_VAR "id" -->" class="yui-button yui-link-button">Reopen</a>
+                                                                               </span>
+                                                                       </span>
+                                                               </li>
+                                                               <li>
+                                                                               <span class="yui-button yui-link-button">
+                                                                               <span class="first-child">
+                                                                                       <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=print&amp;basketgroupid=<!-- TMPL_VAR "id" -->" class="yui-button yui-link-button">Print</a>
+                                                                               </span>
+                                                                       </span>
+                                                               </li>
+                                                       </ul>
+                                               </li>
+                                               <!-- /TMPL_IF -->
+                                       <!-- /TMPL_LOOP -->
+                               </ul>
+                       </div>
+                   </div>
+               </div>
+               
+       </div> 
+<!--  /TMPL_IF -->
 
-            <!-- TMPL_IF NAME="basketgroups" -->
-                <!-- TMPL_LOOP NAME="basketgroups" -->
-                    <!-- TMPL_UNLESS name="displayclosedbgs" -->
-                        <!-- TMPL_IF NAME="closed" -->
-                            <div class="closed" style="display: none">
-                            <h3 ><!-- TMPL_VAR NAME="name" --></h3>
-                            <p > [ 
-                                    <a href="javascript:parent.location='basketgroup.pl?op=printbgroup&bgroupid=<!-- TMPL_VAR NAME="id" -->';">print</a> /
-                                    <a href="javascript:unclosegroup('<!-- TMPL_VAR name="id" -->');">reopen group</a>
-                            ]</p>
-                            <ul id="bg-<!-- TMPL_VAR NAME="id" -->" class="closed">
-                        <!-- TMPL_ELSE -->
-                            <div class="workarea">
-                            <h3 ><!-- TMPL_VAR NAME="name" --></h3>
-                            <p > [ 
-                                <a href="javascript:renameinit(<!-- TMPL_VAR NAME="id" -->);">rename</a> / 
-                                <a href="javascript:closebasketgroup('<!-- TMPL_VAR NAME="id" -->');">close</a>
-                            ]</p>
-                            <ul id="bg-<!-- TMPL_VAR NAME="id" -->" class="draglist">
-                        <!-- /TMPL_IF -->
-                    <!-- TMPL_ELSE -->
-                        <div class="closed">
-                        <h3 ><!-- TMPL_VAR NAME="name" --></h3>
-                        <p > [ 
-                                <a href="javascript:parent.location='basketgroup.pl?op=printbgroup&bgroupid=<!-- TMPL_VAR NAME="id" -->';">print</a> /
-                                <a href="javascript:unclosegroup('<!-- TMPL_VAR name="id" -->');">reopen group</a>
-                        ]</p>
-                        <ul id="bg-<!-- TMPL_VAR NAME="id" -->" class="closed">
-                    <!-- /TMPL_UNLESS -->
-                        <!-- TMPL_LOOP NAME="baskets" -->
-                            <li class="grouped" id="<!-- TMPL_VAR NAME="basketno" -->">
-                                <a href="basket.pl?basketno=<!-- TMPL_VAR NAME="basketno" -->">
-                                <!-- TMPL_IF NAME="basketname" -->
-                                    <!-- TMPL_VAR NAME="basketname" -->
-                                <!-- TMPL_ELSE -->
-                                    No name, basketnumber: <!-- TMPL_VAR NAME="basketno" -->
-                                <!-- /TMPL_IF -->
-                                </a>, <br />
-                                Total: <!-- TMPL_VAR name="total" -->
-                                <input type="hidden" id="<!-- TMPL_VAR NAME="basketno" -->-group"name="<!-- TMPL_VAR NAME="basketno" -->-group" value="<!-- TMPL_VAR NAME="id" -->" />
-                                <input type="hidden" id="basket-<!-- TMPL_VAR NAME="basketno" -->-changed" name="basket-<!-- TMPL_VAR NAME="basketno" -->-changed" value="0" />
-                            </li>
-                        <!-- /TMPL_LOOP -->
-                        </ul>
-                        <input type="hidden" name="basketgroup-<!-- TMPL_VAR NAME="id" -->-name" id="basketgroup-<!-- TMPL_VAR NAME="id" -->-name" value='<!-- TMPL_VAR NAME="name" -->' />
-                        <input type="hidden" id="basketgroup-<!-- TMPL_VAR NAME="id" -->-closed" name="basketgroup-<!-- TMPL_VAR NAME="id" -->-closed" value="<!-- TMPL_VAR NAME="closed" -->" />
-                        <input type="hidden" id="basketgroup-<!-- TMPL_VAR NAME="id" -->-changed" name="basketgroup-<!-- TMPL_VAR NAME="id" -->-changed" value="0" />
-                    </div>
-                <!-- /TMPL_LOOP -->
-            <!-- /TMPL_IF -->
-            </div>
-            <fieldset class="action">
-                <input type="hidden" name="booksellerid" value="<!-- TMPL_VAR name="booksellerid" -->" />
-                <input type="hidden" name="op" value="validate" />
-                <input type="button" value="Save" onclick="Check(this.form);" />
-            </fieldset>
-            </form>
-            </div>
-            </div>
-            </div>
-        </div>
-    </div>
-</div>
+<!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->