'CARPLST1.PF3 - reports to show cross-tabbed summary of STOCK & BESPOKE carpet
'           requsn's for last 365 days

external  vloadif() dpath fentrybox() chkdate() messbox() sch scw cpath
external  PrintReport() remove() progress() Background() shopstring shoplist
external  messboxwait() vunloadif()
external  X_path _SWIP_Crystal() Xreppath

public    ptstr monthend0 monthend1 monthend2 $title $itemtype basemonth B_mth
public    $shop_name $shop $key briefmonth $hdr

global    x Date() $init_title m0 m1 m2 y0 y1 i
global    CalcMths() y2 PrepareTotalReport() p1 p2 p3 p4 p5 p6
global    PrepareShopReports() ProductMix()


MAIN
single-step off
  Background()
  file unload all
  x = Date()
  if x = -1
    screen clear box 1 1 sch scw 0 0 no-border
    repaint off
    file unload all
    exit main
  end if

  messboxwait(" This will select relevant requisitions within last 365 days ",0,0,1)

'   p2 = ""               ' p2 = title at top of choice popup ("LABEL")
'   p3 = 1                ' p3 = printer to be used (1=HPIII_QC; 2=GEN_EPSN etc)
'   p4 = 1                ' p4 = printer port to use (1,2 etc - network set to use 2=LASER; 3=LABEL)
'   p5 = 1                ' p5 = choose VIEW/PRINT 1=PRINT; 2=VIEW; 3=CHOOSE
'   p6 = 1                ' p6 = nr of copies

  progress(15,10," Removing old files ",0)

  remove("prod_mix.vws")
  remove("prod_mix.db")

  remove("SSA_CARP.*")
  remove("SSA_ANCL.*")
  remove("SSA_TILE.*")
  remove("SSA_BESP.*")
  remove("SSA_BANC.*")
  remove("SSA_BTIL.*")
  remove("SSA_BVNL.*")
  remove("SSA_FTNG.*")

  CalcMths()

$hdr="Stock Carpet"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "C"
    PrepareTotalReport("Stock Carpet","SSA_CARP","SSA_STK")   ' message "Finished Stock report"
    file unload all
  end if

$hdr="Stock Ancillaries"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "A"
    PrepareTotalReport("Stock Ancillary","SSA_ANCL","SSA_ANC")   ' message "Finished Stock report"
    file unload all
  end if

$hdr="Stock Tile"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "S"
    PrepareTotalReport("Stock Tile","SSA_TILE","SSA_TIL")   ' message "Finished Stock report"
    file unload all
  end if

$hdr="Bespoke Carpet"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "B"
    PrepareTotalReport("Bespoke","SSA_BESP","SSA_BSP") ' message "Finished Bespoke report"
    file unload all
  end if

$hdr="Bespoke Ancillaries"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "J"
    PrepareTotalReport("Bespoke Ancillary","SSA_BANC","SSABANC")   ' message "Finished Stock report"
    file unload all
  end if

$hdr="Bespoke Tile"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "T"
    PrepareTotalReport("Bespoke Tile","SSA_BTIL","SSABTIL")   ' message "Finished Stock report"
    file unload all
  end if

$hdr="Bespoke Vinyl"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "W"
    PrepareTotalReport("Bespoke Vinyl","SSA_BVNL","SSABVNL")   ' message "Finished Stock report"
    file unload all
  end if

$hdr="Fitting Analysis"
  messbox(" Prepare"&$hdr&"Usage Report? (y/n) ",1,1,1)
  if ptstr == "y"
    $itemtype = "F"
    PrepareTotalReport("Fitting Cost","SSA_FTNG","SSA_FTG")   ' message "Finished Stock report"
    file unload all
  end if

  messbox(" Prepare Product Mix Analysis? (y/n) ",1,1,1)
  if ptstr == "y"
    ProductMix()
    file unload all
  end if

  messbox(" Prepare individual reports for shops? (y/n) ",1,1,1)
  if ptstr == "y"
    for i = 1 to ((len(shoplist)+1)/2)
      remove("SSA_BESP.*")
      remove("SSA_CARP.*")
      remove("SSA_TILE.*")
      remove("SSA_ANCL.*")
      remove("SSABANCL.*")
      remove("SSABTILE.*")
      remove("SSABVYNL.*")

      $shop_name = group(shopstring,i)
      $shop      = group(shoplist,i)

      progress(15,10," Preparing"&$shop_name&"Stock Sales Analysis Report ",0)
      $itemtype = "C"                  'Stock Carpets
      PrepareShopReports("Stock Carpet","SSA_CARP","SSA_STK")   ' message "Finished Stock report"
      file unload all

      progress(15,10," Preparing"&$shop_name&"Ancillary Sales Analysis Report ",0)
      $itemtype = "A"                  'Stock Ancillaries
      PrepareShopReports("Stock Ancillary","SSA_ANCL","SSA_ANC")   ' message "Finished Stock report"

      progress(15,10," Preparing"&$shop_name&"Stock Sales Analysis Report - Tiles ",0)
      $itemtype = "S"                  'Stock Tiles
      PrepareShopReports("Stock Tile","SSA_TILE","SSA_TIL")   ' message "Finished Stock report"
      file unload all

      progress(15,10," Preparing"&$shop_name&"Bespoke Sales Analysis Report ",0)
      $itemtype = "B"                  'Bespoke Carpets
      PrepareShopReports("Bespoke Carpet","SSA_BESP","SSA_BSP") ' message "Finished Bespoke report"
      file unload all

      progress(15,10," Preparing"&$shop_name&"Bespoke Ancillary Analysis Report ",0)
      $itemtype = "J"                  'Bespoke Ancillaries
      PrepareShopReports("Bespoke Ancillary","SSABANCL","SSABANC")   ' message "Finished Stock report"

      progress(15,10," Preparing"&$shop_name&"Stock Sales Analysis Report - Tiles ",0)
      $itemtype = "T"                  'Bespoke Tiles
      PrepareShopReports("Bespoke Tile","SSABTILE","SSABTILE")   ' message "Finished Stock report"
      file unload all

      progress(15,10," Preparing"&$shop_name&"Stock Sales Analysis Report - Tiles ",0)
      $itemtype = "W"                  'Bespoke Vinyls
      PrepareShopReports("Bespoke Vinyl","SSABVYNL","SSABVYNL")   ' message "Finished Stock report"
      file unload all

    end for
  end if
  Background()
  file unload all
END MAIN


FUNCTION Date()
local y
  while true
    monthend0 = right(addmonths(today,-1),7)
    x = fentrybox(" Prepare Stock Sales Analysis reports for 3 months to ",7,"*2#\/*4#",monthend0)
    if x = 0
      monthend0 = ptstr
      basemonth = "01/"|ptstr          'message "basemonth is:"&str(basemonth)
      x = chkdate(basemonth,1)
      if x = 0
        y = len(date3(basemonth))
        y = y - 8
        briefmonth = monthname(basemonth)|"ÿ"|str(year(basemonth))
'         $title = $init_title&"Requisitions (by shop) in sq metres for 3 months to"&briefmonth
'         lock system $title             'message "$title) is:"&str($title)
        return (0)
      else
        messbox(" Incorrect date - re-enter ",0,0,1)
      end if
    else
      return (-1)
    end if
  end while
END FUNCTION 'Date()


FUNCTION CalcMths()
  monthend1 = right(addmonths(basemonth,-1),7)
  monthend2 = right(addmonths(basemonth,-2),7)
  B_mth     = monthname(basemonth)&str(year(basemonth))   'message "B_mth) is:"&str(B_mth)
END FUNCTION 'CalcMths()


FUNCTION PrepareTotalReport($hdr,$datafile,$prnfile)
'   PrepareTotalReport("Stock Carpet","SSA_CARP","SSA_STK")   ' message "Finished Stock report"
' message "$hdr) is:"&str($hdr)
  vloadif(dpath|"carplist.vw")
  order change key "[Item_Type]"
  progress(15,10," Please wait .... finding requisitions ",0)
  data query execute "carplst1.dfq" index "cl1"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' ³ [Item_Type]=$itemtype
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  if cerror
    messbox(" No requisitions for this period ",0,0,1)
    return (1)
  end if
  progress(15,10," Please wait .... finding requisitions ",0)
  data query execute "carplst2.dfq" index "cl2"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
'   [SalesAnalysis] = "P"
'   or
'   [SalesAnalysis] = "F"
'   or
'   [SalesAnalysis] = "R"
'   or
'   [SalesAnalysis] = "S"
'   or
'   [SalesAnalysis] = "W"
'   or
'   [SalesAnalysis] = "T"
'   or
'   [SalesAnalysis] = "X"
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  if cerror
    messbox(" No requisitions for this period ",0,0,1)
    return (1)
  end if

'   data query execute "carplst4.dfq" index "carplist"
' ' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' '   [DateAbbrv] = monthend0
' '   or [DateAbbrv] = monthend1
' '   or [DateAbbrv] = monthend2
' ' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
'   if cerror
'     messbox(" No requisitions for this period ",0,0,1)
'     return (1)
'   end if
  data query execute "carplst9.dfq" index "carplist"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' days([Date_Requisitioned])>=(days(today)-365)
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  if cerror
    messbox(" No requisitions for this period ",0,0,1)
    return (1)
  end if

  remove(X_path|"X_crplst.*")
  remove(X_path|"crplst_A.*")
  data query execute "not_del.dfq" Smart4 X_path|"X_crplst" fields "[Date_Requisitioned|Cost]"
'   file export 3-dbase "[Date_Requisitioned|Cost]" file "crplst_A"

  messboxwait(" Print Report in Crystal now ",0,0,1)
'
'   _SWIP_Crystal(Xreppath|"carplst1","P",0,1,"")

'   progress(15,10," Please wait .... preparing cross-tab report ",0)
'   data cross-tab execute "carplst2.dfw" data-file $datafile
'   if $itemtype<>"A"
'     data query execute "over_1m.dfq" index "over_20m.idx"
' ' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' '   [F0002] > 20
' ' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
'   end if
'   order sort now dictionary "cl3" fields "[F0005]" descending ' CURRENT month
'   $title = $hdr&"Requisitions (by shop) for 12 months to"&briefmonth
'
  vunloadif("X_crplst.vws")
'   ClearHardSpaces()
'   data query execute "not_del.dfq" data-file X_path|"X_crplst" fields\
'   "[Var_Nr;Date;CustOrd_Name;Amount_Gross;shop;Date_To;Nr_Orders;Avg_Order;Tot_Order_Net;Tot_Order_Gross]"
'   _SWIP_Crystal(Xreppath|"$inv_1","P",0,1,"")
'   _SWIP_Crystal(Xreppath|"$inv_1","EP",0,1,invpath|$nextinvnr|".pdf")

'   p1 = $prnfile|"A.dfr"                  'message "p1) is:"&str(p1)
'   PrintReport(p1,p2,p3,p4,p5,p6)
END FUNCTION ' PrepareTotalReport()


FUNCTION PrepareShopReports($hdr,$datafile,$prnfile)
  vloadif(dpath|"carplist.vw")
  order change key "[Item_Type]"
  data query execute "carplst1" index "cl1"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' ³ [Item_Type]=$itemtype and not (deleted)
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  if cerror
    messbox(" No requisitions for this itemtype ",0,0,1)
    return (1)
  end if
  data query execute "carplst8.dfq" index "cl2"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
'   [SalesAnalysis]=$shop
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  if cerror
    messbox(" No requisitions for this period ",0,0,1)
    return (1)
  end if
  data query execute "carplst4" index "carplist"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
'   [DateAbbrv] = monthend0
'   or [DateAbbrv] = monthend1
'   or [DateAbbrv] = monthend2
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  if cerror
    messbox(" No requisitions for this period ",0,0,1)
    return (1)
  end if
  data cross-tab execute "carplst2.dfw" Smart4 $datafile
  if $itemtype<>"A"
    data query execute "over_20m.dfq" index "over_20m.idx"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
'   [F0002] > 20
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  end if
  order sort now dictionary "cl3" fields "[F0005]" descending ' CURRENT month
  $title = $shop_name&$hdr&"Requisitions for 3 months to"&briefmonth
' message "$prnfile is:"&str($prnfile)
  p1 = $prnfile|"S.dfr"                  'message "p1) is:"&str(p1)
messboxwait(" Shop Reports rem'd out - L298 ",0,0,1)
'  PrintReport(p1,p2,p3,p4,p5,p6)
END FUNCTION ' PrepareShopReports()


FUNCTION ProductMix()
  execute "prod_mix.rf3" in-memory
  repaint off
  file unload all
END FUNCTION ' ProductMix()


'   remove(X_path|"X_mth_o.*")
'
'   vunloadif("X_inv_a.vws")
'   ClearHardSpaces()
'   data query execute "not_del.dfq" Smart4 X_path|"X_mth_o" fields\
'   "[Var_Nr;Date;CustOrd_Name;Amount_Gross;shop;Date_To;Nr_Orders;Avg_Order;Tot_Order_Net;Tot_Order_Gross]"
'   _SWIP_Crystal(Xreppath|"$inv_1","P",0,1,"")
'   _SWIP_Crystal(Xreppath|"$inv_1","EP",0,1,invpath|$nextinvnr|".pdf")
'

