Skip to Content
Former Member
Nov 08, 2007 at 08:35 PM

Updating service contract line item's end date



I am trying to extend the end date on a line item in a service contract via the DI and it is giving me the following error: 'Item's end date cannot be greater than contract's end date' and I don't understand why.

I retrieve the service contract object, change the header end date then find the line item I need, update it with the same end date and then issue call the SC update method. Here's my code:

             NewStartDate = LineEndDate
             'calculate new end date & extend service contract
             NewEndDate = NewStartDate.AddYears(Warranty_Duration)

            'never make the contract end date earlier than it had been
            SC.EndDate = IIf(NewEndDate > SC.EndDate, _
                                                         NewEndDate, _

            'update service contract detail with new end date
             If NewEndDate > LineEndDate Then
                 SC.Lines.EndDate = NewEndDate
             End If

             If SC.Update() <> 0 Then
                rs.RtnCode = -1
                rs.RtnMessage = B1Comp.GetLastErrorDescription()
             End If

I did see something in the di help that mentions that B1 calcs an end date based on the "duration of coverage" field but I don't think I could use that because I might only change the end date for one line item.

BTW I can do this in the application with no problem.

Thanks in advance for any assistance.