package com.jcommerce.gwt.client.panels.order;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.data.BasePagingLoader;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.store.StoreEvent;
import com.extjs.gxt.ui.client.store.StoreListener;
import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
import com.extjs.gxt.ui.client.widget.Label;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.TextArea;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HTML;
import com.jcommerce.gwt.client.ContentWidget;
import com.jcommerce.gwt.client.ModelNames;
import com.jcommerce.gwt.client.PageState;
import com.jcommerce.gwt.client.form.BeanObject;
import com.jcommerce.gwt.client.model.IAdminUser;
import com.jcommerce.gwt.client.model.IOrderAction;
import com.jcommerce.gwt.client.model.IOrderGoods;
import com.jcommerce.gwt.client.model.IOrderInfo;
import com.jcommerce.gwt.client.model.IRegion;
import com.jcommerce.gwt.client.model.IUser;
import com.jcommerce.gwt.client.panels.system.Success;
import com.jcommerce.gwt.client.resources.Resources;
import com.jcommerce.gwt.client.service.Condition;
import com.jcommerce.gwt.client.service.CreateService;
import com.jcommerce.gwt.client.service.Criteria;
import com.jcommerce.gwt.client.service.DeleteService;
import com.jcommerce.gwt.client.service.ListService;
import com.jcommerce.gwt.client.service.PagingListService;
import com.jcommerce.gwt.client.service.ReadService;
import com.jcommerce.gwt.client.service.RegionService;
import com.jcommerce.gwt.client.service.RemoteService;
import com.jcommerce.gwt.client.service.UpdateService;
import com.jcommerce.gwt.client.service.WaitService;
import com.jcommerce.gwt.client.util.MyRpcProxy;
import com.jcommerce.gwt.client.widgets.MyContentPanel;
import com.jcommerce.gwt.client.widgets.OrderStateCellRenderer;
import com.jcommerce.gwt.client.widgets.TimeCellRenderer;
import com.jcommerce.gwt.client.widgets.TotalPriceCellRenderer;
public class OrderDetailPanel extends ContentWidget{
public static interface Constants {
String OrderDetail_title();
String OrderDetail_baseInfo();
String OrderDetail_otherInfo();
String OrderDetail_consigneeInfo();
String OrderDetail_goodsInfo();
String OrderDetail_feeInfo();
String OrderDetail_operationInfo();
String OrderDetail_edit();
String OrderDetail_payTime();
String OrderDetail_shippingTime();
String OrderDetail_bestTime();
String OrderDetail_building();
String OrderDetail_price();
String OrderDetail_goodsNum();
String OrderDetail_goodsAttr();
String OrderDetail_totalPrice();
String OrderDetail_subTotalPrice();
String OrderDetail_invoiceNo();
String OrderDetail_referer();
String OrderDetail_goodsAmount();
String OrderDetail_payFee();
String OrderDetail_shippingFee();
String OrderDetail_insuranceFee();
String OrderDetail_orderAmount();
String OrderDetail_moneyPaid();
String OrderDetail_surplus();
String OrderDetail_moneyShouldPay();
String OrderDetail_selfSite();
String OrderDetail_operationRemark();
String OrderDetail_operableAction();
String OrderDetail_comfirm();
String OrderDetail_pay();
String OrderDetail_unpay();
String OrderDetail_prepare();
String OrderDetail_ship();
String OrderDetail_unship();
String OrderDetail_receive();
String OrderDetail_cancel();
String OrderDetail_invalid();
String OrderDetail_return();
String OrderDetail_remove();
String OrderDetail_actionUser();
String OrderDetail_logTime();
String OrderDetail_orderStatus();
String OrderDetail_payStatus();
String OrderDetail_shippingStatus();
String OrderDetail_actionNote();
String OrderDetail_operateSuccessfully();
String OrderDetail_invalidOperation();
String OrderDetail_orderNotExist();
String OrderDetail_modifyWrong();
String OrderDetail_anonymousUser();
String OrderDetail_orderAmountIncrease();
String OrderDetail_orderAmountDecrease();
String OrderDetail_refund();
String OrderDetail_moneyShouldRefund();
}
private static OrderDetailPanel instance = null;
protected State getCurState() {
return (State)curState;
}
@Override
public String getDescription() {
return "cwBasicTextDescription";
}
@Override
public String getName() {
return Resources.constants.OrderDetail_title();
}
public Button getShortCutButton() {
Button buttonOrderList = new Button(Resources.constants.OrderList_title());
buttonOrderList.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
onButtonListClicked();
}
});
return buttonOrderList;
}
public void onButtonListClicked() {
OrderListPanel.State newState = new OrderListPanel.State();
newState.execute();
}
public OrderDetailPanel() {
curState = new State();
}
public static OrderDetailPanel getInstance(){
if (instance == null) {
instance = new OrderDetailPanel();
}
return instance;
}
public static class State extends PageState {
public static final String PK_ID = "pkId";
@Override
public String getPageClassName() {
return OrderDetailPanel.class.getName();
}
@Override
public String getMenuDisplayName() {
return Resources.constants.OrderDetail_title();
}
public void setId(String gtid) {
setValue(PK_ID, gtid);
}
public String getPkId() {
return (String)getValue(PK_ID);
}
}
ContentPanel basePanel = new ContentPanel();
MyContentPanel consigneePanel = new MyContentPanel();
MyContentPanel goodsPanel = new MyContentPanel();
MyContentPanel feePanel = new MyContentPanel();
ContentPanel operationPanel = new ContentPanel();
Button btnEditFee ;
Button btnEditConsignee;
Button btnEditGoods;
@Override
protected void onRender(Element parent, int index) {
super.onRender(parent, index);
basePanel.setHeading(Resources.constants.OrderDetail_baseInfo());
renderBasePanel();
add(basePanel);
btnEditConsignee = new Button(Resources.constants.OrderDetail_edit());
consigneePanel.setHeading(Resources.constants.OrderDetail_consigneeInfo(), btnEditConsignee);
renderConsigneePanel();
add(consigneePanel);
btnEditGoods = new Button(Resources.constants.OrderDetail_edit());
goodsPanel.setHeading(Resources.constants.OrderDetail_goodsInfo(), btnEditGoods);
renderGoodsPanel();
add(goodsPanel);
btnEditFee = new Button(Resources.constants.OrderDetail_edit());
feePanel.setHeading(Resources.constants.OrderDetail_feeInfo(), btnEditFee);
renderFeePanel();
add(feePanel);
operationPanel.setFrame(true);
operationPanel.setCollapsible(true);
operationPanel.setAnimCollapse(false);
operationPanel.setButtonAlign(HorizontalAlignment.CENTER);
operationPanel.setIconStyle("icon-table");
// operationPanel.setLayout(new FitLayout());
// operationPanel.setHeight(300);
// operationPanel.setWidth("100%");
operationPanel.setHeading(Resources.constants.OrderDetail_operationInfo());
renderOperationPanel();
add(operationPanel);
}
Label snLabel = new Label("");
Label stateLabel = new Label("");
Label buyerLabel = new Label("");
Label addTimeLabel = new Label("");
Label payMannerLabel = new Label("");
Label payTimeLabel = new Label("");
Label shippingMannerLabel = new Label("");
Label shippingTimeLabel = new Label("");
Label invoiceNoLabel = new Label("");
Label refererLabel = new Label("");
Button btnEditPay;
Button btnEditShipping;
private void renderBasePanel() {
HorizontalPanel ssPanel = new HorizontalPanel();
HorizontalPanel snPanel = getPanel(Resources.constants.OrderList_orderSN(), snLabel);
HorizontalPanel statePanel = getPanel(Resources.constants.OrderList_state(), stateLabel);
ssPanel.add(snPanel);
ssPanel.add(statePanel);
basePanel.add(ssPanel);
HorizontalPanel btPanel = new HorizontalPanel();
HorizontalPanel buyerPanel = getPanel(Resources.constants.SearchOrder_buyer(), buyerLabel);
HorizontalPanel addTimePanel = getPanel(Resources.constants.OrderList_addTime(), addTimeLabel);
btPanel.add(buyerPanel);
btPanel.add(addTimePanel);
basePanel.add(btPanel);
HorizontalPanel ptPanel = new HorizontalPanel();
HorizontalPanel payMannerPanel = getPanel(Resources.constants.SearchOrder_payManner(), payMannerLabel);
btnEditPay = new Button(Resources.constants.OrderDetail_edit());
payMannerPanel.add(btnEditPay);
HorizontalPanel payTimePanel = getPanel(Resources.constants.OrderDetail_payTime(), payTimeLabel);
ptPanel.add(payMannerPanel);
ptPanel.add(payTimePanel);
basePanel.add(ptPanel);
HorizontalPanel stPanel = new HorizontalPanel();
HorizontalPanel shippingMannerPanel = getPanel(Resources.constants.SearchOrder_shipManner(), shippingMannerLabel);
btnEditShipping = new Button(Resources.constants.OrderDetail_edit());
shippingMannerPanel.add(btnEditShipping);
HorizontalPanel shippingTimePanel = getPanel(Resources.constants.OrderDetail_shippingTime(), shippingTimeLabel);
stPanel.add(shippingMannerPanel);
stPanel.add(shippingTimePanel);
basePanel.add(stPanel);
HorizontalPanel irPanel = new HorizontalPanel();
HorizontalPanel invoiceNoPanel = getPanel(Resources.constants.OrderDetail_invoiceNo(), invoiceNoLabel);
HorizontalPanel refererPanel = getPanel(Resources.constants.OrderDetail_referer(), refererLabel);
irPanel.add(invoiceNoPanel);
irPanel.add(refererPanel);
basePanel.add(irPanel);
}
Label consigneeLabel = new Label("");
Label emailLabel = new Label("");
Label addressLabel = new Label("");
Label zipcodeLabel = new Label("");
Label telLabel = new Label("");
Label mobileLabel = new Label("");
Label buildingLabel = new Label("");
Label bestTimeLabel = new Label("");
private void renderConsigneePanel() {
HorizontalPanel cePanel = new HorizontalPanel();
HorizontalPanel conPanel = getPanel(Resources.constants.OrderList_consignee(), consigneeLabel);
HorizontalPanel emailPanel = getPanel(Resources.constants.SearchOrder_email(), emailLabel);
cePanel.add(conPanel);
cePanel.add(emailPanel);
consigneePanel.add(cePanel);
HorizontalPanel azPanel = new HorizontalPanel();
HorizontalPanel addressPanel = getPanel(Resources.constants.SearchOrder_address(), addressLabel);
HorizontalPanel zipcodePanel = getPanel(Resources.constants.SearchOrder_zipcode(), zipcodeLabel);
azPanel.add(addressPanel);
azPanel.add(zipcodePanel);
consigneePanel.add(azPanel);
HorizontalPanel tmPanel = new HorizontalPanel();
HorizontalPanel telPanel = getPanel(Resources.constants.SearchOrder_phone(), telLabel);
HorizontalPanel mobilePanel = getPanel(Resources.constants.SearchOrder_tel(), mobileLabel);
tmPanel.add(telPanel);
tmPanel.add(mobilePanel);
consigneePanel.add(tmPanel);
HorizontalPanel bbPanel = new HorizontalPanel();
HorizontalPanel buildingPanel = getPanel(Resources.constants.OrderDetail_building(), buildingLabel);
HorizontalPanel bestTimePanel = getPanel(Resources.constants.OrderDetail_bestTime(), bestTimeLabel);
bbPanel.add(buildingPanel);
bbPanel.add(bestTimePanel);
consigneePanel.add(bbPanel);
}
PagingToolBar goodsToolBar;
BasePagingLoader goodsLoader;
private void renderGoodsPanel() {
Criteria criteria = new Criteria();
criteria.addCondition(new Condition(IOrderGoods.ORDER, Condition.EQUALS, getCurState().getPkId()));
goodsLoader = new PagingListService().getLoader(ModelNames.ORDERGOODS, criteria);
final ListStore<BeanObject> store = new ListStore<BeanObject>(goodsLoader);
store.addStoreListener(new StoreListener<BeanObject>() {
public void storeDataChanged(StoreEvent<BeanObject> se) {
List<Component> items = goodsPanel.getItems();
for (Component item : items) {
item.repaint();
}
}
});
goodsToolBar = new PagingToolBar(10);
goodsToolBar.bind(goodsLoader);
List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
ColumnConfig colGoodsName = new ColumnConfig(IOrderGoods.GOODSNAME, Resources.constants.Goods_name(), 100);
columns.add(colGoodsName);
ColumnConfig colGoodsSN = new ColumnConfig(IOrderGoods.GOODSSN, Resources.constants.Goods_SN(), 150);
columns.add(colGoodsSN);
ColumnConfig colGoodsPrice = new ColumnConfig(IOrderGoods.GOODSPRICE, Resources.constants.OrderDetail_price(), 100);
columns.add(colGoodsPrice);
ColumnConfig colGoodsNum = new ColumnConfig(IOrderGoods.GOODSNUMBER, Resources.constants.OrderDetail_goodsNum(), 100);
columns.add(colGoodsNum);
ColumnConfig colGoodsAttr = new ColumnConfig(IOrderGoods.GOODSATTRIBUTE, Resources.constants.OrderDetail_goodsAttr(), 200);
columns.add(colGoodsAttr);
ColumnConfig colTotalPrice = new ColumnConfig("subtotal", Resources.constants.OrderDetail_subTotalPrice(), 100);
colTotalPrice.setRenderer(new TotalPriceCellRenderer());
columns.add(colTotalPrice);
ColumnModel cm = new ColumnModel(columns);
Grid<BeanObject> grid = new Grid<BeanObject>(store, cm);
grid.setLoadMask(true);
grid.setBorders(true);
grid.setAutoExpandColumn(IOrderGoods.GOODSNAME);
grid.setAutoHeight(true);
goodsPanel.setFrame(true);
goodsPanel.setLayout(new FitLayout());
goodsPanel.add(grid);
}
private HorizontalPanel getPanel(String label, Label dataLabel) {
HorizontalPanel hp = new HorizontalPanel();
HTML title = new HTML("<b>"+label + "</b>:");
title.setWidth("150");
hp.add(title);
hp.add(dataLabel);
hp.setWidth("500");
return hp;
}
Label goodsAmountLabel = new Label("");
Label shippingFeeLabel = new Label("");
Label insuranceFeeLabel = new Label("");
Label payFeeLabel = new Label("");
Label orderAmountLabel = new Label("");
Label moneyPaidLabel = new Label("");
Label surplusLabel = new Label("");
Label moneyShouldPayLabel = new Label("");
Label moneyShouldPayTitle = new Label("");
Button btnRefund = new Button(Resources.constants.OrderDetail_refund());
private void renderFeePanel() {
HorizontalPanel calculateTotalAmountPanel = new HorizontalPanel();
calculateTotalAmountPanel.add(new Label(Resources.constants.OrderDetail_goodsAmount() + ":"));
calculateTotalAmountPanel.add(goodsAmountLabel);
calculateTotalAmountPanel.add(new Label("+" + Resources.constants.OrderDetail_shippingFee() + ":"));
calculateTotalAmountPanel.add(shippingFeeLabel);
calculateTotalAmountPanel.add(new Label("+" + Resources.constants.OrderDetail_insuranceFee() + ":"));
calculateTotalAmountPanel.add(insuranceFeeLabel);
calculateTotalAmountPanel.add(new Label("+" + Resources.constants.OrderDetail_payFee() + ":"));
calculateTotalAmountPanel.add(payFeeLabel);
feePanel.add(calculateTotalAmountPanel);
HorizontalPanel totalAmountPanel = new HorizontalPanel();
totalAmountPanel.add(new Label("=" + Resources.constants.OrderDetail_orderAmount() + ":"));
totalAmountPanel.add(orderAmountLabel);
feePanel.add(totalAmountPanel);
HorizontalPanel calculateOrderAmountPanel = new HorizontalPanel();
calculateOrderAmountPanel.add(new Label("-" + Resources.constants.OrderDetail_moneyPaid() + ":"));
calculateOrderAmountPanel.add(moneyPaidLabel);
calculateOrderAmountPanel.add(new Label("-" + Resources.constants.OrderDetail_surplus() + ":"));
calculateOrderAmountPanel.add(surplusLabel);
feePanel.add(calculateOrderAmountPanel);
HorizontalPanel orderAmountPanel = new HorizontalPanel();
orderAmountPanel.add(moneyShouldPayTitle);
orderAmountPanel.add(moneyShouldPayLabel);
orderAmountPanel.add(btnRefund);
feePanel.add(orderAmountPanel);
}
TextArea remarkArea = new TextArea();
HorizontalPanel buttonPanel = new HorizontalPanel();
PagingToolBar operationToolBar;
BasePagingLoader operationLoader;
private void renderOperationPanel() {
HorizontalPanel remarkPanel = new HorizontalPanel();
Label remarkLabel = new Label(Resources.constants.OrderDetail_operationRemark());
remarkLabel.setWidth("150");
remarkPanel.add(remarkLabel);
remarkArea.setWidth("700");
remarkArea.setStyleAttribute("margin", "2 0 0 0");
remarkPanel.add(remarkArea);
operationPanel.add(remarkPanel);
Label operableLabel = new Label(Resources.constants.OrderDetail_operableAction());
operableLabel.setWidth("150");
buttonPanel.add(operableLabel);
initOperableMap();
for(Object key : operableMap.keySet()) {
Button button = new Button((String)key);
button.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
changeOrderState(ce);
}
});
button.setId((String)key);
button.setVisible(operableMap.get(key));
buttonPanel.add(button);
}
Button button = new Button(Resources.constants.OrderList_title());
button.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
OrderListPanel.State state = new OrderListPanel.State();
state.execute();
}
});
buttonPanel.add(button);
operationPanel.add(buttonPanel);
//取得订单操作记录
Criteria criteria = new Criteria();
criteria.addCondition(new Condition(IOrderAction.ORDER, Condition.EQUALS, getCurState().getPkId()));
operationLoader = new PagingListService().getLoader(ModelNames.ORDERACTION, criteria);
final ListStore<BeanObject> store = new ListStore<BeanObject>(operationLoader);
store.addStoreListener(new StoreListener<BeanObject>() {
public void storeDataChanged(StoreEvent<BeanObject> se) {
List<Component> items = operationPanel.getItems();
for (Component item : items) {
item.repaint();
}
}
});
operationToolBar = new PagingToolBar(10);
operationToolBar.bind(operationLoader);
List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
ColumnConfig colActionUser = new ColumnConfig(IOrderAction.ACTIONUSER, Resources.constants.OrderDetail_actionUser(), 100);
columns.add(colActionUser);
ColumnConfig colLogTime = new ColumnConfig(IOrderAction.LOGTIME, Resources.constants.OrderDetail_logTime(), 150);
columns.add(colLogTime);
ColumnConfig colOrderStatus = new ColumnConfig(IOrderAction.ORDERSTATUS, Resources.constants.OrderDetail_orderStatus(), 100);
columns.add(colOrderStatus);
ColumnConfig colPayStatus = new ColumnConfig(IOrderAction.PAYSTATUS, Resources.constants.OrderDetail_payStatus(), 100);
columns.add(colPayStatus);
ColumnConfig colShippingStatus = new ColumnConfig(IOrderAction.SHIPPINGSTATUS, Resources.constants.OrderDetail_shippingStatus(), 100);
columns.add(colShippingStatus);
ColumnConfig colNote = new ColumnConfig(IOrderAction.NOTE, Resources.constants.OrderDetail_actionNote(), 100);
columns.add(colNote);
ColumnModel cm = new ColumnModel(columns);
Grid<BeanObject> grid = new Grid<BeanObject>(store, cm);
grid.setLoadMask(true);
grid.setBorders(true);
grid.setAutoExpandColumn(IOrderAction.NOTE);
grid.setAutoHeight(true);
colLogTime.setRenderer(new TimeCellRenderer());
colOrderStatus.setRenderer(new OrderStateCellRenderer("os"));
colPayStatus.setRenderer(new OrderStateCellRenderer("ps"));
colShippingStatus.setRenderer(new OrderStateCellRenderer("ss"));
operationPanel.setAnimCollapse(false);
operationPanel.setLayout(new FitLayout());
operationPanel.add(grid);
operationPanel.setBottomComponent(operationToolBar);
}
private void initOperableMap() {
operableMap.put(Resources.constants.OrderDetail_comfirm(), false);
operableMap.put(Resources.constants.OrderDetail_pay(), false);
operableMap.put(Resources.constants.OrderDetail_unpay(), false);
operableMap.put(Resources.constants.OrderDetail_prepare(), false);
operableMap.put(Resources.constants.OrderDetail_ship(), false);
operableMap.put(Resources.constants.OrderDetail_unship(), false);
operableMap.put(Resources.constants.OrderDetail_receive(), false);
operableMap.put(Resources.constants.OrderDetail_cancel(), false);
operableMap.put(Resources.constants.OrderDetail_invalid(), false);
operableMap.put(Resources.constants.OrderDetail_return(), false);
operableMap.put(Resources.constants.OrderDetail_remove(), false);
}
protected void changeOrderState(ButtonEvent ce) {
Button sourceButton = ce.getButton();
final String id = sourceButton.getId();
new ReadService().getBean(ModelNames.ORDER, getCurState().getPkId(), new ReadService.Listener() {
public void onSuccess(BeanObject orderInfo) {
if(orderInfo == null) {
Success.State newState = new Success.State();
newState.setMessage(Resources.constants.OrderDetail_orderNotExist());
OrderListPanel.State choice1 = new OrderListPanel.State();
newState.addChoice(OrderListPanel.getInstance().getName(), choice1);
newState.execute();
}
else {
String orderId = orderInfo.get(IOrderInfo.ID);
//取得可操作列表,判断是否可操作
getList(((Number)orderInfo.get(IOrderInfo.ORDER_STATUS)).intValue(), ((Number)orderInfo.get(IOrderInfo.PAY_STATUS)).intValue(), ((Number)orderInfo.get(IOrderInfo.SHIPPING_STATUS)).intValue());
getOperableReady = false;
if(operableMap.get(id)){
String actionNote = remarkArea.getValue();
if(id.equals(Resources.constants.OrderDetail_comfirm())) {
orderInfo.set(IOrderInfo.ORDER_STATUS, IOrderInfo.OS_CONFIRMED);
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_cancel())) {
/*标记订单为取消,未付款*/
orderInfo.set(IOrderInfo.ORDER_STATUS, IOrderInfo.OS_CANCELED);
orderInfo.set(IOrderInfo.PAY_STATUS, IOrderInfo.PS_UNPAYED);
orderInfo.set(IOrderInfo.PAY_TIME, 0);
orderInfo.set(IOrderInfo.ORDER_AMOUNT, orderInfo.get(IOrderInfo.MONEY_PAID));
orderInfo.set(IOrderInfo.MONEY_PAID, 0);
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_invalid())) {
/* 标记订单为无效、未付款 */
orderInfo.set(IOrderInfo.ORDER_STATUS, IOrderInfo.OS_INVALID);
orderInfo.set(IOrderInfo.PAY_STATUS, IOrderInfo.PS_UNPAYED);
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_return())) {
/* 标记订单为退货、未付款、未发货 */
orderInfo.set(IOrderInfo.ORDER_STATUS, IOrderInfo.OS_RETURNED);
orderInfo.set(IOrderInfo.SHIPPING_STATUS, IOrderInfo.SS_UNSHIPPED);
orderInfo.set(IOrderInfo.INVOICE_NO, "");
orderInfo.set(IOrderInfo.PAY_STATUS, IOrderInfo.PS_UNPAYED);
orderInfo.set(IOrderInfo.PAY_TIME, 0);
orderInfo.set(IOrderInfo.ORDER_AMOUNT, orderInfo.get(IOrderInfo.MONEY_PAID));
orderInfo.set(IOrderInfo.MONEY_PAID, 0);
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_pay())) {
/* 标记订单为已确认、已付款,更新付款时间和已支付金额*/
long time = new Date().getTime();
orderInfo.set(IOrderInfo.PAY_STATUS, IOrderInfo.PS_PAYED);
orderInfo.set(IOrderInfo.PAY_TIME, time);
Double moneyPaid = orderInfo.get(IOrderInfo.MONEY_PAID);
Double orderAmount = orderInfo.get(IOrderInfo.ORDER_AMOUNT);
orderInfo.set(IOrderInfo.MONEY_PAID, moneyPaid + orderAmount);
orderInfo.set(IOrderInfo.ORDER_AMOUNT, 0);
if(!orderInfo.get(IOrderInfo.ORDER_STATUS).equals(IOrderInfo.OS_CONFIRMED)) {
orderInfo.set(IOrderInfo.ORDER_STATUS, IOrderInfo.OS_CONFIRMED);
orderInfo.set(IOrderInfo.CONFIRM_TIME, time);
}
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_unpay())) {
/* 标记订单为未付款,更新付款时间和已付款金额 */
orderInfo.set(IOrderInfo.PAY_STATUS, IOrderInfo.PS_UNPAYED);
orderInfo.set(IOrderInfo.PAY_TIME, 0);
orderInfo.set(IOrderInfo.ORDER_AMOUNT, orderInfo.get(IOrderInfo.MONEY_PAID));
orderInfo.set(IOrderInfo.MONEY_PAID, 0);
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_prepare())) {
/* 标记订单为已确认,配货中 */
if (!orderInfo.get(IOrderInfo.ORDER_STATUS).equals(IOrderInfo.OS_CONFIRMED))
{
orderInfo.set(IOrderInfo.ORDER_STATUS, IOrderInfo.OS_CONFIRMED);
orderInfo.set(IOrderInfo.CONFIRM_TIME, new Date().getTime());
}
orderInfo.set(IOrderInfo.SHIPPING_STATUS, IOrderInfo.SS_PREPARING);
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_receive())) {
orderInfo.set(IOrderInfo.SHIPPING_STATUS, IOrderInfo.SS_RECEIVED);
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_ship())) {
orderInfo.set(IOrderInfo.SHIPPING_STATUS, IOrderInfo.SS_SHIPPED);
orderInfo.set(IOrderInfo.SHIPPING_TIME, new Date().getTime());
//TODO修改订单商品
// Criteria c = new Criteria();
// c.addCondition(new Condition(IOrderGoods.ORDER_ID, Condition.EQUALS, (String) orderInfo.get(IOrderInfo.ID)));
// new ListService().listBeans(ModelNames.ORDERGOODS, c, new ListService.Listener() {
// public void onSuccess(List<BeanObject> beans) {
//
// }
// });
addOrderAction(orderId, orderInfo, actionNote);
}
else if(id.equals(Resources.constants.OrderDetail_unship())) {
/* 标记订单为“未发货”,更新发货时间 */
orderInfo.set(IOrderInfo.SHIPPING_STATUS, IOrderInfo.SS_UNSHIPPED);
orderInfo.set(IOrderInfo.SHIPPING_TIME, 0);
orderInfo.set(IOrderInfo.INVOICE_NO, "");
addOrderAction(orderId, orderInfo, actionNote);
}
else {
//删除订单
new DeleteService().deleteBean(ModelNames.ORDER, orderId, new DeleteService.Listener() {
public void onSuccess(Boolean success) {
gotoSuccessPanel(true);
}
});
//删除订单商品
Criteria c = new Criteria();
c.addCondition(new Condition(IOrderGoods.ORDER, Condition.EQUALS, getCurState().getPkId()));
new ListService().listBeans(ModelNames.ORDERGOODS, c, new ListService.Listener() {
public void onSuccess(List<BeanObject> beans) {
List<String> ids = new ArrayList<String>();
for(BeanObject bean : beans) {
ids.add((String) bean.get(IOrderGoods.ID));
}
new DeleteService().deleteBeans(ModelNames.ORDERGOODS, ids, null);
}
});
//删除订单操作
c.removeAll();
c.addCondition(new Condition(IOrderAction.ORDER, Condition.EQUALS, getCurState().getPkId()));
new ListService().listBeans(ModelNames.ORDERACTION, c, new ListService.Listener() {
public void onSuccess(List<BeanObject> beans) {
List<String> ids = new ArrayList<String>();
for(BeanObject bean : beans) {
ids.add((String) bean.get(IOrderAction.ID));
}
new DeleteService().deleteBeans(ModelNames.ORDERACTION, ids, null);
}
});
}
if(!id.equals(Resources.constants.OrderDetail_remove())) {
new UpdateService().updateBean((String) orderInfo.get(IOrderInfo.ID), orderInfo, new UpdateService.Listener() {
public void onSuccess(Boolean success) {
gotoSuccessPanel(false);
}
});
}
}
else {
Success.State newState = new Success.State();
newState.setMessage(Resources.constants.OrderDetail_invalidOperation());
OrderListPanel.State choice1 = new OrderListPanel.State();
newState.addChoice(OrderListPanel.getInstance().getName(), choice1);
newState.execute();
}
}
}
});
}
protected void addOrderAction(String orderId, BeanObject orderInfo, String actionNote) {
long logTime = new Date().getTime();
Map<String, Object> props = new HashMap<String, Object>();
props.put(IOrderAction.ORDER, orderId);
props.put(IOrderAction.ORDERSTATUS, orderInfo.get(IOrderInfo.ORDER_STATUS));
props.put(IOrderAction.PAYSTATUS, orderInfo.get(IOrderInfo.PAY_STATUS));
props.put(IOrderAction.SHIPPINGSTATUS, orderInfo.get(IOrderInfo.SHIPPING_STATUS));
props.put(IOrderAction.NOTE, actionNote == null ? "" : actionNote);
props.put(IOrderAction.LOGTIME, logTime);
props.put(IOrderAction.ACTIONUSER, adminUserName);
BeanObject form = new BeanObject(ModelNames.ORDERACTION, props);
new CreateService().createBean(form, null);
}
public void gotoSuccessPanel(boolean isDelete) {
Success.State newState = new Success.State();
newState.setMessage(Resources.constants.OrderDetail_operateSuccessfully());
if(isDelete) {
OrderListPanel.State choice1 = new OrderListPanel.State();
newState.addChoice(OrderListPanel.getInstance().getName(), choice1);
}
else {
OrderDetailPanel.State choice1 = new OrderDetailPanel.State();
choice1.setId(getCurState().getPkId());
newState.addChoice(OrderDetailPanel.getInstance().getName(), choice1);
}
newState.execute();
}
/**
* 返回某个订单可执行的操作列表,包括权限判断
* @return array 可执行的操作列表 confirm, pay, unpay, prepare, ship, unship, receive, cancel, invalid, return, remove
*/
Map<String, Boolean> operableMap = new HashMap<String, Boolean>();
boolean getOperableReady = false;
private void getOperableList() {
new WaitService(new WaitService.Job() {
public boolean isReady() {
if(orderStatus == -1 || payStatus == -1 || shippingStatus == -1) {
return false;
}
else {
return true;
}
}
public void run() {
getList(orderStatus, payStatus, shippingStatus);
}
});
}
protected void getList(int orderStatus, int payStatus, int shippingStatus) {
initOperableMap();
/* 状态:未确认 => 未付款、未发货 */
if(orderStatus == IOrderInfo.OS_UNCONFIRMED) {
operableMap.put(Resources.constants.OrderDetail_comfirm(), true); // 确认
operableMap.put(Resources.constants.OrderDetail_invalid(), true); // 无效
operableMap.put(Resources.constants.OrderDetail_cancel(), true); // 取消
//不是货到付款
operableMap.put(Resources.constants.OrderDetail_pay(), true); // 付款
}
/* 状态:已确认 */
else if(orderStatus == IOrderInfo.OS_CONFIRMED) {
/* 状态:已确认、未付款 */
if (payStatus == IOrderInfo.PS_UNPAYED)
{
/* 状态:已确认、未付款、未发货(或配货中) */
if (IOrderInfo.SS_UNSHIPPED == shippingStatus || IOrderInfo.SS_PREPARING == shippingStatus)
{
operableMap.put(Resources.constants.OrderDetail_cancel(), true); // 取消
operableMap.put(Resources.constants.OrderDetail_invalid(), true); // 无效
/* 不是货到付款 */
operableMap.put(Resources.constants.OrderDetail_pay(), true); // 付款
}
/* 状态:已确认、未付款、已发货或已收货 */
else
{
operableMap.put(Resources.constants.OrderDetail_pay(), true); // 付款
if (IOrderInfo.SS_SHIPPED == shippingStatus)
{
operableMap.put(Resources.constants.OrderDetail_receive(), true); // 收货确认
}
operableMap.put(Resources.constants.OrderDetail_unship(), true); // 设为未发货
operableMap.put(Resources.constants.OrderDetail_return(), true); // 退货
}
}
/* 状态:已确认、已付款和付款中 */
else
{
/* 状态:已确认、已付款和付款中、未发货(配货中) */
if (IOrderInfo.SS_UNSHIPPED == shippingStatus || IOrderInfo.SS_PREPARING == shippingStatus)
{
if (IOrderInfo.SS_UNSHIPPED == shippingStatus)
{
// operableList.add(Resources.constants.OrderDetail_prepare()); // 配货
operableMap.put(Resources.constants.OrderDetail_prepare(), true); // 配货
}
operableMap.put(Resources.constants.OrderDetail_ship(), true); // 发货
operableMap.put(Resources.constants.OrderDetail_unpay(), true); // 设为未付款
operableMap.put(Resources.constants.OrderDetail_cancel(), true); // 取消
}
/* 状态:已确认、已付款和付款中、已发货或已收货 */
else
{
if (IOrderInfo.SS_SHIPPED == shippingStatus)
{
operableMap.put(Resources.constants.OrderDetail_receive(), true); // 收货确认
}
operableMap.put(Resources.constants.OrderDetail_unship(), true); // 设为未发货
operableMap.put(Resources.constants.OrderDetail_return(), true); // 退货(包括退款)
}
}
}
/* 状态:取消 */
else if (IOrderInfo.OS_CANCELED == orderStatus) {
operableMap.put(Resources.constants.OrderDetail_comfirm(), true);
operableMap.put(Resources.constants.OrderDetail_remove(), true);
}
/* 状态:无效 */
else if (IOrderInfo.OS_INVALID == orderStatus) {
operableMap.put(Resources.constants.OrderDetail_comfirm(), true);
operableMap.put(Resources.constants.OrderDetail_remove(), true);
}
/* 状态:退货 */
else if (IOrderInfo.OS_RETURNED == orderStatus)
{
operableMap.put(Resources.constants.OrderDetail_comfirm(), true);
}
getOperableReady = true;
}
String adminUserName;
@Override
public void refresh() {
getOrderInfo();
refreshOperableAction();
MyRpcProxy goodsProxy = (MyRpcProxy)goodsLoader.getProxy();
Criteria criteria = new Criteria();
criteria.addCondition(new Condition(IOrderGoods.ORDER, Condition.EQUALS, getCurState().getPkId()));
goodsProxy.setCriteria(criteria);
goodsToolBar.refresh();
MyRpcProxy operationProxy = (MyRpcProxy)operationLoader.getProxy();
criteria.removeAll();
criteria.addCondition(new Condition(IOrderAction.ORDER, Condition.EQUALS, getCurState().getPkId()));
operationProxy.setCriteria(criteria);
operationToolBar.refresh();
btnRefund.setVisible(false);
//获得管理员用户名
RemoteService.getSpecialService().getAdminUserInfo(new AsyncCallback<Map<String,String>>(){
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
public void onSuccess(Map<String, String> result) {
adminUserName = result.get(IAdminUser.NAME);
}
});
}
private void refreshOperableAction() {
//获得可执行的操作列表]
getOperableList();
new WaitService(new WaitService.Job() {
public boolean isReady() {
if(!getOperableReady) {
return false;
}
else {
return true;
}
}
public void run() {
for(Object key : operableMap.keySet()) {
Button button = (Button) buttonPanel.getItemByItemId((String) key);
button.setVisible(operableMap.get(key));
}
getOperableReady = false;
}
});
}
//地址
int orderStatus;
int payStatus;
int shippingStatus;
private void getOrderInfo() {
String pkId = getCurState().getPkId();
Criteria criteria = new Criteria();
criteria.addCondition(new Condition(IOrderInfo.ID, Condition.EQUALS, pkId));
orderStatus = -1;
payStatus = -1;
shippingStatus = -1;
new ReadService().getBean(ModelNames.ORDER, pkId, new ReadService.Listener() {
public void onSuccess(final BeanObject bean) {
//基本信息
snLabel.setText((String) bean.get(IOrderInfo.ORDER_SN));
orderStatus = IOrderInfo.OS_UNCONFIRMED;
payStatus = IOrderInfo.PS_UNPAYED;
shippingStatus = IOrderInfo.SS_UNSHIPPED;
if (bean.get(IOrderInfo.ORDER_STATUS) != null) {
orderStatus = ((Number)bean.get(IOrderInfo.ORDER_STATUS)).intValue();
}
if (bean.get(IOrderInfo.SHIPPING_STATUS) != null) {
shippingStatus = ((Number)bean.get(IOrderInfo.SHIPPING_STATUS)).intValue();
}
if (bean.get(IOrderInfo.PAY_STATUS) != null) {
payStatus = ((Number)bean.get(IOrderInfo.PAY_STATUS)).intValue();
}
stateLabel.setText(getState(orderStatus, payStatus, shippingStatus));
final String userId = bean.get(IOrderInfo.USER_ID);
btnEditFee.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
if(((Number)bean.get(IOrderInfo.SHIPPING_STATUS)).intValue() == IOrderInfo.SS_SHIPPED) {
gotoFailPage();
}
else {
OrderFeePanel.State newState = new OrderFeePanel.State();
newState.setId(getCurState().getPkId());
newState.setUserId(userId);
newState.setIsEdit(true);
newState.execute();
}
}
});
btnEditPay.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
if(((Number)bean.get(IOrderInfo.SHIPPING_STATUS)).intValue() == IOrderInfo.SS_SHIPPED) {
gotoFailPage();
}
else {
OrderPayPanel.State newState = new OrderPayPanel.State();
newState.setId(getCurState().getPkId());
newState.setIsEdit(true);
newState.execute();
}
}
});
btnEditShipping.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
if(((Number)bean.get(IOrderInfo.SHIPPING_STATUS)).intValue() == IOrderInfo.SS_SHIPPED) {
gotoFailPage();
}
else {
OrderShippingPanel.State newState = new OrderShippingPanel.State();
newState.setId(getCurState().getPkId());
newState.setIsEdit(true);
newState.execute();
}
}
});
btnEditConsignee.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
if(((Number)bean.get(IOrderInfo.SHIPPING_STATUS)).intValue() == IOrderInfo.SS_SHIPPED) {
gotoFailPage();
}
else {
ConsigneePanel.State newState = new ConsigneePanel.State();
newState.setId(getCurState().getPkId());
newState.setUserId(userId);
newState.setIsEdit(true);
newState.execute();
}
}
});
btnEditGoods.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
if(((Number)bean.get(IOrderInfo.SHIPPING_STATUS)).intValue() == IOrderInfo.SS_SHIPPED) {
gotoFailPage();
}
else {
OrderGoodsPanel.State newState = new OrderGoodsPanel.State();
newState.setId(getCurState().getPkId());
newState.setIsEdit(true);
newState.execute();
}
}
});
btnRefund.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
double orderAmount = (Double)bean.get(IOrderInfo.ORDER_AMOUNT);
double moneyPaid = (Double)bean.get(IOrderInfo.MONEY_PAID);
moneyPaid += orderAmount;
bean.set(IOrderInfo.MONEY_PAID, moneyPaid);
bean.set(IOrderInfo.ORDER_AMOUNT, 0);
new UpdateService().updateBean((String)bean.get(IOrderInfo.ID), bean, new UpdateService.Listener() {
public void onSuccess(Boolean success) {
gotoSuccessPanel(false);
}
});
}
});
if(userId == null) {
buyerLabel.setText(Resources.constants.OrderDetail_anonymousUser());
}
else {
new ReadService().getBean(ModelNames.USER, userId, new ReadService.Listener() {
public void onSuccess(BeanObject bean) {
buyerLabel.setText((String) bean.get(IUser.NAME));
}
});
}
Long addTime = bean.get(IOrderInfo.ADD_TIME);
addTimeLabel.setText(formatTime(addTime));
payMannerLabel.setText((String) bean.get(IOrderInfo.PAY_NAME));
if(payStatus != IOrderInfo.PS_PAYED) {
payTimeLabel.setText(Resources.constants.OrderStatus_PS_UNPAYED());
} else {
Long payTime = bean.get(IOrderInfo.PAY_TIME);
payTimeLabel.setText(formatTime(payTime));
}
shippingMannerLabel.setText((String) bean.get(IOrderInfo.SHIPPING_NAME));
System.out.println("shippingStatus:"+shippingStatus);
if(shippingStatus == IOrderInfo.SS_PREPARING || shippingStatus == IOrderInfo.SS_UNSHIPPED || bean.get(IOrderInfo.SHIPPING_TIME) == null) {
shippingTimeLabel.setText(Resources.constants.OrderStatus_SS_UNSHIPPED());
} else {
Long shippingTime = bean.get(IOrderInfo.SHIPPING_TIME);
shippingTimeLabel.setText(formatTime(shippingTime));
}
invoiceNoLabel.setText((String) bean.get(IOrderInfo.INVOICE_NO));
//refererLabel.setText((String) bean.get(IOrderInfo.REFERER));
String referer = (String) (bean.get(IOrderInfo.REFERER) == null ? Resources.constants.OrderDetail_selfSite()
: bean.get(IOrderInfo.REFERER));
refererLabel.setText(referer);
//收货人信息
consigneeLabel.setText((String) bean.get(IOrderInfo.CONSIGNEE));
emailLabel.setText((String) bean.get(IOrderInfo.EMAIL));
zipcodeLabel.setText((String) bean.get(IOrderInfo.ZIPCODE));
telLabel.setText((String) bean.get(IOrderInfo.TEL));
mobileLabel.setText((String) bean.get(IOrderInfo.MOBILE));
buildingLabel.setText((String) bean.get(IOrderInfo.SIGN_BUILDING));
bestTimeLabel.setText((String) bean.get(IOrderInfo.BEST_TIME));
addressLabel.setText((String) bean.get(IOrderInfo.ADDRESS));
//费用信息
Double goodsAmount = bean.get(IOrderInfo.GOODS_AMOUNT);
Double shippingFee = bean.get(IOrderInfo.SHIPPING_FEE);
Double insuranceFee = bean.get(IOrderInfo.INSURE_FEE);
Double payFee = bean.get(IOrderInfo.PAY_FEE);
double orderAmount = goodsAmount + shippingFee + insuranceFee + payFee;
goodsAmountLabel.setText("¥" + goodsAmount);
shippingFeeLabel.setText("¥" + shippingFee);
insuranceFeeLabel.setText("¥" + insuranceFee);
payFeeLabel.setText("¥" + payFee);
orderAmountLabel.setText("¥" + orderAmount);
moneyPaidLabel.setText("¥" + bean.get(IOrderInfo.MONEY_PAID));
surplusLabel.setText("¥" + bean.get(IOrderInfo.SURPLUS));
moneyShouldPayLabel.setText("¥" + bean.get(IOrderInfo.ORDER_AMOUNT));
if((Double)bean.get(IOrderInfo.ORDER_AMOUNT) < 0) {
moneyShouldPayTitle.setText("=" + Resources.constants.OrderDetail_moneyShouldRefund() + ":");
btnRefund.setVisible(true);
}
else {
moneyShouldPayTitle.setText("=" + Resources.constants.OrderDetail_moneyShouldPay() + ":");
}
//查询地址
new RegionService().getRegionAncestors(bean.getString(IOrderInfo.REGION), new RegionService.Listener() {
public void onSuccess(List<BeanObject> beans) {
final String country = beans.get(0).getString(IRegion.NAME);
final String province = beans.size() > 1 ? null : beans.get(1).getString(IRegion.NAME);
final String city = beans.size() > 2 ? null : beans.get(2).getString(IRegion.NAME);
final String district = beans.size() > 3 ? null : beans.get(3).getString(IRegion.NAME);
addressLabel.setText("[" + country + " " + province + " " + city + " " + district + "]" + bean.get(IOrderInfo.ADDRESS));
}
});
}
});
}
protected void gotoFailPage() {
Success.State newState = new Success.State();
newState.setMessage(Resources.constants.OrderDetail_modifyWrong());
OrderDetailPanel.State choice1 = new OrderDetailPanel.State();
choice1.setId(getCurState().getPkId());
newState.addChoice(OrderDetailPanel.getInstance().getName(), choice1);
newState.execute();
}
protected String formatTime(Long time) {
if (time == null) {
return "";
}
Date dateTime = new Date();
dateTime.setTime(time);
DateTimeFormat formatter = DateTimeFormat.getFormat("yy-MM-dd HH:mm:ss");
String timeStr = formatter.format(dateTime);
return timeStr;
}
protected String getState(int orderStatus, int payStatus, int shippingStatus) {
String orderStatusStr = null;
switch(orderStatus) {
case IOrderInfo.OS_CANCELED:
orderStatusStr = Resources.constants.OrderStatus_OS_CANCELED();
break;
case IOrderInfo.OS_CONFIRMED:
orderStatusStr = Resources.constants.OrderStatus_OS_CONFIRMED();
break;
case IOrderInfo.OS_INVALID:
orderStatusStr = Resources.constants.OrderStatus_OS_INVALID();
break;
case IOrderInfo.OS_RETURNED:
orderStatusStr = Resources.constants.OrderStatus_OS_RETURNED();
break;
case IOrderInfo.OS_UNCONFIRMED:
orderStatusStr = Resources.constants.OrderStatus_OS_UNCONFIRMED();
break;
}
String payStatusStr = null;
switch(payStatus) {
case IOrderInfo.PS_PAYED:
payStatusStr = Resources.constants.OrderStatus_PS_PAYED();
break;
case IOrderInfo.PS_PAYING:
payStatusStr = Resources.constants.OrderStatus_PS_PAYING();
break;
case IOrderInfo.PS_UNPAYED:
payStatusStr = Resources.constants.OrderStatus_PS_UNPAYED();
break;
}
String shippingStatusStr = null;
switch(shippingStatus) {
case IOrderInfo.SS_PREPARING:
shippingStatusStr = Resources.constants.OrderStatus_SS_PREPARING();
break;
case IOrderInfo.SS_RECEIVED:
shippingStatusStr = Resources.constants.OrderStatus_SS_RECEIVED();
break;
case IOrderInfo.SS_SHIPPED:
shippingStatusStr = Resources.constants.OrderStatus_SS_SHIPPED();
break;
case IOrderInfo.SS_UNSHIPPED:
shippingStatusStr = Resources.constants.OrderStatus_SS_UNSHIPPED();
break;
}
return orderStatusStr + "," + payStatusStr + "," + shippingStatusStr;
}
}