diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml
index f8c0475b7..11fd29ae8 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml
@@ -776,6 +776,7 @@
+
@@ -1076,6 +1077,7 @@
+
@@ -1416,6 +1418,7 @@
+
@@ -2773,6 +2776,7 @@
+
@@ -3355,6 +3359,7 @@
+
diff --git a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java
index 7a08930d2..9bffffcd5 100644
--- a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java
+++ b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java
@@ -344,16 +344,23 @@ public class CreateTransactionExecutor implements Transaction {
* @throws JBOException
* @throws Exception
*/
- public void insertRentPlan_SP (String splittingRatio,com.amarsoft.awe.util.Transaction Sqlca) throws Exception{
+ public void insertRentPlan_SP (String splittingRatio,com.amarsoft.awe.util.Transaction Sqlca,String splitType) throws Exception{
BizObjectManager BmLRP=JBOFactory.getBizObjectManager(LC_RENT_PLAN.CLASS_NAME, Sqlca);
+ BizObjectManager BmLCC=JBOFactory.getBizObjectManager(LC_CALC_CONDITION.CLASS_NAME, Sqlca);
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy/MM/dd");
- String day ="0";
- Long start = format.parse(startDate).getTime();
List BoLRP = BmLRP.createQuery("payment_number=:payment_number order by plan_list").setParameter("payment_number", this.plannumber).getResultList(false);
+ BizObject boLCC = BmLCC.createQuery("select IRR,CAUTION_MONEY,HANDLING_CHARGE_MONEY from O where payment_number=:payment_number").setParameter("payment_number", this.plannumber).getSingleResult(false);
+ String irr = boLCC.getAttribute("IRR").toString();
+ String cautionMoney = boLCC.getAttribute("CAUTION_MONEY").toString();
+ String handlingChargeMoney = boLCC.getAttribute("HANDLING_CHARGE_MONEY").toString();
+ BigDecimal irr_b = new BigDecimal(irr).divide(new BigDecimal("100"));
+ BigDecimal cautionMoney_b = new BigDecimal(cautionMoney);
+ BigDecimal handlingChargeMoney_b = new BigDecimal(handlingChargeMoney);
Connection conn = Sqlca.getConnection(Sqlca);
PreparedStatement ps = null;
BigDecimal corpus_sp = new BigDecimal("0.00");
+ BigDecimal interest_sp = new BigDecimal("0.00");
try{
ps = conn.prepareStatement("update lc_rent_plan set CORPUS_SP = ?,INTEREST_SP = ? where payment_number = '" + this.plannumber + "' and plan_list = ?");
for(int i = 0; i < BoLRP.size(); i ++){
@@ -361,9 +368,28 @@ public class CreateTransactionExecutor implements Transaction {
BigDecimal allRemainCorpus =new BigDecimal(BoLRP.get(i).getAttribute("ALL_REMAIN_CORPUS").toString());
BigDecimal interest =new BigDecimal(BoLRP.get(i).getAttribute("INTEREST").toString());
BigDecimal ratio = new BigDecimal(splittingRatio).divide(new BigDecimal("100"));
-
- corpus_sp = corpus.add(allRemainCorpus).multiply(ratio).multiply(new BigDecimal("30")).divide(new BigDecimal("360"),2,BigDecimal.ROUND_HALF_UP);
- BigDecimal interest_sp = interest.subtract(corpus_sp);
+ //Ƿ
+ if("Y".equals(splitType)){
+ BigDecimal baseMoney;
+ if(i==0){
+ baseMoney = corpus.add(allRemainCorpus).subtract(cautionMoney_b).subtract(handlingChargeMoney_b);
+ }else{
+ baseMoney = corpus.add(allRemainCorpus).subtract(cautionMoney_b);
+ }
+
+ if(baseMoney.compareTo(new BigDecimal("0"))==1){
+ // = (ʣ౾+ڱ-֤*ԿIRR-IRR/12
+ interest_sp = baseMoney.multiply(irr_b.subtract(ratio)).divide(new BigDecimal("12"),2,BigDecimal.ROUND_HALF_UP);
+ corpus_sp = interest.subtract(interest_sp);
+ }else{
+ interest_sp = new BigDecimal("0.00");
+ corpus_sp = interest.subtract(interest_sp);
+ }
+ }else{
+ corpus_sp = corpus.add(allRemainCorpus).multiply(ratio).multiply(new BigDecimal("30")).divide(new BigDecimal("360"),2,BigDecimal.ROUND_HALF_UP);
+ interest_sp = interest.subtract(corpus_sp);
+ }
+
ps.setString(1, corpus_sp.toString());
ps.setString(2, interest_sp.toString());
ps.setString(3, (i + 1) + "");
@@ -379,7 +405,11 @@ public class CreateTransactionExecutor implements Transaction {
}
-
+
+ public void insertRentPlan_SP_Flexible(String ratio,Transaction Sqlca){
+
+ }
+
public void setCashFlow(String paymentNumber, String productId, com.amarsoft.awe.util.Transaction Sqlca) throws Exception {
String sql = "";
sql += "INSERT INTO LC_CASH_FLOW (id,project_id,project_plan_number,contract_id,contract_plan_number,payment_number";
diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java
index a910933f4..c1e9fcc12 100644
--- a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java
+++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java
@@ -605,4 +605,8 @@ public interface LC_CALC_CONDITION{
* սROA DOUBLE(22)
*/
public static final String STRATEGY_ROA = "STRATEGY_ROA";
+ /**
+ * Ƿ
+ */
+ public static final String SPLIT_TYPE = "SPLIT_TYPE";
}
\ No newline at end of file
diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java
index 6acadcee5..ac84e3501 100644
--- a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java
+++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java
@@ -605,4 +605,8 @@ public interface LC_CALC_CONDITION_HIS{
* սROA DOUBLE(22)
*/
public static final String STRATEGY_ROA = "STRATEGY_ROA";
+ /**
+ * Ƿ
+ */
+ public static final String SPLIT_TYPE = "SPLIT_TYPE";
}
\ No newline at end of file
diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java
index e134955e0..08e43d07f 100644
--- a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java
+++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java
@@ -605,4 +605,8 @@ public interface LC_CALC_CONDITION_TEMP{
* սROA DOUBLE(22)
*/
public static final String STRATEGY_ROA = "STRATEGY_ROA";
+ /**
+ * Ƿ
+ */
+ public static final String SPLIT_TYPE = "SPLIT_TYPE";
}
\ No newline at end of file
diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java
index e562aa6d9..74dd4b010 100644
--- a/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java
+++ b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java
@@ -609,4 +609,8 @@ public interface LC_CONTRACT_CONDITION{
* սROA DOUBLE(22)
*/
public static final String STRATEGY_ROA = "STRATEGY_ROA";
+ /**
+ * Ƿ
+ */
+ public static final String SPLIT_TYPE = "SPLIT_TYPE";
}
\ No newline at end of file
diff --git a/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java
index 56f95c3cf..5ef383a24 100644
--- a/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java
+++ b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java
@@ -609,4 +609,8 @@ public interface LC_PROJ_CONDITION{
* սROA DOUBLE(22)
*/
public static final String STRATEGY_ROA = "STRATEGY_ROA";
+ /**
+ * Ƿ
+ */
+ public static final String SPLIT_TYPE = "SPLIT_TYPE";
}
\ No newline at end of file
diff --git a/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java b/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java
index f20bc0053..055e7e78c 100644
--- a/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java
+++ b/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java
@@ -54,6 +54,10 @@ public class FundIncomeEndRentPlanModify extends BaseBussiness{
String payment_number=bo.getAttribute("payment_number").toString();
String contractId=bo.getAttribute("contract_id").toString();
String productId = Sqlca.getString("select product_id from lb_contract_info where id='"+contractId+"'");
+ //Ƿ
+ String splitType = Sqlca.getString( "select attribute5 from business_type where typeno = '" + productId + "'" );
+ //ʱôӲƷȡģͻȷǷҪ
+ //String splitType = Sqlca.getString("select split_type from lc_calc_condition where contract_id='"+contractId+"'");
String calType = "onHire_process";
String projectPlanNumber = bo.getAttribute("project_plan_number").toString();
CreateTransactionExecutor cre = new CreateTransactionExecutor();
@@ -71,7 +75,7 @@ public class FundIncomeEndRentPlanModify extends BaseBussiness{
if("".equals(splittingRatio)||splittingRatio==null){
}else{
- cre.insertRentPlan_SP(splittingRatio, Sqlca);
+ cre.insertRentPlan_SP(splittingRatio, Sqlca,splitType);
}
/* Date fact_date=df.parse(bo.getAttribute("fact_date").toString());
Date base_date=fact_date;