From 56bbcdfa044a7a99c5d06ec83496284c316b3b6d Mon Sep 17 00:00:00 2001 From: dibakor Date: Sun, 19 Jul 2026 10:04:03 +0600 Subject: [PATCH] check null in save order for discount and foc item --- .../Services/MobileApp/OrderService.cs | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/MobileApp/OrderService.cs b/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/MobileApp/OrderService.cs index 999811b..40c8d2d 100644 --- a/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/MobileApp/OrderService.cs +++ b/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/MobileApp/OrderService.cs @@ -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() + 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, + }); + } + + 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 ];