/* * Aipo is a groupware program developed by TOWN, Inc. * Copyright (C) 2004-2015 TOWN, Inc. * http://www.aipo.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.aimluck.eip.account; import java.util.ArrayList; import java.util.List; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import org.apache.turbine.util.RunData; import org.apache.velocity.context.Context; import com.aimluck.commons.field.ALNumberField; import com.aimluck.commons.field.ALStringField; import com.aimluck.eip.cayenne.om.account.EipMCompany; import com.aimluck.eip.cayenne.om.account.EipMPost; import com.aimluck.eip.cayenne.om.security.TurbineUser; import com.aimluck.eip.common.ALAbstractFormData; import com.aimluck.eip.common.ALEipUser; import com.aimluck.eip.orm.Database; import com.aimluck.eip.orm.query.SelectQuery; import com.aimluck.eip.util.ALEipUtils; /** * アカウントデータと 部署を表示するためのフォームデータです。 * */ public class AccountPersonPostFormData extends ALAbstractFormData { /** logger */ private static final JetspeedLogger logger = JetspeedLogFactoryService .getLogger(AccountPersonPostFormData.class.getName()); /** ユーザーID */ private ALNumberField user_id; /** 有効/無効 */ private ALStringField disabled; /** ユーザー名 */ private ALStringField user_name; /** 名前 */ private ALStringField name; /** フリガナ(名前) */ private ALStringField name_kana; /** メールアドレス */ private ALStringField email; /** 電話番号(外線) */ private ALStringField out_telephone; /** 電話番号(内線) */ private ALStringField in_telephone; /** 電話番号(携帯) */ private ALStringField cellular_phone; /** 携帯メールアドレス */ private ALStringField cellular_mail; /** 部署名 */ private List<String> post_name_list; /** 役職名 */ private ALStringField position_name; private boolean has_photo; private boolean is_admin; /** 会社名 */ private ALStringField company_name; /** 郵便番号 */ private ALStringField company_zipcode; /** 住所 */ private ALStringField company_address; /** 電話番号 */ private ALStringField company_telephone; /** FAX番号 */ private ALStringField company_fax_number; /** 部署名 */ private ALStringField post_name; /** 郵便番号 */ private ALStringField post_zipcode; /** 住所 */ private ALStringField post_address; /** 電話番号(外線) */ private ALStringField post_out_telephone; /** 電話番号(内線) */ private ALStringField post_in_telephone; /** FAX番号 */ private ALStringField post_fax_number; /** 所属メンバー */ private List<ALEipUser> memberList; /** 所属する部署IDリスト */ private List<Integer> post_id_list; /** * */ @Override protected void setValidator() { } /** * */ @Override protected boolean validate(List<String> msgList) { return false; } /** * * @param rundata * @param context * @param msgList * @return */ @Override protected boolean loadFormData(RunData rundata, Context context, List<String> msgList) { try { int uid = ALEipUtils.getUserId(rundata); // 会社のオブジェクトモデルを取得 TurbineUser tuser = Database.get(TurbineUser.class, Integer.valueOf(uid)); EipMCompany companyRecord = Database.get(EipMCompany.class, tuser.getCompanyId()); if (companyRecord == null) { return false; } // 会社名 company_name.setValue(companyRecord.getCompanyName()); // 郵便番号 company_zipcode.setValue(companyRecord.getZipcode()); // 住所 company_address.setValue(companyRecord.getAddress()); // 電話番号 company_telephone.setValue(companyRecord.getTelephone()); // FAX番号 company_fax_number.setValue(companyRecord.getFaxNumber()); // ユーザーが所属する部署リスト int id = ALEipUtils.getUserId(rundata); SelectQuery<EipMPost> query = Database.query(EipMPost.class).orderAscending(EipMPost.SORT_PROPERTY); List<EipMPost> list = query.fetchList(); List<Integer> idlist = null; EipMPost mpost = null; for (int n = 0; n < list.size(); n++) { mpost = list.get(n); idlist = ALEipUtils.getUserIds(mpost.getGroupName()); if (idlist.contains(id)) { post_name_list.add(mpost.getPostName()); post_id_list.add(mpost.getPostId()); } } } catch (Exception ex) { logger.error("AccountPersonPostFormData.loadFormData", ex); return false; } return true; } /** * * @param rundata * @param context * @param msgList * @return */ @Override protected boolean insertFormData(RunData rundata, Context context, List<String> msgList) { return false; } /** * * @param rundata * @param context * @param msgList * @return */ @Override protected boolean updateFormData(RunData rundata, Context context, List<String> msgList) { return false; } /** * * @param rundata * @param context * @param msgList * @return */ @Override protected boolean deleteFormData(RunData rundata, Context context, List<String> msgList) { return false; } /** * */ @Override public void initField() { // ユーザーID user_id = new ALNumberField(); // ユーザー名 user_name = new ALStringField(); user_name.setFieldName("ユーザー名"); // 名前 name = new ALStringField(); name.setFieldName("名前"); // カナ name_kana = new ALStringField(); name_kana.setFieldName("カナ"); // メールアドレス email = new ALStringField(); email.setFieldName("メールアドレス"); // 外線 out_telephone = new ALStringField(); out_telephone.setFieldName("電話番号(外線)"); // 内線 in_telephone = new ALStringField(); in_telephone.setFieldName("電話番号(内線)"); // 携帯 cellular_phone = new ALStringField(); cellular_phone.setFieldName("電話番号(携帯)"); // 携帯メール cellular_mail = new ALStringField(); cellular_mail.setFieldName("携帯メールアドレス"); // 部署のリスト post_name_list = new ArrayList<String>(); // 役職のリスト position_name = new ALStringField(); disabled = new ALStringField(); // 顔写真 has_photo = false; // 管理者権限 is_admin = false; // 会社名 company_name = new ALStringField(); company_name.setFieldName("会社名"); company_name.setTrim(true); // 郵便番号 company_zipcode = new ALStringField(); company_zipcode.setFieldName("郵便番号"); company_zipcode.setTrim(true); // 住所 company_address = new ALStringField(); company_address.setFieldName("住所"); company_address.setTrim(true); // 電話番号 company_telephone = new ALStringField(); company_telephone.setFieldName("電話番号"); company_telephone.setTrim(true); // FAX番号 company_fax_number = new ALStringField(); company_fax_number.setFieldName("FAX番号"); company_fax_number.setTrim(true); // 部署名 post_name = new ALStringField(); post_name.setFieldName("部署名"); post_name.setTrim(true); // 郵便番号 post_zipcode = new ALStringField(); post_zipcode.setFieldName("郵便番号"); post_zipcode.setTrim(true); // 住所 post_address = new ALStringField(); post_address.setFieldName("住所"); post_address.setTrim(true); // 電話番号(外線) post_out_telephone = new ALStringField(); post_out_telephone.setFieldName("電話番号(外線)"); post_out_telephone.setTrim(true); // 電話番号(内線) post_in_telephone = new ALStringField(); post_in_telephone.setFieldName("電話番号(内線)"); post_in_telephone.setTrim(true); // FAX番号 post_fax_number = new ALStringField(); post_fax_number.setFieldName("FAX番号"); post_fax_number.setTrim(true); memberList = new ArrayList<ALEipUser>(); post_name_list = new ArrayList<String>(); post_id_list = new ArrayList<Integer>(); } /** * @return */ public ALStringField getName() { return name; } /** * @return */ public ALStringField getUserName() { return user_name; } /** * @return */ public ALNumberField getUserId() { return user_id; } /** * @return */ public ALStringField getDisabled() { return disabled; } /** * @param string */ public void setName(String string) { name.setValue(string); } /** * @param string */ public void setUserName(String string) { user_name.setValue(string); } /** * @param i */ public void setUserId(int i) { user_id.setValue(i); } /** * @param string */ public void setDisabled(String string) { disabled.setValue(string); } /** * @return */ public ALStringField getPositionName() { return position_name; } /** * @return */ public List<String> getPostNameList() { return post_name_list; } /** * @param string */ public void setPositionName(String string) { position_name.setValue(string); } /** * @param string */ public void setPostNameList(List<String> list) { post_name_list.addAll(list); } /** * @return */ public ALStringField getCellularMail() { return cellular_mail; } /** * @return */ public ALStringField getCellularPhone() { return cellular_phone; } /** * @return */ public ALStringField getEmail() { return email; } /** * @return */ public ALStringField getInTelephone() { return in_telephone; } /** * @return */ public ALStringField getOutTelephone() { return out_telephone; } /** * @param string */ public void setCellularMail(String string) { cellular_mail.setValue(string); } /** * @param string */ public void setCellularPhone(String string) { cellular_phone.setValue(string); } /** * @param string */ public void setEmail(String string) { email.setValue(string); } /** * @param string */ public void setInTelephone(String string) { in_telephone.setValue(string); } /** * @param field */ public void setOutTelephone(String string) { out_telephone.setValue(string); } /** * @return */ public ALStringField getNameKana() { return name_kana; } /** * @param string */ public void setNameKana(String string) { name_kana.setValue(string); } public boolean hasPhoto() { return has_photo; } public void setHasPhoto(boolean bool) { has_photo = bool; } /** * @return is_admin */ public boolean isAdmin() { return is_admin; } /** * @param is_admin */ public void setIsAdmin(boolean is_admin) { this.is_admin = is_admin; } /** * 住所を取得します。 <BR> * * @return */ public ALStringField getCompanyAddress() { return company_address; } /** * 会社名を取得します。 <BR> * * @return */ public ALStringField getCompanyName() { return company_name; } /** * FAX番号を取得します。 <BR> * * @return */ public ALStringField getCompanyFaxNumber() { return company_fax_number; } /** * 電話番号を取得します。 <BR> * * @return */ public ALStringField getCompanyTelephone() { return company_telephone; } /** * 郵便番号を取得します。 <BR> * * @return */ public ALStringField getCompanyZipcode() { return company_zipcode; } /** * 部署名を取得します。 <BR> * * @return */ public ALStringField getPostName() { return post_name; } /** * 住所を取得します。 <BR> * * @return */ public ALStringField getPostAddress() { return post_address; } /** * FAX番号を取得します。 <BR> * * @return */ public ALStringField getPostFaxNumber() { return post_fax_number; } /** * 電話番号(外線)を取得します。 <BR> * * @return */ public ALStringField getPostOutTelephone() { return post_out_telephone; } /** * 電話番号(内線)を取得します。 <BR> * * @return */ public ALStringField getPostInTelephone() { return post_in_telephone; } /** * 郵便番号を取得します。 <BR> * * @return */ public ALStringField getPostZipcode() { return post_zipcode; } /** * 所属メンバーを取得します。 <BR> * * @return */ public List<ALEipUser> getMemberList() { return memberList; } /** * 部署IDを取得します。 <BR> * * @return */ public Object getPostID(int i) { return post_id_list.get(i); } }