public OrderDetailsControl(Order order, int buyerOrderCount) { InitializeComponent(); _buyerOrderCount = buyerOrderCount; _order = order; _order.OnStatusChanged += new EventHandler(_order_OnStatusChanged); //wb.Visible = false; wb.ScrollBarsEnabled = false; wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted); wb.Navigating += new WebBrowserNavigatingEventHandler(wb_Navigating); InitializeHtmlView(); // ... btnPreparePacket.Visible = false; if (_order.Remark.Contains("#直邮")) { tblHeaderInfo.BackColor = Color.FromArgb(0xff, 127, 191, 127); } else if (_order.Remark.Contains("#现货")) { tblHeaderInfo.BackColor = Color.FromArgb(0xff, 255, 127, 127); } else { tblHeaderInfo.BackColor = Color.FromArgb(0xe0, 0xe0, 0xe0); } // details. orderId.Order = _order; orderId.ConsignVisible = _order.Status == (Order.OrderStatus.Paid); orderId.OnConsignSh += new EventHandler(orderId_OnConsignSh); lblDealTime.Text = string.Format("成交时间: {0}", _order.DealTime.ToString("yyyy-MM-dd HH:mm:ss")); lblPayingTime.Text = string.Format("付款时间: {0}", _order.PayingTime.Equals(DateTime.MinValue) ? "<未付款>" : _order.PayingTime.ToString("yyyy-MM-dd HH:mm:ss")); buyerInfo.BuyerAccount = _order.BuyerAccount; buyerInfo.OrderAmount = buyerOrderCount; orderMoney.Money = _order.TotalMoney; orderMoney.Freight = _order.Freight; txtBuyerRemark.Text = _order.BuyerRemark; txtRemark.Text = _order.Remark; txtAddress.Text = _order.GetFullAddress(); txtPinyinAddress.Text = HanZiToPinYin.Convert(txtAddress.Text.Substring(0, txtAddress.Text.Length - 8)); // remove (123456) at the end of address. txtEditedAddress.Text = _order.EditedRecipientAddress; if (string.IsNullOrEmpty(_order.BuyerRemark.Trim())) { lblBuyerRemarkTitle.Visible = false; txtBuyerRemark.Visible = false; } //// title color. //switch (_order.Status) //{ // case Order.OrderStatus.Deal: // tblHeaderInfo.BackColor = Color.FromArgb(248, 200, 113); // break; // case Order.OrderStatus.Paid: // tblHeaderInfo.BackColor = Color.FromArgb(120, 222, 120); // break; // case Order.OrderStatus.Sent: // tblHeaderInfo.BackColor = Color.FromArgb(199, 228, 255); // break; // case Order.OrderStatus.Succeeded: // tblHeaderInfo.BackColor = Color.FromArgb(196, 196, 196); // break; // case Order.OrderStatus.Closed: // tblHeaderInfo.BackColor = Color.FromArgb(196, 196, 196); // break; //} // info about address. if (string.IsNullOrEmpty(_order.EditedRecipientAddress)) { lblEditedAddressTitle.Visible = false; txtEditedAddress.Visible = false; btnGetFullEditedAddress.Visible = false; } else { // If edited address exists the address is not full address. // So, it is not necessary to show pinyin address. lblPinyinAddressTitle.Visible = false; txtPinyinAddress.Visible = false; } // items. string[] items = _order.Items.Split('★'); for (int i = 0; i < items.Length; i++) { string item = items[i]; string[] infos = item.Split('☆'); if (infos.Length < 3) { continue; } if (string.IsNullOrEmpty(infos[0])) { Trace.WriteLine("null product found!!!"); } OrderParser.Order.OrderStatus status = Order.OrderStatus.Succeeded; if (infos.Length >= 4) { status = ((Order.OrderStatus)Enum.Parse(typeof(Order.OrderStatus), infos[3])); } productList.AddProduct( //Order.SimplifyItemSubject(infos[0]), infos[0], float.Parse(infos[1]), int.Parse(infos[2]), status); } // packet. float netWeight = _order.GetNetWeight(); lblNetWeight.Text = string.Format("净重: {0}kg", (netWeight / 1000).ToString("0.0")); cboPackets.Items.Add(new Packet(PacketTypes.Unknown, 0, 0)); cboPackets.Items.Add(new Packet(PacketTypes.Rainbow, 6000, 265)); cboPackets.Items.Add(new Packet(PacketTypes.Rainbow, 8000, 275)); cboPackets.Items.Add(new Packet(PacketTypes.Rainbow, 9000, 285)); cboPackets.Items.Add(new Packet(PacketTypes.Rainbow, 10000, 300)); cboPackets.Items.Add(new Packet(PacketTypes.Rainbow, 15000, 350)); cboPackets.Items.Add(new Packet(PacketTypes.Rainbow, 20000, 420)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 5000, 239)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 5500, 245)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 6000, 250)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 6500, 255)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 7000, 260)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 7500, 265)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 8000, 270)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 8500, 275)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 9000, 290)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 9500, 295)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 10000, 300)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 10500, 310)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 11000, 324)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 11500, 334)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 12000, 344)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 12500, 354)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 13000, 364)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 14000, 374)); cboPackets.Items.Add(new Packet(PacketTypes.Ouhua, 15000, 394)); //cboPackets.Items.Add(new Packet(PacketTypes.Supermarket, 7000, 241)); //cboPackets.Items.Add(new Packet(PacketTypes.Supermarket, 8000, 258)); //cboPackets.Items.Add(new Packet(PacketTypes.Supermarket, 9000, 285)); //cboPackets.Items.Add(new Packet(PacketTypes.Supermarket, 15000, 358)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 5000, 246)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 5500, 251)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 6000, 258)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 6500, 263)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 7000, 268)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 7500, 273)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 8000, 278)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 8500, 288)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 9000, 298)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 9500, 303)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 10000, 308)); //cboPackets.Items.Add(new Packet(PacketTypes.Dealworthier, 10500, 320)); if (4800 == netWeight) { cboPackets.SelectedIndex = GetPacketIndex(PacketTypes.Supermarket, 7); } else if (6400 == netWeight) { cboPackets.SelectedIndex = GetPacketIndex(PacketTypes.Rainbow, 8); } else if (8000 == netWeight) { cboPackets.SelectedIndex = GetPacketIndex(PacketTypes.Rainbow, 10); } else if (8400 == netWeight) { cboPackets.SelectedIndex = GetPacketIndex(PacketTypes.Rainbow, 10); } else { cboPackets.SelectedIndex = 0; } // autosize me. //this.Height = tblDetails.Top + tblPacket.Bottom + this.Padding.Bottom; //Trace.WriteLine(_order.RecipientAddress); //AddressParser ap = new AddressParser(_order.RecipientAddress); //Trace.WriteLine(string.Format("{0}#{1}#{2}#{3}#{4}", ap.Province, ap.City1, ap.City2, ap.District, ap.StreetAddress)); //Trace.WriteLine(""); }
public void AddProduct(string title, float price, int amount, OrderParser.Order.OrderStatus orderStatus) { Label lblTitle = new Label(); lblTitle.Text = title; lblTitle.AutoSize = true; lblTitle.Margin = new Padding(0, 0, 0, 0); lblTitle.Padding = new Padding(0, 0, 0, 0); lblTitle.ForeColor = Color.RoyalBlue; lblTitle.Font = this.Font; Label lblStatus = new Label(); lblStatus.AutoSize = true; lblStatus.Margin = new Padding(0, 0, 0, 0); lblStatus.Padding = new Padding(0, 0, 0, 0); lblStatus.Font = this.Font; Panel pnlTitle = new Panel(); pnlTitle.AutoSize = true; pnlTitle.AutoSizeMode = AutoSizeMode.GrowAndShrink; pnlTitle.Margin = new Padding(0, 0, 16, 0); pnlTitle.BackColor = Color.Transparent; pnlTitle.Controls.AddRange(new Control[] { lblTitle, lblStatus }); //lblStatus.BringToFront(); lblTitle.Location = new Point(0, 0); lblStatus.Location = new Point(lblTitle.Right - 6, 0); Label lblPrice = new Label(); lblPrice.Text = price.ToString("0.00"); lblPrice.AutoSize = true; lblPrice.Margin = new Padding(0, 0, 16, 0); lblPrice.ForeColor = Color.OrangeRed; lblPrice.Font = this.Font; Label lblAmount = new Label(); lblAmount.Text = amount.ToString(); lblAmount.AutoSize = true; lblAmount.Margin = new Padding(0, 0, 6, 0); lblAmount.ForeColor = Color.FromArgb(0x60, 0x60, 0x60); lblAmount.Font = new Font(this.Font, FontStyle.Bold); tblMain.Controls.AddRange(new Control[] { pnlTitle, lblPrice, lblAmount }); switch (orderStatus) { case OrderParser.Order.OrderStatus.Deal: lblStatus.Text += " (未付款)"; lblStatus.ForeColor = Color.Gray; break; case OrderParser.Order.OrderStatus.Paid: lblStatus.Text += " (已付款)"; lblStatus.ForeColor = Color.OrangeRed; break; case OrderParser.Order.OrderStatus.Sent: lblStatus.Text += " (已发货)"; lblStatus.ForeColor = Color.Purple; break; case OrderParser.Order.OrderStatus.Succeeded: lblStatus.Text += " (交易成功)"; lblStatus.ForeColor = Color.DarkGreen; break; case OrderParser.Order.OrderStatus.Closed: lblTitle.ForeColor = Color.Gray; lblStatus.ForeColor = Color.Gray; lblPrice.ForeColor = Color.Gray; lblAmount.ForeColor = Color.Gray; lblStatus.Text += " (已取消)"; break; } }
// Added by KK on 2013/09/19. automn day! void InitializeHtmlView() { string normalTdStyle = "\"font-family:microsoft yahei;font-size:12px;color:#707070;white-space:nowrap;text-align:left;vertical-align:top;overflow:hidden;word-break:break-all\""; string normalTdStyleAlighRight = "\"font-family:microsoft yahei;font-size:12px;color:#707070;white-space:nowrap;text-align:right;vertical-align:top;overflow:hidden;word-break:break-all\""; string normalTdStyleBottomAlign = "\"font-family:microsoft yahei;font-size:12px;color:#707070;white-space:nowrap;text-align:left;vertical-align:bottom;overflow:hidden;word-break:break-all\""; string contentTdStyle = "\"font-family:microsoft yahei;font-size:12px;color:#404040;white-space:nowrap;text-align:left;vertical-align:top;overflow:hidden;word-break:break-all;\""; //string contentTextStyle = "\"font-family:microsoft yahei;font-size:12px;color:#404040;\""; string contentSmallTextStyle = "\"font-family:microsoft yahei;font-size:8px;color:#404040;padding-top:auto;padding-bottom:auto\""; string contentRedStyle = "\"font-family:microsoft yahei;font-size:12px;color:#ff0000;white-space:nowrap;text-align:left;vertical-align:top;overflow:hidden;word-break:break-all;\""; string titleBackColor = "#e0e0e0"; if (_order.Remark.Contains("#直邮")) { titleBackColor = "#c0e0c0"; } else if (_order.Remark.Contains("#现货")) { titleBackColor = "#ffa0a0"; } StringBuilder sb = new StringBuilder(); sb.Append("<body style=\"margin:0px\">"); sb.Append("<span color=\"#707070\"><table id=tblContainer border=0 width=\"100%\" style=\"border-collapse:collapse;padding:0px;cell-padding:0px;border-spacing:0px\">"); sb.Append("<tr><td>"); sb.Append(string.Format("<table width=100% style=\"background-color:{0};border-collapse:collapse;padding:0px;cell-padding:0px;border-spacing:0px\">", titleBackColor)); sb.Append("<tr>"); sb.Append(string.Format("<td><img src=\"{0}\" /></td>", OrderStatusIconPath.Get(_order))); // icon. sb.Append(string.Format("<td width=165px style={0}>订单编号: <a href='http://trade.taobao.com/trade/detail/trade_item_detail.htm?bizOrderId={1}'>{1}</a></td>", normalTdStyleBottomAlign, _order.OrderId)); // order id. sb.Append("<td width=16px><input type=\"button\" id=\"btnConsignDe\" style=\"background-color:green;width:15px;height:15px\" /></td>"); sb.Append("<td width=16px><input type=\"button\" id=\"btnConsignSh\" style=\"background-color:red;width:15px;height:15px\" /></td>"); sb.Append("<td width=16></td>"); sb.Append(string.Format("<td width=180px style={0}>成交时间: <font color=#404040>{1}</font></td>", normalTdStyleBottomAlign, _order.DealTime.ToString("yyyy-MM-dd HH:ss:mm"))); sb.Append("<td width=16></td>"); sb.Append(string.Format("<td width=180px style={0}>付款时间: <font color=#404040>{1}</font></td>", normalTdStyleBottomAlign, _order.PayingTime.ToString("yyyy-MM-dd HH:ss:mm"))); sb.Append("<td width=16></td>"); sb.Append(string.Format("<td width=180 style={0}>买家账号: <a id=\"linkBuyerAccount\" href=\"buyer?{1}\">{1}</a><font color={3}>({2})</font></td>", normalTdStyleBottomAlign, _order.BuyerAccount, _buyerOrderCount, _buyerOrderCount > 1 ? "a448a4" : "#404040")); sb.Append("<td width=16></td>"); sb.Append(string.Format("<td style={0}>金额: <font style=\"font-size:14px;color=#ff4000\"><strong>{1}</strong></font><font color=#404040>({2})</font></td>", normalTdStyleBottomAlign, _order.TotalMoney.ToString("0.00"), _order.Freight.ToString("0.00"))); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("</td></tr>"); sb.Append("<tr><td>"); sb.Append(string.Format("<table width=100% style=\"border-collapse:collapse;padding:0px;cell-padding:0px;border-spacing:0px;\">", titleBackColor)); sb.Append("<tr>"); if (!string.IsNullOrEmpty(_order.BuyerRemark)) { sb.Append("<td width=17></td>"); sb.Append(string.Format("<td width=55px style={0}>买家留言:</td>", normalTdStyleAlighRight)); sb.Append(string.Format("<td style={0}>{1}</td>", contentRedStyle, _order.BuyerRemark)); } sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td width=17></td>"); sb.Append(string.Format("<td width=55px style={0}>客服备注:</td>", normalTdStyleAlighRight)); sb.Append(string.Format("<td style={0}>{1}</td>", contentTdStyle, _order.Remark)); sb.Append("</tr>"); string fullAddress = _order.GetFullAddress(); sb.Append("<tr>"); sb.Append("<td width=17></td>"); sb.Append(string.Format("<td width=55px style={0}>收货地址:</td>", normalTdStyleAlighRight)); sb.Append(string.Format("<td style={0}>{1}</td>", contentTdStyle, fullAddress)); sb.Append("</tr>"); //if (string.IsNullOrEmpty(_order.EditedRecipientAddress)) //{ // sb.Append("<tr>"); // sb.Append("<td width=17></td>"); // sb.Append(string.Format("<td width=55px style={0}>拼音地址:</td>", normalTdStyleAlighRight)); // sb.Append(string.Format("<td width={2}px style={0}>{1}</td>", contentTdStyle, HanZiToPinYin.Convert(fullAddress.Substring(0, fullAddress.Length - 8)) + HanZiToPinYin.Convert(fullAddress.Substring(0, fullAddress.Length - 8)).Length.ToString(), this.Width - 100)); // sb.Append("</tr>"); //} if (!string.IsNullOrEmpty(_order.EditedRecipientAddress)) { sb.Append("<tr>"); sb.Append("<td width=17></td>"); sb.Append(string.Format("<td width=55px style={0}>新地址:</td>", normalTdStyleAlighRight)); sb.Append(string.Format("<td style={0}><font color={1}>{2}</font> ", contentRedStyle, _refreshedEditedAddr ? "#008000" : "#404040", _order.EditedRecipientAddress)); sb.Append(string.Format("<input style={0} type=\"button\" id=\"btnGetFullEditedAddr\" value=\"\" style=\"background-color:#0080ff;width:30px;height:18px\" /></td>", contentSmallTextStyle)); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td width=17></td>"); sb.Append(string.Format("<td width=55px style={0}>商品列表:</td>", normalTdStyleAlighRight)); sb.Append(string.Format("<td width={1}px style={0}>", contentTdStyle, this.Width - 100)); sb.Append("<table width=100% style=\"border-collapse:collapse;padding:0px;cell-padding:0px;border-spacing:0px\">"); // items. string[] items = _order.Items.Split('★'); for (int i = 0; i < items.Length; i++) { string item = items[i]; string[] infos = item.Split('☆'); if (infos.Length < 3) { continue; } if (string.IsNullOrEmpty(infos[0])) { Trace.WriteLine("null product found!!!"); } OrderParser.Order.OrderStatus status = Order.OrderStatus.Succeeded; if (infos.Length >= 4) { status = ((Order.OrderStatus)Enum.Parse(typeof(Order.OrderStatus), infos[3])); } sb.Append("<tr>"); sb.Append(string.Format( "<td width=520px style={3}><font color={4}>{0}</font> <font color={2}>({1})</font></td>", infos[0], GetStautsDesc(status), GetStatusDescColor(status), normalTdStyle, status == Order.OrderStatus.Closed ? "#d0d0d0" : "#4169e1")); sb.Append(string.Format("<td width=60px style={1}><font color=#ff4000>{0}</font></td>", float.Parse(infos[1]).ToString("0.00"), normalTdStyle)); sb.Append(string.Format("<td style={1}><font color=#606060><strong>{0}</strong></font></td>", int.Parse(infos[2]), normalTdStyle)); sb.Append("</tr>"); productList.AddProduct( //Order.SimplifyItemSubject(infos[0]), infos[0], float.Parse(infos[1]), int.Parse(infos[2]), status); } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("</td></tr>"); sb.Append("</table></span>"); sb.Append("</body>"); wb.DocumentText = sb.ToString(); int height = 69; if (!string.IsNullOrEmpty(_order.EditedRecipientAddress)) { height += 19; } if (!string.IsNullOrEmpty(_order.BuyerRemark)) { height += 19; } height += 19 * (items.Length - 1); wb.Height = height; this.Height = wb.Height + this.Padding.Bottom; }