Fanadia_Friska

BF

Jul 5th, 2018
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.35 KB | None | 0 0
  1. package org.jleaf.erp.master.bo.edc;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.Query;
  6.  
  7. import org.jleaf.common.CommonConstants;
  8. import org.jleaf.common.dao.OUDao;
  9. import org.jleaf.common.entity.ComboValue;
  10. import org.jleaf.common.entity.OU;
  11. import org.jleaf.core.AbstractBusinessFunction;
  12. import org.jleaf.core.BusinessFunction;
  13. import org.jleaf.core.Dto;
  14. import org.jleaf.core.GeneralConstants;
  15. import org.jleaf.core.annotation.ErrorList;
  16. import org.jleaf.core.annotation.Info;
  17. import org.jleaf.core.annotation.InfoIn;
  18. import org.jleaf.core.annotation.InfoOut;
  19. import org.jleaf.core.dao.CriteriaHelper;
  20. import org.jleaf.core.dao.QueryBuilder;
  21. import org.jleaf.erp.master.MasterConstants;
  22. import org.jleaf.erp.master.bo.ComboIdMasterConstants;
  23. import org.jleaf.erp.master.dao.CashBankDao;
  24. import org.jleaf.erp.master.entity.CashBank;
  25. import org.jleaf.erp.master.entity.OuStructure;
  26. import org.jleaf.util.DtoUtil;
  27. import org.jleaf.util.ValidationUtil;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.stereotype.Service;
  30.  
  31. /**
  32. * Business Function : Get Cash Bank List For Bank And Overdraft Type Advance
  33. * > Menampilkan Bank Account untuk tipe Bank dan juga Overdraft
  34. *
  35. * @author nadia 29 Juni 2018
  36. */
  37.  
  38. // @formatter:off
  39. @Service
  40. @InfoIn({
  41. @Info(name="tenantId",description="tenant id", type=Long.class),
  42. @Info(name="code",description="cash bank code", type=String.class),
  43. @Info(name="name", description="cash bank name", type=String.class),
  44. @Info(name="bankCode", description="bank code", type=String.class),
  45. @Info(name="currencyCode", description="currency code", type=String.class),
  46. @Info(name="active", description="active", type=String.class)
  47.  
  48. })
  49. @InfoOut({
  50. @Info(name="cashBankList", description="list of cash bank (id, tenantId, code, "
  51. + "name, flagCashBank, flagCashBankPropKey, "
  52. + "bankCode, bankPropKey, accountNo, "
  53. + "currencyCode, currencyPropKey, accountName1, "
  54. + "accountName2, address1, address2, "
  55. + "address3, coaId, active)", type=List.class)
  56. })
  57. @ErrorList(errorKeys = {})
  58. //@formatter:on
  59. public class GetCashBankListForBankAndOverdraftTypeAdvance extends AbstractBusinessFunction implements BusinessFunction {
  60.  
  61. @Autowired
  62. private CashBankDao cashBankDao;
  63.  
  64. public String getDescription() {
  65. return "Get Cash Bank List For Bank And Overdraft Type advance";
  66. }
  67.  
  68. public Dto execute(Dto inputDto) throws Exception {
  69.  
  70. ValidationUtil.valDtoContainsKey(inputDto, "tenantId");
  71.  
  72. Long tenantId = inputDto.getLong("tenantId");
  73.  
  74. List<Object[]> result = null;
  75.  
  76. QueryBuilder builder = new QueryBuilder();
  77. builder.add("SELECT e.cashbank_id, e.tenant_id, e.cashbank_code, e.cashbank_name, e.flg_cash_bank, f.prop_key AS flagCashBankPropKey, e.bank_code, COALESCE(g.prop_key, '') AS bankPropKey, e.account_no, e.curr_code, h.prop_key AS currencyPropKey, e.account_name1, e.account_name2, e.address1, e.address2, e.address3, e.coa_id, e.active FROM ")
  78. .add(CashBank.TABLE_NAME)
  79. .add(" e ")
  80. .add(" INNER JOIN ")
  81. .add(ComboValue.TABLE_NAME)
  82. .add(" f ON e.flg_cash_bank = f.code AND f.combo_id = '" + MasterConstants.FLAG_BANK + "'")
  83. .add(" INNER JOIN ")
  84. .add(ComboValue.TABLE_NAME)
  85. .add(" h ON e.curr_code = h.code AND h.combo_id = '" + ComboIdMasterConstants.COMBO_CURRENCY + "'")
  86. .add(" LEFT JOIN ")
  87. .add(ComboValue.TABLE_NAME)
  88. .add(" g ON e.bank_code = g.code AND g.combo_id = '" + ComboIdMasterConstants.COMBO_BANK + "'")
  89. .add(" WHERE e.cashbank_id = e.cashbank_id ")
  90. .add(" AND e.flg_cash_bank IN ( '" + MasterConstants.FLAG_BANK+"'" +","+ "'" + MasterConstants.FLAG_OVERDRAFT + "')")
  91. .addIfNotNull(inputDto.getLong("tenantId"), " AND e.tenant_id = " + inputDto.getLong("tenantId"))
  92. .addIfNotEmpty(inputDto.getString("code"), " AND " + CriteriaHelper.likeExpressionIgnoreCase(inputDto.getString("code"), "e.cashbank_code"))
  93. .addIfNotEmpty(inputDto.getString("name"), " AND " + CriteriaHelper.likeExpressionIgnoreCase(inputDto.getString("name"), "e.cashbank_name"))
  94. .addIfNotEquals(inputDto.getString("bankCode"), CommonConstants.ID_NOT_USED.toString(), " AND " + CriteriaHelper.equalsExpressionIgnoreCase(inputDto.getString("bankCode"), "e.bank_code"))
  95. .addIfNotEquals(inputDto.getString("currencyCode"), CommonConstants.ID_NOT_USED.toString(), " AND " + CriteriaHelper.equalsExpressionIgnoreCase(inputDto.getString("currencyCode"), "e.curr_code"))
  96. .addIfNotEmpty(inputDto.getString("active"), " AND " + CriteriaHelper.equalsExpressionIgnoreCase(inputDto.getString("active"), "e.active"))
  97. .add(" ORDER BY e.cashbank_name ASC ");
  98.  
  99. Query q = cashBankDao.createNativeQuery(builder.toString());
  100.  
  101. result = q.getResultList();
  102.  
  103. return new Dto().putList("cashBankList", DtoUtil.createDtoListFromArray(result,
  104. "id", "tenantId", "code", "name", "flagCashBank", "flagCashBankPropKey", "bankCode", "bankPropKey", "accountNo", "currencyCode", "currencyPropKey", "accountName1", "accountName2", "address1", "address2", "address3", "coaId", "active"));
  105. }
  106.  
  107. // public static void main(String[] args) {
  108. // QueryBuilder builder = new QueryBuilder();
  109. // builder.add("SELECT e.cashbank_id, e.tenant_id, e.cashbank_code, e.cashbank_name, e.flg_cash_bank, f.prop_key AS flagCashBankPropKey, e.bank_code, COALESCE(g.prop_key, '') AS bankPropKey, e.account_no, e.curr_code, h.prop_key AS currencyPropKey, e.account_name1, e.account_name2, e.address1, e.address2, e.address3, e.coa_id, e.active FROM ")
  110. // .add(CashBank.TABLE_NAME)
  111. // .add(" e ")
  112. // .add(" INNER JOIN ")
  113. // .add(ComboValue.TABLE_NAME)
  114. // .add(" f ON e.flg_cash_bank = f.code AND f.combo_id = '" + ComboIdMasterConstants.COMBO_FLAG_CASH_BANK + "'")
  115. // .add(" INNER JOIN ")
  116. // .add(ComboValue.TABLE_NAME)
  117. // .add(" h ON e.curr_code = h.code AND h.combo_id = '" + ComboIdMasterConstants.COMBO_CURRENCY + "'")
  118. // .add(" LEFT JOIN ")
  119. // .add(ComboValue.TABLE_NAME)
  120. // .add(" g ON e.bank_code = g.code AND g.combo_id = '" + ComboIdMasterConstants.COMBO_BANK + "'")
  121. // .add(" WHERE e.cashbank_id = e.cashbank_id ")
  122. // .add(" AND e.flg_cash_bank IN ( '" + MasterConstants.FLAG_BANK+"'" +","+ "'" + MasterConstants.FLAG_OVERDRAFT + "')");
  123. //
  124. // System.out.println(builder.toString());
  125. //
  126. // }
  127.  
  128. }
Advertisement
Add Comment
Please, Sign In to add comment