This commit is contained in:
@@ -156,7 +156,7 @@ namespace AyaNova.Api.Controllers
|
||||
var values = Enum.GetValues(typeof(AyaType));
|
||||
foreach (AyaType t in values)
|
||||
{
|
||||
if (t.HasAttribute(typeof(ReportableBizObject)))
|
||||
if (t.HasAttribute(typeof(ReportableBizObjectAttribute)))
|
||||
{
|
||||
TranslationKeysToFetch.Add(t.ToString());
|
||||
}
|
||||
@@ -165,7 +165,7 @@ namespace AyaNova.Api.Controllers
|
||||
|
||||
foreach (AyaType t in values)
|
||||
{
|
||||
if (t.HasAttribute(typeof(ReportableBizObject)))
|
||||
if (t.HasAttribute(typeof(ReportableBizObjectAttribute)))
|
||||
{
|
||||
var tName = t.ToString();
|
||||
string name = string.Empty;
|
||||
|
||||
@@ -188,9 +188,9 @@ namespace AyaNova.Api.Controllers
|
||||
if (!ModelState.IsValid)
|
||||
return BadRequest(new ApiErrorResponse(ModelState));
|
||||
if (null == vendorId)
|
||||
return Ok(ApiOkResponse.Response(await ct.ViewPartRequestList.ToListAsync()));
|
||||
return Ok(ApiOkResponse.Response(await ct.ViewUnfulfilledPartRequestList.ToListAsync()));
|
||||
else
|
||||
return Ok(ApiOkResponse.Response(await ct.ViewPartRequestList.Where(z => z.WholesalerId == vendorId || z.AltWholesalerId == vendorId).ToListAsync()));
|
||||
return Ok(ApiOkResponse.Response(await ct.ViewUnfulfilledPartRequestList.Where(z => z.WholesalerId == vendorId || z.AltWholesalerId == vendorId).ToListAsync()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace AyaNova.Biz
|
||||
var batch = idList.Take(IReportAbleObject.REPORT_DATA_BATCH_SIZE);
|
||||
idList = idList.Skip(IReportAbleObject.REPORT_DATA_BATCH_SIZE).ToArray();
|
||||
//query for this batch, comes back in db natural order unfortunately
|
||||
var batchResults = await ct.ViewPartRequestList.AsNoTracking().Where(z => batch.Contains(z.RequestId)).ToArrayAsync();
|
||||
var batchResults = await ct.ViewUnfulfilledPartRequestList.AsNoTracking().Where(z => batch.Contains(z.RequestId)).ToArrayAsync();
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.RequestId select z;
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace AyaNova.Biz
|
||||
// {
|
||||
// ct.Database.OpenConnection();
|
||||
|
||||
foreach (ViewPartRequestList w in orderedList)
|
||||
foreach (ViewUnfulfilledPartRequestList w in orderedList)
|
||||
{
|
||||
//await PopulateVizFields(w, AyaTypesEnumList, command);
|
||||
var jo = JObject.FromObject(w);
|
||||
|
||||
@@ -123,7 +123,7 @@ namespace AyaNova.Models
|
||||
|
||||
public virtual DbSet<ViewRestockRequired> ViewRestockRequired { get; set; }
|
||||
public virtual DbSet<ViewPartInventoryList> ViewPartInventoryList { get; set; }
|
||||
public virtual DbSet<ViewPartRequestList> ViewPartRequestList { get; set; }
|
||||
public virtual DbSet<ViewUnfulfilledPartRequestList> ViewUnfulfilledPartRequestList { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
namespace AyaNova.Models
|
||||
{
|
||||
//Note this is how to define a View backed model with no key (id)
|
||||
|
||||
[Microsoft.EntityFrameworkCore.Keyless]
|
||||
public class ViewPartRequestList
|
||||
{
|
||||
public long RequestId { get; set; }
|
||||
public long PartId { get; set; }
|
||||
public long? PartWarehouseId { get; set; }
|
||||
public decimal Quantity { get; set; }
|
||||
public long Serial { get; set; }
|
||||
public string PartNumber { get; set; }
|
||||
public string PartName { get; set; }
|
||||
public string PartWarehouseName { get; set; }
|
||||
public long? WholesalerId { get; set; }
|
||||
public string WholesalerName { get; set; }
|
||||
public long? AltWholesalerId { get; set; }
|
||||
public string AltWholesalerName { get; set; }
|
||||
public string RequestedByUserName { get; set; }
|
||||
public long? RequestedByUserId { get; set; }
|
||||
|
||||
}//eoc
|
||||
}//eons
|
||||
|
||||
/*
|
||||
"CREATE VIEW viewpartrequestlist AS SELECT AWORKORDERITEMPARTREQUEST.ID AS REQUESTID, PARTID, PARTWAREHOUSEID, QUANTITY, AWORKORDER.SERIAL, "
|
||||
+"APART.PARTNUMBER AS PARTNUMBER, APART.NAME AS PARTNAME, APARTWAREHOUSE.NAME AS PARTWAREHOUSENAME, AWHOLESALER.NAME AS WHOLESALERNAME, "
|
||||
+"AWHOLESALER.ID AS WHOLESALERID, AALTWHOLESALER.ID AS ALTWHOLESALERID, AALTWHOLESALER.NAME AS ALTWHOLESALERNAME FROM AWORKORDERITEMPARTREQUEST "
|
||||
+"LEFT JOIN AWORKORDERITEM ON AWORKORDERITEM.ID = AWORKORDERITEMPARTREQUEST.WORKORDERITEMID LEFT JOIN AWORKORDER ON AWORKORDERITEM.WORKORDERID = AWORKORDER.ID "
|
||||
+"LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID LEFT JOIN APART ON AWORKORDERITEMPARTREQUEST.PARTID = APART.ID "
|
||||
+"LEFT JOIN APARTWAREHOUSE ON AWORKORDERITEMPARTREQUEST.PARTWAREHOUSEID = APARTWAREHOUSE.ID LEFT JOIN AVENDOR AS AWHOLESALER ON (APART.WHOLESALERID = AWHOLESALER.ID) "
|
||||
+"LEFT JOIN AVENDOR AS AALTWHOLESALER ON (APART.ALTERNATIVEWHOLESALERID = AALTWHOLESALER.ID) WHERE AWORKORDERITEMPARTREQUEST.PURCHASEORDERITEMID IS NULL AND "
|
||||
+"AWORKORDERSTATUS.COMPLETED = FALSE ORDER BY AWORKORDERITEMPARTREQUEST.ID;"
|
||||
*/
|
||||
25
server/AyaNova/models/ViewUnfulfilledPartRequestList.cs
Normal file
25
server/AyaNova/models/ViewUnfulfilledPartRequestList.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
namespace AyaNova.Models
|
||||
{
|
||||
//Note this is how to define a View backed model with no key (id)
|
||||
|
||||
[Microsoft.EntityFrameworkCore.Keyless]
|
||||
public class ViewUnfulfilledPartRequestList
|
||||
{
|
||||
public long RequestId { get; set; }
|
||||
public long PartId { get; set; }
|
||||
public long? PartWarehouseId { get; set; }
|
||||
public decimal Quantity { get; set; }
|
||||
public long Serial { get; set; }
|
||||
public string PartNumber { get; set; }
|
||||
public string PartName { get; set; }
|
||||
public string PartWarehouseName { get; set; }
|
||||
public long? WholesalerId { get; set; }
|
||||
public string WholesalerName { get; set; }
|
||||
public long? AltWholesalerId { get; set; }
|
||||
public string AltWholesalerName { get; set; }
|
||||
public string RequestedByUserName { get; set; }
|
||||
public long? RequestedByUserId { get; set; }
|
||||
|
||||
}//eoc
|
||||
}//eons
|
||||
|
||||
@@ -899,30 +899,56 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
||||
//VIEWPARTINVENTORYLIST
|
||||
await ExecQueryAsync(
|
||||
"CREATE VIEW viewpartinventorylist AS select apart.id as partid, apart.partnumber, apart.name as partname, apart.active as partactive, apart.cost as partcost, apart.retail as partretail,"
|
||||
+"apart.tags as parttags, apartwarehouse.id as partwarehouseid, apartwarehouse.name as partwarehousename, awholesaler.name as wholesalername, awholesaler.id as wholesalerid, "
|
||||
+"aaltwholesaler.id as altwholesalerid, aaltwholesaler.name as altwholesalername, vpartinventorynow.balance as onhandqty,COALESCE(vpartsonorder.quantityonorder,0) as onorderqty, "
|
||||
+"COALESCE(vpartsonordercommitted.quantityonordercommitted,0) as onordercommittedqty,COALESCE(apartstocklevel.minimumquantity,0) as restockminqty, "
|
||||
+"GREATEST( COALESCE(apartstocklevel.minimumquantity, 0) - (COALESCE(vpartinventorynow.balance, 0) + COALESCE(vpartsonorder.quantityonorder, 0) - COALESCE(vpartsonordercommitted.quantityonordercommitted, 0)) ,0) AS reorderqty,"
|
||||
+"vpartinventorynow.id as partinventoryid, vpartinventorynow.description as partinventorydescription "
|
||||
+"FROM vpartinventorynow LEFT JOIN vpartsonordercommitted ON "
|
||||
+"vpartinventorynow.partid = vpartsonordercommitted.partid AND vpartinventorynow.partwarehouseid = vpartsonordercommitted.partwarehouseid "
|
||||
+"LEFT JOIN vpartsonorder ON vpartinventorynow.partid = vpartsonorder.partid AND vpartinventorynow.partwarehouseid = vpartsonorder.partwarehouseid "
|
||||
+"LEFT JOIN apart ON (vpartinventorynow.partid = apart.id) LEFT JOIN apartwarehouse ON (vpartinventorynow.partwarehouseid = apartwarehouse.id) "
|
||||
+"left join avendor AS awholesaler on (apart.wholesalerid = awholesaler.id) left join avendor AS aaltwholesaler on (apart.alternativewholesalerid = aaltwholesaler.id) "
|
||||
+"left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid);");
|
||||
+ "apart.tags as parttags, apartwarehouse.id as partwarehouseid, apartwarehouse.name as partwarehousename, awholesaler.name as wholesalername, awholesaler.id as wholesalerid, "
|
||||
+ "aaltwholesaler.id as altwholesalerid, aaltwholesaler.name as altwholesalername, vpartinventorynow.balance as onhandqty,COALESCE(vpartsonorder.quantityonorder,0) as onorderqty, "
|
||||
+ "COALESCE(vpartsonordercommitted.quantityonordercommitted,0) as onordercommittedqty,COALESCE(apartstocklevel.minimumquantity,0) as restockminqty, "
|
||||
+ "GREATEST( COALESCE(apartstocklevel.minimumquantity, 0) - (COALESCE(vpartinventorynow.balance, 0) + COALESCE(vpartsonorder.quantityonorder, 0) - COALESCE(vpartsonordercommitted.quantityonordercommitted, 0)) ,0) AS reorderqty,"
|
||||
+ "vpartinventorynow.id as partinventoryid, vpartinventorynow.description as partinventorydescription "
|
||||
+ "FROM vpartinventorynow LEFT JOIN vpartsonordercommitted ON "
|
||||
+ "vpartinventorynow.partid = vpartsonordercommitted.partid AND vpartinventorynow.partwarehouseid = vpartsonordercommitted.partwarehouseid "
|
||||
+ "LEFT JOIN vpartsonorder ON vpartinventorynow.partid = vpartsonorder.partid AND vpartinventorynow.partwarehouseid = vpartsonorder.partwarehouseid "
|
||||
+ "LEFT JOIN apart ON (vpartinventorynow.partid = apart.id) LEFT JOIN apartwarehouse ON (vpartinventorynow.partwarehouseid = apartwarehouse.id) "
|
||||
+ "left join avendor AS awholesaler on (apart.wholesalerid = awholesaler.id) left join avendor AS aaltwholesaler on (apart.alternativewholesalerid = aaltwholesaler.id) "
|
||||
+ "left join apartstocklevel on (apartstocklevel.partid = apart.id AND apartstocklevel.partwarehouseid = vpartinventorynow.partwarehouseid);");
|
||||
|
||||
|
||||
//VIEWPARTREQUESTLIST
|
||||
await ExecQueryAsync("CREATE VIEW viewpartrequestlist AS SELECT AWORKORDERITEMPARTREQUEST.ID AS REQUESTID, PARTID, PARTWAREHOUSEID, QUANTITY, AWORKORDER.SERIAL, "
|
||||
+"APART.PARTNUMBER AS PARTNUMBER, APART.NAME AS PARTNAME, APARTWAREHOUSE.NAME AS PARTWAREHOUSENAME, AWHOLESALER.NAME AS WHOLESALERNAME, "
|
||||
+"AWORKORDERITEMPARTREQUEST.REQUESTEDBYUSERID AS REQUESTEDBYUSERID, AUSER.NAME AS REQUESTEDBYUSERNAME, "
|
||||
+"AWHOLESALER.ID AS WHOLESALERID, AALTWHOLESALER.ID AS ALTWHOLESALERID, AALTWHOLESALER.NAME AS ALTWHOLESALERNAME FROM AWORKORDERITEMPARTREQUEST "
|
||||
+"LEFT JOIN AWORKORDERITEM ON AWORKORDERITEM.ID = AWORKORDERITEMPARTREQUEST.WORKORDERITEMID LEFT JOIN AWORKORDER ON AWORKORDERITEM.WORKORDERID = AWORKORDER.ID "
|
||||
+"LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID LEFT JOIN APART ON AWORKORDERITEMPARTREQUEST.PARTID = APART.ID "
|
||||
+"LEFT JOIN AUSER ON AWORKORDERITEMPARTREQUEST.REQUESTEDBYUSERID = AUSER.ID "
|
||||
+"LEFT JOIN APARTWAREHOUSE ON AWORKORDERITEMPARTREQUEST.PARTWAREHOUSEID = APARTWAREHOUSE.ID LEFT JOIN AVENDOR AS AWHOLESALER ON (APART.WHOLESALERID = AWHOLESALER.ID) "
|
||||
+"LEFT JOIN AVENDOR AS AALTWHOLESALER ON (APART.ALTERNATIVEWHOLESALERID = AALTWHOLESALER.ID) WHERE AWORKORDERITEMPARTREQUEST.PURCHASEORDERITEMID IS NULL AND "
|
||||
+"(AWORKORDER.LASTSTATUSID IS NULL OR AWORKORDERSTATUS.COMPLETED = FALSE) ORDER BY AWORKORDERITEMPARTREQUEST.ID;");
|
||||
//VIEWUNFULFILLEDPARTREQUESTLIST
|
||||
await ExecQueryAsync("CREATE VIEW viewunfulfilledpartrequestlist AS SELECT AWORKORDERITEMPARTREQUEST.ID AS REQUESTID, PARTID, PARTWAREHOUSEID, QUANTITY, AWORKORDER.SERIAL, "
|
||||
+ "APART.PARTNUMBER AS PARTNUMBER, APART.NAME AS PARTNAME, APARTWAREHOUSE.NAME AS PARTWAREHOUSENAME, AWHOLESALER.NAME AS WHOLESALERNAME, "
|
||||
+ "AWORKORDERITEMPARTREQUEST.REQUESTEDBYUSERID AS REQUESTEDBYUSERID, AUSER.NAME AS REQUESTEDBYUSERNAME, "
|
||||
+ "AWHOLESALER.ID AS WHOLESALERID, AALTWHOLESALER.ID AS ALTWHOLESALERID, AALTWHOLESALER.NAME AS ALTWHOLESALERNAME FROM AWORKORDERITEMPARTREQUEST "
|
||||
+ "LEFT JOIN AWORKORDERITEM ON AWORKORDERITEM.ID = AWORKORDERITEMPARTREQUEST.WORKORDERITEMID LEFT JOIN AWORKORDER ON AWORKORDERITEM.WORKORDERID = AWORKORDER.ID "
|
||||
+ "LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID LEFT JOIN APART ON AWORKORDERITEMPARTREQUEST.PARTID = APART.ID "
|
||||
+ "LEFT JOIN AUSER ON AWORKORDERITEMPARTREQUEST.REQUESTEDBYUSERID = AUSER.ID "
|
||||
+ "LEFT JOIN APARTWAREHOUSE ON AWORKORDERITEMPARTREQUEST.PARTWAREHOUSEID = APARTWAREHOUSE.ID LEFT JOIN AVENDOR AS AWHOLESALER ON (APART.WHOLESALERID = AWHOLESALER.ID) "
|
||||
+ "LEFT JOIN AVENDOR AS AALTWHOLESALER ON (APART.ALTERNATIVEWHOLESALERID = AALTWHOLESALER.ID) WHERE AWORKORDERITEMPARTREQUEST.PURCHASEORDERITEMID IS NULL AND "
|
||||
+ "(AWORKORDER.LASTSTATUSID IS NULL OR AWORKORDERSTATUS.COMPLETED = FALSE) ORDER BY AWORKORDERITEMPARTREQUEST.ID;");
|
||||
|
||||
//VIEWPARTINVENTORYREQUESTLIST
|
||||
await ExecQueryAsync("CREATE VIEW viewpartinventoryrequestlist AS SELECT AWORKORDERITEMPARTREQUEST.ID AS REQUESTID, PARTID, PARTWAREHOUSEID, QUANTITY, AWORKORDER.SERIAL AS WOSERIAL, "
|
||||
+ "APART.PARTNUMBER AS PARTNUMBER, APART.NAME AS PARTNAME, APARTWAREHOUSE.NAME AS PARTWAREHOUSENAME, AWHOLESALER.NAME AS WHOLESALERNAME, "
|
||||
+ "AWORKORDERITEMPARTREQUEST.REQUESTEDBYUSERID AS REQUESTEDBYUSERID, AUSER.NAME AS REQUESTEDBYUSERNAME, "
|
||||
+ "AWHOLESALER.ID AS WHOLESALERID, AALTWHOLESALER.ID AS ALTWHOLESALERID, AALTWHOLESALER.NAME AS ALTWHOLESALERNAME, "
|
||||
//added ones "WOSERIAL" was just serial,
|
||||
+ "APARTMANU.NAME AS MANUFACTURERNAME, APARTMANU.ID AS MANUFACTURERID, APART.UPC AS PARTUPC, APURCHASEORDER.ID AS PURCHASEORDERID, APURCHASEORDER.SERIAL AS PURCHASEORDERSERIAL, "
|
||||
+ "APURCHASEORDER.EXPECTEDRECEIVEDATE AS EXPECTEDRECEIVEDATE, APURCHASEORDER.ORDEREDDATE AS ORDEREDDATE, aworkorderitempartrequest.received AS PARTREQUESTRECEIVED, APOVENDOR.NAME AS POORDEREDFROM, "
|
||||
+ "APART.MANUFACTURERNUMBER, ACUSTOMER.NAME AS CUSTOMERNAME, ACUSTOMER.ID AS CUSTOMERID, AWORKORDER.LASTSTATUSID AS WOSTATUSID,AWORKORDERSTATUS.COLOR AS STATUSCOLOR,AWORKORDERSTATUS.NAME AS STATUSNAME "
|
||||
|
||||
+ "FROM AWORKORDERITEMPARTREQUEST "
|
||||
+ "LEFT JOIN AWORKORDERITEM ON AWORKORDERITEM.ID = AWORKORDERITEMPARTREQUEST.WORKORDERITEMID "
|
||||
+ "LEFT JOIN AWORKORDER ON AWORKORDERITEM.WORKORDERID = AWORKORDER.ID "
|
||||
+ "LEFT JOIN ACUSTOMER ON (AWORKORDER.CUSTOMERID=ACUSTOMER.ID) "
|
||||
+ "LEFT JOIN APURCHASEORDERITEM ON (AWORKORDERITEMPARTREQUEST.PURCHASEORDERITEMID=APURCHASEORDERITEM.ID) "
|
||||
+ "LEFT JOIN APURCHASEORDER ON (APURCHASEORDERITEM.PURCHASEORDERID=APURCHASEORDER.ID) "
|
||||
+ "LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID "
|
||||
+ "LEFT JOIN APART ON AWORKORDERITEMPARTREQUEST.PARTID = APART.ID "
|
||||
+ "LEFT JOIN AUSER ON AWORKORDERITEMPARTREQUEST.REQUESTEDBYUSERID = AUSER.ID "
|
||||
+ "LEFT JOIN APARTWAREHOUSE ON AWORKORDERITEMPARTREQUEST.PARTWAREHOUSEID = APARTWAREHOUSE.ID "
|
||||
+ "LEFT JOIN AVENDOR AS AWHOLESALER ON (APART.WHOLESALERID = AWHOLESALER.ID) "
|
||||
+ "LEFT JOIN AVENDOR AS AALTWHOLESALER ON (APART.ALTERNATIVEWHOLESALERID = AALTWHOLESALER.ID "
|
||||
+ "LEFT JOIN AVENDOR AS APOVENDOR ON APURCHASEORDER.VENDORID = APOVENDOR.ID "
|
||||
+ "LEFT JOIN AVENDOR AS APARTMANU ON (APART.MANUFACTURERID = APARTMANU.ID);");
|
||||
|
||||
//----------
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user