FR [ 1892819 ] Field Phone Format
This commit is contained in:
parent
3603a3969c
commit
44980e848b
|
@ -0,0 +1,85 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. 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 General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
|
*****************************************************************************/
|
||||||
|
package org.adempiere.model;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.compiere.model.CalloutEngine;
|
||||||
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.GridTab;
|
||||||
|
import org.compiere.model.MBPartnerLocation;
|
||||||
|
import org.compiere.model.MColumn;
|
||||||
|
import org.compiere.util.DB;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BPartnerLocation Callouts.
|
||||||
|
*
|
||||||
|
* @author Jesus Garcia / Carlos Ruiz - globalqss
|
||||||
|
*/
|
||||||
|
public class CalloutBPartnerLocation extends CalloutEngine
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Format Phone No based on Country.
|
||||||
|
* Called from C_BPartnerLocation.C_Location_ID
|
||||||
|
*
|
||||||
|
* @param ctx Context
|
||||||
|
* @param WindowNo current Window No
|
||||||
|
* @param mTab Model Tab
|
||||||
|
* @param mField Model Field
|
||||||
|
* @param value The new value
|
||||||
|
* @param oldvalue The old value
|
||||||
|
* @return Error message or ""
|
||||||
|
*/
|
||||||
|
public String formatPhone (Properties ctx, int WindowNo,
|
||||||
|
GridTab mTab, GridField mField, Object value, Object oldValue)
|
||||||
|
{
|
||||||
|
log.info("");
|
||||||
|
// Called from C_Location_ID field
|
||||||
|
Integer location_int = (Integer) mField.getValue();
|
||||||
|
|
||||||
|
String phone_frm = null;
|
||||||
|
if (location_int != null)
|
||||||
|
// take the phone format from country
|
||||||
|
phone_frm = DB.getSQLValueString(null, "SELECT ExpressionPhone FROM C_Country c, C_Location l WHERE c.C_Country_ID = l.C_Country_ID AND l.C_location_ID = ?", location_int);
|
||||||
|
|
||||||
|
GridField fPhone = mTab.getField(MBPartnerLocation.COLUMNNAME_Phone);
|
||||||
|
MColumn colPhone = null;
|
||||||
|
if (fPhone != null)
|
||||||
|
colPhone = MColumn.get(Env.getCtx(), fPhone.getAD_Column_ID());
|
||||||
|
GridField fPhone2 = mTab.getField(MBPartnerLocation.COLUMNNAME_Phone2);
|
||||||
|
MColumn colPhone2 = null;
|
||||||
|
if (fPhone2 != null)
|
||||||
|
colPhone2 = MColumn.get(Env.getCtx(), fPhone2.getAD_Column_ID());
|
||||||
|
GridField fFax = mTab.getField(MBPartnerLocation.COLUMNNAME_Fax);
|
||||||
|
MColumn colFax = null;
|
||||||
|
if (fFax != null)
|
||||||
|
colFax = MColumn.get(Env.getCtx(), fFax.getAD_Column_ID());
|
||||||
|
|
||||||
|
// Apply the country format if the column doesn't have format
|
||||||
|
if (colPhone != null && (colPhone.getVFormat() == null || colPhone.getVFormat().length() == 0))
|
||||||
|
fPhone.setVFormat(phone_frm);
|
||||||
|
if (colPhone2 != null && (colPhone2.getVFormat() == null || colPhone2.getVFormat().length() == 0))
|
||||||
|
fPhone2.setVFormat(phone_frm);
|
||||||
|
if (colFax != null && (colFax.getVFormat() == null || colFax.getVFormat().length() == 0))
|
||||||
|
fFax.setVFormat(phone_frm);
|
||||||
|
|
||||||
|
return "";
|
||||||
|
} // formatPhone
|
||||||
|
|
||||||
|
} // CalloutBPartnerLocation
|
|
@ -1740,8 +1740,37 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
DB.close(rs, pstmt);
|
DB.close(rs, pstmt);
|
||||||
rs = null; pstmt = null;
|
rs = null; pstmt = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // loadOrderInfo
|
} // loadOrderInfo
|
||||||
|
|
||||||
|
// Set the Phone Format on BPartnerLocation based on Country
|
||||||
|
if (m_vo.TableName.equals("C_BPartner_Location"))
|
||||||
|
{
|
||||||
|
Integer location_int = (Integer) getValue(X_C_BPartner_Location.COLUMNNAME_C_Location_ID);
|
||||||
|
String phone_frm = null;
|
||||||
|
if (location_int != null)
|
||||||
|
// take the phone format from country
|
||||||
|
phone_frm = DB.getSQLValueString(null, "SELECT ExpressionPhone FROM C_Country c, C_Location l WHERE c.C_Country_ID = l.C_Country_ID AND l.C_location_ID = ?", location_int);
|
||||||
|
GridField fPhone = getField(X_C_BPartner_Location.COLUMNNAME_Phone);
|
||||||
|
MColumn colPhone = null;
|
||||||
|
if (fPhone != null)
|
||||||
|
colPhone = MColumn.get(Env.getCtx(), fPhone.getAD_Column_ID());
|
||||||
|
GridField fPhone2 = getField(X_C_BPartner_Location.COLUMNNAME_Phone2);
|
||||||
|
MColumn colPhone2 = null;
|
||||||
|
if (fPhone2 != null)
|
||||||
|
colPhone2 = MColumn.get(Env.getCtx(), fPhone2.getAD_Column_ID());
|
||||||
|
GridField fFax = getField(X_C_BPartner_Location.COLUMNNAME_Fax);
|
||||||
|
MColumn colFax = null;
|
||||||
|
if (fFax != null)
|
||||||
|
colFax = MColumn.get(Env.getCtx(), fFax.getAD_Column_ID());
|
||||||
|
// Apply the country format if the column doesn't have format
|
||||||
|
if (colPhone != null && (colPhone.getVFormat() == null || colPhone.getVFormat().length() == 0))
|
||||||
|
fPhone.setVFormat(phone_frm);
|
||||||
|
if (colPhone2 != null && (colPhone2.getVFormat() == null || colPhone2.getVFormat().length() == 0))
|
||||||
|
fPhone2.setVFormat(phone_frm);
|
||||||
|
if (colFax != null && (colFax.getVFormat() == null || colFax.getVFormat().length() == 0))
|
||||||
|
fFax.setVFormat(phone_frm);
|
||||||
|
}
|
||||||
|
|
||||||
} // loadDependentInfo
|
} // loadDependentInfo
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
-- Review optional scripts at the end
|
||||||
|
|
||||||
|
-- Feb 13, 2008 10:31:57 AM COT
|
||||||
|
-- 1892819 - Field Phone Format
|
||||||
|
UPDATE AD_Column SET Callout='org.adempiere.model.CalloutBPartnerLocation.formatPhone',Updated=TO_DATE('2008-02-13 10:31:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=2959
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Please uncomment following lines if you prefer to preserve old functionality - this is: not formatting phones
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
UPDATE C_Country SET ExpressionPhone=NULL,Updated=TO_DATE('2008-02-13 10:32:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE C_Country_ID=100
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE C_Country SET ExpressionPhone=NULL,Updated=TO_DATE('2008-02-13 10:33:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE C_Country_ID=122
|
||||||
|
;
|
||||||
|
|
||||||
|
*/
|
|
@ -0,0 +1,18 @@
|
||||||
|
-- Review optional scripts at the end
|
||||||
|
|
||||||
|
-- Feb 13, 2008 10:31:57 AM COT
|
||||||
|
-- 1892819 - Field Phone Format
|
||||||
|
UPDATE AD_Column SET Callout='org.adempiere.model.CalloutBPartnerLocation.formatPhone',Updated=TO_TIMESTAMP('2008-02-13 10:31:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=2959
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Please uncomment following lines if you prefer to preserve old functionality - this is: not formatting phones
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
UPDATE C_Country SET ExpressionPhone=NULL,Updated=TO_TIMESTAMP('2008-02-13 10:32:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE C_Country_ID=100
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE C_Country SET ExpressionPhone=NULL,Updated=TO_TIMESTAMP('2008-02-13 10:33:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE C_Country_ID=122
|
||||||
|
;
|
||||||
|
|
||||||
|
*/
|
Loading…
Reference in New Issue