| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Data;using System.Data.Entity;using System.Data.Entity.Infrastructure;using System.Linq;using System.Net;using System.Net.Http;using System.Web.Http;using System.Web.Http.Description;using System.Web.Http.OData;using iBemsDataService;using iBemsDataService.Model;namespace iBemsDataService.Controllers{    public class FmsEquipmentExController : ODataController    {        private iBemsEntities db = new iBemsEntities();        // GET: odata/FmsEquipmentEx        [Queryable]        public List<FmsEquipmentEx> GetFmsEquipmentEx()        {            var query = (                from fe in db.FmsEquipment                from cu in db.CmUser                from fec in db.FmsEquipmentCodeType                join fw in db.FmsMaterialWarehouse on fe.WarehouseId equals fw.WarehouseId into gw                from subWarehouse in gw.DefaultIfEmpty()                join eh in db.FmsEquipmentHistory on fe.EquipmentId equals eh.EquipmentId into gh                from subHistory in gh.DefaultIfEmpty().OrderByDescending(a => a.EquipmentHistoryId).Take(1)                where fe.RegisterUserId == cu.UserId &&                    fe.EquipmentTypeId == fec.EquipmentTypeId &&                    fe.SiteId == cu.SiteId                select new FmsEquipmentEx                {                    AddDate = fe.AddDate,                    EquipmentId = fe.EquipmentId,                    EquipmentTypeId = fe.EquipmentTypeId,                    Name = fe.Name,                    RegisterUserId = fe.RegisterUserId,                    RegisterUserName = cu.Name,                    SiteId = fe.SiteId,                    Standard = fe.Standard,                    SupplierName = fe.SupplierName,                    SupplierPhoneNo = fe.SupplierPhoneNo,                    Unit = fe.Unit,                    UpdateDate = fe.UpdateDate,                    WarehouseId = fe.WarehouseId,                    WarehouseName = subWarehouse.Name,                    ImageFileId = fe.ImageFileId,                    EquipmentCodeTypeName = fec.Name,                    TotalStockCount = subHistory.TotalStockCount == null ? 0 : subHistory.TotalStockCount,                    CurrentStockCount = subHistory.CurrentStockCount == null ? 0 : subHistory.CurrentStockCount,                    //CurrentStoredCount = subHistory.StoredCount == null ? 0 : subHistory.StoredCount,                    //CurrentReturnCount = subHistory.ReturnCount  == null ? 0 : subHistory.ReturnCount,                    //CurrentLossCount = subHistory.LossCount == null ? 0 : subHistory.LossCount,                    CurrentStoredCount = db.FmsEquipmentHistory.Where(a => a.EquipmentId == fe.EquipmentId).Sum(a => a.StoredCount),                    CurrentReturnCount = db.FmsEquipmentHistory.Where(a => a.EquipmentId == fe.EquipmentId).Sum(a => a.ReturnCount),                    CurrentLossCount = db.FmsEquipmentHistory.Where(a => a.EquipmentId == fe.EquipmentId).Sum(a => a.LossCount)                });            var list = query.ToList();            foreach (var item in list)            {                item.CurrentRentCount = item.TotalStockCount.Value - item.CurrentStockCount.Value;            }            return list;        }        protected override void Dispose(bool disposing)        {            if (disposing)            {                db.Dispose();            }            base.Dispose(disposing);        }    }}
 |