congky

IsSalesOrderItemHasNotBeenFollowedUpBySoId

Aug 8th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.02 KB | None | 0 0
  1. package org.jleaf.erp.sls.bo.salesorder;
  2.  
  3. import javax.persistence.NoResultException;
  4. import javax.persistence.Query;
  5.  
  6. import org.jleaf.core.AbstractBusinessFunction;
  7. import org.jleaf.core.BusinessFunction;
  8. import org.jleaf.core.Dto;
  9. import org.jleaf.core.annotation.Info;
  10. import org.jleaf.core.annotation.InfoIn;
  11. import org.jleaf.core.annotation.InfoOut;
  12. import org.jleaf.core.dao.QueryBuilder;
  13. import org.jleaf.erp.sls.SalesConstants;
  14. import org.jleaf.erp.sls.dao.SalesOrderBalanceItemDao;
  15. import org.jleaf.erp.sls.entity.SalesOrderBalanceItem;
  16. import org.jleaf.erp.sls.entity.SalesOrderItem;
  17. import org.jleaf.util.ValidationUtil;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20.  
  21. /**
  22.  * Is Sales Order Item Has Not Been Followed Up By So Id
  23.  * @author Cong, Jul 6, 2017
  24.  *
  25.  * Bf ini digunakan untuk melakukan pengecekan apakah sebuah SO memiliki item yang sedang atau sudah pernah di lakukan
  26.  * follow up oleh dokumen lain, atau tidak
  27.  * jika di dapatkan item yang sedang atau sudah pernah di follow up, maka akan mengembalikan true, jika tidak ada maka false
  28.  *
  29.  */
  30. @Service
  31. @InfoIn(value = {
  32.     @Info(name = "tenantId", description = "tenant id", type = Long.class),
  33.     @Info(name = "soId", description = "SO id", type = Long.class)
  34. })
  35. @InfoOut(value = {
  36.     @Info(name = "exists", description = "exists", type = Boolean.class, required = true)
  37. })
  38. public class IsSalesOrderItemHasNotBeenFollowedUpBySoId extends AbstractBusinessFunction implements BusinessFunction{
  39.    
  40.     @Autowired
  41.     private SalesOrderBalanceItemDao salesOrderBalanceItemDao;
  42.    
  43.     @Override
  44.     public String getDescription() {
  45.         return "Is Sales Order Item Has Not Been Followed Up By So Id";
  46.     }
  47.  
  48.     @Override
  49.     public Dto execute(Dto inputDto) throws Exception {
  50.        
  51.         ValidationUtil.valNumeric(inputDto, "tenantId");
  52.         ValidationUtil.valNumeric(inputDto, "soId");
  53.        
  54.         Long tenantId = inputDto.getLong("tenantId");
  55.         Long soId = inputDto.getLong("soId");
  56.         Object resultQuery = null;
  57.         boolean exists = false;
  58.        
  59.         QueryBuilder builder = new QueryBuilder();
  60.         builder.add(" SELECT COUNT(A.so_item_id) AS count ")
  61.                .add(" FROM ").add(SalesOrderBalanceItem.TABLE_NAME).add(" A ")
  62.                .add(" INNER JOIN ").add(SalesOrderItem.TABLE_NAME).add(" B ").add(" ON A.so_item_id = B.so_item_id ")
  63.                .add(" WHERE A.tenant_id = :tenantId ")
  64.                .add(" AND B.so_id = :soId ")
  65.                .add(" AND (A.status_item != :releaseStatus OR qty_dlv_int != 0 OR qty_return_int != 0 OR qty_cancel_int != 0 OR qty_add_int != 0 ) ");
  66.  
  67.         Query query = salesOrderBalanceItemDao.createNativeQuery(builder.toString());
  68.         query.setParameter("tenantId", tenantId);
  69.         query.setParameter("soId", soId);
  70.         query.setParameter("releaseStatus", SalesConstants.RELEASED_TRANSACTION);
  71.  
  72.         try {
  73.             resultQuery = query.getSingleResult();
  74.         } catch (NoResultException e) {
  75.             resultQuery = 0;
  76.         }
  77.        
  78.         if (Long.valueOf(resultQuery.toString()) > 0) {
  79.             exists = true;
  80.         }
  81.        
  82.        
  83.         return new Dto().put("exists", exists);
  84.     }
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment