From 39331e578a33b6f97d61ef2b604802195b21e36a Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 26 Jul 2021 22:35:59 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- .../AyaNova/DataList/QuoteStatusDataList.cs | 84 +++++++++++++++++++ .../DataList/WorkOrderStatusDataList.cs | 6 +- server/AyaNova/biz/QuoteBiz.cs | 3 + server/AyaNova/models/Quote.cs | 11 +-- server/AyaNova/resource/de.json | 3 +- server/AyaNova/resource/en.json | 3 +- server/AyaNova/resource/es.json | 3 +- server/AyaNova/resource/fr.json | 3 +- 9 files changed, 101 insertions(+), 17 deletions(-) create mode 100644 server/AyaNova/DataList/QuoteStatusDataList.cs diff --git a/.vscode/launch.json b/.vscode/launch.json index b77f3b95..fcc80a75 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -53,7 +53,7 @@ "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", - "AYANOVA_SERVER_TEST_MODE": "false", + "AYANOVA_SERVER_TEST_MODE": "true", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" diff --git a/server/AyaNova/DataList/QuoteStatusDataList.cs b/server/AyaNova/DataList/QuoteStatusDataList.cs new file mode 100644 index 00000000..5c5b833e --- /dev/null +++ b/server/AyaNova/DataList/QuoteStatusDataList.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; +using AyaNova.Biz; +namespace AyaNova.DataList +{ + internal class QuoteStatusDataList : DataListProcessingBase + { + public QuoteStatusDataList() + { + DefaultListAType = AyaType.QuoteStatus; + SQLFrom = "from aquotestatus"; + var RoleSet = BizRoles.GetRoleSet(DefaultListAType); + AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; + DefaultColumns = new List() { "QuoteStatusName", "SelectRoles", "RemoveRoles", "Active" }; + DefaultSortBy = new Dictionary() { { "QuoteStatusName", "+" } }; + FieldDefinitions = new List(); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteStatusName", + FieldKey = "QuoteStatusName", + AType = (int)AyaType.QuoteStatus, + UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "aquotestatus.id", + SqlValueColumnName = "aquotestatus.name", + SqlColorColumnName = "aquotestatus.color", + IsRowId = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteStatusNotes", + FieldKey = "QuoteStatusNotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquotestatus.notes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Active", + FieldKey = "Active", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aquotestatus.active" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteStatusCompleted", + FieldKey = "QuoteStatusCompleted", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aquotestatus.completed" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteStatusLocked", + FieldKey = "QuoteStatusLocked", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aquotestatus.locked" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "SelectRoles", + FieldKey = "SelectRoles", + UiFieldDataType = (int)UiFieldDataType.Roles, + //NOTE: not technically an enum list but this will trigger datagrid at client to fetch roles for special handling + EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AuthorizationRoles).ToString()), + SqlValueColumnName = "aquotestatus.selectroles" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "RemoveRoles", + FieldKey = "RemoveRoles", + UiFieldDataType = (int)UiFieldDataType.Roles, + //NOTE: not technically an enum list but this will trigger datagrid at client to fetch roles for special handling + EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AuthorizationRoles).ToString()), + SqlValueColumnName = "aquotestatus.removeroles" + }); + + + } + }//eoc +}//eons \ No newline at end of file diff --git a/server/AyaNova/DataList/WorkOrderStatusDataList.cs b/server/AyaNova/DataList/WorkOrderStatusDataList.cs index 74b33112..294a0e67 100644 --- a/server/AyaNova/DataList/WorkOrderStatusDataList.cs +++ b/server/AyaNova/DataList/WorkOrderStatusDataList.cs @@ -10,7 +10,7 @@ namespace AyaNova.DataList SQLFrom = "from aworkorderstatus"; var RoleSet = BizRoles.GetRoleSet(DefaultListAType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; - DefaultColumns = new List() { "WorkOrderStatusName", "SelectRoles", "WorkOrderStatusRemoveRoles", "Active" }; + DefaultColumns = new List() { "WorkOrderStatusName", "SelectRoles", "RemoveRoles", "Active" }; DefaultSortBy = new Dictionary() { { "WorkOrderStatusName", "+" } }; FieldDefinitions = new List(); @@ -70,8 +70,8 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { - TKey = "WorkOrderStatusRemoveRoles", - FieldKey = "WorkOrderStatusRemoveRoles", + TKey = "RemoveRoles", + FieldKey = "RemoveRoles", UiFieldDataType = (int)UiFieldDataType.Roles, //NOTE: not technically an enum list but this will trigger datagrid at client to fetch roles for special handling EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AuthorizationRoles).ToString()), diff --git a/server/AyaNova/biz/QuoteBiz.cs b/server/AyaNova/biz/QuoteBiz.cs index 980f40ec..b1bb6438 100644 --- a/server/AyaNova/biz/QuoteBiz.cs +++ b/server/AyaNova/biz/QuoteBiz.cs @@ -1058,6 +1058,9 @@ namespace AyaNova.Biz if (o.ProjectId != null) o.ProjectViz = await ct.Project.AsNoTracking().Where(x => x.Id == o.ProjectId).Select(x => x.Name).FirstOrDefaultAsync(); + if (o.PreparedById != null) + o.PreparedByViz = await ct.User.AsNoTracking().Where(x => x.Id == o.PreparedById).Select(x => x.Name).FirstOrDefaultAsync(); + if (o.ContractId != null) { var contractVizFields = await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => new { Name = x.Name, AlertNotes = x.AlertNotes }).FirstOrDefaultAsync(); diff --git a/server/AyaNova/models/Quote.cs b/server/AyaNova/models/Quote.cs index 8ea7363b..b5fcf76f 100644 --- a/server/AyaNova/models/Quote.cs +++ b/server/AyaNova/models/Quote.cs @@ -23,6 +23,8 @@ namespace AyaNova.Models //---- public long? PreparedById { get; set; } + [NotMapped] + public string PreparedByViz { get; set; } public string Introduction { get; set; } public DateTime? Requested { get; set; } public DateTime? ValidUntil { get; set; } @@ -49,15 +51,6 @@ namespace AyaNova.Models public DateTime CreatedDate { get; set; } = DateTime.UtcNow; - //public DateTime? CompleteByDate { get; set; } - //public TimeSpan DurationToCompleted { get; set; } = TimeSpan.Zero; - // public string InvoiceNumber { get; set; } - //public string CustomerSignature { get; set; } - // public string CustomerSignatureName { get; set; } - // public DateTime? CustomerSignatureCaptured { get; set; } - // public string TechSignature { get; set; } - // public string TechSignatureName { get; set; } - // public DateTime? TechSignatureCaptured { get; set; } public bool Onsite { get; set; } public long? ContractId { get; set; } [NotMapped] diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index d9fbc586..038b7b94 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -1614,6 +1614,7 @@ "QuoteQuoteNumber": "Angebotsnummer", "QuoteQuoteRequestDate": "Angefordert", "QuoteQuoteStatusType": "Status", + "QuoteStatusList":"Angebotsstatusliste", "QuoteServiceWorkOrderID": "Servicearbeitsauftrag", "QuoteValidUntilDate": "Gültig bis", "QuoteStatusTypesAwarded": "Erteilt", @@ -1640,7 +1641,7 @@ "WorkOrderStatusNotes": "Anmerkungen", "WorkOrderStatusColor": "Farbe", "SelectRoles": "Wer kann auswählen", - "WorkOrderStatusRemoveRoles": "Wer kann entfernen", + "RemoveRoles": "Wer kann entfernen", "WorkOrderStatusCompleted": "Ist ein abgeschlossener Status", "WorkOrderStatusLocked": "Ist ein Sperrstatus", "WorkOrderStatusUnderlined": "Unterstrichen", diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index dfc0873e..d3cf27e5 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -1614,6 +1614,7 @@ "QuoteQuoteNumber": "Quote Number", "QuoteQuoteRequestDate": "Requested", "QuoteQuoteStatusType": "Status", + "QuoteStatusList":"Quote status list", "QuoteServiceWorkOrderID": "Service Work order", "QuoteValidUntilDate": "Valid Until", "QuoteStatusTypesAwarded": "Awarded", @@ -1640,7 +1641,7 @@ "WorkOrderStatusNotes": "Notes", "WorkOrderStatusColor": "Color", "SelectRoles": "Who can select", - "WorkOrderStatusRemoveRoles": "Who can remove", + "RemoveRoles": "Who can remove", "WorkOrderStatusCompleted": "Is a completed status", "WorkOrderStatusLocked": "Is a locking status", "WorkOrderStatusUnderlined": "Underlined", diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index 71ecb82a..d1383763 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -1614,6 +1614,7 @@ "QuoteQuoteNumber": "Número de presupuesto", "QuoteQuoteRequestDate": "Solicitado", "QuoteQuoteStatusType": "Estado", + "QuoteStatusList":"Lista de estado de cotización", "QuoteServiceWorkOrderID": "Pedido del servicio", "QuoteValidUntilDate": "Válido hasta", "QuoteStatusTypesAwarded": "Concedido", @@ -1640,7 +1641,7 @@ "WorkOrderStatusNotes": "Notas", "WorkOrderStatusColor": "Color", "SelectRoles": "Quien puede seleccionar", - "WorkOrderStatusRemoveRoles": "Quien puede remover", + "RemoveRoles": "Quien puede remover", "WorkOrderStatusCompleted": "Es un estado completo", "WorkOrderStatusLocked": "Es un estado de bloqueo", "WorkOrderStatusUnderlined": "Subrayado", diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index a39f84bf..22f473d3 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -1614,6 +1614,7 @@ "QuoteQuoteNumber": "Numéro de devis", "QuoteQuoteRequestDate": "Demandé", "QuoteQuoteStatusType": "État", + "QuoteStatusList":"Liste des statuts de devis", "QuoteServiceWorkOrderID": "Bon de travail de service", "QuoteValidUntilDate": "Date de validité", "QuoteStatusTypesAwarded": "Attribué", @@ -1640,7 +1641,7 @@ "WorkOrderStatusNotes": "Remarques", "WorkOrderStatusColor": "Couleur", "SelectRoles": "Qui peut sélectionner", - "WorkOrderStatusRemoveRoles": "Qui peut supprimer", + "RemoveRoles": "Qui peut supprimer", "WorkOrderStatusCompleted": "Est un statut terminé", "WorkOrderStatusLocked": "Est un statut de verrouillage", "WorkOrderStatusUnderlined": "Souligné",