Changeset 17911

Show
Ignore:
Timestamp:
08/20/08 03:51:10 (3 months ago)
Author:
sjmittal
Message:

fixes for bfd 5805, 5694, 5806, 5807
FormData?.java: inserting name of the form in case of form data update, if the same has not been updated before, as its needed for assignable forms to work that were created prior to the introduction of this concept.
PercentCompleteChangedHandler?.java: handling for assignable form
UpdateAssignmentsProcessingHandler?.java: storing and % complete change for assignable form
FormEdit?.jsp, include/FormEdit.jsp: making the % complete non editable if no work is captured yet
FormEditProcessing?.jsp: checking for work = work complete also so that update of 100% works
UpdateAssignments?.jsp: unlimiting the characters in capture work from 2

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/core/src/net/project/form/FormData.java

    r17771 r17911  
    393393 
    394394        FormField titleField = m_form.getFirstEditableField(); 
    395         if(titleField != null) { 
    396                 String titleFieldValue  = null; 
    397                 if(this.get(titleField.getSQLName()) != null && ((FieldData)this.get(titleField.getSQLName())) != null  
    398                                 && ((FieldData)this.get(titleField.getSQLName())).size() > 0){ 
    399                         titleFieldValue = (String)  ((FieldData)this.get(titleField.getSQLName())).get(0); 
    400                 } 
    401             if(titleFieldValue != null && !"".equals(titleFieldValue.trim())){ 
     395        if (titleField != null) { 
     396            String titleFieldValue = null; 
     397            if (this.get(titleField.getSQLName()) != null && ((FieldData) this.get(titleField.getSQLName())) != null && ((FieldData) this.get(titleField.getSQLName())).size() > 0) { 
     398                titleFieldValue = (String) ((FieldData) this.get(titleField.getSQLName())).get(0); 
     399            } 
     400            if (titleFieldValue != null && !"".equals(titleFieldValue.trim())) { 
    402401                return titleFieldValue; 
    403             } 
    404             else{ 
    405                 return m_form.getAbbreviation() + "-" + this.getSeqNum(); 
     402            } else { 
     403                return m_form.getAbbreviation() + "-" + this.getSeqNum(); 
    406404            } 
    407405        } 
     
    788786                db.pstmt.setString(++index, m_form.getFirstEditableField() == null ? m_form.getAbbreviation() + "-" + sequenceNum : getName()); 
    789787                DatabaseUtils.setInteger(db.pstmt, ++index, dataObjectID);                 
    790                 db.executePreparedUpdate(); 
     788                int updateCount = db.executePreparedUpdate(); 
     789                //sjmittal: if this is form created prior to the additon of assignable for or hook then insert new row 
     790                if(updateCount == 0) { 
     791                    index = 0; 
     792                    db.prepareStatement("INSERT INTO PN_OBJECT_NAME (object_id, name) VALUES (?, ?)"); 
     793                    DatabaseUtils.setInteger(db.pstmt, ++index, dataObjectID); 
     794                    String formName = m_form.getFirstEditableField() == null ? m_form.getAbbreviation() + "-" + sequenceNum : getName(); 
     795                    db.pstmt.setString(++index, formName); 
     796                    db.executePreparedUpdate(); 
     797                } 
    791798            } else { 
    792799 
  • trunk/core/src/net/project/resource/mvc/handler/PercentCompleteChangedHandler.java

    r16593 r17911  
    3636import net.project.base.mvc.IView; 
    3737import net.project.base.property.PropertyProvider; 
     38import net.project.form.assignment.FormAssignment; 
     39import net.project.resource.ActivityAssignment; 
     40import net.project.resource.Assignment; 
    3841import net.project.resource.ScheduleEntryAssignment; 
    3942import net.project.resource.mvc.view.PercentCompleteChangedView; 
     
    126129        //Get the assignment for this work 
    127130        Map assignmentMap = (Map)request.getSession().getAttribute("updateAssignmentsMap"); 
    128         ScheduleEntryAssignment assn = (ScheduleEntryAssignment)assignmentMap.get(objectID); 
     131        Assignment assn = (Assignment)assignmentMap.get(objectID); 
    129132 
    130133        //Figure out the total amount of work that has been completed. 
    131         TimeQuantity workComplete = assn.getWorkComplete(); 
     134        TimeQuantity workComplete = getWorkComplete(assn); 
    132135 
    133136        for (int i = 0; i < 7; i++) { 
     
    140143        if (workComplete.isZero()) { 
    141144            errors.addError(PropertyProvider.get("prm.personal.assignments.cannotsetpercentcomplete.message")); 
    142             model.put("percentComplete", nf.formatPercent(assn.getPercentComplete().doubleValue())); 
     145            model.put("percentComplete", nf.formatPercent(getPercentComplete(assn).doubleValue())); 
    143146            return; 
    144147        } 
     
    156159        if(!Validator.isInRange(percentComplete.doubleValue(), 0.00001, 1)) { 
    157160            errors.addError(new ErrorDescription(PropertyProvider.get("prm.resource.updatework.error.pencentcomplete.range.message"))); 
    158             model.put("percentComplete", nf.formatPercent(assn.getPercentComplete().doubleValue())); 
     161            model.put("percentComplete", nf.formatPercent(getPercentComplete(assn).doubleValue())); 
    159162            return; 
    160163        } 
     
    166169        model.put("workRemaining", workRemaining); 
    167170    } 
     171     
     172    private TimeQuantity getWorkComplete(Assignment assn) { 
     173        if(assn instanceof ScheduleEntryAssignment) 
     174            return((ScheduleEntryAssignment) assn).getWorkComplete(); 
     175        else if(assn instanceof FormAssignment) 
     176            return ((FormAssignment) assn).getWorkComplete(); 
     177        else 
     178            return ((ActivityAssignment) assn).getWork(); 
     179    } 
     180     
     181    private BigDecimal getPercentComplete(Assignment assn) { 
     182        if(assn instanceof ScheduleEntryAssignment) 
     183            return((ScheduleEntryAssignment) assn).getPercentComplete(); 
     184        else if(assn instanceof FormAssignment) 
     185            return ((FormAssignment) assn).getPercentComplete(); 
     186        else 
     187            return new BigDecimal(1.0); 
     188    } 
    168189} 
  • trunk/core/src/net/project/resource/mvc/handler/UpdateAssignmentsProcessingHandler.java

    r17673 r17911  
    629629                    newWork = new TimeQuantity(new BigDecimal(workUpdateString), TimeQuantityUnit.HOUR); 
    630630                    fAssignment.setWork(newWork); 
     631                    //store any work changes here as you may not get a chance to do that later 
     632                    fAssignment.store(); 
    631633                } 
    632634            } else if (assignment instanceof ActivityAssignment) { 
  • trunk/core/web/jsp/form/FormEdit.jsp

    r17766 r17911  
    208208   theForm = self.document.forms[0]; 
    209209   isLoaded = true; 
     210   var workComplete = Ext.DomQuery.selectNode("#work_complete"); 
     211   if(workComplete && workComplete.value == '0') { 
     212       var workPercentComplete  = Ext.DomQuery.selectNode("#work_percent_complete"); 
     213       if(workPercentComplete) 
     214           workPercentComplete.readOnly = true; 
     215   } 
    210216} 
    211217 
  • trunk/core/web/jsp/form/FormEditProcessing.jsp

    r17178 r17911  
    8989                                    TimeQuantity newWork = TimeQuantity.parse(work, workUnits); 
    9090                                    TimeQuantity oldWorkComplete = assignment.getWorkComplete(); 
    91                                     if(newWork.compareTo(oldWorkComplete) > 0) { 
     91                                    if(newWork.compareTo(oldWorkComplete) >= 0) { 
    9292                                        assignment.setWork(newWork); 
    9393                                    } 
  • trunk/core/web/jsp/form/include/FormEdit.jsp

    r17673 r17911  
    9292 
    9393                editMode = "modify"; 
    94 %><% 
     94 
    9595        } else {// Creating new form instance, requires Form object in session 
    9696                id = null; 
     
    369369        </td> 
    370370        <td nowrap width="25%"> 
    371             <input:text elementID="work" name="work" size="5" maxLength="10" onBlur="workChanged();" value='<%=assigned == null ? "" : assigned.getWork().formatAmount()%>' /> 
     371            <input:text elementID="work" name="work" size="5" maxLength="10" onChange="workChanged();" value='<%=assigned == null ? "" : assigned.getWork().formatAmount()%>' /> 
    372372            <input:select elementID="work_units" name="work_units" onChange="workUnitsChanged();" options="<%=availableUnits%>" defaultSelected="<%=assigned == null ? TimeQuantityUnit.HOUR : assigned.getWork().getUnits()%>" /> 
    373373        </td> 
     
    378378        </td> 
    379379        <td nowrap width="15%" > 
    380             <input:text elementID="work_percent_complete" name="work_percent_complete" onBlur="workPercentCompleteChanged();" value='<%=assigned == null ? "" :assigned.getPercentCompleteString()%>' size="4" maxLength="7"/> 
     380            <input:text elementID="work_percent_complete" name="work_percent_complete" onChange="workPercentCompleteChanged();" value='<%=assigned == null ? "" :assigned.getPercentCompleteString()%>' size="4" maxLength="7"/> 
    381381        </td> 
    382382        <td nowrap width="15%" id="startDate"> 
  • trunk/core/web/jsp/resource/include/UpdateAssignments.jsp

    r17673 r17911  
    488488                    <%=work.toShortString(0,2)%> <br> 
    489489                <% if(!readOnly) { %> 
    490                     <input type="text" size="1" maxlength="2" name='<%=valueName%>' <%=valueValue%> onChange="workChanged(<%=assignment.getObjectID()%>, <%=showFilterPane.booleanValue()%>,<%=name%>);"/><a id="timerLink" href='javascript:specifyTimes("<%=assignment.getObjectID()%>", <%=name%>, theForm.<%=valueName%>.value, <%=showFilterPane.booleanValue()%>);'><img src="<%= SessionManager.getJSPRootURL() %>/images/sm_clock.gif" border="0"/></a> 
     490                    <input type="text" size="1" maxlength="5" name='<%=valueName%>' <%=valueValue%> onChange="workChanged(<%=assignment.getObjectID()%>, <%=showFilterPane.booleanValue()%>,<%=name%>);"/><a id="timerLink" href='javascript:specifyTimes("<%=assignment.getObjectID()%>", <%=name%>, theForm.<%=valueName%>.value, <%=showFilterPane.booleanValue()%>);'><img src="<%= SessionManager.getJSPRootURL() %>/images/sm_clock.gif" border="0"/></a> 
    491491                <%  } %> 
    492492                </td>