コード例 #1
0
        public JobOrderLineViewModel GetOrderLineForUidMain(int Uid, int JobOrderCancelHeaderId)
        {
            JobOrderCancelHeader header = new JobOrderCancelHeaderService(_unitOfWork).Find(JobOrderCancelHeaderId);

            var Settings = new JobOrderSettingsService(_unitOfWork).GetJobOrderSettingsForDocument(header.DocTypeId, header.DivisionId, header.SiteId);

            string[] ContraDocTypeIdArr = null;
            if (!string.IsNullOrEmpty(Settings.filterContraDocTypes))
            {
                ContraDocTypeIdArr = Settings.filterContraDocTypes.Split(",".ToCharArray());
            }
            else
            {
                ContraDocTypeIdArr = new string[] { "NA" };
            }

            var temp = (from p in db.ProductUid
                        where p.ProductUIDId == Uid
                        select new
            {
                Rec = (from t in db.JobOrderLine
                       join R in db.JobReceiveLine on new { A = t.JobOrderLineId, B = (int?)Uid } equals new { A = R.JobOrderLineId ?? 0, B = R.ProductUidId } into Rtable
                       from Rtab in Rtable.DefaultIfEmpty()
                       join RT in db.JobReturnLine on Rtab.JobReceiveLineId equals RT.JobReceiveLineId into RTtable
                       from RTtab in RTtable.DefaultIfEmpty()
                       join JOH in db.JobOrderHeader on t.JobOrderHeaderId equals JOH.JobOrderHeaderId into JOHtable
                       from JOHtab in JOHtable.DefaultIfEmpty()
                       where t.JobOrderHeaderId == p.GenDocId && t.JobOrderHeader.DocTypeId == p.GenDocTypeId && t.ProductUidHeaderId == p.ProductUidHeaderId &&
                       (string.IsNullOrEmpty(Settings.filterContraDocTypes) ? 1 == 1 : ContraDocTypeIdArr.Contains(JOHtab.DocTypeId.ToString())) &&
                       Rtab == null
                       select new JobOrderLineViewModel
                {
                    JobOrderLineId = t.JobOrderLineId,
                    JobOrderHeaderDocNo = t.JobOrderHeader.DocNo,
                    Specification = t.Specification,
                    Dimension1Name = t.Dimension1.Dimension1Name,
                    Dimension2Name = t.Dimension2.Dimension2Name,
                    Dimension3Name = t.Dimension3.Dimension3Name,
                    Dimension4Name = t.Dimension4.Dimension4Name,
                    ProdOrderBalanceQty = 1,
                    LotNo = p.LotNo,
                    UnitName = p.Product.Unit.UnitName,
                }).FirstOrDefault()
            }
                        ).FirstOrDefault();

            return(temp.Rec);
        }
コード例 #2
0
        public IEnumerable <ComboBoxList> GetPendingJobOrders(string DocTypes, string term, int JobOrderCancelHeaderId)//DocTypeId
        {
            JobOrderCancelHeader header = new JobOrderCancelHeaderService(_unitOfWork).Find(JobOrderCancelHeaderId);

            return(from p in db.ViewJobOrderBalance
                   join t in db.JobOrderHeader on p.JobOrderHeaderId equals t.JobOrderHeaderId into ProdTable
                   from ProTab in ProdTable.DefaultIfEmpty()
                   where p.BalanceQty > 0 && ProTab.DocNo.ToLower().Contains(term.ToLower()) &&
                   p.SiteId == header.SiteId && p.DivisionId == header.DivisionId && p.JobWorkerId == header.JobWorkerId
                   group new { p, ProTab } by p.JobOrderHeaderId into g
                   select new ComboBoxList
            {
                Id = g.Key,
                PropFirst = g.Max(m => m.ProTab.DocNo),
            }
                   );
        }