complete Integration FOC and Material Price Endpoints
This commit is contained in:
parent
16dcf2351f
commit
13b1739ab1
|
|
@ -10,7 +10,7 @@ public class IntegrationBillingDocumentRequest
|
|||
{
|
||||
[Required(ErrorMessage = "Invoice/Billing document number is required.")]
|
||||
[StringLength(50, ErrorMessage = "Invoice/Billing document number cannot exceed 50 characters.")]
|
||||
public string InvoiceBillingDocumentNumber { get; set; } = string.Empty;
|
||||
public string BillingDocumentNumber { get; set; } = string.Empty;
|
||||
|
||||
[Required(ErrorMessage = "Billing date is required.")]
|
||||
[DataType(DataType.Date)]
|
||||
|
|
|
|||
|
|
@ -1,17 +1,22 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace OnlineSalesAutoCrop.CoreAPI.Models.Requests.Integrations;
|
||||
|
||||
public class IntegrationMaterialFreeGoodsRequest
|
||||
{
|
||||
|
||||
public IntegrationMaterialFreeGoodsRequest()
|
||||
{
|
||||
Slabs = new List<IntegrationMaterialFreeGoodItemRequest>();
|
||||
}
|
||||
[Required(ErrorMessage = "SalesOrg is required.")]
|
||||
[StringLength(4, MinimumLength = 1, ErrorMessage = "SalesOrg must be between 1 and 4 characters.")]
|
||||
[StringLength(10, MinimumLength = 1, ErrorMessage = "SalesOrg must be between 1 and 10 characters.")]
|
||||
public string SalesOrg { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "DistributionChannel is required.")]
|
||||
[StringLength(2, MinimumLength = 1, ErrorMessage = "DistributionChannel must be between 1 and 2 characters.")]
|
||||
[StringLength(5, MinimumLength = 1, ErrorMessage = "DistributionChannel must be between 1 and 5 characters.")]
|
||||
public string DistributionChannel { get; set; }
|
||||
|
||||
[StringLength(13, MinimumLength = 1, ErrorMessage = "CustomerNumber must be between 1 and 13 characters.")]
|
||||
|
|
@ -20,29 +25,27 @@ public class IntegrationMaterialFreeGoodsRequest
|
|||
[StringLength(2, MinimumLength = 1, ErrorMessage = "CustomerPriceGroup must be between 1 and 2 characters.")]
|
||||
public string? CustomerPriceGroup { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "MaterialCode is required.")]
|
||||
[StringLength(10, MinimumLength = 1, ErrorMessage = "MaterialCode must be between 1 and 10 characters.")]
|
||||
public string MaterialCode { get; set; }
|
||||
public string? MaterialCode { get; set; }
|
||||
public IList<IntegrationMaterialFreeGoodItemRequest> Slabs { get; set; }
|
||||
}
|
||||
|
||||
[Required(ErrorMessage = "MinOrderQuantity is required.")]
|
||||
public class IntegrationMaterialFreeGoodItemRequest
|
||||
{
|
||||
[Range(0.001, 9999999999999.999, ErrorMessage = "MinOrderQuantity must be greater than 0.")]
|
||||
public decimal MinOrderQuantity { get; set; }
|
||||
public decimal? MinOrderQuantity { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "ForQuantity is required.")]
|
||||
[Range(0.001, 9999999999999.999, ErrorMessage = "ForQuantity must be greater than 0.")]
|
||||
public decimal ForQuantity { get; set; }
|
||||
public decimal? ForQuantity { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "UnitOfMeasure is required.")]
|
||||
[StringLength(3, MinimumLength = 1, ErrorMessage = "UnitOfMeasure must be between 1 and 3 characters.")]
|
||||
public string UnitOfMeasure { get; set; }
|
||||
public string? UnitOfMeasure { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "FreeQuantity is required.")]
|
||||
[Range(0.001, 9999999999999.999, ErrorMessage = "FreeQuantity must be greater than 0.")]
|
||||
public decimal FreeQuantity { get; set; }
|
||||
public decimal? FreeQuantity { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "FocUnitOfMeasure is required.")]
|
||||
[StringLength(3, MinimumLength = 1, ErrorMessage = "FocUnitOfMeasure must be between 1 and 3 characters.")]
|
||||
public string FocUnitOfMeasure { get; set; }
|
||||
public string? FocUnitOfMeasure { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "ValidFrom is required.")]
|
||||
public DateOnly ValidFrom { get; set; }
|
||||
|
|
@ -54,7 +57,6 @@ public class IntegrationMaterialFreeGoodsRequest
|
|||
public string? Status { get; set; } // NULL = Active, X = Inactive
|
||||
}
|
||||
|
||||
|
||||
public class GetMaterialFreeGoodsByFilterRequest
|
||||
{
|
||||
[Required(ErrorMessage = "SalesOrg is required.")]
|
||||
|
|
|
|||
|
|
@ -88,4 +88,7 @@ public class GetMaterialPriceByCodeRequest
|
|||
|
||||
[StringLength(10, ErrorMessage = "Customer Group Code cannot exceed 10 characters.")]
|
||||
public string? CustomerGroupCode { get; set; }
|
||||
|
||||
[StringLength(10, ErrorMessage = "Distributor Channel Code cannot exceed 10 characters.")]
|
||||
public string? DistributorChannelCode { get; set; }
|
||||
}
|
||||
|
|
@ -290,10 +290,21 @@ public class IntegrationService : IIntegrationService
|
|||
{
|
||||
IntegrationMaterialPriceResponse meterialPrice = await GetMaterialPriceByCodeAndConditionTypeAsync(tc,
|
||||
new GetMaterialPriceByCodeRequest() { MaterialCode = request.MaterialCode, ConditionType = request.ConditionType,
|
||||
SalesOrg=request.SalesOrg, CustomerNumber = request.CustomerNumber,CustomerGroupCode = request.CustomerGroupCode });
|
||||
SalesOrg=request.SalesOrg, CustomerNumber = request.CustomerNumber,CustomerGroupCode = request.CustomerGroupCode,
|
||||
DistributorChannelCode = request.DistributionChannel});
|
||||
|
||||
if (meterialPrice != null && !string.IsNullOrWhiteSpace(meterialPrice.MaterialCode))
|
||||
{
|
||||
DeleteMaterialPriceByCodeAndConditionType(tc,
|
||||
new GetMaterialPriceByCodeRequest()
|
||||
{
|
||||
MaterialCode = request.MaterialCode,
|
||||
ConditionType = request.ConditionType,
|
||||
SalesOrg = request.SalesOrg,
|
||||
CustomerNumber = request.CustomerNumber,
|
||||
CustomerGroupCode = request.CustomerGroupCode,
|
||||
DistributorChannelCode = request.DistributionChannel
|
||||
});
|
||||
UpdateMaterialPrice(tc, request);
|
||||
response.IsUpdated = true;
|
||||
}
|
||||
|
|
@ -363,6 +374,16 @@ public class IntegrationService : IIntegrationService
|
|||
|
||||
if (meterialFreeGoods != null && !string.IsNullOrWhiteSpace(meterialFreeGoods.MaterialCode))
|
||||
{
|
||||
DeleteMaterialFreeGoodsByFilter(tc,
|
||||
new GetMaterialFreeGoodsByFilterRequest()
|
||||
{
|
||||
SalesOrg = request.SalesOrg,
|
||||
DistributionChannel = request.DistributionChannel,
|
||||
CustomerPriceGroup = request.CustomerPriceGroup,
|
||||
MaterialCode = request.MaterialCode,
|
||||
CustomerNumber = request.CustomerNumber
|
||||
});
|
||||
|
||||
UpdateMaterialFreeGoods(tc, request);
|
||||
response.IsUpdated = true;
|
||||
}
|
||||
|
|
@ -1129,7 +1150,8 @@ public class IntegrationService : IIntegrationService
|
|||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@ConditionType", SqlDbType.NVarChar, request.ConditionType),
|
||||
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.CustomerNumber)? null : request.CustomerNumber ),
|
||||
SqlHelperExtension.CreateInParam("@CustomerGroup", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.CustomerGroupCode)? null : request.CustomerGroupCode )
|
||||
SqlHelperExtension.CreateInParam("@CustomerGroup", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.CustomerGroupCode)? null : request.CustomerGroupCode ),
|
||||
SqlHelperExtension.CreateInParam("@DistributorChannelCode", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.DistributorChannelCode)? null : request.DistributorChannelCode )
|
||||
];
|
||||
|
||||
using (IDataReader dr = await tc.ExecuteReaderSpAsync("dbo.GetMaterialPriceByMaterialCodeAndConditionType", parameterValues: p))
|
||||
|
|
@ -1165,46 +1187,60 @@ public class IntegrationService : IIntegrationService
|
|||
return response;
|
||||
}
|
||||
|
||||
private bool CreateMaterialPrice(TransactionContext tc, IntegrationMaterialPriceRequest request)
|
||||
private bool DeleteMaterialPriceByCodeAndConditionType(TransactionContext tc, GetMaterialPriceByCodeRequest request)
|
||||
{
|
||||
bool response = false;
|
||||
|
||||
DataTable dtSlabs = new DataTable();
|
||||
dtSlabs.Columns.Add("ScaleValue", typeof(decimal));
|
||||
dtSlabs.Columns.Add("ValidFrom", typeof(DateTime));
|
||||
dtSlabs.Columns.Add("ValidTo", typeof(DateTime));
|
||||
dtSlabs.Columns.Add("Status", typeof(bool));
|
||||
dtSlabs.Columns.Add("ConditionValue", typeof(decimal));
|
||||
|
||||
foreach (var item in request.Slabs)
|
||||
{
|
||||
DataRow dr = dtSlabs.NewRow();
|
||||
dr["ScaleQty"] = item.ScaleValue;
|
||||
dr["ValidFrom"] = item.ValidFrom;
|
||||
dr["ValidTo"] = item.ValidTo;
|
||||
dr["Status"] = item.Status;
|
||||
dr["ConditionValue"] = item.ConditionValue;
|
||||
dtSlabs.Rows.Add(dr);
|
||||
}
|
||||
|
||||
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("@CustomerGroupCode", SqlDbType.NVarChar, request.CustomerGroupCode),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@ConditionType", SqlDbType.NVarChar, request.ConditionType),
|
||||
SqlHelperExtension.CreateInParam("@CalculationType", SqlDbType.NVarChar, request.CalculationType),
|
||||
SqlHelperExtension.CreateInParam("@PricingUnit", SqlDbType.NVarChar, request.PricingUnit),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, request.UnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@DiscountSlabItemType",SqlDbType.Structured, dtSlabs),
|
||||
SqlHelperExtension.CreateInParam("@SalesOrg", SqlDbType.NVarChar, request.SalesOrg),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@ConditionType", SqlDbType.NVarChar, request.ConditionType),
|
||||
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.CustomerNumber)? null : request.CustomerNumber ),
|
||||
SqlHelperExtension.CreateInParam("@CustomerGroup", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.CustomerGroupCode)? null : request.CustomerGroupCode ),
|
||||
SqlHelperExtension.CreateInParam("@DistributorChannelCode", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.DistributorChannelCode)? null : request.DistributorChannelCode )
|
||||
];
|
||||
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.InsertIntegrationMaterialPrice", parameterValues: p);
|
||||
_ = tc.ExecuteNonQuerySp("dbo.DeleteMaterialPriceByMaterialCodeAndConditionType", parameterValues: p);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw DBCustomError.GenerateCustomError(ex);
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
private bool CreateMaterialPrice(TransactionContext tc, IntegrationMaterialPriceRequest request)
|
||||
{
|
||||
bool response = false;
|
||||
|
||||
try
|
||||
{
|
||||
foreach (var item in request.Slabs)
|
||||
{
|
||||
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("@CustomerGroupCode", SqlDbType.NVarChar, request.CustomerGroupCode),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@ConditionType", SqlDbType.NVarChar, request.ConditionType),
|
||||
SqlHelperExtension.CreateInParam("@CalculationType", SqlDbType.NVarChar, request.CalculationType),
|
||||
SqlHelperExtension.CreateInParam("@PricingUnit", SqlDbType.NVarChar, request.PricingUnit),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, request.UnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@ScaleValue", SqlDbType.NVarChar, item.ScaleValue),
|
||||
SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.DateTime, item.ValidFrom),
|
||||
SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.DateTime, item.ValidTo),
|
||||
SqlHelperExtension.CreateInParam("@Status", SqlDbType.NVarChar, item.Status),
|
||||
SqlHelperExtension.CreateInParam("@ConditionValue", SqlDbType.Decimal, item.ConditionValue)
|
||||
];
|
||||
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.InsertIntegrationMaterialPrice", parameterValues: p);
|
||||
}
|
||||
response = true;
|
||||
}
|
||||
catch (Exception)
|
||||
|
|
@ -1219,28 +1255,30 @@ public class IntegrationService : IIntegrationService
|
|||
{
|
||||
bool returnValue = false;
|
||||
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
SqlParameter[] p =
|
||||
[
|
||||
SqlHelperExtension.CreateInParam("@SalesOrg", SqlDbType.NVarChar, request.SalesOrg),
|
||||
SqlHelperExtension.CreateInParam("@DistributionChannel", SqlDbType.NVarChar, request.DistributionChannel),
|
||||
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.CustomerNumber) ? null : request.CustomerNumber),
|
||||
SqlHelperExtension.CreateInParam("@CustomerGroupCode", SqlDbType.NVarChar, request.CustomerGroupCode),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@ConditionType", SqlDbType.NVarChar, request.ConditionType),
|
||||
SqlHelperExtension.CreateInParam("@CalculationType", SqlDbType.NVarChar, request.CalculationType),
|
||||
SqlHelperExtension.CreateInParam("@PricingUnit", SqlDbType.NVarChar, request.PricingUnit),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, request.UnitOfMeasure),
|
||||
//SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.DateTime, request.ValidFrom),
|
||||
//SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.DateTime, request.ValidTo),
|
||||
//SqlHelperExtension.CreateInParam("@Status", SqlDbType.NVarChar, request.Status),
|
||||
//SqlHelperExtension.CreateInParam("@ConditionValue", SqlDbType.Decimal, request.ConditionValue)
|
||||
];
|
||||
foreach (var item in request.Slabs)
|
||||
{
|
||||
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("@CustomerGroupCode", SqlDbType.NVarChar, request.CustomerGroupCode),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@ConditionType", SqlDbType.NVarChar, request.ConditionType),
|
||||
SqlHelperExtension.CreateInParam("@CalculationType", SqlDbType.NVarChar, request.CalculationType),
|
||||
SqlHelperExtension.CreateInParam("@PricingUnit", SqlDbType.NVarChar, request.PricingUnit),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, request.UnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@ScaleValue", SqlDbType.NVarChar, item.ScaleValue),
|
||||
SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.DateTime, item.ValidFrom),
|
||||
SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.DateTime, item.ValidTo),
|
||||
SqlHelperExtension.CreateInParam("@Status", SqlDbType.NVarChar, item.Status),
|
||||
SqlHelperExtension.CreateInParam("@ConditionValue", SqlDbType.Decimal, item.ConditionValue)
|
||||
];
|
||||
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.UpdateIntegrationMaterialPrice", parameterValues: p);
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.UpdateIntegrationMaterialPrice", parameterValues: p);
|
||||
}
|
||||
|
||||
returnValue = true;
|
||||
}
|
||||
|
|
@ -1306,7 +1344,9 @@ public class IntegrationService : IIntegrationService
|
|||
return response;
|
||||
}
|
||||
|
||||
private bool CreateMaterialFreeGoods(TransactionContext tc, IntegrationMaterialFreeGoodsRequest request)
|
||||
|
||||
private bool DeleteMaterialFreeGoodsByFilter(
|
||||
TransactionContext tc, GetMaterialFreeGoodsByFilterRequest request)
|
||||
{
|
||||
bool response = false;
|
||||
|
||||
|
|
@ -1316,20 +1356,49 @@ public class IntegrationService : IIntegrationService
|
|||
[
|
||||
SqlHelperExtension.CreateInParam("@SalesOrg", SqlDbType.NVarChar, request.SalesOrg),
|
||||
SqlHelperExtension.CreateInParam("@DistributionChannel", SqlDbType.NVarChar, request.DistributionChannel),
|
||||
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, (object?)request.CustomerNumber ?? DBNull.Value),
|
||||
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, request.CustomerNumber),
|
||||
SqlHelperExtension.CreateInParam("@CustomerPriceGroup", SqlDbType.NVarChar, request.CustomerPriceGroup),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@MinOrderQuantity", SqlDbType.Decimal, request.MinOrderQuantity),
|
||||
SqlHelperExtension.CreateInParam("@ForQuantity", SqlDbType.Decimal, request.ForQuantity),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, request.UnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@FreeQuantity", SqlDbType.Decimal, request.FreeQuantity),
|
||||
SqlHelperExtension.CreateInParam("@FocUnitOfMeasure", SqlDbType.NVarChar, request.FocUnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.Date, request.ValidFrom),
|
||||
SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.Date, request.ValidTo),
|
||||
SqlHelperExtension.CreateInParam("@Status", SqlDbType.NVarChar, (object?)request.Status ?? DBNull.Value),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode)
|
||||
];
|
||||
_ = tc.ExecuteNonQuerySp("dbo.DeleteMaterialFOCByFilter", parameterValues: p);
|
||||
response = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw DBCustomError.GenerateCustomError(ex);
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
private bool CreateMaterialFreeGoods(TransactionContext tc, IntegrationMaterialFreeGoodsRequest request)
|
||||
{
|
||||
bool response = false;
|
||||
|
||||
try
|
||||
{
|
||||
foreach (var item in request.Slabs)
|
||||
{
|
||||
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),
|
||||
SqlHelperExtension.CreateInParam("@MinOrderQuantity", SqlDbType.Decimal, item.MinOrderQuantity),
|
||||
SqlHelperExtension.CreateInParam("@ForQuantity", SqlDbType.Decimal, item.ForQuantity),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, item.UnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@FreeQuantity", SqlDbType.Decimal, item.FreeQuantity),
|
||||
SqlHelperExtension.CreateInParam("@FocUnitOfMeasure", SqlDbType.NVarChar, item.FocUnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.Date, item.ValidFrom),
|
||||
SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.Date, item.ValidTo),
|
||||
SqlHelperExtension.CreateInParam("@Status", SqlDbType.NVarChar, item.Status),
|
||||
];
|
||||
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.InsertIntegrationMaterialFreeGoods", parameterValues: p);
|
||||
}
|
||||
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.InsertIntegrationMaterialFreeGoods", parameterValues: p);
|
||||
|
||||
response = true;
|
||||
}
|
||||
|
|
@ -1347,24 +1416,27 @@ public class IntegrationService : IIntegrationService
|
|||
|
||||
try
|
||||
{
|
||||
SqlParameter[] p =
|
||||
[
|
||||
SqlHelperExtension.CreateInParam("@SalesOrg", SqlDbType.NVarChar, request.SalesOrg),
|
||||
SqlHelperExtension.CreateInParam("@DistributionChannel", SqlDbType.NVarChar, request.DistributionChannel),
|
||||
SqlHelperExtension.CreateInParam("@CustomerNumber", SqlDbType.NVarChar, string.IsNullOrWhiteSpace(request.CustomerNumber)? null : request.CustomerNumber ),
|
||||
SqlHelperExtension.CreateInParam("@CustomerPriceGroup", SqlDbType.NVarChar, request.CustomerPriceGroup),
|
||||
SqlHelperExtension.CreateInParam("@MaterialCode", SqlDbType.NVarChar, request.MaterialCode),
|
||||
SqlHelperExtension.CreateInParam("@MinOrderQuantity", SqlDbType.Decimal, request.MinOrderQuantity),
|
||||
SqlHelperExtension.CreateInParam("@ForQuantity", SqlDbType.Decimal, request.ForQuantity),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, request.UnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@FreeQuantity", SqlDbType.Decimal, request.FreeQuantity),
|
||||
SqlHelperExtension.CreateInParam("@FocUnitOfMeasure", SqlDbType.NVarChar, request.FocUnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.Date, request.ValidFrom),
|
||||
SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.Date, request.ValidTo),
|
||||
SqlHelperExtension.CreateInParam("@Status", SqlDbType.NVarChar, (object?)request.Status ?? DBNull.Value)
|
||||
];
|
||||
foreach (var item in request.Slabs)
|
||||
{
|
||||
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),
|
||||
SqlHelperExtension.CreateInParam("@MinOrderQuantity", SqlDbType.Decimal, item.MinOrderQuantity),
|
||||
SqlHelperExtension.CreateInParam("@ForQuantity", SqlDbType.Decimal, item.ForQuantity),
|
||||
SqlHelperExtension.CreateInParam("@UnitOfMeasure", SqlDbType.NVarChar, item.UnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@FreeQuantity", SqlDbType.Decimal, item.FreeQuantity),
|
||||
SqlHelperExtension.CreateInParam("@FocUnitOfMeasure", SqlDbType.NVarChar, item.FocUnitOfMeasure),
|
||||
SqlHelperExtension.CreateInParam("@ValidFrom", SqlDbType.Date, item.ValidFrom),
|
||||
SqlHelperExtension.CreateInParam("@ValidTo", SqlDbType.Date, item.ValidTo),
|
||||
SqlHelperExtension.CreateInParam("@Status", SqlDbType.NVarChar, item.Status ),
|
||||
];
|
||||
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.UpdateIntegrationMaterialFreeGoods", parameterValues: p);
|
||||
_ = tc.ExecuteNonQuerySp(spName: "dbo.UpdateIntegrationMaterialFreeGoods", parameterValues: p);
|
||||
}
|
||||
|
||||
returnValue = true;
|
||||
}
|
||||
|
|
@ -1484,7 +1556,7 @@ public class IntegrationService : IIntegrationService
|
|||
try
|
||||
{
|
||||
CreateBillingDocument(tc, request);
|
||||
response.InvoiceBillingDocumentNumber = request.InvoiceBillingDocumentNumber;
|
||||
response.InvoiceBillingDocumentNumber = request.BillingDocumentNumber;
|
||||
response.BillingDate = request.BillingDate;
|
||||
tc.End();
|
||||
}
|
||||
|
|
@ -1556,7 +1628,7 @@ public class IntegrationService : IIntegrationService
|
|||
|
||||
SqlParameter[] p =
|
||||
[
|
||||
SqlHelperExtension.CreateInParam("@BillingNumber", SqlDbType.NVarChar, request.InvoiceBillingDocumentNumber),
|
||||
SqlHelperExtension.CreateInParam("@BillingNumber", SqlDbType.NVarChar, request.BillingDocumentNumber),
|
||||
SqlHelperExtension.CreateInParam("@SalesOrderNo", SqlDbType.NVarChar, request.SalesOrderReferenceNumber),
|
||||
SqlHelperExtension.CreateInParam("@BillingDate", SqlDbType.DateTime, request.BillingDate),
|
||||
SqlHelperExtension.CreateInParam("@DeliveryNumber", SqlDbType.NVarChar, request.DeliveryReferenceNumber),
|
||||
|
|
|
|||
|
|
@ -210,6 +210,12 @@ namespace OnlineSalesAutoCrop.CoreAPI.Controllers
|
|||
MaterialFreeGoodsByReqResponse response = new MaterialFreeGoodsByReqResponse();
|
||||
try
|
||||
{
|
||||
if(request.Slabs == null || request.Slabs?.Count==0)
|
||||
{
|
||||
response.ReturnMessage.Add($"At least one slab must be sent.");
|
||||
response.ReturnStatus = StatusCodes.Status400BadRequest;
|
||||
return StatusCode(StatusCodes.Status400BadRequest, response);
|
||||
}
|
||||
response = await _integrationService.UpsertMaterialFreeGoodsAsync(request);
|
||||
if (!response.IsUpdated)
|
||||
{
|
||||
|
|
@ -333,14 +339,14 @@ namespace OnlineSalesAutoCrop.CoreAPI.Controllers
|
|||
try
|
||||
{
|
||||
response = await _integrationService.SaveBillingDocumentAsync(request);
|
||||
response.ReturnMessage.Add($"Successfully Save the Billing for Billing Documnet No :{request.InvoiceBillingDocumentNumber} " +
|
||||
response.ReturnMessage.Add($"Successfully Save the Billing for Billing Documnet No :{request.BillingDocumentNumber} " +
|
||||
$"And BillingDate : {request.BillingDate} ");
|
||||
response.ReturnStatus = StatusCodes.Status201Created;
|
||||
return StatusCode(StatusCodes.Status201Created, response);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string msg = $"Exception Occur in Billing for Billing Documnet No :{request.InvoiceBillingDocumentNumber} " +
|
||||
string msg = $"Exception Occur in Billing for Billing Documnet No :{request.BillingDocumentNumber} " +
|
||||
$"And BillingDate : {request.BillingDate} ";
|
||||
_logger.LogError(exception: ex, msg);
|
||||
response.ReturnStatus = StatusCodes.Status500InternalServerError;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user