This commit is contained in:
@@ -139,6 +139,8 @@ namespace AyaNova.Api.Controllers
|
||||
case AyaType.WorkOrderItemScheduledUser:
|
||||
case AyaType.WorkOrderItemTask:
|
||||
case AyaType.WorkOrderItemTravel:
|
||||
case AyaType.WorkOrderItemOutsideService:
|
||||
case AyaType.WorkOrderItemUnit:
|
||||
AyaTypeId TypeId = await WorkOrderBiz.GetAncestor(ayaType, id, ct);
|
||||
return Ok(ApiOkResponse.Response(new { AyaType = TypeId.ATypeAsInt, Id = TypeId.ObjectId }));
|
||||
default:
|
||||
|
||||
@@ -138,7 +138,8 @@ namespace AyaNova.Biz
|
||||
PartInventoryRestock = 69,//for list only, synthetic object
|
||||
PartInventoryRequest = 70,//for list only not, synthetic object
|
||||
WorkOrderStatus = 71,
|
||||
TaskGroup = 72
|
||||
TaskGroup = 72,
|
||||
WorkOrderItemOutsideService = 73
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -101,6 +101,8 @@ namespace AyaNova.Biz
|
||||
return await ct.WorkOrderItemTravel.AnyAsync(z => z.Id == id);
|
||||
case AyaType.WorkOrderItemUnit:
|
||||
return await ct.WorkOrderItemUnit.AnyAsync(z => z.Id == id);
|
||||
case AyaType.WorkOrderItemOutsideService:
|
||||
return await ct.WorkOrderItemOutsideService.AnyAsync(z => z.Id == id);
|
||||
//---
|
||||
case AyaType.WorkOrderTemplate:
|
||||
return await ct.WorkOrderTemplate.AnyAsync(z => z.Id == id);
|
||||
|
||||
@@ -91,6 +91,7 @@ namespace AyaNova.Biz
|
||||
case AyaType.WorkOrderItemTask:
|
||||
case AyaType.WorkOrderItemTravel:
|
||||
case AyaType.WorkOrderItemUnit:
|
||||
case AyaType.WorkOrderItemOutsideService:
|
||||
return new WorkOrderBiz(ct, userId, translationId, roles);
|
||||
//---
|
||||
case AyaType.WorkOrderTemplate:
|
||||
|
||||
@@ -550,6 +550,14 @@ namespace AyaNova.Biz
|
||||
AuthorizationRoles.SalesLimited | AuthorizationRoles.SubContractorLimited | AuthorizationRoles.TechLimited,
|
||||
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:
|
||||
woitemid = await ct.WorkOrderItemTravel.Where(z => z.Id == id).Select(z => z.WorkOrderItemId).SingleOrDefaultAsync();
|
||||
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:
|
||||
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<WorkOrderItemTravel> WorkOrderItemTravel { get; set; }
|
||||
public virtual DbSet<WorkOrderItemUnit> WorkOrderItemUnit { get; set; }
|
||||
public virtual DbSet<WorkOrderItemOutsideService> WorkOrderItemOutsideService { get; set; }
|
||||
public virtual DbSet<WorkOrderStatus> WorkOrderStatus { get; set; }
|
||||
|
||||
//WorkOrderTemplate
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
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 long Id { get; set; }
|
||||
public uint Concurrency { 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]
|
||||
public long WorkOrderItemId { get; set; }
|
||||
[JsonIgnore]
|
||||
@@ -41,7 +47,7 @@ CREATE TABLE [dbo].[AWORKORDERITEM](
|
||||
[ASUMMARY] [nvarchar](255) NULL,
|
||||
[ATYPEID] [uniqueidentifier] NULL,
|
||||
[AUNITID] [uniqueidentifier] NULL,//<--------UNIT
|
||||
[AWORKORDERITEMUNITSERVICETYPEID] [uniqueidentifier] NULL,//<--------UNIT
|
||||
[AWORKORDERITEMUNITSERVICETYPEID] [uniqueidentifier] NULL,//<--------UNIT//NOW TAGS HMMM
|
||||
[AWARRANTYSERVICE] [bit] NOT NULL,
|
||||
[ACUSTOM1] [ntext] NULL,
|
||||
[ACUSTOM2] [ntext] NULL,
|
||||
|
||||
@@ -827,10 +827,17 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
||||
+ "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), "
|
||||
+ "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
|
||||
await ExecQueryAsync("ALTER TABLE apurchaseorderitem ADD column workorderitempartrequestid BIGINT REFERENCES aworkorderitempartrequest");
|
||||
|
||||
Reference in New Issue
Block a user