779ffbb7aef91759abbb3834eb73ae89bde62384.svn-base 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Data.Entity;
  5. using System.Data.Entity.Infrastructure;
  6. using System.Diagnostics;
  7. using System.Linq;
  8. using System.Net;
  9. using System.Net.Http;
  10. using System.Transactions;
  11. using System.Web;
  12. using System.Web.Http;
  13. using System.Web.Http.Description;
  14. using iBemsDataService;
  15. using iBemsDataService.Model;
  16. using iBemsDataService.Util;
  17. namespace iBemsDataService.Controllers
  18. {
  19. public class FmsEquipmentController : ApiController
  20. {
  21. private iBemsEntities db = new iBemsEntities();
  22. [ResponseType(typeof(void))]
  23. [ActionName("InsertFmsEquipment")]
  24. public int InsertFmsEquipment(FmsEquipmentEx equipment)//2019-11-11 변경
  25. {
  26. Uri uri = Request.RequestUri;
  27. var uriQuery = HttpUtility.ParseQueryString(uri.Query);
  28. bool isAdditionalEquipment = false;
  29. bool isNew = false;
  30. bool.TryParse(uriQuery.Get("IsAdditionalEquipment"), out isAdditionalEquipment);
  31. bool.TryParse(uriQuery.Get("IsNew"), out isNew);
  32. // 2019.07.12
  33. FmsEquipment equip = db.FmsEquipment.Where(e =>
  34. e.SiteId == equipment.SiteId &&
  35. e.EquipmentId == equipment.EquipmentId
  36. ).FirstOrDefault();
  37. try
  38. {
  39. using (var transaction = new TransactionScope())
  40. {
  41. if (!isAdditionalEquipment) // 추가 입고는 Equipment 등록할 필요없음!. 신규 등록 경우
  42. {
  43. if (equip == null) { equip = new FmsEquipment(); }
  44. equip.SiteId = equipment.SiteId;
  45. equip.Name = equipment.Name;
  46. equip.EquipmentTypeId = equipment.EquipmentTypeId;
  47. equip.WarehouseId = equipment.WarehouseId;
  48. equip.Unit = equipment.Unit;
  49. equip.Standard = equipment.Standard;
  50. equip.AddDate = DateTime.Now;
  51. equip.UpdateDate = DateTime.Now;
  52. equip.RegisterUserId = equipment.RegisterUserId;
  53. equip.SupplierName = equipment.SupplierName;
  54. equip.SupplierPhoneNo = equipment.SupplierPhoneNo;
  55. equip.ImageFileId = equipment.ImageFileId;
  56. db.FmsEquipment.Add(equip);
  57. db.SaveChanges();
  58. }
  59. if (equipment.StoredCount != 0)
  60. {
  61. FmsEquipmentHistory addHistory = new FmsEquipmentHistory()
  62. {
  63. AddDate = DateTime.Now,
  64. // 현재 수량 = 마지막정보의 현재수량 + 반납수량
  65. CurrentStockCount = equipment.CurrentStockCount != null ? equipment.CurrentStockCount + equipment.StoredCount : equipment.StoredCount,
  66. EquipmentId = equip.EquipmentId,
  67. LossCount = 0,
  68. RentCount = 0,
  69. CurrentRentCount = 0,
  70. ReturnCount = 0,
  71. SiteId = equipment.SiteId,
  72. StoredCount = equipment.StoredCount,
  73. TotalStockCount = equipment.TotalStockCount != null ? equipment.TotalStockCount + equipment.StoredCount : equipment.StoredCount,
  74. UpdateDate = DateTime.Now,
  75. EquipmentStateTypeId = 1
  76. };
  77. db.FmsEquipmentHistory.Add(addHistory);
  78. }
  79. db.SaveChanges();
  80. transaction.Complete();
  81. }
  82. }
  83. catch (DbUpdateException e) { throw e; }
  84. return equip.EquipmentId;
  85. }
  86. [ResponseType(typeof(void))]
  87. [ActionName("UpdateFmsEquipment")]
  88. public int UpdateFmsEquipment(FmsEquipmentEx equipment)//2019-11-11 변경
  89. {
  90. Uri uri = Request.RequestUri;
  91. var uriQuery = HttpUtility.ParseQueryString(uri.Query);
  92. bool isAdditionalEquipment = false;
  93. bool isNew = false;
  94. bool.TryParse(uriQuery.Get("IsAdditionalEquipment"), out isAdditionalEquipment);
  95. bool.TryParse(uriQuery.Get("IsNew"), out isNew);
  96. FmsEquipment equip = db.FmsEquipment
  97. .Where(e => e.EquipmentId == equipment.EquipmentId && e.SiteId == equipment.SiteId)
  98. .FirstOrDefault();
  99. try
  100. {
  101. using (var transaction = new TransactionScope())
  102. {
  103. if (equip != null)
  104. {
  105. equip.Name = equipment.Name;
  106. equip.EquipmentTypeId = equipment.EquipmentTypeId;
  107. equip.WarehouseId = equipment.WarehouseId;
  108. equip.UpdateDate = DateTime.Now;
  109. equip.Unit = equipment.Unit;
  110. equip.Standard = equipment.Standard;
  111. equip.SupplierName = equipment.SupplierName;
  112. equip.SupplierPhoneNo = equipment.SupplierPhoneNo;
  113. equip.ImageFileId = equipment.ImageFileId;
  114. db.SaveChanges();
  115. transaction.Complete();
  116. }
  117. }
  118. }
  119. catch (DbUpdateException e) { throw e; }
  120. return equip.EquipmentId;
  121. }
  122. [ResponseType(typeof(void))]
  123. [ActionName("FmsEquipmentDelete")]
  124. public IHttpActionResult FmsEquipmentDelete(FmsEquipmentEx equipment)
  125. {
  126. if (equipment.EquipmentId == 0) { return BadRequest(ModelState); }
  127. var deleteHistoryQuery = db.FmsEquipmentHistory.Where(fe =>
  128. fe.SiteId == equipment.SiteId &&
  129. fe.EquipmentId == equipment.EquipmentId
  130. );
  131. var deleteEquipmentQuery = db.FmsEquipment.Where(fe =>
  132. fe.SiteId == equipment.SiteId &&
  133. fe.EquipmentId == equipment.EquipmentId
  134. );
  135. try
  136. {
  137. using (var transaction = new TransactionScope())
  138. {
  139. // history 삭제
  140. FmsEquipmentHistory history = new FmsEquipmentHistory()
  141. {
  142. EquipmentId = equipment.EquipmentId
  143. };
  144. new QueryManager<Model.FmsEquipmentHistory>(db).Delete(db.FmsEquipmentHistory, deleteHistoryQuery);
  145. db.SaveChanges();
  146. // Equipment 삭제
  147. new QueryManager<Model.FmsEquipment>(db).Delete(db.FmsEquipment, deleteEquipmentQuery);
  148. db.SaveChanges();
  149. transaction.Complete();
  150. }
  151. }
  152. catch (DbUpdateException e) { throw e; }
  153. return StatusCode(HttpStatusCode.NoContent);
  154. }
  155. protected override void Dispose(bool disposing)
  156. {
  157. if (disposing)
  158. {
  159. db.Dispose();
  160. }
  161. base.Dispose(disposing);
  162. }
  163. }
  164. }