This commit is contained in:
mmrbnjd
2024-07-25 17:18:03 +03:30
parent 466f26e986
commit 630d535962
15 changed files with 312 additions and 14 deletions

View File

@@ -0,0 +1,62 @@
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<List<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,
DateCreate = w.DateCreate,
ID = w.ID,
PreDiscount = w.PreDiscount,
Status = w.Status,
TDiscount = w.TDiscount,
TPrice = w.TPrice,
TTax = w.TPrice,
lstDiscount = w.lstDiscount,
}).ToListAsync();
}
public async Task<List<OrderItemDto>> GetOrderItems(int OrderID,int CompanyID)
{
return await _repoOrderItem.Get(w => w.OrderID == OrderID && w.Order.CompanyID== CompanyID)
.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
}).ToListAsync();
}
}
}