Subversion Repository Public Repository

litesoft

Diff Revisions 430 vs 511 for /trunk/Java/DATT/src/org/litesoft/datt/server/pos/Story.java

Diff revisions: vs.
  @@ -7,6 +7,7 @@
7 7 import org.litesoft.core.util.*;
8 8 import org.litesoft.datt.server.*;
9 9 import org.litesoft.orsup.base.*;
10 + import org.litesoft.orsup.selection.*;
10 11 import org.litesoft.orsup.transact.*;
11 12
12 13 public class Story extends StoryGO
  @@ -40,13 +41,13 @@
40 41 {
41 42 setCreator( CurrentUserAccessor.get().getRequiredUser().freshIntoIfNotAlreadyIn( zTransaction ) );
42 43 }
43 - if (getRestrictedResource() == null)
44 + if ( getRestrictedResource() == null )
44 45 {
45 46 setRestrictedResource( CurrentRestrictedResourceAccessor.get().getRequiredRestrictedResource().freshIntoIfNotAlreadyIn( zTransaction ) );
46 47 }
47 48 setCreatorFullName( getCreator().getFullName() );
48 49 }
49 - else if ( isAnyAttributeChanged() )
50 + else if ( isAnyAttributeChanged() && notJustPriorityLastChangedBy() )
50 51 {
51 52 if ( mCommitUpdate != null )
52 53 {
  @@ -54,21 +55,35 @@
54 55 mCommitUpdate.requestDelete();
55 56 mCommitUpdate = null;
56 57 }
57 - addUpdates( mCommitUpdate = new StoryUpdate( zTransaction, CurrentUserAccessor.get().getRequiredUser().freshIntoIfNotAlreadyIn( zTransaction ) ) );
58 + User zUser = CurrentUserAccessor.get().getRequiredUser().freshIntoIfNotAlreadyIn( zTransaction );
59 + addUpdates( mCommitUpdate = new StoryUpdate( zTransaction, zUser ) );
58 60 for ( String zChangedAttributeName : getChangedAttributeNames() )
59 61 {
60 62 AttributeAccessorSCD<Story> zACD = getAccessorSCDrequired( zChangedAttributeName );
61 63 if ( zACD.isPersisted() )
62 64 {
63 - String zName = zACD.getName();
64 - String zOldValue = UtilsCommon.toString( getOriginalValueFor( zName ) );
65 - mCommitUpdate.addChanges( new StoryChange( zTransaction, zName, zOldValue ) );
65 + if ( zACD == CD_Priority )
66 + {
67 + setPriorityLastChangedBy( zUser.getFullName() );
68 + }
69 + if ( zACD != CD_PriorityLastChangedBy )
70 + {
71 + String zName = zACD.getName();
72 + String zOldValue = UtilsCommon.toString( getOriginalValueFor( zName ) );
73 + mCommitUpdate.addChanges( new StoryChange( zTransaction, zName, zOldValue ) );
74 + }
66 75 }
67 76 }
68 77 }
69 78 return super.aboutToCommit( pTransactionTimestamp );
70 79 }
71 80
81 + private boolean notJustPriorityLastChangedBy()
82 + {
83 + int changes = numberOfAttributeChanged();
84 + return (changes > 1) || ((changes == 1) && !isAttributeChanged( CD_PriorityLastChangedBy ));
85 + }
86 +
72 87 private GenericReference<String> mChanges = null;
73 88
74 89 @Override
  @@ -96,4 +111,11 @@
96 111 }
97 112 return sb.toString();
98 113 }
114 +
115 + public static WhereClause getLimitToCurrentRestrictedResource()
116 + {
117 + // Add filter to where clause to only select based on RestrictedResource.
118 + RestrictedResource zRestrictedResource = CurrentRestrictedResourceAccessor.get().getRequiredRestrictedResource();
119 + return WhereClauseFactory.INSTANCE.isEqual( CD_RestrictedResource, zRestrictedResource );
120 + }
99 121 }