a0471c0c8cdac957ddb5282f33d6aa4342f062a1.svn-base 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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.Web;
  11. using System.Web.Http;
  12. using System.Web.Http.Description;
  13. using DevExpress.XtraCharts.Native;
  14. using DevExpress.XtraPrinting.Native;
  15. using iBemsDataService;
  16. using iBemsDataService.Model;
  17. using iBemsDataService.Util;
  18. namespace iBemsDataService.Controllers
  19. {
  20. public class FmsMaterialReleaseController : ApiController
  21. {
  22. private iBemsEntities db = new iBemsEntities();
  23. [ResponseType( typeof( void ) )]
  24. public IHttpActionResult PostFmsMaterialRelease(List<ReleaseMaterial> materialList)
  25. {
  26. Uri uri = Request.RequestUri;
  27. var uriQuery = HttpUtility.ParseQueryString(uri.Query);
  28. int siteId, workRequestId, businessFieldId;
  29. if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false ||
  30. int.TryParse(uriQuery.Get("WorkRequestId"), out workRequestId) == false ||
  31. int.TryParse(uriQuery.Get("BusinessFieldId"), out businessFieldId) == false
  32. )
  33. {
  34. return BadRequest("Not Found Parameters.");
  35. }
  36. try
  37. {
  38. foreach (var item in materialList)
  39. {
  40. FmsMaterialRelease releaseItem = new FmsMaterialRelease()
  41. {
  42. SiteId = item.SiteId,
  43. BusinessFieldId = item.BusinessFieldId,
  44. ReleaseDate = DateTime.Now,
  45. ReleaseTypeId = 1, // 작업출고
  46. WorkRequestId = workRequestId,
  47. MaterialId = item.MaterialId,
  48. MaterialCount = item.MaterialCount,
  49. ReleaseTotalCost = (item.FinalPrice * item.MaterialCount),
  50. IsConfirmed = false
  51. };
  52. db.FmsMaterialRelease.Add(releaseItem);
  53. }
  54. db.SaveChanges();
  55. }
  56. catch (DbUpdateException e)
  57. {
  58. {
  59. throw e;
  60. }
  61. }
  62. return StatusCode( HttpStatusCode.NoContent );
  63. }
  64. [ResponseType(typeof(void))]
  65. [ActionName("Approval")]
  66. public IHttpActionResult PostFmsMaterialRelease(FmsMaterialRelease releaseMaterial)
  67. {
  68. Uri uri = Request.RequestUri;
  69. var uriQuery = HttpUtility.ParseQueryString(uri.Query);
  70. int siteId, businessFieldId, materialId;
  71. if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false ||
  72. int.TryParse(uriQuery.Get("BusinessFieldId"), out businessFieldId) == false ||
  73. int.TryParse(uriQuery.Get("MaterialId"), out materialId) == false)
  74. {
  75. return BadRequest("Not Found Parameters.");
  76. }
  77. try
  78. {
  79. var material = db.FmsMaterial.Where(m =>
  80. m.SiteId == siteId &&
  81. m.MaterialId == materialId &&
  82. m.IsUse == true
  83. ).FirstOrDefault();
  84. if (material == null) { return StatusCode(HttpStatusCode.NoContent); }
  85. if (releaseMaterial.AdjustmentTypeId == 1)
  86. {
  87. material.FinalStockCount -= releaseMaterial.MaterialCount.Value;
  88. material.FinalTotalStockAmount -= releaseMaterial.ReleaseTotalCost.Value;
  89. }
  90. else if (releaseMaterial.AdjustmentTypeId == 2)
  91. {
  92. material.FinalStockCount += releaseMaterial.MaterialCount.Value;
  93. material.FinalTotalStockAmount += releaseMaterial.ReleaseTotalCost.Value;
  94. }
  95. db.SaveChanges();
  96. }
  97. catch (DbUpdateException e) { throw e; }
  98. return StatusCode(HttpStatusCode.NoContent);
  99. }
  100. protected override void Dispose(bool disposing)
  101. {
  102. if (disposing)
  103. {
  104. db.Dispose();
  105. }
  106. base.Dispose(disposing);
  107. }
  108. }
  109. public class ReleaseMaterial
  110. {
  111. public int SiteId { get; set; }
  112. public int BusinessFieldId { get; set; }
  113. public string Name { get; set; }
  114. public int MaterialId { get; set; }
  115. public int MaterialCount { get; set; }
  116. public int MaterialCode { get; set; }
  117. public int FinalPrice { get; set; }
  118. };
  119. }