Files
moadiran/Back/Services/ServCOD.cs

154 lines
6.0 KiB
C#
Raw Normal View History

2024-05-08 17:43:41 +03:30
using Back.Common;
using Back.Data.Contracts;
using Back.Data.Models;
2024-05-08 17:48:09 +03:30
using Microsoft.EntityFrameworkCore;
2024-05-08 17:43:41 +03:30
using Shared.DTOs;
using Shared.DTOs.Serch;
namespace Back.Services
{
public class ServCOD
{
private readonly IAsyncRepository<CODItem> _CODRepo;
2024-05-08 17:48:09 +03:30
private readonly IAsyncRepository<CODUnit> _UnitRepo;
2024-05-09 23:55:22 +03:30
private readonly CheckPermission _checkPermission;
public ServCOD(IAsyncRepository<CODItem> CODRepo, IAsyncRepository<CODUnit> unitRepo
, CheckPermission checkPermission)
2024-05-08 17:43:41 +03:30
{
_CODRepo = CODRepo;
2024-05-08 17:48:09 +03:30
_UnitRepo = unitRepo;
2024-05-09 23:55:22 +03:30
_checkPermission = checkPermission;
2024-05-08 17:43:41 +03:30
}
public async Task<PagingDto<RCOD>?> GetCODs(int CompanyID, ItemSerchGetCOD itemSerch)
{
#region AdvancedSearch
var invok = _CODRepo
.Get(w => w.CompanyID == CompanyID && !w.IsDeleted);
//foreach (InputObj item in inputObjs)
// invok = invok.Where(ExMethod.GetFunc<CODItem>(item.Param, item.Value));
if (!string.IsNullOrEmpty(itemSerch.Title))
invok = invok.Where(w => w.Title.Contains(itemSerch.Title));
if (!string.IsNullOrEmpty(itemSerch.ItemTaxID))
invok = invok.Where(w => w.ItemTaxID == itemSerch.ItemTaxID);
if (itemSerch.CODID.HasValue)
invok = invok.Where(w => w.ID == itemSerch.CODID);
if (itemSerch.UnitID.HasValue)
invok = invok.Where(w => w.UnitID == itemSerch.UnitID);
#endregion
//-----------------------
return await invok.Select(s => new RCOD()
{
ID = s.ID,
TaxID = s.ItemTaxID,
Title = s.Title,
Unit = s.CODUnit.Title,
2024-05-09 23:55:22 +03:30
UnitID=s.UnitID,
2024-05-08 17:43:41 +03:30
TaxRate = s.TaxRate
})
.Paging(itemSerch.PageIndex, itemSerch.PageSize);
}
2024-05-08 17:48:09 +03:30
public async Task<List<IdName<int>>> GetUnits()
{
return await _UnitRepo.GetAll().Select(s => new IdName<int> { ID = s.ID, Title = s.Title }).ToListAsync();
}
2024-05-09 23:55:22 +03:30
public async Task<CODItem?> GetCodByCodID(int CodID, int CompanyID)
{
return await _CODRepo
.Get(w => w.ID == CodID && w.CompanyID == CompanyID && !w.IsDeleted).FirstOrDefaultAsync();
}
public async Task<bool> ExistCodByCustomerID(int CodID, int CompanyID)
{
return await _CODRepo
.Get(w => w.ID == CodID && w.CompanyID == CompanyID && !w.IsDeleted).AnyAsync();
}
public async Task<bool> ExistUnit(int UnitID)
{
return await _UnitRepo
.Get(w => w.ID == UnitID ).AnyAsync();
}
public async Task<bool> AddOrUpdateCod(CODItem item)
{
try
{
//SysLog log = new SysLog()
//{
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/AddORUpdateCustomer",
// Value = "*" + JsonConvert.SerializeObject(item),
// Route = _httpContextAccessor.HttpContext.Request.Path,
// Type = "User"
//};
//_contextMongodb.InsertItem(log);
if (item.ID == null || item.ID <= 0)
{
var ret = await _CODRepo.AddBoolResultAsync(item);
await _checkPermission.ExtensionofAccess(item.CompanyID, 5, "-1");
return ret;
}
else
{
return await _CODRepo.UpdateAsync(item);
}
}
catch (Exception ex)
{
//SysLog log = new SysLog()
//{
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/AddORUpdateCustomer",
// Value = ex.Message,
// Route = _httpContextAccessor.HttpContext.Request.Path,
// Type = "catch"
//};
//_contextMongodb.InsertItem(log);
return false;
}
}
public async Task<bool> DeleteCod(CODItem item)
{
try
{
item.IsDeleted = true;
return await _CODRepo.UpdateAsync(item);
//SysLog log = new SysLog()
//{
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/DeleteCustomer",
// Value = JsonConvert.SerializeObject(item.ID),
// Route = _httpContextAccessor.HttpContext.Request.Path,
// Type = "User"
//};
//_contextMongodb.InsertItem(log);
}
catch (Exception ex)
{
//SysLog log = new SysLog()
//{
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/DeleteCustomer",
// Value = ex.Message,
// Route = _httpContextAccessor.HttpContext.Request.Path,
// Type = "catch"
//};
//_contextMongodb.InsertItem(log);
return false;
}
}
2024-05-08 17:43:41 +03:30
}
}