project BLF > class BStoredSearch > method CreateAndDeleteStoredSearches


Parameters


tStoredSearchesToCreateinput-outputtemp-table
tStoredSearchesToDeleteinputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method BCustomField.AdditionalUpdates


program code (program1/bstoredsearch.p)

assign oiReturnStatus           = -98
       vcStoredSearchesToDelete = ""
       viWarningStatus          = 0
       vlStart1                 = false.

<M-97 run ClearData  (output viFcReturnSuper (oiReturnStatus)) in BStoredSearch>

if viFcReturnSuper < 0
then do:
    assign oiReturnStatus = viFcReturnSuper.
    return.
end.

if viFcReturnSuper > 0 and
   viWarningStatus = 0
then assign viWarningStatus = viFcReturnSuper.

for each tStoredSearchesToDelete:
    assign vlStillInUse = false.

    if not vlStart1
    then do:
        <Q-76 run StoredSearchById  (Start) in BStoredSearch >
        assign vlStart1 = true.
    end.

    <Q-8 run StoredSearchById (all) (Read) (NoCache)
       (input ?, (CompanyId)
        input tStoredSearchesToDelete.tiStoredSearch_ID, (StoredSearchId)
        output dataset tqStoredSearchById) in BStoredSearch >

    for each tqStoredSearchById:
        if not can-do(tStoredSearchesToDelete.tcCustomFieldRowId, entry(2, tqStoredSearchById.tc_rowid))
        then do:
            assign vlStillInUse = true.
            leave.
        end.
    end.

    if not vlStillInUse
    then do:
        if vcStoredSearchesToDelete <> ""
        then assign vcStoredSearchesToDelete = vcStoredSearchesToDelete + chr(4).

        assign vcStoredSearchesToDelete = vcStoredSearchesToDelete + string(tStoredSearchesToDelete.tiStoredSearch_ID).
    end.
end.

if vlStart1
then do:
    <Q-23 run StoredSearchById  (Stop) in BStoredSearch >
end.

if vcStoredSearchesToDelete <> ""
then do:
    <M-72 run DataLoad
       (input  '' (icRowids), 
        input  vcStoredSearchesToDelete (icPkeys), 
        input  '' (icObjectIds), 
        input  '' (icFreeform), 
        input  false (ilKeepPrevious), 
        output viFcReturnSuper (oiReturnStatus)) in BStoredSearch>

    if viFcReturnSuper < 0
    then do:
        assign oiReturnStatus = viFcReturnSuper.
        return.
    end.

    if viFcReturnSuper > 0 and
       viWarningStatus = 0
    then assign viWarningStatus = viFcReturnSuper.

    for each tStoredSearch:
        assign tStoredSearch.tc_Status = "D".
    end.
end.

assign vlStart1 = false.

for each tStoredSearchesToCreate where
         tStoredSearchesToCreate.tiStoredSearch_ID = 0:
    find first tStoredSearch where
               tStoredSearch.StoredSearchLookupRef = tStoredSearchesToCreate.tcStoredSearchLookupRef and
               tStoredSearch.StoredSearchName      = tStoredSearchesToCreate.tcStoredSearchName      and
              (tStoredSearch.Role_ID               = 0                                               or
               tStoredSearch.Role_ID               = ?)                                              and
              (tStoredSearch.Usr_ID                = 0                                               or
               tStoredSearch.Usr_ID                = ?)
               no-error.

    if available tStoredSearch
    then do:
        assign tStoredSearchesToCreate.tiStoredSearch_ID = tStoredSearch.StoredSearch_ID.

        if tStoredSearch.tc_Status = "D"
        then assign tStoredSearch.tc_Status = "".

        next.
    end.

    if not vlStart1
    then do:
        <Q-47 run GetStoredSearch  (Start) in BStoredSearch >
        assign vlStart1 = true.
    end.

    <Q-19 run GetStoredSearch (all) (Read) (NoCache)
       (input tStoredSearchesToCreate.tcStoredSearchLookupRef, (Reference)
        input ?, (CompanyId)
        input ?, (RoleID)
        input ?, (UserID)
        input tStoredSearchesToCreate.tcStoredSearchName, (Name)
        output dataset tqGetStoredSearch) in BStoredSearch >

    find first tqGetStoredSearch where
               tqGetStoredSearch.tcStoredSearchLookupRef = tStoredSearchesToCreate.tcStoredSearchLookupRef and
               tqGetStoredSearch.tcStoredSearchName      = tStoredSearchesToCreate.tcStoredSearchName      and
              (tqGetStoredSearch.tiRole_ID               = 0                                               or
               tqGetStoredSearch.tiRole_ID               = ?)                                              and
              (tqGetStoredSearch.tiUsr_ID                = 0                                               or
               tqGetStoredSearch.tiUsr_ID                = ?)
               no-error.

    if available tqGetStoredSearch
    then do:
        assign tStoredSearchesToCreate.tiStoredSearch_ID = tqGetStoredSearch.tiStoredSearch_ID.
        next.
    end.

    <M-34 run AddDetailLine
       (input  'StoredSearch' (icTable), 
        input  '' (icParentRowid), 
        output viFcReturnSuper (oiReturnStatus)) in BStoredSearch>

    if viFcReturnSuper < 0
    then do:
        assign oiReturnStatus = viFcReturnSuper.
        return.
    end.

    if viFcReturnSuper > 0 and
       viWarningStatus = 0
    then assign viWarningStatus = viFcReturnSuper.

    assign tStoredSearch.StoredSearchLookupRef       = tStoredSearchesToCreate.tcStoredSearchLookupRef
           tStoredSearch.StoredSearchName            = tStoredSearchesToCreate.tcStoredSearchName
           tStoredSearchesToCreate.tiStoredSearch_ID = tStoredSearch.StoredSearch_ID.
end.

if vlStart1
then do:
    <Q-75 run GetStoredSearch  (Stop) in BStoredSearch >
end.

assign oiReturnStatus = viWarningStatus.