using DS.Module.Core;
using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.Sys.Entity;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DS.Module.Core.Extensions;
using DS.Module.SqlSugar;
using Microsoft.Extensions.DependencyInjection;
using DS.Module.UserModule;
using DS.Module.Core.Enums;
using NPOI.SS.Formula.Functions;
using DS.WMS.Core.Invoice.Dtos;
using DS.WMS.Core.Invoice.Interface;
using DS.WMS.ContainerManagement.Info.Dtos;
using DS.WMS.ContainerManagement.Info.Entity;
using DS.WMS.Core.Fee.Dtos;
namespace DS.WMS.Core.Invoice.Method
{
///
/// 进项发票相关
///
public class InInvoiceService : IInInvoiceService
{
private readonly IServiceProvider _serviceProvider;
private readonly ISaasDbService saasService;
private readonly IUser user;
private readonly ISqlSugarClient db;
///
/// 初始化
///
///
public InInvoiceService(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
saasService = _serviceProvider.GetRequiredService();
db = _serviceProvider.GetRequiredService();
user = _serviceProvider.GetRequiredService();
}
///
/// 获取进项发票数据列表
///
///
///
///
public async Task>> GetInInvoicetList(PageRequest request)
{
var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(request.QueryCondition);
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var result = await tenantDb.Queryable()
.Where(whereList)
.Where(t => t.OrgId == user.OrgId)
.Select(t => new GetInInvoiceListOutPut
{
Id = t.Id,
}, true)
.ToQueryPageAsync(request.PageCondition);
return result;
}
///
/// 获取发票详情详细信息
///
///
///
public async Task> GetInInvoicetDetailInfo(GetDetailInfoInput request)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var Data = await tenantDb.Queryable()
.Where(t => t.OrgId == user.OrgId && t.Id == request.Id)
.Select(t => new GetDetailInfo()
{
Id = t.Id
}, true).FirstAsync();
if (Data != null)
{
Data.Data = tenantDb.Queryable().Where(p => p.PId == Data.Id).ToList();
}
return DataResult.Success(Data);
}
}
}