#!/bin/sh
#] 
#] *********************
#] $ bash "$d_bin"'bank statement convert.sh' 
# www.BillHowell.ca  13Oct2023 initial 
# view in text editor, using constant-width font (eg courier), tabWidth = 3
# 08Jul2024 changed HSBC -> RB, Tang not yet adapted from others


# see "$d_PROJECTS"'Investments/0_banking notes.txt'
# see "$d_PROJECTS"'Forms/HELP/temp-CF.txt'  for instructions
#24************************24




#24************************24
# List of operators, generated with :
# $ grep  "^#]"  "$d_bin"'bank statement convert.sh' |  sed "s/^#\]/  /" 

#




#08********08
# Setup 

# from 'strings.sh', just putting it here 
chr_tab="	"
chr_apo="'"
source  "$d_bin""fileops.sh"

	dConn1="$d_Midas"'Investments/Conn1/z_historic/'
	d_PayP="$d_Midas"'Investments/PayPal/z_historic/'
	d___RB="$d_Midas"'Investments/RB/z_historic/'
	d_Tang="$d_Midas"'Investments/Tangerine/z_historic/'
	d___TD="$d_Midas"'Investments/TD/z_historic/'


#08********08
# code 


#] pCsv_to_pResult()  - generic conversion where date of format 06/18/2024
#]    when paste with Ctrl-v, set detect special numbers, uncheck formulae
#]    to fix date expressed as text, copy to an empty column paste as datevalue

	pCsv_to_pResult()
{ 
	d_work="$1"
	pCsv="$2"
	sedExpr="$3"
	tacFlag="$4"
	#	echo "sedExpr= $sedExpr"

	fNam=$( pth_get_fnmNoExt  "$pCsv" )
	pOldUp="$d_temp"'pCsv old first.txt'
	pCsvTp="$d_temp"'pResult temp.txt'
	pTrans="$d_temp"'pTransaction temp.txt'
	pReslt="$d_work$fNam converted.txt"

	p_mthNamL="$d_bin"'monthNameL- mmm.txt'

	if  [ -f  "$pReslt" ]; then  rm  "$pReslt";  fi
	
	if  [ "$tacFlag" == 1 ]; then 
		tac  "$pCsv"  >"$pOldUp"
	else
		cp   "$pCsv"   "$pOldUp"
	fi

	sed  "$sedExpr"  "$pOldUp"  >"$pCsvTp"

	while IFS='' read -u 9 strTrans; do
		echo  "$strTrans"  |  sed  's|\x9|\n|g'  >"$pTrans"
		#	echo  "strTrans= $strTrans"
		exec 8<"$pTrans" 
		read -u 8 numDay
		read -u 8 numMth
		read -u 8 numYer
		read -u 8 comment
		read -u 8 debittt
		read -u 8 creditt
		read -u 8 balance
		# transform variables
		mthNam=$( sed  -n $numMth'p'  "$p_mthNamL" )
		debitSign=$( echo "$debittt"   |  sed  's|\(.\).*|\1|' )
		#	echo  "debitSign= $debitSign"
		if  [ "$debitSign" ==  '-' ]; then 
			debittt=$( echo "$debittt"  |  sed  's|.\(.*\)|\1|' ) 
		else
			creditt="$debittt"
			debittt=''
		fi
		#close 8
		echo >>"$pReslt"  "$numDay-$mthNam-$numYer	$comment	$debittt	$creditt	$balance"
	done 9<"$pCsvTp"
}  



#] pCsv_convertConn1_pResult(pCsv)  - translate csv to useable txt for copy-special paste
#]    15Aug2024 NOT ADAPTED - must change sedExpr!!!

	pCsv_convertConn1_pResult()
{
	pCsv="$1"
	d_work="$d_Midas"'Investments/RB/z_historic/'
	 sedExpr='s|.*["][,]["]\([A-Za-z]\{3\}\) \([0-9]\{2\}\)[,] \([0-9]\{4\}\)["][,]["]\(.*\)["][,]["]\([-]*\)\$\([0-9.]*\)["][,]["]\([-]*\)\$\([0-9.]*\)["]|\2\t\1\t\3\t\4\t\5\6\t\t\7\8|'  
	#sedExpr='s|.*["][,]["]\([A-Za-z]\{3\}\) \([0-9]\{2\}\)[,] \([0-9]\{4\}\)["][,]["]\(.*\)["][,]["]|\2\t\1\t\3\t\4\t|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  1  
} 


#] pCsv_convertPayPal_pResult(pCsv)  - translate csv to useable txt for copy-special paste
#]    15Aug2024 NOT ADAPTED - must change sedExpr!!!

	pCsv_convertPayPal_pResult()
{
	pCsv="$1"
	d_work="$d_Midas"'Investments/RB/z_historic/'
	sedExpr= 's|.*[,].*[,]\([0-9]*\)\/\([0-9]*\)\/\([0-9]*\)[,][,]["]\(.*\)["][,]["]\(.*\)["][,]\([-0-9.]*\)[,]\([-0-9.]*\)[,]\([-0-9.]*\)|\2\t\1\t\3\t\5\t\6\t\7\t\8|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  0  
} 


#] pCsv_convertRBchq_pResult(pCsv)  - translate csv to useable txt for copy-special paste

	pCsv_convertRBchq_pResult()
{
	pCsv="$1"
	d_work="$d_Midas"'Investments/RB/z_historic/'
	sedExpr= 's|.*[,].*[,]\([0-9]*\)\/\([0-9]*\)\/\([0-9]*\)[,][,]["]\(.*\)["][,]["]\(.*\)["][,]\([-0-9.]*\)[,]\([-0-9.]*\)[,]\([-0-9.]*\)|\2\t\1\t\3\t\5\t\6\t\7\t\8|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  0  
} 


#] pCsv_convertRBmc_pResult(pCsv)  - translate csv to useable txt for copy-special paste

	pCsv_convertRBmc_pResult()
{
	pCsv="$1"
	d_work="$d_Midas"'Investments/RB/z_historic/'
	sedExpr= 's|.*[,].*[,]\([0-9]*\)\/\([0-9]*\)\/\([0-9]*\)[,][,]["]\(.*\)["][,]["]*\(.*\)["]*[,]\([-0-9.]*\)[,]\([-0-9.]*\)[,]\([-0-9.]*\)|\2\t\1\t\3\t\4, \5\t\6\t\7\t\8|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  0  
}  



#] pCsv_convertTang_pResult(pCsv)  - translate csv to useable txt for copy-special paste
#]    15Aug2024 NOT ADAPTED - must change sedExpr!!!

	pCsv_convertTang_pResult()
{
	pCsv="$1"
	d_work="$d_Midas"'Investments/Tangerine/z_historic/'
	sedExpr= 's|.*[,]["][A-Za-z]\+ [0-9]\+[,]\([0-9]\{4\}\)["][,]\(.*\)["][,]["]\(.*\)["]|\2\t\1\t\3\t\4, \5\t\6|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  0  
} 


#] pCsv_convertTDchq_pResult(pCsv)  - translate csv to useable txt for copy-special paste
# 08Jul2024 changed due to txt format, only date has to be fixed?

	pCsv_convertTDchq_pResult()
{
	pCsv="$1"
	d_work="$d___TD"
	sedExpr='s|\([0-9]*\)\/\([0-9]*\)\/\([0-9]*\)[,]\(.*\)[,]\([-0-9.]*\)[,]\([-0-9.]*\)[,]\([-0-9.]*\)|\2\t\1\t\3\t\4\t\5\t\6\t\7|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  0  
} 


#] pCsv_convertTDvis_pResult(pCsv)  - translate csv to useable txt for copy-special paste
# don't need to tac pReslt - already done by cat expression (see end of this file)

	pCsv_convertTDvis_pResult()
{
	pCsv="$1"
	d_work="$d_Midas"'Investments/TD/z_historic/'
	#sedExpr='s|\(.*\) \(.*\)\, \(.*\)\(\x9.*\x9.*\x9.*\x9.*\)|\2\t\1\t\3\4|g;s|||'
	sedExpr='s|\([0-9]*\)\/\([0-9]*\)\/\([0-9]*\)[,]\(.*\)[,]\([-0-9.]*\)[,]\([-0-9.]*\)[,]\([-0-9.]*\)|\2\t\1\t\3\t\4\t\5\t\6\t\7|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  1  
} 


#] pCsv_convertTDLOC_pResult(pCsv)  - translate csv to useable txt for copy-special paste
#]    15Aug2024 NOT ADAPTED - must change sedExpr!!!  tac to reverse file?

	pCsv_convertTDLOC_pResult()
{
	pCsv="$1"
	d_work="$d___TD"
	sedExpr='s|\,["]*\([-0-9]*\)[,]*\([0-9.]*\)["]*\,["]*\([-0-9]*\)[,]*\([0-9.]*\)["]*|,\1\2,\3\4|'

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  0  
} 


#] pCsv_convertTDSav_pResult(pCsv)  - translate csv to useable txt for copy-special paste
#]    15Aug2024 NOT ADAPTED - must change sedExpr!!!

	pCsv_convertTDSav_pResult()
{
	pCsv="$1"
	d_work="$d___TD"
	sed  's|\,["]*\([-0-9]*\)[,]*\([0-9.]*\)["]*[,]["]*\([-0-9]*\)[,]*\([0-9.]*\)["]*|,\1\2,\3\4|'  

	pCsv_to_pResult  "$d_work"  "$pCsv"  "$sedExpr"  0  
} 



# 24************************24
# OLD runs

#	pCsv_convertTDchq_pResult			"$d___TD"'231015 TD chq 28Feb-15Oct2023.csv'
#	pCsv_convertTDchq_pResult			"$d___TD"'240327 TD chq 01Oct2023-27Mar2024.txt'
#	pCsv_convertTDvis_pResult			"$d___TD"'240327 TD vis 01Oct2023-27Mar2024.txt'




# 24************************24
# run 

# +-----+
# RB accounts 

#	pCsv_convertRBchq_pResult	"$d___RB"'231013 HSBC chequing 13Apr-13Oct2023.csv'
#	pCsv_convertRBchq_pResult	"$d___RB"'240815 RB chq.txt'

#	pCsv_convertRBmc_pResult	"$d___RB"'231013 HSBC mastercard 13Apr-13Oct2023.csv'
#	pCsv_convertRBmc_pResult	"$d___RB"'240815 RB mc.txt'


# +-----+
# TD accounts 

# TD ePremium savings : not using for now, just copy-paste to : 
#	 "$d_PROJECTS"'Investments/0_banking notes.txt' 

#	pCsv_convertTDchq_pResult	"$d___TD"'240708 TD chq 26Mar2024-08Jul2024.txt'
#	pCsv_convertTDchq_pResult	"$d___TD"'240815 TD chq 15Jun-15Aug2024.txt'

#	pCsv_convertTDvis_pResult	"$d___TD"'240708 TD vis 17Dec2023-15Jun2024.txt'
#	pCsv_convertTDvis_pResult	"$d___TD"'240815 TD vis 15Jun-15Aug2024.txt'

#	pCsv_convertTDSav_pResult	"$d___TD"'231015 TD sav 28Feb-15Oct2023.csv'
#	pCsv_convertTDLOC_pResult	"$d___TD"'231015 TD LOC 01Oct2022-15Oct2023.csv'


# +-----+
# Misc accounts 

#	pCsv_convertConn1_pResult	"$dConn1"'231013 Conn1 EStatement 23Jul-13Oct2023.csv'
	pCsv_convertConn1_pResult	"$dConn1"'240815 Conn1 chq 01Oct2023-15Aug2024.txt'

#	pCsv_convertPayPal_pResult	"$d_PayP"'240430 PayPal 01Jan2019-30Apr2024.txt'

#	pCsv_convertTang_pResult	 "$d_Tang"'231015 Tang 15Oct2018-15Oct2023.csv'




# $ bash  "$d_bin"'bank statement convert.sh'  


# enddoc
