From e35a69043f3d557de30e93fce553e2653bbdb74e Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 11 Jun 2021 16:58:56 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 19 +++++++++---- server/AyaNova/models/ICoreBizObjectModel.cs | 6 ++-- server/AyaNova/models/PM.cs | 19 +++++++++---- server/AyaNova/models/PurchaseOrder.cs | 8 ++++++ server/AyaNova/models/Quote.cs | 17 +++++++---- server/AyaNova/models/Unit.cs | 11 +++++++- server/AyaNova/models/WorkOrder.cs | 4 +++ server/AyaNova/models/WorkOrderItem.cs | 4 +++ server/AyaNova/models/WorkOrderItemExpense.cs | 6 ++++ server/AyaNova/models/WorkOrderItemLabor.cs | 7 +++++ server/AyaNova/models/WorkOrderItemLoan.cs | 7 ++++- .../models/WorkOrderItemOutsideService.cs | 7 ++++- server/AyaNova/models/WorkOrderItemPart.cs | 9 ++++-- .../models/WorkOrderItemPartRequest.cs | 4 ++- .../models/WorkOrderItemScheduledUser.cs | 7 +++++ server/AyaNova/models/WorkOrderItemTask.cs | 8 +++++- server/AyaNova/models/WorkOrderItemTravel.cs | 28 ++++--------------- server/AyaNova/models/WorkOrderItemUnit.cs | 5 ++++ server/AyaNova/models/WorkOrderState.cs | 15 +++++++--- 19 files changed, 138 insertions(+), 53 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index e9f165fa..9d7d59df 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -4294,22 +4294,29 @@ namespace AyaNova.Biz bool isNew = currentObj == null; + WorkOrderItemPartRequest oProposed = (WorkOrderItemPartRequest)proposedObj; + + var woId = await GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItem, oProposed.WorkOrderItemId, ct); + var WorkorderInfo = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == woId).Select(x => new { Serial = x.Serial, Tags = x.Tags }).FirstOrDefaultAsync(); + + + //sub wo tags here. + proposedObj.Tags = WorkorderInfo.Tags; //STANDARD EVENTS FOR ALL OBJECTS await NotifyEventHelper.ProcessStandardObjectEvents(ayaEvent, proposedObj, ct); //SPECIFIC EVENTS FOR THIS OBJECT - WorkOrderItemPartRequest o = (WorkOrderItemPartRequest)proposedObj; - - - - - + + + + + }//end of process notifications diff --git a/server/AyaNova/models/ICoreBizObjectModel.cs b/server/AyaNova/models/ICoreBizObjectModel.cs index ba754da9..2c3636d0 100644 --- a/server/AyaNova/models/ICoreBizObjectModel.cs +++ b/server/AyaNova/models/ICoreBizObjectModel.cs @@ -12,11 +12,13 @@ namespace AyaNova.Models //didn't want to end up with a zillion interfaces for all manner of stuff public long Id { get; set; } public uint Concurrency { get; set; } - public string Name { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); } + // public string Name { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); } + public string Name { get; set; }//any notification on these will require this so making it mandatory but will implement a workaround to return alt fields instead public bool? Active { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); } public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); } public string CustomFields { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); } - public List Tags { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); } + // public List Tags { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); } + public List Tags { get; set; }//Notification on objects require this so will implement workaround in object instead public AyaNova.Biz.AyaType AyaType { get; } } diff --git a/server/AyaNova/models/PM.cs b/server/AyaNova/models/PM.cs index a1d375e7..7afd0ca0 100644 --- a/server/AyaNova/models/PM.cs +++ b/server/AyaNova/models/PM.cs @@ -23,13 +23,20 @@ namespace AyaNova.Models public string CustomFields { get; set; } public List Tags { get; set; } -/* -todo: Consider adding latitude / longitude to wo, quote, pm objects - can copy over from the unit or customer or set themselves - and can always hide - means wo could be scheduled for ad-hoc locations and serviced that way, i.e. a truck parked on the side of the highway etc -*/ + + //workaround for notification + [NotMapped, JsonIgnore] + public string Name { get; set; } + + + /* + + todo: Consider adding latitude / longitude to wo, quote, pm objects + can copy over from the unit or customer or set themselves + and can always hide + means wo could be scheduled for ad-hoc locations and serviced that way, i.e. a truck parked on the side of the highway etc + */ //dependents public List PMItems { get; set; } diff --git a/server/AyaNova/models/PurchaseOrder.cs b/server/AyaNova/models/PurchaseOrder.cs index 2a0a0275..4e4b6385 100644 --- a/server/AyaNova/models/PurchaseOrder.cs +++ b/server/AyaNova/models/PurchaseOrder.cs @@ -40,11 +40,19 @@ namespace AyaNova.Models public string Text2 { get; set; } public List Items { get; set; } = new List(); + + //workaround for notification + [NotMapped, JsonIgnore] + public string Name { get; set; } + public PurchaseOrder() { Tags = new List(); } + + + [NotMapped, JsonIgnore] public AyaType AyaType { get => AyaType.PurchaseOrder; } diff --git a/server/AyaNova/models/Quote.cs b/server/AyaNova/models/Quote.cs index ab362ef0..8b6b648d 100644 --- a/server/AyaNova/models/Quote.cs +++ b/server/AyaNova/models/Quote.cs @@ -22,13 +22,18 @@ namespace AyaNova.Models public string CustomFields { get; set; } public List Tags { get; set; } -/* -todo: Consider adding latitude / longitude to wo, quote, pm objects - can copy over from the unit or customer or set themselves - and can always hide - means wo could be scheduled for ad-hoc locations and serviced that way, i.e. a truck parked on the side of the highway etc -*/ + //workaround for notification + [NotMapped, JsonIgnore] + public string Name { get; set; } + + /* + + todo: Consider adding latitude / longitude to wo, quote, pm objects + can copy over from the unit or customer or set themselves + and can always hide + means wo could be scheduled for ad-hoc locations and serviced that way, i.e. a truck parked on the side of the highway etc + */ //dependents public List QuoteItems { get; set; } diff --git a/server/AyaNova/models/Unit.cs b/server/AyaNova/models/Unit.cs index 93baba32..e5d4e1ba 100644 --- a/server/AyaNova/models/Unit.cs +++ b/server/AyaNova/models/Unit.cs @@ -47,7 +47,7 @@ namespace AyaNova.Models public bool OverrideModelWarranty { get; set; } public int? WarrantyLength { get; set; } public string WarrantyTerms { get; set; } - // public bool UsesBanking { get; set; } + // public bool UsesBanking { get; set; } public long? ContractId { get; set; } [NotMapped] public string ContractViz { get; set; } @@ -67,6 +67,13 @@ namespace AyaNova.Models public decimal? Latitude { get; set; } public decimal? Longitude { get; set; } + + + //workaround for notification + [NotMapped, JsonIgnore] + public string Name { get; set; } + + public Unit() { Tags = new List(); @@ -75,6 +82,8 @@ namespace AyaNova.Models [NotMapped, JsonIgnore] public AyaType AyaType { get => AyaType.Unit; } + + // //convenience links // [JsonIgnore] // public Customer Customer { get; set; } diff --git a/server/AyaNova/models/WorkOrder.cs b/server/AyaNova/models/WorkOrder.cs index 42d41ac7..899271d4 100644 --- a/server/AyaNova/models/WorkOrder.cs +++ b/server/AyaNova/models/WorkOrder.cs @@ -85,6 +85,10 @@ namespace AyaNova.Models [NotMapped, JsonIgnore] public AyaType AyaType { get => AyaType.WorkOrder; } + + //workaround for notification + [NotMapped, JsonIgnore] + public string Name { get; set; } }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItem.cs b/server/AyaNova/models/WorkOrderItem.cs index 3ac545c7..748dbd3f 100644 --- a/server/AyaNova/models/WorkOrderItem.cs +++ b/server/AyaNova/models/WorkOrderItem.cs @@ -30,6 +30,10 @@ namespace AyaNova.Models public DateTime? RequestDate { get; set; } public bool WarrantyService { get; set; } = false; public int Sequence { get; set; } + + //workaround for notification + [NotMapped, JsonIgnore] + public string Name { get; set; } //Principle [JsonIgnore] diff --git a/server/AyaNova/models/WorkOrderItemExpense.cs b/server/AyaNova/models/WorkOrderItemExpense.cs index 80d254e8..2af2d801 100644 --- a/server/AyaNova/models/WorkOrderItemExpense.cs +++ b/server/AyaNova/models/WorkOrderItemExpense.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; @@ -43,6 +44,11 @@ namespace AyaNova.Models [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + + [NotMapped, JsonIgnore] public AyaType AyaType { get => AyaType.WorkOrderItemExpense; } diff --git a/server/AyaNova/models/WorkOrderItemLabor.cs b/server/AyaNova/models/WorkOrderItemLabor.cs index e85a228d..79e5252b 100644 --- a/server/AyaNova/models/WorkOrderItemLabor.cs +++ b/server/AyaNova/models/WorkOrderItemLabor.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; @@ -58,6 +59,12 @@ namespace AyaNova.Models [NotMapped, JsonIgnore] public AyaType AyaType { get => AyaType.WorkOrderItemLabor; } + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } + }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemLoan.cs b/server/AyaNova/models/WorkOrderItemLoan.cs index 17f34125..78e1c6e7 100644 --- a/server/AyaNova/models/WorkOrderItemLoan.cs +++ b/server/AyaNova/models/WorkOrderItemLoan.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; @@ -50,8 +51,12 @@ namespace AyaNova.Models [NotMapped] public decimal LineTotalViz { get; set; }//line total netViz + taxes + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } - [Required] public long WorkOrderItemId { get; set; } [JsonIgnore] diff --git a/server/AyaNova/models/WorkOrderItemOutsideService.cs b/server/AyaNova/models/WorkOrderItemOutsideService.cs index 174afc99..9f609687 100644 --- a/server/AyaNova/models/WorkOrderItemOutsideService.cs +++ b/server/AyaNova/models/WorkOrderItemOutsideService.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; @@ -47,7 +48,11 @@ namespace AyaNova.Models [NotMapped] public decimal LineTotalViz { get; set; }//line total netViz + taxes - + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } [Required] public long WorkOrderItemId { get; set; } diff --git a/server/AyaNova/models/WorkOrderItemPart.cs b/server/AyaNova/models/WorkOrderItemPart.cs index f93b60d6..8b829897 100644 --- a/server/AyaNova/models/WorkOrderItemPart.cs +++ b/server/AyaNova/models/WorkOrderItemPart.cs @@ -1,4 +1,4 @@ -using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; @@ -51,7 +51,12 @@ namespace AyaNova.Models [NotMapped] public decimal LineTotalViz { get; set; }//line total netViz + taxes - + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } + [Required] public long WorkOrderItemId { get; set; } [JsonIgnore] diff --git a/server/AyaNova/models/WorkOrderItemPartRequest.cs b/server/AyaNova/models/WorkOrderItemPartRequest.cs index 1fdc51bc..610a3cf1 100644 --- a/server/AyaNova/models/WorkOrderItemPartRequest.cs +++ b/server/AyaNova/models/WorkOrderItemPartRequest.cs @@ -50,9 +50,11 @@ namespace AyaNova.Models [NotMapped, JsonIgnore] public AyaType AyaType { get => AyaType.WorkOrderItemPartRequest; } - //tag workaround for notification, workorderbiz will substitute workorder tags instead when processing standard notification + //workaround for notification [NotMapped, JsonIgnore] public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } }//eoc }//eons diff --git a/server/AyaNova/models/WorkOrderItemScheduledUser.cs b/server/AyaNova/models/WorkOrderItemScheduledUser.cs index f8420140..7212c3a7 100644 --- a/server/AyaNova/models/WorkOrderItemScheduledUser.cs +++ b/server/AyaNova/models/WorkOrderItemScheduledUser.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; @@ -21,6 +22,12 @@ namespace AyaNova.Models public string ServiceRateViz { get; set; } +//workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } + [Required] public long WorkOrderItemId { get; set; } [JsonIgnore] diff --git a/server/AyaNova/models/WorkOrderItemTask.cs b/server/AyaNova/models/WorkOrderItemTask.cs index f61212a0..1eb46316 100644 --- a/server/AyaNova/models/WorkOrderItemTask.cs +++ b/server/AyaNova/models/WorkOrderItemTask.cs @@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; using AyaNova.Biz; +using System.Collections.Generic; namespace AyaNova.Models { @@ -26,7 +27,12 @@ namespace AyaNova.Models public string CompletedByUserViz { get; set; } public DateTime? CompletedDate { get; set; } - + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } + [Required] public long WorkOrderItemId { get; set; } [JsonIgnore] diff --git a/server/AyaNova/models/WorkOrderItemTravel.cs b/server/AyaNova/models/WorkOrderItemTravel.cs index dc87af33..cc55d7d9 100644 --- a/server/AyaNova/models/WorkOrderItemTravel.cs +++ b/server/AyaNova/models/WorkOrderItemTravel.cs @@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; using AyaNova.Biz; +using System.Collections.Generic; namespace AyaNova.Models { @@ -29,28 +30,6 @@ namespace AyaNova.Models public decimal Distance { get; set; } - // //PRICE FIELDS - // [Required] - // public decimal Cost { get; set; } - // [Required] - // public decimal ListPrice { get; set; } - // [Required] - // public decimal Price { get; set; } - // [Required] - // public string TaxName { get; set; } - // [Required] - // public decimal TaxAPct { get; set; } - // [Required] - // public decimal TaxBPct { get; set; } - // [Required] - // public bool TaxOnTax { get; set; } - // [NotMapped] - // public decimal TaxAViz { get; set; } - // [NotMapped] - // public decimal TaxBViz { get; set; } - // [NotMapped] - // public decimal LineTotalViz { get; set; } - //Standard pricing fields (mostly to support printed reports though some show in UI) //some not to be sent with record depending on role (i.e. cost and charge in some cases) public decimal? PriceOverride { get; set; }//user entered manually overridden price, if null then ignored in calcs otherwise this *is* the price even if zero @@ -71,6 +50,11 @@ namespace AyaNova.Models [NotMapped] public decimal LineTotalViz { get; set; }//line total netViz + taxes + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } [Required] public long WorkOrderItemId { get; set; } diff --git a/server/AyaNova/models/WorkOrderItemUnit.cs b/server/AyaNova/models/WorkOrderItemUnit.cs index ae21f5a0..f9ebbdf2 100644 --- a/server/AyaNova/models/WorkOrderItemUnit.cs +++ b/server/AyaNova/models/WorkOrderItemUnit.cs @@ -25,6 +25,11 @@ namespace AyaNova.Models [JsonIgnore] public WorkOrderItem WorkOrderItem { get; set; } + + //workaround for notification + [NotMapped, JsonIgnore] + public string Name { get; set; } + [NotMapped, JsonIgnore] public AyaType AyaType { get => AyaType.WorkOrderItemUnit; } diff --git a/server/AyaNova/models/WorkOrderState.cs b/server/AyaNova/models/WorkOrderState.cs index c5f2271e..57aad7b9 100644 --- a/server/AyaNova/models/WorkOrderState.cs +++ b/server/AyaNova/models/WorkOrderState.cs @@ -3,6 +3,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Newtonsoft.Json; using AyaNova.Biz; +using System.Collections.Generic; namespace AyaNova.Models { @@ -15,16 +16,22 @@ namespace AyaNova.Models public long WorkOrderId { get; set; } [Required] public long WorkOrderStatusId { get; set; } - + public DateTime Created { get; set; } = DateTime.UtcNow; [Required] public long UserId { get; set; } - [NotMapped] + [NotMapped] public string UserViz { get; set; } - //UTILITY FIELDS - + //workaround for notification + [NotMapped, JsonIgnore] + public List Tags { get; set; } = new List(); + [NotMapped, JsonIgnore] + public string Name { get; set; } + + //UTILITY FIELDS + //related // [JsonIgnore]//internal only here at server not used by client // public WorkOrderStatus WorkOrderStatus { get; set; }