Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
 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);
         }
     }
 }
Example #4
0
        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);
        }
Example #5
0
        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);
        }