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();
}
}
}
}