How to update a field Part2

Hi All

Previous question
http://www.experts-exchange.com/Applications/Email/Lotus_Notes/Q_20789973.html

Ok now I want to subtract some numbers if a request is cancelled
Just a foot note
All fields are Number and Computed
If ApprovalStatus = Cancelled then note.TotalDaysOff(0) is reset to 0

      
      If Not doc Is Nothing Then
            doc.HolidaysAH = doc.HolidaysAH(0) - doc.TotalDaysOff(0)
            doc.RemainingAH = doc.RemainingCalc(0) +doc.TotalDaysOff(0)

            doc.ComputeWithForm True, False  
            doc.save True, False
      Else
            Msgbox "No leave document found for this employee"
      End If
      
The above does not work or works inconsitently
I think the best way would be to freate a temp variable grab values and then do the math what do you think

James
imjameswAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

p_parthaCommented:
Little bit confused...

when you are setting a value like totalsdaysoff
just set it like this

note.totaldaysoff = 0

also... what do u mean works inconsistently, when does it fail... it;s also better to use cint before doing the math.. something like this:
doc.HolidaysAH = cint(doc.HolidaysAH(0)) - cint(doc.TotalDaysOff(0))
         doc.RemainingAH = cint(doc.RemainingCalc(0)) +cint(doc.TotalDaysOff(0) )

Partha
0
HemanthaKumarCommented:
I am not sure if you have given me the correct fields, let me help you to organize it

If note.ApprovalStatus(0) = "Cancelled" then  ' Check this string value is same as that for cancel operation
       note.TotalDaysOff = 0     ' This will be set in the currently opened approval doc
' Get the leave doc handle to this currently selected employee..    
     If Not doc Is Nothing Then
          doc.HolidaysAH = doc.HolidaysAH(0) - doc.TotalDaysOff(0)
          doc.RemainingAH = doc.RemainingCalc(0) + doc.TotalDaysOff(0)
          doc.ComputeWithForm True, False  
          doc.save True, False
     Else
          Msgbox "No leave document found for this employee"
     End If
End If  ' ApprovalStatus Check

James clearly specify what are the results/error that you are getting so that it will facilitate me to give you proper guidance.

~Hemanth
0
imjameswAuthor Commented:
Hi Hemanth

I have it working with the following perhaps you could get more info from the code



If Not doc Is Nothing Then
            tmpHolidaysAH = doc.HolidaysAH(0) 'This is the number of days used
            tmpTotal = note.NewDaysTotal(0)    'This is the number of new days booked
            tmpNew = tmpHolidaysAH - tmpTotal  'This will reset the value removing the value that was added when approved
            doc.TotalDaysOffCalc = tmpNew 'This resets the Total days used
            
            tmpRemainingAH = doc.RemainingAH(0) ' This is the number of days remaining
            tmpRemain = tmpTotal + tmpRemainingAH ' This adds the number that was subtracted when the leave was approved
            doc.RemainingCalc = tmpRemain 'This resets the remainig days to what it was prior to the new leave being approved
            doc.RemainingAH = doc.RemaingCalc 'See above
            doc.ComputeWithForm True, False  
            doc.save True, False


Hope this  explains what I need the form to do

James
0
HemanthaKumarCommented:
I am not sure if I understood the calculation correct ... ultimately I came to this conclusion

      ' Assuming note is the current document handle
      ' doc is the leave document of the employee
      
      tmpHolidaysAH = doc.HolidaysAH(0) 'This is the number of days used
      
      If note.ApprovalStatus(0) = "Cancelled" Then  
            note.NewDaysTotal = 0    'This is the number of new days booked--- which will be 0 if it is not approved
      End If
      
      tmpTotal = note.NewDaysTotal(0)
      tmpNew = tmpHolidaysAH - tmpTotal  'This will reset the value removing the value that was added when approved
      tmpRemainingAH = doc.RemainingAH(0) ' This is the number of days remaining
      tmpRemain = tmpTotal + tmpRemainingAH ' This adds the number that was subtracted when the leave was approved
      doc.TotalDaysOffCalc = tmpNew 'This resets the Total days used      
      doc.RemainingCalc = tmpRemain 'This resets the remainig days to what it was prior to the new leave being approved
      doc.RemainingAH = doc.RemaingCalc 'See above
      doc.ComputeWithForm True, False  
      doc.save True, False
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
imjameswAuthor Commented:
That is correct

James
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Lotus IBM

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.