'CASHORDR - reports showing cash received, orders and invoices in chosen period.

external  vloadif() dpath fentrybox() chkdate() messbox() sch scw cpath findpopup()
external  PrintReport() remove() progress() Background() shopstring shoplist
external  messboxwait() vunloadif()
external   X_path _SWIP_Crystal() Xreppath

public    ptstr $title $itemtype mthname $stktype
public    $shop_name $shop $key briefmonth end_date strt_date

global    x Date() $init_title m0 m1 m2 y0 y1 i $ch_branch $init_branch
global	PeriodCash() PeriodOrders() PeriodSales()


MAIN
single-step off
	Background()
  	file unload all
  	x = Date()
  	if x = -1
		Background()
	     file unload all
    		exit main
  	end if

 	PeriodCash()     ' show keybox() listing each shop (& ALL)

  	PeriodOrders()

	PeriodSales()

   	Background()

   	file unload all

END MAIN


FUNCTION Date()
local y mth ld last_m_e
	strt_date="01"|right(date2(days(today)-30),8)		' message "strt_date) is:"&str(strt_date)
  	while true
    		x = fentrybox(" Enter START Date for 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

  		mth = right(date2(strt_date),7)
  		for ld = 31 to 28 step -1
    			last_m_e = str(ld)|"/"|mth         'message "last_m_e is:"&str(last_m_e)
    			if chkdate(last_m_e,1) = -1
      			continue for
    			else
      			exit for
    			end if
  		end for

 		end_date=last_m_e

		mthname=monthname(strt_date)

		x = fentrybox(" Enter END Date for 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 PeriodCash()     ' show keybox() listing each shop (& ALL)
local br_dir repdate cashrep

  	vloadif(dpath|"cshrcvd1.vw")
    	progress(15,10," Please wait ... preparing report ",0)
 	data query execute "totcash4.dfq" index "preplst2"
 ' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
 ' days([Date_Of_Receipt])>=days(strt_date)
 ' and
 ' days([Date_Of_Receipt])<=days(end_date)
 ' and
 ' not (deleted)
 ' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
	if cerror
		messboxwait(" No cash received in this period ",0,0,1)
		return (-1)
	end if
    	order sort execute dictionary "totcash.dfs" index "totcash.idx"

    	vunloadif("X_cshrcd.vws")
    	remove(X_path|"X_cshrcd.*")
    	data query execute "not_del.dfq" Smart4 X_path|"X_cshrcd" fields "[Customer_Code|Br_KA]"
    	vunloadif("X_cshrcd.vws")
    	_SWIP_Crystal(Xreppath|"perdcsh1","S",0,1,"") ' draft report

    	vunloadif("cshrcvd1.vw")

END FUNCTION ' PeriodCash()


FUNCTION ReturnToMenu()
  screen clear box 1 1 sch scw 0 0 no-border
  repaint off
  file unload all
  transfer cpath|"pm_menu.psl" in-memory
END FUNCTION ' ReturnToMenu()



FUNCTION PeriodSales()     ' show keybox() listing each shop (& ALL)
local br_dir repdate cashrep

  	vloadif(dpath|"sal_rep3.vw")
    	progress(15,10," Please wait ... preparing report ",0)
 	data query execute "totsales.dfq" index "preplst2"
 ' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
 ' days([Invoice_Date])>=days(strt_date)
 ' and
 ' days([Invoice_Date])<=days(end_date)
 ' and
 ' not (deleted)
 ' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
	if cerror
		messboxwait(" No orders invoiced in this period ",0,0,1)
		return (-1)
	end if

  	vunloadif("X_mth_s.vws")
  	remove(X_path|"X_mth_s.*")
  	data query execute "not_del.dfq" Smart4 X_path|"X_mth_s" fields\
  "[Inv_Nr;Job_Nr;Invoice_Date;CustOrd_Name;Delivery_Address_1;Net_Invoice;shop;Date_To;SalesAnalysis]"

  	_SWIP_Crystal(Xreppath|"perdsal1","P",0,1,"")
  	vunloadif("sal_rep3.vw")

END FUNCTION ' PeriodSales()


FUNCTION PeriodOrders()     ' show keybox() listing each shop (& ALL)
local br_dir repdate cashrep

  	vloadif(dpath|"ord_rep1.vw")
  	order change key "[Var_Nr]"
    	progress(15,10," Please wait ... preparing report ",0)

 	data query execute "totordrs.dfq" index "preplst2"
 ' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
 ' days([Date])>=days(strt_date)
 ' and
 ' days([Date])<=days(end_date)
 ' and
 ' not (deleted)
 ' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
	if cerror
		messboxwait(" No orders received in this period ",0,0,1)
		return (-1)
	end if

  	vunloadif("X_mth_o.vws")
  	remove(X_path|"X_mth_o.*")

  	data query execute "not_del.dfq" Smart4 X_path|"X_mth_o" fields "[Var_Nr;Date;CustOrd_Name;Amount_Gross;shop;Date_To;SalesAnalysis]"

  	_SWIP_Crystal(Xreppath|"perdord1","S",0,1,"")

  	vunloadif("ord_rep1.vw")

END FUNCTION ' PeriodOrders()

