Commit 3649d6ce authored by vbhosale's avatar vbhosale

added new code to calculate net sales avg

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@193253 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 067f2bdd
......@@ -2,14 +2,18 @@ package ibase.dashboard.scm.ejb;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.simple.JSONArray;
//import org.json.simple.JSONArray;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
......@@ -34,10 +38,10 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
@Override
public String getSalesSummary( String dataSourceName ) throws Exception
{
System.out.println("INSIDE SalesTrends ::::::::::::::: getSalesSummary ["+dataSourceName+"]");
BaseLogger.log("2",null,null,"INSIDE SalesTrends ::::::::::::::: getSalesSummary ["+dataSourceName+"]");
JSONObject dashboardConfig = (JSONObject) xmlToJson(dataSourceName);
System.out.println("Inside get sales Summary "+dashboardConfig);
BaseLogger.log("3",null,null,"Inside get sales Summary "+dashboardConfig);
JSONObject growthValueArray=new JSONObject();
JSONObject group0=dashboardConfig.optJSONObject("group0");
JSONObject Header0=group0.optJSONObject("Header0");
JSONObject Detail1=Header0.optJSONObject("Detail1");
......@@ -47,20 +51,27 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
itemser_to=Detail1.optString("ITEM_SER__TO");
String period="";
period=Detail1.optString("PERIOD");
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYYMM");
if(period =="" || period.equalsIgnoreCase("{}")) {
period= simpleDateFormat.format(date);
}
BaseLogger.log("3",null,null,"Period:::::::::::::: "+period+" "+date);
String period1=getPeriod(period);
Double grossValue=0.0;
System.out.println("period >>>>"+period);
Double growthValue=0.0;
BaseLogger.log("3",null,null,"period >>>>"+period);
if(period !="" && !period.equalsIgnoreCase("{}")) {
System.out.println("period >>>>Inside");
BaseLogger.log("3",null,null,"period >>>>Inside");
String year =period.substring(0, 4);
String month =period.substring(4,6 );
JSONObject netSummary=getNetAvg(year, month);
System.out.println("net netSummary "+netSummary);
JSONArray netSummary=getNetAvg(year);
BaseLogger.log("3",null,null,"net netSummary "+netSummary);
Integer year1=Integer.parseInt(year)-1;
year=year1.toString();
JSONObject netSummaryPrv=getNetAvg(year, month);
System.out.println("net netSummaryPrv "+netSummaryPrv);
grossValue=calculateGross(netSummary, netSummaryPrv);
JSONArray netSummaryPrv=getNetAvg(year);
BaseLogger.log("3",null,null,"net netSummaryPrv "+netSummaryPrv);
growthValueArray=calculateGross(netSummary, netSummaryPrv);
}
JSONArray salesSummaryArr = null;
......@@ -74,14 +85,16 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
{
salesSummaryArr = new JSONArray();
System.out.println("BEFORE CONN ESTBD");
BaseLogger.log("3",null,null,"BEFORE CONN ESTBD");
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB( getUserInfo().getTransDB() );
System.out.println("AFTER CONN ESTBD");
BaseLogger.log("3",null,null,"AFTER CONN ESTBD");
JSONObject rowData = null;
sqlCurrYear = "select DSS.DOC_DATE, " +
sqlCurrYear = "select DSS.DOC_DATE,"+
" TO_CHAR(DSS.doc_date,'MON') DSS_MONTH, " +
" TO_CHAR(DSS.doc_date,'YYYY') DSS_YEAR, " +
" DSS.CUST_CODE, " +
" (SELECT CUST_NAME from CUSTOMER where CUST_CODE = DSS.CUST_CODE) as CUST_NAME, " +
" DSS.SITE_CODE, " +
......@@ -104,7 +117,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
" AND ISER.item_ser <= '"+itemser_to+"' "
+ period1;
System.out.println("SQL QUERY EXECUTED ::::::::::::::::: " + sqlCurrYear );
BaseLogger.log("3",null,null,"SQL QUERY EXECUTED ::::::::::::::::: " + sqlCurrYear );
pStmt = conn.prepareStatement( sqlCurrYear );
rs = pStmt.executeQuery();
......@@ -114,32 +127,53 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
while( rs.next() )
{
String docDate=rs.getString("DOC_DATE");
String docMonth=rs.getString("DSS_MONTH");
String docYear=rs.getString("DSS_YEAR");
docDate=genericUtility.getValidDateString(docDate, dbDate, applDate);
System.out.println("doc date "+docDate);
BaseLogger.log("3",null,null,"doc date "+docDate);
rowData = new JSONObject();
rowData.put("DOC_DATE", docDate);
rowData.put("MONTH", rs.getString("DSS_MONTH"));
rowData.put("ITEM_CODE", rs.getString("ITEM_CODE"));
rowData.put("SALES_QTY", rs.getInt("SALES_QTY"));
rowData.put("CUST_CODE", rs.getString("CUST_CODE"));
rowData.put("CUST_NAME", rs.getString("CUST_NAME"));
rowData.put("SITE_CODE", rs.getString("SITE_CODE"));
rowData.put("SITE_DESCR", rs.getString("SITE_DESCR"));
rowData.put("SITE DESCR", rs.getString("SITE_DESCR"));
rowData.put("ITEM_CODE", rs.getString("ITEM_CODE"));
rowData.put("ITEM_SER", rs.getString("ITEM_SER"));
rowData.put("DESCR", rs.getString("DESCR"));
rowData.put("FREE_SALES_VALUE", rs.getInt("FREE_SALES_VALUE"));
rowData.put("FREE_QTY", rs.getInt("FREE_QTY"));
rowData.put("GROSS_SALES_VALUE", rs.getInt("GROSS_SALES_VALUE"));
rowData.put("GROSS SALES VALUE", rs.getInt("GROSS_SALES_VALUE"));
rowData.put("PRODUCT_LINE", rs.getString("PRODUCT_LINE"));
rowData.put("PRODUCT_LINE_DESCR", rs.getString("PRODUCT_LINE_DESCR"));
rowData.put("NET_SALES_VALUE", rs.getInt("NET_SALES_VALUE"));
rowData.put("GROSS_VALUE",grossValue);
salesSummaryArr.add(rowData);
rowData.put("NET SALES VALUE", rs.getInt("NET_SALES_VALUE"));
String formatDate=docYear+docMonth;
BaseLogger.log("3",null,null,"format date "+formatDate);
Double growth=0.0;
BaseLogger.log("3",null,null,"growthValueArray.length() ["+growthValueArray+"]");
String growth1=growthValueArray.optString(formatDate);
BaseLogger.log("3",null,null,"growthvalue growth "+growth1);
if(growth1 != null ) {
rowData.put("GROWTH",growth1);
BaseLogger.log("3",null,null,"growthvalue rowData if "+rowData);
}
else {
rowData.put("GROWTH",0.0);
BaseLogger.log("3",null,null,"growthvalue rowData else "+rowData);
}
salesSummaryArr.put(rowData);
}
salesTrendsData = salesSummaryArr.toString();
System.out.println("getSalesSummary DATA :::::::::::::: " + salesTrendsData);
BaseLogger.log("3",null,null,"getSalesSummary DATA :::::::::::::: " + salesTrendsData);
if( pStmt != null )
{
......@@ -155,7 +189,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
catch(Exception e )
{
System.err.println( "Exception :: SalesTrends : getSalesSummary : ["+ e.getMessage() +"]" );
BaseLogger.log("3",null,null, "Exception :: SalesTrends : getSalesSummary : ["+ e.getMessage() +"]" );
throw new ITMException(e);
}
finally
......@@ -188,7 +222,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
private String getPeriod(String period) throws Exception {
System.out.println("Get Period "+period);
BaseLogger.log("3",null,null,"Get Period "+period);
String period1="";
PreparedStatement pStmt = null;
ResultSet rs = null;
......@@ -204,26 +238,26 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
JSONObject rowData = null;
String sqlCurrYear = "select fr_date,to_date from period where code='"+period+"'";
String sqlCurrYear = "SELECT FR_DATE,TO_DATE FROM ACCTPRD WHERE CODE=(SELECT ACCT_PRD FROM PERIOD WHERE CODE='"+period+"')";
System.out.println("SQL QUERY getPeriod ::::::::::::::::: " + sqlCurrYear );
BaseLogger.log("3",null,null,"SQL QUERY getPeriod ::::::::::::::::: " + sqlCurrYear );
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dbDate);
pStmt = conn.prepareStatement( sqlCurrYear );
rs = pStmt.executeQuery();
while( rs.next() )
{
System.out.println("date >>>>>>>>>>>>>["+rs.getDate("fr_date")+"] ["+rs.getDate("to_date")+"]");
Date frmDate=rs.getDate("fr_date");
Date toDate=rs.getDate("to_date");
BaseLogger.log("3",null,null,"date >>>>>>>>>>>>>["+rs.getDate("fr_date")+"] ["+rs.getDate("to_date")+"]");
Date frmDate=rs.getDate("FR_DATE");
Date toDate=rs.getDate("TO_DATE");
String frmDate1=simpleDateFormat.format(frmDate);
String toDate1=simpleDateFormat.format(toDate);
System.out.println("date ::::::::::::::["+frmDate1+"] ["+toDate1+"]");
BaseLogger.log("3",null,null,"date ::::::::::::::["+frmDate1+"] ["+toDate1+"]");
period1=" and DSS.DOC_DATE between TO_DATE('"+ frmDate1+"','"+dbDate+"') AND TO_DATE('"+toDate1+"','"+dbDate+"')";
System.out.println(">>>>>>>>>.. "+period1);
BaseLogger.log("3",null,null,">>>>>>>>>.. "+period1);
}
System.out.println("period :::::"+period1);
BaseLogger.log("3",null,null,"period :::::"+period1);
if( pStmt != null )
......@@ -241,7 +275,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
catch(Exception e )
{
System.err.println( "Exception :: SalesTrends : getSalesSummary : ["+ e.getMessage() +"]" );
BaseLogger.log("0",null,null, "Exception :: SalesTrends : getSalesSummary : ["+ e.getMessage() +"]" );
throw new ITMException(e);
}
finally
......@@ -274,11 +308,12 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
}
private JSONObject getNetAvg(String year,String month) throws ITMException {
System.out.println("get net avg ["+year+"] month ["+month+"]");
private JSONArray getNetAvg(String year) throws ITMException {
BaseLogger.log("3",null,null,"get net avg ["+year+"] ");
PreparedStatement pStmt = null;
ResultSet rs = null;
Connection conn = null;
JSONArray netAvg=new JSONArray();
JSONObject rowData = new JSONObject();
try
{
......@@ -288,15 +323,14 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
String sqlCurrYear = "select DSS_YEAR, DSS_MONTH, SUM(DSS_NSV) as NET_AVG " +
" from( " +
" select to_char(doc_date,'YYYY') DSS_YEAR, to_char(doc_date,'MM') DSS_MONTH, NET_SALES_VALUE DSS_NSV " +
" select to_char(doc_date,'YYYY') DSS_YEAR, to_char(doc_date,'MON') DSS_MONTH, NET_SALES_VALUE DSS_NSV " +
" from DWH_SALES_SUM " +
" ) " +
" where DSS_YEAR = '"+year+"' " +
" AND DSS_MONTH = '"+month+"' " +
" group by DSS_YEAR, DSS_MONTH " +
" order by DSS_YEAR, DSS_MONTH ";
System.out.println("SQL QUERY EXECUTED ::::::::::::::::: " + sqlCurrYear );
BaseLogger.log("3",null,null,"SQL QUERY EXECUTED ::::::::::::::::: " + sqlCurrYear );
pStmt = conn.prepareStatement( sqlCurrYear );
rs = pStmt.executeQuery();
......@@ -306,7 +340,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
rowData.put("DSS_YEAR", rs.getString("DSS_YEAR"));
rowData.put("DSS_MONTH", rs.getString("DSS_MONTH"));
rowData.put("NET_AVG", rs.getInt("NET_AVG"));
netAvg.put(rowData);
}
if( pStmt != null )
......@@ -324,7 +358,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
catch(Exception e )
{
System.err.println( "Exception :: SalesTrends : getSalesSummary : ["+ e.getMessage() +"]" );
BaseLogger.log("0",null,null, "Exception :: SalesTrends : getSalesSummary : ["+ e.getMessage() +"]" );
throw new ITMException(e);
}
finally
......@@ -352,8 +386,8 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
e.printStackTrace();
}
}
System.out.println("row data "+rowData);
return rowData;
BaseLogger.log("9",null,null,"row data "+netAvg);
return netAvg;
}
......@@ -399,7 +433,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
}
}
}
//System.out.println("jsonObj>>" + jsonObj);
//BaseLogger.log("3",null,null,"jsonObj>>" + jsonObj);
// do children
if (xmlObj.hasChildNodes()) {
......@@ -426,7 +460,7 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
}
else if( !"#text".equalsIgnoreCase(childNodeName) )
{
System.out.println(childNodeName + "<<childNodeValue>>" + childNodeValue);
BaseLogger.log("3",null,null,childNodeName + "<<childNodeValue>>" + childNodeValue);
if( jsonObj.optJSONObject(childNodeName) != null )
{
......@@ -447,20 +481,49 @@ public class SalesTrends extends ValidatorEJB implements SalesTrendsLocal, Sales
}
}
}
//System.out.println(xmlObj.getNodeName() + ">>childNodeName>" + jsonObj);
//BaseLogger.log("3",null,null,xmlObj.getNodeName() + ">>childNodeName>" + jsonObj);
return jsonObj;
}
private Double calculateGross(JSONObject netSummary,JSONObject netSummaryPrv) throws JSONException{
System.out.println("netSummary "+netSummary+" netSummaryPrv "+netSummaryPrv);
Double grossValue=0.0;
Double netSumm=netSummary.optDouble("NET_AVG");
Double netSummPv=netSummaryPrv.optDouble("NET_AVG");
System.out.println("net netSummPv "+(netSumm-netSummPv));
Double minusNet=netSumm-netSummPv;
grossValue=(minusNet/netSumm)*100;
System.out.println("grossValue netSummPv "+grossValue);
return grossValue;
//CURRENT : 10 PREV : 12
/*
*
* FOR(PREV)
*
*/
private JSONObject calculateGross(JSONArray netSummary,JSONArray netSummaryPrv) throws JSONException{
JSONArray growthArray=new JSONArray();
JSONObject growthObject=new JSONObject();
BaseLogger.log("3",null,null,"netSummary "+netSummary.length()+" netSummaryPrv "+netSummaryPrv.length());
for(int i = 0; i < netSummary.length(); i++) {
Double growthValue=0.0;
JSONObject netSummaryObj=netSummary.optJSONObject(i);
BaseLogger.log("3",null,null,"first for loop ["+i+"] netSummaryObj ["+netSummaryObj+"]");
String month=netSummaryObj.optString("DSS_MONTH");
String year=netSummaryObj.optString("DSS_YEAR");
Double netAmount=netSummaryObj.optDouble("NET_AVG");
BaseLogger.log("3",null,null,"calculateGross1 month ["+month+"] year ["+year+"] netAmount ["+netAmount+"]");
for(int j = 0; j < netSummaryPrv.length(); j++) {
JSONObject netSummaryObjPvs=netSummaryPrv.optJSONObject(j);
BaseLogger.log("3",null,null,"first for loop ["+j+"] netSummaryObj ["+netSummaryObjPvs+"]");
String monthPvs=netSummaryObjPvs.optString("DSS_MONTH");
if(monthPvs.equalsIgnoreCase(month)) {
String yearPvs=netSummaryObjPvs.optString("DSS_YEAR");
Double netAmountPvs=netSummaryObjPvs.optDouble("NET_AVG");
BaseLogger.log("3",null,null,"calculateGross1 monthPvs ["+monthPvs+"] yearPvs ["+yearPvs+"] netAmountPvs ["+netAmountPvs+"]");
Double minusNet=netAmount-netAmountPvs;
growthValue=(minusNet/netAmount)*100;
BaseLogger.log("3",null,null,"Inside ccount gross value "+growthValue);
growthObject.put(year+month, growthValue);
BaseLogger.log("3",null,null,"Inside ccount gross growthObject "+growthObject);
// growthArray.put(growthObject);
break;
}
}
}
BaseLogger.log("9",null,null,"Inside ccount gross growthArray "+growthObject);
return growthObject;
}
}
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