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

(-)a/C4/Serials.pm (-2 / +27 lines)
Lines 870-877 sub GetNextSeq { Link Here
870
        }
870
        }
871
    }
871
    }
872
872
873
    my $numberingmethod = $pattern->{numberingmethod};
874
    my $calculated = "";
873
    my $calculated = "";
874
    my $numberingmethod = "";
875
    if ($pattern eq "pubdate"){
876
        $calculated = dt_from_string( $planneddate )->strftime( '%Y %B %d' );
877
    } else {
878
        $numberingmethod = $pattern->{numberingmethod};
879
    }
875
    if ($numberingmethod) {
880
    if ($numberingmethod) {
876
        $calculated    = $numberingmethod;
881
        $calculated    = $numberingmethod;
877
        my $locale = $subscription->{locale};
882
        my $locale = $subscription->{locale};
Lines 951-956 the sequence in string format Link Here
951
sub GetSeq {
956
sub GetSeq {
952
    my ($subscription, $pattern) = @_;
957
    my ($subscription, $pattern) = @_;
953
958
959
    if ($pattern->{numberingmethod} eq ''){
960
        return "pubdate";
961
    }
962
954
    return unless ($subscription and $pattern);
963
    return unless ($subscription and $pattern);
955
964
956
    my $locale = $subscription->{locale};
965
    my $locale = $subscription->{locale};
Lines 1159-1164 sub ModSerialStatus { Link Here
1159
        my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern});
1168
        my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern});
1160
        my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity});
1169
        my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity});
1161
1170
1171
        my $nextpublisheddate = GetNextDate($subscription, $publisheddate, 1);
1172
        my ( $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1173
             $newinnerloop1, $newinnerloop2, $newinnerloop3 );
1174
1175
        if (!defined $pattern){
1176
            $pattern = "pubdate";
1177
            ( $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1178
              $newinnerloop1, $newinnerloop2, $newinnerloop3 ) = GetNextSeq( $subscription, $pattern, $nextpublisheddate );
1179
        } else {
1180
            ( $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1181
              $newinnerloop1, $newinnerloop2, $newinnerloop3 ) = GetNextSeq( $subscription, $pattern, $publisheddate );
1182
        }
1183
1162
        # next issue number
1184
        # next issue number
1163
        my (
1185
        my (
1164
            $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1186
            $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
Lines 1167-1173 sub ModSerialStatus { Link Here
1167
          = GetNextSeq( $subscription, $pattern, $frequency, $publisheddate );
1189
          = GetNextSeq( $subscription, $pattern, $frequency, $publisheddate );
1168
1190
1169
        # next date (calculated from actual date & frequency parameters)
1191
        # next date (calculated from actual date & frequency parameters)
1170
        my $nextpublisheddate = GetNextDate($subscription, $publisheddate, $frequency, 1);
1171
        my $nextpubdate = $nextpublisheddate;
1192
        my $nextpubdate = $nextpublisheddate;
1172
        $query = "UPDATE subscription SET lastvalue1=?, lastvalue2=?, lastvalue3=?, innerloop1=?, innerloop2=?, innerloop3=?
1193
        $query = "UPDATE subscription SET lastvalue1=?, lastvalue2=?, lastvalue3=?, innerloop1=?, innerloop2=?, innerloop3=?
1173
                    WHERE  subscriptionid = ?";
1194
                    WHERE  subscriptionid = ?";
Lines 1433-1438 sub NewSubscription { Link Here
1433
    # calculate issue number
1454
    # calculate issue number
1434
    my $serialseq = GetSeq($subscription, $pattern) || q{};
1455
    my $serialseq = GetSeq($subscription, $pattern) || q{};
1435
1456
1457
    if ($serialseq eq "pubdate"){
1458
        $serialseq = dt_from_string( $firstacquidate )->strftime('%Y %B %d');
1459
    }
1460
1436
    Koha::Serial->new(
1461
    Koha::Serial->new(
1437
        {
1462
        {
1438
            serialseq      => $serialseq,
1463
            serialseq      => $serialseq,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt (+1 lines)
Lines 308-313 fieldset.rows li.radio { width: 100%; } /* override staff-global.css */ Link Here
308
                                                    [% numberpattern.label | html %]
308
                                                    [% numberpattern.label | html %]
309
                                                </option>
309
                                                </option>
310
                                            [% END %]
310
                                            [% END %]
311
                                            <option value="0">Use publication date</option>
311
                                        </select>
312
                                        </select>
312
                                    </li>
313
                                    </li>
313
                                    <li>
314
                                    <li>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt (-1 / +7 lines)
Lines 174-181 Link Here
174
                [% END %]
174
                [% END %]
175
            </li>
175
            </li>
176
            <li><span class="label">Number pattern:</span>
176
            <li><span class="label">Number pattern:</span>
177
                [% numberpattern.label | html %]
177
                [% IF ( numberpattern ) %]
178
                    [% numberpattern.label | html %]
179
                [% ELSE %]
180
                    Uses publication date
181
                [% END %]
178
            </li>
182
            </li>
183
            [% IF ( numberpattern ) %]
179
            <li><table>
184
            <li><table>
180
            <tr>
185
            <tr>
181
                <td>Starting with:</td>
186
                <td>Starting with:</td>
Lines 202-207 Link Here
202
                [% END %]
207
                [% END %]
203
            </tr>
208
            </tr>
204
            </table></li>
209
            </table></li>
210
            [% END %]
205
            [% IF ( irregular_issues ) %]
211
            [% IF ( irregular_issues ) %]
206
            <li><span class="label">Irregularity:</span> [% irregular_issues | html %] issues
212
            <li><span class="label">Irregularity:</span> [% irregular_issues | html %] issues
207
            </li>
213
            </li>
(-)a/koha-tmpl/intranet-tmpl/prog/js/subscription-add.js (-2 / +34 lines)
Lines 227-232 function modifyAdvancedPattern() { Link Here
227
    advancedpatternlocked = 0;
227
    advancedpatternlocked = 0;
228
}
228
}
229
229
230
function clearAdvancedPattern() {
231
    $("#patternname").prop('readOnly', false).val('');
232
    $("#numberingmethod").prop('readOnly', false).val('');
233
234
    $("#advancedpredictionpatternt input").each(function() {
235
        $(this).prop('readOnly', false).val('');
236
    });
237
    $("#advancedpredictionpatternt select").each(function() {
238
        $(this).prop('disabled', false).val('');
239
    });
240
241
    $("#restoreadvancedpatternbutton").hide();
242
    $("#saveadvancedpatternbutton").hide();
243
    $("#modifyadvancedpatternbutton").hide();
244
245
    advancedpatternlocked = 1;
246
}
247
230
function restoreAdvancedPattern() {
248
function restoreAdvancedPattern() {
231
    $("#patternname").prop('readOnly', true).val(globalnumpatterndata.label);
249
    $("#patternname").prop('readOnly', true).val(globalnumpatterndata.label);
232
    $("#numberingmethod").prop('readOnly', true).val(globalnumpatterndata.numberingmethod);
250
    $("#numberingmethod").prop('readOnly', true).val(globalnumpatterndata.numberingmethod);
Lines 506-511 function mana_use(mana_id){ Link Here
506
    });
524
    });
507
}
525
}
508
526
527
function usedatepattern() {
528
    $("#more_options").hide();
529
    clearAdvancedPattern();
530
    if ($("#advancedpredictionpattern").is(":visible")){
531
        $("#advancedpredictionpattern").toggle();
532
        $(".toggle_advanced_pattern").toggle();
533
    }
534
}
535
509
$(document).ready(function() {
536
$(document).ready(function() {
510
    if ( mana_enabled == 1 ) {
537
    if ( mana_enabled == 1 ) {
511
        mana_search();
538
        mana_search();
Lines 531-537 $(document).ready(function() { Link Here
531
    });
558
    });
532
    $("select#numberpattern").change(function(){
559
    $("select#numberpattern").change(function(){
533
        patternneedtobetested = 1;
560
        patternneedtobetested = 1;
534
        numberpatternload();
561
        console.log($("select#numberpattern").val());
562
        if ($("select#numberpattern").val() == "0"){
563
            usedatepattern();
564
        } else {
565
            numberpatternload();
566
        }
535
    });
567
    });
536
    $("#subtype").change(function(){
568
    $("#subtype").change(function(){
537
        $("input[name='enddate']").val('');
569
        $("input[name='enddate']").val('');
Lines 580-586 $(document).ready(function() { Link Here
580
    if($("#frequency").val() != ""){
612
    if($("#frequency").val() != ""){
581
        frequencyload();
613
        frequencyload();
582
    }
614
    }
583
    if($("#numberpattern").val() != ""){
615
    if($("#numberpattern").val() != "0" && $("#numberpattern").val() != ""){
584
        numberpatternload();
616
        numberpatternload();
585
    }
617
    }
586
618
(-)a/serials/serials-collection.pl (-2 / +13 lines)
Lines 84-89 if($op eq 'gennext' && @subscriptionid){ Link Here
84
                 $newinnerloop1, $newinnerloop2, $newinnerloop3
84
                 $newinnerloop1, $newinnerloop2, $newinnerloop3
85
            ) = GetNextSeq($subscription, $pattern, $frequency, $expected->{publisheddate});
85
            ) = GetNextSeq($subscription, $pattern, $frequency, $expected->{publisheddate});
86
86
87
            if (!defined $pattern && !defined $newserialseq){
88
                $newserialseq = $expected->{publisheddate};
89
            }
90
87
             ## We generate the next publication date
91
             ## We generate the next publication date
88
             $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity});
92
             $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity});
89
             my $nextpublisheddate = GetNextDate($subscription, $expected->{publisheddate}, $frequency, 1);
93
             my $nextpublisheddate = GetNextDate($subscription, $expected->{publisheddate}, $frequency, 1);
Lines 130-137 if (@subscriptionid){ Link Here
130
    $location = $subs->{'location'};
134
    $location = $subs->{'location'};
131
	$callnumber = $subs->{callnumber};
135
	$callnumber = $subs->{callnumber};
132
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subs->{periodicity});
136
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subs->{periodicity});
133
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subs->{numberpattern});
134
    $subs->{frequency} = $frequency;
137
    $subs->{frequency} = $frequency;
138
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subs->{numberpattern});
139
    if (!defined $numberpattern){
140
        $numberpattern->{label} = "Uses publication date";
141
    }
135
    $subs->{numberpattern} = $numberpattern;
142
    $subs->{numberpattern} = $numberpattern;
136
    $subs->{'hasRouting'} = check_routing($subscriptionid);
143
    $subs->{'hasRouting'} = check_routing($subscriptionid);
137
    push @$subscriptiondescs,$subs;
144
    push @$subscriptiondescs,$subs;
Lines 150-156 if (@subscriptionid){ Link Here
150
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($s->{periodicity});
157
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($s->{periodicity});
151
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($s->{numberpattern});
158
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($s->{numberpattern});
152
    $s->{frequency} = $frequency;
159
    $s->{frequency} = $frequency;
153
    $s->{numberpattern} = $numberpattern;
160
    if (!defined $numberpattern){
161
        $numberpattern->{label} = "pubdate";
162
    } else {
163
        $s->{numberpattern} = $numberpattern;
164
    }
154
  }
165
  }
155
  my $subscriptioninformation = GetFullSubscriptionsFromBiblionumber($biblionumber);
166
  my $subscriptioninformation = GetFullSubscriptionsFromBiblionumber($biblionumber);
156
  $subscriptions=PrepareSerialsData($subscriptioninformation);
167
  $subscriptions=PrepareSerialsData($subscriptioninformation);
(-)a/serials/showpredictionpattern.pl (+9 lines)
Lines 31-36 publication date, based on frequency and first publication date. Link Here
31
use Modern::Perl;
31
use Modern::Perl;
32
32
33
use CGI qw ( -utf8 );
33
use CGI qw ( -utf8 );
34
use POSIX qw(strftime);
34
use Date::Calc qw(Today Day_of_Year Week_of_Year Day_of_Week Days_in_Year Delta_Days Add_Delta_Days Add_Delta_YM);
35
use Date::Calc qw(Today Day_of_Year Week_of_Year Day_of_Week Days_in_Year Delta_Days Add_Delta_Days Add_Delta_YM);
35
use C4::Auth;
36
use C4::Auth;
36
use C4::Output;
37
use C4::Output;
Lines 125-130 if(defined $subscriptionid) { Link Here
125
126
126
my @predictions_loop;
127
my @predictions_loop;
127
my ($calculated) = GetSeq(\%subscription, \%pattern);
128
my ($calculated) = GetSeq(\%subscription, \%pattern);
129
130
if ($calculated eq "pubdate"){
131
    $calculated = dt_from_string( $date )->strftime('%Y %B %d');
132
}
133
128
push @predictions_loop, {
134
push @predictions_loop, {
129
    number => $calculated,
135
    number => $calculated,
130
    publicationdate => $date,
136
    publicationdate => $date,
Lines 172-177 while( $i < 1000 ) { Link Here
172
    ($calculated, $subscription{'lastvalue1'}, $subscription{'lastvalue2'}, $subscription{'lastvalue3'}, $subscription{'innerloop1'}, $subscription{'innerloop2'}, $subscription{'innerloop3'}) = GetNextSeq(\%subscription, \%pattern, $frequency);
178
    ($calculated, $subscription{'lastvalue1'}, $subscription{'lastvalue2'}, $subscription{'lastvalue3'}, $subscription{'innerloop1'}, $subscription{'innerloop2'}, $subscription{'innerloop3'}) = GetNextSeq(\%subscription, \%pattern, $frequency);
173
    $issuenumber++;
179
    $issuenumber++;
174
    $line{'number'} = $calculated;
180
    $line{'number'} = $calculated;
181
    if ($calculated eq ''){
182
        $line{'number'} = dt_from_string( $date )->strftime('%Y %B %d');
183
    }
175
    $line{'issuenumber'} = $issuenumber;
184
    $line{'issuenumber'} = $issuenumber;
176
    if(@irreg && $issuenumber == $irreg[0]){
185
    if(@irreg && $issuenumber == $irreg[0]){
177
        $line{'not_published'} = 1;
186
        $line{'not_published'} = 1;
(-)a/serials/subscription-add.pl (-1 / +9 lines)
Lines 362-367 sub redirect_add_subscription { Link Here
362
            $enddate = _guess_enddate($startdate, $periodicity, $numberlength, $weeklength, $monthlength)
362
            $enddate = _guess_enddate($startdate, $periodicity, $numberlength, $weeklength, $monthlength)
363
        }
363
        }
364
    }
364
    }
365
366
    if ($numberpattern == "0"){ # using publication date as numbering pattern
367
        $numberpattern = undef;
368
    }
369
365
    my $subscriptionid = NewSubscription(
370
    my $subscriptionid = NewSubscription(
366
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $biblionumber,
371
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $biblionumber,
367
        $startdate, $periodicity, $numberlength, $weeklength,
372
        $startdate, $periodicity, $numberlength, $weeklength,
Lines 469-474 sub redirect_mod_subscription { Link Here
469
        $firstissuedate = $nextacquidate if($nextexpected->{isfirstissue});
474
        $firstissuedate = $nextacquidate if($nextexpected->{isfirstissue});
470
    }
475
    }
471
476
477
    if ($numberpattern == "0"){ # using publication date as numbering pattern
478
        $numberpattern = undef;
479
    }
480
472
    ModSubscription(
481
    ModSubscription(
473
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $startdate,
482
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $startdate,
474
        $periodicity, $firstacquidate, join(";",@irregularity),
483
        $periodicity, $firstacquidate, join(";",@irregularity),
475
- 

Return to bug 22188