[Koha-patches] [PATCH] [3.0.x](bug #3924) fix useDaysMode use

Nahuel ANGELINETTI nahuel.angelinetti at biblibre.com
Tue Dec 15 11:23:20 CET 2009


This fix system preference choices, and delete some useless code.
---
 C4/Circulation.pm                                  |   11 ++---------
 .../1-Obligatoire/unimarc_standard_systemprefs.sql |    2 +-
 installer/data/mysql/updatedatabase30.pl           |    5 +++++
 3 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index e084548..438ecf4 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -2384,15 +2384,8 @@ sub CalcDateDue {
 	my ($startdate,$loanlength,$branch,$borrower) = @_;
 	my $datedue;
 
-	if(C4::Context->preference('useDaysMode') eq 'Days') {  # ignoring calendar
-		my $timedue = time + ($loanlength) * 86400;
-	#FIXME - assumes now even though we take a startdate 
-		my @datearr  = localtime($timedue);
-		$datedue = C4::Dates->new( sprintf("%04d-%02d-%02d", 1900 + $datearr[5], $datearr[4] + 1, $datearr[3]), 'iso');
-	} else {
-		my $calendar = C4::Calendar->new(  branchcode => $branch );
-		$datedue = $calendar->addDate($startdate, $loanlength);
-	}
+	my $calendar = C4::Calendar->new(  branchcode => $branch );
+	$datedue = $calendar->addDate($startdate, $loanlength);
 
 	# if ReturnBeforeExpiry ON the datedue can't be after borrower expirydate
 	if ( C4::Context->preference('ReturnBeforeExpiry') && $datedue->output('iso') gt $borrower->{dateexpiry} ) {
diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
index 006e6d7..42e0066 100644
--- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
+++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
@@ -116,7 +116,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('timeout', '30600', 'Ce paramètre définit la durée d''inactivité au delà de laquelle l''utilisateur (professionnel ou opac) est automatiquement déconnecté', '', 'Integer');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('TransfersMaxDaysWarning', '3', 'Délai maximum au delà duquel un transfert sera considéré comme ayant rencontré un problème', '', 'Integer');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('uppercasesurnames', '0', 'Force les noms de famille à être en majuscule', NULL, 'YesNo');
-INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('useDaysMode', 'Calendar', 'Comment calculer les dates de retour : ''Calendar'' signifie que les dates de retour sauteront les jours fermés. ''Days'' ignore le calendrier', 'Calendar|Days', 'Choice');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('useDaysMode', 'Calendar', 'Comment calculer les dates de retour : ''Calendar'' signifie que les dates de retour sauteront les jours fermés. ''Days'' ignore le calendrier', 'Calendar|Days|Datedue', 'Choice');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('virtualshelves', '1', 'Si ce paramètre est activé, les adhérents (identifiés) peuvent créer des étagères virtuelles', '', 'YesNo');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('z3950AuthorAuthFields', '701,702,700', 'Ce paramètre permet de remplir automatiquement le champ 200$f (s''il est vide) avec le champ 700$a. Utile pour l''affichage, mais pas vraiment rigoureux du point de vue de la norme UNIMARC.', '', '');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('z3950NormalizeAuthor', '0', 'Si activé, les autorités auteur servent à remplir le champ 200$f s''il est vide (paramètre spécifique à l''UNIMARC', NULL, NULL);
diff --git a/installer/data/mysql/updatedatabase30.pl b/installer/data/mysql/updatedatabase30.pl
index 941153e..fbdbe99 100644
--- a/installer/data/mysql/updatedatabase30.pl
+++ b/installer/data/mysql/updatedatabase30.pl
@@ -672,6 +672,11 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
+$DBversion = "3.00.05.002";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("UPDATE systempreferences SET options = 'Calendar|Days|Datedue' WHERE variable = 'useDaysMode'");
+}
+
 =item DropAllForeignKeys($table)
 
   Drop all foreign keys of the table $table
-- 
1.6.3.3




More information about the Koha-patches mailing list