104 lines
4.4 KiB
C#
104 lines
4.4 KiB
C#
using System.Collections.Generic;
|
|
using AyaNova.Biz;
|
|
using AyaNova.Models;
|
|
|
|
namespace AyaNova.DataList
|
|
{
|
|
internal class UnitMeterReadingDataList : DataListProcessingBase, IDataListInternalCriteria
|
|
{
|
|
public UnitMeterReadingDataList()
|
|
{
|
|
DefaultListAType = AyaType.UnitMeterReading;
|
|
SQLFrom = "from aunitmeterreading "
|
|
+ "left join aunit on (aunitmeterreading.unitid = aunit.id) "
|
|
+ "left join aworkorderitemunit on (aunitmeterreading.workorderitemunitid = aworkorderitemunit.id) "
|
|
+ "left join aworkorderitem on (aworkorderitemunit.workorderitemid = aworkorderitem.id) "
|
|
+ "left join aworkorder on (aworkorderitem.workorderid = aworkorder.id)";
|
|
var RoleSet = BizRoles.GetRoleSet(DefaultListAType);
|
|
AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change;
|
|
DefaultColumns = new List<string>() { "notedate", "UnitMeterReadingDescription", "Unit" };
|
|
DefaultSortBy = new Dictionary<string, string>() { { "notedate", "-" } };
|
|
|
|
FieldDefinitions = new List<DataListFieldDefinition>();
|
|
|
|
FieldDefinitions.Add(new DataListFieldDefinition
|
|
{
|
|
TKey = "Unit",
|
|
FieldKey = "Unit",
|
|
AType = (int)AyaType.Unit,
|
|
UiFieldDataType = (int)UiFieldDataType.Text,
|
|
SqlIdColumnName = "aunit.id",
|
|
SqlValueColumnName = "aunit.name",
|
|
IsRowId = false
|
|
});
|
|
|
|
FieldDefinitions.Add(new DataListFieldDefinition
|
|
{
|
|
TKey = "UnitMeterReadingDescription",
|
|
FieldKey = "UnitMeterReadingDescription",
|
|
AType = (int)AyaType.UnitMeterReading,
|
|
UiFieldDataType = (int)UiFieldDataType.Text,
|
|
SqlIdColumnName = "aunitmeterreading.id",
|
|
SqlValueColumnName = "aunitmeterreading.description",
|
|
IsRowId = false
|
|
});
|
|
|
|
FieldDefinitions.Add(new DataListFieldDefinition
|
|
{
|
|
TKey = "UnitMeterReadingMeter",
|
|
FieldKey = "UnitMeterReadingMeter",
|
|
AType = (int)AyaType.UnitMeterReading,
|
|
UiFieldDataType = (int)UiFieldDataType.Integer,
|
|
SqlIdColumnName = "aunitmeterreading.id",
|
|
SqlValueColumnName = "aunitmeterreading.meter",
|
|
IsRowId = true
|
|
});
|
|
|
|
FieldDefinitions.Add(new DataListFieldDefinition
|
|
{
|
|
TKey = "UnitMeterReadingMeterDate",
|
|
FieldKey = "UnitMeterReadingMeterDate",
|
|
UiFieldDataType = (int)UiFieldDataType.DateTime,
|
|
SqlValueColumnName = "aunitmeterreading.meterdate"
|
|
});
|
|
|
|
FieldDefinitions.Add(new DataListFieldDefinition
|
|
{
|
|
TKey = "UnitMeterReadingWorkOrderItemID",
|
|
FieldKey = "UnitMeterReadingWorkOrderItemID",
|
|
AType = (int)AyaType.WorkOrderItemUnit,
|
|
UiFieldDataType = (int)UiFieldDataType.Text,
|
|
SqlIdColumnName = "aworkorderitemunit.id",
|
|
SqlValueColumnName = "aworkorder.serial",
|
|
IsRowId = false
|
|
});
|
|
|
|
|
|
//META column
|
|
FieldDefinitions.Add(new DataListFieldDefinition
|
|
{
|
|
FieldKey = "metaunit",
|
|
UiFieldDataType = (int)UiFieldDataType.InternalId,
|
|
SqlIdColumnName = "aunitmeterreading.unitid",
|
|
SqlValueColumnName = "aunitmeterreading.unitid",
|
|
IsMeta = true
|
|
});
|
|
}
|
|
|
|
|
|
public List<DataListFilterOption> DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria)
|
|
{
|
|
List<DataListFilterOption> ret = new List<DataListFilterOption>();
|
|
if (string.IsNullOrWhiteSpace(clientCriteria))
|
|
throw new System.ArgumentNullException("UnitMeterReadingDataList - ClientCriteria is empty, should be Unit ID");
|
|
|
|
DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metaunit" };
|
|
FilterOption.Items.Add(new DataListColumnFilter() { value = clientCriteria, op = DataListFilterComparisonOperator.Equality });
|
|
|
|
ret.Add(FilterOption);
|
|
return ret;
|
|
}
|
|
|
|
|
|
}//eoc
|
|
}//eons |