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

(-)a/C4/Serials.pm (-3 / +10 lines)
Lines 724-732 sub GetSerials2 { Link Here
724
    my @serials;
724
    my @serials;
725
725
726
    while ( my $line = $sth->fetchrow_hashref ) {
726
    while ( my $line = $sth->fetchrow_hashref ) {
727
        $line->{ "status" . $line->{status} } = 1;                                         # fills a "statusX" value, used for template status select list
727
        $line->{ "status" . $line->{status} } = 1; # fills a "statusX" value, used for template status select list
728
        $line->{"planneddate"}                = format_date( $line->{"planneddate"} );
728
        # Format dates for display
729
        $line->{"publisheddate"}              = format_date( $line->{"publisheddate"} );
729
        for my $datefield ( qw( planneddate publisheddate ) ) {
730
            if ($line->{$datefield} =~m/^00/) {
731
                $line->{$datefield} = q{};
732
            }
733
            else {
734
                $line->{$datefield} = format_date( $line->{$datefield} );
735
            }
736
        }
730
        push @serials, $line;
737
        push @serials, $line;
731
    }
738
    }
732
    return @serials;
739
    return @serials;
(-)a/serials/serials-collection.pl (+1 lines)
Lines 49-54 my $biblionumber = $query->param('biblionumber'); Link Here
49
my @subscriptionid = $query->param('subscriptionid');
49
my @subscriptionid = $query->param('subscriptionid');
50
50
51
@subscriptionid= uniq @subscriptionid;
51
@subscriptionid= uniq @subscriptionid;
52
@subscriptionid= sort @subscriptionid;
52
my $subscriptiondescs;
53
my $subscriptiondescs;
53
my $subscriptions;
54
my $subscriptions;
54
55
(-)a/serials/serials-edit.pl (-46 / +52 lines)
Lines 92-110 my @errseq; Link Here
92
92
93
# If user comes from subscription details
93
# If user comes from subscription details
94
unless (@serialids) {
94
unless (@serialids) {
95
    foreach my $subscriptionid (@subscriptionids) {
95
    my $serstatus = $query->param('serstatus');
96
        my $serstatus = $query->param('serstatus');
96
    if ($serstatus) {
97
        if ($serstatus) {
97
        foreach my $subscriptionid (@subscriptionids) {
98
            my @tmpser = GetSerials2( $subscriptionid, $serstatus );
98
            my @tmpser = GetSerials2( $subscriptionid, $serstatus );
99
            foreach (@tmpser) {
99
            push @serialids, map { $_->{serialid} } @tmpser;
100
                push @serialids, $_->{'serialid'};
101
            }
102
        }
100
        }
103
    }
101
    }
104
}
102
}
105
103
106
unless ( scalar(@serialids) ) {
104
unless ( @serialids ) {
107
    my $string = "serials-collection.pl?subscriptionid=" . join( ",", uniq @subscriptionids );
105
    my $string =
106
      'serials-collection.pl?subscriptionid=' . join ',', uniq @subscriptionids;
108
    $string =~ s/,$//;
107
    $string =~ s/,$//;
109
108
110
    print $query->redirect($string);
109
    print $query->redirect($string);
Lines 112-123 unless ( scalar(@serialids) ) { Link Here
112
111
113
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
112
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
114
    {
113
    {
115
	template_name   => "serials/serials-edit.tmpl",
114
        template_name   => 'serials/serials-edit.tmpl',
116
	query           => $query,
115
        query           => $query,
117
	type            => "intranet",
116
        type            => 'intranet',
118
	authnotrequired => 0,
117
        authnotrequired => 0,
119
	flagsrequired   => {serials => 'receive_serials'},
118
        flagsrequired   => { serials => 1 },
120
	debug           => 1,
119
        debug           => 1,
121
    }
120
    }
122
);
121
);
123
122
Lines 125-160 my @serialdatalist; Link Here
125
my %processedserialid;
124
my %processedserialid;
126
125
127
my $today = C4::Dates->new();
126
my $today = C4::Dates->new();
128
foreach my $tmpserialid (@serialids) {
127
foreach my $serialid (@serialids) {
129
128
130
    #filtering serialid for duplication
129
    #filtering serialid for duplication
131
    #NEW serial should appear only once and are created afterwards
130
    #NEW serial should appear only once and are created afterwards
132
    if (   defined($tmpserialid)
131
    if (   $serialid
133
        && $tmpserialid =~ /^[0-9]+$/
132
        && $serialid =~ /^[0-9]+$/
134
        && !$processedserialid{$tmpserialid} )
133
        && !$processedserialid{$serialid} )
135
    {
134
    {
136
        my $data = GetSerialInformation($tmpserialid);
135
        my $serinfo = GetSerialInformation($serialid); #TODO duplicates work done by GetSerials2 above
137
        for my $datefield ( qw( publisheddate planneddate) ) {
136
        for my $d ( qw( publisheddate planneddate )){
138
            if ($data->{$datefield} && $data->{$datefield}!~m/^00/) {
137
            if ( $serinfo->{$d} =~m/^00/ ) {
139
                $data->{$datefield} = format_date( $data->{$datefield} );
138
                $serinfo->{$d} = q{};
140
            }
139
            }
141
            else {
140
            else {
142
                $data->{$datefield} = q{};
141
                $serinfo->{$d} = format_date( $serinfo->{$d} );
143
            }
142
            }
144
        }
143
        }
145
        $data->{arriveddate}=$today->output('syspref');
144
        $serinfo->{arriveddate}=$today->output('syspref');
146
        $data->{'editdisable'} = (
145
146
        $serinfo->{'editdisable'} = (
147
            (
147
            (
148
                HasSubscriptionExpired( $data->{subscriptionid} ) == 1
148
                HasSubscriptionExpired( $serinfo->{subscriptionid} )
149
                  && $data->{'status1'}
149
                && $serinfo->{'status1'}
150
            )
150
            )
151
              || $data->{'cannotedit'}
151
            || $serinfo->{'cannotedit'}
152
        );
152
        );
153
        push @serialdatalist, $data;
153
        push @serialdatalist, $serinfo;
154
        $processedserialid{$tmpserialid} = 1;
154
        $processedserialid{$serialid} = 1;
155
    }
155
    }
156
}
156
}
157
my $bibdata = GetBiblioData( $serialdatalist[0]->{'biblionumber'} );
157
my $biblio = GetBiblioData( $serialdatalist[0]->{'biblionumber'} );
158
158
159
my @newserialloop;
159
my @newserialloop;
160
my @subscriptionloop;
160
my @subscriptionloop;
Lines 164-171 my %processedsubscriptionid; Link Here
164
foreach my $subscriptionid (@subscriptionids) {
164
foreach my $subscriptionid (@subscriptionids) {
165
165
166
    #Do not process subscriptionid twice if it was already processed.
166
    #Do not process subscriptionid twice if it was already processed.
167
    if ( defined($subscriptionid)
167
    if ( $subscriptionid && !$processedsubscriptionid{$subscriptionid} )
168
        && !$processedsubscriptionid{$subscriptionid} )
169
    {
168
    {
170
        my $cell;
169
        my $cell;
171
        if ( $serialdatalist[0]->{'serialsadditems'} ) {
170
        if ( $serialdatalist[0]->{'serialsadditems'} ) {
Lines 177-184 foreach my $subscriptionid (@subscriptionids) { Link Here
177
            $cell->{serialsadditems} = 1;
176
            $cell->{serialsadditems} = 1;
178
        }
177
        }
179
        $cell->{'subscriptionid'} = $subscriptionid;
178
        $cell->{'subscriptionid'} = $subscriptionid;
180
        $cell->{'itemid'}         = "NNEW";
179
        $cell->{'itemid'}         = 'NNEW';
181
        $cell->{'serialid'}       = "NEW";
180
        $cell->{'serialid'}       = 'NEW';
182
        $cell->{'issuesatonce'}   = 1;
181
        $cell->{'issuesatonce'}   = 1;
183
        $cell->{arriveddate}=$today->output('syspref');
182
        $cell->{arriveddate}=$today->output('syspref');
184
183
Lines 199-206 if ( $op and $op eq 'serialchangestatus' ) { Link Here
199
198
200
    my $newserial;
199
    my $newserial;
201
    for ( my $i = 0 ; $i <= $#serialids ; $i++ ) {
200
    for ( my $i = 0 ; $i <= $#serialids ; $i++ ) {
201
        my ($plan_date, $pub_date);
202
203
        if (defined $planneddates[$i] && $planneddates[$i] ne 'XXX') {
204
            $plan_date = format_date_in_iso( $planneddates[$i] );
205
        }
206
        if (defined $publisheddates[$i] && $publisheddates[$i] ne 'XXX') {
207
            $pub_date = format_date_in_iso( $publisheddates[$i] );
208
        }
202
209
203
        if ( $serialids[$i] && $serialids[$i] eq "NEW" ) {
210
        if ( $serialids[$i] && $serialids[$i] eq 'NEW' ) {
204
            if ( $serialseqs[$i] ) {
211
            if ( $serialseqs[$i] ) {
205
212
206
            #IF newserial was provided a name Then we have to create a newSerial
213
            #IF newserial was provided a name Then we have to create a newSerial
Lines 210-217 if ( $op and $op eq 'serialchangestatus' ) { Link Here
210
                    $subscriptionids[0],
217
                    $subscriptionids[0],
211
                    $serialdatalist[0]->{'biblionumber'},
218
                    $serialdatalist[0]->{'biblionumber'},
212
                    $status[$i],
219
                    $status[$i],
213
                    format_date_in_iso( $planneddates[$i] ),
220
                    $plan_date,
214
                    format_date_in_iso( $publisheddates[$i] ),
221
                    $pub_date,
215
                    $notes[$i]
222
                    $notes[$i]
216
                );
223
                );
217
            }
224
            }
Lines 220-227 if ( $op and $op eq 'serialchangestatus' ) { Link Here
220
            ModSerialStatus(
227
            ModSerialStatus(
221
                $serialids[$i],
228
                $serialids[$i],
222
                $serialseqs[$i],
229
                $serialseqs[$i],
223
                format_date_in_iso( $planneddates[$i] ),
230
                $plan_date,
224
                format_date_in_iso( $publisheddates[$i] ),
231
                $pub_date,
225
                $status[$i],
232
                $status[$i],
226
                $notes[$i]
233
                $notes[$i]
227
            );
234
            );
Lines 300-313 if ( $op and $op eq 'serialchangestatus' ) { Link Here
300
                            $serialdatalist[0]->{'biblionumber'}
307
                            $serialdatalist[0]->{'biblionumber'}
301
                        )
308
                        )
302
                      );
309
                      );
303
                    if ( C4::Context->preference("autoBarcode") eq
310
                    if ( C4::Context->preference('autoBarcode') eq
304
                        'incremental' )
311
                        'incremental' )
305
                    {
312
                    {
306
                        if ( !$bib_record->field($barcodetagfield)
313
                        if ( !$bib_record->field($barcodetagfield)
307
                            ->subfield($barcodetagsubfield) )
314
                            ->subfield($barcodetagsubfield) )
308
                        {
315
                        {
309
                            my $sth_barcode = $dbh->prepare(
316
                            my $sth_barcode = $dbh->prepare(
310
                                "select max(abs(barcode)) from items");
317
                                'select max(abs(barcode)) from items');
311
                            $sth_barcode->execute;
318
                            $sth_barcode->execute;
312
                            my ($newbarcode) = $sth_barcode->fetchrow;
319
                            my ($newbarcode) = $sth_barcode->fetchrow;
313
320
Lines 365-372 if ( $op and $op eq 'serialchangestatus' ) { Link Here
365
        }
372
        }
366
    }
373
    }
367
    else {
374
    else {
368
        my $redirect = "serials-collection.pl?";
375
        my $redirect = 'serials-collection.pl?';
369
        $redirect .= join( '&', map { "subscriptionid=" . $_ } sort @subscriptionids );# ID The sort necessary
376
        $redirect .= join( '&', map { 'subscriptionid=' . $_ } @subscriptionids );
370
        print $query->redirect($redirect);
377
        print $query->redirect($redirect);
371
    }
378
    }
372
}
379
}
Lines 380-386 my $default_bib_view = get_default_view(); Link Here
380
$template->param(
387
$template->param(
381
    serialsadditems => $serialdatalist[0]->{'serialsadditems'},
388
    serialsadditems => $serialdatalist[0]->{'serialsadditems'},
382
    callnumber	     => $serialdatalist[0]->{'callnumber'},
389
    callnumber	     => $serialdatalist[0]->{'callnumber'},
383
    bibliotitle     => $bibdata->{'title'},
390
    bibliotitle     => $biblio->{'title'},
384
    biblionumber    => $serialdatalist[0]->{'biblionumber'},
391
    biblionumber    => $serialdatalist[0]->{'biblionumber'},
385
    serialslist     => \@serialdatalist,
392
    serialslist     => \@serialdatalist,
386
    default_bib_view => $default_bib_view,
393
    default_bib_view => $default_bib_view,
387
- 

Return to bug 5026