2010-04-23 67 views
0

我正在維護一個處理某種訂閱的Web應用程序。用戶可以在到期前2個月(不早於2個月)續訂訂閱。有時用戶在到期前不續約並獲得3個月的寬限期。現在他可以在這3個月的寬限期內續約。計算訂閱的要約期

現在問題部分。在之前的更新請求事務中,我必須顯示該特定請求的提供期限(如果授予續訂,則是訂閱開始和訂閱結束期限)。事情很簡單,如果用戶在到期前續約,但如果有寬限期,特別是當訂閱在一年的最後幾個月到期時,我無法讓事情順利。此外,當訂閱以1月或2月結束時,有時計算會變得不合時宜。

所有這一切都發生了,因爲提供期限不隨應用程序隨處保存(我不知道爲什麼)。因此,如果訂閱在2008年10月20日結束,續訂申請於2009年1月16日提交(由於寬限期),報價期應爲2008年10月21日至2009年10月20日。

如何根據續訂舊續約申請的請求提交日期?

編輯: - 現在是2010年,假設用戶正在查看過去的交易從2009年,當他提交請求延長訂閱從21-10-2008到20-10-2009。但他已獲得寬限期並於2010年1月16日要求續簽。由於我沒有21-10-2008到20-10-2009存儲在任何地方,我必須計算,這是2008年10月21日至20日至2009年10月20日期間的請求記錄。這是我遇到麻煩的地方。

+0

您的文章中的某個問題可能會導致某人回答您。 – RarrRarrRarr 2010-04-23 05:00:55

+0

好的@RarrRarrRarr我已經添加了問題,現在請幫助我! – TheVillageIdiot 2010-04-23 06:22:12

+2

請解釋爲什麼在前一個失效日期中添加一年(減去一天)不足以獲得新的失效日期。 – 2010-04-23 06:26:19

回答

0

@TheVillageIdiot,

(A)>現在是2010年,
到目前爲止好。 。 。 (B)>假設用戶正在查看2009年以來的過去交易,
是的,我和你在一起。 。 。

(C)>他在2008年10月21日至2009年10月20日期間提出延期申請的請求時。
因此,您可以在數據庫或日誌文件中的某個地方看到該訂閱是從2008年10月21日到2009年10月20日,對吧?

(D)>但他已獲得寬限期,並要求在2010年1月16日續簽。
好的。但是這個交易日期(16-01-2010)對於訂閱的實際開始和結束應該不重要。它是什麼時候發生「更新」的限制的一部分。 (約束的另一部分是您在前面提到的到期前的2個月)。因此,您永遠不需要考慮重新開始瞭解訂閱開始日期和結束日期的人員。 (C)>因爲我沒有21-10-2008到20-10-2009存儲在任何地方
等一下,那你怎麼知道訂閱是從10/08到10/09 ????

(F)>我必須計算,在2008年10月21日至20日,當請求被記錄時,計算結果爲21-10-2008。這是我遇到麻煩的地方。
是的,除非你有它存儲的地方;我不知道你會如何知道它是從21-10-2008到20-10-2009或25-10-2008到24-10-2009或21-10-1908到20-10-1909。

我真的在(C)部分的上面想到,您必須在某個地方有訂閱開始和結束日期,並且正如我在(D)中所評論的那樣,您應該能夠忽略實際續約請求事務是爲了計算下一屆的開始。


好吧,現在,我假設您確實沒有過去預訂的訂閱開始和結束日期存儲在某處。 (我覺得這真的很難相信。)

這裏是一個可能的回答你的問題:

你確實有客戶當前的到期日期(否則你不會不知道從什麼時候開始之前2個月更新窗口或三個月寬限期窗口)。因此,鑑於目前的訂購到期日,您可以逐年向後工作。通過這種方式,您將能夠重建所有客戶的過去訂閱。

但是,這存在問題,如果客戶在寬限期內未能續約,那麼新的訂購可能開始時間與先前的時間有差距。
無論如何,仔細檢查以確保沒有可能的方式來確定訂閱的開始和結束日期。我想你會在某個地方找到它們,並且應該能夠將它們放入數據庫中。

祝你好運。

+0

感謝您的詳細評論@NickPoussin。是的,儘可能難以相信,每個更新請求的提供期限都不會存儲在任何地方,因爲db設計者認爲它將很容易實時計算。 – TheVillageIdiot 2010-04-25 07:38:29