From 184a58e8dfda704b6f5fef19be1a54f2984bcc88 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 24 Jan 2023 23:01:13 +0000 Subject: [PATCH] case 4388 --- docs/8.0/ayanova/docs/changelog.md | 13 ++++++++++++- docs/8.0/ayanova/mkdocs.yml | 2 +- server/AyaNova/biz/PMBiz.cs | 16 ++++++++-------- server/AyaNova/biz/QuoteBiz.cs | 16 ++++++++-------- server/AyaNova/biz/WorkOrderBiz.cs | 18 +++++++++--------- 5 files changed, 38 insertions(+), 27 deletions(-) diff --git a/docs/8.0/ayanova/docs/changelog.md b/docs/8.0/ayanova/docs/changelog.md index c2ea80bb..0d3de6df 100644 --- a/docs/8.0/ayanova/docs/changelog.md +++ b/docs/8.0/ayanova/docs/changelog.md @@ -8,11 +8,22 @@ See the [upgrade instructions](ops-upgrade.md) section of this manual for detail ## 2023 +### AyaNova 8.0.33 (2023-01-24) + +#### Fixed + +- Server, v8-migrate: Fix for issue preventing erasing database when Customer notification set to a custom translation + +#### Changed + +- Server: improved server error logging when unexpected exception prevents erasing database +- Server, UI: Quote, PM, WorkOrderItemXXX collections (labors, travels etc) now fetch and display in edit form in fixed order by "start" / "sent" / "request" dates if dated otherwise in order created + ### AyaNova 8.0.32 (2023-01-10) #### Changed -- Installers, Documentation: changed URLs and references in install documentation to ASP.NET Core 6.x specifically as .net core 7 has just been released but is not currently supported for AyaNova +- Installers, Documentation: changed URLs and references in install documentation to ASP.NET Core 6.x specifically as .net core 7 has just been released but is not currently supported for AyaNova ### AyaNova 8.0.31 (2023-01-05) diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml index 01f895b7..61d17b4b 100644 --- a/docs/8.0/ayanova/mkdocs.yml +++ b/docs/8.0/ayanova/mkdocs.yml @@ -7,7 +7,7 @@ theme: site_name: AyaNova manual site_dir: '../../../server/AyaNova/wwwroot/docs' strict: true -copyright: Copyright © 2023 Ground Zero Tech-Works Inc. REV-2023-01-10 +copyright: Copyright © 2023 Ground Zero Tech-Works Inc. REV-2023-01-24 extra: generator: false # Extensions diff --git a/server/AyaNova/biz/PMBiz.cs b/server/AyaNova/biz/PMBiz.cs index 741709fe..d0e5c80c 100644 --- a/server/AyaNova/biz/PMBiz.cs +++ b/server/AyaNova/biz/PMBiz.cs @@ -169,23 +169,23 @@ namespace AyaNova.Biz //docs say this will not query twice but will recognize the duplicate woitem bit which is required for multiple grandchild collections return await ct.PM.AsSplitQuery().AsNoTracking() .Include(w => w.Items.OrderBy(item => item.Sequence)) - .ThenInclude(wi => wi.Expenses) + .ThenInclude(wi => wi.Expenses.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.Labors) + .ThenInclude(wi => wi.Labors.OrderBy(l => l.ServiceStartDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Loans) + .ThenInclude(wi => wi.Loans.OrderBy(z => z.OutDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Parts) + .ThenInclude(wi => wi.Parts.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.ScheduledUsers) + .ThenInclude(wi => wi.ScheduledUsers.OrderBy(z => z.StartDate)) .Include(w => w.Items) .ThenInclude(wi => wi.Tasks.OrderBy(t => t.Sequence)) .Include(w => w.Items) - .ThenInclude(wi => wi.Travels) + .ThenInclude(wi => wi.Travels.OrderBy(z => z.TravelStartDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Units) + .ThenInclude(wi => wi.Units.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.OutsideServices) + .ThenInclude(wi => wi.OutsideServices.OrderBy(z => z.SentDate)) .SingleOrDefaultAsync(z => z.Id == id); } diff --git a/server/AyaNova/biz/QuoteBiz.cs b/server/AyaNova/biz/QuoteBiz.cs index dec61a39..f02d646d 100644 --- a/server/AyaNova/biz/QuoteBiz.cs +++ b/server/AyaNova/biz/QuoteBiz.cs @@ -176,23 +176,23 @@ namespace AyaNova.Biz return await ct.Quote.AsSplitQuery().AsNoTracking() .Include(s => s.States.OrderBy(item => item.Id)) .Include(w => w.Items.OrderBy(item => item.Sequence)) - .ThenInclude(wi => wi.Expenses) + .ThenInclude(wi => wi.Expenses.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.Labors) + .ThenInclude(wi => wi.Labors.OrderBy(l => l.ServiceStartDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Loans) + .ThenInclude(wi => wi.Loans.OrderBy(z => z.OutDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Parts) + .ThenInclude(wi => wi.Parts.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.ScheduledUsers) + .ThenInclude(wi => wi.ScheduledUsers.OrderBy(z => z.StartDate)) .Include(w => w.Items) .ThenInclude(wi => wi.Tasks.OrderBy(t => t.Sequence)) .Include(w => w.Items) - .ThenInclude(wi => wi.Travels) + .ThenInclude(wi => wi.Travels.OrderBy(z => z.TravelStartDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Units) + .ThenInclude(wi => wi.Units.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.OutsideServices) + .ThenInclude(wi => wi.OutsideServices.OrderBy(z => z.SentDate)) .SingleOrDefaultAsync(z => z.Id == id); } diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index e9561730..e683d3bf 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -197,25 +197,25 @@ namespace AyaNova.Biz return await ct.WorkOrder.AsSplitQuery().AsNoTracking() .Include(s => s.States.OrderBy(item => item.Id)) .Include(w => w.Items.OrderBy(item => item.Sequence)) - .ThenInclude(wi => wi.Expenses) + .ThenInclude(wi => wi.Expenses.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.Labors) + .ThenInclude(wi => wi.Labors.OrderBy(z => z.ServiceStartDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Loans) + .ThenInclude(wi => wi.Loans.OrderBy(z => z.OutDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Parts) + .ThenInclude(wi => wi.Parts.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.PartRequests) + .ThenInclude(wi => wi.PartRequests.OrderBy(z => z.RequestDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.ScheduledUsers) + .ThenInclude(wi => wi.ScheduledUsers.OrderBy(z => z.StartDate)) .Include(w => w.Items) .ThenInclude(wi => wi.Tasks.OrderBy(t => t.Sequence)) .Include(w => w.Items) - .ThenInclude(wi => wi.Travels) + .ThenInclude(wi => wi.Travels.OrderBy(z => z.TravelStartDate)) .Include(w => w.Items) - .ThenInclude(wi => wi.Units) + .ThenInclude(wi => wi.Units.OrderBy(z => z.Id)) .Include(w => w.Items) - .ThenInclude(wi => wi.OutsideServices) + .ThenInclude(wi => wi.OutsideServices.OrderBy(z => z.SentDate)) .SingleOrDefaultAsync(z => z.Id == id); }