package com.jcommerce.gwt.client.panels.orders; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.extjs.gxt.ui.client.Style.HorizontalAlignment; import com.extjs.gxt.ui.client.widget.ContentPanel; import com.google.gwt.user.client.ui.TextBox; import com.jcommerce.gwt.client.ModelNames; import com.jcommerce.gwt.client.form.BeanObject; import com.jcommerce.gwt.client.model.ICard; import com.jcommerce.gwt.client.model.IOrder; import com.jcommerce.gwt.client.model.IPack; import com.jcommerce.gwt.client.model.IPayment; import com.jcommerce.gwt.client.widgets.ColumnPanel; public class CostSettingPanel extends ContentPanel{ private BeanObject user = new BeanObject(ModelNames.USER); private BeanObject userAddress = new BeanObject(); private List<BeanObject> orderGoodsList = new ArrayList<BeanObject>(); private BeanObject card = new BeanObject(ModelNames.CARD); private BeanObject pack = new BeanObject(ModelNames.PACK); private BeanObject order = new BeanObject(ModelNames.ORDER); private Map<String, Object> orderOtherInfoMap; private Map<String, Object> orderUserAddressMap; private BeanObject payments = new BeanObject(ModelNames.PAYMENT); private double goodsFee; private double cardFee; private double packFee; private TextBox goodsPaid = new TextBox(); private TextBox cardFeeBox = new TextBox(); private TextBox packFeeBox = new TextBox(); // private Label surplus = new Label(); private TextBox integral = new TextBox(); private TextBox toBuyer = new TextBox(); private TextBox moneyPaid = new TextBox(); private TextBox payFeeBox = new TextBox(); private TextBox discount = new TextBox(); private ColumnPanel contentPanel = new ColumnPanel(); public CostSettingPanel() { ContentPanel panel = new ContentPanel(); goodsPaid.setWidth("100px"); goodsPaid.setReadOnly(true); contentPanel.createPanel(IOrder.PAYNOTE, "商品总金额:", goodsPaid); TextBox tax = new TextBox(); tax.setWidth("100px"); tax.setEnabled(true); tax.setText("0.00"); contentPanel.createPanel(IOrder.TAX, "发票税额:", tax); TextBox shippingFee = new TextBox(); shippingFee.setWidth("100px"); shippingFee.setEnabled(true); shippingFee.setText("0.00"); contentPanel.createPanel(IOrder.SHIPPINGFEE, "配送费用:", shippingFee); TextBox insureFee = new TextBox(); insureFee.setWidth("100px"); insureFee.setEnabled(true); insureFee.setText("0.00"); contentPanel.createPanel(IOrder.INSUREFEE, "保价费用:", insureFee); payFeeBox.setWidth("100px"); payFeeBox.setEnabled(true); payFeeBox.setText("0.00"); contentPanel.createPanel(IOrder.PAYFEE, "支付费用:", payFeeBox); packFeeBox.setWidth("100px"); packFeeBox.setEnabled(true); contentPanel.createPanel(IOrder.PACKFEE, "包装费用:", packFeeBox); cardFeeBox.setWidth("100px"); cardFeeBox.setEnabled(true); contentPanel.createPanel(IOrder.CARDFEE, "贺卡费用:", cardFeeBox); discount.setWidth("100px"); discount.setEnabled(true); contentPanel.createPanel(IOrder.DISCOUNT, "折扣:", discount); // TextBox ordersPaid = new TextBox(); // ordersPaid.setWidth("100px"); // ordersPaid.setEnabled(true); // contentPanel.createPanel("ordersPaid", "订单总金额:", ordersPaid); // // TextBox paidAccount = new TextBox(); // paidAccount.setWidth("100px"); // paidAccount.setEnabled(true); // contentPanel.createPanel("paidAccount", "已付款金额:", paidAccount); // surplus.setWidth("100px"); // shippingFee.setText("0.00"); // contentPanel.createPanel(IOrder.SURPLUS, "使用余额:", surplus); // // // integral.setWidth("100px"); // contentPanel.createPanel(IOrder.INTEGRAL, "使用积分:", integral); // toBuyer.setWidth("100px"); // shippingFee.setText("0.00"); // contentPanel.createPanel(IOrder.TOBUYER, "使用红包:", toBuyer); moneyPaid.setReadOnly(true); moneyPaid.setWidth("100px"); contentPanel.createPanel(IOrder.MONEYPAID, "应付款金额:", moneyPaid); panel.setFrame(true); panel.setCollapsible(true); panel.setButtonAlign(HorizontalAlignment.CENTER); panel.setIconStyle("icon-table"); panel.setButtonAlign(HorizontalAlignment.CENTER); panel.add(contentPanel); this.setHeading("设置费用"); this.setSize(780, 555); this.add(panel); } public void calculatePrice() { // for(int i=0; i<orderGoodsList.size(); i++) // { // BeanObject orderGoods = orderGoodsList.get(i); // goodsFee += Double.parseDouble((orderGoods.getString(IOrderGoods.MARKETPRICE))); // } goodsFee = Double.parseDouble(order.getString(IOrder.PAYNOTE)); goodsPaid.setText("¥ " + goodsFee + " 元"); if(goodsFee > Double.parseDouble(card.getString(ICard.FREEMONEY))) { cardFee = 0.0; } else { cardFee = Double.parseDouble(card.getString(ICard.FEE)); } if(goodsFee > Double.parseDouble(pack.getString(IPack.FREEMONEY))) { packFee = 0.0; } else { packFee = Double.parseDouble(pack.getString(IPack.FEE)); } double pay = Double.parseDouble(payments.getString(IPayment.FEE)); double payFee = pay*goodsFee/100; payFeeBox.setText(pay*goodsFee/100 + ""); cardFeeBox.setText(cardFee + ""); packFeeBox.setText(packFee + ""); discount.setText(order.getString(IOrder.DISCOUNT)); double discountDouble =0 ; if(order.getString(IOrder.DISCOUNT) !=null) { discountDouble = Double.parseDouble(order.getString(IOrder.DISCOUNT)); } double sumFee = goodsFee*(100-discountDouble)/100 + cardFee + packFee + payFee; moneyPaid.setText("¥ " + sumFee + " 元"); } public void setUser(BeanObject user) { this.user = user; } public void setUserAddress(BeanObject userAddress) { this.userAddress = userAddress; } public void setOrderGoods(List<BeanObject> orderGoods) { this.orderGoodsList = orderGoods; } public void setCard(BeanObject card) { this.card = card; } public void setPack(BeanObject pack) { this.pack = pack; } public void setOrderOtherInfo(Map<String, Object> orderInfo) { this.orderOtherInfoMap = orderInfo; } public void setOrderAddressMap(Map<String, Object> orderUserAddressMap) { this.orderUserAddressMap = orderUserAddressMap; } public BeanObject getOrder() { Map<String, Object> orderInfoMap = contentPanel.getValues(); orderInfoMap.remove("ordersPaid"); orderInfoMap.remove("paidAccount"); order.setValues(orderInfoMap); return order; } public void setOrder(BeanObject order) { this.order = order; } public void setPayments(BeanObject payments) { this.payments = payments; } }