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

(-)a/C4/Serials.pm (-2 / +27 lines)
Lines 859-866 sub GetNextSeq { Link Here
859
        }
859
        }
860
    }
860
    }
861
861
862
    my $numberingmethod = $pattern->{numberingmethod};
863
    my $calculated = "";
862
    my $calculated = "";
863
    my $numberingmethod = "";
864
    if ($pattern eq "pubdate"){
865
        $calculated = dt_from_string( $planneddate )->strftime( '%Y %B %d' );
866
    } else {
867
        $numberingmethod = $pattern->{numberingmethod};
868
    }
864
    if ($numberingmethod) {
869
    if ($numberingmethod) {
865
        $calculated    = $numberingmethod;
870
        $calculated    = $numberingmethod;
866
        my $locale = $subscription->{locale};
871
        my $locale = $subscription->{locale};
Lines 940-945 the sequence in string format Link Here
940
sub GetSeq {
945
sub GetSeq {
941
    my ($subscription, $pattern) = @_;
946
    my ($subscription, $pattern) = @_;
942
947
948
    if ($pattern->{numberingmethod} eq ''){
949
        return "pubdate";
950
    }
951
943
    return unless ($subscription and $pattern);
952
    return unless ($subscription and $pattern);
944
953
945
    my $locale = $subscription->{locale};
954
    my $locale = $subscription->{locale};
Lines 1147-1152 sub ModSerialStatus { Link Here
1147
        my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern});
1156
        my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern});
1148
        my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity});
1157
        my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subscription->{periodicity});
1149
1158
1159
        my $nextpublisheddate = GetNextDate($subscription, $publisheddate, 1);
1160
        my ( $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1161
             $newinnerloop1, $newinnerloop2, $newinnerloop3 );
1162
1163
        if (!defined $pattern){
1164
            $pattern = "pubdate";
1165
            ( $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1166
              $newinnerloop1, $newinnerloop2, $newinnerloop3 ) = GetNextSeq( $subscription, $pattern, $nextpublisheddate );
1167
        } else {
1168
            ( $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1169
              $newinnerloop1, $newinnerloop2, $newinnerloop3 ) = GetNextSeq( $subscription, $pattern, $publisheddate );
1170
        }
1171
1150
        # next issue number
1172
        # next issue number
1151
        my (
1173
        my (
1152
            $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
1174
            $newserialseq,  $newlastvalue1, $newlastvalue2, $newlastvalue3,
Lines 1155-1161 sub ModSerialStatus { Link Here
1155
          = GetNextSeq( $subscription, $pattern, $frequency, $publisheddate );
1177
          = GetNextSeq( $subscription, $pattern, $frequency, $publisheddate );
1156
1178
1157
        # next date (calculated from actual date & frequency parameters)
1179
        # next date (calculated from actual date & frequency parameters)
1158
        my $nextpublisheddate = GetNextDate($subscription, $publisheddate, $frequency, 1);
1159
        my $nextpubdate = $nextpublisheddate;
1180
        my $nextpubdate = $nextpublisheddate;
1160
        $query = "UPDATE subscription SET lastvalue1=?, lastvalue2=?, lastvalue3=?, innerloop1=?, innerloop2=?, innerloop3=?
1181
        $query = "UPDATE subscription SET lastvalue1=?, lastvalue2=?, lastvalue3=?, innerloop1=?, innerloop2=?, innerloop3=?
1161
                    WHERE  subscriptionid = ?";
1182
                    WHERE  subscriptionid = ?";
Lines 1437-1442 sub NewSubscription { Link Here
1437
    # calculate issue number
1458
    # calculate issue number
1438
    my $serialseq = GetSeq($subscription, $pattern) || q{};
1459
    my $serialseq = GetSeq($subscription, $pattern) || q{};
1439
1460
1461
    if ($serialseq eq "pubdate"){
1462
        $serialseq = dt_from_string( $firstacquidate )->strftime('%Y %B %d');
1463
    }
1464
1440
    Koha::Serial->new(
1465
    Koha::Serial->new(
1441
        {
1466
        {
1442
            serialseq      => $serialseq,
1467
            serialseq      => $serialseq,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt (+1 lines)
Lines 316-321 fieldset.rows table { clear: none; margin: 0; } Link Here
316
                                                    [% numberpattern.label | html %]
316
                                                    [% numberpattern.label | html %]
317
                                                </option>
317
                                                </option>
318
                                            [% END %]
318
                                            [% END %]
319
                                            <option value="0">Use publication date</option>
319
                                        </select>
320
                                        </select>
320
                                        <span class="required">Required</span>
321
                                        <span class="required">Required</span>
321
                                    </li>
322
                                    </li>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt (-1 / +7 lines)
Lines 166-173 Link Here
166
                [% END %]
166
                [% END %]
167
            </li>
167
            </li>
168
            <li><span class="label">Number pattern:</span>
168
            <li><span class="label">Number pattern:</span>
169
                [% numberpattern.label | html %]
169
                [% IF ( numberpattern ) %]
170
                    [% numberpattern.label | html %]
171
                [% ELSE %]
172
                    Uses publication date
173
                [% END %]
170
            </li>
174
            </li>
175
            [% IF ( numberpattern ) %]
171
            <li><table>
176
            <li><table>
172
            <tr>
177
            <tr>
173
                <td>Starting with:</td>
178
                <td>Starting with:</td>
Lines 194-199 Link Here
194
                [% END %]
199
                [% END %]
195
            </tr>
200
            </tr>
196
            </table></li>
201
            </table></li>
202
            [% END %]
197
            [% IF ( irregular_issues ) %]
203
            [% IF ( irregular_issues ) %]
198
            <li><span class="label">Irregularity:</span> [% irregular_issues | html %] issues
204
            <li><span class="label">Irregularity:</span> [% irregular_issues | html %] issues
199
            </li>
205
            </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 529-534 function hidePredcitionPatternTest(){ Link Here
529
    $("#page_2 > div").attr("class","col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2");
547
    $("#page_2 > div").attr("class","col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2");
530
}
548
}
531
549
550
function usedatepattern() {
551
    $("#more_options").hide();
552
    clearAdvancedPattern();
553
    if ($("#advancedpredictionpattern").is(":visible")){
554
        $("#advancedpredictionpattern").toggle();
555
        $(".toggle_advanced_pattern").toggle();
556
    }
557
}
558
532
$(document).ready(function() {
559
$(document).ready(function() {
533
    if ( mana_enabled == 1 ) {
560
    if ( mana_enabled == 1 ) {
534
        mana_search();
561
        mana_search();
Lines 561-567 $(document).ready(function() { Link Here
561
    });
588
    });
562
    $("select#numberpattern").change(function(){
589
    $("select#numberpattern").change(function(){
563
        patternneedtobetested = 1;
590
        patternneedtobetested = 1;
564
        numberpatternload();
591
        console.log($("select#numberpattern").val());
592
        if ($("select#numberpattern").val() == "0"){
593
            usedatepattern();
594
        } else {
595
            numberpatternload();
596
        }
565
    });
597
    });
566
    $("#subtype").change(function(){
598
    $("#subtype").change(function(){
567
        $("input[name='enddate']").val('');
599
        $("input[name='enddate']").val('');
Lines 610-616 $(document).ready(function() { Link Here
610
    if($("#frequency").val() != ""){
642
    if($("#frequency").val() != ""){
611
        frequencyload();
643
        frequencyload();
612
    }
644
    }
613
    if($("#numberpattern").val() != ""){
645
    if($("#numberpattern").val() != "0" && $("#numberpattern").val() != ""){
614
        numberpatternload();
646
        numberpatternload();
615
    }
647
    }
616
648
(-)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 127-134 if (@subscriptionid){ Link Here
127
    $location = $subs->{'location'};
131
    $location = $subs->{'location'};
128
	$callnumber = $subs->{callnumber};
132
	$callnumber = $subs->{callnumber};
129
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subs->{periodicity});
133
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($subs->{periodicity});
130
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subs->{numberpattern});
131
    $subs->{frequency} = $frequency;
134
    $subs->{frequency} = $frequency;
135
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subs->{numberpattern});
136
    if (!defined $numberpattern){
137
        $numberpattern->{label} = "Uses publication date";
138
    }
132
    $subs->{numberpattern} = $numberpattern;
139
    $subs->{numberpattern} = $numberpattern;
133
    $subs->{'hasRouting'} = check_routing($subscriptionid);
140
    $subs->{'hasRouting'} = check_routing($subscriptionid);
134
    push @$subscriptiondescs,$subs;
141
    push @$subscriptiondescs,$subs;
Lines 147-153 if (@subscriptionid){ Link Here
147
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($s->{periodicity});
154
    my $frequency = C4::Serials::Frequency::GetSubscriptionFrequency($s->{periodicity});
148
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($s->{numberpattern});
155
    my $numberpattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($s->{numberpattern});
149
    $s->{frequency} = $frequency;
156
    $s->{frequency} = $frequency;
150
    $s->{numberpattern} = $numberpattern;
157
    if (!defined $numberpattern){
158
        $numberpattern->{label} = "pubdate";
159
    } else {
160
        $s->{numberpattern} = $numberpattern;
161
    }
151
  }
162
  }
152
  my $subscriptioninformation = GetFullSubscriptionsFromBiblionumber($biblionumber);
163
  my $subscriptioninformation = GetFullSubscriptionsFromBiblionumber($biblionumber);
153
  $subscriptions=PrepareSerialsData($subscriptioninformation);
164
  $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 367-372 sub redirect_add_subscription { Link Here
367
            $enddate = _guess_enddate($startdate, $periodicity, $numberlength, $weeklength, $monthlength)
367
            $enddate = _guess_enddate($startdate, $periodicity, $numberlength, $weeklength, $monthlength)
368
        }
368
        }
369
    }
369
    }
370
371
    if ($numberpattern == "0"){ # using publication date as numbering pattern
372
        $numberpattern = undef;
373
    }
374
370
    my $subscriptionid = NewSubscription(
375
    my $subscriptionid = NewSubscription(
371
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $biblionumber,
376
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $biblionumber,
372
        $startdate, $periodicity, $numberlength, $weeklength,
377
        $startdate, $periodicity, $numberlength, $weeklength,
Lines 490-495 sub redirect_mod_subscription { Link Here
490
        $firstissuedate = $nextacquidate if($nextexpected->{isfirstissue});
495
        $firstissuedate = $nextacquidate if($nextexpected->{isfirstissue});
491
    }
496
    }
492
497
498
    if ($numberpattern == "0"){ # using publication date as numbering pattern
499
        $numberpattern = undef;
500
    }
501
493
    ModSubscription(
502
    ModSubscription(
494
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $startdate,
503
        $auser, $branchcode, $aqbooksellerid, $cost, $aqbudgetid, $startdate,
495
        $periodicity, $firstacquidate, join(";",@irregularity),
504
        $periodicity, $firstacquidate, join(";",@irregularity),
496
- 

Return to bug 22188