package com.topsun.posclient.sales.ui.table; import java.math.BigDecimal; import java.util.List; import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.widgets.TableItem; import com.topsun.posclient.common.AppConstants; import com.topsun.posclient.common.ui.utils.FormatUtils; import com.topsun.posclient.datamodel.Item; import com.topsun.posclient.sales.ui.gold.PartSalesFacade; import com.topsun.posclient.sales.ui.gold.PartSalesManager; public class SalesCellModify implements ICellModifier { public TableViewer tableViewer; public SalesCellModify(TableViewer tableViewer){ this.tableViewer = tableViewer; } public boolean canModify(Object element, String property) { Item item = (Item)element; if(item.getItemType() != AppConstants.ITEM_TYPE_SERVICEFEE){ if("sales".equals(property)){ return true; }else{ return false; } } if("faceSales".equals(property)){return true;}; if("sales".equals(property)){return true;}; return false; } public Object getValue(Object element, String property) { Item item = (Item)element; if("faceSales".equals(property)){ if(item.getFactAmount() == null){ return "0"; } return item.getFactAmount().toString(); } if("sales".equals(property)){ // Map<Integer,User> map = POSClientApp.get().getUserRelation(); // Iterator<Integer> iterator = map.keySet().iterator(); // while(iterator.hasNext()){ // int s = iterator.next(); // User user = map.get(s); // if(user.getId() == item.getCashier()){ // return s; // } // } return item.getCashierName(); } return ""; } public void modify(Object element, String property, Object value) { if(element instanceof TableItem){ TableItem titem = (TableItem)element; Item item = (Item)titem.getData(); if("faceSales".equals(property)){ if(value == null || "".equals(value)){ return; } boolean flag = FormatUtils.chenckNumFormat(tableViewer.getTable(), value.toString(), "【实售】格式错误"); if(!flag){ return; } item.setFactAmount(new BigDecimal(value.toString())); tableViewer.update(item, null); PartSalesFacade.caculateSerivceFee(); PartSalesFacade.caculatorPartSalesPrice(); } if("sales".equals(property)){ // Map<Integer,User> map = POSClientApp.get().getUserRelation(); // User user = map.get(value); // item.setCashier(user.getId()); boolean flag = FormatUtils.chenckNumFormat(tableViewer.getTable(), value.toString(), "【营业员】格式错误"); if(!flag){ return; } item.setCashierName(String.valueOf(value)); List<Item> tempList = PartSalesManager.getInstance().getItemTempList(); for (Item t_Item : tempList) { if(item.getItemCode().equals(t_Item.getItemCode())){ t_Item.setCashierName(String.valueOf(value)); } } tableViewer.refresh(); } } } }