📄 stcmain.jsp
字号:
<%@ include file="/includes/header.jsp" %>
<%@ page import="com.sourcetap.sfa.replication.*" %>
<%!
GenericValue findSpecificGenericValue(List l, String fieldName, String value){
Iterator i = l.iterator();
while(i.hasNext()){
GenericValue genVal = (GenericValue)i.next();
if(String.valueOf(genVal.get(fieldName)).equals(value) )
return genVal;
}
return null;
}
%>
<%
String action = ((request.getParameter("action") != null) ? request.getParameter("action") : "" );
String dealId = ((request.getParameter("dealId") != null) ? request.getParameter("dealId") : "" );
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
//deal details
HashMap hashMap = new HashMap();
hashMap.put("dealId", dealId);
GenericPK genericPk = new GenericPK(delegator.getModelEntity("Deal"), hashMap);
GenericValue dealDetails = delegator.findByPrimaryKey(genericPk);
String currentStageId = dealDetails.getString("stageId");
if ( ( currentStageId == null ) || ( currentStageId.length() < 1) )
{
out.write("<h3>Opportunity Stage not set. Please set it before viewing this screen</h3>");
return;
}
String salesTypeId = dealDetails.getString("dealStageTypeId");
if ( (salesTypeId == null) || (salesTypeId.length() < 1 ) )
{
GenericValue dealStageGV = delegator.findByPrimaryKey("DealStage", UtilMisc.toMap("stageId", currentStageId));
salesTypeId = dealStageGV.getString("stageTypeId");
System.out.println("looking up sales stage");
}
ArrayList order = new ArrayList();
order.add("stageOrder");
List dealStageList = delegator.findByAnd("DealStage", UtilMisc.toMap("stageTypeId", salesTypeId), order);
GenericValue dealStageValues[] = (GenericValue[])dealStageList.toArray(new GenericValue[0]);
//all steps
List allStepsList = delegator.findByAnd("DealStageSteps", UtilMisc.toMap("dealStageTypeId", salesTypeId), null);
//current steps
HashMap dealStageSteps = new HashMap();
dealStageSteps.put("dealStageId", dealDetails.get("stageId"));
List currentStepsList = delegator.findByAnd("DealStageSteps", dealStageSteps);
GenericValue currentSteps[] = (GenericValue[])currentStepsList.toArray(new GenericValue[0]);
if(action.equals("update")){
Enumeration enum = request.getParameterNames();
ModelEntity dealStageStepsTrackingEntity = delegator.getModelEntity("DealStageStepsTracking");
while(enum.hasMoreElements()){
String param = (String)enum.nextElement();
if(param.startsWith("step-")){
//check to see if the item exists.
HashMap map = new HashMap();
map.put("dealId", dealId);
map.put("dealStageStepId", String.valueOf(request.getParameter(param)));
map.put("dealStageId", dealDetails.get("stageId"));
List activities = delegator.findByAnd("DealStageStepsTracking", map, null);
if(activities.size() <= 0){
GenericValue genericValue = new GenericValue(dealStageStepsTrackingEntity);
genericValue.setDelegator(delegator);
genericValue.set("dealStageStepTrackingId", GenericReplicator.getNextSeqId("DealStageStepsTracking", delegator));
genericValue.set("dealStageStepId", String.valueOf(request.getParameter(param)));
genericValue.set("dealStageId", dealDetails.get("stageId"));
genericValue.set("dealId", dealId);
genericValue.set("createdBy", session.getAttribute("userName"));
genericValue.set("createdDate", new Timestamp(new java.util.Date().getTime()));
genericValue.set("modifiedBy", session.getAttribute("userName"));
genericValue.set("modifiedDate", new Timestamp(new java.util.Date().getTime()));
delegator.create(genericValue);
//remove old alert
//next stage id
int stageId = Integer.valueOf(dealDetails.getString("stageId")).intValue();
HashMap removeFields = new HashMap();
removeFields.put("alertLinkFieldName", "dealStageId");
removeFields.put("alertLinkFieldValue", new Integer(stageId - 1));
delegator.removeByAnd("Alert", removeFields);
//create new alert, except at last stage
if((stageId + 1) <= allStepsList.size()){
GenericValue newAlert = new GenericValue(delegator.getModelEntity("Alert"));
newAlert.setDelegator(delegator);
newAlert.set("alertId", GenericReplicator.getNextSeqId("Alert", delegator));
newAlert.set("alertOwnerId", session.getAttribute("partyId"));
newAlert.set("alertTypeId", null);
//calendar for alert date time
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, (cal.get(Calendar.DAY_OF_MONTH) + Integer.valueOf((getFieldValue(allStepsList, "dealStageId", String.valueOf((stageId + 1)), "daysToComplete" ))).intValue()));
cal.set(Calendar.HOUR_OF_DAY, 8);
cal.set(Calendar.AM_PM, Calendar.AM);
newAlert.set("alertDateTime", new java.sql.Date(cal.getTime().getTime()));
newAlert.set("alertEvent", null);
newAlert.set("alertDescription", "Opportunity Step To Close \"" + getFieldValue(allStepsList, "dealStageId", String.valueOf((stageId + 1)), "stepDescription") + "\" due date.");
newAlert.set("alertLinkFieldName", "dealStageId");
newAlert.set("alertLinkFieldValue", genericValue.get("dealStageId"));
delegator.create(newAlert);
}
}
}
}
}
//get/refresh tracking elements
HashMap dealStageStepsTracking = new HashMap();
dealStageStepsTracking.put("dealId", dealId);
List dealStageTracking = delegator.findByAnd("DealStageStepsTracking", dealStageStepsTracking);
GenericValue dealStageTrackingDetails[] = (GenericValue[])dealStageTracking.toArray(new GenericValue[0]);;
%>
<table width="100%" height="100%" >
<tr><td valign="top">
<!-- title table -->
<table width="100%" height="30"><tr><td><div class="head1">Steps to Close</div></td></tr></table>
<!-- Stage Viewer -->
<table width="100%" class="viewOneHeader">
<tr><td>Opportunity Stage</td></tr>
<tr><td>
<table width="100%" class="viewOneBox">
<tr>
<%
for(int i=0;i<dealStageValues.length;i++) {
GenericValue dealStatus = dealStageValues[i];
%>
<td align="center">
<%if(String.valueOf(dealStatus.get("stageId")).equals(dealDetails.get("stageId"))){%><font color="red"><b>Current Stage</b><br><%}%>
<%=dealStatus.get("stageName")%>
<%if(String.valueOf(dealStatus.get("stageId")).equals(dealDetails.get("stageId"))){%></font><%}%>
</td>
<%if(i != dealStageValues.length - 1) {%>
<td> | </td>
<%}%>
<% } %>
</tr>
</table>
</td></tr></table>
<table><tr><td height="10"></td></tr></table>
<table width="100%" cellpadding='0' cellspacing='0' class="viewOneBox" >
<tr class="viewOneHeader" ><td>Stage <%=getFieldValue(dealStageList, "stageId", (String)dealDetails.get("stageId"), "stageName") %></td></tr>
<tr><td>
<table cellpadding='1' cellspacing='1' width="100%">
<form method="post" action="<ofbiz:url>/stepsToClose</ofbiz:url>">
<input type="hidden" name="action" value="update">
<input type="hidden" name="dealId" value="<%=request.getParameter("dealId")%>">
<tr class="viewOneLabel" >
<td align="left"> <b>Opportunity:</b> <%=dealDetails.get("dealName")%> </td>
<td colspan="3"></td>
</tr>
<tr class="viewOneLabel" >
<td align="left"> Completed</td>
<td align="left">Description</td>
<td align="left">Required</td>
<td align="left">Tool</td>
</tr>
<%
GenericValue trackingValue = null;
for(int i=0;i<currentSteps.length;i++) {
Vector returns = getGenericValue(dealStageTracking, "dealStageStepId", currentSteps[i].getString("dealStageStepId"));
%>
<tr>
<td class="viewOneField">
<% if(returns.size() > 0){
trackingValue = (GenericValue)returns.get(0);
%> Completed: <%=dateFormat.format(trackingValue.get("createdDate"))%>
<% } else { %>
<input type="checkbox" name="step-<%=currentSteps[i].get("dealStageStepId")%>" value="<%=currentSteps[i].get("dealStageStepId")%>" > complete
<% } %>
</td>
<td class="viewOneField"><%=currentSteps[i].get("stepDescription")%></td>
<td class="viewOneField"><%=((currentSteps[i].getString("isStepRequired").equals("1")) ? "Yes" : "No" )%></td>
<td class="viewOneField"><%=((String.valueOf(currentSteps[i].get("toolPage")).trim().length() > 0 ) ?
("<a href=\"" + currentSteps[i].get("toolPage") + "\"> " + currentSteps[i].get("toolPage") + "</a>") :
"No Tool Required" )%></td>
</tr>
<% } %>
<tr>
<td class="viewOneField" colspan="4"><input type="submit" value="update"></td>
</tr>
</form>
</table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -