View | Details | Raw Unified | Return to bug 17674
Collapse All | Expand All

(-)a/C4/Serials.pm (+18 lines)
Lines 87-92 BEGIN { Link Here
87
      HasItems
87
      HasItems
88
      &GetSubscriptionsFromBorrower
88
      &GetSubscriptionsFromBorrower
89
      &subscriptionCurrentlyOnOrder
89
      &subscriptionCurrentlyOnOrder
90
      &GetSerialItemsInformations
90
91
91
    );
92
    );
92
}
93
}
Lines 2720-2726 sub _can_do_on_subscription { Link Here
2720
    }
2721
    }
2721
    return 0;
2722
    return 0;
2722
}
2723
}
2724
=head1 GetSerialItemsInformations
2725
=cut
2726
sub GetSerialItemsInformations{
2727
my (@serialid)=@_;
2728
my $i=0;
2729
my @serialitemsinformation;
2730
my $dbh = C4::Context->dbh;
2731
foreach my $sid(@serialid){
2732
        my $sth = $dbh->prepare("select count(i.itemnumber) as countitems,s.itemnumber as itemnumber  from items i  natural join  serialitems s where s.serialid=?");
2733
        $sth->execute($sid);
2734
        my $line   = $sth->fetchrow_hashref;
2735
        if($line->{'countitems'}){
2736
            push @serialitemsinformation,$line;
2737
        }
2738
}
2739
    return @serialitemsinformation;
2723
2740
2741
}
2724
=head2 findSerialsByStatus
2742
=head2 findSerialsByStatus
2725
2743
2726
    @serials = findSerialsByStatus($status, $subscriptionid);
2744
    @serials = findSerialsByStatus($status, $subscriptionid);
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-collection.tt (-3 / +126 lines)
Lines 6-11 Link Here
6
<title>Koha &rsaquo; Serials &rsaquo; Serial collection information for [% bibliotitle %]</title>
6
<title>Koha &rsaquo; Serials &rsaquo; Serial collection information for [% bibliotitle %]</title>
7
[% INCLUDE 'doc-head-close.inc' %]
7
[% INCLUDE 'doc-head-close.inc' %]
8
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
8
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
9
[% INCLUDE 'datatables.inc' %]
10
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
11
12
<script type="text/javascript">
13
//<![CDATA[
14
function generateReceive(subscriptionid) {
15
    if(nbissues=prompt(_("How many issues do you want to receive ?"))){
16
        document.location = 'serials-collection.pl?op=gennext&subscriptionid='+subscriptionid+'&nbissues='+nbissues;
17
    }
18
}
19
20
function deleteIssues(subscriptionid){
21
    var serialnumber=0;
22
    var serials="";
23
    var serialids = document.edition.serialid;
24
    for(i=0;i<serialids.length;i++){
25
        if (serialids[i].checked==true){
26
            if (serials.length==0){
27
                serials+=serialids[i].value;
28
            }else{
29
                serials+="!"+serialids[i].value;
30
            }
31
            serialnumber ++;
32
        }
33
    }
34
    if(serialnumber==0){
35
        alert("No serials selected");
36
    }else{
37
        document.location = 'serials-collection.pl?subscriptionid='+subscriptionid+                 '&op=delete&serialsid='+serials+'&serialnumber='+serialnumber;
38
    }
39
}
40
41
function print_slip(subscriptionid,issue){
42
    var myurl = 'routing-preview.pl?ok=1&subscriptionid='+subscriptionid+'&issue='+issue;
43
    window.open(myurl,'PrintSlip','width=500,height=500,toolbar=no,scrollbars=yes');
44
}
45
function addsubscriptionid()
46
{
47
	var tab=new Array();
48
    var serialids = document.edition.serialid;
49
    for (i=0; i<serialids.length; i++){
50
      if (serialids[i].checked == true){
51
        var found=false;
52
        for (var val in tab){
53
          if (tab[val] == document.getElementsByName("subs")[i].getAttribute('val')){found = true;}
54
        }
55
        if (found == false){
56
          tab=tab.concat((document.getElementsByName("subs")[i].getAttribute('val')));
57
        }
58
      }
59
    }
60
    var string="";
61
    for (var val in tab){
62
      string = string + tab[val] + ",";
63
    }
64
    string=string.substring(0,string.length -1);
65
    document.edition.subscriptionid.value=string;
66
}
67
function popup(subscriptionid) {
68
    newin=window.open('subscription-renew.pl?mode=popup&subscriptionid='+subscriptionid,'popup','width=500,height=400,toolbar=false,scrollbars=yes');
69
}
70
71
function generateNext(subscriptionid) {
72
	if(confirm(_("Do you really want to generate next serial?"))){
73
		document.location = 'serials-collection.pl?op=gennext&subscriptionid='+subscriptionid;
74
	}
75
}
76
77
function CheckAll( node ) {
78
    $("#"+node).checkCheckboxes();
79
    return false;
80
}
81
function CheckNone( node ) {
82
    $("#"+node).unCheckCheckboxes();
83
    return false;
84
}
85
$(document).ready(function() {
86
    $('#subscription_years').tabs();
87
    $(".subscription-year-table").dataTable($.extend(true, {}, dataTablesDefaults, {
88
        "aoColumnDefs": [
89
            { "aTargets": [ 0,-1 ], "bSortable": false, "bSearchable": false },
90
            { "sType": "title-string", "aTargets" : [ "title-string" ] }
91
        ],
92
        "aaSorting": [[0, 'desc']],
93
        "sDom": 't',
94
        "bAutoWidth": false,
95
        "bPaginate": false,
96
        "bInfo": false,
97
        "bFilter": false,
98
    } ));
99
});
100
101
//]]>
102
</script>
9
</head>
103
</head>
10
104
11
<body id="ser_serials-collection" class="ser">
105
<body id="ser_serials-collection" class="ser">
Lines 14-19 Link Here
14
108
15
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo; Serial collection information for  <i>[% bibliotitle %]</i></div>
109
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo; Serial collection information for  <i>[% bibliotitle %]</i></div>
16
110
111
[% IF ( delete ) %]
112
 <div class="yui-g">
113
 <div id="circ_needsconfirmation" class="dialog alert">
114
   <h3>Are you sure delete <b> [% serialnumber %] </b> selected serials</h3>
115
   <form action="/cgi-bin/koha/serials/serials-collection.pl/#">
116
           <h5>Delete associated items <input type="radio" name="delitems" value="Yes">Yes
117
           <input type="radio" name="delitems" value="No" checked>No</h5>
118
           <h5>Number of items available <b>: [% countitems %] </b> </h5>
119
           <input type="hidden" name="subscriptionid" value="[% subscriptionid %]" />
120
           <input type="hidden" name="serialsid" value="[% serialsid %]" />
121
           <input type="hidden" name="confdelete" value="1" />
122
           <input type="submit" class="approve" value="Yes, delete"/>
123
       </form>
124
       <form action=""/cgi-bin/koha/serials/serials-collection.pl/#">
125
           <input type="hidden" name="subscriptionid" value="[% subscriptionid %]" />
126
           <input type="submit" class="deny" value="No, don't delete"/>
127
       </form>
128
   </div>
129
 </div>
130
 [% END %]
17
<div id="doc3" class="yui-t2">
131
<div id="doc3" class="yui-t2">
18
   
132
   
19
   <div id="bd">
133
   <div id="bd">
Lines 116-121 Link Here
116
                <input type="button" value="Generate next" onclick="javascript:generateNext([% subscriptionidlist %])" />
230
                <input type="button" value="Generate next" onclick="javascript:generateNext([% subscriptionidlist %])" />
117
                [% IF ( subscriptions.size == 1 and !serialsadditems ) %]&nbsp;<input type="button" value="Multi receiving" onclick="javascript:generateReceive([% subscriptionidlist %])" />[% END %]
231
                [% IF ( subscriptions.size == 1 and !serialsadditems ) %]&nbsp;<input type="button" value="Multi receiving" onclick="javascript:generateReceive([% subscriptionidlist %])" />[% END %]
118
            [% END %]
232
            [% END %]
233
            <input type="button" value="Delete selected issues" onclick="javascript:deleteIssues([% subscriptionidlist %])"/>
119
        </p>
234
        </p>
120
    [% END %]
235
    [% END %]
121
      <span class="checkall">
236
      <span class="checkall">
Lines 157-168 Link Here
157
                    disabled
272
                    disabled
158
                  [% ELSE %]
273
                  [% ELSE %]
159
                    [% IF ( serial.subscriptionexpired ) %]
274
                    [% IF ( serial.subscriptionexpired ) %]
160
                    <input type="checkbox" name="serialid" value="[% serial.serialid %]" disabled="disabled" />
275
                       <input type="checkbox" name="serialid" value="[% serial.serialid %]" disabled="disabled" />
161
                    [% ELSE %]
276
                    [% ELSE %]
162
                      [% IF ( serial.checked ) %]
277
                      [% IF ( serial.checked ) %]
163
                    <input type="checkbox" class="checkboxed" name="serialid" checked="checked" value="[% serial.serialid %]" />
278
                         [% IF ( delete ) %]
279
                            <input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid %]" [% IF ( delete ) %] readonly [% END %] [% IF serialsid.grep("${serial.serialid}").size %] checked [% END %] />
280
                         [% ELSE %]
281
                            <input type="checkbox" class="checkboxed" name="serialid" checked="checked" value="[% serial.serialid %]" />
282
                         [% END %]
164
                      [% ELSE %]
283
                      [% ELSE %]
165
                    <input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid %]" />
284
                         [% IF ( delete ) %]
285
                            <input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid %]" [% IF ( delete ) %] readonly [% END %] [% IF serialsid.grep("${serial.serialid}").size %] checked [% END %] />
286
                         [% ELSE %]
287
                            <input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid %]" />
288
                         [% END %]
166
                      [% END %]
289
                      [% END %]
167
                    [% END %]
290
                    [% END %]
168
                  [% END %]
291
                  [% END %]
(-)a/serials/serials-collection.pl (-3 / +33 lines)
Lines 25-30 use CGI qw ( -utf8 ); Link Here
25
use C4::Auth;
25
use C4::Auth;
26
use C4::Koha;
26
use C4::Koha;
27
use C4::Serials;
27
use C4::Serials;
28
use C4::Items;
28
use C4::Letters;
29
use C4::Letters;
29
use C4::Output;
30
use C4::Output;
30
use C4::Context;
31
use C4::Context;
Lines 48-58 my ($template, $loggedinuser, $cookie) Link Here
48
my $biblionumber = $query->param('biblionumber');
49
my $biblionumber = $query->param('biblionumber');
49
my @subscriptionid = $query->multi_param('subscriptionid');
50
my @subscriptionid = $query->multi_param('subscriptionid');
50
51
52
my $serialsid=$query->param('serialsid');
53
my $serialnumber=$query->param('serialnumber');
54
my $confdelete=$query->param('confdelete');
55
my $delitems=$query->param('delitems');
51
@subscriptionid= uniq @subscriptionid;
56
@subscriptionid= uniq @subscriptionid;
52
@subscriptionid= sort @subscriptionid;
57
@subscriptionid= sort @subscriptionid;
53
my $subscriptiondescs;
58
my $subscriptiondescs;
54
my $subscriptions;
59
my $subscriptions;
55
60
my $delete;
61
my $countitems=0;
62
my @ids=split("!",$serialsid);
63
my @serialitemsinformation=GetSerialItemsInformations(@ids);
64
my $subscriptionid = $subscriptionid[0];
56
if($op eq 'gennext' && @subscriptionid){
65
if($op eq 'gennext' && @subscriptionid){
57
    my $subscriptionid = $subscriptionid[0];
66
    my $subscriptionid = $subscriptionid[0];
58
    my $sth = $dbh->prepare("
67
    my $sth = $dbh->prepare("
Lines 102-107 if($op eq 'gennext' && @subscriptionid){ Link Here
102
    print $query->redirect('/cgi-bin/koha/serials/serials-collection.pl?subscriptionid='.$subscriptionid);
111
    print $query->redirect('/cgi-bin/koha/serials/serials-collection.pl?subscriptionid='.$subscriptionid);
103
}
112
}
104
113
114
if($op eq 'delete'){
115
    $delete=1;
116
    foreach my $line (@serialitemsinformation){
117
        $countitems+=$line->{'countitems'};
118
    }
119
}
120
if($confdelete){
121
    for my $id(@ids){
122
        ModSerialStatus($id,"","","","",6);
123
    }
124
    if($delitems eq "Yes"){
125
        foreach my $line (@serialitemsinformation){
126
            DelItem($line);
127
        }
128
    }
129
print $query->redirect('/cgi-bin/koha/serials/serials-collection.pl?subscriptionid='.$subscriptionid);
130
}
105
my $subscriptioncount;
131
my $subscriptioncount;
106
my ($location, $callnumber);
132
my ($location, $callnumber);
107
if (@subscriptionid){
133
if (@subscriptionid){
Lines 173-178 $template->param( Link Here
173
          callnumber	       => $callnumber,
199
          callnumber	       => $callnumber,
174
          uc(C4::Context->preference("marcflavour")) => 1,
200
          uc(C4::Context->preference("marcflavour")) => 1,
175
          serialsadditems   => $subscriptiondescs->[0]{'serialsadditems'},
201
          serialsadditems   => $subscriptiondescs->[0]{'serialsadditems'},
176
          );
202
          subscriptionid =>$subscriptionid,
203
          delete =>$delete,
204
          serialsid =>$serialsid,
205
          serialnumber =>$serialnumber,
206
          countitems =>$countitems,
207
      );
177
208
178
output_html_with_http_headers $query, $cookie, $template->output;
209
output_html_with_http_headers $query, $cookie, $template->output;
179
- 

Return to bug 17674