'ALTSLOTX - same as ALT_SLOT but no ReturnToMenu

external   vloadif() sch scw fentrybox() shopmask dpath messbox() cpath
external   exception() userid vunloadif() messboxwait() $menu progress()

public     ptstr jobnr $dayftr $orddate

global     x CheckJobNr() i #apptnr #date AlterSlots()


MAIN
single-step off
  screen clear box 1 1 sch scw 0 0 no-border
  repaint off
  file unload all
  quiet on
  error off
  while true
    x = CheckJobNr()                    ' find Cust_Ord & update - L495
    if x = -1
      exit while
    end if
    AlterSlots()
  end while

  screen clear box 1 1 sch scw 0 0 no-border
  repaint off
  file unload all
'   transfer cpath|"pm_menu.psl" in-memory

END MAIN


FUNCTION AlterSlots()
local cn #remslots #oldslots #newslots
' find Jobnr and nr of existing slots
  repaint off

  vloadif(dpath|"cust_ord.vws")
  order change key "[Job_Nr]"
  #oldslots = filelookup([Job_Nr],[Appt_Slots],jobnr) 'message "#oldslots is:"&str(#oldslots)
  if cerror
    messboxwait(" Job Nr not found ",0,0,1)
    return (1)
  end if
  #remslots = filelookup([Job_Nr],[Slots_Rem],jobnr) 'message "#remslots is:"&str(#remslots)
  if cerror
    messboxwait(" Job Nr not found ",0,0,1)
    return (1)
  end if
  while true
    x = fentrybox(" Alter APPT slots for"&jobnr&"from"&str(#oldslots)&"to: ",3,"{#{#{#}}}","")
    if x = -1
      return (1)
    end if
    #newslots = val(ptstr)
    if #newslots < #oldslots-#remslots
      messbox(" Cannot reduce below number already booked! ",0,0,1)
      continue while
    end if
    messbox(" Confirm"&str(#newslots)&"for"&jobnr|"? (y/n) ",1,1,1)
    if ptstr == "y"
      exit while
    else
      continue while
    end if
  end while

  order change key "[Job_Nr]"
  data find "[Job_Nr]" equal jobnr options ""
  if cerror                               '   if none - then return
    x = messbox(" Job Nr not found - confirm as"&jobnr|"? (y/n) - {Esc} to exit ",1,0,0)
  end if
  lock-record
    [Appt_Slots]=#newslots
    [Slots_Rem] = [Slots_Rem] + (#newslots-#oldslots)
  write-record
  vunloadif("cust_ord.vws")
  return (0)
END FUNCTION 'AlterSlots()


FUNCTION CheckJobNr()                   ' finds Job & updates Cust_Ord
  repaint off
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' ³ Find Job Nr                                                        ³
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  x = fentrybox(" Job Nr to alter Slots for or {Esc} for Menu ",6,shopmask,"")
  if x = -1
    return (-1)
  else
    jobnr = ptstr
  end if
END FUNCTION ' CheckJobNr()

