Пример #1
0
 public async Task <ActionResult <PageResult <InvoiceModel> > > GetPaging([FromQuery] GetInvoicePageModel request)
 {
     return(Ok(await _invoiceService.GetPaging(await GetUserId(),
                                               request,
                                               GetPermissionId())));
 }
Пример #2
0
        public async Task <TResponse <PageResult <InvoiceModel> > > GetPaging(int userId, GetInvoicePageModel request,
                                                                              int permissionId)
        {
            try
            {
                var checkValid = await _userService.CheckPermission(userId, permissionId);

                if (checkValid.IsSuccess)
                {
                    var page = request.Page;
                    if (page <= 1)
                    {
                        page = 1;
                    }

                    var pageSize = request.PageSize;
                    if (pageSize <= 0)
                    {
                        pageSize = 20;
                    }

                    var result = await ReadOnlyRepository.QueryMultipleLFAsync <InvoiceModel, int>(
                        SqlQuery.INVOICE_GET_BY_PAGING, new
                    {
                        CustomerName  = $"%{request.Customer}%",
                        CustomerPhone = $"%{request.CustomerPhone}%",
                        CustomerCode  = $"%{request.CustomerCode}%",
                        Code          = $"%{request.Code}%",
                        request.BranchId,
                        request.InvoiceStatusId,
                        request.UserSellId,
                        request.UserCreatedId,
                        request.FromDate,
                        request.ToDate,
                        Skip = (page - 1) * pageSize,
                        Take = pageSize
                    });

                    if (result.IsSuccess)
                    {
                        if (result.Data.Item1 != null && result.Data.Item1.Any())
                        {
                            var count    = result.Data.Item2;
                            var invoices = result.Data.Item1.ToList();

                            foreach (var invoice in invoices)
                            {
                                var products = await ReadOnlyRepository.QueryAsync <string>(
                                    SqlQuery.INVOICE_GET_PRODUCT_BY_INVOICE_ID, new
                                {
                                    InvoiceId = invoice.Id
                                });

                                if (products.IsSuccess && products.Data != null)
                                {
                                    invoice.Products.AddRange(products.Data);
                                }

                                var users = await ReadOnlyRepository.QueryAsync <string>(
                                    SqlQuery.INVOICE_GET_USER_DELIVERY_BY_INVOICE_ID, new
                                {
                                    InvoiceId = invoice.Id
                                });

                                if (users.IsSuccess && users.Data != null)
                                {
                                    invoice.UserDelivery.AddRange(users.Data);
                                }
                            }

                            return(await Ok(new PageResult <InvoiceModel>(page, pageSize, result.Data.Item2,
                                                                          result.Data.Item1)));
                        }


                        return(await Ok(new PageResult <InvoiceModel>(page, pageSize, result.Data.Item2,
                                                                      new List <InvoiceModel>())));
                    }

                    return(await Fail <PageResult <InvoiceModel> >(result.Message));
                }

                return(await Fail <PageResult <InvoiceModel> >(checkValid.Message));
            }
            catch (Exception exception)
            {
                return(await Fail <PageResult <InvoiceModel> >(exception));
            }
        }