'CARPLST3 - reports to show cross-tabbed summary of STOCK & BESPOKE carpet requsn's in chosen month
'		amended to create Crystal report for DG/Mthly Mgr mtg

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 $title $itemtype mthname
public    $shop_name $shop $key briefmonth end_date strt_date

global    x Date() $init_title m0 m1 m2 y0 y1 i
global    PrepareStockReport() PrepareBespokeReport()


MAIN
single-step off
' message "  Have you amended the header for new mth in XcptusgS and XcptusgB? "

	Background()
  	file unload all
  	x = Date()
  	if x = -1
		Background()
	     file unload all
    		exit main
  	end if

 	progress(15,10," Selecting reqns for Carpet usage reports for previous month ",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.*")

	vloadif(dpath|"carplist.vw")
  	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 "crplst10.dfq" index "carplist"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' days([Date_Requisitioned])>=days(strt_date)
' and
' days([Date_Requisitioned])<=days(end_date)
' and
' not (deleted)
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
'   	progress(15,10," Please wait .... preparing cross-tab report ",0)

  	messbox(" Prepare Stock Carpet Usage Report? (y/n) ",1,1,1)
  	if ptstr == "y"
		PrepareStockReport()   ' message "Finished Stock report"
    		file unload all
  	end if

  	messbox(" Prepare Bespoke Carpet Usage Report? (y/n) ",1,1,1)
  	if ptstr == "y"
		PrepareBespokeReport() ' message "Finished Bespoke report"
    		file unload all
  	end if

  	Background()
  	file unload all
END MAIN


FUNCTION Date()
local y
	strt_date="01"|right(date2(days(today)-60),8)		' message "strt_date) is:"&str(strt_date)
  	while true
    		x = fentrybox(" Enter START Date for Req'n Summary ",10,"##\/##\/####",strt_date)
    		if x = 0
      		strt_date = ptstr
      		if chkdate(strt_date,1) = -1
        			messbox(" Incorrect date - re-enter ",0,0,1)
        			continue while
      		end if
    		elseif x = -1
     		return (-1)
    		end if

		end_date=date2(days(strt_date)+28)
		mthname=monthname(strt_date)

		x = fentrybox(" Enter END Date for Req'n Summary ",10,"##\/##\/####",end_date)
    		if x = 0
      		end_date = ptstr
      		if chkdate(end_date,1) = -1
        			messbox(" Incorrect date - re-enter ",0,0,1)
        			continue while
      		end if
      		exit while
    		elseif x = -1
      		return (-1)
    		end if

  	end while
END FUNCTION 'Date()


FUNCTION PrepareStockReport()
	$itemtype = "C"
	vloadif(dpath|"carplist.vw")
 	order change index "carplist"
    	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
' repaint on
' repaint
' single-step on

	vunloadif("X_mthname.vws")
	remove(X_path|"X_mthname.*")
	data query execute "not_del.dfq" Smart4 X_path|"X_mthname" fields "[$mth]"

	vloadif(dpath|"carplist.vw")
	remove(X_path|"SSA_CARP.*")
	data cross-tab execute "carplst3.dfw" Smart4 X_path|"SSA_CARP"

' 	data query execute "over_1m.dfq" index "over_20m.idx"
' ' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
' ' [F0005] > .9
' ' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
	_SWIP_Crystal(Xreppath|"XcptusgS","S",0,1,"")

 	remove("E:\ALL_WORK\MRC\ACCOUNTS\Mgrs_mtg\Stock carpet usage.pdf")

     _SWIP_Crystal(Xreppath|"XcptusgS","EP",0,1,"E:\ALL_WORK\MRC\ACCOUNTS\Mgrs_mtg\Stock carpet usage.pdf")

' 	_SWIP_Crystal(Xreppath|"XcptusgS","EP",0,1,"C:\Stock carpet usage.pdf")
END FUNCTION ' PrepareStockReport()


FUNCTION PrepareBespokeReport()
	$itemtype = "B"
	vloadif(dpath|"carplist.vw")
 	order change index "carplist"
  	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

' repaint on
' repaint
' single-step on
'
'
' 	vunloadif("X_mthname.vws")
' 	remove(X_path|"X_mthname.*")
' 	data query execute "not_del.dfq" Smart4 X_path|"X_mthname" fields "[$mth]"

	vloadif(dpath|"carplist.vw")
	remove(X_path|"SSA_CARP.*")
' 	remove("C:\Bespoke carpet usage.pdf")
	data cross-tab execute "carplst3.dfw" Smart4 X_path|"SSA_CARP"
	data query execute "over_20.dfq" index "over_20m.idx"
' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
'   [F0002] > 20
' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
	_SWIP_Crystal(Xreppath|"XcptusgB","S",0,1,"")
 	remove("E:\ALL_WORK\MRC\ACCOUNTS\Mgrs_mtg\Bespoke carpet usage.pdf")
     _SWIP_Crystal(Xreppath|"XcptusgS","EP",0,1,"E:\ALL_WORK\MRC\ACCOUNTS\Mgrs_mtg\Bespoke carpet usage.pdf")
END FUNCTION ' PrepareBespokeReport()
