Beispiel #1
0
        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();