Commit 29bb1b9a authored by psawant's avatar psawant

PLACE_API format implementation

-PLACE_API on autocomplete it populate Address,Name,City,Country,State.

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@192882 ce508802-f39f-4f6c-b175-0d175dae99d5
parent bfaf3d78
......@@ -15,9 +15,12 @@ import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import javax.ejb.Stateless;
import org.json.simple.parser.JSONParser;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
......@@ -1999,10 +2002,88 @@ implements CustomerLocal, CustomerRemote
{
custName = checkNull(genericUtility.getColumnValue("cust_name", dom));
chqName = checkNull(genericUtility.getColumnValue("chq_name", dom));
if (chqName == null || chqName.trim().length() <= 0)
//changed by Pooja.S on[2-Nov-2018] to set the address and fields by using Json START
/*if (chqName == null || chqName.trim().length() <= 0)
{
valueXmlString.append("<chq_name><![CDATA[" + custName + "]]></chq_name>");
}*/
System.out.println("custName of Customer [" + custName + "]");
if ("".equals(custName) || custName.trim().length() == 0)
{
valueXmlString.append("<addr1><![CDATA[]]></addr1>");
valueXmlString.append("<addr2><![CDATA[]]></addr2>");
valueXmlString.append("<addr3><![CDATA[]]></addr3>");
valueXmlString.append("<city><![CDATA[]]></city>");
valueXmlString.append("<state_code><![CDATA[]]></state_code>");
valueXmlString.append("<count_code><![CDATA[]]></count_code>");
valueXmlString.append("<pin><![CDATA[]]></pin>");
valueXmlString.append("<tele1><![CDATA[]]></tele1>");
}
else
{
int i, j;
String key = "", value = "", val = "", val1 = "", name1 = "";
String keyaddr1 = "", valueaddr1 = "", shortName="",city="",state="",country="",pinCode="";
JSONParser parser = new JSONParser();
try
{
org.json.simple.JSONObject json = (org.json.simple.JSONObject) parser.parse(custName);
System.out.println("JsonObj1 " + json);
Iterator<String> JsonObjKey = json.keySet().iterator();
while (JsonObjKey.hasNext())
{
key = JsonObjKey.next();
System.out.println("Key [" +key +"]");
value = json.get(key).toString();
System.out.println("Value [" + value +"]");
if (key.equalsIgnoreCase("address_components"))
{
org.json.simple.JSONArray adddrcomp = (org.json.simple.JSONArray) parser.parse(value);
HashMap<String, String> fields=setFields(adddrcomp);
String cityAdr = fields.get("city");
valueXmlString.append("<city><![CDATA[" + cityAdr + "]]></city>");
String stateCodeAdr = fields.get("state_code");
valueXmlString.append("<state_code><![CDATA[" + stateCodeAdr + "]]></state_code>");
String countCodeAdr = fields.get("count_code");
valueXmlString.append("<count_code><![CDATA[" + countCodeAdr + "]]></count_code>");
String pinAdr = fields.get("pin");
valueXmlString.append("<pin><![CDATA[" + pinAdr + "]]></pin>");
}
else if (key.equalsIgnoreCase("adr_address"))
{
System.out.println("value in adr_address"+value);
HashMap<String, String> Address = addressSplit( value );
String Adr1=Address.get("First");
valueXmlString.append("<addr1><![CDATA[" + Adr1 + "]]></addr1>");
String Adr2=Address.get("Second");
valueXmlString.append("<addr2><![CDATA["+ Adr2 +"]]></addr2>");
String Adr3=Address.get("Third");
valueXmlString.append("<addr3><![CDATA["+ Adr3 +"]]></addr3>");
}
else if (key.equalsIgnoreCase("formatted_phone_number"))
{
System.out.println("Value formatted_phone_number" + (value));
valueXmlString.append("<tele1><![CDATA[" + value + "]]></tele1>");
}
else if (key.equalsIgnoreCase("name"))
{
System.out.println("Value name" + (value));
valueXmlString.append("<cust_name><![CDATA[" + value + "]]></cust_name>");
if(chqName == null || chqName.trim().length() <= 0)
{
valueXmlString.append("<chq_name><![CDATA[" + value + "]]></chq_name>");
}
}
}
}
catch (Exception e)
{
System.out.println("exeception in the cust_name "+e.getMessage());
}
}
//changed by Pooja.S on[2-Nov-2018] to set the address and fields by using Json End
}
else if (currentColumn.trim().equalsIgnoreCase("terr_code"))
{
......@@ -2671,6 +2752,196 @@ implements CustomerLocal, CustomerRemote
}
//Added by AMEY on 24/09/2018 [start] to get data from supplier default master from cust_type
//changed by Pooja.S on[2-Nov-2018] to set the address anf fields by using Json Start
private HashMap<String, String> addressSplit(String value )
{
HashMap<String, String> map=new HashMap<>();
String firstString = "",finalString="", secondString = "", secString = "", thirdString = "", thiString = "",addr="";
String Address1="",Address2="",Address3="";
String FinalS= value.substring(0,value.indexOf("<span class=\"locality\">"));
String [] arr2=FinalS.split("\\<span.*?\\>");
for(int k=0;k<arr2.length;k++)
{
String[] concatString=arr2[k].split("</span>");
finalString=finalString.concat(concatString[0]);
}
if (finalString.length() > 40)
{
addr = finalString.substring(0, 40);
firstString = addr.substring(0, addr.lastIndexOf(","));
Address1=firstString;
String address = finalString.substring(finalString.indexOf(firstString) + firstString.length());
if (finalString.length() > firstString.length() && address.length() > 40)
{
secondString = finalString.substring( firstString.length() +1 ,( firstString.length() +1 )+ 40);
if(secondString.contains(","))
{
secString = secondString.substring(0, secondString.lastIndexOf(","));
Address2=secString;
}
else
{
secString = secondString.substring(0, secondString.lastIndexOf(" "));
Address2=secString;
}
String address1 = finalString.substring(finalString.indexOf(secString) + secString.length());
if (finalString.length() > ((firstString.length()) + (secString.length()))&& address1.length() > 40)
{
thirdString = finalString.substring(((finalString.indexOf(secString)) + secString.length()) + 1,
(((finalString.indexOf(secString)) + secString.length()) + 1) + 40);
if(thirdString.contains(","))
{
thiString = thirdString.substring(0, thirdString.lastIndexOf(","));
Address3=thiString;
}
else
{
thiString = thirdString.substring(0, thirdString.lastIndexOf(" "));
Address3=thiString;
}
}
else
{
Address3=address1;
}
}
else
{
Address2=address;
Address3="";
}
}
else
{
Address1=finalString;
Address2="";
Address3="";
}
map.put("First", Address1);
map.put("Second", Address2);
map.put("Third", Address3);
return map;
}
private HashMap< String, String > setFields( org.json.simple.JSONArray adddrcomp)
{
HashMap<String, String> map=new HashMap<>();
String keyaddr = "", valueaddr = "", longName = "";
String sql="";
ResultSet rs=null;
PreparedStatement pstm=null;
Connection conn=null;
try
{
conn = getConnection();
conn.setAutoCommit(false);
System.out.println("valueaddr " + (adddrcomp.size()));
org.json.simple.JSONObject addrJson = null;
for (int j = 0; j < adddrcomp.size(); j++)
{
System.out.println("valueaddr ["+ j +"]" + (adddrcomp.get(j)));
addrJson = (org.json.simple.JSONObject) adddrcomp.get(j);
System.out.println("json object [ "+ addrJson +"]" );
JSONParser parser = new JSONParser();
Iterator<String> addrobjtyp = addrJson.keySet().iterator();
org.json.simple.JSONArray typeArr = null;
while (addrobjtyp.hasNext())
{
keyaddr = addrobjtyp.next();
valueaddr = addrJson.get(keyaddr).toString();
System.out.println( "key : [" + keyaddr + "], value : [" + valueaddr +"]" );
if( keyaddr.equalsIgnoreCase("long_name") )
{
longName = valueaddr;
System.out.println("value of long term "+longName);
}
else if (keyaddr.equalsIgnoreCase("types"))
{
typeArr=(org.json.simple.JSONArray) parser.parse(valueaddr);
}
}
if ( longName == null || longName.trim().length() == 0)
{
continue;
}
String type = typeArr.get(0).toString();
System.out.println( "longName : ["+ longName +"], type : ["+ type +"]" );
if (type.equalsIgnoreCase("locality"))
{
map.put("city", longName);
}
else if ( type.equalsIgnoreCase("administrative_area_level_1") )
{
String region="";
sql = "select state_code from state where DESCR = ?";
pstm = conn.prepareStatement(sql);
pstm.setString(1, longName);
rs = pstm.executeQuery();
if (rs.next())
{
region=rs.getString("state_code");
}
rs.close();
rs = null;
pstm.close();
pstm = null;
if ( region.length() > 0 )
{
map.put( "state_code" , region );
}
}
else if (type.equalsIgnoreCase("country"))
{
System.out.println("in country " + longName);
String countryC="";
sql = "select count_code from Country where DESCR =?";
pstm = conn.prepareStatement(sql);
pstm.setString(1, longName);
rs = pstm.executeQuery();
if (rs.next()) {
countryC=rs.getString("count_code");
}
rs.close();
rs = null;
pstm.close();
pstm = null;
if(countryC.length() > 0)
{
map.put("count_code", countryC);
}
}
else if (type.equalsIgnoreCase("postal_code"))
{
map.put("pin", longName );
System.out.println("in postal_code " + longName);
}
}
}
catch (Exception e)
{
System.out.println("Exception of the SetFields Method"+e.getMessage());
}
return map;
}
//changed by Pooja.S on[2-Nov-2018] to set the address and fields by using Json End
private String errorType(Connection conn, String errorCode) throws ITMException
{
String msgType = "";
......
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