发票明细计算

dev
嵇文龙 2 months ago
parent 6202782a5a
commit de93f8e111

@ -1,4 +1,4 @@
namespace DS.WMS.Core.Invoice.Dtos namespace DS.WMS.Core.Application.Dtos
{ {
/// <summary> /// <summary>
/// 发票明细操作类型 /// 发票明细操作类型

@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Runtime.Serialization;
using System.Runtime.Serialization;
using DS.Module.Core.Data; using DS.Module.Core.Data;
using DS.WMS.Core.Application.Dtos;
using DS.WMS.Core.Info.Entity; using DS.WMS.Core.Info.Entity;
using SqlSugar; using SqlSugar;
@ -73,6 +73,12 @@ namespace DS.WMS.Core.Application.Entity
[IgnoreDataMember, SugarColumn(IsIgnore = true)] [IgnoreDataMember, SugarColumn(IsIgnore = true)]
public int DetailCount { get; set; } public int DetailCount { get; set; }
/// <summary>
/// 提交类型
/// </summary>
[IgnoreDataMember, SugarColumn(IsIgnore = true)]
public BuildOption BuildOption { get; set; } = BuildOption.Create;
} }
/// <summary> /// <summary>

@ -8,7 +8,6 @@ using DS.WMS.Core.Fee.Method;
using DS.WMS.Core.Flow.Dtos; using DS.WMS.Core.Flow.Dtos;
using DS.WMS.Core.Flow.Entity; using DS.WMS.Core.Flow.Entity;
using DS.WMS.Core.Flow.Interface; using DS.WMS.Core.Flow.Interface;
using DS.WMS.Core.Info.Entity;
using DS.WMS.Core.Op.Dtos.TaskInteraction; using DS.WMS.Core.Op.Dtos.TaskInteraction;
using DS.WMS.Core.Op.Interface.TaskInteraction; using DS.WMS.Core.Op.Interface.TaskInteraction;
using DS.WMS.Core.Sys.Interface; using DS.WMS.Core.Sys.Interface;
@ -57,6 +56,8 @@ namespace DS.WMS.Core.Application.Method
TEntity? dbValue = null; TEntity? dbValue = null;
if (application.Id > 0) if (application.Id > 0)
{ {
application.BuildOption = BuildOption.Update;
//修改需检查申请单状态 //修改需检查申请单状态
dbValue = await TenantDb.Queryable<TEntity>().Where(x => x.Id == application.Id).Select( dbValue = await TenantDb.Queryable<TEntity>().Where(x => x.Id == application.Id).Select(
x => new TEntity { Status = x.Status, Currency = x.Currency }).FirstAsync(); x => new TEntity { Status = x.Status, Currency = x.Currency }).FirstAsync();

@ -10,7 +10,6 @@ using DS.WMS.Core.Code.Entity;
using DS.WMS.Core.Fee.Dtos; using DS.WMS.Core.Fee.Dtos;
using DS.WMS.Core.Fee.Entity; using DS.WMS.Core.Fee.Entity;
using DS.WMS.Core.Info.Entity; using DS.WMS.Core.Info.Entity;
using DS.WMS.Core.Invoice.Entity;
using DS.WMS.Core.Op.Entity; using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Sys.Entity; using DS.WMS.Core.Sys.Entity;
using SqlSugar; using SqlSugar;
@ -575,19 +574,18 @@ namespace DS.WMS.Core.Application.Method
await base.OnSaveAsync(application, fees); await base.OnSaveAsync(application, fees);
} }
//刷新发票明细 //刷新发票明细
async Task RefreshInvoiceDetailsAsync(InvoiceApplication application) async Task RefreshInvoiceDetailsAsync(InvoiceApplication application)
{ {
if (application.Details.Count > 0) if (application.Details.Count > 0)
{ {
var recordIds = application.Details.Select(x => x.RecordId).ToList(); application.InvoiceDetails ??= [];
var codeList = await TenantDb.Queryable<FeeRecord>() var currencies = application.Details.Select(x => x.Currency).Distinct();
.InnerJoin<FeeCode>((f, c) => f.FeeId == c.Id && recordIds.Contains(f.Id)) var codeList = await TenantDb.Queryable<CodeInvoice>()
.LeftJoin<CodeInvoice>((f, c, ci) => c.GoodName == ci.Name) .Where(ci => currencies.Contains(ci.DefaultCurrency))
.Select((f, c, ci) => new .OrderBy(ci => ci.IsDefault)
.Select(ci => new
{ {
RecordId = f.Id,
ci.Id, ci.Id,
ci.Name, ci.Name,
ci.DefaultCurrency, ci.DefaultCurrency,
@ -596,13 +594,15 @@ namespace DS.WMS.Core.Application.Method
ci.Unit ci.Unit
}).ToListAsync(); }).ToListAsync();
application.InvoiceDetails ??= [];
foreach (var detail in application.Details) foreach (var detail in application.Details)
{ {
var code = codeList.Find(x => x.RecordId == detail.RecordId); var code = codeList.Find(x => x.DefaultCurrency == detail.Currency);
if (code == null || string.IsNullOrEmpty(code.Name)) if (code == null)
continue; continue;
if (application.BuildOption == BuildOption.Update && codeList.IndexOf(code) == 0)//取第一条发票代码税率
application.TaxRate = code.TaxRate;
var invDetail = application.InvoiceDetails.Find(x => x.CodeId == code.Id); var invDetail = application.InvoiceDetails.Find(x => x.CodeId == code.Id);
if (invDetail == null) if (invDetail == null)
{ {
@ -612,9 +612,8 @@ namespace DS.WMS.Core.Application.Method
CodeId = code.Id, CodeId = code.Id,
Name = code.Name, Name = code.Name,
Quantity = 1, Quantity = 1,
TaxUnitPrice = application.Details.FindAll(x => x.RecordId == code.RecordId).Sum(x => x.ApplyAmount), TaxUnitPrice = application.Details.FindAll(x => x.Currency == code.DefaultCurrency).Sum(x => x.ApplyAmount),
TaxRate = application.TaxRate, TaxRate = code.TaxRate,
//TaxRate = code.TaxRate,
Specification = code.Specification, Specification = code.Specification,
Unit = code.Unit, Unit = code.Unit,
Category = DetailCategory.InvoiceApplication Category = DetailCategory.InvoiceApplication
@ -633,6 +632,7 @@ namespace DS.WMS.Core.Application.Method
} }
} }
protected override DataResult PreDelete(List<InvoiceApplication> applications) protected override DataResult PreDelete(List<InvoiceApplication> applications)
{ {
if (applications.Any(x => x.Status != InvoiceApplicationStatus.Pending && x.Status != InvoiceApplicationStatus.AuditRejected)) if (applications.Any(x => x.Status != InvoiceApplicationStatus.Pending && x.Status != InvoiceApplicationStatus.AuditRejected))
@ -653,40 +653,6 @@ namespace DS.WMS.Core.Application.Method
.PublicSetColumns(it => it.OrderInvoiceAmount, "-") .PublicSetColumns(it => it.OrderInvoiceAmount, "-")
.UpdateColumns(x => new { x.OrderInvoiceAmount }) .UpdateColumns(x => new { x.OrderInvoiceAmount })
.ExecuteCommandAsync(); .ExecuteCommandAsync();
//if (deleteOption == DeleteOption.DetailOnly)
//{
// //删除明细需要同时变更发票明细
// var appIds = applications.Select(x => x.Id).ToList();
// var excludeIds = applications.SelectMany(x => x.Details).Select(x => x.Id).ToList();
// var details = await TenantDb.Queryable<ApplicationDetail>().Where(x => appIds.Contains(x.ApplicationId) && !excludeIds.Contains(x.Id))
// .Select(x => new ApplicationDetail
// {
// Id = x.Id,
// ApplicationId = x.ApplicationId,
// RecordId = x.RecordId,
// FeeId = x.FeeId,
// ApplyAmount = x.ApplyAmount
// }).ToListAsync();
// foreach (var item in applications)
// {
// //重新设置申请明细
// item.Details = details.FindAll(x => x.ApplicationId == item.Id);
// }
// await TenantDb.Deleteable<InvoiceDetail>().Where(x => appIds.Contains(x.ApplicationId)).ExecuteCommandAsync();
// await FillInvoiceDetailsAsync(applications);
// var invDetails = applications.SelectMany(x => x.InvoiceDetails).ToList();
// if (invDetails.Count > 0)
// await TenantDb.Insertable(invDetails).ExecuteCommandAsync();
// await TenantDb.Updateable(applications).UpdateColumns(x => new
// {
// x.ApplyAmount,
// x.AmountUppercase
// }).ExecuteCommandAsync();
//}
} }
protected override DataResult PreSubmitApproval(List<InvoiceApplication> applications) protected override DataResult PreSubmitApproval(List<InvoiceApplication> applications)

@ -298,7 +298,10 @@ namespace DS.WMS.Core.Application.Method
.LeftJoin<CodeStlMode>((a, b, c) => a.SettlementTypeId == c.Id) .LeftJoin<CodeStlMode>((a, b, c) => a.SettlementTypeId == c.Id)
.Where((a, b, c) => a.Id == id).Select((a, b, c) => new PaymentApplicationDto .Where((a, b, c) => a.Id == id).Select((a, b, c) => new PaymentApplicationDto
{ {
CustomerBankName = b.BankName + " " + b.Account, CustomerBankId = a.CustomerBankId,
CustomerBankName = b.BankName,
CustomerAccount = b.Account,
SettlementTypeId = a.SettlementTypeId,
SettlementTypeName = c.StlName, SettlementTypeName = c.StlName,
}, true).FirstAsync(); }, true).FirstAsync();
var result = DataResult<PaymentApplicationDto>.Success(dto); var result = DataResult<PaymentApplicationDto>.Success(dto);
@ -499,7 +502,7 @@ namespace DS.WMS.Core.Application.Method
protected override async Task PreSaveAsync(PaymentApplication application) protected override async Task PreSaveAsync(PaymentApplication application)
{ {
if (application.CustomerBankId == null) if (application.Id == 0 && application.CustomerBankId == null)
{ {
var bankCurrency = application.Currency; var bankCurrency = application.Currency;
if (string.IsNullOrEmpty(bankCurrency) && application.Details.Count > 0) if (string.IsNullOrEmpty(bankCurrency) && application.Details.Count > 0)

@ -553,13 +553,13 @@ namespace DS.WMS.Core.Invoice.Method
if (invoice.Details == null || invoice.Details.Count == 0) if (invoice.Details == null || invoice.Details.Count == 0)
return; return;
var recordIds = invoice.Details.Select(x => x.RecordId).ToList(); invoice.InvoiceDetails ??= [];
var codeList = await TenantDb.Queryable<FeeRecord>() var currencies = invoice.Details.Select(x => x.Currency).Distinct();
.InnerJoin<FeeCode>((f, c) => f.FeeId == c.Id && recordIds.Contains(f.Id)) var codeList = await TenantDb.Queryable<CodeInvoice>()
.LeftJoin<CodeInvoice>((f, c, ci) => c.GoodName == ci.Name) .Where(ci => currencies.Contains(ci.DefaultCurrency))
.Select((f, c, ci) => new .OrderBy(ci => ci.IsDefault)
.Select(ci => new
{ {
RecordId = f.Id,
ci.Id, ci.Id,
ci.Name, ci.Name,
ci.DefaultCurrency, ci.DefaultCurrency,
@ -568,13 +568,15 @@ namespace DS.WMS.Core.Invoice.Method
ci.Unit ci.Unit
}).ToListAsync(); }).ToListAsync();
invoice.InvoiceDetails ??= [];
foreach (var detail in invoice.Details) foreach (var detail in invoice.Details)
{ {
var code = codeList.Find(x => x.RecordId == detail.RecordId); var code = codeList.Find(x => x.DefaultCurrency == detail.Currency);
if (code == null || string.IsNullOrEmpty(code.Name)) if (code == null || string.IsNullOrEmpty(code.Name))
continue; continue;
if (option == BuildOption.Update && codeList.IndexOf(code) == 0)//取第一条发票代码税率
invoice.TaxRate = code.TaxRate;
var invDetail = invoice.InvoiceDetails.Find(x => x.CodeId == code.Id); var invDetail = invoice.InvoiceDetails.Find(x => x.CodeId == code.Id);
if (invDetail == null) if (invDetail == null)
{ {
@ -584,9 +586,8 @@ namespace DS.WMS.Core.Invoice.Method
CodeId = code.Id, CodeId = code.Id,
Name = code.Name, Name = code.Name,
Quantity = 1, Quantity = 1,
TaxUnitPrice = invoice.Details.FindAll(x => x.RecordId == code.RecordId).Sum(x => x.ApplyAmount), TaxUnitPrice = invoice.Details.FindAll(x => x.Currency == code.DefaultCurrency).Sum(x => x.ApplyAmount),
TaxRate = invoice.TaxRate, TaxRate = code.TaxRate,
//TaxRate = code.TaxRate,
Specification = code.Specification, Specification = code.Specification,
Unit = code.Unit, Unit = code.Unit,
Category = DetailCategory.InvoiceApplication Category = DetailCategory.InvoiceApplication

@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<_PublishTargetUrl>D:\Publish\DS8\FeeApi</_PublishTargetUrl> <_PublishTargetUrl>D:\Publish\DS8\FeeApi</_PublishTargetUrl>
<History>False|2024-09-25T06:14:40.9640545Z||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||;True|2024-09-14T11:19:13.1037012+08:00||;True|2024-09-13T14:31:12.4598160+08:00||;True|2024-09-13T10:44:56.1241214+08:00||;False|2024-09-13T10:44:26.6088271+08:00||;False|2024-09-13T10:44:06.1615137+08:00||;False|2024-09-13T10:43:19.2432517+08:00||;False|2024-09-13T10:38:18.1663387+08:00||;True|2024-09-06T18:49:17.9435308+08:00||;True|2024-09-06T17:01:39.6646353+08:00||;True|2024-09-06T10:27:36.9990456+08:00||;True|2024-09-06T09:48:23.4236094+08:00||;True|2024-09-05T13:57:23.8452431+08:00||;True|2024-09-05T10:21:34.6675149+08:00||;True|2024-09-05T09:12:44.5610882+08:00||;True|2024-09-04T10:07:38.3707398+08:00||;True|2024-09-04T09:52:47.0574599+08:00||;True|2024-09-03T16:41:23.7516960+08:00||;True|2024-09-03T15:22:31.8718097+08:00||;True|2024-09-03T10:01:09.7656702+08:00||;False|2024-09-03T09:46:46.8956531+08:00||;True|2024-09-02T17:07:41.0268500+08:00||;True|2024-09-02T13:50:22.0203254+08:00||;True|2024-09-02T13:34:23.3441546+08:00||;True|2024-08-30T11:25:14.7431645+08:00||;True|2024-08-29T16:38:26.3491372+08:00||;True|2024-08-29T16:32:31.8580864+08:00||;False|2024-08-29T16:30:41.4763198+08:00||;True|2024-08-09T09:18:05.8484398+08:00||;True|2024-08-09T08:45:38.7858906+08:00||;True|2024-08-05T11:37:07.3133020+08:00||;True|2024-07-24T16:45:58.2272340+08:00||;True|2024-07-24T15:48:52.0128987+08:00||;True|2024-07-23T17:41:01.7494842+08:00||;True|2024-07-23T17:25:11.8773492+08:00||;True|2024-07-23T17:07:16.5460273+08:00||;True|2024-07-22T08:59:23.3235603+08:00||;True|2024-07-12T17:35:11.1225017+08:00||;True|2024-07-11T11:40:17.3581147+08:00||;True|2024-07-04T17:20:50.0175739+08:00||;True|2024-07-02T11:26:14.2092751+08:00||;True|2024-07-02T09:21:51.3513605+08:00||;True|2024-07-01T17:47:56.0407256+08:00||;True|2024-07-01T16:42:55.7374984+08:00||;True|2024-07-01T15:49:58.9266967+08:00||;True|2024-07-01T14:35:48.1117178+08:00||;True|2024-07-01T11:41:52.2969338+08:00||;True|2024-07-01T11:13:02.6561160+08:00||;True|2024-06-28T15:28:43.1470725+08:00||;True|2024-06-28T15:16:20.1999596+08:00||;True|2024-06-28T15:14:56.2534743+08:00||;True|2024-06-28T15:02:41.3033806+08:00||;True|2024-06-28T13:37:28.2462742+08:00||;True|2024-06-28T11:06:30.7400535+08:00||;True|2024-06-26T15:24:17.1939896+08:00||;True|2024-06-26T14:33:06.3530466+08:00||;True|2024-06-26T09:45:24.4055568+08:00||;True|2024-06-25T15:45:57.6052473+08:00||;True|2024-06-25T10:17:17.7408916+08:00||;False|2024-06-25T10:16:23.5639654+08:00||;False|2024-06-25T10:15:28.3857721+08:00||;False|2024-06-25T10:10:59.5536995+08:00||;False|2024-06-25T10:07:10.4050937+08:00||;True|2024-06-24T15:22:18.2672769+08:00||;True|2024-06-24T15:01:04.8153621+08:00||;False|2024-06-24T15:00:29.9618848+08:00||;True|2024-06-24T14:07:19.9401637+08:00||;False|2024-06-24T14:06:36.1250570+08:00||;True|2024-06-21T15:13:57.4273503+08:00||;True|2024-06-21T15:04:37.8218608+08:00||;True|2024-06-21T14:12:48.0266638+08:00||;True|2024-06-21T13:52:30.0950155+08:00||;True|2024-06-20T11:02:42.9508506+08:00||;</History> <History>True|2024-09-25T07:33:58.4630618Z||;True|2024-09-25T15:10:31.3022063+08:00||;False|2024-09-25T14:14:40.9640545+08:00||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||;True|2024-09-14T11:19:13.1037012+08:00||;True|2024-09-13T14:31:12.4598160+08:00||;True|2024-09-13T10:44:56.1241214+08:00||;False|2024-09-13T10:44:26.6088271+08:00||;False|2024-09-13T10:44:06.1615137+08:00||;False|2024-09-13T10:43:19.2432517+08:00||;False|2024-09-13T10:38:18.1663387+08:00||;True|2024-09-06T18:49:17.9435308+08:00||;True|2024-09-06T17:01:39.6646353+08:00||;True|2024-09-06T10:27:36.9990456+08:00||;True|2024-09-06T09:48:23.4236094+08:00||;True|2024-09-05T13:57:23.8452431+08:00||;True|2024-09-05T10:21:34.6675149+08:00||;True|2024-09-05T09:12:44.5610882+08:00||;True|2024-09-04T10:07:38.3707398+08:00||;True|2024-09-04T09:52:47.0574599+08:00||;True|2024-09-03T16:41:23.7516960+08:00||;True|2024-09-03T15:22:31.8718097+08:00||;True|2024-09-03T10:01:09.7656702+08:00||;False|2024-09-03T09:46:46.8956531+08:00||;True|2024-09-02T17:07:41.0268500+08:00||;True|2024-09-02T13:50:22.0203254+08:00||;True|2024-09-02T13:34:23.3441546+08:00||;True|2024-08-30T11:25:14.7431645+08:00||;True|2024-08-29T16:38:26.3491372+08:00||;True|2024-08-29T16:32:31.8580864+08:00||;False|2024-08-29T16:30:41.4763198+08:00||;True|2024-08-09T09:18:05.8484398+08:00||;True|2024-08-09T08:45:38.7858906+08:00||;True|2024-08-05T11:37:07.3133020+08:00||;True|2024-07-24T16:45:58.2272340+08:00||;True|2024-07-24T15:48:52.0128987+08:00||;True|2024-07-23T17:41:01.7494842+08:00||;True|2024-07-23T17:25:11.8773492+08:00||;True|2024-07-23T17:07:16.5460273+08:00||;True|2024-07-22T08:59:23.3235603+08:00||;True|2024-07-12T17:35:11.1225017+08:00||;True|2024-07-11T11:40:17.3581147+08:00||;True|2024-07-04T17:20:50.0175739+08:00||;True|2024-07-02T11:26:14.2092751+08:00||;True|2024-07-02T09:21:51.3513605+08:00||;True|2024-07-01T17:47:56.0407256+08:00||;True|2024-07-01T16:42:55.7374984+08:00||;True|2024-07-01T15:49:58.9266967+08:00||;True|2024-07-01T14:35:48.1117178+08:00||;True|2024-07-01T11:41:52.2969338+08:00||;True|2024-07-01T11:13:02.6561160+08:00||;True|2024-06-28T15:28:43.1470725+08:00||;True|2024-06-28T15:16:20.1999596+08:00||;True|2024-06-28T15:14:56.2534743+08:00||;True|2024-06-28T15:02:41.3033806+08:00||;True|2024-06-28T13:37:28.2462742+08:00||;True|2024-06-28T11:06:30.7400535+08:00||;True|2024-06-26T15:24:17.1939896+08:00||;True|2024-06-26T14:33:06.3530466+08:00||;True|2024-06-26T09:45:24.4055568+08:00||;True|2024-06-25T15:45:57.6052473+08:00||;True|2024-06-25T10:17:17.7408916+08:00||;False|2024-06-25T10:16:23.5639654+08:00||;False|2024-06-25T10:15:28.3857721+08:00||;False|2024-06-25T10:10:59.5536995+08:00||;False|2024-06-25T10:07:10.4050937+08:00||;True|2024-06-24T15:22:18.2672769+08:00||;True|2024-06-24T15:01:04.8153621+08:00||;False|2024-06-24T15:00:29.9618848+08:00||;True|2024-06-24T14:07:19.9401637+08:00||;False|2024-06-24T14:06:36.1250570+08:00||;True|2024-06-21T15:13:57.4273503+08:00||;True|2024-06-21T15:04:37.8218608+08:00||;True|2024-06-21T14:12:48.0266638+08:00||;</History>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>
Loading…
Cancel
Save