75 lines
3.1 KiB
C#
75 lines
3.1 KiB
C#
using Back.Common;
|
|
using Back.Data.Contracts;
|
|
using Back.Data.Models;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Shared.DTOs;
|
|
using Shared.DTOs.Serch;
|
|
|
|
namespace Back.Services
|
|
{
|
|
public class ServOrders
|
|
{
|
|
private readonly IAsyncRepository<Order> _repoOrder;
|
|
private readonly IAsyncRepository<OrderItem> _repoOrderItem;
|
|
|
|
|
|
public ServOrders(IAsyncRepository<Order> repoOrder, IAsyncRepository<OrderItem> repoOrderItem)
|
|
{
|
|
_repoOrder = repoOrder;
|
|
_repoOrderItem = repoOrderItem;
|
|
|
|
}
|
|
public async Task<PagingDto<OrderDto>> GetOrdersByCompanyID(int CompanyID, ItemSerachOrder itemSerach)
|
|
{
|
|
var request = _repoOrder.Get(w => w.CompanyID == CompanyID);
|
|
|
|
if (itemSerach.Status.HasValue)
|
|
request = request.Where(w => w.Status == itemSerach.Status);
|
|
|
|
if (itemSerach.ID.HasValue)
|
|
request = request.Where(w => w.ID == itemSerach.ID);
|
|
|
|
request = request.Include(inc => inc.OrderItems);
|
|
return await request
|
|
.Select(w => new OrderDto
|
|
{
|
|
ApprovalDate = w.ApprovalDate.ShamciToFormatShamci(),
|
|
DateCreate = w.DateCreate.ShamciToFormatShamci(),
|
|
ID = w.ID,
|
|
PreDiscount = w.PreDiscount,
|
|
Status = w.Status,
|
|
TDiscount = w.TDiscount,
|
|
TPrice = w.TPrice,
|
|
TTax = w.TPrice,
|
|
lstDiscount = w.lstDiscount,
|
|
}).Paging(itemSerach.PageIndex,itemSerach.PageSize);
|
|
}
|
|
public async Task<List<OrderItemDto>> GetOrderItems(int OrderID,int CompanyID)
|
|
{
|
|
return await _repoOrderItem.Get(w => w.OrderID == OrderID && w.Order.CompanyID == CompanyID)
|
|
.Include(inc=>inc.Permission)
|
|
.Include(inc=>inc.Promotion)
|
|
.Select(s=>new OrderItemDto
|
|
{
|
|
OrderID = OrderID,
|
|
APrice = s.APrice,
|
|
CreditAmount = s.CreditAmount,
|
|
Discount=s.Discount,
|
|
ID = s.ID,
|
|
Tax = s.Tax,
|
|
Type= s.PermissionID.HasValue && !s.PromotionID.HasValue ? "سرویس" : !s.PermissionID.HasValue && s.PromotionID.HasValue ? "تعرفه" : "نامشخص",
|
|
IDForType = s.PermissionID.HasValue && !s.PromotionID.HasValue ? s.PermissionID.Value : !s.PermissionID.HasValue && s.PromotionID.HasValue ? s.PromotionID.Value : 0,
|
|
Title = s.PermissionID.HasValue && !s.PromotionID.HasValue ? s.Permission.Title : !s.PermissionID.HasValue && s.PromotionID.HasValue ? s.Promotion.Name : "",
|
|
}).ToListAsync();
|
|
}
|
|
public async Task<Order> GetOrder(int OrderID, int CompanyID)
|
|
{
|
|
return await _repoOrder.Get(w => w.ID == OrderID && w.CompanyID == CompanyID) .FirstOrDefaultAsync();
|
|
}
|
|
public async Task<bool> UpdateOrder(Order order)
|
|
{
|
|
return await _repoOrder.UpdateAsync(order);
|
|
}
|
|
}
|
|
}
|