import org.compiere.model.MTable
import org.compiere.util.DB
import org.compiere.util.Msg
import java.math.BigDecimal
import java.sql.PreparedStatement
import java.sql.ResultSet
// A_WindowNo A_Tab A_Field A_Value A_OldValue A_Ctx BOMQty
if (A_Value!=null) // A_OldValue!=A_Value)
{
BigDecimal Qty = new BigDecimal (0);
BigDecimal Price = new BigDecimal (0);
BigDecimal Prepay = new BigDecimal (0);
BigDecimal Amt = new BigDecimal (0);
BigDecimal Amt1 = new BigDecimal (0);
String fname = A_Field.getColumnName();
// Integer ID= (Integer)A_Value;
BigDecimal Rate = (BigDecimal)A_Tab.getValue("稅率");
if (Rate != null) Rate = Rate.divide(new BigDecimal(100));
if (fname.equals("訂單數量")) {
Qty = (BigDecimal) A_Value;
Price= (BigDecimal)A_Tab.getValue("單價");
Prepay= (BigDecimal)A_Tab.getValue("銷貨訂金");
}else if (fname.equals("單價")) {
Price = (BigDecimal) A_Value;
Qty = (BigDecimal)A_Tab.getValue("訂單數量");
Prepay= (BigDecimal)A_Tab.getValue("銷貨訂金");
}else if (fname.equals("銷貨訂金")) {
Prepay = (BigDecimal) A_Value;
Qty = (BigDecimal)A_Tab.getValue("訂單數量");
Price = (BigDecimal)A_Tab.getValue("單價");
}
Integer Tax_ID = (Integer)A_Tab.getValue("稅別_ID");
String type = DB.getSQLValueString(null,"SELECT 編號 FROM 稅別 WHERE 稅別_ID=?", Tax_ID );
if (type.equals("02")) {
Amt1= Qty.multiply(Price);
Amt = Amt1.divide(Rate.add(new BigDecimal(1) ) , 0, RoundingMode.CEILING );
Tax = Amt1.subtract(Amt);
Total = Amt.add(Tax).subtract(Prepay);
}else{
Amt = Qty.multiply(Price);
Tax = Amt.multiply(Rate);
Total = Amt.add(Tax).subtract(Prepay);
}
if (Qty == null || Price==null || Rate == null)
{A_Tab.setValue("訂單金額", null );
A_Tab.setValue("稅額", null );
A_Tab.setValue("合計", null );
}else{
//Amt = Qty.multiply(Price);
//Tax = Amt.multiply(Rate);
//Total = Amt.add(Tax).subtract(Prepay);
A_Tab.setValue("訂單金額", Amt );
A_Tab.setValue("稅額", Tax);
A_Tab.setValue("合計", Total);
}
}
result=""
沒有留言:
張貼留言