package com.topsun.posclient.sales.ui.view;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import com.co.lane.card.jni.RFCardException;
import com.co.lane.card.jni.RFCardManager;
import com.topsun.posclient.common.AppConstants;
import com.topsun.posclient.common.LoggerUtil;
import com.topsun.posclient.common.POSClientApp;
import com.topsun.posclient.common.POSException;
import com.topsun.posclient.common.ProjectUtil;
import com.topsun.posclient.common.core.BarcodeListenetManager;
import com.topsun.posclient.common.core.IBarcodeListener;
import com.topsun.posclient.common.core.keyboard.SoftKeyUtil;
import com.topsun.posclient.common.listener.IKeyListener;
import com.topsun.posclient.common.listener.KeyListenerManager;
import com.topsun.posclient.common.service.impl.BaseServiceImpl;
import com.topsun.posclient.common.ui.style.CommonCss;
import com.topsun.posclient.common.ui.utils.TableUtils;
import com.topsun.posclient.common.ui.utils.ThemeUtils;
import com.topsun.posclient.datamodel.CardRule;
import com.topsun.posclient.datamodel.Item;
import com.topsun.posclient.datamodel.Member;
import com.topsun.posclient.datamodel.PartSales;
import com.topsun.posclient.datamodel.Promotion;
import com.topsun.posclient.datamodel.Shop;
import com.topsun.posclient.datamodel.User;
import com.topsun.posclient.datamodel.VipUser;
import com.topsun.posclient.datamodel.dto.PromotionDTO;
import com.topsun.posclient.sales.MessageResources;
import com.topsun.posclient.sales.core.service.IPartSaleService;
import com.topsun.posclient.sales.core.service.impl.PartSaleServiceImpl;
import com.topsun.posclient.sales.dialog.SalesPayDialog;
import com.topsun.posclient.sales.ui.gold.GoldSalesManager;
import com.topsun.posclient.sales.ui.gold.PartSalesFacade;
import com.topsun.posclient.sales.ui.gold.PartSalesManager;
import com.topsun.posclient.sales.ui.menu.SalesActivator;
import com.topsun.posclient.sales.ui.table.PromotionContentProvider;
import com.topsun.posclient.sales.ui.table.PromotionLableProvider;
import com.topsun.posclient.sales.ui.table.SalesCellModify;
import com.topsun.posclient.sales.ui.table.SalesTableContentProvider;
import com.topsun.posclient.sales.ui.table.SalesTableLableProvider;
import com.topsun.widget.calendar.DefaultSettings;
/**
* 零售
* @author Dong
*
*/
public class SalesView extends ViewPart implements IKeyListener,IBarcodeListener {
public IPartSaleService partSaleService = new PartSaleServiceImpl();
public User user = POSClientApp.get().getLoginUser();
List<Item> itemsList = new ArrayList<Item>();
public PartSales partSales = new PartSales();
//单品集合临时保存对象,用户促销时的特殊处理
private List<Item> itemTempList = new ArrayList<Item>();
private TableColumn last;
private TableColumn first;
private TableColumn oldItemCode;
public Combo shopName;
public Text orderNo;
public Combo casher;
public Text vipPoint;
public Text cardNo;
public Text userName;
public Text salesDate;
public Text applyUser;
public Text checker;
public Text barCode;
public TableViewer tableViewer;
public int controlVerticalAlignment = 3;
public Label tradeTime;
public Label tradeCode;
public Label address;
public Label customName;
public Text phone;
public TableViewer promotionTableView;
private Text oldGoldOrderNo; //旧金单据号
private Label totlePrice;
public SalesView() {
}
/**
* 商品信息
* @param parent
*/
private void buildProductInfo(Composite parent){
KeyListenerManager.getInstance().addKeyListener(this);
BarcodeListenetManager.getInstance().addKeyListener(this);
Group productInfo = new Group(parent, SWT.NONE);
// buildPrintInfo(productInfo);
productInfo.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
productInfo.setText("单品列表");
GridLayout gridLayout = new GridLayout(2,false);
productInfo.setLayout(gridLayout);
GridData data = new GridData(GridData.FILL_BOTH);
productInfo.setLayoutData(data);
{
Button button = new Button(productInfo, SWT.NONE);
button.setFont(CommonCss.getTableHeaderFont(parent.getDisplay()));
GridData data0 = new GridData();
data0.heightHint = 45;
data0.widthHint = 70;
button.setLayoutData(data0);
button.setText("删除");
PartSalesFacade.delGoldSaleItemListener(button);
}
{
Button cleanAll = new Button(productInfo, SWT.NONE);
cleanAll.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
cleanAll.setText("清空");
GridData data3 = new GridData();
data3.heightHint = 45;
data3.widthHint = 70;
cleanAll.setLayoutData(data3);
cleanAll.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
itemTempList.clear();
tableViewer.setInput(null);
//清空会员信息
userName.setText("");
phone.setText("");
vipPoint.setText("0.00");
cardNo.setText("");
partSales.setVip(false);
partSales.setVipUser(null);
partSales.setItemList(new ArrayList<Item>());
PartSalesFacade.caculatorPartSalesPrice();
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
tableViewer = new TableViewer(productInfo,SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER|SWT.FULL_SELECTION);
tableViewer.setContentProvider(new SalesTableContentProvider());
tableViewer.setLabelProvider(new SalesTableLableProvider());
final Table table = tableViewer.getTable();
TableUtils.setTabelHeight(table);
table.setBackground(ThemeUtils.getCurrent().getTableBackGround());
table.setFont(CommonCss.getTableHeaderFont(parent.getDisplay()));
table.setLinesVisible(false);
table.setHeaderVisible(true);
table.setFont(CommonCss.getTableHeaderFont(parent.getDisplay()));
String[] cloumsProperties = new String[]{"0","1","2","3","4","5","6","7","8","9","10","11","faceSales","13","sales"};
tableViewer.setColumnProperties(cloumsProperties);
CellEditor[] editors = new CellEditor[15];
editors[0] = new TextCellEditor(table);
editors[1] = new TextCellEditor(table);
editors[2] = new TextCellEditor(table);
editors[3] = new TextCellEditor(table);
editors[4] = new TextCellEditor(table);
editors[5] = new TextCellEditor(table);
editors[6] = new TextCellEditor(table);
editors[7] = new TextCellEditor(table);
editors[8] = new TextCellEditor(table);
editors[9] = new TextCellEditor(table);
editors[10] = new TextCellEditor(table);
editors[11] = new TextCellEditor(table);
editors[12] = new TextCellEditor(table);
List<String> userNames = new ArrayList<String>();
Map<Integer,User> map = POSClientApp.get().getUserRelation();
Iterator<Entry<Integer, User>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, User> e = (Map.Entry<Integer, User>) it.next();
userNames.add(e.getValue().getUserName());
}
// editors[13] = new ComboBoxCellEditor(table, userNames.toArray(new String[]{}),SWT.READ_ONLY);
editors[13] = new TextCellEditor(table);
editors[14] = new TextCellEditor(table);
tableViewer.setCellEditors(editors);
tableViewer.setCellModifier(new SalesCellModify(tableViewer));
{
GridData tableData = new GridData(GridData.FILL_HORIZONTAL);
tableData.heightHint = 180;
tableData.horizontalSpan = 2;
table.setLayoutData(tableData);
}
{
first = new TableColumn(table, SWT.NONE);
first.setWidth(150);
first.setText("商品编号");
}
{
oldItemCode = new TableColumn(table, SWT.NONE);
oldItemCode.setWidth(150);
oldItemCode.setText("原条码");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(160);
column.setText("商品名称");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(40);
column.setText("件数");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(60);
column.setText("成色");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("金重(g)");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("宝石(ct)");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("副钻(ct)");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("单价");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("加工费");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("应售");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("优惠");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("实售");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("印记");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("营业员");
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setWidth(80);
column.setText("柜台名称");
}
{
last = new TableColumn(table, SWT.NONE);
last.setWidth(80);
last.setText("赠品");
}
Composite operationComposite = new Composite(productInfo, SWT.NONE);
GridData itemTemp = new GridData();
itemTemp.horizontalSpan = 2;
operationComposite.setLayoutData(itemTemp);
operationComposite.setLayout(new GridLayout(13,false));
{
Label label = new Label(operationComposite, SWT.NONE);
GridData data1 = new GridData();
label.setLayoutData(data1);
label.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
label.setText("金额合计:");
}
{
totlePrice = new Label(operationComposite, SWT.BORDER);
GridData data1 = CommonCss.getTextData(110);
totlePrice.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
totlePrice.setLayoutData(data1);
totlePrice.setText("0.00");
}
{
Label label = new Label(operationComposite, SWT.NONE);
label.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
GridData data5 = new GridData();
label.setLayoutData(data5);
label.setText("旧金单据号:");
}
{
oldGoldOrderNo = new Text(operationComposite, SWT.BORDER);
GridData data1 = CommonCss.getTextData(150);
oldGoldOrderNo.setLayoutData(data1);
oldGoldOrderNo.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
}
{
Button button = new Button(operationComposite, SWT.NONE);
button.setFont(CommonCss.getTableHeaderFont(parent.getDisplay()));
GridData data0 = new GridData();
data0.heightHint = 45;
data0.widthHint = 80;
button.setLayoutData(data0);
button.setText("添加旧金");
PartSalesFacade.addOldGoldOrderListenerForButton(button);
}
{
Button serviceFee = new Button(operationComposite, SWT.NONE);
serviceFee.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
serviceFee.setText("服务费");
GridData data2 = new GridData();
data2.heightHint = 45;
data2.widthHint = 80;
data2.horizontalSpan = 1;
serviceFee.setLayoutData(data2);
PartSalesFacade.addServiceFeeListener(serviceFee);
}
{
Button button = new Button(operationComposite, SWT.NONE);
button.setFont(CommonCss.getTableHeaderFont(parent.getDisplay()));
GridData data1 = new GridData();
data1.heightHint = 45;
data1.widthHint = 70;
button.setLayoutData(data1);
button.setText("断头");
PartSalesFacade.openCutGoldDialogListener(button, orderNo.getText());
}
{
Button applyPromotion = new Button(operationComposite, SWT.NONE);
applyPromotion.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
applyPromotion.setText("促销");
GridData data4 = new GridData();
data4.heightHint = 45;
data4.widthHint = 70;
data4.horizontalSpan = 1;
applyPromotion.setLayoutData(data4);
applyPromotion.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
Button btn = (Button)e.getSource();
if(partSales.isVip()){
MessageDialog.openInformation(btn.getShell(), MessageResources.message_ui_tips, "会员不参与促销活动");
return;
}
PartSales salesInfo = new PartSales();
salesInfo.setFactTotalAmount(ProjectUtil.formatString(totlePrice.getText()));
salesInfo.setDocNum(orderNo.getText());
salesInfo.setOgDocNum(oldGoldOrderNo.getText());
salesInfo.setCountAmount(ProjectUtil.formatString(totlePrice.getText()));
salesInfo.setFactTotalAmount(ProjectUtil.formatString(totlePrice.getText()));
salesInfo.setSalesType(AppConstants.SALES_TYPE_SALES);
List<Item> itemList = new ArrayList<Item>();
for(Item itemTemp : itemTempList){
Item itemNew = new Item();
itemNew.setId(itemTemp.getId());
itemNew.setItemName(itemTemp.getItemName());
itemNew.setItemCode(itemTemp.getItemCode());
itemNew.setSalesAmount(itemTemp.getSalesAmount());
itemNew.setFactAmount(itemTemp.getFactAmount());
itemNew.setZJGF(itemTemp.getZJGF());
itemNew.setPretlAmount(itemTemp.getPretlAmount());
itemNew.setIsOldGold(itemTemp.getIsOldGold());
itemNew.setHasGiveaway(itemTemp.getHasGiveaway());
itemNew.setCashier(itemTemp.getCashier());
itemNew.setCashierName(itemTemp.getCashierName());
itemNew.setDISCOUNT1(itemTemp.getDISCOUNT1());
itemNew.setDISCOUNT2(itemTemp.getDISCOUNT2());
itemNew.setDocNum(itemTemp.getDocNum());
itemNew.setFactZJGF(itemTemp.getFactZJGF());
itemNew.setInvoceCode(itemTemp.getInvoceCode());
itemNew.setItemStatus(itemTemp.getItemStatus());
itemNew.setItemType(itemTemp.getItemType());
itemNew.setMatkl(itemTemp.getMatkl());
itemNew.setMATNR(itemTemp.getMATNR());
itemNew.setZDPYZL(itemTemp.getZDPYZL());
itemNew.setZDPZL(itemTemp.getZDPZL());
itemNew.setZYTM(itemTemp.getZYTM());
itemNew.setZSSMD(itemTemp.getZSSMD());
itemNew.setZSSGS(itemTemp.getZSSGS());
itemNew.setZSJCS(itemTemp.getZSJCS());
itemNew.setZMDLSBQJ(itemTemp.getZMDLSBQJ());
itemNew.setZCSBJ(itemTemp.getZCSBJ());
itemNew.setZKJGFLS(itemTemp.getZKJGFLS());
itemNew.setZFZZZL(itemTemp.getZFZZZL());
itemNew.setZMDDXJSJ(itemTemp.getZMDDXJSJ());
itemNew.setZZZZZ(itemTemp.getZZZZZ());
itemNew.setPrice(itemTemp.getPrice());
itemNew.setZSFTJ(itemTemp.getZSFTJ());
itemNew.setZYTM(itemTemp.getZYTM());
itemNew.setZKJYF(itemTemp.getZKJYF());
if(itemList.size() == 0){
itemNew.setUnSalePart(itemTemp.getUnSalePart());
}
for(Item item : itemList){
if(null == item.getItemCode() || "".equals(item.getItemCode())){
break;
}
if(item.getItemCode().equals(itemNew.getItemCode())){
itemNew.setUnSalePart(item.getUnSalePart());
itemNew.setPromotionId(item.getPromotionId());
itemNew.setPromotionName(item.getPromotionName());
}
}
itemList.add(itemNew);
};
salesInfo.setItemList(itemList);
try {
List<Item> ret = partSaleService.applyPromotion(salesInfo);
partSales.setItemList(ret);
PartSalesManager.getInstance().getSalesProductTableView().setInput(ret);
PartSalesManager.getInstance().getSalesProductTableView().refresh();
PartSalesFacade.caculatorPartSalesPrice();
} catch (POSException e1) {
MessageDialog.openError(btn.getShell(), MessageResources.message_ui_tips, "促销出错");
return;
}
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
{
Button button = new Button(operationComposite, SWT.NONE);
button.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
button.setText("结算");
GridData data6 = new GridData();
data6.heightHint = 45;
data6.widthHint = 70;
button.setLayoutData(data6);
button.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
Button saveButton = (Button)e.getSource();
{
List list = (List)tableViewer.getInput() ;
if(list == null || list.size() == 0){
MessageDialog.openError(saveButton.getShell(), MessageResources.message_ui_tips, "商品信息不能为空");
return;
}
}
partSales.setDocNum(orderNo.getText());
partSales.setOgDocNum(oldGoldOrderNo.getText());
partSales.setSalesType(AppConstants.SALES_TYPE_SALES);
List<Item> itemList = PartSalesFacade.getCurrentItemList();
partSales.setItemList(itemList);
PartSalesManager.getInstance().setPartSales(partSales);
List<Item> tempList = new ArrayList<Item>();
for(Item itemTemp : itemTempList){
Item itemNew = new Item();
itemNew.setId(itemTemp.getId());
itemNew.setItemName(itemTemp.getItemName());
itemNew.setItemCode(itemTemp.getItemCode());
itemNew.setSalesAmount(itemTemp.getSalesAmount());
itemNew.setFactAmount(itemTemp.getFactAmount());
itemNew.setZJGF(itemTemp.getZJGF());
itemNew.setPretlAmount(itemTemp.getPretlAmount());
itemNew.setIsOldGold(itemTemp.getIsOldGold());
itemNew.setHasGiveaway(itemTemp.getHasGiveaway());
itemNew.setCashier(itemTemp.getCashier());
itemNew.setCashierName(itemTemp.getCashierName());
itemNew.setDISCOUNT1(itemTemp.getDISCOUNT1());
itemNew.setDISCOUNT2(itemTemp.getDISCOUNT2());
itemNew.setDocNum(itemTemp.getDocNum());
itemNew.setFactZJGF(itemTemp.getFactZJGF());
itemNew.setInvoceCode(itemTemp.getInvoceCode());
itemNew.setItemStatus(itemTemp.getItemStatus());
itemNew.setItemType(itemTemp.getItemType());
itemNew.setMatkl(itemTemp.getMatkl());
itemNew.setMATNR(itemTemp.getMATNR());
itemNew.setZDPYZL(itemTemp.getZDPYZL());
itemNew.setZDPZL(itemTemp.getZDPZL());
itemNew.setZYTM(itemTemp.getZYTM());
itemNew.setZKJYF(itemTemp.getZKJYF());
itemNew.setZSSMD(itemTemp.getZSSMD());
itemNew.setZSSGS(itemTemp.getZSSGS());
itemNew.setZSJCS(itemTemp.getZSJCS());
itemNew.setZMDLSBQJ(itemTemp.getZMDLSBQJ());
itemNew.setZCSBJ(itemTemp.getZCSBJ());
itemNew.setZKJGFLS(itemTemp.getZKJGFLS());
itemNew.setZFZZZL(itemTemp.getZFZZZL());
itemNew.setZMDDXJSJ(itemTemp.getZMDDXJSJ());
itemNew.setZZZZZ(itemTemp.getZZZZZ());
itemNew.setPrice(itemTemp.getPrice());
itemNew.setZSFTJ(itemTemp.getZSFTJ());
itemNew.setZoneName(itemTemp.getZoneName());
for(Item item : itemList){
if(null != item.getItemCode() && !"".equals(item.getItemCode())){
if(item.getItemCode().equals(itemNew.getItemCode())){
itemNew.setUnSalePart(item.getUnSalePart());
itemNew.setPromotionId(item.getPromotionId());
itemNew.setPromotionName(item.getPromotionName());
//从item中获取实金额、优惠金额等(因为这些金额在结算之前可能因为促销而发生变化,所以不能直接从itemTemp原始的临时数据中获取)
//点击促销,不需要这些金额的设置,因为防止多次点击促销每次都需要用最原始的数据进行促销计算
itemNew.setFactAmount(item.getFactAmount());
itemNew.setPretlAmount(item.getPretlAmount());
itemNew.setZJGF(item.getZJGF());
itemNew.setFactZJGF(item.getFactZJGF());
}
}
}
tempList.add(itemNew);
};
PartSalesManager.getInstance().setBeforeZeroAndDiscountPartSales(partSales);
PartSalesManager.getInstance().getBeforeZeroAndDiscountPartSales().setItemList(tempList);
boolean hasoldgold = false;
for (Item t_item : tempList) {
if(t_item.getItemType().equals(AppConstants.ITEM_TYPE_OLDGOLD)){
hasoldgold = true;
}
}
String tips = "此交易含旧金贴换,请点击“贴金调工费”按钮调整工费。如已调整,请点“是”,未调整点击“否”。";
String price = totlePrice.getText();
SalesPayDialog dialog = new SalesPayDialog(saveButton.getShell());
dialog.setCardNo(cardNo.getText());
dialog.setPrice(price);
if(hasoldgold && tempList.size() > 1){
MessageDialog messageDialog = new MessageDialog(totlePrice.getShell(), "确认", null, tips, 5, new String[]{"是","否"}, 0);
int open = messageDialog.open();
if(open == 1){
return;
}
}
try{
int retrunType =dialog.open();
if(retrunType == 1){
return;
}
}catch(Exception ee){
ee.printStackTrace();
}
barCode.setText("");
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
{
Button button = new Button(operationComposite, SWT.NONE);
button.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
button.setText("贴金调工费");
GridData data6 = new GridData();
data6.heightHint = 45;
data6.widthHint = 80;
button.setLayoutData(data6);
button.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
BaseServiceImpl baseServiceImpl = new BaseServiceImpl();
List<Item> list = (List<Item>)tableViewer.getInput();
if(list == null){
return;
}
Shop shop = null;
try {
String shopID = POSClientApp.get().getSysConfig().getOwnerShop();
shop = baseServiceImpl.getShopById(Integer.parseInt(shopID));
} catch (Exception e1) {
e1.printStackTrace();
}
if(shop == null){
MessageDialog.openError(((Button)e.getSource()).getShell(), MessageResources.message_ui_tips, "店铺信息为空");
return;
}
boolean hasoldgold = false;
for (Item t_item : list) {
if(t_item.getItemType().equals(AppConstants.ITEM_TYPE_OLDGOLD)){
hasoldgold = true;
}
}
for (Item item : list) {
if(hasoldgold){
if(!item.getItemType().equals(AppConstants.ITEM_TYPE_OLDGOLD)){
BigDecimal bigDecimal = shop.getGffdxishu();
if(bigDecimal != null){
BigDecimal value = item.getZJGF().multiply(bigDecimal);
item.setFactZJGF(value);//增加20%
item.setFactAmount(item.getZDPZL().multiply(item.getPrice()).add(value).subtract(item.getZKJYF()));
}else{
item.setFactZJGF(item.getZJGF());
}
}
}
}
tableViewer.refresh();
PartSalesFacade.caculatorPartSalesPrice();
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
{
Label label = new Label(operationComposite, SWT.NONE);
GridData data1 = new GridData(GridData.FILL_HORIZONTAL);
label.setLayoutData(data1);
}
{
Button button = new Button(operationComposite, SWT.NONE);
button.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
button.setText("<");
GridData data1 = new GridData();
data1.heightHint = 45;
data1.widthHint = 65;
button.setLayoutData(data1);
button.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
tableViewer.getTable().showColumn(first);
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
{
Button button = new Button(operationComposite, SWT.NONE);
button.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
button.setText(">");
GridData data1 = new GridData();
data1.heightHint = 45;
data1.widthHint = 65;
button.setLayoutData(data1);
button.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
tableViewer.getTable().showColumn(last);
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
}
@Override
public void onChange(String operationType) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if(tableViewer.getInput() != null){
List<Item> items = (List<Item>)tableViewer.getInput() ;
Item addItem = new Item();
items.add(addItem);
tableViewer.setInput(items);
tableViewer.editElement(addItem, 0);
tableViewer.setSelection(new StructuredSelection(addItem));
}else{
List<Item> items = new ArrayList<Item>();
Item addItem = new Item();
items.add(addItem);
tableViewer.setInput(items);
tableViewer.editElement(addItem, 0);
}
PartSalesFacade.caculatorPartSalesPrice();
}
});
}
@Override
public void createPartControl(Composite parent) {
parent.setLayout(new GridLayout(1,false));
parent.setBackground(ThemeUtils.getCurrent().getBackGroundColor());
parent.setBackgroundMode(SWT.INHERIT_FORCE);
buildBaseInfo(parent);
buildProductInfo(parent);
buildOperation(parent);
PartSalesManager.getInstance().setSalesProductTableView(tableViewer);
PartSalesManager.getInstance().setSalesTotlePrice(totlePrice);
PartSalesManager.getInstance().setDocNum(orderNo);
PartSalesManager.getInstance().setCardNo(cardNo);
PartSalesManager.getInstance().setMemberName(userName);
PartSalesManager.getInstance().setPhone(phone);
PartSalesManager.getInstance().setPoint(vipPoint);
PartSalesManager.getInstance().setItemTempList(itemTempList);
PartSalesManager.getInstance().setOldDocNum(oldGoldOrderNo);
PartSalesManager.getInstance().setPartSales(partSales);
PartSalesFacade.addSalesItemListener(barCode);
PartSalesFacade.addOldGoldOrderListener(oldGoldOrderNo);
}
private void buildOperation(final Composite parent){
Composite operation = new Composite(parent, SWT.NONE);
operation.setLayout(new GridLayout(4,false));
operation.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
}
private void buildBaseInfo(Composite parent) {
String no = "";
try {
no = partSaleService.createNo(AppConstants.DOC_TYPE_SALES);
} catch (POSException e1) {
MessageDialog.openError(parent.getShell(), MessageResources.message_ui_tips, e1.getErrorMessage());
}
Group baseInfo = new Group(parent, SWT.NONE);
baseInfo.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
baseInfo.setText(MessageResources.message_ui_group_baseinfo);
GridLayout gridLayout = new GridLayout(3,false);
gridLayout.marginLeft = 5;
baseInfo.setLayout(gridLayout);
baseInfo.setLayoutData(new GridData(GridData.FILL_BOTH));
Composite leftComposite = new Composite(baseInfo,SWT.NONE);
leftComposite.setLayout(new GridLayout(4,false));
leftComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
Composite rightCompoiste = new Composite(baseInfo,SWT.NONE);
rightCompoiste.setLayout(new GridLayout(5,false));
rightCompoiste.setLayoutData(new GridData(GridData.FILL_BOTH));
Composite underCompsite = new Composite(baseInfo,SWT.NONE);
underCompsite.setLayout(new GridLayout(4,false));
GridData data2 = new GridData(GridData.FILL_BOTH);
data2.horizontalSpan = 1;
underCompsite.setLayoutData(data2);
{
Label label = new Label(leftComposite, SWT.NONE);
label.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
GridData data = new GridData();
data.verticalIndent = controlVerticalAlignment;
data.horizontalSpan = 1;
label.setLayoutData(data);
label.setText("单据编号:");
}
{
orderNo = new Text(leftComposite, SWT.BORDER);
GridData data = CommonCss.getTextData(150);
data.verticalIndent = controlVerticalAlignment;
data.horizontalSpan = 3;
orderNo.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
orderNo.setLayoutData(data);
orderNo.setEditable(false);
orderNo.setText(no);
}
{
Label lable = new Label(leftComposite, SWT.NONE);
lable.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
GridData data = new GridData();
data.horizontalSpan = 1;
data.verticalIndent = controlVerticalAlignment;
lable.setLayoutData(data);
lable.setText("可用积分:");
}
{
vipPoint = new Text(leftComposite, SWT.BORDER);
GridData data = CommonCss.getTextData(150);
vipPoint.setText("0.00");
data.verticalIndent = controlVerticalAlignment;
data.horizontalSpan = 3;
vipPoint.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
vipPoint.setLayoutData(data);
vipPoint.setEditable(false);
}
{
Label label = new Label(rightCompoiste, SWT.NONE);
label.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
GridData data = new GridData();
data.horizontalSpan = 2;
data.verticalIndent = controlVerticalAlignment;
label.setLayoutData(data);
label.setText("会员卡号:");
}
{
cardNo = new Text(rightCompoiste,SWT.BORDER);
GridData data = CommonCss.getTextData(150);
data.horizontalSpan = 2;
data.verticalIndent = controlVerticalAlignment;
cardNo.setLayoutData(data);
cardNo.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
SoftKeyUtil.showSoftKey(cardNo);
cardNo.addKeyListener(new KeyListener() {
public void keyReleased(KeyEvent e) {
if (e.keyCode == SWT.CR) {
Member member = null;
String inputCardNo = cardNo.getText();
String inputPhone = phone.getText();
if((null == inputCardNo || "".equals(inputCardNo)) && (null == inputPhone || "".equals(inputPhone))){
MessageDialog.openInformation(cardNo.getShell(), MessageResources.message_ui_tips, "请输入【会员卡号】或【电话号码】");
cardNo.setFocus();
return;
}
try {
member = partSaleService.checkMember(inputCardNo, inputPhone, null, null);
if(null == member){
MessageDialog.openError(cardNo.getShell(), MessageResources.message_ui_tips, "卡不存在,请重新输入【会员卡号】或【电话号码】");
cardNo.forceFocus();
cardNo.setText("");
return;
}else{
cardNo.setText(member.getCardNo());
phone.setText(member.getMobile());
vipPoint.setText(String.valueOf(member.getPoint()));
userName.setText(member.getMenberName());
}
//校验卡类型和,积分兑换
partSaleService.getAmountByPoint(new BigDecimal(0));
CardRule cardRule = partSaleService.getCardRuleByCardType(member.getCardTypeNM());
if(null == cardRule){
MessageDialog.openError(cardNo.getShell(), MessageResources.message_ui_tips, "卡类型不匹配,当前会员卡类型【"+member.getCardType()+"】在本地卡类型数据中不存在");
cardNo.forceFocus();
cardNo.setText("");
phone.setText("");
vipPoint.setText("");
userName.setText("");
return;
}
} catch (POSException e1) {
MessageDialog.openError(cardNo.getShell(), MessageResources.message_ui_tips, e1.getErrorMessage());
cardNo.forceFocus();
cardNo.setText("");
phone.setText("");
vipPoint.setText("");
userName.setText("");
return;
}
VipUser vipUser = new VipUser();
vipUser.setCardNo(member.getCardNo());
vipUser.setCardTypeNM(member.getCardTypeNM());
vipUser.setCardType(member.getCardType());
vipUser.setMenberName(member.getMenberName());
vipUser.setTelephoneNo(member.getMobile());
vipUser.setStatus(member.getStatus());
vipUser.setSex(member.getSex());
vipUser.setPoint(member.getPoint());
vipUser.setIssueDate(ProjectUtil.getDateString(member.getIssueDate()));
vipUser.setIDCard(member.getIDCard());
vipUser.setID(member.getID());
vipUser.setEffectiveDateS(ProjectUtil.getDateString(member.getEffectiveDateS()));
vipUser.setEffectiveDateE(ProjectUtil.getDateString(member.getEffectiveDateE()));
vipUser.setBirthDay(member.getBirthDay());
vipUser.setAge(member.getAge());
partSales.setVipUser(vipUser);
partSales.setVip(true);
PartSalesManager.getInstance().setPartSales(partSales);
List<Item> items = (List<Item>)tableViewer.getInput();
if(null == items || items.size() == 0){
return;
}
List<Item> oldItems = new ArrayList<Item>();
for(Item itemTemp : itemTempList){
Item itemNew = new Item();
itemNew.setId(itemTemp.getId());
itemNew.setItemName(itemTemp.getItemName());
itemNew.setItemCode(itemTemp.getItemCode());
itemNew.setSalesAmount(itemTemp.getSalesAmount());
itemNew.setFactAmount(itemTemp.getFactAmount());
itemNew.setZJGF(itemTemp.getZJGF());
itemNew.setPretlAmount(itemTemp.getPretlAmount());
itemNew.setIsOldGold(itemTemp.getIsOldGold());
itemNew.setHasGiveaway(itemTemp.getHasGiveaway());
itemNew.setCashier(itemTemp.getCashier());
itemNew.setDISCOUNT1(itemTemp.getDISCOUNT1());
itemNew.setDISCOUNT2(itemTemp.getDISCOUNT2());
itemNew.setDocNum(itemTemp.getDocNum());
itemNew.setFactZJGF(itemTemp.getFactZJGF());
itemNew.setInvoceCode(itemTemp.getInvoceCode());
itemNew.setItemStatus(itemTemp.getItemStatus());
itemNew.setItemType(itemTemp.getItemType());
itemNew.setMatkl(itemTemp.getMatkl());
itemNew.setMATNR(itemTemp.getMATNR());
itemNew.setUnSalePart(itemTemp.getUnSalePart());
itemNew.setZDPYZL(itemTemp.getZDPYZL());
itemNew.setZDPZL(itemTemp.getZDPZL());
itemNew.setZYTM(itemTemp.getZYTM());
itemNew.setZKJYF(itemTemp.getZKJYF());
itemNew.setZSSMD(itemTemp.getZSSMD());
itemNew.setZSSGS(itemTemp.getZSSGS());
itemNew.setZSJCS(itemTemp.getZSJCS());
itemNew.setZMDLSBQJ(itemTemp.getZMDLSBQJ());
itemNew.setZCSBJ(itemTemp.getZCSBJ());
itemNew.setZKJGFLS(itemTemp.getZKJGFLS());
itemNew.setZFZZZL(itemTemp.getZFZZZL());
itemNew.setZMDDXJSJ(itemTemp.getZMDDXJSJ());
itemNew.setZZZZZ(itemTemp.getZZZZZ());
itemNew.setPrice(itemTemp.getPrice());
oldItems.add(itemNew);
};
//如果是会员销售
if(PartSalesManager.getInstance().getPartSales().isVip()){
IPartSaleService partSalesService = new PartSaleServiceImpl();
try {
//应用会员折扣销售
items = partSalesService.applyVipSales(oldItems, PartSalesManager.getInstance().getPartSales().getVipUser().getCardTypeNM());
} catch (POSException e1) {
MessageDialog.openError(((Control)e.getSource()).getShell(), MessageResources.message_ui_tips, e1.getErrorMessage());
return;
}
}
tableViewer.setInput(items);
}
}
public void keyPressed(KeyEvent e) {
}
});
}
{
Button readCardBtn = new Button(rightCompoiste,SWT.NONE);
GridData data = new GridData();
data.widthHint = 65;
data.heightHint = 28;
data.verticalIndent = controlVerticalAlignment;
readCardBtn.setLayoutData(data);
readCardBtn.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
readCardBtn.setText("寻卡");
readCardBtn.addSelectionListener(new SelectionListener(){
public void widgetSelected(SelectionEvent e) {
Button btn = (Button)e.getSource();
try{
RFCardManager frCardMgmt = RFCardManager.getInstance();
VipUser user = frCardMgmt.readCardData(VipUser.class);
Member member = partSaleService.checkMember(user.getCardNo(), user.getTelephoneNo(), null, null);
//校验卡类型和,积分兑换
partSaleService.getAmountByPoint(new BigDecimal(0));
CardRule cardRule = partSaleService.getCardRuleByCardType(member.getCardTypeNM());
if(null == cardRule){
MessageDialog.openError(cardNo.getShell(), MessageResources.message_ui_tips, "卡类型不匹配,当前会员卡类型【"+member.getCardTypeNM()+"】在本地卡类型数据中不存在");
cardNo.forceFocus();
cardNo.setText("");
phone.setText("");
vipPoint.setText("");
userName.setText("");
return;
}
user.setCardType(member.getCardType());
user.setCardTypeNM(member.getCardTypeNM());
user.setAge(member.getAge());
user.setBirthDay(member.getBirthDay());
user.setEffectiveDateE(ProjectUtil.getDateString(member.getEffectiveDateE()));
user.setEffectiveDateS(ProjectUtil.getDateString(member.getEffectiveDateS()));
user.setIDCard(member.getIDCard());
user.setIssueDate(ProjectUtil.getDateString(member.getIssueDate()));
user.setMenberName(member.getMenberName());
user.setPoint(member.getPoint());
user.setSex(member.getSex());
user.setStatus(member.getStatus());
user.setTelephoneNo(member.getMobile());
//读卡成功后重新写卡
frCardMgmt.writeCardData(user);
cardNo.setText(user.getCardNo());
userName.setText(user.getMenberName());
vipPoint.setText(String.valueOf(null == user.getPoint()?0:user.getPoint()));
phone.setText(user.getTelephoneNo());
partSales.setVip(true);
partSales.setVipUser(user);
List<Item> itemList = new ArrayList<Item>();
for(Item itemTemp : PartSalesManager.getInstance().getItemTempList()){
Item itemNew = new Item();
itemNew.setId(itemTemp.getId());
itemNew.setItemName(itemTemp.getItemName());
itemNew.setItemCode(itemTemp.getItemCode());
itemNew.setSalesAmount(itemTemp.getSalesAmount());
itemNew.setFactAmount(itemTemp.getFactAmount());
itemNew.setZJGF(itemTemp.getZJGF());
itemNew.setPretlAmount(itemTemp.getPretlAmount());
itemNew.setIsOldGold(itemTemp.getIsOldGold());
itemNew.setHasGiveaway(itemTemp.getHasGiveaway());
itemNew.setCashier(itemTemp.getCashier());
itemNew.setCashierName(itemTemp.getCashierName());
itemNew.setDISCOUNT1(itemTemp.getDISCOUNT1());
itemNew.setDISCOUNT2(itemTemp.getDISCOUNT2());
itemNew.setDocNum(itemTemp.getDocNum());
itemNew.setFactZJGF(itemTemp.getFactZJGF());
itemNew.setInvoceCode(itemTemp.getInvoceCode());
itemNew.setItemStatus(itemTemp.getItemStatus());
itemNew.setItemType(itemTemp.getItemType());
itemNew.setMatkl(itemTemp.getMatkl());
itemNew.setMATNR(itemTemp.getMATNR());
itemNew.setUnSalePart(itemTemp.getUnSalePart());
itemNew.setZDPYZL(itemTemp.getZDPYZL());
itemNew.setZDPZL(itemTemp.getZDPZL());
itemNew.setZYTM(itemTemp.getZYTM());
itemNew.setZKJYF(itemTemp.getZKJYF());
itemNew.setZSSMD(itemTemp.getZSSMD());
itemNew.setZSSGS(itemTemp.getZSSGS());
itemNew.setZSJCS(itemTemp.getZSJCS());
itemNew.setZMDLSBQJ(itemTemp.getZMDLSBQJ());
itemNew.setZCSBJ(itemTemp.getZCSBJ());
itemNew.setZKJGFLS(itemTemp.getZKJGFLS());
itemNew.setZFZZZL(itemTemp.getZFZZZL());
itemNew.setZMDDXJSJ(itemTemp.getZMDDXJSJ());
itemNew.setZZZZZ(itemTemp.getZZZZZ());
itemNew.setPrice(itemTemp.getPrice());
itemList.add(itemNew);
};
if(null == itemList || itemList.size() <= 0){
return;
}
try {
List<Item> ret = partSaleService.applyVipSales(itemList, user.getCardTypeNM());
PartSalesManager.getInstance().getSalesProductTableView().setInput(ret);
PartSalesManager.getInstance().getSalesProductTableView().refresh();
PartSalesFacade.caculatorPartSalesPrice();
} catch (POSException e1) {
LoggerUtil.logError(SalesActivator.PLUGIN_ID, e1.getErrorMessage(), e1);
MessageDialog.openError(btn.getShell(), MessageResources.message_ui_tips, e1.getErrorMessage());
return;
}
}catch(POSException ee){
LoggerUtil.logError(SalesActivator.PLUGIN_ID, "寻卡出错", ee);
MessageDialog.openError(btn.getShell(), MessageResources.message_ui_tips, ee.getErrorMessage());
return;
} catch (RFCardException eee) {
LoggerUtil.logError(SalesActivator.PLUGIN_ID, "寻卡出错", eee);
MessageDialog.openError(btn.getShell(), MessageResources.message_ui_tips, eee.getMessage());
return;
}catch (Exception ee) {
LoggerUtil.logError(SalesActivator.PLUGIN_ID, "寻卡出错", ee);
MessageDialog.openError(btn.getShell(), MessageResources.message_ui_tips, "寻卡出错");
return;
}
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
{
Label label = new Label(leftComposite, SWT.NONE);
label.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
label.setText("会员姓名:");
GridData data = new GridData();
data.horizontalSpan = 1;
data.verticalIndent = controlVerticalAlignment;
label.setLayoutData(data);
}
{
userName = new Text(leftComposite, SWT.BORDER);
GridData data = CommonCss.getTextData(150);
data.horizontalSpan = 1;
data.verticalIndent = controlVerticalAlignment;
userName.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
userName.setLayoutData(data);
userName.setEditable(false);
}
{
TabFolder folder = new TabFolder(underCompsite, SWT.NONE);
folder.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
GridData date = new GridData(GridData.FILL_BOTH);
date.heightHint = 100;
date.widthHint = 380;
folder.setLayoutData(date);
TabItem prom;
{
prom = new TabItem(folder, SWT.NONE);
prom.setText("促销方案");
}
promotionTableView = new TableViewer(prom.getParent(),SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
promotionTableView.setContentProvider(new PromotionContentProvider());
promotionTableView.setLabelProvider(new PromotionLableProvider());
Table table = promotionTableView.getTable();
table.setFont(CommonCss.getTableHeaderFont(parent.getDisplay()));
table.setLinesVisible(false);
table.setHeaderVisible(true);
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setText("方案名称");
column.setWidth(180);
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setText("开始日期");
column.setWidth(100);
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setText("结束日期");
column.setWidth(100);
}
{
TableColumn column = new TableColumn(table, SWT.NONE);
column.setText("时段");
column.setWidth(100);
}
prom.setControl(promotionTableView.getControl());
try {
PromotionDTO dto = partSaleService.queryTodayPromotion();
if(null != dto){
List<Promotion> promotionList = dto.getPromotionList();
if(promotionList != null){
promotionTableView.setInput(promotionList);
}
}
} catch (POSException e) {
MessageDialog.openError(parent.getShell(), MessageResources.message_ui_tips, "促销方案查询出错");
}
}
{
Label lable = new Label(rightCompoiste, SWT.NONE);
lable.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
lable.setText("电话号码:");
GridData data = new GridData();
data.horizontalSpan = 2;
data.verticalIndent = controlVerticalAlignment;
lable.setLayoutData(data);
}
{
phone = new Text(rightCompoiste, SWT.BORDER);
GridData data = CommonCss.getTextData(150);
data.horizontalSpan = 3;
data.verticalIndent = controlVerticalAlignment;
phone.setLayoutData(data);
phone.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
SoftKeyUtil.showSoftKey(phone);
phone.addKeyListener(new KeyListener() {
public void keyReleased(KeyEvent e) {
if (e.keyCode == SWT.CR) {
String inputCardNo = cardNo.getText();
String inputPhone = phone.getText();
if((null == inputCardNo || "".equals(inputCardNo)) && (null == inputPhone || "".equals(inputPhone))){
MessageDialog.openInformation(cardNo.getShell(), MessageResources.message_ui_tips, "请输入【会员卡号】或【电话号码】");
phone.setFocus();
return;
}
Member member = null;
try {
member = partSaleService.checkMember(inputCardNo, inputPhone, null, null);
} catch (POSException e1) {
MessageDialog.openError(cardNo.getShell(), MessageResources.message_ui_tips, e1.getErrorMessage());
return;
}
if(null == member){
MessageDialog.openError(cardNo.getShell(), MessageResources.message_ui_tips, "卡不存在,请重新输入卡号");
return;
}else{
cardNo.setText(member.getCardNo());
phone.setText(member.getMobile());
vipPoint.setText(String.valueOf(member.getPoint()));
userName.setText(member.getMenberName());
}
}
}
public void keyPressed(KeyEvent e) {
}
});
}
{
Label lable = new Label(rightCompoiste, SWT.NONE);
lable.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
lable.setText("条形码:");
GridData data = new GridData();
data.horizontalSpan = 2;
data.verticalIndent = controlVerticalAlignment;
lable.setLayoutData(data);
}
{
barCode = new Text(rightCompoiste, SWT.BORDER);
GridData data = CommonCss.getTextData(150);
data.horizontalSpan = 3;
data.verticalIndent = controlVerticalAlignment;
barCode.setLayoutData(data);
barCode.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
SoftKeyUtil.showSoftKey(barCode);
}
}
public void setFocus() {
}
@Override
public void onChangeBarcode(final String operationType) {
IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
IWorkbenchPage page = window.getActivePage();
String viewid = page.getActivePartReference().getId();
if(null == viewid){
viewid = "";
}
if(!"com.topsun.posclient.sales.ui.menu.SalesView".equals(viewid)){
return;
}
Display.getDefault().asyncExec(new Runnable() {
public void run() {
try {
if(tableViewer.getInput() != null && ((List<Item>)tableViewer.getInput()).size() > 0){
List<Item> items = (List<Item>)tableViewer.getInput() ;
List<String> nameList = new ArrayList<String>();
for (Item item : items) {
if(null != item){
String itemCode = item.getItemCode();
nameList.add(itemCode);
}
}
if(nameList.contains(operationType)){
Item selectedItem = null;
for (Item t_item : items) {
String itemCode = t_item.getItemCode();
if(itemCode.equals(operationType)){
selectedItem = t_item;
}
}
tableViewer.refresh();
tableViewer.setSelection(new StructuredSelection(selectedItem));
tableViewer.editElement(selectedItem, 2);
}
}
PartSalesFacade.caculatorPartSalesPrice();
Text barCode = GoldSalesManager.getInstance().getBarCode();
if(null != barCode){
barCode.forceFocus();
barCode.setText("");
}
} catch (Exception e) {
LoggerUtil.logError(SalesActivator.PLUGIN_ID, "扫描单品错误", e);
}
}
});
}
}
class Settings extends DefaultSettings {
public boolean keyboardNavigatesCalendar() {
return false;
}
}