inactive all previous slab based on condition
This commit is contained in:
parent
240cb8ba2a
commit
8b5af20539
|
|
@ -73,4 +73,7 @@ public class GetMaterialFreeGoodsByFilterRequest
|
||||||
[Required(ErrorMessage = "MaterialCode is required.")]
|
[Required(ErrorMessage = "MaterialCode is required.")]
|
||||||
[StringLength(10, MinimumLength = 1, ErrorMessage = "MaterialCode must be between 1 and 10 characters.")]
|
[StringLength(10, MinimumLength = 1, ErrorMessage = "MaterialCode must be between 1 and 10 characters.")]
|
||||||
public string MaterialCode { get; set; }
|
public string MaterialCode { get; set; }
|
||||||
|
|
||||||
|
public DateTime? ValidFrom { get; set; }
|
||||||
|
public DateTime? ValidTo { get; set; }
|
||||||
}
|
}
|
||||||
|
|
@ -395,13 +395,21 @@ public class IntegrationService : IIntegrationService
|
||||||
using TransactionContext tc = await TransactionContext.BeginAsync(_settings.DefaultConnection.ConnectionNode, true);
|
using TransactionContext tc = await TransactionContext.BeginAsync(_settings.DefaultConnection.ConnectionNode, true);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
DateTime? fromValid = null;
|
||||||
|
DateTime? toValid = null;
|
||||||
|
|
||||||
|
if (request.Slabs != null && request.Slabs.Count > 0)
|
||||||
|
{
|
||||||
|
fromValid =Convert.ToDateTime( request.Slabs.Max(x => x.ValidFrom));
|
||||||
|
toValid = Convert.ToDateTime(request.Slabs.Max(x => x.ValidTo));
|
||||||
|
}
|
||||||
|
|
||||||
IntegrationMaterialFreeGoodsResponse meterialFreeGoods = await GetMaterialFreeGoodsByFilterAsync(tc,
|
IntegrationMaterialFreeGoodsResponse meterialFreeGoods = await GetMaterialFreeGoodsByFilterAsync(tc,
|
||||||
new GetMaterialFreeGoodsByFilterRequest() { SalesOrg = request.SalesOrg, DistributionChannel = request.DistributionChannel,
|
new GetMaterialFreeGoodsByFilterRequest() { SalesOrg = request.SalesOrg, DistributionChannel = request.DistributionChannel,
|
||||||
CustomerPriceGroup = request.CustomerPriceGroup,MaterialCode = request.MaterialCode, CustomerNumber = request.CustomerNumber });
|
CustomerPriceGroup = request.CustomerPriceGroup,MaterialCode = request.MaterialCode, CustomerNumber = request.CustomerNumber,
|
||||||
|
ValidFrom = fromValid, ValidTo= toValid});
|
||||||
|
|
||||||
if (meterialFreeGoods != null && !string.IsNullOrWhiteSpace(meterialFreeGoods.MaterialCode))
|
InActiveMaterialFreeGoodsByFilter(tc,
|
||||||
{
|
|
||||||
DeleteMaterialFreeGoodsByFilter(tc,
|
|
||||||
new GetMaterialFreeGoodsByFilterRequest()
|
new GetMaterialFreeGoodsByFilterRequest()
|
||||||
{
|
{
|
||||||
SalesOrg = request.SalesOrg,
|
SalesOrg = request.SalesOrg,
|
||||||
|
|
@ -411,6 +419,8 @@ public class IntegrationService : IIntegrationService
|
||||||
CustomerNumber = request.CustomerNumber
|
CustomerNumber = request.CustomerNumber
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (meterialFreeGoods != null && !string.IsNullOrWhiteSpace(meterialFreeGoods.MaterialCode))
|
||||||
|
{
|
||||||
UpdateMaterialFreeGoods(tc, request);
|
UpdateMaterialFreeGoods(tc, request);
|
||||||
response.IsUpdated = true;
|
response.IsUpdated = true;
|
||||||
}
|
}
|
||||||
|
|
@ -1397,7 +1407,9 @@ public class IntegrationService : IIntegrationService
|
||||||
SqlHelperExtension.CreateInParam("@DistributionChannel", SqlDbType.NVarChar, request.DistributionChannel),
|
SqlHelperExtension.CreateInParam("@DistributionChannel", SqlDbType.NVarChar, request.DistributionChannel),
|
||||||
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, request.CustomerNumber),
|
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, request.CustomerNumber),
|
||||||
SqlHelperExtension.CreateInParam("@CustomerPriceGroup", SqlDbType.NVarChar, request.CustomerPriceGroup),
|
SqlHelperExtension.CreateInParam("@CustomerPriceGroup", SqlDbType.NVarChar, request.CustomerPriceGroup),
|
||||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode)
|
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||||
|
SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.NVarChar, request.ValidFrom),
|
||||||
|
SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.NVarChar, request.ValidTo),
|
||||||
];
|
];
|
||||||
|
|
||||||
using (IDataReader dr = await tc.ExecuteReaderSpAsync("dbo.GetAllMaterialFreeGoodsForUpdate", parameterValues: p))
|
using (IDataReader dr = await tc.ExecuteReaderSpAsync("dbo.GetAllMaterialFreeGoodsForUpdate", parameterValues: p))
|
||||||
|
|
@ -1460,6 +1472,32 @@ public class IntegrationService : IIntegrationService
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool InActiveMaterialFreeGoodsByFilter(
|
||||||
|
TransactionContext tc, GetMaterialFreeGoodsByFilterRequest request)
|
||||||
|
{
|
||||||
|
bool response = false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SqlParameter[] p =
|
||||||
|
[
|
||||||
|
SqlHelperExtension.CreateInParam("@SalesOrg", SqlDbType.NVarChar, request.SalesOrg),
|
||||||
|
SqlHelperExtension.CreateInParam("@DistributionChannel", SqlDbType.NVarChar, request.DistributionChannel),
|
||||||
|
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, request.CustomerNumber),
|
||||||
|
SqlHelperExtension.CreateInParam("@CustomerPriceGroup", SqlDbType.NVarChar, request.CustomerPriceGroup),
|
||||||
|
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode)
|
||||||
|
];
|
||||||
|
_ = tc.ExecuteNonQuerySp("dbo.InActiveMaterialFOCByFilter", parameterValues: p);
|
||||||
|
response = true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw DBCustomError.GenerateCustomError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
private bool CreateMaterialFreeGoods(TransactionContext tc, IntegrationMaterialFreeGoodsRequest request)
|
private bool CreateMaterialFreeGoods(TransactionContext tc, IntegrationMaterialFreeGoodsRequest request)
|
||||||
{
|
{
|
||||||
bool response = false;
|
bool response = false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user