private static void updateOrders(List <long> tobeUpdated) { tobeUpdated = tobeUpdated.Distinct().ToList(); foreach (var orderId in tobeUpdated) { List <OrderDetailModel> orderDetailQty = OrderHelper.GetOrderDetail(orderId.ToString()); string status = ""; foreach (var orderDetailItem in orderDetailQty) { List <ShipmentModel> ShippedQty = GetShipments(orderDetailItem.Id); if (ShippedQty != null && ShippedQty.Count() > 0) { if (ShippedQty.Sum(x => x.Quantity) < orderDetailItem.Quantity) { status = "Partially Shipped"; break; } else { status = "Shipped"; } } else { status = "Booked"; break; } } OrderModel updatedOrder = OrderHelper.GetOrder(orderId.ToString()); updatedOrder.Status = status; string result = OrderHelper.UpdateOrder(updatedOrder); } }
public static OrderShipmentModel GetShipmentEdit(string deliveryNo, DateTime date) { List <ShipmentModel> shipmentDetail = service.GetDelivery(AuthenticationHelper.CompanyId.Value, SessionHelper.SOBId, deliveryNo, date).Select(x => new ShipmentModel(x)).ToList(); OrderModel order = OrderHelper.GetOrder(shipmentDetail.First().OrderId.ToString()); //Can be multiple, showing the first one on the header.. OrderShipmentModel orderShipment = new OrderShipmentModel(shipmentDetail.First()); orderShipment.CreateBy = shipmentDetail.First().CreateBy; orderShipment.CreateDate = shipmentDetail.First().CreateDate; orderShipment.CustomerId = order.CustomerId; orderShipment.CustomerSiteId = order.CustomerSiteId; orderShipment.UpdateBy = shipmentDetail.First().UpdateBy; orderShipment.UpdateDate = shipmentDetail.First().UpdateDate; orderShipment.OrderShipments = new List <OrderShipmentLine>(); foreach (var item in shipmentDetail) { OrderDetailModel orderDetail = OrderHelper.GetSingleOrderDetail(item.LineId); OrderShipmentLine shipmentLine = new OrderShipmentLine(item); decimal shippedQty = GetShipments(item.LineId).Where(rec => rec.Id < item.Id).Sum(x => x.Quantity); shipmentLine.BalanceQuantity = orderDetail.Quantity - (shippedQty + item.Quantity); shipmentLine.OrderQuantity = orderDetail.Quantity; shipmentLine.ShipedQuantity = shippedQty; shipmentLine.ThisShipQuantity = item.Quantity; shipmentLine.ItemName = ItemHelper.GetItem(orderDetail.ItemId.ToString()).ItemName; shipmentLine.CustomerId = OrderHelper.GetSingleOrder(item.OrderId.ToString()).CustomerId; shipmentLine.CustomerName = OrderHelper.GetSingleOrder(item.OrderId.ToString()).CustomerName; shipmentLine.CustomerSiteId = OrderHelper.GetSingleOrder(item.OrderId.ToString()).CustomerSiteId; shipmentLine.CustomerSiteName = OrderHelper.GetSingleOrder(item.OrderId.ToString()).CustomerSiteName; orderShipment.OrderShipments.Add(shipmentLine); } return(orderShipment); }