Java tutorial
/* * Copyright (c) 2014 by Open eGovPlatform (http://http://openegovplatform.org/). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.oep.cmon.admin.portlet.action; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import org.oep.cmon.admin.portlet.business.CoQuanQuanLyBusiness; import org.oep.cmon.admin.portlet.util.ConvertUtil; import org.oep.cmon.admin.portlet.util.LiferayUserGroupUtils; import org.oep.cmon.admin.portlet.util.UserGroupUtils; import org.oep.cmon.portlet.taocongdan.action.TaoCongDanAction; import org.oep.cmon.dao.cc.model.ChucVu; import org.oep.cmon.dao.cc.service.ChucVuLocalServiceUtil; import org.oep.cmon.dao.nsd.model.TaiNguyen; import org.oep.cmon.dao.nsd.model.TaiNguyen2VaiTro; import org.oep.cmon.dao.nsd.service.TaiNguyen2VaiTroLocalServiceUtil; import org.oep.cmon.dao.nsd.service.TaiNguyenLocalServiceUtil; import org.oep.cmon.dao.qlhc.model.CapCoQuanQuanLy; import org.oep.cmon.dao.qlhc.model.CapDonViHanhChinh; import org.oep.cmon.dao.qlhc.model.ChucVu2VaiTro; import org.oep.cmon.dao.qlhc.model.ChucVu2VaiTroClp; import org.oep.cmon.dao.qlhc.model.CoQuanQuanLy; import org.oep.cmon.dao.qlhc.model.DonViHanhChinh; import org.oep.cmon.dao.qlhc.service.CapCoQuanQuanLyLocalServiceUtil; import org.oep.cmon.dao.qlhc.service.CapDonViHanhChinhLocalServiceUtil; import org.oep.cmon.dao.qlhc.service.ChucVu2VaiTroLocalServiceUtil; import org.oep.cmon.dao.qlhc.service.CoQuanQuanLyLocalServiceUtil; import org.oep.cmon.dao.qlhc.service.DonViHanhChinhLocalServiceUtil; import org.oep.cmon.dao.thamso.service.ThamSoLocalServiceUtil; import com.liferay.counter.service.CounterLocalServiceUtil; import com.liferay.portal.kernel.dao.orm.Criterion; import com.liferay.portal.kernel.dao.orm.DynamicQuery; import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil; import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil; import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.servlet.SessionErrors; import com.liferay.portal.kernel.servlet.SessionMessages; import com.liferay.portal.kernel.util.ParamUtil; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.model.Role; import com.liferay.portal.model.UserGroup; import com.liferay.portal.service.GroupLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.UserGroupLocalServiceUtil; import com.liferay.portal.util.PortalUtil; /** * This is class CoQuanQuanLyAction * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new */ public class CoQuanQuanLyAction { /** Search by code option */ private static String SEARCH_CODE_OPTION = "0"; /** Search by name option */ private static String SEARCH_NAME_OPTION = "1"; /** Action mode, 0: insert, 1: edit */ private static int INSERT_MODE = 0; /** Action mode, 0: insert, 1: edit */ private static int EDIT_MODE = 1; private final String CMON_ADMIN_COMPANY_ID = "CMON_ADMIN_COMPANY_ID"; private static Log log = LogFactoryUtil.getLog(CoQuanQuanLyAction.class); /** * This is function search CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void searchCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { // Get the search option String searchOption = ParamUtil.getString(actionRequest, "searchOption"); // Get the parent id if submitted String strParentId = ParamUtil.getString(actionRequest, "parentId"); long parentId = 0; if (Validator.isNotNull(strParentId)) { parentId = Long.parseLong(strParentId); } // Get the search keyword if submitted String keyWord = ParamUtil.getString(actionRequest, "keyWord"); this.searchCoQuanQuanLy(searchOption, parentId, keyWord, actionRequest, actionResponse); } /** * This is function search CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param searchOption * @param parentId * @param keyWord * @param actionRequest * @param actionResponse * @throws Exception */ public void searchCoQuanQuanLy(String searchOption, long parentId, String keyWord, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { // Build the query DynamicQuery query = DynamicQueryFactoryUtil.forClass(CoQuanQuanLy.class); // Always search un-deleted record query = query.add(PropertyFactoryUtil.forName("daXoa").eq(0)); // Add the criteria incase keyword search is not null if (Validator.isNotNull(searchOption) && Validator.isNotNull(keyWord)) { Criterion criteria = null; // Define search criteria if (searchOption.equals(SEARCH_CODE_OPTION)) { criteria = RestrictionsFactoryUtil.ilike("ma", "%" + keyWord + "%"); } else { criteria = RestrictionsFactoryUtil.ilike("ten", "%" + keyWord + "%"); } // Define search criteria query = query.add(criteria); } // BinhNT Comemnt lai theo yeu cau anh Giang muon search all 2013-11-01 // // Query by parent id // if (parentId > 0) { // query = query.add( PropertyFactoryUtil.forName("chaId").eq(parentId)); // } else { // // Search all highest level // Criterion cr1 = RestrictionsFactoryUtil.isNull("chaId"); // Criterion cr2 = RestrictionsFactoryUtil.eq("chaId", new Long(0)); // // query = query.add( RestrictionsFactoryUtil.or(cr1, cr2)); // } // End Binh Comment // BinhNT Add 2013-11-01 // Query by parent id if (parentId > 0) { query = query.add(PropertyFactoryUtil.forName("chaId").eq(parentId)); } // End BinhNT Add 2013-11-01 List<CoQuanQuanLy> results = null; try { results = CoQuanQuanLyLocalServiceUtil.dynamicQuery(query); } catch (SystemException e) { e.printStackTrace(); } // Set the result back to session actionRequest.getPortletSession().setAttribute("SEARCH_CO_QUAN_QUAN_LY_RESULT", results); // Store the search option to session for coming back to search screen from edit screen Map<String, String> searchParam = new HashMap<String, String>(); if (Validator.isNull(searchOption)) { searchOption = SEARCH_NAME_OPTION; } searchParam.put("searchOption", searchOption); searchParam.put("keyWord", keyWord); searchParam.put("parentId", String.valueOf(parentId)); // Set the search param back to session actionRequest.getPortletSession().setAttribute("SEARCH_CO_QUAN_QUAN_LY_PARAMS", searchParam); // Redirect User String popup = ParamUtil.getString(actionRequest, "popup"); if (Validator.isNotNull(popup)) { actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/co_quan_quan_ly_list_popup.jsp"); } else { actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/co_quan_quan_ly_list.jsp"); } actionResponse.setRenderParameter("parentId", String.valueOf(parentId)); actionResponse.setRenderParameter("searchOption", searchOption); actionResponse.setRenderParameter("keyWord", keyWord); } /** * This is function reload role CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void reloadQuyenToCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { String chuc_vu_id = ParamUtil.getString(actionRequest, "chuc_vu_id"); String coQuanQuanLyID = ParamUtil.getString(actionRequest, "coQuanQuanLyID"); actionResponse.setRenderParameter("coQuanQuanLyID", coQuanQuanLyID); actionResponse.setRenderParameter("chuc_vu_id", chuc_vu_id); actionResponse.setRenderParameter("keyWord", ParamUtil.getString(actionRequest, "keyWord").trim()); actionResponse.setRenderParameter("searchOption", ParamUtil.getString(actionRequest, "searchOption").trim()); actionResponse.setRenderParameter("parentId", ParamUtil.getString(actionRequest, "parentId").trim()); actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/themvaitro_chucvucho_coquanquanly.jsp"); } /** * This is function delete role CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void deleteQuyenToCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { String chuc_vu_id = ParamUtil.getString(actionRequest, "chuc_vu_id"); String vaitro_id = ParamUtil.getString(actionRequest, "vaitro_id"); String coQuanQuanLyID = ParamUtil.getString(actionRequest, "coQuanQuanLyID"); ChucVu2VaiTro chucVu2VaiTro = ChucVu2VaiTroLocalServiceUtil.findChucVu2VaiTro( ConvertUtil.convertToLong(vaitro_id), ConvertUtil.convertToLong(coQuanQuanLyID), ConvertUtil.convertToLong(chuc_vu_id)); if (chucVu2VaiTro != null) { // Tim ten UserGroup UserGroup userGroup = null; String tenGroup = ""; long groupIdS[] = null; try { ChucVu2VaiTroLocalServiceUtil.deleteChucVu2VaiTro(chucVu2VaiTro.getId()); CoQuanQuanLy coQuanQuanLy = CoQuanQuanLyLocalServiceUtil .fetchCoQuanQuanLy(ConvertUtil.convertToLong(coQuanQuanLyID)); ChucVu chucVu = ChucVuLocalServiceUtil.fetchChucVu(ConvertUtil.convertToLong(chuc_vu_id)); //tenGroup = coQuanQuanLy.getTen() + "_" + chucVu.getTen(); tenGroup = LiferayUserGroupUtils.getUserGroupName(coQuanQuanLy.getTen(), chucVu.getTen()); // Tim xem da tao Group voi ten nhu tren chua userGroup = CoQuanQuanLyBusiness.findUserGroupByName(tenGroup, actionRequest); if (userGroup != null) { groupIdS = new long[] { userGroup.getGroup().getGroupId() }; } } catch (Exception e) { } // Bo thiet lap role den group ben liferay. if (groupIdS != null) { TaiNguyen taiNguyen = null; List<TaiNguyen2VaiTro> lNguyen2VaiTros = TaiNguyen2VaiTroLocalServiceUtil .findByVaiTroID(chucVu2VaiTro.getVaiTroId(), 0); if (lNguyen2VaiTros != null) { for (TaiNguyen2VaiTro taiNguyen2VaiTro : lNguyen2VaiTros) { try { taiNguyen = TaiNguyenLocalServiceUtil.fetchTaiNguyen(taiNguyen2VaiTro.getTaiNguyenId()); if (ConvertUtil.convertToLong(taiNguyen.getGiaTri()) > 0) { try { GroupLocalServiceUtil.unsetRoleGroups( ConvertUtil.convertToLong(taiNguyen.getGiaTri()), groupIdS); } catch (Exception es1) { es1.printStackTrace(); } } } catch (Exception ess) { ess.printStackTrace(); } } } } } actionResponse.setRenderParameter("coQuanQuanLyID", coQuanQuanLyID); actionResponse.setRenderParameter("chuc_vu_id", chuc_vu_id); actionResponse.setRenderParameter("keyWord", ParamUtil.getString(actionRequest, "keyWord").trim()); actionResponse.setRenderParameter("searchOption", ParamUtil.getString(actionRequest, "searchOption").trim()); actionResponse.setRenderParameter("parentId", ParamUtil.getString(actionRequest, "parentId").trim()); actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/themvaitro_chucvucho_coquanquanly.jsp"); } /** * This is function add role to CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void addQuyenToCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { // long companyId = ConvertUtil.convertToLong(WebserviceFactory.getThamSoService().getValue(CMON_ADMIN_COMPANY_ID)); long companyId = PortalUtil.getUser(actionRequest).getCompanyId(); long chuc_vu_id = ParamUtil.getLong(actionRequest, "chuc_vu_id"); long coQuanQuanLyID = ParamUtil.getLong(actionRequest, "coQuanQuanLyID"); String[] vaiTroId = ParamUtil.getParameterValues(actionRequest, "select-selected-id"); //Tao ChucVu2VaiTro. List<ChucVu2VaiTro> liChucVu2VaiTros = ChucVu2VaiTroLocalServiceUtil .findByIdChucVuAndIdCoQuanQuanLy(chuc_vu_id, coQuanQuanLyID, 0); // Neu chua co thi tao moi if (liChucVu2VaiTros.size() > 0) { for (ChucVu2VaiTro chucVu2VaiTro : liChucVu2VaiTros) { try { ChucVu2VaiTroLocalServiceUtil.deleteChucVu2VaiTro(chucVu2VaiTro.getId()); } catch (Exception e) { } } } ChucVu2VaiTro _chucVu2VaiTro = null; for (String _vaiTroId : vaiTroId) { try { _chucVu2VaiTro = new ChucVu2VaiTroClp(); _chucVu2VaiTro.setId(CounterLocalServiceUtil.increment(ChucVu2VaiTro.class.getName())); _chucVu2VaiTro.setChucVuId(chuc_vu_id); _chucVu2VaiTro.setVaiTroId(ConvertUtil.convertToLong(_vaiTroId)); _chucVu2VaiTro.setCoQuanQuanLyId(coQuanQuanLyID); _chucVu2VaiTro.setNgaySua(new Date()); _chucVu2VaiTro.setNguoiSua(PortalUtil.getUser(actionRequest).getEmailAddress()); _chucVu2VaiTro.setNgayTao(new Date()); _chucVu2VaiTro.setNguoiTao(PortalUtil.getUser(actionRequest).getEmailAddress()); ChucVu2VaiTroLocalServiceUtil.addChucVu2VaiTro(_chucVu2VaiTro); } catch (Exception es) { es.printStackTrace(); } } // Tao Organization tren liferay try { log.info("===========add usergroup"); UserGroup userGroup = null; CoQuanQuanLy coQuanQuanLy = CoQuanQuanLyLocalServiceUtil.fetchCoQuanQuanLy(coQuanQuanLyID); ChucVu chucVu = ChucVuLocalServiceUtil.fetchChucVu(chuc_vu_id); //String tenGroup = coQuanQuanLy.getTen() + "_" + chucVu.getTen(); String tenGroup = LiferayUserGroupUtils.getUserGroupName(coQuanQuanLy.getTen(), chucVu.getTen()); log.info("1===========add usergroup name:" + tenGroup); // Tim xem da tao Group voi ten nhu tren chua userGroup = CoQuanQuanLyBusiness.findUserGroupByName(tenGroup, actionRequest); long groupIdS[] = null; // Neu tao roi thi xoa toan bo cac lien ket di if (userGroup != null) { log.info("2===========update role for group :"); groupIdS = new long[] { userGroup.getGroup().getGroupId() }; /* * Xoa toan bo role ep den group truoc day * b1. Lay toan bo Vatro theo chuc vu. * b2. Lay toan bo tai nguye theo vai tro. * b3. unset role vao group */ List<TaiNguyen2VaiTro> lNguyen2VaiTros = null; TaiNguyen taiNguyen = null; //delete all role assign for Group List<Role> rList = RoleLocalServiceUtil.getRoles(companyId); if (rList != null) { for (Role role : rList) { try { GroupLocalServiceUtil.unsetRoleGroups(role.getRoleId(), groupIdS); } catch (Exception e) { // TODO: handle exception } } } } else { //create new group try { log.info("3===========create new group :"); userGroup = UserGroupLocalServiceUtil.addUserGroup(PortalUtil.getUserId(actionRequest), companyId, tenGroup, ""); groupIdS = new long[] { userGroup.getGroup().getGroupId() }; log.info("3===========create OK ! :"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } // Gan cac vatro tren liferay vao Group tren liferay List<TaiNguyen2VaiTro> lNguyen2VaiTros = null; TaiNguyen taiNguyen = null; for (String _vaiTroId : vaiTroId) { lNguyen2VaiTros = TaiNguyen2VaiTroLocalServiceUtil .findByVaiTroID(ConvertUtil.convertToLong(_vaiTroId), 0); if (lNguyen2VaiTros != null) { for (TaiNguyen2VaiTro taiNguyen2VaiTro : lNguyen2VaiTros) { try { taiNguyen = TaiNguyenLocalServiceUtil.fetchTaiNguyen(taiNguyen2VaiTro.getTaiNguyenId()); if (taiNguyen == null) { taiNguyen = TaiNguyenLocalServiceUtil .fetchTaiNguyen(taiNguyen2VaiTro.getTaiNguyenId()); } if (taiNguyen != null && taiNguyen.getGiaTri().trim().length() > 0) { try { GroupLocalServiceUtil.addRoleGroups( ConvertUtil.convertToLong(taiNguyen.getGiaTri()), groupIdS); } catch (Exception es1) { es1.printStackTrace(); } } } catch (Exception ess) { ess.printStackTrace(); } } } } } catch (Exception es) { es.printStackTrace(); } actionResponse.setRenderParameter("coQuanQuanLyID", String.valueOf(coQuanQuanLyID)); actionResponse.setRenderParameter("chuc_vu_id", String.valueOf(chuc_vu_id)); actionResponse.setRenderParameter("keyWord", ParamUtil.getString(actionRequest, "keyWord").trim()); actionResponse.setRenderParameter("searchOption", ParamUtil.getString(actionRequest, "searchOption").trim()); actionResponse.setRenderParameter("parentId", ParamUtil.getString(actionRequest, "parentId").trim()); actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/themvaitro_chucvucho_coquanquanly.jsp"); } /** * This is function add or edit CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void addEditCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { // Get the 2 required parameters long parentId = ParamUtil.getLong(actionRequest, "parentId"); // Mode int mode = ParamUtil.getInteger(actionRequest, "mode"); Map<String, String> userRequest = (Map<String, String>) actionRequest.getPortletSession() .getAttribute("USER_REQUEST_CQQL_OBJECT"); if (userRequest == null) { userRequest = new HashMap<String, String>(); } // Get ma co quan quan ly String ma = ParamUtil.getString(actionRequest, "ma"); userRequest.put("ma", ma); String ten = ParamUtil.getString(actionRequest, "ten"); userRequest.put("ten", ten); String tinh = ParamUtil.getString(actionRequest, "tinh"); userRequest.put("tinh", tinh); String huyen = ParamUtil.getString(actionRequest, "huyen"); userRequest.put("huyen", huyen); String xa = ParamUtil.getString(actionRequest, "xa"); userRequest.put("xa", xa); String motaDiaChi = ParamUtil.getString(actionRequest, "motaDiaChi"); userRequest.put("motaDiaChi", motaDiaChi); String dienThoai = ParamUtil.getString(actionRequest, "dienThoai"); userRequest.put("dienThoai", dienThoai); String email = ParamUtil.getString(actionRequest, "email"); userRequest.put("email", email); String fax = ParamUtil.getString(actionRequest, "fax"); userRequest.put("fax", fax); String website = ParamUtil.getString(actionRequest, "website"); userRequest.put("website", website); String noiBo = ParamUtil.getString(actionRequest, "noiBo"); userRequest.put("noiBo", noiBo); String capCoQuanQuanLy = ParamUtil.getString(actionRequest, "capCoQuanQuanLy"); userRequest.put("capCoQuanQuanLy", capCoQuanQuanLy); String merChant = ParamUtil.getString(actionRequest, "merChant"); userRequest.put("merChant", merChant); String accessCode = ParamUtil.getString(actionRequest, "accessCode"); userRequest.put("accessCode", accessCode); String secureSecret = ParamUtil.getString(actionRequest, "secureSecret"); userRequest.put("secureSecret", secureSecret); // Validate parameteter // Set the data back to session actionRequest.getPortletSession().setAttribute("USER_REQUEST_CQQL_OBJECT", userRequest); // Check ma co quan quan ly if (Validator.isNull(ma)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.ma"); } // Check ten co quan quan ly if (Validator.isNull(ten)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.ten"); } //boolean checkDonViHanhChi = true; if (tinh.isEmpty() && huyen.isEmpty() && xa.isEmpty()) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.tinh"); } /* // Check tinh co quan quan ly if (Validator.isNull(tinh)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.tinh"); } // Check huyen co quan quan ly if (Validator.isNull(huyen)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.huyen"); } // Check xa co quan quan ly if (Validator.isNull(xa)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.xa"); } */ // Check mo ta dia chi if (Validator.isNull(motaDiaChi)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.motaDiaChi"); } // Check dien thoai if (Validator.isNull(dienThoai)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.dienThoai"); } if (Validator.isNull(capCoQuanQuanLy)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.capCoQuanQuanLy"); } if (Validator.isNotNull(merChant)) { if (Validator.isNull(accessCode) || Validator.isNull(secureSecret)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.merChant"); } } if (Validator.isNotNull(accessCode)) { if (Validator.isNull(merChant) || Validator.isNull(secureSecret)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.accessCode"); } } if (Validator.isNotNull(secureSecret)) { if (Validator.isNull(merChant) || Validator.isNull(accessCode)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.secureSecret"); } } if (Validator.isNotNull(email) && !Validator.isEmailAddress(email)) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.email"); } // Check ma if (Validator.isNotNull(ma) && mode == INSERT_MODE) { List<CoQuanQuanLy> lst = CoQuanQuanLyLocalServiceUtil.findByMa(ma); if (lst.size() > 0) { CoQuanQuanLy coQuan = lst.get(0); if (coQuan.getDaXoa() != 1) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.dublicateMa"); } } } // Redirect String redirectUrl = ParamUtil.getString(actionRequest, "redirectUrl"); if (!SessionErrors.isEmpty(actionRequest)) { actionResponse.sendRedirect(redirectUrl); return; } // Insert/updatye record here if (mode == INSERT_MODE) { // Temporily remove cmon_cqql_cmon_cqql_fk try { new CoQuanQuanLyBusiness().insert(userRequest, parentId, actionRequest); } catch (Exception e) { e.printStackTrace(); SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.unKnown"); // Redirect to error page actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/err_page.jsp"); return; } } else { try { new CoQuanQuanLyBusiness().edit(userRequest, actionRequest); } catch (Exception e) { e.printStackTrace(); SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.unKnown"); // Redirect to error page actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/err_page.jsp"); return; } } // Remove attribute actionRequest.getPortletSession().removeAttribute("USER_REQUEST_CQQL_OBJECT"); // Redirect user if (mode == INSERT_MODE) { // Add success message SessionMessages.add(actionRequest, "success"); actionResponse.sendRedirect(redirectUrl); } else { // Redirect to search screen Map<String, String> searchParam = (Map<String, String>) actionRequest.getPortletSession() .getAttribute("SEARCH_CO_QUAN_QUAN_LY_PARAMS"); String searchOption = searchParam.get("searchOption"); String strParentId = searchParam.get("parentId"); String keyWord = searchParam.get("keyWord"); // Do the search this.searchCoQuanQuanLy(searchOption, Long.parseLong(strParentId), keyWord, actionRequest, actionResponse); } } /** * This is function view CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void viewCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { long id = ParamUtil.getLong(actionRequest, "id"); // Get the record CoQuanQuanLy coQuanQuanLy = CoQuanQuanLyLocalServiceUtil.getCoQuanQuanLy(id); // Initiate the object Map<String, String> userRequest = new HashMap<String, String>(); userRequest.put("id", coQuanQuanLy.getId() + ""); userRequest.put("ma", coQuanQuanLy.getMa()); userRequest.put("ten", coQuanQuanLy.getTen()); //userRequest.put("xa", coQuanQuanLy.getDonViHanhChinhId() + ""); // co quan hanh chinh CapCoQuanQuanLy capCoQuanQuanLy = CapCoQuanQuanLyLocalServiceUtil .getCapCoQuanQuanLy(coQuanQuanLy.getCapCoQuanQuanlyId()); userRequest.put("capCoQuanQuanLy", capCoQuanQuanLy.getId() + "-" + capCoQuanQuanLy.getTen()); // don vi hanh chinh DonViHanhChinh donViHanhChinh = DonViHanhChinhLocalServiceUtil .getDonViHanhChinh(coQuanQuanLy.getDonViHanhChinhId()); CapDonViHanhChinh capDonViHanhChinh = CapDonViHanhChinhLocalServiceUtil .getCapDonViHanhChinh(donViHanhChinh.getCapDonViHanhChinhId()); if (capDonViHanhChinh.getMa().equals(ThamSoLocalServiceUtil.getValue("MATHANHPHO")) || capDonViHanhChinh.getMa().equals(ThamSoLocalServiceUtil.getValue("MATINH"))) { userRequest.put("tinh", coQuanQuanLy.getDonViHanhChinhId() + ""); userRequest.put("huyen", ""); userRequest.put("xa", ""); } else if (capDonViHanhChinh.getMa().equals(ThamSoLocalServiceUtil.getValue("MAQUAN")) || capDonViHanhChinh.getMa().equals(ThamSoLocalServiceUtil.getValue("MAHUYEN"))) { DonViHanhChinh tinh = DonViHanhChinhLocalServiceUtil.getDonViHanhChinh(donViHanhChinh.getChaId()); userRequest.put("tinh", tinh.getId() + ""); userRequest.put("huyen", coQuanQuanLy.getDonViHanhChinhId() + ""); userRequest.put("xa", ""); } else if (capDonViHanhChinh.getMa().equals(ThamSoLocalServiceUtil.getValue("MAPHUONG")) || capDonViHanhChinh.getMa().equals(ThamSoLocalServiceUtil.getValue("MAXA")) || capDonViHanhChinh.getMa().equals(ThamSoLocalServiceUtil.getValue("MATHITRAN"))) { DonViHanhChinh huyen = DonViHanhChinhLocalServiceUtil.getDonViHanhChinh(donViHanhChinh.getChaId()); DonViHanhChinh tinh = DonViHanhChinhLocalServiceUtil.getDonViHanhChinh(huyen.getChaId()); userRequest.put("tinh", tinh.getId() + ""); userRequest.put("huyen", huyen.getId() + ""); userRequest.put("xa", coQuanQuanLy.getDonViHanhChinhId() + ""); } // // Get xa // DonViHanhChinh xa = DonViHanhChinhLocalServiceUtil.getDonViHanhChinh(coQuanQuanLy.getDonViHanhChinhId()); // // Get huyen id // DonViHanhChinh huyen = DonViHanhChinhLocalServiceUtil.getDonViHanhChinh(xa.getChaId()); // userRequest.put("huyen", huyen.getId() + ""); // // Get tinh // //DonViHanhChinh tinh = DonViHanhChinhLocalServiceUtil.getDonViHanhChinh(huyen.getChaId()); // //userRequest.put("tinh", tinh.getId() + ""); // userRequest.put("tinh", 1 + ""); userRequest.put("motaDiaChi", coQuanQuanLy.getDiaChi()); userRequest.put("dienThoai", coQuanQuanLy.getDienThoai()); userRequest.put("email", coQuanQuanLy.getEmail()); userRequest.put("fax", coQuanQuanLy.getFax()); userRequest.put("website", coQuanQuanLy.getWebsite()); userRequest.put("noiBo", coQuanQuanLy.getNoiBo() + ""); userRequest.put("merChant", coQuanQuanLy.getMerchant()); userRequest.put("accessCode", coQuanQuanLy.getAccessCode()); userRequest.put("secureSecret", coQuanQuanLy.getSecureSecret()); // Set the data to session actionRequest.getPortletSession().setAttribute("USER_REQUEST_CQQL_OBJECT", userRequest); // Redirect to add/edit screen actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/co_quan_quan_ly_add_edit.jsp"); actionResponse.setRenderParameter("parentId", coQuanQuanLy.getChaId() + ""); actionResponse.setRenderParameter("mode", EDIT_MODE + ""); } /** * This is function search popup CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void searchPopupCapCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { // Get the search option String searchOption = ParamUtil.getString(actionRequest, "searchOption"); // Get the parent id if submitted String strParentId = ParamUtil.getString(actionRequest, "parentId"); long parentId = 0; if (Validator.isNotNull(strParentId)) { parentId = Long.parseLong(strParentId); } // Get the search keyword if submitted String keyWord = ParamUtil.getString(actionRequest, "keyWord"); // Build the query DynamicQuery query = DynamicQueryFactoryUtil.forClass(CapCoQuanQuanLy.class); // Always search un-deleted record query = query.add(PropertyFactoryUtil.forName("daXoa").eq(0)); // Add the criteria incase keyword search is not null if (Validator.isNotNull(searchOption) && Validator.isNotNull(keyWord)) { Criterion criteria = null; // Define search criteria if (searchOption.equals(SEARCH_CODE_OPTION)) { criteria = RestrictionsFactoryUtil.ilike("ma", keyWord + "%"); } else { criteria = RestrictionsFactoryUtil.ilike("ten", "%" + keyWord + "%"); } // Define search criteria query = query.add(criteria); } // Query by parent id if (parentId > 0) { query = query.add(PropertyFactoryUtil.forName("chaId").eq(parentId)); } else { // Search all highest level query = query.add(PropertyFactoryUtil.forName("chaId").isNull()); } List<CapCoQuanQuanLy> results = null; try { results = CapCoQuanQuanLyLocalServiceUtil.dynamicQuery(query); } catch (SystemException e) { e.printStackTrace(); } // Set the result back to session actionRequest.getPortletSession().setAttribute("SEARCH_CO_QUAN_QUAN_LY_POPUP_RESULT", results); // Redirect User actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/cap_co_quan_quan_ly_list_popup.jsp"); actionResponse.setRenderParameter("parentId", String.valueOf(parentId)); if (Validator.isNull(searchOption)) { searchOption = SEARCH_NAME_OPTION; } actionResponse.setRenderParameter("searchOption", searchOption); actionResponse.setRenderParameter("keyWord", keyWord); } /** * This is function delete CoQuanQuanLy * Version: 1.0 * * History: * DATE AUTHOR DESCRIPTION * ------------------------------------------------- * 3-March-2013 Nam Dinh Create new * @param actionRequest * @param actionResponse * @throws Exception */ public void deleteCoQuanQuanLy(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { long id = ParamUtil.getLong(actionRequest, "id"); // Check if co quan quan ly has child List<CoQuanQuanLy> lst = CoQuanQuanLyLocalServiceUtil.findByParentId(id, 0); if (lst.size() > 0) { SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.childExists"); // Redirect to error page actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/err_page.jsp"); return; } try { new CoQuanQuanLyBusiness().delete(id); } catch (Exception e) { e.printStackTrace(); SessionErrors.add(actionRequest, "vn.dtt.cmon.admin.form.add_edit_coquanquanly.err.unKnown"); // Redirect to error page actionResponse.setRenderParameter("jspPage", "/html/portlet/admin/err_page.jsp"); return; } // Redirect to search page Map<String, String> searchParam = (Map<String, String>) actionRequest.getPortletSession() .getAttribute("SEARCH_CO_QUAN_QUAN_LY_PARAMS"); String searchOption = searchParam.get("searchOption"); String strParentId = searchParam.get("parentId"); String keyWord = searchParam.get("keyWord"); // Do the search this.searchCoQuanQuanLy(searchOption, Long.parseLong(strParentId), keyWord, actionRequest, actionResponse); } }