check null in save order for discount and foc item

This commit is contained in:
dibakor 2026-07-19 10:04:03 +06:00
parent 794086917b
commit 56bbcdfa04

View File

@ -121,33 +121,39 @@ public class OrderService : IOrderService
request.FocValue = 0; request.FocValue = 0;
promotions.Add(new SaveOrderPromotionRequest() if(dicountItem!= null)
{ {
OrderId = isUpdate ? existingOrder.OrderId : 0, promotions.Add(new SaveOrderPromotionRequest()
MaterialId = materialsByCode[dicountItem.MaterialCode].MaterialId, {
PromotionCode =request.DiscountCode , OrderId = isUpdate ? existingOrder.OrderId : 0,
DiscountPercentage = dicountItem.DiscountPercentage, MaterialId = materialsByCode[dicountItem.MaterialCode].MaterialId,
DiscountValue = dicountItem.DiscountAmount, PromotionCode = request.DiscountCode,
ForQuantity = dicountItem.PromoQuantity, DiscountPercentage = dicountItem.DiscountPercentage,
OrderFocQty = 0, DiscountValue = dicountItem.DiscountAmount,
ValidatedFocQty = 0, ForQuantity = dicountItem.PromoQuantity,
ApprovedFocQty = 0, OrderFocQty = 0,
PromotionType = 1, ValidatedFocQty = 0,
}); ApprovedFocQty = 0,
PromotionType = 1,
promotions.Add(new SaveOrderPromotionRequest() });
}
if(focItem != null)
{ {
OrderId = isUpdate ? existingOrder.OrderId : 0, promotions.Add(new SaveOrderPromotionRequest()
MaterialId = materialsByCode[focItem.MaterialCode].MaterialId, {
PromotionCode = request.FocCode, OrderId = isUpdate ? existingOrder.OrderId : 0,
DiscountPercentage = 0, MaterialId = materialsByCode[focItem.MaterialCode].MaterialId,
DiscountValue = 0, PromotionCode = request.FocCode,
ForQuantity = focItem.PromoQuantity, DiscountPercentage = 0,
OrderFocQty = (request.OrderStatus == OrderStatusEnum.Draft || request.OrderStatus == OrderStatusEnum.InOrderValidation) ? focItem.OrderQuantity : 0, DiscountValue = 0,
ValidatedFocQty = (request.OrderStatus == OrderStatusEnum.CancelledByValidator || request.OrderStatus == OrderStatusEnum.InOrderApproval) ? focItem.OrderQuantity : 0, ForQuantity = focItem.PromoQuantity,
ApprovedFocQty = (request.OrderStatus == OrderStatusEnum.CancelledByApprover || request.OrderStatus == OrderStatusEnum.Approved) ? focItem.OrderQuantity : 0, OrderFocQty = (request.OrderStatus == OrderStatusEnum.Draft || request.OrderStatus == OrderStatusEnum.InOrderValidation) ? focItem.OrderQuantity : 0,
PromotionType = 2, ValidatedFocQty = (request.OrderStatus == OrderStatusEnum.CancelledByValidator || request.OrderStatus == OrderStatusEnum.InOrderApproval) ? focItem.OrderQuantity : 0,
}); ApprovedFocQty = (request.OrderStatus == OrderStatusEnum.CancelledByApprover || request.OrderStatus == OrderStatusEnum.Approved) ? focItem.OrderQuantity : 0,
PromotionType = 2,
});
}
// 5. Insert or update // 5. Insert or update
int orderId; int orderId;
@ -629,6 +635,7 @@ public class OrderService : IOrderService
SqlHelperExtension.CreateInParam(pName: "@NetValue", pType: SqlDbType.Decimal, pValue: request.NetValue), SqlHelperExtension.CreateInParam(pName: "@NetValue", pType: SqlDbType.Decimal, pValue: request.NetValue),
SqlHelperExtension.CreateInParam(pName: "@OrderStatus", pType: SqlDbType.Int, pValue: (int)request.OrderStatus), SqlHelperExtension.CreateInParam(pName: "@OrderStatus", pType: SqlDbType.Int, pValue: (int)request.OrderStatus),
SqlHelperExtension.CreateInParam(pName: "@SapRefferenceOrderNo", pType: SqlDbType.NVarChar, pValue: null), SqlHelperExtension.CreateInParam(pName: "@SapRefferenceOrderNo", pType: SqlDbType.NVarChar, pValue: null),
SqlHelperExtension.CreateInParam(pName: "@UserId", pType: SqlDbType.Int, pValue: userId),
itemsParam, itemsParam,
promotionsParam promotionsParam
]; ];
@ -677,6 +684,7 @@ public class OrderService : IOrderService
SqlHelperExtension.CreateInParam(pName: "@FOCValue", pType: SqlDbType.Decimal, pValue: request.FocCode), SqlHelperExtension.CreateInParam(pName: "@FOCValue", pType: SqlDbType.Decimal, pValue: request.FocCode),
SqlHelperExtension.CreateInParam(pName: "@NetValue", pType: SqlDbType.Decimal, pValue: request.NetValue), SqlHelperExtension.CreateInParam(pName: "@NetValue", pType: SqlDbType.Decimal, pValue: request.NetValue),
SqlHelperExtension.CreateInParam(pName: "@OrderStatus", pType: SqlDbType.Int, pValue: (int)request.OrderStatus), SqlHelperExtension.CreateInParam(pName: "@OrderStatus", pType: SqlDbType.Int, pValue: (int)request.OrderStatus),
SqlHelperExtension.CreateInParam(pName: "@UserId", pType: SqlDbType.Int, pValue: userId),
itemsParam, itemsParam,
promotionsParam promotionsParam
]; ];