Commit 1a7e533e authored by đinh thị đầm's avatar đinh thị đầm

Merge branch 'master' of http://git.myitsol.com/hanv/service-campaign

# Conflicts:
#	src/main/java/com/viettel/campaign/ServiceCampaignApplication.java
parents 331ac0fe 897c8766
File added
package com.viettel.campaign;
//
//import com.viettel.campaign.utils.Config;
import com.viettel.campaign.utils.Config;
import com.viettel.campaign.utils.RedisUtil;
import org.springframework.boot.SpringApplication;
......
package com.viettel.campaign.mapper;
import com.viettel.campaign.model.ccms_full.CampaignAgent;
import com.viettel.campaign.web.dto.CampaignAgentDTO;
public class CampaignAgentMapper extends BaseMapper<CampaignAgent, CampaignAgentDTO> {
@Override
public CampaignAgentDTO toDtoBean(CampaignAgent campaignAgent) {
CampaignAgentDTO obj = new CampaignAgentDTO();
obj.setAgentId(campaignAgent.getAgentId());
obj.setCampaignAgentId(campaignAgent.getCampaignAgentId());
obj.setCampaignId(campaignAgent.getCampaignId());
obj.setCompanySiteId(campaignAgent.getCompanySiteId());
obj.setFilterType(campaignAgent.getFilterType());
obj.setReSchedule(campaignAgent.getReSchedule());
obj.setStatus(campaignAgent.getStatus());
return obj;
}
@Override
public CampaignAgent toPersistenceBean(CampaignAgentDTO dtoBean) {
CampaignAgent obj = new CampaignAgent();
obj.setAgentId(dtoBean.getAgentId());
obj.setCampaignAgentId(dtoBean.getCampaignAgentId());
obj.setCampaignId(dtoBean.getCampaignId());
obj.setCompanySiteId(dtoBean.getCompanySiteId());
obj.setFilterType(dtoBean.getFilterType());
obj.setReSchedule(dtoBean.getReSchedule());
obj.setStatus(dtoBean.getStatus());
return obj;
}
}
......@@ -9,6 +9,8 @@ import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Repository
@Transactional(DataSourceQualify.CCMS_FULL)
public interface CampaignAgentRepository extends JpaRepository<CampaignAgent, Long> {
......@@ -19,4 +21,8 @@ public interface CampaignAgentRepository extends JpaRepository<CampaignAgent, Lo
@Modifying
@Query("UPDATE CampaignAgent SET status = :status WHERE agentId = :agentId AND campaignId = :campaignId")
void updateCampaignAgentSetStatus(@Param("agentId") Long agentId, @Param("campaignId") Long campaignId, @Param("status") Integer status);
@Modifying
@Query("delete from CampaignAgent c where c.campaignAgentId in (:p_campaign_agent_id)")
int deleteCampaignAgent(@Param("p_campaign_agent_id") List<Long> campaignAgentId);
}
package com.viettel.campaign.service;
import com.viettel.campaign.web.dto.CampaignAgentsDTO;
import com.viettel.campaign.web.dto.CampaignAgentDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignAgentRequestDTO;
import java.util.List;
public interface AgentsService {
ResultDTO getAgentsByAgentId(String agentId);
ResultDTO getAllAgentsByCompanySiteId(int page, int pageSize, Long companySiteId);
ResultDTO getAllAgentByCompanySiteId(int page, int pageSize, Long companySiteId);
ResultDTO getAllAgentSelectedByCompanySiteId(int page, int pageSize, Long companySiteId, Long campaignId);
ResultDTO createCampaignAgent(CampaignAgentDTO campaignAgentDTO);
ResultDTO deleteCampaignAgentById(List<Long> campaignAgentId);
ResultDTO getAllAgentsSelectedByCompanySiteId(int page, int pageSize, Long companySiteId, Long campaignId);
ResultDTO searchCampaignAgentByName(int page, int pageSize, Long companySiteId, String userName, String fullName);
ResultDTO createCampaignAgents(CampaignAgentsDTO campaignAgentsDTO);
ResultDTO createMultipleCampaignAgent(CampaignAgentRequestDTO campaignAgentRequestDTO);
}
......@@ -26,6 +26,8 @@ public interface CustomerService {
ResultDTO deleteIds(CustomerRequestDTO customerRequestDTO);
ResultDTO getCustomerDetailById(Long companySiteId, Long customerListId, Long customerId);
// ------------ customer list ------------ //
ResultDTO getAllCustomerList(int page, int pageSize, String sort, Long companySiteId);
......
package com.viettel.campaign.service.impl;
import com.viettel.campaign.config.CCMSFullDatasourceConfig;
import com.viettel.campaign.config.DataSourceQualify;
import com.viettel.campaign.mapper.CustomerListMapper;
import com.viettel.campaign.mapper.CustomerMapper;
import com.viettel.campaign.model.ccms_full.Customer;
import com.viettel.campaign.model.ccms_full.CustomerContact;
import com.viettel.campaign.model.ccms_full.CustomerList;
import com.viettel.campaign.model.ccms_full.VSAUsers;
import com.viettel.campaign.repository.ccms_full.*;
import com.viettel.campaign.service.CustomerService;
import com.viettel.campaign.utils.Constants;
......@@ -15,11 +13,10 @@ import com.viettel.campaign.utils.DataUtil;
import com.viettel.campaign.utils.HibernateUtil;
import com.viettel.campaign.utils.SQLBuilder;
import com.viettel.campaign.web.dto.*;
import com.viettel.campaign.web.dto.request_dto.CustomerDetailRequestDTO;
import com.viettel.campaign.web.dto.request_dto.CustomerRequestDTO;
import com.viettel.campaign.web.dto.request_dto.SearchCustomerRequestDTO;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.hibernate.SQLQuery;
......@@ -32,8 +29,6 @@ import org.hibernate.type.ShortType;
import org.hibernate.type.StringType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.data.domain.*;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
......@@ -44,12 +39,8 @@ import org.springframework.util.ResourceUtils;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.sql.DataSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.util.*;
@Service
......@@ -193,13 +184,13 @@ public class CustomerServiceImpl implements CustomerService {
sqlStrBuilder.append(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_MNG, "campaign-customer-detail-by-params"));
if (!DataUtil.isNullOrEmpty(name)) {
sqlStrBuilder.append(" AND b.NAME LIKE :p_name");
sqlStrBuilder.append(" AND UPPER(b.NAME) LIKE UPPER(:p_name)");
}
if (!DataUtil.isNullOrEmpty(mobileNumber)) {
sqlStrBuilder.append(" AND c.MOBILE LIKE :p_mobile_number");
sqlStrBuilder.append(" AND UPPER(c.MOBILE) LIKE UPPER(:p_mobile_number)");
}
if (!DataUtil.isNullOrEmpty(email)) {
sqlStrBuilder.append(" AND d.EMAIL LIKE :p_email");
sqlStrBuilder.append(" AND UPPER(d.EMAIL) LIKE UPPER(:p_email)");
}
sqlStrBuilder.append(" ORDER BY name DESC");
......@@ -350,6 +341,59 @@ public class CustomerServiceImpl implements CustomerService {
return resultDTO;
}
@Override
public ResultDTO getCustomerDetailById(Long companySiteId, Long customerListId, Long customerId) {
ResultDTO resultDTO = new ResultDTO();
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
if (DataUtil.isNullOrZero(companySiteId)) {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
return resultDTO;
}
try {
StringBuilder sqlStrBuilder = new StringBuilder();
sqlStrBuilder.append(SQLBuilder.getSqlQueryById(SQLBuilder.SQL_MODULE_CAMPAIGN_MNG, "get-customer-detail-by-id"));
sqlStrBuilder.append(" AND e.FUNCTION_CODE = 'CUSTOMER'");
SQLQuery query = session.createSQLQuery(sqlStrBuilder.toString());
query.setParameter("p_company_site_id", companySiteId);
query.setParameter("p_customer_list_id", customerListId);
query.setParameter("p_customer_id", customerId);
query.addScalar("companySiteId", new LongType());
query.addScalar("customerListId", new LongType());
query.addScalar("customerId", new LongType());
query.addScalar("title", new StringType());
query.addScalar("type", new StringType());
query.addScalar("valueCombobox", new StringType());
query.addScalar("valueCheckbox", new ShortType());
query.addScalar("valueDate", new DateType());
query.addScalar("valueNumber", new LongType());
query.addScalar("valueText", new StringType());
query.setResultTransformer(Transformers.aliasToBean(CustomerDetailRequestDTO.class));
List<CustomerDetailRequestDTO> data = query.list();
resultDTO.setData(data);
resultDTO.setErrorCode(Constants.ApiErrorCode.SUCCESS);
resultDTO.setDescription(Constants.ApiErrorDesc.SUCCESS);
} catch (Exception e) {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} finally {
session.close();
}
return resultDTO;
}
public Date getSysdate() {
try {
Query query = entityManager.createNativeQuery("SELECT to_char(sysdate, 'dd/MM/YYYY hh24:mi:ss') FROM DUAL ");
......@@ -570,10 +614,10 @@ public class CustomerServiceImpl implements CustomerService {
sqlStrBuilder.append(" AND CREATE_AT BETWEEN to_date(:p_date_from, 'YYYYMMDD') AND to_date(:p_date_to, 'YYYYMMDD')");
if (!DataUtil.isNullOrEmpty(searchCustomerRequestDTO.getCustomerListCode())) {
sqlStrBuilder.append(" AND CUSTOMER_LIST_CODE LIKE :p_list_code");
sqlStrBuilder.append(" AND UPPER(CUSTOMER_LIST_CODE) LIKE UPPER(:p_list_code)");
}
if (!DataUtil.isNullOrEmpty(searchCustomerRequestDTO.getCustomerListName())) {
sqlStrBuilder.append(" AND CUSTOMER_LIST_NAME LIKE :p_list_name");
sqlStrBuilder.append(" AND UPPER(CUSTOMER_LIST_NAME) LIKE UPPER(:p_list_name)");
}
SQLQuery query = session.createSQLQuery(sqlStrBuilder.toString());
......
package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CampaignAgentDTO extends BaseDTO {
Long campaignAgentId;
Long campaignId;
Long agentId;
Short filterType;
Integer status;
Long companySiteId;
Long reSchedule;
}
......@@ -3,8 +3,6 @@ package com.viettel.campaign.web.dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class CustomerCustomDTO {
......
......@@ -12,26 +12,27 @@ public class VSAUsersDTO {
String userName;
Short status;
String fullName;
Long userTypeId;
Date createDate;
String description;
String staffCode;
Long managerId;
Long locationId;
Long deptId;
String deptLevel;
Long posId;
String deptName;
Long groupId;
Long siteId;
// Long userTypeId;
// Date createDate;
// String description;
// String staffCode;
// Long managerId;
// Long locationId;
// Long deptId;
// String deptLevel;
// Long posId;
// String deptName;
// Long groupId;
// Long siteId;
Long companySiteId;
Short agentType;
String mobileNumber;
String facebookId;
Short loginType;
String googleId;
String email;
Long availableTicket;
String userKazooId;
// Short agentType;
// String mobileNumber;
// String facebookId;
// Short loginType;
// String googleId;
// String email;
// Long availableTicket;
// String userKazooId;
Short filterType;
Long campaignAgentId;
}
package com.viettel.campaign.web.dto.request_dto;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class CampaignAgentRequestDTO {
Long companySiteId;
Long campaignId;
List<Long> agentId;
}
package com.viettel.campaign.web.dto.request_dto;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class CustomerDetailRequestDTO {
Long companySiteId;
Long customerListId;
Long customerId;
String title;
String type;
String valueCombobox;
Short valueCheckbox;
Date valueDate;
Long valueNumber;
String valueText;
}
package com.viettel.campaign.web.rest;
import com.viettel.campaign.service.AgentsService;
import com.viettel.campaign.web.dto.CampaignAgentsDTO;
import com.viettel.campaign.web.dto.CampaignAgentDTO;
import com.viettel.campaign.web.dto.ResultDTO;
import com.viettel.campaign.web.dto.request_dto.CampaignAgentRequestDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -11,10 +12,11 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@RestController
@RequestMapping("/ipcc/agents")
@CrossOrigin
@CrossOrigin(origins = "*")
public class AgentsController {
private static final Logger logger = LoggerFactory.getLogger(CampaignController.class);
......@@ -31,23 +33,46 @@ public class AgentsController {
@GetMapping("/findAll")
@ResponseBody
public ResponseEntity<ResultDTO> listAgentsByCompanySiteId(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("companySiteId") Long companySiteId) {
ResultDTO result = agentsService.getAllAgentsByCompanySiteId(page, pageSize, companySiteId);
public ResponseEntity<ResultDTO> listAgentByCompanySiteId(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("companySiteId") Long companySiteId) {
ResultDTO result = agentsService.getAllAgentByCompanySiteId(page, pageSize, companySiteId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@GetMapping("/findAllSelected")
@ResponseBody
public ResponseEntity<ResultDTO> listAgentsSelectedByCompanySiteId(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("companySiteId") Long companySiteId, @RequestParam("campaignId") Long campaignId) {
ResultDTO result = agentsService.getAllAgentsSelectedByCompanySiteId(page, pageSize, companySiteId, campaignId);
public ResponseEntity<ResultDTO> listAgentSelectedByCompanySiteId(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("companySiteId") Long companySiteId, @RequestParam("campaignId") Long campaignId) {
ResultDTO result = agentsService.getAllAgentSelectedByCompanySiteId(page, pageSize, companySiteId, campaignId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@PostMapping("/createCampaignAgents")
@PostMapping("/createCampaignAgent")
@ResponseBody
public ResultDTO createCustomerList(@RequestBody @Valid CampaignAgentsDTO campaignAgentsDTO) {
public ResultDTO createCampaignAgent(@RequestBody @Valid CampaignAgentDTO campaignAgentDTO) {
ResultDTO result = new ResultDTO();
result = agentsService.createCampaignAgents(campaignAgentsDTO);
result = agentsService.createCampaignAgent(campaignAgentDTO);
return result;
}
@PostMapping("/deleteCampaignAgent")
@ResponseBody
public ResultDTO deleteCampaignAgentById(@RequestBody @Valid List<Long> campaignAgentId) {
ResultDTO result = new ResultDTO();
result = agentsService.deleteCampaignAgentById(campaignAgentId);
return result;
}
@GetMapping("/searchCampaignAgent")
@ResponseBody
public ResponseEntity<ResultDTO> searchCampaignAgent(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize, @RequestParam("companySiteId") Long companySiteId, @RequestParam("userName") String userName, @RequestParam("fullName") String fullName) {
ResultDTO result = agentsService.searchCampaignAgentByName(page, pageSize, companySiteId, userName, fullName);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@PostMapping("/createMultipleCampaignAgent")
@ResponseBody
public ResultDTO createMultipleCampaignAgent(@RequestBody @Valid CampaignAgentRequestDTO campaignAgentRequestDTO) {
ResultDTO result = new ResultDTO();
result = agentsService.createMultipleCampaignAgent(campaignAgentRequestDTO);
return result;
}
}
......@@ -90,6 +90,13 @@ public class CustomerController {
return result;
}
@GetMapping("/getInformation")
@ResponseBody
public ResponseEntity getAllInformation(@RequestParam("companySiteId") Long companySiteId, @RequestParam("customerListId") Long customerListId, @RequestParam("customerId") Long customerId) {
ResultDTO result = customerService.getCustomerDetailById(companySiteId, customerListId, customerId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
// --------------- customer list table ----------------- //
......@@ -120,7 +127,7 @@ public class CustomerController {
// return new ResponseEntity<>("", HttpStatus.OK);
}
@PutMapping("/updateCustomerList")
@PostMapping("/updateCustomerList")
@ResponseBody
public ResultDTO updateCustomerList(@RequestBody @Valid CustomerListDTO customerListDTO) {
ResultDTO result = new ResultDTO();
......
......@@ -3,28 +3,29 @@ SELECT
a.USER_NAME userName,
a.STATUS status,
a.FULL_NAME fullName,
a.USER_TYPE_ID userTypeId,
a.CREATE_DATE createDate,
a.DESCRIPTION description,
a.STAFF_CODE staffCode,
a.MANAGER_ID managerId,
a.LOCATION_ID locationId,
a.DEPT_ID deptId,
a.DEPT_LEVEL deptLevel,
a.POS_ID posId,
a.DEPT_NAME deptName,
a.GROUP_ID groupId,
a.SITE_ID siteId,
-- a.USER_TYPE_ID userTypeId,
-- a.CREATE_DATE createDate,
-- a.DESCRIPTION description,
-- a.STAFF_CODE staffCode,
-- a.MANAGER_ID managerId,
-- a.LOCATION_ID locationId,
-- a.DEPT_ID deptId,
-- a.DEPT_LEVEL deptLevel,
-- a.POS_ID posId,
-- a.DEPT_NAME deptName,
-- a.GROUP_ID groupId,
-- a.SITE_ID siteId,
a.COMPANY_SITE_ID companySiteId,
a.AGENT_TYPE agentType,
a.MOBILE_NUMBER mobileNumber,
a.FACEBOOK_ID facebookId,
a.LOGIN_TYPE loginType,
a.GOOGLE_ID googleId,
a.EMAIL email,
a.AVAILABLE_TICKET availableTicket,
a.USER_KAZOO_ID userKazooId,
b.FILTER_TYPE filterType
-- a.AGENT_TYPE agentType,
-- a.MOBILE_NUMBER mobileNumber,
-- a.FACEBOOK_ID facebookId,
-- a.LOGIN_TYPE loginType,
-- a.GOOGLE_ID googleId,
-- a.EMAIL email,
-- a.AVAILABLE_TICKET availableTicket,
-- a.USER_KAZOO_ID userKazooId,
b.FILTER_TYPE filterType,
b.CAMPAIGN_AGENT_ID campaignAgentId
FROM VSA_USERS a
-- LEFT JOIN CAMPAIGN_AGENT b on a.USER_ID = b.AGENT_ID
-- WHERE 1 = 1
......
......@@ -23,43 +23,3 @@ from CUSTOMER_LIST_MAPPING a
where 1 = 1
and a.COMPANY_SITE_ID = :p_company_site_id
and a.CUSTOMER_LIST_ID = :p_customer_list_id
-- test dynamic field
-- select
-- a.CUSTOMER_LIST_MAPPING_ID customerListMappingId,
-- a.COMPANY_SITE_ID companySiteId,
-- a.CUSTOMER_LIST_ID customerListId,
-- a.CUSTOMER_ID customerId,
-- b.NAME name,
-- b.DESCRIPTION description,
-- b.COMPANY_NAME companyName,
-- b.CUSTOMER_TYPE customerType,
-- b.CURRENT_ADDRESS currentAddress,
-- b.CALL_ALLOWED callAllowed,
-- b.EMAIL_ALLOWED emailAllowed,
-- b.SMS_ALLOWED smsAllowed,
-- b.IPCC_STATUS ipccStatus,
-- c.MOBILE mobileNumber,
-- d.EMAIL email,
-- e.TITLE title,
-- f.TYPE type,
-- h.VALUE_COMBOBOX valueCombobox,
-- e.VALUE_CHECKBOX valueCheckbox,
-- e.VALUE_DATE valueDate,
-- e.VALUE_NUMBER valueNumber,
-- e.VALUE_TEXT valueText
-- from CUSTOMER_LIST_MAPPING a
-- join CUSTOMER b on a.CUSTOMER_ID = b.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS MOBILE
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 5 GROUP BY CUSTOMER_ID) c on b.CUSTOMER_ID = c.CUSTOMER_ID
-- left join (SELECT CUSTOMER_ID, LISTAGG(CONTACT, ', ') WITHIN GROUP (ORDER BY NULL) AS EMAIL
-- FROM CUSTOMER_CONTACT WHERE CONTACT_TYPE = 2 GROUP BY CUSTOMER_ID) d on b.CUSTOMER_ID = d.CUSTOMER_ID
-- left join CUSTOMIZE_FIELD_OBJECT e on b.CUSTOMER_ID = e.OBJECT_ID
-- left join CUSTOMIZE_FIELDS f on e.CUSTOMIZE_FIELDS_ID = f.CUSTOMIZE_FIELD_ID
-- left join (SELECT FIELD_OPTION_VALUE_ID, NAME AS VALUE_COMBOBOX
-- FROM CUSTOMIZE_FIELD_OPTION_VALUE) h on h.FIELD_OPTION_VALUE_ID = e.FIELD_OPTION_VALUE_ID
-- where 1 = 1
-- and a.COMPANY_SITE_ID = :p_company_site_id
-- and a.CUSTOMER_LIST_ID = :p_customer_list_id
-- and e.FUNCTION_CODE = 'CUSTOMER'
select
a.COMPANY_SITE_ID companySiteId,
a.CUSTOMER_LIST_ID customerListId,
a.CUSTOMER_ID customerId,
e.TITLE title,
f.TYPE type,
h.VALUE_COMBOBOX valueCombobox,
e.VALUE_CHECKBOX valueCheckbox,
e.VALUE_DATE valueDate,
e.VALUE_NUMBER valueNumber,
e.VALUE_TEXT valueText
from CUSTOMER_LIST_MAPPING a
left join CUSTOMIZE_FIELD_OBJECT e on a.CUSTOMER_ID = e.OBJECT_ID
left join CUSTOMIZE_FIELDS f on e.CUSTOMIZE_FIELDS_ID = f.CUSTOMIZE_FIELD_ID
left join (SELECT FIELD_OPTION_VALUE_ID, NAME AS VALUE_COMBOBOX
FROM CUSTOMIZE_FIELD_OPTION_VALUE) h on h.FIELD_OPTION_VALUE_ID = e.FIELD_OPTION_VALUE_ID
where 1 = 1
and a.COMPANY_SITE_ID = :p_company_site_id
and a.CUSTOMER_LIST_ID = :p_customer_list_id
and a.CUSTOMER_ID = :p_customer_id
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment