Commit 536a8240 authored by vvengurlekar's avatar vvengurlekar

shortageinventory.xml- changed EJB for applying sorting basis on balance days


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@176557 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 79dfa547
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
package ibase.dashboard.scm.ejb; package ibase.dashboard.scm.ejb;
import ibase.system.config.ConnDriver; import ibase.system.config.ConnDriver;
import ibase.utility.CommonConstants; import ibase.utility.CommonConstants;
import ibase.webitm.ejb.ValidatorEJB; import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.ITMException; import ibase.webitm.utility.ITMException;
...@@ -11,8 +12,7 @@ import java.sql.Connection; ...@@ -11,8 +12,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Calendar;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
...@@ -21,17 +21,16 @@ import org.json.simple.JSONObject; ...@@ -21,17 +21,16 @@ import org.json.simple.JSONObject;
public class ShortageInventory extends ValidatorEJB implements ShortageInventoryLocal, ShortageInventoryRemote public class ShortageInventory extends ValidatorEJB implements ShortageInventoryLocal, ShortageInventoryRemote
{ {
@SuppressWarnings({ "unchecked"}) @SuppressWarnings({ "unchecked", "static-access", "unused"})
public JSONObject getShortageInventory(String dataSourceName , String loginSiteCode , String finYear) throws RemoteException, ITMException public JSONObject getShortageInventory(String dataSourceName , String loginSiteCode , String finYear) throws RemoteException, ITMException
{ {
JSONObject shortageInvJSON = new JSONObject(); JSONObject shortageInvJSON = new JSONObject();
JSONObject rowData = null; JSONObject rowData = null;
JSONObject countData = null;
String sql = "", sql1 = "", fromDate = "", toDate = ""; String sql = "", sql1 = "", fromDate = "", toDate = "";
String tran_image = "" , itemCode = ""; String tran_image = "" , itemCode = "";
String itemDescr = "",orderCount = "", quantity = ""; String itemDescr = "";
double pendingQty = 0.0, pendingValue = 0.0, pendingValueGlobal = 0.0, availableQty = 0.0, avgSalesPerDay = 0.0, availQtyForNearBy = 0.0; int pendingQty = 0, pendingValue = 0, pendingValueGlobal = 0, availableQty = 0, avgSalesPerDay = 0, availQtyForNearBy = 0;
double daysInventoryAvail = 0.0, shortageInventory =0.0; int daysInventoryAvail = 0, shortageInventory =0, orderCount = 0, quantity = 0;
Connection con = null; Connection con = null;
ConnDriver connDriver = new ConnDriver(); ConnDriver connDriver = new ConnDriver();
ResultSet rs = null, rs1 = null; ResultSet rs = null, rs1 = null;
...@@ -40,34 +39,15 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -40,34 +39,15 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
Calendar cal = null; Calendar cal = null;
SimpleDateFormat sdf = null; SimpleDateFormat sdf = null;
StringBuffer rowBuffer = new StringBuffer(); StringBuffer rowBuffer = new StringBuffer();
HashMap<Integer, ArrayList<String>> sortDaysWise = new HashMap<Integer, ArrayList<String>>();
ArrayList<String> valueAgainstDays = new ArrayList<String>();
try try
{ {
System.out.println("Try block of InventoryShortage.getShortageInventory()"); System.out.println("Try block of InventoryShortage.getShortageInventory()");
con = connDriver.getConnectDB(dataSourceName); con = connDriver.getConnectDB(dataSourceName);
connDriver=null; connDriver=null;
/*if(finYear == null || "".equalsIgnoreCase(finYear))
{
sql = "Select Acct_Prd,Code,Descr From Period Where To_Date(Sysdate) Between Fr_Date and To_Date";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next())
{
acctPeriod = checkNull(rs.getString("Acct_Prd"));
System.out.println("Period code ======== " + acctPeriod );
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
}
else
{
acctPeriod = finYear;
System.out.println("Financial year ======= " + acctPeriod);
}*/
System.out.println("LOGIN SITE CODE ======= " + loginSiteCode);
System.out.println("LOGIN SITE CODE ======= " + loginSiteCode);
cal = Calendar.getInstance(); cal = Calendar.getInstance();
sdf = new SimpleDateFormat("dd-MMM-yy"); sdf = new SimpleDateFormat("dd-MMM-yy");
int currentDayMonth = cal.DAY_OF_MONTH; int currentDayMonth = cal.DAY_OF_MONTH;
...@@ -100,15 +80,16 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -100,15 +80,16 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
while(rs.next()) while(rs.next())
{ {
itemCode = checkNull(rs.getString("item_code")); itemCode = checkNull(rs.getString("item_code"));
avgSalesPerDay = Math.round(checkDouble(rs.getString("avg_sales"))); avgSalesPerDay = Math.round(checInteger(rs.getString("avg_sales")));
//For calculating available inventory //For calculating available inventory
sql1 = "SELECT FN_GET_ITMSTK ('"+itemCode+"', '"+loginSiteCode+"') as available_qty from dual"; sql1 = "SELECT FN_GET_ITMSTK ('"+itemCode+"', '"+loginSiteCode+"') as available_qty from dual";
pstmt1 = con.prepareStatement(sql1); pstmt1 = con.prepareStatement(sql1);
rs1 = pstmt1.executeQuery(); rs1 = pstmt1.executeQuery();
if(rs1.next()) if(rs1.next())
{ {
availableQty = Math.round(checkDouble(rs1.getString("available_qty"))); availableQty = Math.round(rs1.getInt("available_qty"));
} }
System.out.println("availableQty get==== " + availableQty);
rs1.close(); rs1.close();
rs1 = null; rs1 = null;
pstmt1.close(); pstmt1.close();
...@@ -132,14 +113,15 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -132,14 +113,15 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
if(rs1.next()) if(rs1.next())
{ {
itemDescr = checkNull(rs1.getString("ITEM_DESCR")); itemDescr = checkNull(rs1.getString("ITEM_DESCR"));
orderCount = checkNull(rs1.getString("ORDER_COUNT")); orderCount = Math.round(rs1.getInt("ORDER_COUNT"));
quantity = checkNull(rs1.getString("quantity")); quantity = Math.round(rs1.getInt("quantity"));
pendingQty = Math.round(checkDouble(rs1.getString("pending_qty"))); pendingQty = Math.round(rs1.getInt("pending_qty"));
pendingValue = Math.round(checkDouble(rs1.getString("pending_value"))); pendingValue = Math.round(rs1.getInt("pending_value"));
String object = "images"+ File.separator + "users"; String object = "images"+ File.separator + "users";
String userImagePath = "/ibase/CustomMenuImageServlet?fldValue="+itemCode+"&object="+object+"&objName="+object+"&ALT_FLD_VALUE="+itemDescr; String userImagePath = "/ibase/CustomMenuImageServlet?fldValue="+itemCode+"&object="+object+"&objName="+object+"&ALT_FLD_VALUE="+itemDescr;
tran_image = "<img class='cardProdImg2' src='"+userImagePath+"' style='margin-top:-15px'/>"; tran_image = "<img class='cardProdImg2' src='"+userImagePath+"' style='margin-top:-15px'/>";
} }
System.out.println("orderCount get==== " + orderCount+" quantity : "+quantity+" pendingValue: "+pendingValue);
rs1.close(); rs1.close();
rs1 = null; rs1 = null;
pstmt1.close(); pstmt1.close();
...@@ -147,7 +129,7 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -147,7 +129,7 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
//For calculating Number of days inventory available //For calculating Number of days inventory available
daysInventoryAvail = Math.round(availableQty/avgSalesPerDay); daysInventoryAvail = Math.round(availableQty/avgSalesPerDay);
System.out.println("daysInventoryAvail get=========="+daysInventoryAvail);
//For calculating Near by site stock //For calculating Near by site stock
String siteCodeFrom = ""; String siteCodeFrom = "";
sql1 = "SELECT SITE_CODE__FROM, DISTANCE FROM DIST_INTERSITE_OPTIONS " + sql1 = "SELECT SITE_CODE__FROM, DISTANCE FROM DIST_INTERSITE_OPTIONS " +
...@@ -158,6 +140,7 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -158,6 +140,7 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
{ {
siteCodeFrom = checkNull(rs1.getString("SITE_CODE__FROM")); siteCodeFrom = checkNull(rs1.getString("SITE_CODE__FROM"));
} }
System.out.println("siteCodeFrom get=========="+siteCodeFrom);
rs1.close(); rs1.close();
rs1 = null; rs1 = null;
pstmt1.close(); pstmt1.close();
...@@ -168,8 +151,9 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -168,8 +151,9 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
rs1 = pstmt1.executeQuery(); rs1 = pstmt1.executeQuery();
if(rs1.next()) if(rs1.next())
{ {
availQtyForNearBy = Math.round(checkDouble(rs1.getString("available_qty_nearby"))); availQtyForNearBy = Math.round(rs1.getInt("available_qty_nearby"));
} }
System.out.println("availQtyForNearBy get=========="+availQtyForNearBy);
rs1.close(); rs1.close();
rs1 = null; rs1 = null;
pstmt1.close(); pstmt1.close();
...@@ -178,7 +162,8 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -178,7 +162,8 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
//For calculating Shortage of inventory //For calculating Shortage of inventory
int balanceDays = lastDayMonth-currentDayMonth; int balanceDays = lastDayMonth-currentDayMonth;
shortageInventory = Math.round((balanceDays*avgSalesPerDay) - availableQty); shortageInventory = Math.round((balanceDays*avgSalesPerDay) - availableQty);
System.out.println("shortageInventory: "+shortageInventory); System.out.println("shortageInventory get: "+shortageInventory);
String availableQtyStr = ""; String availableQtyStr = "";
if(shortageInventory > 0) if(shortageInventory > 0)
...@@ -192,11 +177,37 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -192,11 +177,37 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
pendingValueGlobal = pendingValueGlobal + pendingValue; pendingValueGlobal = pendingValueGlobal + pendingValue;
rowBuffer.append("<div class='tdMousehover'>" +
if(sortDaysWise.containsKey(daysInventoryAvail))
{
valueAgainstDays.add("<div class='tdMousehover'>" +
"<table border='0' cellpadding='0' cellspacing='1' width='100%' style= 'border-bottom: 1px solid #ececec; padding: 2px;margin:auto;'>" +
"<tr class = 'row'>" +
"<td width='2%'>"+tran_image+"</td>" +
"<td><table cellpadding='0' cellspacing='0' width='70%' style='padding-left:5px;'>" +
"<tr><td><table cellpadding='0' cellspacing='1'>" +
"<tr><td> "+itemDescr+" ("+itemCode+") "+" </td></tr>" +
"</table></td></tr>" +
"<tr><td><table cellpadding='0' cellspacing='1'>" +
"<tr><td><font style='font-size:13px;'> "+avgSalesPerDay+"pc/day </font></td>" +
"<td style='padding-left:20px;'><font style='font-size:13px;'> available "+availableQtyStr+" </font></td>" +
"<td style='padding-left:20px;'><font style='font-size:13px;'> near by "+availQtyForNearBy+"pc </font></td></tr>" +
"</table></td></tr>" +
"<tr><td ><table cellpadding='0' cellspacing='1'>" +
"<tr><td class='defaultIconSubTitle'><font style='font-size:11px;'> Order ("+orderCount+") </font></td>" +
"<td class='defaultIconSubTitle' style='padding-left:20px;'><font style='font-size:11px;'> "+pendingQty+"pc </font></td>" +
"<td class='defaultIconSubTitle' style='padding-left:20px;'><font style='font-size:11px;'> "+pendingValue+"INR </font></td></tr>" +
"</table></td></tr>" +
"</table></td>" +
"<td align='right' style='padding-right:10px;'><div style='margin-top:-15px;'> "+daysInventoryAvail+" days </div></td></tr></table></div>");
}
else
{
valueAgainstDays = new ArrayList<String>();
valueAgainstDays.add("<div class='tdMousehover'>" +
"<table border='0' cellpadding='0' cellspacing='1' width='100%' style= 'border-bottom: 1px solid #ececec; padding: 2px;margin:auto;'>" + "<table border='0' cellpadding='0' cellspacing='1' width='100%' style= 'border-bottom: 1px solid #ececec; padding: 2px;margin:auto;'>" +
"<tr class = 'row'>" + "<tr class = 'row'>" +
"<td width='2%'>"+tran_image+"</td>" + "<td width='2%'>"+tran_image+"</td>" +
//"<td width='2%'>"+""+"</td>" +
"<td><table cellpadding='0' cellspacing='0' width='70%' style='padding-left:5px;'>" + "<td><table cellpadding='0' cellspacing='0' width='70%' style='padding-left:5px;'>" +
"<tr><td><table cellpadding='0' cellspacing='1'>" + "<tr><td><table cellpadding='0' cellspacing='1'>" +
"<tr><td> "+itemDescr+" ("+itemCode+") "+" </td></tr>" + "<tr><td> "+itemDescr+" ("+itemCode+") "+" </td></tr>" +
...@@ -213,9 +224,23 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -213,9 +224,23 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
"</table></td></tr>" + "</table></td></tr>" +
"</table></td>" + "</table></td>" +
"<td align='right' style='padding-right:10px;'><div style='margin-top:-15px;'> "+daysInventoryAvail+" days </div></td></tr></table></div>"); "<td align='right' style='padding-right:10px;'><div style='margin-top:-15px;'> "+daysInventoryAvail+" days </div></td></tr></table></div>");
}
sortDaysWise.put(daysInventoryAvail, valueAgainstDays);
}
System.out.println("Before Sorting sortDaysWise: "+sortDaysWise.toString()+"\n pendingValueGlobal: "+pendingValueGlobal);
Map<Integer, ArrayList<String>> sortedMap = new TreeMap<Integer, ArrayList<String>>(sortDaysWise);
System.out.println("After Sorting sortedMap: "+sortedMap.toString());
for (Map.Entry<Integer, ArrayList<String>> entry : sortedMap.entrySet())
{
System.out.print(entry.getKey() + ": ");
System.out.println(entry.getValue());
ArrayList<String> mapValue = entry.getValue();
for(int i = 0; i < mapValue.size(); i++)
{
rowBuffer.append(mapValue.get(i));
}
} }
System.out.println("shortageInventoryTable: "+rowBuffer.toString()+"\n pendingValueGlobal: "+pendingValueGlobal);
rowData.put("shortageInventoryTable", rowBuffer.toString()); rowData.put("shortageInventoryTable", rowBuffer.toString());
rowData.put("exportToExcel", "<td><img src='"+CommonConstants.TOMCAT_HOME+"/ibase/dwh/FusionChart/images/excel.png' width='20px' height='20px' alt='Export to Excel' id='excel' name='excel' onclick='exportExcel(this.parentNode.id)' align='right' style='padding : 16px;'></td>"); rowData.put("exportToExcel", "<td><img src='"+CommonConstants.TOMCAT_HOME+"/ibase/dwh/FusionChart/images/excel.png' width='20px' height='20px' alt='Export to Excel' id='excel' name='excel' onclick='exportExcel(this.parentNode.id)' align='right' style='padding : 16px;'></td>");
rowData.put("Items", pendingValueGlobal); rowData.put("Items", pendingValueGlobal);
...@@ -225,6 +250,7 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -225,6 +250,7 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
catch (Exception e) catch (Exception e)
{ {
System.out.println("Catch Block of InventoryShortage.getShortageInventory()"+e); System.out.println("Catch Block of InventoryShortage.getShortageInventory()"+e);
e.printStackTrace();
} }
finally finally
{ {
...@@ -263,15 +289,16 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory ...@@ -263,15 +289,16 @@ public class ShortageInventory extends ValidatorEJB implements ShortageInventory
} }
return input; return input;
} }
private Double checkDouble(String input) private int checInteger(String input)
{ {
if (input == null || input.length()==0) if (input == null || input.length()==0)
{ {
return 0.0; return 0;
} else } else
{ {
return Double.parseDouble(input); return Integer.parseInt(input);
} }
} }
} }
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