Exemplo n.º 1
0
        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("");
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        // 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;
        }