⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stcmain.jsp

📁 国外的一套开源CRM
💻 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>&nbsp;|&nbsp;</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">&nbsp;<b>Opportunity:</b>&nbsp;<%=dealDetails.get("dealName")%>&nbsp;&nbsp;&nbsp;</td>
              <td colspan="3"></td>
            </tr>
            <tr class="viewOneLabel" >
              <td align="left">&nbsp;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);
%>              &nbsp;Completed: <%=dateFormat.format(trackingValue.get("createdDate"))%>
          <%  } else { %>
                 <input type="checkbox" name="step-<%=currentSteps[i].get("dealStageStepId")%>" value="<%=currentSteps[i].get("dealStageStepId")%>" >&nbsp;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 + -