/** * 普通单据(非天尚、快递、海整),记录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; }
/** * 天尚、海整、快递,这些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; }
/** * 直接照搬,不拆分 * * @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; }