123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.Entity;
- using System.Data.Entity.Infrastructure;
- using System.Diagnostics;
- using System.Linq;
- using System.Net;
- using System.Net.Http;
- using System.Web;
- using System.Web.Http;
- using System.Web.Http.Description;
- using DevExpress.XtraCharts.Native;
- using DevExpress.XtraPrinting.Native;
- using iBemsDataService;
- using iBemsDataService.Model;
- using iBemsDataService.Util;
- namespace iBemsDataService.Controllers
- {
- public class FmsMaterialReleaseController : ApiController
- {
- private iBemsEntities db = new iBemsEntities();
- [ResponseType( typeof( void ) )]
- public IHttpActionResult PostFmsMaterialRelease(List<ReleaseMaterial> materialList)
- {
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- int siteId, workRequestId, businessFieldId;
- if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false ||
- int.TryParse(uriQuery.Get("WorkRequestId"), out workRequestId) == false ||
- int.TryParse(uriQuery.Get("BusinessFieldId"), out businessFieldId) == false
- )
- {
- return BadRequest("Not Found Parameters.");
- }
- try
- {
- foreach (var item in materialList)
- {
- FmsMaterialRelease releaseItem = new FmsMaterialRelease()
- {
- SiteId = item.SiteId,
- BusinessFieldId = item.BusinessFieldId,
- ReleaseDate = DateTime.Now,
- ReleaseTypeId = 1, // 작업출고
- WorkRequestId = workRequestId,
- MaterialId = item.MaterialId,
- MaterialCount = item.MaterialCount,
- ReleaseTotalCost = (item.FinalPrice * item.MaterialCount),
- IsConfirmed = false
- };
- db.FmsMaterialRelease.Add(releaseItem);
- }
- db.SaveChanges();
- }
- catch (DbUpdateException e)
- {
- {
- throw e;
- }
- }
-
- return StatusCode( HttpStatusCode.NoContent );
- }
- [ResponseType(typeof(void))]
- [ActionName("Approval")]
- public IHttpActionResult PostFmsMaterialRelease(FmsMaterialRelease releaseMaterial)
- {
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- int siteId, businessFieldId, materialId;
- if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false ||
- int.TryParse(uriQuery.Get("BusinessFieldId"), out businessFieldId) == false ||
- int.TryParse(uriQuery.Get("MaterialId"), out materialId) == false)
- {
- return BadRequest("Not Found Parameters.");
- }
- try
- {
- var material = db.FmsMaterial.Where(m =>
- m.SiteId == siteId &&
- m.MaterialId == materialId &&
- m.IsUse == true
- ).FirstOrDefault();
- if (material == null) { return StatusCode(HttpStatusCode.NoContent); }
- if (releaseMaterial.AdjustmentTypeId == 1)
- {
- material.FinalStockCount -= releaseMaterial.MaterialCount.Value;
- material.FinalTotalStockAmount -= releaseMaterial.ReleaseTotalCost.Value;
- }
- else if (releaseMaterial.AdjustmentTypeId == 2)
- {
- material.FinalStockCount += releaseMaterial.MaterialCount.Value;
- material.FinalTotalStockAmount += releaseMaterial.ReleaseTotalCost.Value;
- }
- db.SaveChanges();
- }
- catch (DbUpdateException e) { throw e; }
- return StatusCode(HttpStatusCode.NoContent);
- }
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- db.Dispose();
- }
- base.Dispose(disposing);
- }
- }
- public class ReleaseMaterial
- {
- public int SiteId { get; set; }
- public int BusinessFieldId { get; set; }
- public string Name { get; set; }
- public int MaterialId { get; set; }
- public int MaterialCount { get; set; }
- public int MaterialCode { get; set; }
- public int FinalPrice { get; set; }
- };
- }
|