package com.topsun.posclient.sales.ui.table;
import java.math.BigDecimal;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import com.topsun.posclient.common.AppConstants;
import com.topsun.posclient.common.ProjectUtil;
import com.topsun.posclient.common.service.IBaseService;
import com.topsun.posclient.common.service.impl.BaseServiceImpl;
import com.topsun.posclient.common.ui.utils.ThemeUtils;
import com.topsun.posclient.datamodel.Item;
import com.topsun.posclient.sales.ui.gold.PartSalesFacade;
public class SalesTableLableProvider implements ITableLabelProvider,ITableColorProvider {
public IBaseService baseService = new BaseServiceImpl();
private Color[] bg = ThemeUtils.getCurrent().getTableCellBg();
private Color[] force = ThemeUtils.getCurrent().getTableCellForce();
private Object current = null;
private int currentColor = 0;
@Override
public void addListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public boolean isLabelProperty(Object element, String property) {
// TODO Auto-generated method stub
return false;
}
@Override
public void removeListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
@Override
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
@Override
public String getColumnText(Object element, int columnIndex) {
if (element instanceof Item) {
Item item = (Item) element;
String itemName = item.getItemName();
String itemCode = item.getItemCode();
String oldItemCode = item.getZYTM();
String itemType = item.getItemType();
String matkl = item.getMatkl();
String zcsbj = item.getZCSBJ();
BigDecimal zdpzl = item.getZDPZL();
BigDecimal zfzzzl = item.getZFZZZL();
BigDecimal factZjgf =item.getFactZJGF();
BigDecimal zmdlsbqj = item.getZMDLSBQJ();
String zsjcs = item.getZSJCS();
BigDecimal factAmount = item.getFactAmount();
BigDecimal zzzzz = item.getZZZZZ();
switch (columnIndex) {
case 0:
return itemCode;
case 1:
return oldItemCode;
case 2:
return itemName;
case 3:
return "1";
case 4:
return zsjcs;//成色
case 5:
if(zdpzl == null){
return "";
}
return zdpzl.toString();//重量
case 6:
if(zzzzz == null){
return "";
}
return zzzzz.toString();//宝石
case 7:
if(zfzzzl == null){
return "";
}
return zfzzzl.toString();//副钻
case 8:
if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){
return "";
}
if(zmdlsbqj == null){
return "0.00";
}
if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){
return ProjectUtil.formatAmount(null, item.getPrice()).toString();//素金显示实时金价
}
if(PartSalesFacade.isSuGold(matkl)){
return ProjectUtil.formatAmount(null, item.getPrice()).toString();//素金显示实时金价
}else{
return ProjectUtil.formatAmount(null, zmdlsbqj);//单价
}
case 9:
if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){
return "";
}
if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){
return ProjectUtil.formatAmount(null, factZjgf).toString();
}
return ProjectUtil.formatAmount(null, factZjgf);//加工费
case 10: //应售
if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){
return "";
}
if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){
return "-"+ProjectUtil.formatAmount(null, item.getSalesAmount()).toString();
}
return ProjectUtil.formatAmount(null, item.getSalesAmount()).toString();
case 11:
if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){
return "";
}
return ProjectUtil.formatAmount(null, item.getPretlAmount());//优惠
case 12:
if(AppConstants.ITEM_TYPE_SERVICEFEE.equals(itemType)){
if(null == factAmount){
return "0.00";
}else{
return ProjectUtil.formatAmount(null, factAmount).toString();
}
}
if(AppConstants.ITEM_TYPE_OLDGOLD.equals(itemType)){
return "-"+ProjectUtil.formatAmount(null, item.getFactAmount());
}
return ProjectUtil.formatAmount(null, factAmount).toString();
case 13:
return zcsbj;//印记
case 14:
// int userId = item.getCashier();
// 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() == userId){
// return user.getUserName();
// }
// }
return item.getCashierName();
case 15://柜台名称
if(item.getZoneName() != null){
return item.getZoneName();//赠品
}else{
return "";
}
case 16:
return "";//赠品
default:
return "";
}
}
return element.toString();
}
@Override
public Color getForeground(Object element, int columnIndex) {
return force[currentColor];
}
@Override
public Color getBackground(Object element, int columnIndex) {
if (current != element) {
currentColor = 1 - currentColor;
current = element;
}
return bg[currentColor];
}
}