case 3994
This commit is contained in:
@@ -9,8 +9,21 @@ namespace AyaNova.DataList
|
||||
{
|
||||
public CustomerDataList()
|
||||
{
|
||||
DefaultListAType = AyaType.Customer;
|
||||
SQLFrom = "from acustomer left join aheadoffice on (acustomer.headofficeid=aheadoffice.id) left join acontract on (acustomer.contractid=acontract.id)";
|
||||
DefaultListAType = AyaType.Customer;
|
||||
SQLFrom = @"FROM ACUSTOMER
|
||||
LEFT JOIN AHEADOFFICE ON (ACUSTOMER.HEADOFFICEID = AHEADOFFICE.ID)
|
||||
LEFT JOIN ACONTRACT ON (ACUSTOMER.CONTRACTID = ACONTRACT.ID)
|
||||
LEFT JOIN LATERAL
|
||||
(SELECT serial AS LASTWORKORDERSERIAL,
|
||||
SERVICEDATE AS LASTWORKORDERSERVICEDATE,
|
||||
AWORKORDER.ID AS LASTWORKORDERID
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID
|
||||
WHERE AWORKORDERSTATUS.COMPLETED = TRUE
|
||||
AND AWORKORDER.CUSTOMERID = ACUSTOMER.ID
|
||||
ORDER BY AWORKORDER.ID DESC
|
||||
LIMIT 1) AS LWO ON TRUE";
|
||||
|
||||
var RoleSet = BizRoles.GetRoleSet(DefaultListAType);
|
||||
AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change;
|
||||
DefaultColumns = new List<string>() { "customername", "customerphone1", "customeremail", "customerheadoffice" };
|
||||
@@ -18,6 +31,25 @@ namespace AyaNova.DataList
|
||||
|
||||
FieldDefinitions = new List<DataListFieldDefinition>();
|
||||
|
||||
|
||||
FieldDefinitions.Add(new DataListFieldDefinition
|
||||
{
|
||||
FieldKey = "LastCompletedWorkOrder",
|
||||
TKey = "LastCompletedWorkOrder",
|
||||
AType = (int)AyaType.WorkOrder,
|
||||
UiFieldDataType = (int)UiFieldDataType.Integer,
|
||||
SqlIdColumnName = "lwo.LASTWORKORDERID",
|
||||
SqlValueColumnName = "lwo.lastworkorderserial"
|
||||
});
|
||||
|
||||
FieldDefinitions.Add(new DataListFieldDefinition
|
||||
{
|
||||
TKey = "LastCompletedWorkOrderServiceDate",
|
||||
FieldKey = "LastCompletedWorkOrderServiceDate",
|
||||
UiFieldDataType = (int)UiFieldDataType.DateTime,
|
||||
SqlValueColumnName = "lwo.lastworkorderservicedate"
|
||||
});
|
||||
|
||||
FieldDefinitions.Add(new DataListFieldDefinition
|
||||
{
|
||||
TKey = "CustomerName",
|
||||
|
||||
@@ -9,21 +9,54 @@ namespace AyaNova.DataList
|
||||
{
|
||||
public UnitDataList()
|
||||
{
|
||||
DefaultListAType = AyaType.Unit;
|
||||
SQLFrom = "from aunit as amainunit "
|
||||
+ "left join acustomer on (amainunit.customerid=acustomer.id) "
|
||||
+ "left join aunit as aparentunit on (amainunit.parentunitid=aparentunit.id) "
|
||||
+ "left join aunitmodel on (amainunit.unitmodelid=aunitmodel.id) "
|
||||
+ "left join avendor on (amainunit.purchasedfromvendorid=avendor.id) "
|
||||
+ "left join aunit as areplacedbyunit on (amainunit.replacedbyunitid=areplacedbyunit.id) "
|
||||
+ "left join acontract on (amainunit.contractid=acontract.id)";
|
||||
DefaultListAType = AyaType.Unit;
|
||||
SQLFrom = @"FROM AUNIT AS AMAINUNIT
|
||||
LEFT JOIN ACUSTOMER ON (AMAINUNIT.CUSTOMERID = ACUSTOMER.ID)
|
||||
LEFT JOIN AUNIT AS APARENTUNIT ON (AMAINUNIT.PARENTUNITID = APARENTUNIT.ID)
|
||||
LEFT JOIN AUNITMODEL ON (AMAINUNIT.UNITMODELID = AUNITMODEL.ID)
|
||||
LEFT JOIN AVENDOR ON (AMAINUNIT.PURCHASEDFROMVENDORID = AVENDOR.ID)
|
||||
LEFT JOIN AUNIT AS AREPLACEDBYUNIT ON (AMAINUNIT.REPLACEDBYUNITID = AREPLACEDBYUNIT.ID)
|
||||
LEFT JOIN ACONTRACT ON (AMAINUNIT.CONTRACTID = ACONTRACT.ID)
|
||||
LEFT JOIN LATERAL
|
||||
(SELECT serial AS LASTWORKORDERSERIAL,
|
||||
SERVICEDATE AS LASTWORKORDERSERVICEDATE,
|
||||
AWORKORDERITEMUNIT.ID AS LASTWORKORDERITEMUNITID
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERITEM ON AWORKORDER.ID = AWORKORDERITEM.WORKORDERID
|
||||
LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID
|
||||
LEFT JOIN AWORKORDERITEMUNIT ON AWORKORDERITEM.ID = AWORKORDERITEMUNIT.WORKORDERITEMID
|
||||
WHERE AWORKORDERITEMUNIT.ID = AMAINUNIT.ID
|
||||
AND AWORKORDERSTATUS.COMPLETED = TRUE
|
||||
ORDER BY AWORKORDER.ID DESC
|
||||
LIMIT 1) AS LWO ON TRUE";
|
||||
|
||||
|
||||
var RoleSet = BizRoles.GetRoleSet(DefaultListAType);
|
||||
AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change;
|
||||
DefaultColumns = new List<string>() { "UnitSerial", "UnitModel", "Customer", "Active" };
|
||||
DefaultSortBy = new Dictionary<string, string>() { { "UnitSerial", "+" } };
|
||||
FieldDefinitions = new List<DataListFieldDefinition>();
|
||||
|
||||
|
||||
FieldDefinitions.Add(new DataListFieldDefinition
|
||||
{
|
||||
FieldKey = "LastCompletedWorkOrder",
|
||||
TKey = "LastCompletedWorkOrder",
|
||||
AType = (int)AyaType.WorkOrderItemUnit,
|
||||
UiFieldDataType = (int)UiFieldDataType.Integer,
|
||||
SqlIdColumnName = "lwo.lastworkorderitemunitid",
|
||||
SqlValueColumnName = "lwo.lastworkorderserial"
|
||||
});
|
||||
|
||||
FieldDefinitions.Add(new DataListFieldDefinition
|
||||
{
|
||||
TKey = "LastCompletedWorkOrderServiceDate",
|
||||
FieldKey = "LastCompletedWorkOrderServiceDate",
|
||||
UiFieldDataType = (int)UiFieldDataType.DateTime,
|
||||
SqlValueColumnName = "lwo.lastworkorderservicedate"
|
||||
});
|
||||
|
||||
|
||||
FieldDefinitions.Add(new DataListFieldDefinition
|
||||
{
|
||||
TKey = "UnitSerial",
|
||||
|
||||
@@ -373,6 +373,40 @@ namespace AyaNova.Biz
|
||||
o.HeadOfficeViz = await ct.HeadOffice.AsNoTracking().Where(x => x.Id == o.HeadOfficeId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
if (o.ContractId != null)
|
||||
o.ContractViz = await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
/*
|
||||
last completed work order stuff, way to complex to fetch via EF Core so dropping to raw sql
|
||||
SELECT serial AS LASTWORKORDERSERIAL,
|
||||
SERVICEDATE AS LASTWORKORDERSERVICEDATE,
|
||||
AWORKORDER.ID AS LASTWORKORDERID
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID
|
||||
WHERE AWORKORDERSTATUS.COMPLETED = TRUE
|
||||
AND AWORKORDER.CUSTOMERID = ACUSTOMER.ID
|
||||
ORDER BY AWORKORDER.ID DESC
|
||||
LIMIT 1
|
||||
*/
|
||||
using (var command = ct.Database.GetDbConnection().CreateCommand())
|
||||
{
|
||||
await ct.Database.OpenConnectionAsync();
|
||||
command.CommandText = @$"SELECT serial AS LASTWORKORDERSERIAL,
|
||||
SERVICEDATE AS LASTWORKORDERSERVICEDATE
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID
|
||||
WHERE AWORKORDERSTATUS.COMPLETED = TRUE
|
||||
AND AWORKORDER.CUSTOMERID = {o.Id}
|
||||
ORDER BY AWORKORDER.ID DESC
|
||||
LIMIT 1";
|
||||
using (var dr = await command.ExecuteReaderAsync())
|
||||
if (await dr.ReadAsync())
|
||||
{
|
||||
o.LastCompletedWorkOrderViz = dr.GetInt64(0);
|
||||
o.LastCompletedServiceDateViz = dr.GetDateTime(1);
|
||||
}
|
||||
|
||||
await ct.Database.CloseConnectionAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -308,6 +308,45 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
last completed work order stuff, way to complex to fetch via EF Core so dropping to raw sql
|
||||
SELECT serial AS LASTWORKORDERSERIAL,
|
||||
SERVICEDATE AS LASTWORKORDERSERVICEDATE,
|
||||
AWORKORDERITEMUNIT.UNITID AS LASTWORKORDERUNITID,
|
||||
AWORKORDERITEMUNIT.ID AS LASTWORKORDERITEMUNITID
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERITEM ON AWORKORDER.ID = AWORKORDERITEM.WORKORDERID
|
||||
LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID
|
||||
LEFT JOIN AWORKORDERITEMUNIT ON AWORKORDERITEM.ID = AWORKORDERITEMUNIT.WORKORDERITEMID
|
||||
WHERE AWORKORDERITEMUNIT.ID = AMAINUNIT.ID
|
||||
AND AWORKORDERSTATUS.COMPLETED = TRUE
|
||||
ORDER BY AWORKORDER.ID DESC
|
||||
LIMIT 1
|
||||
*/
|
||||
using (var command = ct.Database.GetDbConnection().CreateCommand())
|
||||
{
|
||||
await ct.Database.OpenConnectionAsync();
|
||||
command.CommandText = @$"SELECT serial AS LASTWORKORDERSERIAL,
|
||||
SERVICEDATE AS LASTWORKORDERSERVICEDATE
|
||||
FROM AWORKORDER
|
||||
LEFT JOIN AWORKORDERITEM ON AWORKORDER.ID = AWORKORDERITEM.WORKORDERID
|
||||
LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID
|
||||
LEFT JOIN AWORKORDERITEMUNIT ON AWORKORDERITEM.ID = AWORKORDERITEMUNIT.WORKORDERITEMID
|
||||
WHERE AWORKORDERITEMUNIT.ID = {o.Id}
|
||||
AND AWORKORDERSTATUS.COMPLETED = TRUE
|
||||
ORDER BY AWORKORDER.ID DESC
|
||||
LIMIT 1";
|
||||
using (var dr = await command.ExecuteReaderAsync())
|
||||
if (await dr.ReadAsync())
|
||||
{
|
||||
o.LastCompletedWorkOrderViz = dr.GetInt64(0);
|
||||
o.LastCompletedServiceDateViz = dr.GetDateTime(1);
|
||||
}
|
||||
|
||||
await ct.Database.CloseConnectionAsync();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -558,7 +597,7 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
}//Contract expiry event
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -39,7 +39,10 @@ namespace AyaNova.Models
|
||||
[NotMapped]
|
||||
public string ContractViz { get; set; }
|
||||
public DateTime? ContractExpires { get; set; }
|
||||
//public long? DefaultServiceTemplateId { get; set; }
|
||||
[NotMapped]
|
||||
public long? LastCompletedWorkOrderViz { get; set; }
|
||||
[NotMapped]
|
||||
public DateTime? LastCompletedServiceDateViz { get; set; }
|
||||
public string Phone1 { get; set; }
|
||||
public string Phone2 { get; set; }
|
||||
public string Phone3 { get; set; }
|
||||
|
||||
@@ -58,6 +58,12 @@ namespace AyaNova.Models
|
||||
public long LastMeterViz { get; set; }
|
||||
[NotMapped]
|
||||
public DateTime? LastMeterDateViz { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public long? LastCompletedWorkOrderViz { get; set; }
|
||||
[NotMapped]
|
||||
public DateTime? LastCompletedServiceDateViz { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public string LastMeterNotesViz { get; set; }
|
||||
public bool LifeTimeWarranty { get; set; }
|
||||
|
||||
@@ -2288,5 +2288,7 @@
|
||||
"ScheduleWOColorFrom":"Farbquelle für Arbeitsauftrag",
|
||||
"NoColor":"Keine Farbe",
|
||||
"ScheduleOptions":"Zeitplaneinstellungen",
|
||||
"ScheduleShowTypes":"Elemente zum Anzeigen"
|
||||
"ScheduleShowTypes":"Elemente zum Anzeigen",
|
||||
"LastCompletedWorkOrder":"Letzter abgeschlossener Arbeitsauftrag",
|
||||
"LastCompletedWorkOrderServiceDate":"Letzter abgeschlossener Servicetermin"
|
||||
}
|
||||
@@ -2288,7 +2288,9 @@
|
||||
"ScheduleWOColorFrom":"Work order color source",
|
||||
"NoColor":"No color",
|
||||
"ScheduleOptions":"Schedule settings",
|
||||
"ScheduleShowTypes":"Show"
|
||||
"ScheduleShowTypes":"Show",
|
||||
"LastCompletedWorkOrder":"Last completed work order",
|
||||
"LastCompletedWorkOrderServiceDate":"Last completed service date"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2288,5 +2288,7 @@
|
||||
"ScheduleWOColorFrom":"Fuente de color de la orden de trabajo",
|
||||
"NoColor":"Sin color",
|
||||
"ScheduleOptions":"Configuración de programación",
|
||||
"ScheduleShowTypes":"Elementos para mostrar"
|
||||
"ScheduleShowTypes":"Elementos para mostrar",
|
||||
"LastCompletedWorkOrder":"Última orden de trabajo completada",
|
||||
"LastCompletedWorkOrderServiceDate":"Fecha del último servicio completado"
|
||||
}
|
||||
@@ -2288,5 +2288,7 @@
|
||||
"ScheduleWOColorFrom":"Source de couleur de l'ordre de travail",
|
||||
"NoColor":"Sans couleur",
|
||||
"ScheduleOptions":"Paramètres de planification",
|
||||
"ScheduleShowTypes":"Éléments à afficher"
|
||||
"ScheduleShowTypes":"Éléments à afficher",
|
||||
"LastCompletedWorkOrder":"Dernier bon de travail terminé",
|
||||
"LastCompletedWorkOrderServiceDate":"Date du dernier service terminé"
|
||||
}
|
||||
Reference in New Issue
Block a user