public static bool AddPurchaseOrderGift(PurchaseOrderInfo purchaseOrder, GiftInfo gift, int quantity) { bool flag; using (DbConnection connection = DatabaseFactory.CreateDatabase().CreateConnection()) { connection.Open(); DbTransaction dbTran = connection.BeginTransaction(); try { if (!SubsiteSalesProvider.Instance().AddPurchaseOrderGift(purchaseOrder.PurchaseOrderId, gift, quantity, dbTran)) { dbTran.Rollback(); return(false); } bool flag2 = false; foreach (PurchaseOrderGiftInfo info in purchaseOrder.PurchaseOrderGifts) { if (info.GiftId == gift.GiftId) { flag2 = true; info.Quantity += quantity; } } if (!flag2) { PurchaseOrderGiftInfo item = new PurchaseOrderGiftInfo(); item.GiftId = gift.GiftId; item.PurchaseOrderId = purchaseOrder.PurchaseOrderId; item.GiftName = gift.Name; item.Quantity = quantity; item.PurchasePrice = gift.PurchasePrice; item.ThumbnailsUrl = gift.ThumbnailUrl40; purchaseOrder.PurchaseOrderGifts.Add(item); } if (!SubsiteSalesProvider.Instance().ResetPurchaseTotal(purchaseOrder, dbTran)) { dbTran.Rollback(); return(false); } dbTran.Commit(); flag = true; } catch { dbTran.Rollback(); flag = false; } finally { connection.Close(); } } return(flag); }
protected void Page_Load(object sender, System.EventArgs e) { if (string.IsNullOrEmpty(base.Request["purchaseorderIds"])) { return; } string orderIds = base.Request["purchaseorderIds"].Trim(new char[] { ',' }); foreach (PurchaseOrderInfo current in this.GetPrintData(orderIds)) { System.Web.UI.HtmlControls.HtmlGenericControl htmlGenericControl = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); htmlGenericControl.Attributes["class"] = "order print"; System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(""); stringBuilder.AppendFormat("<div class=\"info\"><div class=\"prime-info\" style=\"margin-right: 20px;\"><p><span><h3 style=\"font-weight: normal\">{0}</h3></span></p></div><ul class=\"sub-info\"><li><span>生成时间: </span>{1}</li><li><span>采购单编号: </span>{2}</li></ul><br class=\"clear\" /></div>", current.ShipTo, current.PurchaseDate.ToString("yyyy-MM-dd HH:mm"), current.PurchaseOrderId); stringBuilder.Append("<table><col class=\"col-0\" /><col class=\"col-1\" /><col class=\"col-2\" /><col class=\"col-3\" /><col class=\"col-4\" /><col class=\"col-5\" /><thead><tr><th>货号</th><th>商品名称</th><th>规格</th><th>数量</th><th>单价</th><th>总价</th></tr></thead><tbody>"); System.Collections.Generic.IList <PurchaseOrderItemInfo> purchaseOrderItems = current.PurchaseOrderItems; if (purchaseOrderItems != null) { foreach (PurchaseOrderItemInfo current2 in purchaseOrderItems) { stringBuilder.AppendFormat("<tr><td>{0}</td>", current2.SKU); stringBuilder.AppendFormat("<td>{0}</td>", current2.ItemDescription); stringBuilder.AppendFormat("<td>{0}</td>", current2.SKUContent); stringBuilder.AppendFormat("<td>{0}</td>", current2.Quantity); stringBuilder.AppendFormat("<td>{0}</td>", System.Math.Round(current2.ItemListPrice, 2)); stringBuilder.AppendFormat("<td>{0}</td></tr>", System.Math.Round(current2.GetSubTotal(), 2)); } } string value = ""; System.Collections.Generic.IList <PurchaseOrderGiftInfo> purchaseOrderGifts = current.PurchaseOrderGifts; if (purchaseOrderGifts != null && purchaseOrderGifts.Count > 0) { PurchaseOrderGiftInfo purchaseOrderGiftInfo = purchaseOrderGifts[0]; value = string.Format("<li><span>赠送礼品:</span>{0},数量:{1}</li>", purchaseOrderGiftInfo.GiftName, purchaseOrderGiftInfo.Quantity); } stringBuilder.AppendFormat("</tbody></table><ul class=\"price\"><li><span>商品总价: </span>{0}</li><li><span>运费: </span>{1}</li>", System.Math.Round(current.GetProductAmount(), 2), System.Math.Round(current.AdjustedFreight, 2)); decimal adjustedDiscount = current.AdjustedDiscount; if (adjustedDiscount > 0m) { stringBuilder.AppendFormat("<li><span>管理员手工打折:</span>{0}</li>", System.Math.Round(adjustedDiscount, 2)); } stringBuilder.Append(value); stringBuilder.AppendFormat("<li><span>实付金额:</span>{0}</li></ul><br class=\"clear\" /><br><br>", System.Math.Round(current.GetPurchaseTotal(), 2)); htmlGenericControl.InnerHtml = stringBuilder.ToString(); this.divContent.Controls.AddAt(0, htmlGenericControl); } }
protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(base.Request["purchaseorderIds"])) { string orderIds = base.Request["purchaseorderIds"].Trim(new char[] { ',' }); foreach (PurchaseOrderInfo info in this.GetPrintData(orderIds)) { HtmlGenericControl child = new HtmlGenericControl("div"); child.Attributes["class"] = "order print"; StringBuilder builder = new StringBuilder(""); builder.AppendFormat("<div class=\"info\"><div class=\"prime-info\" style=\"margin-right: 20px;\"><p><span><h3 style=\"font-weight: normal\">{0}</h3></span></p></div><ul class=\"sub-info\"><li><span>生成时间: </span>{1}</li><li><span>采购单编号: </span>{2}</li></ul><br class=\"clear\" /></div>", info.ShipTo, info.PurchaseDate.ToString("yyyy-MM-dd HH:mm"), info.PurchaseOrderId); builder.Append("<table><col class=\"col-0\" /><col class=\"col-1\" /><col class=\"col-2\" /><col class=\"col-3\" /><col class=\"col-4\" /><col class=\"col-5\" /><thead><tr><th>货号</th><th>商品名称</th><th>规格</th><th>数量</th><th>单价</th><th>总价</th></tr></thead><tbody>"); IList <PurchaseOrderItemInfo> purchaseOrderItems = info.PurchaseOrderItems; if (purchaseOrderItems != null) { foreach (PurchaseOrderItemInfo info2 in purchaseOrderItems) { builder.AppendFormat("<tr><td>{0}</td>", info2.SKU); builder.AppendFormat("<td>{0}</td>", info2.ItemDescription); builder.AppendFormat("<td>{0}</td>", info2.SKUContent); builder.AppendFormat("<td>{0}</td>", info2.Quantity); builder.AppendFormat("<td>{0}</td>", Math.Round(info2.ItemListPrice, 2)); builder.AppendFormat("<td>{0}</td></tr>", Math.Round(info2.GetSubTotal(), 2)); } } string str2 = ""; IList <PurchaseOrderGiftInfo> purchaseOrderGifts = info.PurchaseOrderGifts; if ((purchaseOrderGifts != null) && (purchaseOrderGifts.Count > 0)) { PurchaseOrderGiftInfo info3 = purchaseOrderGifts[0]; str2 = string.Format("<li><span>赠送礼品:</span>{0},数量:{1}</li>", info3.GiftName, info3.Quantity); } builder.AppendFormat("</tbody></table><ul class=\"price\"><li><span>商品总价: </span>{0}</li><li><span>运费: </span>{1}</li>", Math.Round(info.GetProductAmount(), 2), Math.Round(info.AdjustedFreight, 2)); decimal adjustedDiscount = info.AdjustedDiscount; if (adjustedDiscount > 0M) { builder.AppendFormat("<li><span>管理员手工打折:</span>{0}</li>", Math.Round(adjustedDiscount, 2)); } builder.Append(str2); builder.AppendFormat("<li><span>实付金额:</span>{0}</li></ul><br class=\"clear\" /><br><br>", Math.Round(info.GetPurchaseTotal(), 2)); child.InnerHtml = builder.ToString(); this.divContent.Controls.AddAt(0, child); } } }
PurchaseOrderInfo ConvertOrderToPurchaseOrder(OrderInfo order) { if (order == null) { return(null); } StringBuilder builder = new StringBuilder(); string query = ""; foreach (LineItemInfo info in order.LineItems.Values) { builder.AppendFormat("'" + info.SkuId + "',", new object[0]); } if (builder.Length > 0) { builder = builder.Remove(builder.Length - 1, 1); query = string.Format("SELECT S.SkuId, S.CostPrice, p.ProductName FROM Hishop_Products P JOIN Hishop_SKUs S ON P.ProductId = S.ProductId WHERE S.SkuId IN({0});", builder); } if (order.Gifts.Count > 0) { StringBuilder builder2 = new StringBuilder(); foreach (OrderGiftInfo info2 in order.Gifts) { builder2.AppendFormat(info2.GiftId.ToString() + ",", new object[0]); } builder2.Remove(builder2.Length - 1, 1); query = query + string.Format(" SELECT GiftId, CostPrice FROM Hishop_Gifts WHERE GiftId IN({0});", builder2.ToString()); } DbCommand sqlStringCommand = database.GetSqlStringCommand(query); Dictionary <string, PurchaseOrderItemInfo> dictionary = new Dictionary <string, PurchaseOrderItemInfo>(); Dictionary <int, decimal> dictionary2 = new Dictionary <int, decimal>(); using (IDataReader reader = database.ExecuteReader(sqlStringCommand)) { if (order.LineItems.Values.Count > 0) { while (reader.Read()) { PurchaseOrderItemInfo info3 = new PurchaseOrderItemInfo(); if (reader["CostPrice"] != DBNull.Value) { info3.ItemCostPrice = (decimal)reader["CostPrice"]; } info3.ItemHomeSiteDescription = (string)reader["ProductName"]; dictionary.Add((string)reader["SkuId"], info3); } } if (order.Gifts.Count > 0) { if (order.LineItems.Count > 0) { reader.NextResult(); } while (reader.Read()) { dictionary2.Add((int)reader["GiftId"], (DBNull.Value == reader["CostPrice"]) ? 0M : Convert.ToDecimal(reader["CostPrice"])); } } } IUser user = Users.GetUser(HiContext.Current.SiteSettings.UserId.Value, false); if ((user == null) || (user.UserRole != UserRole.Distributor)) { return(null); } Distributor distributor = user as Distributor; PurchaseOrderInfo info4 = new PurchaseOrderInfo(); info4.PurchaseOrderId = "PO" + order.OrderId; info4.OrderId = order.OrderId; info4.Remark = order.Remark; info4.PurchaseStatus = OrderStatus.WaitBuyerPay; info4.DistributorId = distributor.UserId; info4.Distributorname = distributor.Username; info4.DistributorEmail = distributor.Email; info4.DistributorRealName = distributor.RealName; info4.DistributorQQ = distributor.QQ; info4.DistributorWangwang = distributor.Wangwang; info4.DistributorMSN = distributor.MSN; info4.ShippingRegion = order.ShippingRegion; info4.Address = order.Address; info4.ZipCode = order.ZipCode; info4.ShipTo = order.ShipTo; info4.TelPhone = order.TelPhone; info4.CellPhone = order.CellPhone; info4.ShippingModeId = order.ShippingModeId; info4.ModeName = order.ModeName; info4.RegionId = order.RegionId; info4.Freight = order.Freight; info4.AdjustedFreight = order.Freight; info4.ShipOrderNumber = order.ShipOrderNumber; info4.Weight = order.Weight; info4.RefundStatus = RefundStatus.None; info4.OrderTotal = order.GetTotal(); info4.ExpressCompanyName = order.ExpressCompanyName; info4.ExpressCompanyAbb = order.ExpressCompanyAbb; foreach (LineItemInfo info5 in order.LineItems.Values) { PurchaseOrderItemInfo item = new PurchaseOrderItemInfo(); item.PurchaseOrderId = info4.PurchaseOrderId; item.SkuId = info5.SkuId; item.ProductId = info5.ProductId; item.SKU = info5.SKU; item.Quantity = info5.ShipmentQuantity; foreach (KeyValuePair <string, PurchaseOrderItemInfo> pair in dictionary) { if (pair.Key == info5.SkuId) { item.ItemCostPrice = pair.Value.ItemCostPrice; item.ItemHomeSiteDescription = pair.Value.ItemHomeSiteDescription; } } item.ItemPurchasePrice = info5.ItemCostPrice; item.ItemListPrice = info5.ItemListPrice; item.ItemDescription = info5.ItemDescription; item.SKUContent = info5.SKUContent; item.ThumbnailsUrl = info5.ThumbnailsUrl; item.ItemWeight = info5.ItemWeight; if (string.IsNullOrEmpty(item.ItemHomeSiteDescription)) { item.ItemHomeSiteDescription = item.ItemDescription; } info4.PurchaseOrderItems.Add(item); } foreach (OrderGiftInfo info7 in order.Gifts) { PurchaseOrderGiftInfo info8 = new PurchaseOrderGiftInfo(); info8.PurchaseOrderId = info4.PurchaseOrderId; foreach (KeyValuePair <int, decimal> pair2 in dictionary2) { if (pair2.Key == info7.GiftId) { info8.CostPrice = pair2.Value; } } info8.PurchasePrice = info7.CostPrice; info8.GiftId = info7.GiftId; info8.GiftName = info7.GiftName; info8.Quantity = info7.Quantity; info8.ThumbnailsUrl = info7.ThumbnailsUrl; info4.PurchaseOrderGifts.Add(info8); } foreach (OrderOptionInfo info9 in order.OrderOptions) { PurchaseOrderOptionInfo info10 = new PurchaseOrderOptionInfo(); info10.PurchaseOrderId = info4.PurchaseOrderId; info10.LookupListId = info9.LookupListId; info10.LookupItemId = info9.LookupItemId; info10.ListDescription = info9.ListDescription; info10.ItemDescription = info9.ItemDescription; info10.AdjustedPrice = info9.AdjustedPrice; info10.CustomerTitle = info9.CustomerTitle; info10.CustomerDescription = info9.CustomerDescription; info4.PurchaseOrderOptions.Add(info10); } return(info4); }
private PurchaseOrderInfo ConvertOrderToPurchaseOrder(OrderInfo order) { PurchaseOrderInfo result; if (order == null) { result = null; } else { StringBuilder stringBuilder = new StringBuilder(); string text = ""; foreach (LineItemInfo current in order.LineItems.Values) { stringBuilder.AppendFormat("'" + current.SkuId + "',", new object[0]); } if (stringBuilder.Length > 0) { stringBuilder = stringBuilder.Remove(stringBuilder.Length - 1, 1); text = string.Format("SELECT S.SkuId, S.CostPrice, p.ProductName FROM Hishop_Products P JOIN Hishop_SKUs S ON P.ProductId = S.ProductId WHERE S.SkuId IN({0});", stringBuilder); } if (order.Gifts.Count > 0) { StringBuilder stringBuilder2 = new StringBuilder(); foreach (OrderGiftInfo current2 in order.Gifts) { stringBuilder2.AppendFormat(current2.GiftId.ToString() + ",", new object[0]); } stringBuilder2.Remove(stringBuilder2.Length - 1, 1); text += string.Format(" SELECT GiftId, CostPrice FROM Hishop_Gifts WHERE GiftId IN({0});", stringBuilder2.ToString()); } System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(text); Dictionary <string, PurchaseOrderItemInfo> dictionary = new Dictionary <string, PurchaseOrderItemInfo>(); Dictionary <int, decimal> dictionary2 = new Dictionary <int, decimal>(); using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand)) { if (order.LineItems.Values.Count > 0) { while (dataReader.Read()) { PurchaseOrderItemInfo purchaseOrderItemInfo = new PurchaseOrderItemInfo(); if (dataReader["CostPrice"] != DBNull.Value) { purchaseOrderItemInfo.ItemCostPrice = (decimal)dataReader["CostPrice"]; } purchaseOrderItemInfo.ItemHomeSiteDescription = (string)dataReader["ProductName"]; dictionary.Add((string)dataReader["SkuId"], purchaseOrderItemInfo); } } if (order.Gifts.Count > 0) { if (order.LineItems.Count > 0) { dataReader.NextResult(); } while (dataReader.Read()) { dictionary2.Add((int)dataReader["GiftId"], (DBNull.Value == dataReader["CostPrice"]) ? 0m : Convert.ToDecimal(dataReader["CostPrice"])); } } } IUser user = Users.GetUser(HiContext.Current.SiteSettings.UserId.Value, false); if (user == null || user.UserRole != UserRole.Distributor) { result = null; } else { Distributor distributor = user as Distributor; PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo(); purchaseOrderInfo.PurchaseOrderId = "PO" + order.OrderId; purchaseOrderInfo.OrderId = order.OrderId; purchaseOrderInfo.Remark = order.Remark; purchaseOrderInfo.PurchaseStatus = OrderStatus.WaitBuyerPay; purchaseOrderInfo.DistributorId = distributor.UserId; purchaseOrderInfo.Distributorname = distributor.Username; purchaseOrderInfo.DistributorEmail = distributor.Email; purchaseOrderInfo.DistributorRealName = distributor.RealName; purchaseOrderInfo.DistributorQQ = distributor.QQ; purchaseOrderInfo.DistributorWangwang = distributor.Wangwang; purchaseOrderInfo.DistributorMSN = distributor.MSN; purchaseOrderInfo.ShippingRegion = order.ShippingRegion; purchaseOrderInfo.Address = order.Address; purchaseOrderInfo.ZipCode = order.ZipCode; purchaseOrderInfo.ShipTo = order.ShipTo; purchaseOrderInfo.TelPhone = order.TelPhone; purchaseOrderInfo.CellPhone = order.CellPhone; purchaseOrderInfo.ShipToDate = order.ShipToDate; purchaseOrderInfo.ShippingModeId = order.ShippingModeId; purchaseOrderInfo.ModeName = order.ModeName; purchaseOrderInfo.RegionId = order.RegionId; purchaseOrderInfo.Freight = order.Freight; purchaseOrderInfo.AdjustedFreight = order.Freight; purchaseOrderInfo.ShipOrderNumber = order.ShipOrderNumber; purchaseOrderInfo.Weight = order.Weight; purchaseOrderInfo.RefundStatus = RefundStatus.None; purchaseOrderInfo.OrderTotal = order.GetTotal(); purchaseOrderInfo.ExpressCompanyName = order.ExpressCompanyName; purchaseOrderInfo.ExpressCompanyAbb = order.ExpressCompanyAbb; purchaseOrderInfo.Tax = order.Tax; purchaseOrderInfo.InvoiceTitle = order.InvoiceTitle; foreach (LineItemInfo current3 in order.LineItems.Values) { PurchaseOrderItemInfo purchaseOrderItemInfo2 = new PurchaseOrderItemInfo(); purchaseOrderItemInfo2.PurchaseOrderId = purchaseOrderInfo.PurchaseOrderId; purchaseOrderItemInfo2.SkuId = current3.SkuId; purchaseOrderItemInfo2.ProductId = current3.ProductId; purchaseOrderItemInfo2.SKU = current3.SKU; purchaseOrderItemInfo2.Quantity = current3.ShipmentQuantity; foreach (KeyValuePair <string, PurchaseOrderItemInfo> current4 in dictionary) { if (current4.Key == current3.SkuId) { purchaseOrderItemInfo2.ItemCostPrice = current4.Value.ItemCostPrice; purchaseOrderItemInfo2.ItemHomeSiteDescription = current4.Value.ItemHomeSiteDescription; } } purchaseOrderItemInfo2.ItemPurchasePrice = current3.ItemCostPrice; purchaseOrderItemInfo2.ItemListPrice = current3.ItemListPrice; purchaseOrderItemInfo2.ItemDescription = current3.ItemDescription; purchaseOrderItemInfo2.SKUContent = current3.SKUContent; purchaseOrderItemInfo2.ThumbnailsUrl = current3.ThumbnailsUrl; purchaseOrderItemInfo2.ItemWeight = current3.ItemWeight; if (string.IsNullOrEmpty(purchaseOrderItemInfo2.ItemHomeSiteDescription)) { purchaseOrderItemInfo2.ItemHomeSiteDescription = purchaseOrderItemInfo2.ItemDescription; } purchaseOrderInfo.PurchaseOrderItems.Add(purchaseOrderItemInfo2); } foreach (OrderGiftInfo current5 in order.Gifts) { PurchaseOrderGiftInfo purchaseOrderGiftInfo = new PurchaseOrderGiftInfo(); purchaseOrderGiftInfo.PurchaseOrderId = purchaseOrderInfo.PurchaseOrderId; foreach (KeyValuePair <int, decimal> current6 in dictionary2) { if (current6.Key == current5.GiftId) { purchaseOrderGiftInfo.CostPrice = current6.Value; } } purchaseOrderGiftInfo.PurchasePrice = current5.CostPrice; purchaseOrderGiftInfo.GiftId = current5.GiftId; purchaseOrderGiftInfo.GiftName = current5.GiftName; purchaseOrderGiftInfo.Quantity = current5.Quantity; purchaseOrderGiftInfo.ThumbnailsUrl = current5.ThumbnailsUrl; purchaseOrderInfo.PurchaseOrderGifts.Add(purchaseOrderGiftInfo); } result = purchaseOrderInfo; } } return(result); }