public double getQtyAllocated(Int64 ixFacility, Int64 ixCompany, Int64 ixMaterial) { double qtyAllocated = 0; var ordersInFacilityCompany = _outboundorderlinesRepository.OutboundOrdersDb().Where(x => x.ixFacility == ixFacility && x.ixCompany == ixCompany && x.ixStatus == _statusesRepository.IndexDb().Where(s => s.sStatus == "Active").Select(s => s.ixStatus).FirstOrDefault() ).Select(x => new { ixOutboundOrder = x.ixOutboundOrder }); if (_outboundorderlinesRepository.IndexDb().Where(x => x.ixMaterial == ixMaterial && ((x.ixStatus == _statusesRepository.IndexDb().Where(s => s.sStatus == "Allocated").Select(s => s.ixStatus).FirstOrDefault()) || (x.ixStatus == _statusesRepository.IndexDb().Where(s => s.sStatus == "Partially Allocated").Select(s => s.ixStatus).FirstOrDefault()))).Select(x => new { x.ixOutboundOrder, x.ixOutboundOrderLine, x.ixMaterial }) .Join(ordersInFacilityCompany, ol => ol.ixOutboundOrder, o => o.ixOutboundOrder, (ol, o) => new { Ol = ol, O = o }) .Select(q => q.Ol.ixOutboundOrderLine).Any() ) { var orderLines = _outboundorderlinesRepository.IndexDb().Where(x => x.ixMaterial == ixMaterial && ((x.ixStatus == _statusesRepository.IndexDb().Where(s => s.sStatus == "Allocated").Select(s => s.ixStatus).FirstOrDefault()) || (x.ixStatus == _statusesRepository.IndexDb().Where(s => s.sStatus == "Partially Allocated").Select(s => s.ixStatus).FirstOrDefault()))).Select(x => new { x.ixOutboundOrder, x.ixOutboundOrderLine, x.ixMaterial }) .Join(ordersInFacilityCompany, ol => ol.ixOutboundOrder, o => o.ixOutboundOrder, (ol, o) => new { Ol = ol, O = o }) .Select(q => new { ixOutboundOrderLine = q.Ol.ixOutboundOrderLine }); if ( _outboundorderlinesinventoryallocationRepository.IndexDb().Where(a => a.ixStatus == _statusesRepository.IndexDb().Where(s => s.sStatus == "Active").Select(s => s.ixStatus).FirstOrDefault()) .Select(a => a.nBaseUnitQuantityAllocated).Any() ) { qtyAllocated = _outboundorderlinesinventoryallocationRepository.IndexDb().Where(a => a.ixStatus == _statusesRepository.IndexDb().Where(s => s.sStatus == "Active").Select(s => s.ixStatus).FirstOrDefault()) .Join(orderLines, al => al.ixOutboundOrderLine, ol => ol.ixOutboundOrderLine, (al, ol) => new { Al = al, Ol = ol }) .Select(ol => ol.Al.nBaseUnitQuantityAllocated).Sum(); return(qtyAllocated); } else { return(0.0); } } else { return(0.0); } }
public IQueryable <OutboundOrders> OutboundOrdersDb() => _outboundorderlinesRepository.OutboundOrdersDb();