X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=serials%2Fsubscription-add.pl;h=47430cd96f5f0ee10d8817278880cdd14377f102;hb=ee5c60cc2dced3ef40ae68555a382437e7ba98dc;hp=c00280ee68330dcc8ddbcf7ebf91fadbc12f94f4;hpb=59d80a8ce0f01c23cdef9e4a6e395a9025fb1c0e;p=koha_gimpoz diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl index c00280ee68..47430cd96f 100755 --- a/serials/subscription-add.pl +++ b/serials/subscription-add.pl @@ -17,10 +17,10 @@ use strict; use CGI; -use Date::Calc qw(Today Day_of_Year Week_Of_Year); +use Date::Calc qw(Today Day_of_Year Week_of_Year Add_Delta_Days); use C4::Koha; use C4::Auth; -use C4::Date; +use C4::Dates qw/format_date format_date_in_iso/; use C4::Acquisition; use C4::Output; use C4::Context; @@ -28,6 +28,8 @@ use C4::Branch; # GetBranches use C4::Serials; use C4::Letters; +#use Smart::Comments; + my $query = new CGI; my $op = $query->param('op'); my $dbh = C4::Context->dbh; @@ -53,15 +55,18 @@ my ($template, $loggedinuser, $cookie) my $weekarrayjs=''; my $count = 0; my ($year, $month, $day) = Today; -my $firstday = Day_of_Year($year,$month,$day); -my ($wkno,$yr) = Week_Of_Year($year,$month,$day); # week starting monday +my $firstday = Day_of_Year($year,$month,$day); +my ($wkno,$yr) = Week_of_Year($year,$month,$day); # week starting monday my $weekno = $wkno; for(my $i=$firstday;$i<($firstday+365);$i=$i+7){ $count = $i; if($wkno > 52){$year++; $wkno=1;} if($count>365){$count=$i-365;} my ($y,$m,$d) = Add_Delta_Days(1,1,1,$i - 1); - my $output = "$y-$m-$d"; + + #BUGFIX padding add_delta_days() date + my $output = sprintf("%04d-%02d-%02d",$y , $m, $d ); + $weekarrayjs .= "'Wk $wkno: ".format_date($output)."',"; $wkno++; } @@ -101,24 +106,32 @@ foreach my $thisbranch (keys %$branches) { push @branchloop, \%row; } $template->param(branchloop => \@branchloop, - DHTMLcalendar_dateformat => get_date_format_string_for_DHTMLcalendar(), + DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), ); if ($op eq 'mod'||$op eq 'dup') { + my $subscriptionid = $query->param('subscriptionid'); # warn "irregularity :$irregularity numberpattern : $numberpattern, callnumber :$callnumber, firstacquidate :$firstacquidate"; my $subs = &GetSubscription($subscriptionid); - $subs->{'startdate'}=format_date($subs->{'startdate'}); - $subs->{'firstacquidate'}=format_date($subs->{'firstacquidate'}); - $subs->{'histstartdate'}=format_date($subs->{'histstartdate'}); - $subs->{'enddate'}=format_date($subs->{enddate}); +## FIXME : Check rights to edit if mod. Could/Should display an error message. + if ($subs->{'cannotedit'} && $op eq 'mod'){ + warn "Attempt to modify subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; + print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); + } + for (qw(startdate firstacquidate histstartdate enddate)) { + $subs->{$_} = format_date($subs->{$_}); + } $subs->{'letter'}='' unless($subs->{'letter'}); + $irregularity = $subs->{'irregularity'}; + $numberpattern = $subs->{'numberpattern'}; + if($subs->{numberlength} > 0){ $sublength = $subs->{numberlength}; $sub_on = $subscription_types[0]; } elsif ($subs->{weeklength}>0){ - $sublength = $weeklength; + $sublength = $subs->{weeklength}; $sub_on = $subscription_types[1]; } else { $sublength = $subs->{monthlength}; @@ -144,18 +157,12 @@ if ($op eq 'mod'||$op eq 'dup') { ); $template->param( "periodicity".$subs->{'periodicity'} => 1, - "dow".$subs->{'periodicity'} => 1, - "numberpattern".$subs->{'periodicity'} => 1, + "dow".$subs->{'dow'} => 1, + "numberpattern".$subs->{'numberpattern'} => 1, ); } if ($op eq 'addsubscription') { - my @irregular = $query->param('irregular'); - my $irregular_count = scalar(@irregular); - for(my $i =0;$i<$irregular_count;$i++){ - $irregularity .=$irregular[$i].","; - } - $irregularity =~ s/\,$//; my $auser = $query->param('user'); my $branchcode = $query->param('branchcode'); @@ -166,7 +173,7 @@ if ($op eq 'addsubscription') { my $firstacquidate = $query->param('firstacquidate'); my $periodicity = $query->param('periodicity'); my $dow = $query->param('dow'); - my $irregularity = $query->param('irregularity'); + my @irregularity = $query->param('irregular'); my $numberlength = 0; my $weeklength = 0; my $monthlength = 0; @@ -180,22 +187,24 @@ if ($op eq 'addsubscription') { } else { $numberlength = $sublength; } - my $add1 = $query->param('add1'); my $every1 = $query->param('every1'); my $whenmorethan1 = $query->param('whenmorethan1'); my $setto1 = $query->param('setto1'); my $lastvalue1 = $query->param('lastvalue1'); + my $innerloop1 =$query->param('innerloop1'); my $add2 = $query->param('add2'); my $every2 = $query->param('every2'); my $whenmorethan2 = $query->param('whenmorethan2'); my $setto2 = $query->param('setto2'); + my $innerloop2 =$query->param('innerloop2'); my $lastvalue2 = $query->param('lastvalue2'); my $add3 = $query->param('add3'); my $every3 = $query->param('every3'); my $whenmorethan3 = $query->param('whenmorethan3'); my $setto3 = $query->param('setto3'); my $lastvalue3 = $query->param('lastvalue3'); + my $innerloop3 =$query->param('innerloop3'); my $numberingmethod = $query->param('numberingmethod'); my $status = 1; my $biblionumber = $query->param('biblionumber'); @@ -204,15 +213,14 @@ if ($op eq 'addsubscription') { my $internalnotes = $query->param('internalnotes'); my $hemisphere = $query->param('hemisphere') || 1; my $letter = $query->param('letter'); - ### BugFIX : hdl doesnot know what innerloops or letter stand for but it seems necessary. So he adds them. + # ## BugFIX : hdl doesnot know what innerloops or letter stand for but it seems necessary. So he adds them. my $manualhistory = $query->param('manualhist'); - my ($innerloop1,$innerloop2,$innerloop3); my $subscriptionid = NewSubscription($auser,$branchcode,$aqbooksellerid,$cost,$aqbudgetid,$biblionumber, $startdate,$periodicity,$dow,$numberlength,$weeklength,$monthlength, $add1,$every1,$whenmorethan1,$setto1,$lastvalue1,$innerloop1, $add2,$every2,$whenmorethan2,$setto2,$lastvalue2,$innerloop2, $add3,$every3,$whenmorethan3,$setto3,$lastvalue3,$innerloop3, - $numberingmethod, $status, $notes,$letter,$firstacquidate,$irregularity, + $numberingmethod, $status, $notes,$letter,$firstacquidate,join(",",@irregularity), $numberpattern, $callnumber, $hemisphere,($manualhistory?$manualhistory:0),$internalnotes );