This commit is contained in:
2021-06-17 18:22:36 +00:00
parent 0415565d17
commit 476b90053b
5 changed files with 24 additions and 4 deletions

View File

@@ -8,6 +8,8 @@ namespace AyaNova.DataList
{
DefaultListAType = AyaType.WorkOrder;
SQLFrom = "from aworkorder "
// + "left join lateral (select id, workorderstatusid, workorderid from aworkorderstate st where workorderid = aworkorder.id order by st.id DESC limit 1) st on aworkorder.id=st.workorderid "
+ "left join aworkorderstatus on (aworkorder.laststatusid = aworkorderstatus.id) "
+ "left join acustomer on (aworkorder.customerid=acustomer.id) "
+ "left join aheadoffice on (acustomer.headofficeid=aheadoffice.id) "
+ "left join aproject on (aworkorder.projectid=aproject.id) "
@@ -49,6 +51,16 @@ namespace AyaNova.DataList
SqlValueColumnName = "aheadoffice.name"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "WorkOrderStatus",
FieldKey = "WorkOrderStatus",
UiFieldDataType = (int)UiFieldDataType.Text,
AType = (int)AyaType.WorkOrderStatus,
SqlIdColumnName = "aworkorder.laststatusid",
SqlValueColumnName = "aworkorderstatus.name"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "WorkOrderSummary",

View File

@@ -1309,6 +1309,9 @@ namespace AyaNova.Biz
else
{
await ct.WorkOrderState.AddAsync(newObject);
var wo=await ct.WorkOrder.FirstOrDefaultAsync(x=>x.Id==newObject.WorkOrderId);
wo.LastStatusId=newObject.WorkOrderStatusId;
await ct.SaveChangesAsync();
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, AyaType.WorkOrderStatus, AyaEvent.Created), ct);
await StateHandlePotentialNotificationEvent(AyaEvent.Created, newObject);

View File

@@ -56,6 +56,10 @@ namespace AyaNova.Models
[NotMapped]
public string ContractViz { get; set; }
//redundant field to speed up list queries
//(added after status system already coded)
public long? LastStatusId { get; set; }
//POSTAL ADDRESS / "BILLING ADDRESS"
public string PostAddress { get; set; }

View File

@@ -22,16 +22,16 @@ namespace AyaNova.Util
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
private const int DESIRED_SCHEMA_LEVEL = 1;
internal const long EXPECTED_COLUMN_COUNT = 956;
internal const long EXPECTED_COLUMN_COUNT = 957;
internal const long EXPECTED_INDEX_COUNT = 137;
internal const long EXPECTED_CHECK_CONSTRAINTS = 415;
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 117;
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 118;
internal const long EXPECTED_VIEWS = 6;
internal const long EXPECTED_ROUTINES = 2;
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
///////////////////////////////////////////////////////////////// C957:I137:CC415:FC117:V6:R2 C957:I137:CC415:FC117:V6:R2
///////////////////////////////////////////////////////////////// C957:I137:CC415:FC118:V6:R2
/*
@@ -772,7 +772,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
//WORKORDER
await ExecQueryAsync("CREATE TABLE aworkorder (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, serial BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, "
+ "notes TEXT, wiki TEXT, customfields TEXT, tags VARCHAR(255) ARRAY, customerid BIGINT NOT NULL REFERENCES acustomer (id), "
+ "projectid BIGINT REFERENCES aproject, contractid BIGINT NULL, internalreferencenumber text, customerreferencenumber text, customercontactname text, "
+ "projectid BIGINT REFERENCES aproject, laststatusid BIGINT REFERENCES aworkorderstatus(id), contractid BIGINT NULL, internalreferencenumber text, customerreferencenumber text, customercontactname text, "
+ "servicedate TIMESTAMP, completebydate TIMESTAMP, invoicenumber TEXT, customersignature TEXT, customersignaturename TEXT, customersignaturecaptured TIMESTAMP, "
+ "techsignature TEXT, techsignaturename TEXT, techsignaturecaptured TIMESTAMP, durationtocompleted INTERVAL NOT NULL, onsite BOOL NOT NULL, "
+ "postaddress TEXT, postcity TEXT, postregion TEXT, postcountry TEXT, postcode TEXT, address TEXT, city TEXT, region TEXT, country TEXT, latitude DECIMAL(9,6), longitude DECIMAL(9,6) "

View File

@@ -2888,6 +2888,7 @@ namespace AyaNova.Util
Created = ((DateTime)o.ServiceDate).AddHours(2)
};
o.States.Add(WoState);
o.LastStatusId=WoState.WorkOrderStatusId;//simulate if user added state to wo so it gets set
}