diff --git a/server/AyaNova/Controllers/ServiceBankController.cs b/server/AyaNova/Controllers/ServiceBankController.cs index e1f022b0..3eece369 100644 --- a/server/AyaNova/Controllers/ServiceBankController.cs +++ b/server/AyaNova/Controllers/ServiceBankController.cs @@ -60,6 +60,30 @@ namespace AyaNova.Api.Controllers return CreatedAtAction(nameof(ServiceBankController.GetServiceBank), new { id = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o)); } + /// + /// Migrate ServiceBank + /// (for migration from v7 only, do not use) + /// + /// + /// From route path + /// + [HttpPost("migrate")] + public async Task MigrateServiceBank([FromBody] ServiceBank newObject, ApiVersion apiVersion) + { + if (!serverState.IsOpen) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + ServiceBankBiz biz = ServiceBankBiz.GetBiz(ct, HttpContext); + if (!Authorized.HasCreateRole(HttpContext.Items, biz.BizType)) + return StatusCode(403, new ApiNotAuthorizedResponse()); + if (!ModelState.IsValid) + return BadRequest(new ApiErrorResponse(ModelState)); + ServiceBank o = await biz.CreateAsync(newObject); + if (o == null) + return BadRequest(new ApiErrorResponse(biz.Errors)); + else + return CreatedAtAction(nameof(ServiceBankController.GetServiceBank), new { id = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o)); + } + /// /// Get ServiceBank diff --git a/server/AyaNova/DataList/ServiceBankDataList.cs b/server/AyaNova/DataList/ServiceBankDataList.cs index 33d8e21f..0c70789b 100644 --- a/server/AyaNova/DataList/ServiceBankDataList.cs +++ b/server/AyaNova/DataList/ServiceBankDataList.cs @@ -25,6 +25,10 @@ namespace AyaNova.DataList cm.sort = "-"; dlistView.Add(cm); + cm = new JObject(); + cm.fld = "Object"; + dlistView.Add(cm); + cm = new JObject(); cm.fld = "ServiceBankCurrency"; dlistView.Add(cm); @@ -49,10 +53,6 @@ namespace AyaNova.DataList cm.fld = "ServiceBankHoursBalance"; dlistView.Add(cm); - cm = new JObject(); - cm.fld = "ServiceBankSourceRootObjectType"; - dlistView.Add(cm); - cm = new JObject(); cm.fld = "ServiceBankDescription"; dlistView.Add(cm); @@ -67,6 +67,16 @@ namespace AyaNova.DataList TKey = "ServiceBankSourceRootObjectType", FieldKey = "ServiceBankSourceRootObjectType", UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "aservicebank.sourceid", + SqlValueColumnName = "AYGETNAME(aservicebank.sourceid, aservicebank.sourcetype)", + SqlAyTypeColumnName = "aservicebank.sourcetype" + }); + + FieldDefinitions.Add(new AyaDataListFieldDefinition + { + TKey = "Object", + FieldKey = "Object", + UiFieldDataType = (int)UiFieldDataType.Text, SqlIdColumnName = "aservicebank.objectid", SqlValueColumnName = "AYGETNAME(aservicebank.objectid, aservicebank.objecttype)", SqlAyTypeColumnName = "aservicebank.objecttype" diff --git a/server/AyaNova/biz/ServiceBankBiz.cs b/server/AyaNova/biz/ServiceBankBiz.cs index 261b001b..19a8a823 100644 --- a/server/AyaNova/biz/ServiceBankBiz.cs +++ b/server/AyaNova/biz/ServiceBankBiz.cs @@ -8,7 +8,6 @@ using Microsoft.Extensions.Logging; using AyaNova.Models; using Newtonsoft.Json.Linq; using System.Collections.Generic; -using Newtonsoft.Json; namespace AyaNova.Biz { @@ -85,6 +84,26 @@ namespace AyaNova.Biz } } + //version for v8 migration purposes only + internal async Task CreateAsync(ServiceBank newObject) + { + using (var transaction = await ct.Database.BeginTransactionAsync()) + { + await ValidateAsync(newObject); + if (HasErrors) + return null; + else + { + await ct.ServiceBank.AddAsync(newObject); + await ct.SaveChangesAsync(); + await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, BizType, AyaEvent.Created), ct); + await SearchIndexAsync(newObject, true); + await transaction.CommitAsync(); + await HandlePotentialNotificationEvent(AyaEvent.Created, newObject); + return newObject; + } + } + } //////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 0eef164a..6047d86b 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -361,16 +361,16 @@ BEGIN when 32 then aytable = 'aunitmodel'; when 33 then aytable = 'avendor'; when 34 then aytable = 'aworkorder'; aynamecolumn ='serial'; - when 35 then aytable = 'aworkorderitem'; - when 36 then aytable = 'aworkorderitemmiscexpense'; - when 37 then aytable = 'aworkorderitemlabor'; - when 38 then aytable = 'aworkorderitemloan'; - when 39 then aytable = 'aworkorderitempart'; - when 40 then aytable = 'aworkorderitempartrequest'; - when 41 then aytable = 'aworkorderitemscheduleduser'; - when 42 then aytable = 'aworkorderitemtask'; - when 43 then aytable = 'aworkorderitemtravel'; - when 44 then aytable = 'aworkorderitemunit'; + when 35 then return 'LT:WorkOrderItem'; + when 36 then return 'LT:WorkOrderItemExpense'; + when 37 then return 'LT:WorkOrderItemLabor'; + when 38 then return 'LT:aworkorderitemloan'; + when 39 then return 'LT:WorkOrderItemPart'; + when 40 then return 'LT:WorkOrderItemPartRequest'; + when 41 then return 'LT:WorkOrderItemScheduledUser'; + when 42 then return 'LT:WorkOrderItemTask'; + when 43 then return 'LT:WorkOrderItemTravel'; + when 44 then return 'LT:WorkOrderItemUnit'; when 45 then aytable = 'aworkordertemplate'; when 46 then aytable = 'aworkordertemplateitem'; when 47 then return 'LT:GlobalOps';