From 07996d375f7932f9fb40bf4fcdeea8923c6201cc Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 15 Apr 2023 01:59:09 +0000 Subject: [PATCH] case 4504 --- server/models/SubscriptionItem.cs | 4 ++++ server/util/AySchema.cs | 10 +++++++++- todo.txt | 8 ++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/server/models/SubscriptionItem.cs b/server/models/SubscriptionItem.cs index f31b3e1..c8e42c5 100644 --- a/server/models/SubscriptionItem.cs +++ b/server/models/SubscriptionItem.cs @@ -22,6 +22,10 @@ namespace Sockeye.Models public DateTime ExpireDate { get; set; } [Required] public int Quantity { get; set; } = 1; + [Required] + public string OriginalOrderNumber { get; set; }//first order number for ref + [Required] + public DateTime OriginalOrderDate { get; set; } [JsonIgnore] public Subscription Subscription { get; set; } diff --git a/server/util/AySchema.cs b/server/util/AySchema.cs index b36b0e1..03e588a 100644 --- a/server/util/AySchema.cs +++ b/server/util/AySchema.cs @@ -1505,31 +1505,39 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); //SUBSCRIPTIONITEM await ExecQueryAsync("CREATE TABLE asubscriptionitem (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, subscriptionid BIGINT NOT NULL REFERENCES asubscription ON DELETE CASCADE, " - + "productid BIGINT REFERENCES aproduct(id), active BOOL NOT NULL, expiredate TIMESTAMPTZ NOT NULL, quantity INTEGER NOT NULL DEFAULT 1 )"); + + "productid BIGINT REFERENCES aproduct(id), active BOOL NOT NULL, originalordernumber TEXT NOT NULL, originalorderdate TIMESTAMPTZ NOT NULL, expiredate TIMESTAMPTZ NOT NULL, quantity INTEGER NOT NULL DEFAULT 1 )"); //english translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'Subscription', 'Subscription' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionItemList', 'Items' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionList', 'Subscriptions' FROM atranslation t where t.baselanguage = 'en'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubSite', 'Sub-site' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderNumber', 'Original order #' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderDate', 'Original order date' FROM atranslation t where t.baselanguage = 'en'"); //spanish translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'Subscription', 'Subscription' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionItemList', 'Items' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionList', 'Subscriptions' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubSite', 'Sub-site' FROM atranslation t where t.baselanguage = 'es'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderNumber', 'Original order #' FROM atranslation t where t.baselanguage = 'es'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderDate', 'Original order date' FROM atranslation t where t.baselanguage = 'es'"); //french translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'Subscription', 'Subscription' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionItemList', 'Items' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionList', 'Subscriptions' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubSite', 'Sub-site' FROM atranslation t where t.baselanguage = 'fr'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderNumber', 'Original order #' FROM atranslation t where t.baselanguage = 'fr'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderDate', 'Original order date' FROM atranslation t where t.baselanguage = 'fr'"); //german translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'Subscription', 'Subscription' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionItemList', 'Items' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubscriptionList', 'Subscriptions' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'SubSite', 'Sub-site' FROM atranslation t where t.baselanguage = 'de'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderNumber', 'Original order #' FROM atranslation t where t.baselanguage = 'de'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'OriginalOrderDate', 'Original order date' FROM atranslation t where t.baselanguage = 'de'"); diff --git a/todo.txt b/todo.txt index 89bfbcd..fee96a1 100644 --- a/todo.txt +++ b/todo.txt @@ -20,6 +20,14 @@ TODO: - expires - active + TODO: get subscriptions populated and accurate?! + could read licenses maybe? + + TODO: dashboard items related to subscriptions + - revenue per month for next 12 months graph + - overdue expired subs list + - active count of each product subscription bar graph + -- Database: sockeye