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