⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uipremiuminvoiceprintfacade.java

📁 用java实现的套打程序.请参考一定的jsp文件.注意类的变化.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            }
            
            //在附注栏显示共X张保批单信息
            if(arrCertiNo1.length>1){
                printNo="合发票"+printNo;
//                strRemark = strRemark + "  共" + arrCertiNo1.length + "张保批单";
                if (strComCodeP.substring(0, 2).equals("4403"))//深圳分公司发票特殊处理
                    strRemark =   strRemark+ "  " +agentCode;
//                else
//                    strRemark = strRemark + " 合发票";
            }
            
            //异币种发票要显示在附注栏 显示原币种和总金额
            if(!arrCurrency1[0].equals(arrCurrency2[0]))
            {
                double totalPlanFee = 0;
                for(int m=0;m<arrPlanFee.length;m++)
                {
                    totalPlanFee += Double.parseDouble(arrPlanFee[m]);
                }
                strRemark = strRemark + "  原保险费金额 " + arrCurrency1[0] + totalPlanFee;
            }            
            //归并后的保批单号按照如下规则显示在发票中
            //1条记录 只显示在保批单号栏
            //2条记录 分两行靠左显示在保批单号栏
            //3条记录 第一行两条,第二行靠左一条
            //4条记录 两行两列显示在保批单号栏
            //5条或5条以上记录 前4条两行两列显示在保批单号栏,从第5条开始每两条作为一行显示在附注栏
            
            //归并后的附注栏信息按照如下规则显示在发票中
            //如果附注栏有保批单号,则另起一行显示附注信息,如果没有保批单号,则在第一行显示附注信息,注意用/n换行
            //附注信息包括 1/收付员打印发票时填写的信息  2合开发票时的"共X张保批单" 3异币种收款时,原币种和金额提示
            double countTaxActual=Double.parseDouble(amountTaxActual)+Double.parseDouble(amountPreviousPay);
            String enter="\n";
            if(Double.parseDouble(amountTaxActual)!=0||Double.parseDouble(amountPreviousPay)!=0||Double.parseDouble(amountLateFee)!=0){
                strTaxRemark = "代收车船税:"+Amount.toChineseMoney(countTaxActual,arrCurrency2[0])+" (往年" + amountPreviousPay 
                               + "元,当年" + amountTaxActual + "元,小计:"+countTaxActual+")" ;
                               if(Double.parseDouble(amountLateFee)!=0){
                                   strTaxRemark+="\n 代收滞纳金:" + Amount.toChineseMoney(Double.parseDouble(amountLateFee),arrCurrency2[0])+"元 ";
                                   enter="";
                                }
                               strTaxRemark+=enter+"总计:" +Amount.toChineseMoney(Double.parseDouble(amount),arrCurrency2[0])  + "("+Amount.toAccount(amount)+")";
            }
            if (arrCertiNoMerge.length == 0) {//出错处理,没有归并的保批单记录
                
                // 保批单号
                CertiNoDto certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo("");
                certiNoDtoList.add(certiNoDto);
                // 附注,包括附注和保批单号
                CertiNoListDto certiNoListDto = new CertiNoListDto();
                certiNoListDto.setCertiNoList(strRemark+strTaxRemark);
                certiNoListDtoList.add(certiNoListDto);

            } else if (arrCertiNoMerge.length == 1) {//有1条保批单记录

                // 保批单号
                CertiNoDto certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo(arrCertiNoMerge[0]);
                certiNoDtoList.add(certiNoDto);
                // 附注,包括附注和保批单号
                CertiNoListDto certiNoListDto = new CertiNoListDto();
                certiNoListDto.setCertiNoList(strRemark+strTaxRemark);
                certiNoListDtoList.add(certiNoListDto);

            } else if (arrCertiNoMerge.length == 2) {//有2条保批单记录

                for (int i = 0; i < 2; i++) {
                    // 保批单号
                    CertiNoDto certiNoDto = new CertiNoDto();
                    certiNoDto.setCertiNo(arrCertiNoMerge[i]);
                    certiNoDtoList.add(certiNoDto);
                }
                // 附注,包括附注和保批单号
                CertiNoListDto certiNoListDto = new CertiNoListDto();
                certiNoListDto.setCertiNoList(strRemark+strTaxRemark);
                certiNoListDtoList.add(certiNoListDto);
            } else if (arrCertiNoMerge.length == 3) {//有3条保批单记录

                String strTemp1 = arrCertiNoMerge[0] + "    " + arrCertiNoMerge[1];
                String strTemp2 = arrCertiNoMerge[2];

                // 保批单号
                CertiNoDto certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo(strTemp1);
                certiNoDtoList.add(certiNoDto);

                certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo(strTemp2);
                certiNoDtoList.add(certiNoDto);

                // 附注,包括附注和保批单号
                CertiNoListDto certiNoListDto = new CertiNoListDto();
                certiNoListDto.setCertiNoList(strRemark+strTaxRemark);
                certiNoListDtoList.add(certiNoListDto);

            } else if (arrCertiNoMerge.length == 4) {//有4条保批单记录
                String strTemp1 = arrCertiNoMerge[0] + "    " + arrCertiNoMerge[1];
                String strTemp2 = arrCertiNoMerge[2] + "    " + arrCertiNoMerge[3];

                // 保批单号
                CertiNoDto certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo(strTemp1);
                certiNoDtoList.add(certiNoDto);

                certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo(strTemp2);
                certiNoDtoList.add(certiNoDto);

                // 附注,包括附注和保批单号
                CertiNoListDto certiNoListDto = new CertiNoListDto();
                certiNoListDto.setCertiNoList(strRemark+strTaxRemark);
                certiNoListDtoList.add(certiNoListDto);

            } else if (arrCertiNoMerge.length > 4) {//有4条以上保批单记录

                String strTemp1 = arrCertiNoMerge[0] + "    " + arrCertiNoMerge[1];
                String strTemp2 = arrCertiNoMerge[2] + "    " + arrCertiNoMerge[3];

                // 保批单号
                CertiNoDto certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo(strTemp1);
                certiNoDtoList.add(certiNoDto);

                certiNoDto = new CertiNoDto();
                certiNoDto.setCertiNo(strTemp2);
                certiNoDtoList.add(certiNoDto);

                // 附注,包括附注和保批单号
                for (int i = 4; i < arrCertiNoMerge.length; i++) {
                    CertiNoListDto certiNoListDto = new CertiNoListDto();
                    certiNoListDto.setCertiNoList(arrCertiNoMerge[i]);
                    certiNoListDtoList.add(certiNoListDto);
                }
                CertiNoListDto certiNoListDto = new CertiNoListDto();
                certiNoListDto.setCertiNoList(strRemark+strTaxRemark);
                certiNoListDtoList.add(certiNoListDto);
            }
            //liufengyao组合strVisaRemark的值
            strVisaRemark  = "付款人(发票抬头):"+strPayRefName+",开票金额:"+Amount.toAccount(amount)+","
                           + "经办人:"+strVisaHanlerName+",收付员:"+payeeName;
            
            InvoicePrintDto invoicePrintDto = new InvoicePrintDto();
            invoicePrintDto.setAmount(Amount.toAccount(amountReal));
            invoicePrintDto.setCertiNo(certiNoDtoList);
            invoicePrintDto.setCertiNoList(certiNoListDtoList);
            invoicePrintDto.setRiskName(riskNameDtoList);
            amountName = Amount.toChineseMoney(Double.parseDouble(amountReal),strCurrency);
            invoicePrintDto.setAmountName(amountName);
            
//          lvzhijun 增加发票打印内容 20070619
            invoicePrintDto.setPrintNo(printNo);
            invoicePrintDto.setLicenseNo(licenseNo);         
            invoicePrintDto.setCurrency(strCurrency);
            invoicePrintDto.setCurrencyName(strCurrencyName);
            invoicePrintDto.setInvoiceDate(invoiceDate);
            invoicePrintDto.setLost(strLost);
            invoicePrintDto.setPayeeName(payeeName);
            invoicePrintDto.setPayRefName(payRefName);
            invoicePrintDto.setVisaHanlerName(strVisaHanlerName);
            //停用Remark模板属性,但未从模板和InvoicePrintDto中删除
            invoicePrintDto.setRemark(strRemark);
            invoicePrintDto.setInvoiceNumber(prpJpayRefRecSchema.getVisaCode() + "    " + prpJpayRefRecSchema.getVisaSerialNo());
            //add by zhangxiaofei 增加纳税人识别号,目前只有总公司发票管理单位
            if(strComCode.equals("00000000")){
            	invoicePrintDto.setNaShuiId("110105717868210");          	
            }
            InvoicePrintDtoList.add(invoicePrintDto);
            //所有数据准备完成后更新发票和金额
            blPrpJpayRefRec.payInvoice(arrCertiType1, arrCertiNo1,
                    arrSerialNo1, arrPayRefReason1, arrPayRefTimes1,
                    prpJpayRefRecSchema,strVisaRemark);
            return InvoicePrintDtoList;
        }
        //单开发票
       
        if (invoiceType.equals("2")) {
            // 先判断发票张数
            int printFlag = 0;
            if (invoiceType.equals("2")) {
                for (int i = 0, j = 0; i < arrCheckFlag.length; i++) {
                    if (arrCheckFlag[i].equals("Y")) {
                        printFlag++;
                    }
                }
            }
            for (int i = 0, j = 0; i < arrCheckFlag.length; i++) {
                if (arrCheckFlag[i].equals("Y")) {
                    prpJpayRefRecSchema.setVisaSerialNo(arrInvoiceNo[i]);
                    prpJpayRefRecSchema.setPayRefName(arrAppliName[i]);
                    InvoicePrintDto invoicePrintDto = new InvoicePrintDto();
                    CertiNoDto certiNoDto = new CertiNoDto();
                    CertiNoListDto certiNoListDto = new CertiNoListDto();
                    certiNoListDtoList = new ArrayList();
                    riskNameDtoList = new ArrayList();
                    certiNoDtoList = new ArrayList();
                    riskNameDto = new RiskNameDto();
                    certiNoDto.setCertiNo(arrCertiNo[i]);
                    certiNoDtoList.add(certiNoDto);
                    // lvzhijun 增加发票打印内容 20070619
                    dbPrpCmain.getInfo(arrCertiNo[i]);
                    dbPrpCitemCar.getInfo(arrCertiNo[i], "1");
                    // 增加保单流水号和车牌号
                    printNo = " \n保单流水号:" + dbPrpCmain.getPrintNo();
                    if (arrClassCode[i].equals("05")) {
                        dbPrpCitemCar.getInfo(arrCertiNo[i], "1");
                        licenseNo = "车     牌     号:" + dbPrpCitemCar.getLicenseNo();
                    }
                    // printNo=dbPrpCmain.getPrintNo();
                    // licenseNo=dbPrpCitemCar.getLicenseNo();
                    // 异币种发票要显示在附注栏 显示原币种和金额
                    String strAppendix = "";
                    if (!arrCurrency1[j].equals(arrCurrency2[j])) {
                        strAppendix = " 原保险费金额 " + arrCurrency1[j] + arrPlanFee[j] + " ";
                        j++;
                    }
                    // 将附注信息从Remark移到CertiNoListDtoList显示,模板中不显示Remark属性
                    certiNoListDto.setCertiNoList(strRemark + "  " + strAppendix);
                    certiNoListDtoList.add(certiNoListDto);
                    // liufengyao组合strVisaRemark的值
                    strVisaRemark = "付款人(发票抬头):" + arrAppliName[i] + ",开票金额:" + Amount.toAccount(arrPayrefFee[i]) + ","
                            + "经办人:" + strVisaHanlerName + ",收付员:" + payeeName;
                    // 修改收付费记录,发票状态等
                    String[] arrCertiTypeT = new String[1];
                    String[] arrCertiNoT = new String[1];
                    String[] arrSerialNoT = new String[1];
                    String[] arrPayRefReasonT = new String[1];
                    String[] arrPayRefTimesT = new String[1];
                    arrCertiTypeT[0] = arrCertiType[i];
                    arrCertiNoT[0] = arrCertiNo[i];
                    arrSerialNoT[0] = arrSerialNo[i];
                    arrPayRefReasonT[0] = arrPayRefReason[i];
                    arrPayRefTimesT[0] = arrPayRefTimes[i];
                    String strRiskName = blPrpDrisk.translateCode(arrRiskName[i], true);
                    riskNameDto.setRiskName(strRiskName);
                    riskNameDtoList.add(riskNameDto);

                    invoicePrintDto.setCertiNo(certiNoDtoList);
                    invoicePrintDto.setRiskName(riskNameDtoList);
                    invoicePrintDto.setCertiNoList(certiNoListDtoList);
                    invoicePrintDto.setAmount(Amount.toAccount(arrPayrefFee[i]));

                    amountName = Amount.toChineseMoney(Double.parseDouble(arrPayrefFee[i]), strCurrency);
                    // lvzhijun 增加发票打印内容 20070619
                    invoicePrintDto.setPrintNo(printNo);
                    invoicePrintDto.setLicenseNo(licenseNo);

                    invoicePrintDto.setAmountName(amountName);
                    invoicePrintDto.setCurrency(strCurrency);
                    invoicePrintDto.setCurrencyName(strCurrencyName);
                    invoicePrintDto.setInvoiceDate(invoiceDate);
                    invoicePrintDto.setLost(strLost);
                    invoicePrintDto.setPayeeName(payeeName);
                    // invoicePrintDto.setPayRefName(payRefName);
                    invoicePrintDto.setPayRefName(arrAppliName[i]);
                    if(strComCode.equals("00000000")){ //纳税人识别号
                    	invoicePrintDto.setNaShuiId("110105717868210");          	
                    }
                    if (printFlag != 1)
                        invoicePrintDto.setVisaHanlerName(strVisaHanlerName);
                    else{
                        invoicePrintDto.setVisaHanlerName(arrHandlerName[i]);
                    }
                    // 停用Remark模板属性,但未从模板和InvoicePrintDto中删除
                    // if (strComCodeP.substring(0, 2).equals("44"))//
                    // 深圳分公司发票特殊处理
                    // invoicePrintDto.setRemark(agentCode);
                    // else
                    invoicePrintDto.setRemark(strRemark);
                    // invoicePrintDto.setRemark("");
                    invoicePrintDto.setInvoiceNumber(prpJpayRefRecSchema.getVisaCode() + "    " + arrInvoiceNo[i]);
                    InvoicePrintDtoList.add(invoicePrintDto);
                    // 所有数据准备完成后更新发票和金额
                    blPrpJpayRefRec.payInvoice(arrCertiTypeT, arrCertiNoT, arrSerialNoT, arrPayRefReasonT,
                            arrPayRefTimesT, prpJpayRefRecSchema, strVisaRemark);
                }

            }
            return InvoicePrintDtoList;

        }
        return InvoicePrintDtoList;

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -