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.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.OldGold;
/**
* 旧金鉴定表格编辑
*
* @author Dong
*
*/
public class OldGoldIdentifyTableLableProvider implements ITableLabelProvider,ITableColorProvider {
private Color[] bg = ThemeUtils.getCurrent().getTableCellBg();
private Color[] force = ThemeUtils.getCurrent().getTableCellForce();
private Object current = null;
private int currentColor = 0;
public IBaseService baseService = new BaseServiceImpl();
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
@Override
public String getColumnText(Object element, int columnIndex) {
if (element instanceof OldGold) {
OldGold oGold = (OldGold) element;
String matnr = oGold.getMtartCode(); //物料编码
String name = oGold.getName();//旧品名称
BigDecimal neatNess = oGold.getNeatness();//成色
BigDecimal weight_G = oGold.getWeight_G();
BigDecimal loss = oGold.getLoss();//耗损率
BigDecimal weight_R = oGold.getWeight_R();//耗损重
BigDecimal weight_F = oGold.getWeight_F();//折金重
BigDecimal weight = oGold.getWeight();//纯金重
BigDecimal price_G = oGold.getPrice_G();//单价
BigDecimal serviceFee = oGold.getService();//服务费
BigDecimal sum = oGold.getSum();//抵扣金额
switch (columnIndex) {
case 0:
return matnr; //物料编码
case 1:
if(null == name){
return "旧金";
}
return name;//旧品名称
case 2:
return "1";//件数
case 3:
if(null == neatNess){
return "0.00";
}
return neatNess.toString();//成色
case 4:
if(weight_G == null){
return "0.000";
}
return weight_G.toString();//称重
case 5:
if(null == weight){
return "0.000";
}
return weight.toString();//纯金重
case 6:
if(null == loss){
return "0.00";
}
String t_loss = ProjectUtil.formatAmount(null, loss).toString();
if("0.01".equals(t_loss)){
return "1%";
}else if ("0.12".equals(t_loss)){
return "12%";
}
else if("0.15".equals(t_loss)){
return "15%";
}else{
return "0%";
}
// ProjectUtil.formatAmount(null, loss).toString();//耗损比
case 7:
if(null == weight_R){
return "0.00";
}
return ProjectUtil.formatAmount(null, weight_R);//耗损重
case 8:
if(null == weight_F){
return "0.000";
}
return ProjectUtil.formatNetnessAmount(null, weight_F);//折金重
case 9:
if(null == price_G){
return "0.00";
}
return ProjectUtil.formatAmount(null, price_G);//单价
case 10:
if(null == serviceFee){
return "0.00";
}
int t_ServiceFee = oGold.getT_ServiceFee();
if(t_ServiceFee == 0){
return "6元/g";
}else if(t_ServiceFee == 1){
return "10元/g";
}else if (t_ServiceFee == 2){
return "12元/g";
}else{
return "0元/g";
}
// return ProjectUtil.formatAmount(null, serviceFee).toString();//服务费
case 11:
if(null == sum){
return "0.00";
}
sum = sum.setScale(2, BigDecimal.ROUND_HALF_UP);
return ProjectUtil.formatAmount(null, sum);//抵扣金额
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];
}
}