Example #1
0
  private Payment setEntity(HttpServletRequest request) throws Exception {
    User user = (User) ParamUtil.getSessionAttr(request, "LOGIN_USER");
    if (user == null) throw new Exception(MessageConsts.MSG_COMMON_SESSION_TIMEOUT);
    String userId = user.getxLOGIN_ID();
    Payment entity = new Payment();
    int companyPrincipleId = ParamUtil.getInt(request, "companyPrincipleId");
    int projectId = ParamUtil.getInt(request, "projectId");
    int companyId = -1;

    CompanyPrincipalHelper companyPrincipalHelper =
        AppContextUtil.getAppContext()
            .getBean("companyPrincipalHelper", CompanyPrincipalHelper.class);
    CompanyPrincipal companyPrincipal =
        companyPrincipalHelper.getCompanyPrincipal(companyPrincipleId);
    if (companyPrincipal != null) {
      companyId = companyPrincipal.getxCOMPANY_xID();
    }

    double payAmt = ParamUtil.getDouble(request, "payAmt");
    Date payDate = ParamUtil.getDate(request, "payDate");
    String sourcexID = ParamUtil.getString(request, "xID");
    /*		String paymentWhat = URLDecoder.decode(ParamUtil.getString(request, "paymentWhat"), "utf-8");
    String remark = URLDecoder.decode(ParamUtil.getString(request, "remark"), "utf-8");*/

    String paymentWhat = ParamUtil.getString(request, "paymentWhat");
    String remark = ParamUtil.getString(request, "remark");

    if (!StringUtil.isEmpty(sourcexID)) {
      entity.setxID(Integer.valueOf(sourcexID));
      entity.setxUPDATE_ID(userId);
    } else {
      entity.setxCREATER_ID(userId);
    }
    entity.setxPAY_AMT(payAmt);
    entity.setxPAY_DATE(payDate);
    entity.setxPAY_REASON(paymentWhat);
    entity.setxREMARK(remark);
    entity.setxCOMPANY_PRINCIPAL_xID(companyPrincipleId);
    entity.setxPROJECT_xID(projectId);
    entity.setxCOMPANY_xID(companyId);

    return entity;
  }
Example #2
0
  private void handleBudget(HttpServletRequest request, Payment entity) throws Exception {
    BudgetActionHelper budgetActionHelper =
        AppContextUtil.getAppContext().getBean("budgetActionHelper", BudgetActionHelper.class);
    BudgetHelper budgetHelper =
        AppContextUtil.getAppContext().getBean("budgetHelper", BudgetHelper.class);

    // handle budget
    User user = (User) ParamUtil.getSessionAttr(request, "LOGIN_USER");
    if (user == null) throw new Exception(MessageConsts.MSG_COMMON_SESSION_TIMEOUT);
    Budget currentBudget =
        budgetHelper.getBudgetByPaydate(user.getxDEPT_xID(), entity.getxPAY_DATE());

    // if there are no budget,then no paymentAction too
    if (currentBudget == null) {
      return;
    }

    BudgetAction paymenAction = new BudgetAction();
    paymenAction.setxACTION(MessageConsts.BUDGET_TYPE_PAYMENT);
    paymenAction.setxPAYMENT_ID(entity.getxID());
    paymenAction.setxACTION_AMT(entity.getxPAY_AMT());
    paymenAction.setxCREATER_ID(user.getxLOGIN_ID());
    if (currentBudget != null) {
      paymenAction.setxBUDGET_xID(currentBudget.getxID());
      paymenAction.setxSOURCE_AMT(currentBudget.getxBALANCE_AMT());
    }
    budgetActionHelper.insert(paymenAction);

    // handle borrow
    int deptId = ParamUtil.getInt(request, "deptId", 0);
    double borrowAmt = ParamUtil.getDouble(request, "borrowAmtHidden", 0);
    logger.info("PaymentAction-->borrowDeptId:" + deptId);
    logger.info("PaymentAction-->borrowAmt:" + borrowAmt);
    if (deptId > 0 && borrowAmt > 0) {
      Budget borrowBudget = budgetHelper.getBudgetByPaydate(deptId, entity.getxPAY_DATE());
      BudgetAction borrowOutAction = new BudgetAction();
      borrowOutAction.setxBUDGET_xID(borrowBudget.getxID());
      borrowOutAction.setxPAYMENT_ID(entity.getxID());
      borrowOutAction.setxACTION(MessageConsts.BUDGET_TYPE_BORROW_OUT);
      borrowOutAction.setxSOURCE_AMT(borrowBudget.getxBALANCE_AMT());
      borrowOutAction.setxACTION_AMT(borrowAmt);
      borrowOutAction.setxCREATER_ID(user.getxLOGIN_ID());
      budgetActionHelper.insert(borrowOutAction);

      borrowBudget.setxBALANCE_AMT(Calculator.sub(borrowBudget.getxBALANCE_AMT(), borrowAmt));
      budgetHelper.update(borrowBudget);

      BudgetAction borrowInAction = new BudgetAction();
      borrowInAction.setxBUDGET_xID(currentBudget.getxID());
      borrowInAction.setxPAYMENT_ID(entity.getxID());
      borrowInAction.setxACTION(MessageConsts.BUDGET_TYPE_BORROW_IN);
      borrowInAction.setxSOURCE_AMT(currentBudget.getxBALANCE_AMT());
      borrowInAction.setxACTION_AMT(borrowAmt);
      borrowInAction.setxRELATED_BUDGET_ACTION_ID(borrowOutAction.getxID());
      borrowInAction.setxCREATER_ID(user.getxLOGIN_ID());
      budgetActionHelper.insert(borrowInAction);

      borrowOutAction.setxRELATED_BUDGET_ACTION_ID(borrowInAction.getxID());
      budgetActionHelper.update(borrowOutAction);
    }

    double currentBalanceAmt =
        Calculator.add(
            Calculator.sub(currentBudget.getxBALANCE_AMT(), entity.getxPAY_AMT()), borrowAmt);
    currentBudget.setxBALANCE_AMT(currentBalanceAmt);
    budgetHelper.update(currentBudget);
  }