/** @param string */ private void prepareChildren(String indexes) { GenericMapper childrenMapper = null; String field = ""; if (m_type.equalsIgnoreCase("Project Cost")) { childrenMapper = MasterMap.obtainMapperFor(PmtProjectCostDetail.class); field = "PmtProjectCost"; } else { childrenMapper = MasterMap.obtainMapperFor(PmtOperationalCostDetail.class); field = "PmtOperationalCost"; } childrenMapper.setActiveConn(m_conn); String clause = "1=1"; /*if (!indexes.equals("")) clause = field + " in (" + indexes + ")";*/ if (!indexes.equals("")) { int idx = indexes.indexOf("ORDER BY"); indexes = indexes.substring(0, idx); clause = field + " in (select autoindex from " + field + " where " + indexes + ")"; } List childrenList = childrenMapper.doSelectWhere(clause); childrenMap = new HashMap(); Iterator iterator = childrenList.iterator(); while (iterator.hasNext()) { if (m_type.equalsIgnoreCase("Project Cost")) { PmtProjectCostDetail det = (PmtProjectCostDetail) iterator.next(); Long key = new Long(det.getPmtProjectCost().getIndex()); if (childrenMap.containsKey(key)) { List dets = (List) childrenMap.get(key); dets.add(det); } else { List dets = new ArrayList(); dets.add(det); childrenMap.put(key, dets); } } else { PmtOperationalCostDetail det = (PmtOperationalCostDetail) iterator.next(); Long key = new Long(det.getPmtOperationalCost().getIndex()); if (childrenMap.containsKey(key)) { List dets = (List) childrenMap.get(key); dets.add(det); } else { List dets = new ArrayList(); dets.add(det); childrenMap.put(key, dets); } } } }
public String getTotal(GeneralVoucherToGetTotal voucher, String type, Connection conn) { double total = 0; DecimalFormat dm = new DecimalFormat("#,##0.00"); if (type.equalsIgnoreCase("Project Cost")) { /*GenericMapper mapper=MasterMap.obtainMapperFor(PmtProjectCostDetail.class); mapper.setActiveConn(vConn); String strWhere = IDBConstants.ATTR_PMT_PROJECT_COST+"="+voucher.vgetIndex(); List rs=mapper.doSelectWhere(strWhere); */ PmtProjectCostDetail detail = null; Long key = new Long(voucher.vgetIndex()); List rs = (List) childrenMap.get(key); String attr = ""; if (voucher.vgetCashAccount() != null) attr = IConstants.ATTR_PMT_CASH; else if (voucher.vgetBankAccount() != null) attr = IConstants.ATTR_PMT_BANK; else { if (voucher.igetPaymentSource().equalsIgnoreCase("CASH")) attr = IConstants.ATTR_PMT_CASH; else attr = IConstants.ATTR_PMT_BANK; } /*JournalStandardAccount[] jsAccounts = getJournalStandardAccount(attr);*/ JournalStandardAccount[] jsAccounts = (JournalStandardAccount[]) journalStandardAccountsMap.get(attr); if (rs != null) for (int i = 0; i < rs.size(); i++) { detail = (PmtProjectCostDetail) rs.get(i); for (int j = 0; j < jsAccounts.length; j++) if (detail.getAccount().getIndex() == jsAccounts[j].getAccount().getIndex()) if (!jsAccounts[j].isCalculate() && !jsAccounts[j].isHidden()) { JournalStandardAccount jsAccount = jsAccounts[j]; double amount = detail.getaccValue(); if (jsAccount.getBalance() == 1) amount = -detail.getaccValue(); total += amount; } } } else if (type.equalsIgnoreCase("Operational Cost")) { if (voucher != null) { /*GenericMapper mapper=MasterMap.obtainMapperFor(PmtOperationalCostDetail.class); mapper.setActiveConn(conn); List detailList=mapper.doSelectWhere(IDBConstants.ATTR_PMT_OPERASIONAL_COST+"="+voucher.vgetIndex());*/ Long key = new Long(voucher.vgetIndex()); List detailList = (List) childrenMap.get(key); PmtOperationalCostDetail detail; int length = detailList.size(); if (length > 0) { /*JournalStandardAccount[] jsAccounts = getJournalStandardAccount((PmtOperationalCost) voucher);*/ PmtOperationalCost pmt = (PmtOperationalCost) voucher; String attr = ""; if (pmt.getCashAccount() != null) { attr = IConstants.ATTR_PMT_CASH; } else if (pmt.getBankAccount() != null) { attr = IConstants.ATTR_PMT_BANK; } else if (pmt.getPaymentSource().equalsIgnoreCase("BANK")) { attr = IConstants.ATTR_PMT_BANK; } else if (pmt.getPaymentSource().equalsIgnoreCase("CASH")) { attr = IConstants.ATTR_PMT_CASH; } JournalStandardAccount[] jsAccounts = (JournalStandardAccount[]) journalStandardAccountsMap.get(attr); if (detailList != null) for (int i = 0; i < detailList.size(); i++) { detail = (PmtOperationalCostDetail) detailList.get(i); for (int j = 0; j < jsAccounts.length; j++) if (detail.getAccount().getIndex() == jsAccounts[j].getAccount().getIndex()) if (!jsAccounts[j].isCalculate() && !jsAccounts[j].isHidden()) { JournalStandardAccount jsAccount = jsAccounts[j]; double amount = detail.getAccValue(); if (jsAccount.getBalance() == 1) amount = -detail.getAccValue(); total += amount; } } } else { total = 0; } } } return dm.format(total); }