Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.erp.master.bo.partner;
- import org.jleaf.core.AbstractBusinessFunction;
- import org.jleaf.core.BusinessFunction;
- import org.jleaf.core.CoreException;
- import org.jleaf.core.Dto;
- import org.jleaf.core.annotation.ErrorList;
- import org.jleaf.core.annotation.Info;
- import org.jleaf.core.annotation.InfoIn;
- import org.jleaf.core.annotation.InfoOut;
- import org.jleaf.core.dao.QueryBuilder;
- import org.jleaf.erp.master.MasterConstantsForSasa;
- import org.jleaf.erp.master.MasterExceptionConstants;
- import org.jleaf.erp.master.MasterExceptionConstantsForSasa;
- import org.jleaf.erp.master.dao.TypePartnerDao;
- import org.jleaf.erp.master.entity.Partner;
- import org.jleaf.erp.master.entity.PartnerType;
- import org.jleaf.erp.master.entity.TypePartner;
- import org.jleaf.util.DtoUtil;
- import org.jleaf.util.ValidationUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.persistence.Query;
- import java.util.List;
- // @formatter:off
- @Service
- @InfoIn(value={@Info(name = "tenantId", description = "tenant id", type=Long.class),
- @Info(name = "partnerId", description = "partner id", type=Long.class)})
- @InfoOut(value={@Info(name = "id", description = "partner type id", type=Long.class),
- @Info(name = "tenantId", description = "tenant id", type=Long.class),
- @Info(name = "code", description = "type partner code", type=String.class),
- @Info(name = "name", description = "type partner name", type=String.class),
- @Info(name = "groupPartner", description = "group partner", type=String.class),
- @Info(name = "coaId", description = "coa id", type=Long.class),
- @Info(name = "active", description = "active", type = String.class)})
- @ErrorList(errorKeys = {MasterExceptionConstants.TYPE_PARTNER_NOT_FOUND})
- public class FindTypeCustomerByPartnerId extends AbstractBusinessFunction implements BusinessFunction {
- @Autowired
- private TypePartnerDao typePartnerDao;
- @Override
- public String getDescription() {
- return "find type partner by tenant id and partner id";
- }
- @SuppressWarnings("unchecked")
- @Override
- public Dto execute(Dto inputDto) throws Exception {
- ValidationUtil.valDtoContainsKey(inputDto, "tenantId");
- ValidationUtil.valDtoContainsKey(inputDto, "partnerId");
- Dto outputDto;
- Long tenantId = inputDto.getLong("tenantId");
- Long partnerId = inputDto.getLong("partnerId");
- QueryBuilder builder = new QueryBuilder();
- builder.add("SELECT A.type_partner_id, A.tenant_id, A.type_partner_code, A.type_partner_name, A.group_partner, A.coa_id, A.active, b.due_date ")
- .add(" FROM "+ Partner.TABLE_NAME +" C ")
- .add(" INNER JOIN "+ PartnerType.TABLE_NAME +" B ON C.partner_id = B.partner_id AND B.group_partner = :GROUP_CUSTOMER ")
- .add(" INNER JOIN "+TypePartner.TABLE_NAME+" A ON B.type_partner_id = A.type_partner_id ")
- .add(" WHERE C.tenant_id = :tenantId ")
- .add(" AND C.partner_id = :partnerId ")
- .add(" ");
- Query q = typePartnerDao.createNativeQuery(builder.toString());
- q.setParameter("tenantId", tenantId);
- q.setParameter("partnerId", partnerId);
- q.setParameter("GROUP_CUSTOMER", MasterConstantsForSasa.GROUP_PARTNER_CODE_CUSTOMER);
- List<Object[]> typePartnerList = q.getResultList();
- if (typePartnerList.size() != 0) {
- outputDto = new Dto().putList("typePartnerList", DtoUtil.createDtoListFromArray(typePartnerList, "id",
- "tenantId", "code", "name", "groupPartner", "coaId", "active", "dueDate"));
- List<Dto> resultList = outputDto.getList("typePartnerList");
- return new Dto(resultList.get(0));
- } else {
- throw new CoreException(MasterExceptionConstantsForSasa.TYPE_PARTNER_NOT_FOUND_ID, partnerId);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement