8ed506bb80961ec55c516b9ec93c04c2d18b1847.svn-base 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. 
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.Data;
  6. using System.Data.Entity;
  7. using System.Data.Entity.Infrastructure;
  8. using System.Linq;
  9. using System.Web;
  10. using System.Net;
  11. using System.Net.Http;
  12. using System.Web.Http;
  13. using System.Web.Http.Description;
  14. using System.Web.Http.OData;
  15. using iBemsDataService;
  16. using iBemsDataService.Model;
  17. namespace iBemsDataService.Controllers
  18. {
  19. public class FmsMaterialPurchaseRequestExController : ODataController
  20. {
  21. private iBemsEntities db = new iBemsEntities();
  22. // GET: odata/FmsMaterialPurchaseRequestEx
  23. [Queryable]
  24. public List<FmsMaterialPurchaseRequestEx> GetFmsMaterialPurchaseRequestEx()
  25. {
  26. // 2019.07.12
  27. Uri uri = Request.RequestUri;
  28. var uriQuery = HttpUtility.ParseQueryString(uri.Query);
  29. int siteId;
  30. if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false)
  31. {
  32. throw new Exception("Not Found Parameters.");
  33. }
  34. var mterials = (
  35. from m in db.FmsMaterialPurchaseRequest.Where(x => x.SiteId == siteId) // 2019.07.12
  36. select new FmsMaterialPurchaseRequestEx
  37. {
  38. SiteId = m.SiteId,
  39. BusinessFieldId = m.BusinessFieldId,
  40. //CmBusinessField = m.CmBusinessField,
  41. PurchaseRequestId = m.PurchaseRequestId,
  42. PurchaseTypeId = m.PurchaseTypeId,
  43. RequestDate = m.RequestDate,
  44. RequestUserId = m.RequestUserId,
  45. PurchaseHopeDate = m.PurchaseHopeDate,
  46. Title = m.Title,
  47. Reason = m.Reason,
  48. ProgressId = m.ProgressId,
  49. ApprovalDate = m.ApprovalDate,
  50. ApprovalUserId = m.ApprovalUserId,
  51. bSameOrder2 = true,
  52. }
  53. ).ToList();
  54. foreach (var m in mterials)
  55. {
  56. m.CmBusinessField_Name = GetCmBusinessField_Name(m.BusinessFieldId);
  57. m.FmsMaterialCodeProgress_Name = GetFmsMaterialCodeProgress_Name(m.ProgressId);
  58. m.RequestUserId_Name = GetUserId_Name(m.RequestUserId);
  59. m.ApprovalUserId_Name = GetUserId_Name(m.ApprovalUserId);
  60. }
  61. /*
  62. var historyAllList = GetFmsMaterialStockHistory();
  63. foreach (var material in mterials)
  64. {
  65. var temp = historyAllList.Where(m => m.MaterialId == material.MaterialId).FirstOrDefault();
  66. if (temp != null)
  67. {
  68. material.StockCount = temp.StockCount;
  69. material.StockAmount = temp.StockAmount;
  70. //hcLee 2015 11 11
  71. material.WarehouseId = temp.WarehouseId;
  72. material.WHouseName = GetWHouseName(temp.WarehouseId);
  73. }
  74. }
  75. #region === Obslote ===
  76. //foreach (var item in mterials)
  77. //{
  78. // var lastestStockInfo = item.FmsMaterialStored
  79. // .Where(ms=>ms.IsApproval == true)
  80. // .OrderByDescending(ms => ms.MaterialStoredId)
  81. // .Take(1).FirstOrDefault();
  82. // if (lastestStockInfo == null) // Sotred 정보가 없는 경우
  83. // {
  84. // item.StockCount = 0;
  85. // item.StockAmount = 0;
  86. // continue;
  87. // }
  88. // var releasedMaterials = item.FmsMaterialRelease
  89. // .Where(mr=>mr.IsConfirmed == true )
  90. // .ToList();
  91. // if (releasedMaterials.Count == 0) // Release 정보가 없는 경우
  92. // {
  93. // item.StockCount = lastestStockInfo.StockCount;
  94. // item.StockAmount = lastestStockInfo.StockCount * lastestStockInfo.UnitCost;
  95. // continue;
  96. // }
  97. // var releaseCount = releasedMaterials.Where(r2 => r2.AdjustmentTypeId != 2).Sum(r2 => r2.MaterialCount).Value;
  98. // var releaseTotalAmount = releasedMaterials.Where(r2 => r2.AdjustmentTypeId != 2).Sum(r2 => r2.ReleaseTotalCost).Value;
  99. // var releaseReturnCount = releasedMaterials.Where(r2 => r2.AdjustmentTypeId == 2).Sum(r2 => r2.MaterialCount).Value;
  100. // var releaseReturnTotalAmount = releasedMaterials.Where(r2 => r2.AdjustmentTypeId == 2).Sum(r2 => r2.ReleaseTotalCost).Value;
  101. // item.StockCount = lastestStockInfo.StockCount - releaseCount + releaseReturnCount;
  102. // item.StockAmount = (lastestStockInfo.StockCount * lastestStockInfo.UnitCost) - releaseTotalAmount + releaseReturnTotalAmount;
  103. //}
  104. #endregion
  105. */
  106. return mterials.ToList();
  107. }
  108. private string GetCmBusinessField_Name(int id)
  109. {
  110. var W = db.CmBusinessField
  111. .Where(mr => mr.BusinessFieldId == id)
  112. .FirstOrDefault();
  113. if (W == null) return "";
  114. else return W.Name;
  115. }
  116. private string GetFmsMaterialCodeProgress_Name(int id)
  117. {
  118. var W = db.FmsMaterialCodeProgress
  119. .Where(mr => mr.ProgressId == id)
  120. .FirstOrDefault();
  121. if (W == null) return "";
  122. else return W.Name;
  123. }
  124. private string GetUserId_Name(string id)
  125. {
  126. var W = db.CmUser
  127. .Where(mr => mr.UserId == id)
  128. .FirstOrDefault();
  129. if (W == null) return "";
  130. else return W.Name;
  131. }
  132. protected override void Dispose(bool disposing)
  133. {
  134. if (disposing)
  135. {
  136. db.Dispose();
  137. }
  138. base.Dispose(disposing);
  139. }
  140. }
  141. }