diff --git a/WebContent/Accounting/LoanSimulation/LoanBasicInfo_afterloan.jsp b/WebContent/Accounting/LoanSimulation/LoanBasicInfo_afterloan.jsp index d9af77031..3de4a062d 100644 --- a/WebContent/Accounting/LoanSimulation/LoanBasicInfo_afterloan.jsp +++ b/WebContent/Accounting/LoanSimulation/LoanBasicInfo_afterloan.jsp @@ -18,6 +18,7 @@ <%@ include file="/Frame/resources/include/include_begin_info.jspf"%> <% /*获取参数*/ + String flowNo = CurPage.getParameter("FlowNo"); String flowunid = CurPage.getParameter("FlowUnid"); String plannumber=CurPage.getParameter("plannumber"); String productId=CurPage.getParameter("ProductId"); @@ -27,7 +28,6 @@ String calType = CurPage.getParameter("calType"); String carAttributes = CurPage.getParameter("carAttributes"); String projectId=CurPage.getParameter("ProjectId"); - String flowNo = CurPage.getParameter("FlowNo"); if("ydzl".equals(CurPage.getParameter("flowname"))) {//邮递资料流程 flowunid = Sqlca.getString("select b.flow_unid from LC_CALC_CONDITION_TEMP o ,flow_bussiness_object b " + "where o.FLOWUNID=b.flow_unid and b.PROJ_id='" + projectId + "' and flow_name='合同制作流程' limit 1"); @@ -48,7 +48,7 @@ } TabCalBean tcb=TbBeanTools.getTabInfo(calType); String planCName=tcb.getPlanCName(); - //方案编号 + //方案编号 if(plannumber==null){ if("pay_process".equals(calType)||"onHire_process".equals(calType)){ BizObject condtion=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid and PAYMENT_NUMBER is not null and length(PAYMENT_NUMBER)>0 ").setParameter("flowunid", flowunid).getSingleResult(false); @@ -56,14 +56,14 @@ plannumber=condtion.getAttribute(planCName).getString(); } }else{ - //安鹏只有多方案,没有单方案。(产品配置中方案信息prd0314停用) - // String planType=ProductParamUtil.getProductParameterValue(productId, "PRD0314", "planinformation"); - // if("SinglePlan".equals(planType)){ - BizObject condtion=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); - if(condtion!=null){ - plannumber=condtion.getAttribute(planCName).getString(); - } - // } + //安鹏只有多方案,没有单方案。(产品配置中方案信息prd0314停用) + // String planType=ProductParamUtil.getProductParameterValue(productId, "PRD0314", "planinformation"); + // if("SinglePlan".equals(planType)){ + BizObject condtion=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); + if(condtion!=null){ + plannumber=condtion.getAttribute(planCName).getString(); + } + // } } } //新增数据 自动生成方案编号 @@ -81,19 +81,62 @@ tx.commit(); } /*根据参数判断 是否去数据库查询*/ - - String sTempletNo = "LoanSimulationBasicInfo";//--模板号-- - ASObjectModel doTemp = new ASObjectModel(sTempletNo); - + + // 是否灵活产品 + String flexible = Sqlca.getString( "select attribute5 from business_type where typeno = '" + productId + "'" ); + String templateNo = "LoanSimulationBasicInfo"; + if ( "Y".equals( flexible ) ) { + templateNo = "LoanSimulationBasicFlexibleInfo"; + } + //获取车辆信息sumeQuipPrice + String carNum = Sqlca.getString( "SELECT COUNT(1) AS carNum FROM lb_equipment_car_temp WHERE car_attribute='head' AND flowunid='" + flowunid + "'" ); + String sumeQuipPrice = Sqlca.getString( "SELECT SUM(IFNULL(EQUIP_PRICE,0)) AS sumeQuipPrice FROM lb_equipment_car_temp WHERE flowunid='" + flowunid + "'" ); + String carTypea = Sqlca.getString( "SELECT car_typea FROM lb_equipment_car_temp WHERE flowunid='" + flowunid + "' LIMIT 1 " ); + //获取产品配置的留购价款 + String nominalPrice= ProductParamUtil.getProductParameterValue( productId, "PRD0315", "NOMINAL_PRICE", "CostType08" ) ; + + + ASObjectModel doTemp = new ASObjectModel(templateNo); + Map> productRates = ProductParamUtil.getProductComponentType(productId, "PRD0350"); Map productRate = productRates.get("product_rate"); - String termType = productRate.get("TermType")== null ? "" : productRate.get("TermType"); - String termMin = productRate.get("TermScope-MIN"); - String termMax = productRate.get("TermScope-MAX"); + String termType = productRate == null || productRate.get("TermType") == null ? "" : productRate.get("TermType"); + String termMin = ""; + String termMax = ""; + String isFixedRate = ""; + String rateTermMin = ""; + String rateTermMax = ""; + if ( productRate != null ) { + termMin = productRate.get("TermScope-MIN"); + termMax = productRate.get("TermScope-MAX"); + isFixedRate = productRate.get("isFixedRate"); + rateTermMin = productRate.get("RateTermScope-MIN"); + rateTermMax = productRate.get("RateTermScope-MAX"); + } if("02".equals(termType)){ doTemp.setColumnAttribute("INCOME_NUMBER", "coleditstyle", "1"); - + } + if("N".equals(isFixedRate)){ + doTemp.setReadOnly("YEAR_RATE", false); + doTemp.setRequired("YEAR_RATE", true); + }else{ + doTemp.setReadOnly("YEAR_RATE", true); + } + String bondAndPaymentsMin = ""; + String bondAndPaymentsMan = ""; + if ( "Y".equals( flexible ) ) { + doTemp.setReadOnly( "YEAR_RATE", false ); + doTemp.setHtmlEvent( "YEAR_RATE", "onchange", "changeYearRate" ); // 年利率事件 + doTemp.setHtmlEvent( "RENT_VALUE", "onchange", "changeRentValue" ); // 预计租金事件 + doTemp.setDefaultValue( "GPS_DIFFERENCE", ProductParamUtil.getProductParameterValue( productId, "PRD0390", "GPSDifference", "GPSDifference" ) ); + + Map> ProductRevenue = ProductParamUtil.getProductComponentType(productId, "PRD0390"); + Map bondAndPayments = ProductRevenue.get("bondAndPayments"); + bondAndPaymentsMin = bondAndPayments.get("bondAndPayments-MIN"); + bondAndPaymentsMan = bondAndPayments.get("bondAndPayments-MAX"); + } + /*设置字段事件*/ doTemp.setHtmlEvent("SETTLE_METHOD", "onchange", "changeSettleMethod");//租金计算方式 doTemp.setHtmlEvent("RENT_OR_RATE", "onchange", "rentOrRateChange");//租金推算方法 @@ -114,6 +157,7 @@ doTemp.setHtmlEvent("FIRST_PLAN_DATE", "onchange", "changeFistPlanDate");//第一期计划日期 doTemp.setHtmlEvent("CORPUS_RATIO", "onchange", "changeCorpusRatio");//期限内本金比例 doTemp.setHtmlEvent("EQUIP_AMT", "onchange", "changgeCompare");//车价 + doTemp.setHtmlEvent("SUBSECTION_CONDIG", "onchange", "changeSubsectionConfig");//车价 /*设置字段事件*/ /*设置模板属性*/ @@ -121,22 +165,22 @@ //费用规则 ProductCondition pc=new ProductCondition(); pc.getProductFundRules(doTemp, productId); - String calcRules=pc.getProductRules(doTemp, productId,vali); - + String calcRules=pc.getProductRules(doTemp, productId, vali, flowunid ); + //获取产品名称 BizObject bo = JBOFactory.createBizObjectQuery(BUSINESS_TYPE.CLASS_NAME,"typeno=:productID") - .setParameter("productID", productId).getSingleResult(false); + .setParameter("productID", productId).getSingleResult(false); String productName = (bo==null)?"":bo.getAttribute("typename").getString(); - + //非车辆产品,融资额可编辑 String productType = Sqlca.getString(new SqlObject("select attribute2 from business_type where typeno='"+productId+"'")); if("car_product".equals(productType)){ doTemp.setReadOnly("CLEAN_LEASE_MONEY", true); }else if("business_product".equals(productType)){ - // doTemp.setVisible("CORPUS_RATIO", true); - // doTemp.setVisible("CORPUS", true); - // doTemp.setRequired("CORPUS_RATIO", true); - } + // doTemp.setVisible("CORPUS_RATIO", true); + // doTemp.setVisible("CORPUS", true); + // doTemp.setRequired("CORPUS_RATIO", true); + } if("quoted_price".equals(calType)){//客户报价 流程号存的是客户主键 doTemp.setDefaultValue("cust_id", flowunid); } @@ -150,155 +194,191 @@ doTemp.setDataQueryClass("com.tenwa.lease.flow.flowarchive.calcarchive.CalcCondtionInfoArachiveShow");//如果是历史则新显示历史数据 } */ /*设置模板属性*/ - + /*设置页面属性*/ CurPage.getCurComp().setAttribute("RightType", null); Parameter p=new Parameter("plannumber",plannumber); Vector v=CurPage.parameterList; v.add(p); - /*设置页面属性*/ + /*设置页面属性*/ boolean flag=CurUser.hasRole("401"); if(CurUser.hasRole("401")){ doTemp.setVisible("CAUTION_MONEY_METHOD",false); doTemp.setVisible("DISCOUNT", false); - // doTemp.setColumnAttribute("DISCOUNT","colvisible","0"); - } + //doTemp.setVisible("DISCOUNT_INTEREST", true); + // doTemp.setColumnAttribute("DISCOUNT","colvisible","0"); + } if(CurUser.hasRole("800R00000013")||CurUser.hasRole("800R00000014")||CurUser.hasRole("800R00000015")){ doTemp.setVisible("YEAR_RATE", true); doTemp.setVisible("RENT_RATIO",true); } - + ASObjectWindowCalc dwTemp = new ASObjectWindowCalc(CurPage, doTemp,request); - - + + dwTemp.Style = "2";//freeform - if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.equals("true"))||"ContractOnhireCarChangeFlow".equals(flowNo)){ - dwTemp.ReadOnly = "1";//只读模式 - isShowButton=false; - RightType="ReadOnly"; - }else{ - isShowButton=true; - } + + dwTemp.ReadOnly = "1";//只读模式 + isShowButton=false; + RightType="ReadOnly"; + dwTemp.setVali(vali); dwTemp.setAttr("inputWidth","120"); dwTemp.setAttr("spanWidth","107"); dwTemp.setAttr("showRatio", true); dwTemp.genHTMLObjectWindow(flowunid); CurPage.getCurComp().setAttribute("RightType", RightType); - + String compClientID = request.getParameter("CompClientID"); - dwTemp.replaceColumn("condition_plan", "", CurPage.getObjectWindowOutput()); - //dwTemp.replaceColumn("even_subsection", "", CurPage.getObjectWindowOutput()); + dwTemp.replaceColumn("condition_plan", "", CurPage.getObjectWindowOutput()); + //dwTemp.replaceColumn("even_subsection", "", CurPage.getObjectWindowOutput()); //dwTemp.replaceColumn("knowing_config", "", CurPage.getObjectWindowOutput()); + dwTemp.replaceColumn("subsection_info", "", CurPage.getObjectWindowOutput()); + String businessDate = DateHelper.getBusinessDate(); - + //获取对应车辆指导价 BizObject bo1 = JBOFactory.createBizObjectQuery(LB_EQUIPMENT_CAR_TEMP.CLASS_NAME,"PROJECT_ID=:projectId") .setParameter("projectId",projectId).getSingleResult(false); String nowTotal = (bo1==null)?"":bo1.getAttribute("NOW_TOTAL").getString(); - String sButtons[][] = { - //{"true","All","Button","重置","重置","reloadSelf()","","","",""}, - //{"true","All","Button","租金测算","租金测算","saveRecord()","","","","btn_icon_save"}, - // {((isCarProduct) && ("proj_process".equals(calType)||"cont_process".equals(calType)))?"true":"false","","Button","引入客户报价","引入客户报价","importCustomerQuot()","","","","btn_icon_edit"} + //{"true","All","Button","重置","重置","reloadSelf()","","","",""}, + //{"true","All","Button","租金测算","租金测算","saveRecord()","","","","btn_icon_save"}, + // {((isCarProduct) && ("proj_process".equals(calType)||"cont_process".equals(calType)))?"true":"false","","Button","引入客户报价","引入客户报价","importCustomerQuot()","","","","btn_icon_edit"} }; %><%@ include file="/Frame/resources/include/ui/include_info.jspf"%> <%@ include file="/Frame/resources/include/include_end.jspf"%> diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java index c11c49e31..1623fdbb7 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java @@ -30,6 +30,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness { String MONEYNOTAX = null; String MONEYTAX = null; String CORPUS_ADD_INTEREST_TAX = null; + String INTERESTNOTAX = null; String DEDITMONEY_NOTAX = null; String CORPUS = null; String INTEREST = null; @@ -52,7 +53,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness { // 保证金抵扣 if("PZ2018072100000053".equals(VOUCHERNO) || "PZ2019070100000026".equals(VOUCHERNO)){ - sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'本金',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,IFNULL(LFIT.FACT_MONEY, 0) AS MONEY,IFNULL(ROUND(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) AS MONEYNOTAX,IFNULL((LRIT.PENALTY - ROUND(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)),0) AS MONEYTAX,'0.00' AS DEDITMONEY_NOTAX,IFNULL(LRIT.CORPUS, 0) AS CORPUS,IFNULL(LRIT.INTEREST, 0) AS INTEREST,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_CALC_CONDITION LCCT LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT SUM(LRIT.CORPUS) CORPUS,SUM(LRIT.INTEREST) INTEREST,SUM(LRIT.PENALTY) PENALTY,LRIT.FLOWUNID,LRIT.CONTRACT_ID FROM LC_RENT_INCOME_TEMP LRIT WHERE LRIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lrit.FLOWUNID,LRIT.CONTRACT_ID) LRIT ON LRIT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT SUM(LFIT.FACT_MONEY) FACT_MONEY,lfit.contract_id FROM LC_FUND_INCOME_TEMP LFIT WHERE LFIT.FEE_TYPE = 'feetype16' AND LFIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lfit.contract_id) LFIT ON LFIT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE lul.IS_MAIN='Y' AND LCI.BUSINESSTYPE='1' AND LUL.IS_MAIN = 'Y' AND LRIT.FLOWUNID = :FLOWUNID "; + sql = "SELECT ROUND((getTax (lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM, IFNULL(LFIT.FACT_MONEY, 0) AS MONEY, IFNULL(ROUND(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) AS MONEYNOTAX, IFNULL((LRIT.PENALTY - ROUND(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)),0)+IFNULL(IFNULL(LRIT.INTEREST, 0)-ROUND(IFNULL(LRIT.INTEREST, 0)/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS MONEYTAX, '0.00' AS DEDITMONEY_NOTAX, IFNULL(LRIT.CORPUS, 0) AS CORPUS, IFNULL(LRIT.INTEREST, 0) AS INTEREST, IFNULL(ROUND(IFNULL(LRIT.INTEREST, 0)/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS INTEREST_NOTAX, DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_CALC_CONDITION LCCT LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT SUM(LRIT.CORPUS) CORPUS, SUM(LRIT.INTEREST) INTEREST, SUM(LRIT.PENALTY) PENALTY, LRIT.FLOWUNID, LRIT.CONTRACT_ID FROM LC_RENT_INCOME_TEMP LRIT WHERE LRIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lrit.FLOWUNID, LRIT.CONTRACT_ID) LRIT ON LRIT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT SUM(LFIT.FACT_MONEY) FACT_MONEY, lfit.contract_id FROM LC_FUND_INCOME_TEMP LFIT WHERE LFIT.FEE_TYPE = 'feetype16' AND LFIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lfit.contract_id) LFIT ON LFIT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE lul.IS_MAIN = 'Y' AND LCI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LRIT.FLOWUNID = :FLOWUNID"; // 确认未实现利息收入-抵扣租金利息 }else if("PZ2019070100000027".equals(VOUCHERNO)){ sql = "SELECT ROUND((getTax (lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,IFNULL(ROUND(LRIT.INTEREST / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS MONEYNOTAX, IFNULL((LRIT.CORPUS - ROUND(LRIT.CORPUS / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)),0) AS MONEYTAX,((IFNULL(LRIT.CORPUS, 0) - ROUND(IFNULL(LRIT.CORPUS, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM (SELECT SUM(LRIT.CORPUS) CORPUS,SUM(LRIT.INTEREST) INTEREST,SUM(LRIT.PENALTY) PENALTY,LRIT.FLOWUNID,LRIT.CONTRACT_ID,LRIT.PLAN_LIST FROM LC_RENT_INCOME_TEMP LRIT WHERE LRIT.SETTLE_METHOD = 'settlemethod7' GROUP BY LRIT.FLOWUNID,LRIT.CONTRACT_ID,LRIT.PLAN_LIST) LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE lul.IS_MAIN = 'Y' AND LCI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND DATE_FORMAT(NOW(),'%Y%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y%m') AND LRIT.FLOWUNID = :FLOWUNID "; @@ -74,6 +75,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness { DEDITMONEY_NOTAX = dataList.get(i).get("DEDITMONEY_NOTAX"); CORPUS = dataList.get(i).get("CORPUS"); INTEREST = dataList.get(i).get("INTEREST"); + INTERESTNOTAX = dataList.get(i).get("INTEREST_NOTAX"); ACCOUNT_DATE = dataList.get(i).get("ACCOUNT_DATE").toString(); FACT_DATE = dataList.get(i).get("FACT_DATE").toString(); CONTRACT_ID = dataList.get(i).get("CONTRACT_ID"); @@ -100,6 +102,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness { param.put("DEDITMONEY_NOTAX", DEDITMONEY_NOTAX); param.put("CORPUS", CORPUS); param.put("INTEREST", INTEREST); + param.put("INTERESTNOTAX", INTERESTNOTAX); param.put("ACCOUNT_DATE", ACCOUNT_DATE); param.put("FACT_DATE", FACT_DATE); param.put("CONTRACT_ID", CONTRACT_ID); @@ -111,6 +114,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness { param.put("CUSTID", CUSTID); param.put("CUSTNAME", CUSTNAME); param.put("CUSTOMERTYPE", CUSTOMERTYPE); + param.put("VOUCHERNO", VOUCHERNO); param.put("BUSINESSTYPE", "0603"); param.put("FlowUnid", FlowUnid); if(TAX_CODES!=null) { diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney2.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney2.java new file mode 100644 index 000000000..361804eb4 --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney2.java @@ -0,0 +1,131 @@ +package com.tenwa.voucher.CreateVoucherProcess; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import jbo.voucher.LV_VOUCHER_CONFIG; +import jbo.voucher.TAX_CODE; +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.awe.util.Transaction; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl; + +public class CreateVoucherDepositDeductionToMoney2 { + + public String CreateVoucher(String VOUCHERNO,String userid,Transaction Sqlca,String DEDUCTION_ID) throws Exception { + + Map map = new HashMap(); + Map param = new HashMap(); + CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl(); + String VOUCHER_TYPE = "1"; + + String F58=null; + String MONEY = null; + String MONEYNOTAX = null; + String MONEYTAX = null; + String CORPUS_ADD_INTEREST_TAX = null; + String INTERESTNOTAX = null; + String DEDITMONEY_NOTAX = null; + String CORPUS = null; + String INTEREST = null; + String ACCOUNT_DATE = null; + String FACT_DATE = null; + String CONTRACT_ID = null; + String CONTRACT_NUMBER = null; + String PROJECT_NAME = null; + String leas_form = null; + String DISTRIBUTOR_ID = null; + String DISTRIBUTOR_NAME = null; + String CUSTID = null; + String CUSTNAME = null; + String CUSTOMERTYPE = null; + String TAX_NUM = null; + String sql = ""; + param.clear(); + map.put("DEDUCTION_ID", DEDUCTION_ID); + + // 保证金自动抵扣 + if("PZ2021091700000031".equals(VOUCHERNO) || "PZ2021091700000032".equals(VOUCHERNO)){ + sql = "SELECT LRI.ID AS F58,ROUND((getTax (lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM, IFNULL(LRI.RENT, 0)+IFNULL(LRI.PENALTY , 0) AS MONEY, IFNULL(IFNULL(LRI.INTEREST, 0) - ROUND(IFNULL(LRI.INTEREST, 0) / GETTAX (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS MONEYTAX, IFNULL(LRI.CORPUS, 0) AS CORPUS, IFNULL(LRI.INTEREST, 0) AS INTEREST, IFNULL(ROUND(IFNULL(LRI.INTEREST, 0) / GETTAX (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS INTEREST_NOTAX, DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_RENT_INCOME LRI LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LCCT.CONTRACT_ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE lul.IS_MAIN = 'Y' AND LCI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LRI.DEDUCTION_ID=:DEDUCTION_ID"; + } + + // 查询sql, 将结果集封装到list集合中 + List> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql, map); + + //遍历获取结果集, 将结果写入map中 + for (int i = 0; i < dataList.size(); i++) { + MONEY = dataList.get(i).get("MONEY").toString(); + if ("".equals(MONEY)||MONEY == null)MONEY = "0.00"; + double mon = Double.parseDouble(MONEY); + // 判断有金额, 封装值到map中 + if (Math.abs(mon) > 0) { + MONEYNOTAX = dataList.get(i).get("MONEYNOTAX"); + MONEYTAX = dataList.get(i).get("MONEYTAX"); + CORPUS_ADD_INTEREST_TAX = dataList.get(i).get("CORPUS_ADD_INTEREST_TAX"); + DEDITMONEY_NOTAX = dataList.get(i).get("DEDITMONEY_NOTAX"); + CORPUS = dataList.get(i).get("CORPUS"); + INTEREST = dataList.get(i).get("INTEREST"); + INTERESTNOTAX = dataList.get(i).get("INTEREST_NOTAX"); + ACCOUNT_DATE = dataList.get(i).get("ACCOUNT_DATE").toString(); + FACT_DATE = dataList.get(i).get("FACT_DATE").toString(); + CONTRACT_ID = dataList.get(i).get("CONTRACT_ID"); + CONTRACT_NUMBER = dataList.get(i).get("CONTRACT_NUMBER"); + PROJECT_NAME = dataList.get(i).get("PROJECT_NAME"); + leas_form = dataList.get(i).get("LEAS_FORM"); + DISTRIBUTOR_ID = dataList.get(i).get("DISTRIBUTOR_ID"); + DISTRIBUTOR_NAME = dataList.get(i).get("DISTRIBUTOR_NAME"); + CUSTID = dataList.get(i).get("CUSTOMERID"); + CUSTNAME = dataList.get(i).get("CUSTOMERNAME"); + CUSTOMERTYPE = dataList.get(i).get("CUSTOMERTYPE"); + TAX_NUM = dataList.get(i).get("TAX_NUM"); + F58 = dataList.get(i).get("F58"); + // 通过税率获取编码 + BizObject TAX_CODES=null; + if(TAX_NUM!=null && !"".equals(TAX_NUM)) { + TAX_CODES=JBOFactory.createBizObjectQuery(TAX_CODE.CLASS_NAME,"TAX_NUMBER='"+TAX_NUM+"'").getSingleResult(false); + } + + param.put("FACT_MONEY", MONEY); + param.put("INTERESTNOTAX", MONEYNOTAX); + param.put("TAX", MONEYTAX); + param.put("CORPUS_ADD_INTEREST_TAX", CORPUS_ADD_INTEREST_TAX); + param.put("DEDITMONEY_NOTAX", DEDITMONEY_NOTAX); + param.put("CORPUS", CORPUS); + param.put("INTEREST", INTEREST); + param.put("INTERESTNOTAX", INTERESTNOTAX); + param.put("ACCOUNT_DATE", ACCOUNT_DATE); + param.put("FACT_DATE", FACT_DATE); + param.put("CONTRACT_ID", CONTRACT_ID); + param.put("CONTRACT_NUMBER", CONTRACT_NUMBER); + param.put("PROJECT_NAME", PROJECT_NAME); + param.put("LEAS_FORM", leas_form); + param.put("DISTRIBUTOR_ID", DISTRIBUTOR_ID); + param.put("DISTRIBUTOR_NAME", DISTRIBUTOR_NAME); + param.put("CUSTID", CUSTID); + param.put("CUSTNAME", CUSTNAME); + param.put("CUSTOMERTYPE", CUSTOMERTYPE); + param.put("VOUCHERNO", VOUCHERNO); + param.put("BUSINESSTYPE", "0603"); + param.put("F58", F58); + if(TAX_CODES!=null) { + param.put("TAX_CODE",TAX_CODES.getAttribute("TAX_CODES").getString()); + } + + map.clear(); + map.put("PROJ_TYPE", leas_form); + map.put("VOUCHER_NO", VOUCHERNO); + // 根据map中的参数, 查询LV_VOUCHER_CONFIG表数据 + BizObject vouch = DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca); + // 如果结果不为空, + if (vouch != null) { + //将创建凭证的参数传入在下一层 + vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(),vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid, param,Sqlca); + } + } + } + + String sMessage = "true"; + return sMessage; + } +} diff --git a/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java b/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java index cd4267a00..906f91782 100644 --- a/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java +++ b/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java @@ -502,6 +502,26 @@ public class CreateVoucherServiceImpl { subData.putAll(this.getAuxiliaryData(tx, param,subData,sub.getAttribute("AUXILIARY_TYPE").getString())); } + /** + * 保证金抵扣业务类型配置 + */ + if("PZ2018072100000053".equals(VOUCHERNO) || "PZ2019070100000026".equals(VOUCHERNO)) { + if("3".equals(SORT_NUMBER)) { + subData.put("BUSINESSTYPE", "0604"); + } + if("4".equals(SORT_NUMBER)) { + subData.put("BUSINESSTYPE", "0602"); + } + if("5".equals(SORT_NUMBER)) { + subData.put("BUSINESSTYPE", "0603"); + } + } + if("PZ2021091700000031".equals(VOUCHERNO) || "PZ2021091700000032".equals(VOUCHERNO)) { + if("3".equals(SORT_NUMBER)) { + subData.put("BUSINESSTYPE", "0604"); + } + } + /*// 需要带经销商编码的在此匹配 if("PZ2018092500000156".equals(VOUCHERNO) || "PZ2019072000000074".equals(VOUCHERNO) || "PZ2018092500000164".equals(VOUCHERNO) || "PZ2019072000000079".equals(VOUCHERNO) || "PZ2019072200000108".equals(VOUCHERNO) || "PZ2019072200000114".equals(VOUCHERNO)) { if("2".equals(SORT_NUMBER)) { diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/MarginDeduction.java b/src_tenwa/com/tenwa/lease/app/quartzmession/MarginDeduction.java index d81751f19..8cb662d4a 100644 --- a/src_tenwa/com/tenwa/lease/app/quartzmession/MarginDeduction.java +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/MarginDeduction.java @@ -9,6 +9,8 @@ import java.util.UUID; import com.base.util.DateUtil; import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherDepositDeductionToMoney2; + import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; @@ -143,6 +145,13 @@ public class MarginDeduction implements Job{ lrp.setAttributeValue("COLLECT_MSG","保证金抵扣"); lrpBm.saveObject(lrp); } + + /** + * 生成凭证 + */ + CreateVoucherDepositDeductionToMoney2 cddm = new CreateVoucherDepositDeductionToMoney2(); + cddm.CreateVoucher("PZ2021091700000031", "admin", Sqlca,fundIncomeId); + cddm.CreateVoucher("PZ2021091700000032", "admin", Sqlca,fundIncomeId); } }