123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- 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.Transactions;
- using System.Web;
- using System.Web.Http;
- using System.Web.Http.Description;
- using iBemsDataService;
- using iBemsDataService.Model;
- using iBemsDataService.Util;
- namespace iBemsDataService.Controllers
- {
- public class FmsEquipmentController : ApiController
- {
- private iBemsEntities db = new iBemsEntities();
- [ResponseType(typeof(void))]
- [ActionName("InsertFmsEquipment")]
- public int InsertFmsEquipment(FmsEquipmentEx equipment)//2019-11-11 변경
- {
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- bool isAdditionalEquipment = false;
- bool isNew = false;
- bool.TryParse(uriQuery.Get("IsAdditionalEquipment"), out isAdditionalEquipment);
- bool.TryParse(uriQuery.Get("IsNew"), out isNew);
- // 2019.07.12
- FmsEquipment equip = db.FmsEquipment.Where(e =>
- e.SiteId == equipment.SiteId &&
- e.EquipmentId == equipment.EquipmentId
- ).FirstOrDefault();
- try
- {
- using (var transaction = new TransactionScope())
- {
- if (!isAdditionalEquipment) // 추가 입고는 Equipment 등록할 필요없음!. 신규 등록 경우
- {
- if (equip == null) { equip = new FmsEquipment(); }
- equip.SiteId = equipment.SiteId;
- equip.Name = equipment.Name;
- equip.EquipmentTypeId = equipment.EquipmentTypeId;
- equip.WarehouseId = equipment.WarehouseId;
- equip.Unit = equipment.Unit;
- equip.Standard = equipment.Standard;
- equip.AddDate = DateTime.Now;
- equip.UpdateDate = DateTime.Now;
- equip.RegisterUserId = equipment.RegisterUserId;
- equip.SupplierName = equipment.SupplierName;
- equip.SupplierPhoneNo = equipment.SupplierPhoneNo;
- equip.ImageFileId = equipment.ImageFileId;
- db.FmsEquipment.Add(equip);
- db.SaveChanges();
- }
- if (equipment.StoredCount != 0)
- {
- FmsEquipmentHistory addHistory = new FmsEquipmentHistory()
- {
- AddDate = DateTime.Now,
- // 현재 수량 = 마지막정보의 현재수량 + 반납수량
- CurrentStockCount = equipment.CurrentStockCount != null ? equipment.CurrentStockCount + equipment.StoredCount : equipment.StoredCount,
- EquipmentId = equip.EquipmentId,
- LossCount = 0,
- RentCount = 0,
- CurrentRentCount = 0,
- ReturnCount = 0,
- SiteId = equipment.SiteId,
- StoredCount = equipment.StoredCount,
- TotalStockCount = equipment.TotalStockCount != null ? equipment.TotalStockCount + equipment.StoredCount : equipment.StoredCount,
- UpdateDate = DateTime.Now,
- EquipmentStateTypeId = 1
- };
- db.FmsEquipmentHistory.Add(addHistory);
- }
- db.SaveChanges();
- transaction.Complete();
- }
- }
- catch (DbUpdateException e) { throw e; }
- return equip.EquipmentId;
- }
- [ResponseType(typeof(void))]
- [ActionName("UpdateFmsEquipment")]
- public int UpdateFmsEquipment(FmsEquipmentEx equipment)//2019-11-11 변경
- {
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- bool isAdditionalEquipment = false;
- bool isNew = false;
- bool.TryParse(uriQuery.Get("IsAdditionalEquipment"), out isAdditionalEquipment);
- bool.TryParse(uriQuery.Get("IsNew"), out isNew);
- FmsEquipment equip = db.FmsEquipment
- .Where(e => e.EquipmentId == equipment.EquipmentId && e.SiteId == equipment.SiteId)
- .FirstOrDefault();
- try
- {
- using (var transaction = new TransactionScope())
- {
- if (equip != null)
- {
- equip.Name = equipment.Name;
- equip.EquipmentTypeId = equipment.EquipmentTypeId;
- equip.WarehouseId = equipment.WarehouseId;
- equip.UpdateDate = DateTime.Now;
- equip.Unit = equipment.Unit;
- equip.Standard = equipment.Standard;
- equip.SupplierName = equipment.SupplierName;
- equip.SupplierPhoneNo = equipment.SupplierPhoneNo;
- equip.ImageFileId = equipment.ImageFileId;
- db.SaveChanges();
- transaction.Complete();
- }
- }
- }
- catch (DbUpdateException e) { throw e; }
- return equip.EquipmentId;
- }
- [ResponseType(typeof(void))]
- [ActionName("FmsEquipmentDelete")]
- public IHttpActionResult FmsEquipmentDelete(FmsEquipmentEx equipment)
- {
- if (equipment.EquipmentId == 0) { return BadRequest(ModelState); }
- var deleteHistoryQuery = db.FmsEquipmentHistory.Where(fe =>
- fe.SiteId == equipment.SiteId &&
- fe.EquipmentId == equipment.EquipmentId
- );
- var deleteEquipmentQuery = db.FmsEquipment.Where(fe =>
- fe.SiteId == equipment.SiteId &&
- fe.EquipmentId == equipment.EquipmentId
- );
- try
- {
- using (var transaction = new TransactionScope())
- {
- // history 삭제
- FmsEquipmentHistory history = new FmsEquipmentHistory()
- {
- EquipmentId = equipment.EquipmentId
- };
- new QueryManager<Model.FmsEquipmentHistory>(db).Delete(db.FmsEquipmentHistory, deleteHistoryQuery);
- db.SaveChanges();
- // Equipment 삭제
- new QueryManager<Model.FmsEquipment>(db).Delete(db.FmsEquipment, deleteEquipmentQuery);
- db.SaveChanges();
- transaction.Complete();
- }
- }
- catch (DbUpdateException e) { throw e; }
- return StatusCode(HttpStatusCode.NoContent);
- }
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- db.Dispose();
- }
- base.Dispose(disposing);
- }
- }
- }
|