public List <WebOrderDetailModel> GetWebOrderDetailsForAck(int headerId) { DbDataReader idrOrder = null; WebOrderDetailModel ObjDetail = null; try { List <WebOrderDetailModel> detailList = new List <WebOrderDetailModel>(); idrOrder = this.DataAcessService.ExecuteQuery(OrderSql["GetWebOrderDetailsById"].Format(headerId)); if (idrOrder != null && idrOrder.HasRows) { while (idrOrder.Read()) { ObjDetail = new WebOrderDetailModel(); ObjDetail.WebId = ExtensionMethods.GetInt32(idrOrder, "web_id"); ObjDetail.ItemStatus = ExtensionMethods.GetInt32(idrOrder, "record_status"); ObjDetail.GTINCode = ExtensionMethods.GetString(idrOrder, "gtin_code").ToString(); ObjDetail.BackOrderQty = ExtensionMethods.GetDouble(idrOrder, "order_qty"); ObjDetail.ItemPrice = ExtensionMethods.GetDouble(idrOrder, "unit_cost"); detailList.Add(ObjDetail); } } return(detailList); } catch { throw; } finally { if (idrOrder != null && (!idrOrder.IsClosed)) { idrOrder.Close(); } } }
//--------------------------------------------------------------------------------------- // This is Soooo prone for race conditions as this is not the only application writing // to this table. Workaround taken now is to schedule the two applications in // non conflicting windows. But THIS SHOULD BE PROPERLY ADDRESSED //--------------------------------------------------------------------------------------- public bool InsertWebOrderDetail(WebOrderDetailModel orderDetail) { bool isSuccess = false; int NoRecord = 0; try { float backOrderQty = 0.000F; float unitDiscountPerc = 0.000F; float tax = 0.000F; float freeQty = 0.000F; // string catlogCode = string.Empty; DbInputParameterCollection paramCollection = new DbInputParameterCollection() { DbInputParameter.GetInstance("@WebId", DbType.Int32, orderDetail.WebId), DbInputParameter.GetInstance("@CatlogCode", DbType.String, orderDetail.CatlogCode), DbInputParameter.GetInstance("@OrderQty", DbType.Int32, orderDetail.OrderQty), DbInputParameter.GetInstance("@BackOrderQty", DbType.Int32, backOrderQty), DbInputParameter.GetInstance("@UnitPrice", DbType.Double, orderDetail.UnitPrice), DbInputParameter.GetInstance("@UnitCost", DbType.Double, orderDetail.UnitCost), DbInputParameter.GetInstance("@UnitDiscountPerc", DbType.Double, unitDiscountPerc), DbInputParameter.GetInstance("@Tax", DbType.Double, tax), DbInputParameter.GetInstance("@FreeQty", DbType.Int32, freeQty), DbInputParameter.GetInstance("@ProductNote", DbType.String, orderDetail.ProductNote), DbInputParameter.GetInstance("@ItemStatus", DbType.Int32, orderDetail.ItemStatus), DbInputParameter.GetInstance("@GTINCode", DbType.String, orderDetail.GTINCode), }; NoRecord = this.DataAcessService.ExecuteNonQuery(OrderSql["InsertWebOrderDetail"], paramCollection); if (NoRecord > 0) { isSuccess = true; } else { isSuccess = false; } } catch (Exception) { throw; } return(isSuccess); }
//--------------------------------------------------------------- public void fillWebOrder(WebOrderHeaderModel webOrder, Interchange interchange) { webOrder.Comments = this.freeTextElement.value; webOrder.DateRequired = this.DeliveryDate.DateTime; webOrder.OrderDate = this.MessageDate.DateTime; webOrder.PurchaseCode = this.DocumentNumber; webOrder.Status = "Processing"; // TODO // 29 - Accept 27 - Reject 4-Change //webOrder.IsAckRequired = interchange.AckRequest; webOrder.SenderAddress = interchange.SenderId; webOrder.ReceiverAddress = interchange.RecipientId; webOrder.MessageRefference = this.MessageRef; webOrder.OrderResponseNo = ""; // webOrder.ResponseDate = this.MessageDate.DateTime; // webOrder.DeliveryDate = this.DeliveryDate.DateTime; webOrder.BuyerOrderNo = this.DocumentNumber; webOrder.PromotionNo = ""; webOrder.TotalAmount = 0; foreach (NAD NameAddress in this.NAD) { if (NameAddress.PartyId == "ST") { webOrder.OrderNote = NameAddress.AddressString; webOrder.BillTo = 540; // TODO } if (NameAddress.PartyQualifier == "ST") { webOrder.ShippingAddress = NameAddress.PartyId; } else if (NameAddress.PartyQualifier == "BY") { webOrder.BuyingAddress = NameAddress.PartyId; } else if (NameAddress.PartyQualifier == "SU") { webOrder.SupplierAddress = NameAddress.PartyId; } } if (Lines.Count > 0) { webOrder.WebOrderDetailList = new List <WebOrderDetailModel>(); foreach (LineItem li in this.Lines) { WebOrderDetailModel wod = new WebOrderDetailModel(); wod.CatlogCode = li.PIA.ItemCode; wod.ProductNote = li.PIA.ItemCode; wod.OrderQty = li.QTY.Quantity; wod.UnitCost = Decimal.ToDouble(li.Price.Amount); wod.UnitPrice = Decimal.ToDouble(li.Price.Amount); wod.GTINCode = li.GTIN; wod.ItemStatus = 0; //3-changed 5-accepted 7-not accepted //wod.BackOrderQty = li.QTY.Quantity; //wod.ItemPrice = Decimal.ToDouble(li.Price.Amount); webOrder.WebOrderDetailList.Add(wod); } } webOrder.ItemCount = interchange.QuoteMessage.Lines.Count; webOrder.DetailsStatus = 0; }