Esempio n. 1
0
        public async Task <IActionResult> Index(QryInvoiceVModel qdata)
        {
            string qryDocType = qdata.qtyDOCTYPE;

            List <RepairCostModel> rv = new List <RepairCostModel>();
            List <KeepCostModel>   kv = new List <KeepCostModel>();

            if (qryDocType == "請修")
            {
                rv = GetRepInvoiceList(qdata);
                return(PartialView("RepInvoiceList", rv));
            }
            else
            {
                kv = GetKeepInvoiceList(qdata);
                return(PartialView("KeepInvoiceList", kv));
            }
        }
Esempio n. 2
0
        public List <KeepCostModel> GetKeepInvoiceList(QryInvoiceVModel qdata)
        {
            string signno       = qdata.qtySIGNNO;
            string vendorname   = qdata.qtyVENDORNAME;
            string vendorno     = qdata.qtyVENDORNO;
            string docid        = qdata.qtyDOCID;
            string ticketStatus = qdata.qtyTICKETSTATUS;
            string qryDocType   = qdata.qtyDOCTYPE;
            string qtyShutDate  = qdata.qtyShutDate;

            if (!string.IsNullOrEmpty(docid))
            {
                docid = docid.Trim();
            }
            if (!string.IsNullOrEmpty(signno))
            {
                signno = signno.ToUpper();
            }

            var query = _context.KeepCosts.Where(rc => rc.StockType == "3").AsQueryable();

            if (!string.IsNullOrEmpty(signno))    //簽單號碼
            {
                query = query.Where(r => r.SignNo.ToUpper() == signno);
            }
            if (!string.IsNullOrEmpty(vendorname))  //廠商關鍵字
            {
                query = query.Where(t => t.VendorId != 0)
                        .Join(_context.Vendors, t => t.VendorId, v => v.VendorId,
                              (t, v) => new
                {
                    keepCost = t,
                    vendor   = v
                }).Where(t => t.vendor.VendorName.Contains(vendorname)).Select(r => r.keepCost);
                //ts = ts.Where(t => !string.IsNullOrEmpty(t.VendorName))
                //       .Where(t => t.VendorName.Contains(vendorname));
            }
            if (!string.IsNullOrEmpty(vendorno))    //廠商統編
            {
                query = query.Where(t => t.VendorId != 0)
                        .Join(_context.Vendors, t => t.VendorId, v => v.VendorId,
                              (t, v) => new
                {
                    keepCost = t,
                    vendor   = v
                }).Where(r => r.vendor.UniteNo.Contains(vendorno)).Select(r => r.keepCost);
            }
            if (!string.IsNullOrEmpty(docid))    //保養單號
            {
                query = query.Where(r => r.DocId == docid);
            }
            if (!string.IsNullOrEmpty(qtyShutDate)) //關帳年月
            {
                int      year     = Convert.ToInt32(qtyShutDate.Substring(0, 3)) + 1911;
                int      month    = Convert.ToInt32(qtyShutDate.Substring(3, 2));
                DateTime dateFrom = new DateTime(year, month, 1);
                DateTime dateTo   = dateFrom.AddMonths(1).AddSeconds(-1);
                query = query.Join(_context.KeepDtls, q => q.DocId, rdtl => rdtl.DocId,
                                   (q, rdtl) => new
                {
                    keepCost = q,
                    dtl      = rdtl
                })
                        .Where(q => q.dtl.ShutDate >= dateFrom && q.dtl.ShutDate <= dateTo)
                        .Select(q => q.keepCost);
            }

            foreach (var item in query)
            {
                var vendor = _context.Vendors.Find(item.VendorId);
                if (vendor != null)
                {
                    item.VendorUniteNo = vendor.UniteNo;
                }
            }

            return(query.ToList());
        }