Пример #1
0
        /// <summary>
        /// جستجوی لیست فاکتور های کاربر
        /// </summary>
        /// <param name="model">مدل حاوی اطلاعات جستجو</param>
        /// <returns>نتیجه جستجوی کاربر</returns>
        public JsonResult List(SearchInvoiceViewModel options)
        {
            try
            {
                var currentUser = GetAuthenticatedUser();
                var query       = _context.Invoice.Where(x => x.InvoiceStatusId != InvoiceStatus.Deleted.Id && x.UserId == currentUser.id);

                if (!string.IsNullOrEmpty(options.word))
                {
                    var word = options.word.ToStandardPersian();
                    query = query.Where(x =>
                                        //x.DetailList.Any(y => y.Product.Title.Contains(word)) ||
                                        x.DetailList.Any(y => y.Product.Code.Contains(word)) ||
                                        x.InvoiceNo.Contains(word) ||
                                        x.User.FirstName.Contains(word) ||
                                        x.User.LastName.Contains(word) ||
                                        x.User.MobileNumber.Contains(word) ||
                                        x.User.Email.Contains(word)
                                        );
                }

                if (options.statusList != null && options.statusList.Count(x => x > 0) > 0)
                {
                    query = query.Where(x => options.statusList.Any(y => y == x.InvoiceStatusId));
                }

                var count = query.Count();

                var data = query.OrderByDescending(x => x.Id)
                           .Skip(options.page * options.count)
                           .Take(options.count)
                           .Select(x => new ResponseUserSearchInvoiceViewModel()
                {
                    id                 = x.Id,
                    invoiceNo          = x.InvoiceNo,
                    invoiceStatusId    = x.InvoiceStatusId,
                    invoiceStatusTitle = x.InvoiceStatus.PersianTitle,
                    price              = x.Price,
                    unpaidPrice        = x.UnpaidPrice,
                    date               = x.CreateDate
                }).ToList();

                data.ForEach(x => x.PersianDate = DateUtility.GetPersianDateTime(x.date));

                return(SuccessSearch(data, options.page + 1, options.count, count));
            }
            catch (Exception ex)
            {
                return(ServerError(ex));
            }
        }
Пример #2
0
        public ActionResult Create(SearchInvoiceViewModel model)
        {
            try
            {
                invoicesService.Add(User.Identity.GetUserId(), model.Number);

                return(View("Create"));
            }
            catch (Exception ex)
            {
                deliveryMessage.Title = "Відправлення";
                deliveryMessage.Body  = ex.Message;
                return(View("DeliveryMessage", deliveryMessage));
            }
        }