123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data.Entity;
- using System.Data.Entity.Infrastructure;
- using System.Linq;
- using System.Net;
- using System.Web;
- using System.Web.Http;
- using System.Web.Http.Description;
- using DevExpress.Office.Utils;
- using iBemsDataService.Model;
- using iBemsDataService.Util;
- namespace iBemsDataService.Controllers
- {
- public class FmsBudgetDetailController : ApiController
- {
- private iBemsEntities db = new iBemsEntities();
- // GET: odata/FmsBudgetCodeClassEx
- [Queryable]
- public List<FmsBudgetDetail> GetFmsBudgetDetail()
- {
- var list = db.FmsBudgetDetail.Where(a => a.Depth == 2).ToList();
-
- var codeList = db.FmsBudgetCodeClass.ToList();
- foreach (var item in list)
- {
- item.RootBudgetName = codeList.Where(a => a.BudgetClassId == item.RootBudgetClassId).FirstOrDefault().Name;
- item.ParentBudgetName = codeList.Where(a => a.BudgetClassId == item.ParentBudgetClassId).FirstOrDefault().Name;
- }
- return list;
- }
- // POST: api/FmsBudgetDetail
- [ResponseType(typeof(void))]
- [ActionName("Save")]
- public IHttpActionResult PostFmsBudgetDetail(List<FmsBudgetDetail> budgetList)
- {
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- int siteId, year;
- if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false ||
- int.TryParse(uriQuery.Get("Year"), out year) == false)
- {
- return BadRequest("Not Found Parameters.");
- }
- try
- {
- // 예산편성 등록시 실적 코드도 미리 생성
- foreach (var detailItem in budgetList)
- {
- for (int i = 1; i <= 12; i++)
- {
- FmsBudgetDetailExecution execution = new FmsBudgetDetailExecution()
- {
- BudgetClassId = detailItem.BudgetClassId,
- Month = i,
- Year = detailItem.Year,
- MonthlyExecution = 0,
- YearlyExecution = 0,
- MonthlyBudget = detailItem.MonthlyBudget,
- YearlyBudget = detailItem.YearlyBudget,
- RootBudgetClassId = detailItem.RootBudgetClassId,
- ParentBudgetClassId = detailItem.ParentBudgetClassId,
- SiteId = detailItem.SiteId,
- };
- detailItem.FmsBudgetDetailExecution.Add(execution);
- }
- }
- FmsBudget budget = new FmsBudget()
- {
- SiteId = siteId,
- Year = year,
- FmsBudgetDetail = budgetList
- };
- db.FmsBudget.Add(budget);
- db.SaveChanges();
- }
- catch (Exception) { throw; }
- return StatusCode(HttpStatusCode.NoContent);
- }
- // POST: api/FmsBudgetDetail
- [ResponseType(typeof(void))]
- [ActionName("Update")]
- public IHttpActionResult PostFmsBudgetDetailUpdate(List<FmsBudgetDetail> budgetList)
- {
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- int siteId, year;
- if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false ||
- int.TryParse(uriQuery.Get("Year"), out year) == false)
- {
- return BadRequest("Not Found Parameters.");
- }
- try
- {
- //var query = from d in db.FmsBudgetDetail
- // where d.SiteId == siteId && d.Year == year
- // select d;
- //var qm = new QueryManager<FmsBudgetDetail>(db);
- //qm.DeleteAndInsert(db.FmsBudgetDetail, budgetList, query);
-
- foreach (var item in budgetList)
- {
- db.FmsBudgetDetail.Attach(item);
- DbEntityEntry<FmsBudgetDetail> entry = db.Entry(item);
- entry.State = System.Data.EntityState.Modified;
- var updateED = (from us in db.FmsBudgetDetailExecution
- where us.SiteId == siteId && us.Year == item.Year && us.BudgetClassId == item.BudgetClassId && us.ParentBudgetClassId == item.ParentBudgetClassId
- select us);
- foreach (var ED in updateED)
- ED.MonthlyBudget = item.MonthlyBudget;
- }
- db.SaveChanges();
- }
- catch (Exception) { throw; }
- return StatusCode(HttpStatusCode.NoContent);
- }
- [ResponseType(typeof(void))]
- [ActionName("Delete")]
- public IHttpActionResult PostFmsBudgetDetail()
- {
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- int siteId, year;
- if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false ||
- int.TryParse(uriQuery.Get("Year"), out year) == false)
- {
- return BadRequest("Not Found Parameters.");
- }
- try
- {
- var budgetED = db.FmsBudgetDetailExecution
- .Where(b => b.SiteId == siteId && b.Year == year);
- foreach (var deleteItem in budgetED)
- {
- db.FmsBudgetDetailExecution.Remove(deleteItem);
- }
- var budgetE = db.FmsBudgetDetail
- .Where(b => b.SiteId == siteId && b.Year == year);
- foreach (var deleteItem in budgetE)
- {
- db.FmsBudgetDetail.Remove(deleteItem);
- }
- var budget = db.FmsBudget
- .Where(b => b.SiteId == siteId && b.Year == year)
- .FirstOrDefault();
- if (budget != null)
- {
- db.FmsBudget.Remove(budget);
- }
- db.SaveChanges();
- }
- catch (Exception) { throw; }
- return StatusCode(HttpStatusCode.NoContent);
- }
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- db.Dispose();
- }
- base.Dispose(disposing);
- }
- }
- }
- namespace iBemsDataService.Model
- {
- public partial class FmsBudgetDetail
- {
- public string RootBudgetName { get; set; }
- public string ParentBudgetName { get; set; }
- }
- }
|