diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs index e9b5bab..f7ea1be 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs @@ -49,7 +49,7 @@ namespace Win_in.Sfs.Scp.WebApi public X12AsnAppService( IX12AsnRepository repository , ITenantRepository tenantRepository - , IOptions options + , IOptions options ) : base(repository) { diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/PurchaseOrders/PurchaseOrderAppService.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/PurchaseOrders/PurchaseOrderAppService.cs index 28a236d..d387a01 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/PurchaseOrders/PurchaseOrderAppService.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/PurchaseOrders/PurchaseOrderAppService.cs @@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Globalization; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; using Volo.Abp.Application.Dtos; @@ -13,6 +14,7 @@ using Volo.Abp.Validation; using Win_in.Sfs.Scp.v1.Domain; using System.Security.Policy; using Volo.Abp.Data; +using Microsoft.Extensions.Options; namespace Win_in.Sfs.Scp.WebApi { @@ -31,6 +33,7 @@ namespace Win_in.Sfs.Scp.WebApi private readonly ITenantStore _tenantStore; private readonly ITenantRepository _tenantRepository; private readonly IDataFilter _dataFilter; + private readonly IOptions _options; public PurchaseOrderAppService( IPurchaseOrderRepository repository @@ -40,6 +43,7 @@ namespace Win_in.Sfs.Scp.WebApi , ITenantStore tenantStore , ITenantRepository tenantRepository , IDataFilter dataFilter + , IOptions options ) : base(repository) { _purchaseOrderRepository = repository; @@ -49,6 +53,7 @@ namespace Win_in.Sfs.Scp.WebApi _tenantStore = tenantStore; _tenantRepository = tenantRepository; _dataFilter = dataFilter; + _options = options; } @@ -105,19 +110,25 @@ namespace Win_in.Sfs.Scp.WebApi Validator.CheckSite(_tenantRepository, entity.Site); Validator.CheckSite(_tenantRepository, entity.Company); - var tenant = await _tenantStore.FindAsync(entity.Site); - using (CurrentTenant.Change(tenant.Id, tenant.Name)) + if (entity.PoNumber.StartsWith(_options.Value.ValidPoPre, true, CultureInfo.CurrentCulture)) { - using (_dataFilter.Disable()) + var tenant = await _tenantStore.FindAsync(entity.Site); + using (CurrentTenant.Change(tenant.Id, tenant.Name)) { + using (_dataFilter.Disable()) + { - Validator.CheckSupplierCode(_taVenderRepository, entity.Site, entity.SupplierCode); + Validator.CheckSupplierCode(_taVenderRepository, entity.Site, entity.SupplierCode); - - await UpsertTbPoAndTbPoDetailAsync(entity, tenant.Id); - await CurrentUnitOfWork.SaveChangesAsync(); + await UpsertTbPoAndTbPoDetailAsync(entity, tenant.Id); + await CurrentUnitOfWork.SaveChangesAsync(); + } } } + else + { + entity.ErrorMessage = $"'{entity.PoNumber}' is not start with '{_options.Value.ValidPoPre}',ignore."; + } } catch (Exception ex) { diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs index 8e7b683..0eb5065 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs @@ -9,6 +9,7 @@ public class AsnOptions public int RetryTimes { get; set; } = 3; public int BatchSize { get; set; } = 10; public int MaxCount { get; set; } = 100; + public string ValidPoPre { get; set; } = "PO"; public List Sites { get; set; } =new() ; public class Site diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj index 244f957..ae6c2d1 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj @@ -7,8 +7,8 @@ Win_in.Sfs.Scp.WebApi true Win_in.Sfs.Scp.WebApi-4681b4fd-151f-4221-84a4-929d86723e4c - 1.22.0711.1 - 1.22.0711.1 + 1.22.0719.1 + 1.22.0719.1 diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/appsettings.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/appsettings.json index ad4d5e7..8c3ef5d 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/appsettings.json +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/appsettings.json @@ -84,6 +84,7 @@ "RetryTimes": 3, "BatchSize": 10, "MaxCount": 100, + "ValidPoPre": "PO", "Receiver": "IACNA_ID", "Sites": [ {