This commit is contained in:
@@ -139,6 +139,8 @@ namespace AyaNova.Api.Controllers
|
|||||||
case AyaType.WorkOrderItemScheduledUser:
|
case AyaType.WorkOrderItemScheduledUser:
|
||||||
case AyaType.WorkOrderItemTask:
|
case AyaType.WorkOrderItemTask:
|
||||||
case AyaType.WorkOrderItemTravel:
|
case AyaType.WorkOrderItemTravel:
|
||||||
|
case AyaType.WorkOrderItemOutsideService:
|
||||||
|
case AyaType.WorkOrderItemUnit:
|
||||||
AyaTypeId TypeId = await WorkOrderBiz.GetAncestor(ayaType, id, ct);
|
AyaTypeId TypeId = await WorkOrderBiz.GetAncestor(ayaType, id, ct);
|
||||||
return Ok(ApiOkResponse.Response(new { AyaType = TypeId.ATypeAsInt, Id = TypeId.ObjectId }));
|
return Ok(ApiOkResponse.Response(new { AyaType = TypeId.ATypeAsInt, Id = TypeId.ObjectId }));
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -138,7 +138,8 @@ namespace AyaNova.Biz
|
|||||||
PartInventoryRestock = 69,//for list only, synthetic object
|
PartInventoryRestock = 69,//for list only, synthetic object
|
||||||
PartInventoryRequest = 70,//for list only not, synthetic object
|
PartInventoryRequest = 70,//for list only not, synthetic object
|
||||||
WorkOrderStatus = 71,
|
WorkOrderStatus = 71,
|
||||||
TaskGroup = 72
|
TaskGroup = 72,
|
||||||
|
WorkOrderItemOutsideService = 73
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,8 @@ namespace AyaNova.Biz
|
|||||||
return await ct.WorkOrderItemTravel.AnyAsync(z => z.Id == id);
|
return await ct.WorkOrderItemTravel.AnyAsync(z => z.Id == id);
|
||||||
case AyaType.WorkOrderItemUnit:
|
case AyaType.WorkOrderItemUnit:
|
||||||
return await ct.WorkOrderItemUnit.AnyAsync(z => z.Id == id);
|
return await ct.WorkOrderItemUnit.AnyAsync(z => z.Id == id);
|
||||||
|
case AyaType.WorkOrderItemOutsideService:
|
||||||
|
return await ct.WorkOrderItemOutsideService.AnyAsync(z => z.Id == id);
|
||||||
//---
|
//---
|
||||||
case AyaType.WorkOrderTemplate:
|
case AyaType.WorkOrderTemplate:
|
||||||
return await ct.WorkOrderTemplate.AnyAsync(z => z.Id == id);
|
return await ct.WorkOrderTemplate.AnyAsync(z => z.Id == id);
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ namespace AyaNova.Biz
|
|||||||
case AyaType.WorkOrderItemTask:
|
case AyaType.WorkOrderItemTask:
|
||||||
case AyaType.WorkOrderItemTravel:
|
case AyaType.WorkOrderItemTravel:
|
||||||
case AyaType.WorkOrderItemUnit:
|
case AyaType.WorkOrderItemUnit:
|
||||||
|
case AyaType.WorkOrderItemOutsideService:
|
||||||
return new WorkOrderBiz(ct, userId, translationId, roles);
|
return new WorkOrderBiz(ct, userId, translationId, roles);
|
||||||
//---
|
//---
|
||||||
case AyaType.WorkOrderTemplate:
|
case AyaType.WorkOrderTemplate:
|
||||||
|
|||||||
@@ -550,6 +550,14 @@ namespace AyaNova.Biz
|
|||||||
AuthorizationRoles.SalesLimited | AuthorizationRoles.SubContractorLimited | AuthorizationRoles.TechLimited,
|
AuthorizationRoles.SalesLimited | AuthorizationRoles.SubContractorLimited | AuthorizationRoles.TechLimited,
|
||||||
Select = AuthorizationRoles.All
|
Select = AuthorizationRoles.All
|
||||||
});
|
});
|
||||||
|
|
||||||
|
roles.Add(AyaType.WorkOrderItemOutsideService, new BizRoleSet()
|
||||||
|
{
|
||||||
|
Change = AuthorizationRoles.BizAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.TechFull | AuthorizationRoles.SubContractorFull | AuthorizationRoles.AccountingFull,
|
||||||
|
ReadFullRecord = AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited | AuthorizationRoles.SalesFull |
|
||||||
|
AuthorizationRoles.SalesLimited | AuthorizationRoles.SubContractorLimited | AuthorizationRoles.TechLimited,
|
||||||
|
Select = AuthorizationRoles.All
|
||||||
|
});
|
||||||
//---
|
//---
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -273,6 +273,12 @@ namespace AyaNova.Biz
|
|||||||
case AyaType.WorkOrderItemTravel:
|
case AyaType.WorkOrderItemTravel:
|
||||||
woitemid = await ct.WorkOrderItemTravel.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
woitemid = await ct.WorkOrderItemTravel.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||||
break;
|
break;
|
||||||
|
case AyaType.WorkOrderItemOutsideService:
|
||||||
|
woitemid = await ct.WorkOrderItemOutsideService.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||||
|
break;
|
||||||
|
case AyaType.WorkOrderItemUnit:
|
||||||
|
woitemid = await ct.WorkOrderItemUnit.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new System.NotSupportedException($"WorkOrderBiz::GetAncestor -> AyaType {ayaType.ToString()} is not supported");
|
throw new System.NotSupportedException($"WorkOrderBiz::GetAncestor -> AyaType {ayaType.ToString()} is not supported");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ namespace AyaNova.Models
|
|||||||
public virtual DbSet<WorkOrderItemTask> WorkOrderItemTask { get; set; }
|
public virtual DbSet<WorkOrderItemTask> WorkOrderItemTask { get; set; }
|
||||||
public virtual DbSet<WorkOrderItemTravel> WorkOrderItemTravel { get; set; }
|
public virtual DbSet<WorkOrderItemTravel> WorkOrderItemTravel { get; set; }
|
||||||
public virtual DbSet<WorkOrderItemUnit> WorkOrderItemUnit { get; set; }
|
public virtual DbSet<WorkOrderItemUnit> WorkOrderItemUnit { get; set; }
|
||||||
|
public virtual DbSet<WorkOrderItemOutsideService> WorkOrderItemOutsideService { get; set; }
|
||||||
public virtual DbSet<WorkOrderStatus> WorkOrderStatus { get; set; }
|
public virtual DbSet<WorkOrderStatus> WorkOrderStatus { get; set; }
|
||||||
|
|
||||||
//WorkOrderTemplate
|
//WorkOrderTemplate
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|||||||
60
server/AyaNova/models/WorkOrderItemOutsideService.cs
Normal file
60
server/AyaNova/models/WorkOrderItemOutsideService.cs
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using AyaNova.Biz;
|
||||||
|
|
||||||
|
|
||||||
|
namespace AyaNova.Models
|
||||||
|
{
|
||||||
|
public class WorkOrderItemOutsideService : ICoreBizObjectModel
|
||||||
|
{
|
||||||
|
public long Id { get; set; }
|
||||||
|
public uint Concurrency { get; set; }
|
||||||
|
public string Notes { get; set; }
|
||||||
|
|
||||||
|
public long? UnitId { get; set; }
|
||||||
|
public long? VendorSentToId { get; set; }
|
||||||
|
public long? VendorSentViaId { get; set; }
|
||||||
|
public string RMANumber { get; set; }
|
||||||
|
public string TrackingNumber { get; set; }
|
||||||
|
public decimal RepairCost { get; set; }
|
||||||
|
public decimal ShippingCost { get; set; }
|
||||||
|
public decimal ShippingPrice { get; set; }
|
||||||
|
public DateTime? SentDate { get; set; }
|
||||||
|
public DateTime? ETADate { get; set; }
|
||||||
|
public DateTime? ReturnDate { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public long WorkOrderItemId { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public WorkOrderItem WorkOrderItem { get; set; }
|
||||||
|
|
||||||
|
[NotMapped, JsonIgnore]
|
||||||
|
public AyaType AyaType { get => AyaType.WorkOrderItemOutsideService; }
|
||||||
|
|
||||||
|
}//eoc
|
||||||
|
}//eons
|
||||||
|
/*
|
||||||
|
CREATE TABLE [dbo].[AWORKORDERITEMOUTSIDESERVICE](
|
||||||
|
[AID] [uniqueidentifier] NOT NULL,
|
||||||
|
[AWORKORDERITEMID] [uniqueidentifier] NOT NULL,
|
||||||
|
[ACREATOR] [uniqueidentifier] NOT NULL,
|
||||||
|
[AMODIFIER] [uniqueidentifier] NOT NULL,
|
||||||
|
[ACREATED] [datetime] NOT NULL,
|
||||||
|
[AMODIFIED] [datetime] NOT NULL,
|
||||||
|
[ANOTES] [ntext] NULL,
|
||||||
|
[AVENDORSENTTOID] [uniqueidentifier] NULL,
|
||||||
|
[AVENDORSENTVIAID] [uniqueidentifier] NULL,
|
||||||
|
[ARMANUMBER] [nvarchar](255) NULL,
|
||||||
|
[ATRACKINGNUMBER] [nvarchar](255) NULL,
|
||||||
|
[AREPAIRCOST] [decimal](19, 5) NULL,
|
||||||
|
[AREPAIRPRICE] [decimal](19, 5) NULL,
|
||||||
|
[ASHIPPINGCOST] [decimal](19, 5) NULL,
|
||||||
|
[ASHIPPINGPRICE] [decimal](19, 5) NULL,
|
||||||
|
[ADATESENT] [datetime] NULL,
|
||||||
|
[ASENDERUSERID] [uniqueidentifier] NULL,
|
||||||
|
[ADATEETA] [datetime] NULL,
|
||||||
|
[ADATERETURNED] [datetime] NUL
|
||||||
|
*/
|
||||||
@@ -8,12 +8,18 @@ namespace AyaNova.Models
|
|||||||
{
|
{
|
||||||
public class WorkOrderItemUnit : ICoreBizObjectModel
|
public class WorkOrderItemUnit : ICoreBizObjectModel
|
||||||
{
|
{
|
||||||
|
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
public uint Concurrency { get; set; }
|
public uint Concurrency { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
//after much to and fro just code this as planned but definitely consider custom fields adn tags for this and possibly all other grandchildren as well?
|
public string Wiki { get; set; }
|
||||||
|
public string CustomFields { get; set; }
|
||||||
|
public List<string> Tags { get; set; } = new List<string>();
|
||||||
|
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public long UnitId { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public long WorkOrderItemId { get; set; }
|
public long WorkOrderItemId { get; set; }
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
@@ -41,7 +47,7 @@ CREATE TABLE [dbo].[AWORKORDERITEM](
|
|||||||
[ASUMMARY] [nvarchar](255) NULL,
|
[ASUMMARY] [nvarchar](255) NULL,
|
||||||
[ATYPEID] [uniqueidentifier] NULL,
|
[ATYPEID] [uniqueidentifier] NULL,
|
||||||
[AUNITID] [uniqueidentifier] NULL,//<--------UNIT
|
[AUNITID] [uniqueidentifier] NULL,//<--------UNIT
|
||||||
[AWORKORDERITEMUNITSERVICETYPEID] [uniqueidentifier] NULL,//<--------UNIT
|
[AWORKORDERITEMUNITSERVICETYPEID] [uniqueidentifier] NULL,//<--------UNIT//NOW TAGS HMMM
|
||||||
[AWARRANTYSERVICE] [bit] NOT NULL,
|
[AWARRANTYSERVICE] [bit] NOT NULL,
|
||||||
[ACUSTOM1] [ntext] NULL,
|
[ACUSTOM1] [ntext] NULL,
|
||||||
[ACUSTOM2] [ntext] NULL,
|
[ACUSTOM2] [ntext] NULL,
|
||||||
|
|||||||
@@ -827,10 +827,17 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
|||||||
+ "manualdiscountpct DECIMAL(8,5) NOT NULL default 0 "
|
+ "manualdiscountpct DECIMAL(8,5) NOT NULL default 0 "
|
||||||
+ ")");
|
+ ")");
|
||||||
|
|
||||||
|
//WORKORDERITEM UNIT
|
||||||
|
|
||||||
await ExecQueryAsync("CREATE TABLE aworkorderitemunit (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderitemid BIGINT NOT NULL REFERENCES aworkorderitem (id), "
|
await ExecQueryAsync("CREATE TABLE aworkorderitemunit (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderitemid BIGINT NOT NULL REFERENCES aworkorderitem (id), "
|
||||||
+ "notes TEXT, customfields TEXT, tags VARCHAR(255) ARRAY)");
|
+ "notes TEXT, customfields TEXT, tags VARCHAR(255) ARRAY, unitid BIGINT NOT NULL REFERENCES aunit"
|
||||||
|
+ ")");
|
||||||
|
|
||||||
|
//WORKORDERITEM OUTSIDE SERVICE
|
||||||
|
await ExecQueryAsync("CREATE TABLE aworkorderitemoutsideservice (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderitemid BIGINT NOT NULL REFERENCES aworkorderitem (id), "
|
||||||
|
+ "unitid BIGINT REFERENCES aunit, vendorsenttoid BIGINT REFERENCES avendor, vendorsentviaid BIGINT REFERENCES avendor, rmanumber text, trackingnumber text, "
|
||||||
|
+ "repaircost DECIMAL(38,18) NOT NULL default 0, shippingcost DECIMAL(38,18) NOT NULL default 0, shippingprice DECIMAL(38,18) NOT NULL default 0, "
|
||||||
|
+ "SentDate TIMESTAMP, etadate TIMESTAMP, returndate TIMESTAMP"
|
||||||
|
+ ")");
|
||||||
|
|
||||||
//POITEM LINK
|
//POITEM LINK
|
||||||
await ExecQueryAsync("ALTER TABLE apurchaseorderitem ADD column workorderitempartrequestid BIGINT REFERENCES aworkorderitempartrequest");
|
await ExecQueryAsync("ALTER TABLE apurchaseorderitem ADD column workorderitempartrequestid BIGINT REFERENCES aworkorderitempartrequest");
|
||||||
|
|||||||
Reference in New Issue
Block a user