הבדלים בין גרסאות בדף "הארכת השאלות"

מתוך אגרון - וויקיפדיה
קפיצה אל: ניווט, חיפוש
(דף חדש: כאשר אגרונט עובד במצב לייב - שניתן לבצע עליו פעולות ישירות על בסיס נתונים של הא...)
(אין הבדלים)

גרסה מ־18:08, 18 ביוני 2010

כאשר אגרונט עובד במצב לייב - שניתן לבצע עליו פעולות ישירות על בסיס נתונים של האתר, ישנו אלגוריתם שמבצע את החישוב של ההארכת השאלות.

האלגוריתם

שגיאה ביצירת תמונה ממוזערת: קובץ חסר
אלגוריתם של הארכת השאלות באגרונט.

1. בדיקה אם תאריך החזרה עבר.

  • במידה ולא - אל תבצע כלום. צא מהאלגוריתם.
  • במידה וכן - המשך.

2. בדיקה אם אין הזמנה על הספר. במידה ולא - אל תבצע כלום.

  • במידה ולא - אל תבצע כלום. צא מהאלגוריתם.
  • במידה וכן - המשך.

3. בדיקה אם ביצוע הארכה לא חורג ממספר הימים המקסימלי להארכה*.

1. במידה וכן, בצע בדיקה אם ניתן לבצע הארכה ליום האחרון המקסימלי.
  • במידה וכן, בצע את ההארכה ליום המקסימלי.
  • במידה ולא - אל תבצע כלום. צא מהאלגוריתם.
2. במידה ולא, בצע בדיקה אם הוספת מספר הימים המורשה בכל הארכה עובר את תאריך ההחזרה** (במילים פשוטות, בדוק אם ההארכה לא מקצרת את זמן ההשאלה).
  • במידה וכן, בצע את ההארכה לכמות הימים המותרת.
  • במידה ולא - אל תבצע כלום. צא מהאלגוריתם.
שימו לב: *מספר הימים המקסימלי מחושב ע"י הנוסחה: יום ההשאלה המקורי+ימי ההשאלה המקוריים+מספר הפעמים שמותר להאריך*מספר הימים לכל ההארכה. מספר הימים לכל ההארכה יכול להיות יחסי לימי ההשאלה המקוריים או אבסולוטי.
שימו לב: ** מצב זה יכול להיווצר כאשר ההארכה הינה יחסית וימי ההשאלה המקוריים ארוכים יותר ממספר הימים המותרים להארכה בכל פעם. זכרו: ההארכה מבוצעת יחסית ליום הנוכחי. משמע שהימים יתווספו ליום הנוכחי בלבד ולא לשום תאריך אחר.

הארגומנטים

ישנם מספר ארגומנטים שמוזנים בניהול לשלוט על האלגוריתם:

  1. loan_length_type - סוג ההארכת השאלה. הערכים האפשריים הינם: absolute (אבסולוטי) או relative (יחסי).
  2. loan_length_time (מכונה x בתמונה)- מספר הימים שמותר להאריך בכל ההארכה. אם יחסי, החישוב מבוצע מול מספר הימים המותר להשאלה של העותק המושאל (מוזן בטבלת עותקים).
  3. loan_length_count (מכונה y בתמונה) - מספר הפעמים שמותר להאריך השאלה (בנוסף לימי ההשאלה המקוריים).
שימו לב: כמות הפעמים שמותר להאריך אינה מוגבלת, אלא מספר הימים שעברו סה"כ. משמע, שקורא יכול להאריך כל יום, המערכת תעצור אותו רק כאשר הוא יגיע למספר הימים המקסימלי שמותר להארכה (חישוב לעיל).

דוגמאות

דוגמא 1

  • loan_length_type: יחסי.
  • loan_length_time: 0.5
  • loan_length_count 2
  • ימי ההשאלה מקוריים: 30.

בדוגמא זו ניתן להאריך בכל פעם 15 ימים נוספים (חצי כפול 30). משמע שההארכה האפשרית הינה ל-30 ימים נוספים בנוסף לימי ההשאלה המקוריים (30). סה"כ הזמן המקסימלי שהקורא יכול להחזיק את הספר: 60 ימים. הקורא יוכל להתחיל להאריך השאלה רק ביום ה-16 כי רק אז ההארכה תתבצע (ההארכה מבוצעת יחסית ליום הנוכחי).

דוגמא 2

  • loan_length_type: יחסי.
  • loan_length_time: 1
  • loan_length_count 2
  • ימי ההשאלה מקוריים: 21.

בדוגמא זו ניתן להאריך בכל פעם 21 ימים נוספים (אחד כפול 21). משמע שההארכה האפשרית הינה ל-21 ימים נוספים בנוסף לימי ההשאלה המקוריים (21). סה"כ הזמן המקסימלי שהקורא יכול להחזיק את הספר: 42 ימים. הקורא יוכל להתחיל להאריך השאלה רק ביום ה-2 כי רק אז ההארכה תתבצע (ההארכה מבוצעת יחסית ליום הנוכחי).

דוגמא 3

  • loan_length_type: אבסולוטי.
  • loan_length_time: 7
  • loan_length_count 5
  • ימי ההשאלה מקוריים: 60.

בדוגמא זו ניתן להאריך בכל פעם 7 ימים נוספים. משמע שההארכה האפשרית הינה ל-35 ימים נוספים בנוסף לימי ההשאלה המקוריים (60). סה"כ הזמן המקסימלי שהקורא יכול להחזיק את הספר: 95 ימים. הקורא יוכל להתחיל להאריך השאלה רק ביום ה-54 כי רק אז ההארכה תתבצע (ההארכה מבוצעת יחסית ליום הנוכחי).