public List <T_OutStanding> GetList(T_OutStanding ObjOutStanding) { var ObjList = new List <T_OutStanding>(); try { using (_objUnitOfWork = new UnitOfWork()) { var queryOutStanding = _objUnitOfWork._T_OutStanding_Repository.Query(); var queryOutStandingDetails = _objUnitOfWork._T_OutStandingDetails_Repository.Query(); var querySalesOrder = _objUnitOfWork._T_SalesOrder_Repository.Query(); if (ObjOutStanding.EventDate != null && ObjOutStanding.EventDate.ToString("yyyy-MM-dd") != "0001-01-01") { queryOutStanding = queryOutStanding.Where(x => x.EventDate == ObjOutStanding.EventDate); } if (!string.IsNullOrWhiteSpace(ObjOutStanding.OSNumber)) { queryOutStanding = queryOutStanding.Where(x => x.OSNumber.Contains(ObjOutStanding.OSNumber)); } if (!string.IsNullOrWhiteSpace(ObjOutStanding.Name)) { queryOutStanding = queryOutStanding.Where(x => x.Name.Contains(ObjOutStanding.Name)); } queryOutStanding = queryOutStanding.OrderByDescending(x => x.CreatedDate); ObjList = (from os in queryOutStanding join so in querySalesOrder on os.SalesOrderId equals so.Id into OsSoJoin from OsObj in OsSoJoin.DefaultIfEmpty() select new { id = os.Id, oSNumber = os.OSNumber, salesOrderId = OsObj.OrderId, amount = os.Amount, eventDate = os.EventDate, name = os.Name, remark = os.Remark, createdDate = os.CreatedDate }).ToList().Select(x => new T_OutStanding { Id = x.id, OSNumber = x.oSNumber, SalesOrderNumber = x.salesOrderId, Amount = x.amount, PaidAmount = queryOutStandingDetails.Where(s => s.OSId == x.id).ToList().Sum(y => y.PaidAmount), DueAmount = (x.amount - queryOutStandingDetails.Where(s => s.OSId == x.id).ToList().Sum(y => y.PaidAmount)), EventDate = x.eventDate, Name = x.name, Remark = x.remark, CreatedDate = x.createdDate }).ToList(); } } catch (Exception ex) { throw ex; } return(ObjList); }
public List <T_OutStanding> GetOutStandingList() { var ObjList = new List <T_OutStanding>(); try { using (_objUnitOfWork = new UnitOfWork()) { var queryOutStanding = _objUnitOfWork._T_OutStanding_Repository.Query(); var queryOutStandingDetails = _objUnitOfWork._T_OutStandingDetails_Repository.Query(); var querySalesOrder = _objUnitOfWork._T_SalesOrder_Repository.Query(); ObjList = (from os in queryOutStanding join so in querySalesOrder on os.SalesOrderId equals so.Id into OsSoJoin from OsObj in OsSoJoin.DefaultIfEmpty() select new { id = os.Id, oSNumber = os.OSNumber, salesOrderId = OsObj.OrderId, amount = os.Amount, eventDate = os.EventDate, name = os.Name, remark = os.Remark, createdDate = os.CreatedDate }).ToList().Select(x => new T_OutStanding { Id = x.id, OSNumber = x.oSNumber, SalesOrderNumber = x.salesOrderId, Amount = x.amount, PaidAmount = queryOutStandingDetails.Where(s => s.OSId == x.id).ToList().Sum(y => y.PaidAmount), DueAmount = (x.amount - queryOutStandingDetails.Where(s => s.OSId == x.id).ToList().Sum(y => y.PaidAmount)), EventDate = x.eventDate, Name = x.name, Remark = x.remark, CreatedDate = x.createdDate }).ToList(); } } catch (Exception ex) { throw ex; } return(ObjList); }