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);
    }
 void setReceiptList(Object[] object, String type) {
   model.clearRows();
   objRows = object;
   for (int i = 0; i < object.length; i++) {
     GeneralVoucherToGetTotal voucher = (GeneralVoucherToGetTotal) object[i];
     if (voucher != null)
       model.addRow(
           new Object[] {
             new Integer(i + 1),
             voucher.igetPaymentSource(),
             voucher.vgetVoucherType(),
             voucher.vgetVoucherNo(),
             voucher.vgetVoucherDate(),
             voucher.vgetPayTo(),
             voucher.vgetOriginator(),
             voucher.vgetApprovedBy(),
             voucher.vgetReceivedBy(),
             voucher.vgetUnitCode(),
             voucher.vgetStatus(),
             voucher.vgetSubmitDate(),
             voucher.vgetSymbolCurrency() + " " + getTotal(voucher, type, vConn).toString()
           });
   }
 }