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.")]
|
||||
[StringLength(10, MinimumLength = 1, ErrorMessage = "MaterialCode must be between 1 and 10 characters.")]
|
||||
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);
|
||||
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,
|
||||
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))
|
||||
{
|
||||
DeleteMaterialFreeGoodsByFilter(tc,
|
||||
InActiveMaterialFreeGoodsByFilter(tc,
|
||||
new GetMaterialFreeGoodsByFilterRequest()
|
||||
{
|
||||
SalesOrg = request.SalesOrg,
|
||||
|
|
@ -411,6 +419,8 @@ public class IntegrationService : IIntegrationService
|
|||
CustomerNumber = request.CustomerNumber
|
||||
});
|
||||
|
||||
if (meterialFreeGoods != null && !string.IsNullOrWhiteSpace(meterialFreeGoods.MaterialCode))
|
||||
{
|
||||
UpdateMaterialFreeGoods(tc, request);
|
||||
response.IsUpdated = true;
|
||||
}
|
||||
|
|
@ -1397,7 +1407,9 @@ public class IntegrationService : IIntegrationService
|
|||
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)
|
||||
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))
|
||||
|
|
@ -1460,6 +1472,32 @@ public class IntegrationService : IIntegrationService
|
|||
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)
|
||||
{
|
||||
bool response = false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user