Advertisement
aadddrr

Untitled

Sep 18th, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 20.21 KB | None | 0 0
  1. package org.jleaf.erp.cb.bo.reconcilement;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.Query;
  6.  
  7. import org.jleaf.core.AbstractBusinessFunction;
  8. import org.jleaf.core.BusinessFunction;
  9. import org.jleaf.core.Dto;
  10. import org.jleaf.core.GeneralConstants;
  11. import org.jleaf.core.annotation.ErrorList;
  12. import org.jleaf.core.annotation.Info;
  13. import org.jleaf.core.annotation.InfoIn;
  14. import org.jleaf.core.annotation.InfoOut;
  15. import org.jleaf.core.dao.QueryBuilder;
  16. import org.jleaf.erp.cb.CashBankConstants;
  17. import org.jleaf.erp.cb.dao.InOutCashbankDao;
  18. import org.jleaf.erp.cb.entity.ChequeGiroRealization;
  19. import org.jleaf.erp.cb.entity.InOutCGBalance;
  20. import org.jleaf.erp.cb.entity.InOutCashbank;
  21. import org.jleaf.erp.cb.entity.InOutCashbankCost;
  22. import org.jleaf.erp.cb.entity.InOutCashbankPayment;
  23. import org.jleaf.erp.cb.entity.Reconcilement;
  24. import org.jleaf.erp.cb.entity.ReconcilementItem;
  25. import org.jleaf.erp.cb.entity.TransferCashbank;
  26. import org.jleaf.erp.cb.entity.TransferCashbankCost;
  27. import org.jleaf.erp.cb.entity.TransferCashbankReceive;
  28. import org.jleaf.erp.cb.entity.TrxCashbankBalance;
  29. import org.jleaf.erp.master.entity.CashBank;
  30. import org.jleaf.erp.master.entity.CashBankOu;
  31. import org.jleaf.util.DtoUtil;
  32. import org.jleaf.util.ValidationUtil;
  33. import org.springframework.beans.factory.annotation.Autowired;
  34. import org.springframework.stereotype.Service;
  35.  
  36.  @Service
  37.  @InfoIn(value = {
  38.          @Info(name = "tenantId", description = "tenant id", type = Long.class, required = true),
  39.          @Info(name = "ouId", description = "ou id", type = Long.class, required = true),
  40.          @Info(name = "userId", description = "user id", type = Long.class, required = true),
  41.          @Info(name = "roleId", description = "role id", type = Long.class, required = true),
  42.          @Info(name = "cashBankId", description = "cash/bank id", type = Long.class, required = true),
  43.          @Info(name = "yearMonth", description = "year month", type = String.class, required = true)
  44.  })
  45.  @InfoOut(value = {
  46.          @Info(name = "cashBankTrxList", description = "List of cash bank trx(docTypeId, docTypeDesc, docNo, docDate, refId, refDocTypeId, refDocTypeDesc, refDocNo, refDocDate, partnerId, partnerCode, partnerName, remark, modePayment, bankPayment, noPayment, datePayment, currCode, amount)", type = List.class)
  47.  })
  48.  @ErrorList(errorKeys = {
  49.  
  50.  })
  51.  public class GetCashBankTrxListForReconcilement extends AbstractBusinessFunction implements BusinessFunction {
  52.      
  53.      @Autowired
  54.      InOutCashbankDao inOutCashbankDao;
  55.      
  56.      @Override
  57.      public String getDescription() {
  58.          return "Get CB trx list for reconcilement";
  59.      }
  60.      
  61.      @SuppressWarnings("unchecked")
  62.      @Override
  63.      public Dto execute(Dto inputDto) throws Exception {       
  64.         ValidationUtil.valDtoContainsKey(inputDto, "tenantId");
  65.         ValidationUtil.valDtoContainsKey(inputDto, "ouId");
  66.         ValidationUtil.valDtoContainsKey(inputDto, "userId");
  67.         ValidationUtil.valDtoContainsKey(inputDto, "roleId");
  68.         ValidationUtil.valDtoContainsKey(inputDto, "cashBankId");
  69.         ValidationUtil.valDtoContainsKey(inputDto, "yearMonth");
  70.        
  71.         Long tenantId = inputDto.getLong("tenantId");
  72.         Long ouId = inputDto.getLong("ouId");
  73.         Long userId = inputDto.getLong("userId");
  74.         Long roleId = inputDto.getLong("roleId");
  75.         Long cashBankId = inputDto.getLong("cashBankId");
  76.         String yearMonth = inputDto.getString("yearMonth");
  77.          
  78.          Dto outputDto = new Dto();
  79.          List<Object[]> resultList = null;
  80.          
  81.          QueryBuilder builder = new QueryBuilder();
  82.          builder.add(" SELECT A.doc_type_id, A.doc_type_desc, A.doc_no, A.doc_date, ")
  83.                 .add(" A.ref_id, A.ref_doc_type_id, A.ref_doc_type_desc, A.ref_doc_no, A.ref_doc_date, ")
  84.                 .add(" A.partner_id, A.partner_code, A.partner_name, " )
  85.                 .add(" A.remark, " )
  86.                 .add(" A.mode_payment, A.bank_payment, A.no_payment, A.date_payment, ")
  87.                 .add(" A.curr_code, A.amount")
  88.                 .add(" FROM ( ")
  89.                 .add(" SELECT A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_type_desc, A.doc_no, A.doc_date, " )
  90.                 .add(" :EMPTY_ID AS ref_id, :EMPTY_ID AS ref_doc_type_id, :SPACEVALUE AS ref_doc_type_desc, :SPACEVALUE AS ref_doc_no, :SPACEVALUE AS ref_doc_date, " )
  91.                 .add(" :EMPTY_ID AS partner_id, :SPACEVALUE AS partner_code, :SPACEVALUE AS partner_name, " )
  92.                 .add(" A.remark, " )
  93.                 .add(" A.mode_payment, A.bank_payment, A.no_payment, A.date_payment, ")
  94.                 .add(" A.curr_code, A.transfer_amount + COALESCE(B.payment_amount, 0) AS amount ")
  95.                 .add(" FROM ").add(TransferCashbank.TABLE_NAME).add(" A ")
  96.                 .add(" LEFT OUTER JOIN ").add(TransferCashbankCost.TABLE_NAME).add(" B ON A.transfer_cashbank_id = B.transfer_cashbank_id ")
  97.                 .add(" INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" C ON A.cashbank_id = C.cashbank_id ")
  98.                 .add(" WHERE A.tenant_id = :tenantId ")
  99.                 .add(" AND C.ou_id = :ouId ")
  100.                 .add(" AND A.cashbank_id = :cashBankId ")
  101.                 .add(" AND SUBSTR(A.doc_date, 1, 6) = :yearMonth ")
  102.                 .add(" AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, A.cashbank_id) = 1 ")
  103.          
  104.                 .add(" UNION ALL ")
  105.          
  106.                 .add(" SELECT B.doc_type_id, f_get_doc_desc(B.doc_type_id) AS doc_type_desc, B.doc_no, B.doc_date, " )
  107.                 .add(" :EMPTY_ID AS ref_id, :EMPTY_ID AS ref_doc_type_id, :SPACEVALUE AS ref_doc_type_desc, :SPACEVALUE AS ref_doc_no, :SPACEVALUE AS ref_doc_date, " )
  108.                 .add(" :EMPTY_ID AS partner_id, :SPACEVALUE AS partner_code, :SPACEVALUE AS partner_name, " )
  109.                 .add(" A.remark, " )
  110.                 .add(" A.mode_payment, A.bank_payment, A.no_payment, A.date_payment, ")
  111.                 .add(" A.curr_code, A.receive_amount AS amount ")
  112.                 .add(" FROM ").add(TransferCashbankReceive.TABLE_NAME).add(" A ")
  113.                 .add(" INNER JOIN ").add(TransferCashbank.TABLE_NAME).add(" B ON B.transfer_cashbank_id = A.transfer_cashbank_id ")
  114.                 .add(" INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" C ON A.cashbank_to_id = C.cashbank_id ")
  115.                 .add(" WHERE A.tenant_id = :tenantId ")
  116.                 .add(" AND C.ou_id = :ouId ")
  117.                 .add(" AND A.cashbank_id = :cashBankId ")
  118.                 .add(" AND SUBSTR(A.doc_date, 1, 6) = :yearMonth ")
  119.                 .add(" AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, A.cashbank_id) = 1 ")
  120.          
  121.                 .add(" UNION ALL ")
  122.                
  123.                 .add(" SELECT B.doc_type_id, f_get_doc_desc(B.doc_type_id) AS doc_type_desc, B.doc_no, B.doc_date, ")
  124.                 .add(" B.ref_id, B.ref_doc_type_id, f_get_doc_desc(B.ref_doc_type_id) AS ref_doc_type_desc, COALESCE(C.payment_doc_no, ' ') AS ref_doc_no, COALESCE(C.payment_doc_date, ' ') AS ref_doc_date,  ")
  125.                 .add(" B.partner_id, f_get_partner_code(B.partner_id) AS partner_code, f_get_partner_name (B.partner_id) AS partner_name, ")
  126.                 .add(" A.mode_payment, A.bank_payment, A.no_payment, A.date_payment, ")
  127.                 .add(" A.curr_code, CASE ")
  128.                         .add("WHEN B.doc_type_id IN (:docTypeIdCBInOtherRcv,:docTypeIdCBOut) ")
  129.                         .add("THEN A.cashbank_amount ")
  130.                         .add("ELSE A.cashbank_amount - COALESCE((SELECT SUM(F.cost_amount) FROM ").add(InOutCashbankCost.TABLE_NAME).add(" F ")
  131.                                                         .add(" WHERE F.in_out_cashbank_id = B.in_out_cashbank_id), 0) END AS amount ")
  132.                 .add(" FROM ").add(InOutCashbankPayment.TABLE_NAME).add(" A " )
  133.                 .add(" INNER JOIN ").add(InOutCashbank.TABLE_NAME).add(" B ON A.in_out_cashbank_id = B.in_out_cashbank_id ")
  134.                 .add(" LEFT OUTER JOIN ").add(TrxCashbankBalance.TABLE_NAME).add(" C ON C.trx_cashbank_balance_id = B.ref_id ")
  135.                 .add(" INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" E ON A.cashbank_id = E.cashbank_id ")
  136.                 .add(" WHERE B.tenant_id = :tenantId ")
  137.                 .add(" AND E.ou_id = :ouId ")
  138.                 .add(" AND A.cashbank_id = :cashBankId ")
  139.                 .add(" AND SUBSTR(B.doc_date, 1, 6) = :yearMonth ")
  140.                 .add(" AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, A.cashbank_id) = 1 ")
  141.                
  142.                 .add(" UNION ALL ")
  143.                
  144.                 .add(" SELECT B.doc_type_id, f_get_doc_desc(B.doc_type_id) AS doc_type_desc, C.cheque_giro_no AS doc_no, C.cheque_giro_date AS doc_date, ")
  145.                 .add(" B.in_out_cashbank_id AS ref_id, B.doc_type_id AS ref_doc_type_id, f_get_doc_desc(B.doc_type_id) AS ref_doc_type_desc, B.doc_no AS ref_doc_no, B.doc_date AS ref_doc_date,  ")
  146.                 .add(" A.partner_id, f_get_partner_code(A.partner_id) AS partner_code, f_get_partner_name (A.partner_id) AS partner_name, ")
  147.                 .add(" C.mode_payment, A.bank_payment, A.cheque_giro_no, A.realization_date, ")
  148.                 .add(" A.curr_code, A.cheque_giro_amount AS amount ")
  149.                 .add(" FROM ").add(ChequeGiroRealization.TABLE_NAME).add(" A " )
  150.                 .add(" INNER JOIN ").add(InOutCashbank.TABLE_NAME).add(" B ON A.in_out_cashbank_id = B.in_out_cashbank_id ")
  151.                 .add(" INNER JOIN ").add(InOutCGBalance.TABLE_NAME).add(" C ON C.in_out_cashbank_id = B.in_out_cashbank_id ")
  152.                 .add(" INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" D ON C.cashbank_id = D.cashbank_id ")
  153.                 .add(" WHERE B.tenant_id = :tenantId ")
  154.                 .add(" AND D.ou_id = :ouId ")
  155.                 .add(" AND C.cashbank_id = :cashBankId ")
  156.                 .add(" AND SUBSTR(B.doc_date, 1, 6) = :yearMonth ")
  157.                 .add(" AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, C.cashbank_id) = 1 ")
  158.            
  159.                 .add(" UNION ALL ")
  160.                
  161.                 .add(" SELECT A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_type_desc, A.doc_no, A.doc_date, ")
  162.                 .add(" :EMPTY_ID AS ref_id, :EMPTY_ID AS ref_doc_type_id, :SPACEVALUE AS ref_doc_type_desc, :SPACEVALUE AS ref_doc_no, :SPACEVALUE AS ref_doc_date, " )
  163.                 .add(" :EMPTY_ID AS partner_id, :SPACEVALUE AS partner_code, :SPACEVALUE AS partner_name, " )
  164.                 .add(" :SPACEVALUE, :SPACEVALUE, :SPACEVALUE, :SPACEVALUE, ")
  165.                 .add(" C.curr_code, COALESCE(C.cost_amount, 0) AS amount ")
  166.                 .add(" FROM ").add(InOutCashbank.TABLE_NAME).add(" A " )
  167.                 .add(" INNER JOIN ").add(" ( ")
  168.                 .add("      SELECT A.in_out_cashbank_id, B.cashbank_id ")
  169.                 .add("      FROM ").add(InOutCashbank.TABLE_NAME).add(" A ")
  170.                 .add("      INNER JOIN ").add(ChequeGiroRealization.TABLE_NAME).add(" A.in_out_cashbank_id = B.in_out_cashbank_id ")
  171.                 .add("      GROUP BY A.in_out_cashbank_id, B.cashbank_id ")
  172.                 .add(" ) ")
  173.                 .add(" B ON A.in_out_cashbank_id = B.in_out_cashbank_id ")
  174.                 .add(" INNER JOIN ").add(InOutCashbankCost.TABLE_NAME).add(" C ON C.in_out_cashbank_id = B.in_out_cashbank_id ")
  175.                 .add(" INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" D ON B.cashbank_id = D.cashbank_id ")
  176.                 .add(" WHERE B.tenant_id = :tenantId ")
  177.                 .add(" AND D.ou_id = :ouId ")
  178.                 .add(" AND B.cashbank_id = :cashBankId ")
  179.                 .add(" AND SUBSTR(A.doc_date, 1, 6) = :yearMonth ")
  180.                 .add(" AND A.doc_type_id = :DOC_TYPE_CG_REALIZATION ")
  181.                 .add(" AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, B.cashbank_id) = 1 ")
  182.                
  183.                 .add(" UNION ALL ")
  184.                
  185.                 .add(" SELECT A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_type_desc, A.doc_no, A.doc_date, ")
  186.                 .add(" B.in_out_cashbank_id AS ref_id, B.doc_type_id AS ref_doc_type_id, f_get_doc_desc(B.doc_type_id) AS ref_doc_type_desc, B.doc_no AS ref_doc_no, B.doc_date AS ref_doc_date,  ")
  187.                 .add(" A.partner_id, f_get_partner_code(A.partner_id) AS partner_code, f_get_partner_name (A.partner_id) AS partner_name, ")
  188.                 .add(" :CASH, :SPACEVALUE, :SPACEVALUE, :SPACEVALUE, ")
  189.                 .add(" A.curr_code, SUM(A.amount_debit) - SUM(A.amount_credit) AS amount ")
  190.                 .add(" FROM ( ")
  191.                 .add("      SELECT A.tenant_id, A.ou_id, A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_desc, A.trx_pos_id AS ref_id, ")
  192.                 .add("      A.doc_no, A.doc_date, A.partner_id, C.cashbank_id, C.cashbank_id AS cashbank_target_id, C.curr_code, ")
  193.                 .add("      SUM(B.conversion_amount) AS amount_debit, 0 AS amount_credit ")
  194.                 .add("      FROM ").add(CashBankConstants.TABLE_TRX_POS).add(" A ")
  195.                 .add("      INNER JOIN ").add(CashBankConstants.TABLE_TRX_POS_CASH_PAYMENT).add(" B ON A.trx_pos_id = B.trx_pos_id AND A.tenant_id = B.tenant_id AND A.process_no = B.process_no ")
  196.                 .add("      INNER JOIN ").add(CashBank.TABLE_NAME).add(" C ON B.curr_payment_code = C.curr_code ")
  197.                 .add("      INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" D ON B.cashbank_id = D.cashbank_id ")
  198.                 .add("      WHERE A.tenant_id = :tenantId ")
  199.                 .add("      AND D.ou_id = :ouId ")
  200.                 .add("      AND D.cashbank_id = :cashBankId ")
  201.                 .add("      AND SUBSTR(A.doc_date, 1, 6) = :yearMonth ")
  202.                 .add("      AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, D.cashbank_id) = 1 ")
  203.                 .add("      AND D.flg_cash_bank = :FLAG_CASH ")                
  204.                 .add("      GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.trx_pos_id, A.doc_no, A.doc_date, A.partner_id, D.cashbank_id, D.curr_code ")
  205.                 .add("      UNION ")
  206.                 .add("      SELECT A.tenant_id, A.ou_id, A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_desc, A.trx_pos_id AS ref_id, ")
  207.                 .add("      A.doc_no, A.doc_date, A.partner_id, C.cashbank_id, C.cashbank_id AS cashbank_target_id, C.curr_code, ")
  208.                 .add("      0 AS amount_debit, SUM(A.total_refund) AS amount_credit ")
  209.                 .add("      FROM ").add(CashBankConstants.TABLE_TRX_POS).add(" A ")
  210.                 .add("      INNER JOIN ").add(CashBank.TABLE_NAME).add(" C ON A.curr_code = C.curr_code ")
  211.                 .add("      INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" D ON B.cashbank_id = D.cashbank_id ")
  212.                 .add("      WHERE A.tenant_id = :tenantId ")
  213.                 .add("      AND D.ou_id = :ouId ")
  214.                 .add("      AND D.cashbank_id = :cashBankId ")
  215.                 .add("      AND SUBSTR(A.doc_date, 1, 6) = :yearMonth ")
  216.                 .add("      AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, D.cashbank_id) = 1 ")
  217.                 .add("      AND D.flg_cash_bank = :FLAG_CASH ")                
  218.                 .add("      GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.trx_pos_id, A.doc_no, A.doc_date, A.partner_id, D.cashbank_id, D.curr_code ")
  219.                 .add(" ) A ")
  220.                 .add(" GROUP BY A.cashbank_id, A.doc_type_id, A.doc_no, A.doc_date ")
  221.                
  222.                 .add(" UNION ALL ")
  223.                
  224.                 .add(" SELECT A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_type_desc, A.doc_no, A.doc_date, ")
  225.                 .add(" B.in_out_cashbank_id AS ref_id, B.doc_type_id AS ref_doc_type_id, f_get_doc_desc(B.doc_type_id) AS ref_doc_type_desc, B.doc_no AS ref_doc_no, B.doc_date AS ref_doc_date,  ")
  226.                 .add(" A.partner_id, f_get_partner_code(A.partner_id) AS partner_code, f_get_partner_name (A.partner_id) AS partner_name, ")
  227.                 .add(" :CASH, :SPACEVALUE, :SPACEVALUE, :SPACEVALUE, ")
  228.                 .add(" A.curr_code, SUM(A.amount_debit) - SUM(A.amount_credit) AS amount ")
  229.                 .add(" FROM ( ")
  230.                 .add("      SELECT A.tenant_id, A.ou_id, A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_desc, A.trx_pos_id AS ref_id, ")
  231.                 .add("      A.doc_no, A.doc_date, A.partner_id, C.cashbank_id, C.cashbank_id AS cashbank_target_id, C.curr_code, ")
  232.                 .add("      SUM(B.conversion_amount) AS amount_debit, 0 AS amount_credit ")
  233.                 .add("      FROM ").add(CashBankConstants.TABLE_TRX_POS).add(" A ")
  234.                 .add("      INNER JOIN ").add(CashBankConstants.TABLE_TRX_POS_CASH_PAYMENT).add(" B ON A.trx_pos_id = B.trx_pos_id AND A.tenant_id = B.tenant_id AND A.process_no = B.process_no ")
  235.                 .add("      INNER JOIN ").add(CashBank.TABLE_NAME).add(" C ON B.curr_payment_code = C.curr_code ")
  236.                 .add("      INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" D ON B.cashbank_id = D.cashbank_id ")
  237.                 .add("      WHERE A.tenant_id = :tenantId ")
  238.                 .add("      AND D.ou_id = :ouId ")
  239.                 .add("      AND D.cashbank_id = :cashBankId ")
  240.                 .add("      AND SUBSTR(A.doc_date, 1, 6) = :yearMonth ")
  241.                 .add("      AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, D.cashbank_id) = 1 ")
  242.                 .add("      AND D.flg_cash_bank = :FLAG_CASH ")                
  243.                 .add("      GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.trx_pos_id, A.doc_no, A.doc_date, A.partner_id, D.cashbank_id, D.curr_code ")
  244.                 .add("      UNION ")
  245.                 .add("      SELECT A.tenant_id, A.ou_id, A.doc_type_id, f_get_doc_desc(A.doc_type_id) AS doc_desc, A.trx_pos_id AS ref_id, ")
  246.                 .add("      A.doc_no, A.doc_date, A.partner_id, C.cashbank_id, C.cashbank_id AS cashbank_target_id, C.curr_code, ")
  247.                 .add("      0 AS amount_debit, SUM(A.total_refund) AS amount_credit ")
  248.                 .add("      FROM ").add(CashBankConstants.TABLE_TRX_POS).add(" A ")
  249.                 .add("      INNER JOIN ").add(CashBank.TABLE_NAME).add(" C ON A.curr_code = C.curr_code ")
  250.                 .add("      INNER JOIN ").add(CashBankOu.TABLE_NAME).add(" D ON B.cashbank_id = D.cashbank_id ")
  251.                 .add("      WHERE A.tenant_id = :tenantId ")
  252.                 .add("      AND D.ou_id = :ouId ")
  253.                 .add("      AND D.cashbank_id = :cashBankId ")
  254.                 .add("      AND SUBSTR(A.doc_date, 1, 6) = :yearMonth ")
  255.                 .add("      AND f_authorize_user_role_policy_cashbank(:tenantId, :userId, :roleId, D.cashbank_id) = 1 ")
  256.                 .add("      AND D.flg_cash_bank = :FLAG_CASH ")                
  257.                 .add("      GROUP BY A.tenant_id, A.ou_id, A.doc_type_id, A.trx_pos_id, A.doc_no, A.doc_date, A.partner_id, D.cashbank_id, D.curr_code ")
  258.                 .add(" ) A ")
  259.                 .add(" AND EXISTS ( ")
  260.                 .add("      SELECT 1 ")
  261.                 .add("      FROM ").add(CashBankConstants.TABLE_TRX_LOG_VOIDED_POS).add(" B ")
  262.                 .add("      WHERE A.tenant_id = B.tenant_id ")
  263.                 .add("      AND A.doc_no = B.doc_no ")
  264.                 .add("      AND A.doc_date = B.doc_date ")
  265.                 .add("      AND A.ou_id = B.ou_id ")
  266.                 .add(" ) ")
  267.                 .add(" GROUP BY A.cashbank_id, A.doc_type_id, A.doc_no, A.doc_date ")
  268.                 .add(" ) A ")
  269.                 .add(" WHERE NOT EXISTS ( ")
  270.                 .add(" SELECT 1 ")
  271.                 .add(" FROM ").add(Reconcilement.TABLE_NAME).add(" B ")
  272.                 .add(" INNER JOIN ").add(ReconcilementItem.TABLE_NAME).add(" C ")
  273.                 .add(" WHERE B.tenant_id = :tenantId ")
  274.                 .add(" AND A.ou_id = :ouId")
  275.                 .add(" AND A.cashbank_id = :cashBankId")
  276.                 .add(" AND A.year_month = :yearMonth")
  277.                 .add(" AND C.trx_doc_type_id = A.doc_type_id")
  278.                 .add(" AND C.trx_doc_no = A.doc_no")
  279.                 .add(" AND C.trx_doc_date = A.doc_date")
  280.                 .add(" AND C.partner_id = A.partner_id")
  281.                 .add(" AND C.ref_doc_type_id = A.ref_doc_type_id")
  282.                 .add(" AND C.ref_id = A.ref_id")
  283.                 .add(" AND C.ref_doc_no = A.ref_doc_no")
  284.                 .add(" AND C.ref_doc_date = A.ref_doc_date")
  285.                 .add(" ) ");
  286.          
  287.          Query query = inOutCashbankDao.createNativeQuery(builder.toString());
  288.          query.setParameter("tenantId", tenantId);
  289.          query.setParameter("ouId", ouId);
  290.          query.setParameter("yearMonth", yearMonth);
  291.          query.setParameter("userId", userId);
  292.          query.setParameter("roleId", roleId);
  293.          query.setParameter("docTypeIdCBInOtherRcv", CashBankConstants.DOCUMENT_CASHBANK_IN_OTHER_RECEIVE);
  294.          query.setParameter("docTypeIdCBOut", CashBankConstants.DOCUMENT_CASHBANK_OUT);
  295.          query.setParameter("DOC_TYPE_CG_REALIZATION", CashBankConstants.DOCUMENT_CHEQUE_GIRO_REALIZATION);
  296.          query.setParameter("CASH", CashBankConstants.CASH);
  297.          query.setParameter("FLAG_CASH", CashBankConstants.FLAG_CASH);
  298.          query.setParameter("cashBankId", cashBankId);
  299.          query.setParameter("SPACEVALUE", GeneralConstants.SPACE_VALUE);
  300.          query.setParameter("EMPTY_ID", GeneralConstants.NULL_REF_VALUE_LONG);
  301.          
  302.          resultList = query.getResultList();         
  303.          outputDto.putList("cashBankTrxList", DtoUtil.createDtoListFromArray(resultList, "type", "docTypeId", "docTypeDesc", "docNo", "docDate",
  304.                  "partnerId", "partnerCode", "partnerName", "currCode", "amount", "refDocNo", "refDocDate", "modePayment", "bankPayment"));
  305.          
  306.          return outputDto;
  307.      }
  308.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement