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';