Browse Source

费用账期

zhangyao 2 tuần trước cách đây
mục cha
commit
d6b187b4f2

+ 25 - 14
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractCommissionService.java

@@ -12,6 +12,7 @@ import com.actionsoft.sdk.local.api.Logger;
 import org.apache.commons.lang3.StringUtils;
 
 import java.math.BigDecimal;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Map;
 
@@ -166,6 +167,16 @@ public class contractCommissionService {
                     period.set("ID", null);
                     String ACCOUNT_DEDUCTION_ID = bill.getString("ACCOUNT_DEDUCTION_ID");//计费条目ID
 
+                    //FEE_DATE  费用账期
+                    String FEE_DATE = DBSql.getString("SELECT MAX(c.RECEIVE_DATE) FROM BO_EU_DNCTT_INVOICE_PLAN a JOIN BO_EU_DNCTT_INVOICE_PLAN_DETAIL b ON a.BINDID=b.BINDID JOIN BO_EU_DNCTT_INVOICE_PLAN_RECEIVE c ON a.BINDID=c.BINDID WHERE a.ISEND=1 AND b.ACCOUNT_DEDUCTION_ID=?  ", new Object[]{ACCOUNT_DEDUCTION_ID});
+                    if (StringUtils.isBlank(FEE_DATE))
+                        continue;
+
+                    //获取 FEE_DATE 的下个月
+                    FEE_DATE = contractService.getLocalDate(FEE_DATE).plusMonths(1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+                    period.set("FEE_DATE", FEE_DATE);
+
+
                     BigDecimal shou_tax = BigDecimal.ZERO;//税率-收
                     BigDecimal fu_tax = BigDecimal.ZERO;//税率-付
 
@@ -208,9 +219,9 @@ public class contractCommissionService {
                             }
                         }
 
-                        RowMap contractService = DBSql.getMap("SELECT IS_CTRTAX_APPLIED,TAX_CATEGORY_ID,VAT_TAX,PURCHASE_TAX_CATEGORY_ID FROM BO_EU_DNCTT_CONTRACT_SERVICE WHERE ID=?", new Object[]{service.get("CONTRACT_SERVICE_ID")});
+                        RowMap contractService = DBSql.getMap("SELECT IS_CTRTAX_APPLIED,TAX_CATEGORY_ID,VAT_TAX,PURCHASE_TAX_CATEGORY_ID,NAME FROM BO_EU_DNCTT_CONTRACT_SERVICE WHERE ID=?", new Object[]{service.get("CONTRACT_SERVICE_ID")});
                         if (contractService != null) {
-
+                            period.set("CONTRACT_SERVICE_NAME", contractService.get("NAME"));
                             //应收用的税
                             RowMap taxcate = DBSql.getMap("SELECT NAME,EXT1 FROM BO_EU_DND_GENERAL WHERE OID = ? AND ORGID=?", new Object[]{contractService.getString("TAX_CATEGORY_ID"), uc.getCompanyModel().getId()});
                             shou_tax = TypeUtil.convert(taxcate.get("EXT1"), BigDecimal.class);
@@ -238,20 +249,20 @@ public class contractCommissionService {
                     //period.set("COST_INCLUDE_TAX", bill.get(""));//本期成本(含税)
                     //period.set("COST_BF_INCLUDE_TAX", bill.get(""));//上期结转成本(含税)
 
-                   // if (shou_tax.compareTo(BigDecimal.ZERO) > 0) {
-                        shou_tax = BigDecimal.ONE.add(shou_tax);
-                        period.set("RECEIVABLE_DOLLARS", TypeUtil.convert(period.get("RECEIVABLE_DOLLARS_INCLUDE_TAX"), BigDecimal.class).divide(shou_tax, 10, BigDecimal.ROUND_HALF_UP));//本期应收款(不含税)
+                    // if (shou_tax.compareTo(BigDecimal.ZERO) > 0) {
+                    shou_tax = BigDecimal.ONE.add(shou_tax);
+                    period.set("RECEIVABLE_DOLLARS", TypeUtil.convert(period.get("RECEIVABLE_DOLLARS_INCLUDE_TAX"), BigDecimal.class).divide(shou_tax, 10, BigDecimal.ROUND_HALF_UP));//本期应收款(不含税)
 
-                        period.set("RECEIVED_DOLLARS", TypeUtil.convert(period.get("RECEIVED_DOLLARS_INCLUDE_TAX"), BigDecimal.class).divide(shou_tax, 10, BigDecimal.ROUND_HALF_UP));//本期已收款(不含税)
-                   // }
+                    period.set("RECEIVED_DOLLARS", TypeUtil.convert(period.get("RECEIVED_DOLLARS_INCLUDE_TAX"), BigDecimal.class).divide(shou_tax, 10, BigDecimal.ROUND_HALF_UP));//本期已收款(不含税)
+                    // }
 
-                   // if (fu_tax.compareTo(BigDecimal.ZERO) > 0) {
-                        fu_tax = BigDecimal.ONE.add(fu_tax);
-                        if (period.containsKey("COST_INCLUDE_TAX") && period.get("COST_INCLUDE_TAX") != null)
-                            period.set("COST", TypeUtil.convert(period.get("COST_INCLUDE_TAX"), BigDecimal.class).divide(fu_tax, 10, BigDecimal.ROUND_HALF_UP));//本期成本(不含税)
-                        if (period.containsKey("COST_BF_INCLUDE_TAX") && period.get("COST_BF_INCLUDE_TAX") != null)
-                            period.set("COST_BF", TypeUtil.convert(period.get("COST_BF_INCLUDE_TAX"), BigDecimal.class).divide(fu_tax, 10, BigDecimal.ROUND_HALF_UP));//上期结转成本(不含税)
-                   // }
+                    // if (fu_tax.compareTo(BigDecimal.ZERO) > 0) {
+                    fu_tax = BigDecimal.ONE.add(fu_tax);
+                    if (period.containsKey("COST_INCLUDE_TAX") && period.get("COST_INCLUDE_TAX") != null)
+                        period.set("COST", TypeUtil.convert(period.get("COST_INCLUDE_TAX"), BigDecimal.class).divide(fu_tax, 10, BigDecimal.ROUND_HALF_UP));//本期成本(不含税)
+                    if (period.containsKey("COST_BF_INCLUDE_TAX") && period.get("COST_BF_INCLUDE_TAX") != null)
+                        period.set("COST_BF", TypeUtil.convert(period.get("COST_BF_INCLUDE_TAX"), BigDecimal.class).divide(fu_tax, 10, BigDecimal.ROUND_HALF_UP));//上期结转成本(不含税)
+                    // }
 
 
                     switch (RULE_CATE) {