Exemple #1
0
        public List <InvoiceReportValueModel> GetInvoiceListByChangeType(InvoiceIndexApiModel invoice)
        {
            var sql = from r in _context.StoreRecord
                      join t in _context.DataStoreChangeType on r.ChangeTypeId equals t.Id
                      where r.CreateTime > invoice.StartDate &&
                      r.CreateTime < invoice.EndDate.Date.AddDays(1) &&
                      r.HospitalDepartmentId == invoice.HospitalDepartment.Id
                      select new
            {
                r.ChangeTypeId,
                ChangeTypeName = t.Name,
                RecordId       = r.Id,
                r.Price,
                r.ChangeQty,
            };
            var reports = sql.Select(x => new InvoiceReportValueModel
            {
                Id   = x.ChangeTypeId,
                Name = x.ChangeTypeName
            }).Distinct().ToList();

            foreach (var item in reports)
            {
                item.Amount         = sql.Where(x => x.ChangeTypeId == item.Id).Sum(x => x.Price * x.ChangeQty);
                item.StoreRecordIds = sql.Where(x => x.ChangeTypeId == item.Id).Select(x => x.RecordId).ToList();
            }
            return(reports);
        }
Exemple #2
0
        public List <InvoiceReportValueModel> GetInvoiceListByClient(InvoiceIndexApiModel invoice)
        {
            var sql = from r in _context.StoreRecord
                      join b in _context.StoreRecordBillno on r.Id equals b.StoreRecordId
                      join p in _context.PurchaseGoodsBillno on b.PurchaseGoodsBillnoId equals p.Id
                      join c in _context.PurchaseGoods on p.PurchaseGoodsId equals c.Id
                      join ht in _context.HospitalClient on c.HospitalClientId equals ht.Id
                      where r.CreateTime > invoice.StartDate &&
                      r.CreateTime < invoice.EndDate.Date.AddDays(1) &&
                      r.HospitalDepartmentId == invoice.HospitalDepartment.Id
                      select new
            {
                c.HospitalClientId,
                HospitalClientName = ht.Name,
                RecordId           = r.Id,
                r.Price,
                r.ChangeQty,
            };
            var reports = sql.Select(x => new InvoiceReportValueModel
            {
                Id   = x.HospitalClientId,
                Name = x.HospitalClientName
            }).Distinct().ToList();

            foreach (var item in reports)
            {
                item.Amount         = sql.Where(x => x.HospitalClientId == item.Id).Sum(x => x.Price * x.ChangeQty);
                item.StoreRecordIds = sql.Where(x => x.HospitalClientId == item.Id).Select(x => x.RecordId).ToList();
            }
            return(reports);
        }