This commit is contained in:
2021-07-08 20:08:04 +00:00
parent a229735ac8
commit a70b28e6d6
2 changed files with 43 additions and 19 deletions

2
.vscode/launch.json vendored
View File

@@ -53,7 +53,7 @@
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
"AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_SERVER_TEST_MODE": "false",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"

View File

@@ -291,32 +291,56 @@ namespace AyaNova.Api.Controllers
//Recent workorders
//arbitrarily returning last 3 work orders to account for one of them being the current active work order and not wanting to try to filter in closed status workorders for reasons
//limiting to three because there is already an all workorders option from unit itself if they are really researching the history and it's about three clicks away from this info
List<RecentWorkOrder> RecentWorkOrders = new List<RecentWorkOrder>();
var lastWoItemIds = await ct.WorkOrderItemUnit.AsNoTracking().Where(z => z.UnitId == id).OrderByDescending(z => z.Id).Take(3).Select(z => z.WorkOrderItemId).ToListAsync();
foreach (long woitemid in lastWoItemIds)
//List<RecentWorkOrder> RecentWorkOrders = new List<RecentWorkOrder>();
string q = "select distinct(aworkorder.serial), aworkorder.id, aworkorder.servicedate from aworkorder "
+ "left join aworkorderitem on aworkorder.id=aworkorderitem.workorderid "
+ "left join aworkorderitemunit on aworkorderitemunit.workorderitemid=aworkorderitem.id "
+ $"where aworkorderitemunit.unitid={id} "
+ "order by aworkorder.serial DESC "
+ "limit 3";
using (var cmd = ct.Database.GetDbConnection().CreateCommand())
{
var woid = await ct.WorkOrderItem.AsNoTracking().Where(x => x.Id == woitemid).OrderByDescending(x => x.WorkOrderId).Select(x => x.WorkOrderId).FirstOrDefaultAsync();
ret.RecentWorkOrders.Add(
await ct.WorkOrder.AsNoTracking().Where(x => x.Id == woid).Select(x => new RecentWorkOrder(x.Serial, x.Id, x.ServiceDate)).FirstOrDefaultAsync()
);
await ct.Database.OpenConnectionAsync();
cmd.CommandText = q;
using (var dr = await cmd.ExecuteReaderAsync())
{
while (dr.Read())
{
ret.RecentWorkOrders.Add(new RecentWorkOrder(dr.GetInt64(0), dr.GetInt64(1), dr.GetDateTime(2)));
}
}
}
// var lastWoItemIds = await ct.WorkOrderItemUnit.AsNoTracking().Where(z => z.UnitId == id).OrderByDescending(z => z.Id).Take(10).Select(z => z.WorkOrderItemId).ToListAsync();
// foreach (long woitemid in lastWoItemIds)
// {
// var woid = await ct.WorkOrderItem.AsNoTracking().Where(x => x.Id == woitemid).OrderByDescending(x => x.WorkOrderId).Select(x => x.WorkOrderId).FirstOrDefaultAsync();
// ret.RecentWorkOrders.Add(
// await ct.WorkOrder.AsNoTracking().Where(x => x.Id == woid).Select(x => new RecentWorkOrder(x.Serial, x.Id, x.ServiceDate)).FirstOrDefaultAsync()
// );
// }
return Ok(ApiOkResponse.Response(ret));
}
internal record RecentWorkOrder(long? Serial, long? Id, DateTime? ServiceDate);
public record RecentWorkOrder(long? Serial, long? Id, DateTime? ServiceDate);
internal class UnitServiceWarrantyInfo
public class UnitServiceWarrantyInfo
{
internal List<RecentWorkOrder> RecentWorkOrders { get; set; }
internal DateTime? PurchaseDate { get; set; }
internal string PurchasedFromVendor { get; set; }
internal long? PurchaseFromVendorId { get; set; }
internal string PurchaseReceiptNumber { get; set; }
internal bool LifeTimeWarranty { get; set; }
internal DateTime? WarrantyExpiryDate { get; set; }
internal string WarrantyTerms { get; set; }
public UnitServiceWarrantyInfo()
{
RecentWorkOrders = new List<RecentWorkOrder>();
}
public List<RecentWorkOrder> RecentWorkOrders { get; set; }
public DateTime? PurchaseDate { get; set; }
public string PurchasedFromVendor { get; set; }
public long? PurchaseFromVendorId { get; set; }
public string PurchaseReceiptNumber { get; set; }
public bool LifeTimeWarranty { get; set; }
public DateTime? WarrantyExpiryDate { get; set; }
public string WarrantyTerms { get; set; }
}
}//eoc