/** * 拆分到辅组织汇兑损益应付单-始发地 * * @param objF * @return */ private AggExchangeAssistSyfHVO SplitToAssistSyfStart(Object[] objF, Object[] objSYF) throws BusinessException { AggExchangeAssistSyfHVO aggvo = new AggExchangeAssistSyfHVO(); ExchangeAssistSyfHVO hvo = InitSyfAssistHVO(objF, objSYF); // --差异部分: hvo.setPk_org(insertBP.getAssisOrg(objF)); // 组织 hvo.setDept(insertBP.getAssist_dpm(objF).getPk_dept()); // 组织部门 hvo.setOriginal_sum(new UFDouble(origin_start)); hvo.setLocal_sum(new UFDouble(local_start)); hvo.setBill_org(hvo.getPk_org()); // 单据组织=组织 hvo.setFinance(insertBP.getFinance(hvo.getBill_org())); // 财务账簿 // --差异部分 aggvo.setParent(hvo); ExchangeAssistSyfBVO[] bvos = new ExchangeAssistSyfBVO[1]; bvos[0] = initSyfAssistBVO(objF); bvos[0].setProperty(1); bvos[0].setBilltype(2); bvos[0].setBill_org(hvo.getBill_org()); bvos[0].setDept(hvo.getDept()); bvos[0].setOriginal_sum(new UFDouble(origin_start)); // 原币金额 bvos[0].setLocal_sum(new UFDouble(local_start)); // 本币金额 bvos[0].setFinance(insertBP.getFinance(hvo.getBill_org())); // 财务账簿 bvos[0].setTrader(insertBP.getTrader3(objF, 1)); // 客商 aggvo.setChildren(ExchangeAssistSyfBVO.class, bvos); return aggvo; }
/** * 天尚、海整、快递,这些SYF单据调用此方法 * * @param objSYF * @return */ private ExchangeSyfHVO notSplitSyfHVO(Object[] objSYF) throws UifException, ParseException, BusinessException { ExchangeSyfHVO hvo = initSyfHVO(objSYF); hvo.setLink(insertBP.getLink_NotSplit(objSYF)); // 航线 hvo.setProduct(insertBP.getFailProduct(objSYF)); // 产品 hvo.setBill_org(insertBP.getOrg_NotSplit(objSYF)); // 单据组织 hvo.setPk_org(insertBP.getOrg_NotSplit(objSYF)); // 组织 hvo.setDept(insertBP.getDept_NotSplit(objSYF).getPk_dept()); // 组织部门 return hvo; }
private ExchangeSyfBVO SplitToSyfStartBVO(Object[] objF, int billtype) throws BusinessException { ExchangeSyfBVO bvo = InitSyfBVO(objF); bvo.setProperty(1); bvo.setOriginal_sum(new UFDouble(origin_start)); // 原币金额 bvo.setLocal_sum(new UFDouble(local_start)); // 本币金额 bvo.setBill_org((String) insertBP.getBillOrg(objF, "始发地")); // 单据组织 bvo.setFinance(insertBP.getFinance(bvo.getBill_org())); // 财务账簿 bvo.setTrader(insertBP.getTrader3(objF, 1)); // 客商 bvo.setCustomer(insertBP.getClient(objF)); // 客户 bvo.setBilltype(billtype); // 单据类型 bvo.setDept(insertBP.getAssist_dpm(objF).getPk_dept()); // 组织部门 return bvo; }
/** * 不拆分的单据生成辅组织汇兑损益应付单 * * @return aggvo * @throws BusinessException */ private AggExchangeAssistSyfHVO notSplitAssistSyfHVO(Object[] objF, ExchangeSyfBVO bvo) throws BusinessException { AggExchangeAssistSyfHVO aggvo = new AggExchangeAssistSyfHVO(); ExchangeAssistSyfHVO hvo = InitSyfAssistHVO(objF, null); // 需要单独单独设置的字段 hvo.setOriginal_sum(new UFDouble(origin_temp)); hvo.setLocal_sum(new UFDouble(local_temp)); hvo.setPk_group(pk_group_choice); hvo.setProduct(bvo.getProduct()); hvo.setLink(bvo.getLink()); hvo.setBill_org(bvo.getBill_org()); hvo.setPk_org(bvo.getBill_org()); hvo.setDept(bvo.getDept()); aggvo.setParent(hvo); // 表体 ExchangeAssistSyfBVO[] bvos = new ExchangeAssistSyfBVO[1]; bvos[0] = initSyfAssistBVO(objF); bvos[0].setBilltype(3); // bvos[0].setProperty(bvo.getProperty());//属性,不拆分单据没有 bvos[0].setOriginal_sum(new UFDouble(origin_temp)); // 原币金额 bvos[0].setLocal_sum(new UFDouble(local_temp)); // 本币金额 bvos[0].setFinance(insertBP.getFinance(bvo.getBill_org())); // 财务账簿 // bvos[0].setTrader(insertBP.getTrader3(objF, 2));//客商 // 需要单独设置的字段 bvos[0].setProduct(bvo.getProduct()); bvos[0].setLink(bvo.getLink()); bvos[0].setBill_org(bvo.getBill_org()); bvos[0].setDept(bvo.getDept()); aggvo.setChildren(ExchangeAssistSyfBVO.class, bvos); return aggvo; }
/** * 判断F为不拆分单据时,调用此方法,生成一条bvo * * @param objF * @throws BusinessException */ private ExchangeSyfBVO copyWithoutSplitToSyfBvo(Object[] objF) throws BusinessException { ExchangeSyfBVO bvo = InitSyfBVO(objF); bvo.setBilltype(3); bvo.setOriginal_sum(new UFDouble(origin_temp)); bvo.setLocal_sum(new UFDouble(local_temp)); // 重新设置的字段 bvo.setProduct(""); bvo.setLink(""); bvo.setProduct(insertBP.getFailProductF(objF)); // 产品 bvo.setLink(insertBP.getLink_NotSplit(objF)); // 航线 bvo.setBill_org(insertBP.getOrg_NotSplit(objF)); // 单据组织 bvo.setFinance(insertBP.getFinance(bvo.getBill_org())); // 财务账簿 bvo.setDept(insertBP.getDept_NotSplit(objF).getPk_dept()); // 部门 bvo.setSupplier(getSupplier(objF)); // 供应商 return bvo; }
/** * 初始化 辅组织汇兑损益应付单的表体 * * @param objF * @return */ private ExchangeAssistSyfBVO initSyfAssistBVO(Object[] objF) throws BusinessException { ExchangeAssistSyfBVO bvo = new ExchangeAssistSyfBVO(); // 用于关联 汇兑损益应付单表头(即SYF的字段) bvo.setSyf_billno(SYF_Bill_no); bvo.setSyf_sellnum(SYF_Sellnum); bvo.setSyf_product(SYF_pk_product); // objF字段 bvo.setBill_no(objF[1].toString()); // 单据编号 bvo.setOrigin(insertBP.getAddr(objF)); // 始发地 bvo.setDestination(objF[3].toString()); // 目的地 bvo.setVoucher_note(objF[5].toString()); // 凭证摘要 bvo.setSell(insertBP.getSell(objF)); // 业务员 bvo.setCustomer(insertBP.getClient(objF)); // 客户 bvo.setSupplier(getSupplier(objF)); // 供应商 bvo.setProduct(insertBP.getProduct(objF)); // 获取产品 bvo.setLink(insertBP.getLink(objF)); // 航线 bvo.setClear_type(insertBP.getClear_type(objF)); // 结算方式 bvo.setVoucher_num(objF[13].toString()); // 凭证号 bvo.setCurrency(insertBP.getCurrency(objF)); // 币种 bvo.setRate(new UFDouble(Double.parseDouble(objF[17].toString()))); // 汇率 bvo.setSellnumber(objF[20].toString()); // 业务单号 bvo.setMainsellnumber(objF[21].toString()); // 主业务单号 bvo.setSell_date(SellDate); // 业务日期 bvo.setYear(objF[25].toString()); // 年 bvo.setMonth(objF[26].toString()); // 月 bvo.setAccounting_subject(getAccounting_subjectF(objF)); // 会计科目 bvo.setSubject_orientation(PK_Subject_orientation); // 科目方向 return bvo; }
/** * 普通单据(非天尚、快递、海整),记录SYF单据到汇兑损益应付单的表头信息 * * @return * @throws ParseException */ private ExchangeSyfHVO SplitToSyfHVO(Object[] objSYF) throws BusinessException, ParseException { ExchangeSyfHVO hvo = initSyfHVO(objSYF); hvo.setLink(insertBP.getLink(objSYF)); // 航线 hvo.setProduct(insertBP.getProduct(objSYF)); // 产品 // -- if ("PP".equals(objSYF[12]) || "月结".equals(objSYF[12])) { // 业务员为主账簿 hvo.setBill_org(insertBP.getSellOrg(objSYF)); // 单据组织 hvo.setPk_org(insertBP.getSellOrg(objSYF)); // 组织 hvo.setDept(insertBP.getSellDept(objSYF).getPk_dept()); // 组织部门 } else { // 目的地为主账簿 hvo.setBill_org(insertBP.getOrg(objSYF)); // 单据组织 hvo.setPk_org(insertBP.getOrg(objSYF)); // 组织 hvo.setDept(insertBP.getOrgDept(objSYF).getPk_dept()); // 组织部门 } return hvo; }
private ExchangeSyfHVO initSyfHVO(Object[] objSYF) throws ParseException, BusinessException, UifException { ExchangeSyfHVO hvo = new ExchangeSyfHVO(); hvo.setBill_no(objSYF[1].toString()); // 单据编号 // -- hvo.setPk_group(pk_group_choice); // 赛拾集团 hvo.setApprovestatus(-1); // 审批状态 -1,自由 // hvo.setBill_type("0001ZZ1000000000NO7Q");// 单据类型 hvo.setMaketime(new UFDate(new Date())); // 制单日期 hvo.setSell_date(SellDate); // 业务日期 hvo.setBill_no(objSYF[1].toString()); // 单据编号 hvo.setRate(new UFDouble(Double.valueOf(objSYF[16].toString()))); // 汇率 hvo.setOriginal_sum(new UFDouble(origin)); // 原币金额 hvo.setLocal_sum(new UFDouble(local)); // 本币金额 hvo.setClear_type(getClear_type(objSYF)); // 结算方式 hvo.setOrigin(getAddr(objSYF)); // 始发地 hvo.setSubject_orientation(PK_Subject_orientation); // 科目方向25; 1是借(001) hvo.setAccounting_subject(getAccounting_subject(objSYF)); // 会计科目26 if (objSYF[3] == null) { hvo.setDestination("unknow"); } else { hvo.setDestination(objSYF[3].toString()); // 目的地 如:LAGOS } hvo.setYear(objSYF[23].toString()); // 年 hvo.setMonth(objSYF[24].toString()); // 月 hvo.setCustomer(getClient(objSYF)); // 客户 hvo.setSellnumber(objSYF[19].toString()); // 集团业务单号 hvo.setClient(getSupplier(objSYF)); // 供应商 hvo.setVoucher_note(objSYF[5].toString()); // 凭证 hvo.setFinance(getFinance(hvo.getBill_org())); // 财务账簿 hvo.setCurrency(getCurrency(objSYF)); // 币种 hvo.setBilltype_def(PK_DefBilltype_HDYF); // 自定义档案,单据类型 hvo.setSell(insertBP.getSell(objSYF)); // 业务员 return hvo; }
/** * 初始化 辅组织汇兑损益应付单的表头部分 * * @param objF * @return */ private ExchangeAssistSyfHVO InitSyfAssistHVO(Object[] objF, Object[] objSYF) throws BusinessException { ExchangeAssistSyfHVO hvo = new ExchangeAssistSyfHVO(); // 用于关联 汇兑损益应付单表头(即SYF的字段) hvo.setSyf_billno(SYF_Bill_no); hvo.setSyf_sellnum(SYF_Sellnum); hvo.setSyf_product(SYF_pk_product); // objF字段 hvo.setPk_group(pk_group_choice); hvo.setBilltype_def(PK_DefBilltype_FSYF); hvo.setApprovestatus(-1); hvo.setMaketime(new UFDate()); // 制单时间 hvo.setBill_no(objF[1].toString()); // 单据编号 hvo.setOrigin(insertBP.getAddr(objF)); // 始发地 hvo.setDestination(objF[3].toString()); // 目的地 hvo.setVoucher_note(objF[5].toString()); // 凭证摘要 hvo.setSell(insertBP.getSell(objF)); // 业务员 hvo.setCustomer(insertBP.getClient(objF)); // 客户 hvo.setClient(getSupplier(objF)); // 供应商 hvo.setProduct(insertBP.getProduct(objF)); // 获取产品 hvo.setLink(insertBP.getLink(objF)); // 航线 hvo.setClear_type(insertBP.getClear_type(objF)); // 结算方式 hvo.setVoucher_num(objF[13].toString()); // 凭证号 hvo.setCurrency(insertBP.getCurrency(objF)); // 币种 hvo.setRate(new UFDouble(Double.parseDouble(objF[17].toString()))); // 汇率 hvo.setSellnumber(objF[20].toString()); // 业务单号 hvo.setMainsellnumber(objF[21].toString()); // 主业务单号 hvo.setSell_date(SellDate); // 业务日期 hvo.setYear(objF[25].toString()); // 年 hvo.setMonth(objF[26].toString()); // 月 hvo.setAccounting_subject(getAccounting_subjectF(objF)); // 会计科目 // hvo.setSubject_orientation(getSubject_orientationF(objF));//科目方向 hvo.setSubject_orientation(PK_Subject_orientation); // 科目方向 return hvo; }
/** * 直接照搬,不拆分 * * @param objSYF * @return * @throws Exception */ private AggExchangeSyfHVO CopyWithoutSplit(Object[] objSYF) throws Exception { AggExchangeSyfHVO aggvo = new AggExchangeSyfHVO(); ExchangeSyfHVO hvo = new ExchangeSyfHVO(); hvo.setPk_group(pk_group_choice); // 赛拾集团 hvo.setApprovestatus(-1); // 审批状态 -1,自由 // hvo.setBill_type("0001ZZ1000000000NO7Q");// 单据类型 hvo.setMaketime(new UFDate(new Date())); // 制单日期 // 自定义字段 if (objSYF[21] != null) { hvo.setSell_date(new UFDate(objSYF[21].toString())); // 业务日期(存SYF凭证日期) hvo.setSell_date(new UFDate("2015-05-12")); // 测试,以后删掉 } hvo.setPk_org(insertBP.getOrg_NotSplit(objSYF)); // 组织 // 发现问题:pk_org_v 需要设置的值是表ORG_ORGS_V 的 pk_vid 字段值 // hvo.setPk_org_v(costing[0].getOriginorg());// 组织版本 hvo.setBill_org(insertBP.getOrg_NotSplit(objSYF)); // 单据组织 // obj字段 hvo.setBill_no(objSYF[1].toString()); // 单据编号 hvo.setRate(new UFDouble(Double.valueOf(objSYF[16].toString()))); // 汇率 hvo.setOriginal_sum(new UFDouble(origin)); // 原币金额 hvo.setLocal_sum(new UFDouble(local)); // 本币金额 hvo.setClear_type(getClear_type(objSYF)); // 结算方式 hvo.setOrigin(getAddr(objSYF)); // 始发地 hvo.setSubject_orientation(getSubject_orientation(objSYF)); // 科目方向25; 1是借(001) hvo.setAccounting_subject(getAccounting_subject(objSYF)); // 会计科目26 if (objSYF[3] == null) { hvo.setDestination("unknow"); } else { hvo.setDestination(objSYF[3].toString()); // 目的地 如:LAGOS } hvo.setYear(objSYF[23].toString()); // 年 hvo.setMonth(objSYF[24].toString()); // 月 hvo.setCustomer(getClient(objSYF)); // 客户 hvo.setSellnumber(objSYF[19].toString()); // 集团业务单号 hvo.setClient(getSupplier(objSYF)); // 供应商 hvo.setVoucher_note(objSYF[5].toString()); // 凭证 // hvo.setFinance(getFinance(hvo.getBill_org()));// 财务账簿 // costing字段 hvo.setLink(insertBP.getLink_NotSplit(objSYF)); // 航线 hvo.setSell(insertBP.getSell(objSYF)); // 业务员 // hvo.setSell_dpm(insertBP.getSellDept(objSYF).getPk_dept());// 业务员部门 hvo.setProduct(insertBP.getFailProduct(objSYF)); // 产品 hvo.setCurrency(getCurrency(objSYF)); // 币种 // hvo.setBilltype(2);// 单据种类 hvo.setDept(insertBP.getDept_NotSplit(objSYF).getPk_dept()); // 组织部门,3合1 // hvo.setDef8("汇兑损益应付SYF");//拆分类型 hvo.setBilltype_def(PK_DefBilltype_HDYF); // 自定义档案,单据类型 aggvo.setParent(hvo); // 子表数据(2015.4.15)不拆分的单据没有子表 // List<ExchangegalCostBVO> bvolist = new // ArrayList<ExchangegalCostBVO>(); ExchangeSyfBVO[] syfbvos = new ExchangeSyfBVO[1]; ExchangeSyfBVO bvo = new ExchangeSyfBVO(); bvo.setBilltype(3); bvo.setSell_date(new UFDate("2015-05-12")); // 测试,以后删掉 bvo.setBilltype_def(PK_DefBilltype_HDYF); // 不拆分的单据,将表头的 本币、原币、汇率、币种 写在表体,转换模版是取表体的 bvo.setLocal_sum(hvo.getLocal_sum()); bvo.setOriginal_sum(hvo.getOriginal_sum()); bvo.setRate(hvo.getRate()); bvo.setCurrency(hvo.getCurrency()); syfbvos[0] = bvo; // // 表体数据放进 Aggvo aggvo.setChildren(ExchangeSyfBVO.class, syfbvos); // AggExchangegalCostHVO[] bills = new AggExchangegalCostHVO[1]; // bills[0] = aggvo; // AceExchangeGaLInsertBP insertBP = new AceExchangeGaLInsertBP(); // insertBP.insert(bills); return aggvo; }