[Koha-devel] RFC : Subscription management : Getting a more scalable way to manage numberings

Henri-Damien LAURENT laurenthdl at alinto.com
Mon Apr 14 16:11:22 CEST 2008


Hi,
I am planning to adapt subscription-add.pl in order to get rid of bugs
that makes subscription-add quite a burden to use.
1st : one cannot add a new numbering method friendly
2nd : One HAS to click on irregularities and re enter irregularities any
time one edits the subscription.
3rd : Nonnumerical method is strange to me.

To accomplish 1st and 3rd, I propose to add those tables :
***frequency table :***
id
label : short description
Unit : day/week/month/year
frequency (integer defaulted to 1, would record the count of days for a
bi-weekly for instance.)
issuesperunit
expectedissuesperyear

***numberingpattern table :***
id
label : tinytext(256)
description : text
add1
numbering1
every1
whenmorethan1
setto1
basedonpublisheddate1
add2
numbering2
every2
whenmorethan2
setto2
basedonpublisheddate2
add3
numbering3
every3
whenmorethan3
setto3
basedonpublisheddate3
basedonpublisheddate : This field would allow people to begin a
subscription in the middle of the year without having to edit the
numbering table to edit lastvalues and innercounters.


***nonnumericalnumbering table :***
code
number
labeltodisplay
Example :
season 0 Spring
season 1 Summer
season 2 Fall
season 3 Winter
day 0 Sunday
day 1 Monday
day 2 Tuesday
day 3 Wednesday
....
daytime 0 morning
daytime 1 noon (would it be useful ?)
daytime 2 evening
month 0 January
....

But this solution would not solve :
- roman numeration for more than ten elements, unless the table would
get huge.
Moreover, I couldnot get a PERL module managing  numbers to roman
numbers conversion. But I cannot think it has not already been done.
- period from date to date displaying  (i.e. From 2. to 9. February, for
a weekly issue)


And add those fields to subscription table :
  numbering1, numbering2, numbering3 : If not NULL, then is filled with
a Code from nonnumericalnumbering table and will be used in GetNextSeq.
  countperunit : records the count of issues per day/week/month so that
it could be recorded (Date::Calc donot allow floats date adding. For
instance, say : I receive a subscription twice a day, I have to count
how many times I have received this subscription before adding a new day)
then we would pass the tables in Js and use them to create our numbering.
 fixedissuedates : If a subscription is irregular BUT has fixed dates
for release, will store figures like irregularities receive on 1 and 3rd
day of week, 1st and 3rd day of month, .... depending on frequency.

Irregularities would be optional and display in a window the expected
issues periods based on frequency and one could check the periods an
issue is not published.


-- 
Henri-Damien LAURENT



More information about the Koha-devel mailing list