فهرست منبع

Initial Commit

Enterprise76 1 سال پیش
کامیت
2e14042421
2فایلهای تغییر یافته به همراه113 افزوده شده و 0 حذف شده
  1. 109 0
      Paycheck_Processor.sh
  2. 4 0
      Paycheck_Processor.txt

+ 109 - 0
Paycheck_Processor.sh

@@ -0,0 +1,109 @@
+#! /bin/bash
+
+###
+#This script is designed to take a batch file from WorkDay which contains multiple PDFs of paychecks
+#and convert it into individual PDF files with correct filenames.
+#Navigate to the directory of your destination, and call this script with the argument of the batch file.
+#This script will:
+#- Break apart the batch file to multiple incorrectly named files
+#- Read each file to obtain the Paycheck Date
+#- Rename each file to Payslip-[DATE_WITH_UNDERSCRORES].pdf
+#
+#The script works by reading the pdf and finding the last line number containing the text "Check Date".
+#It then reads the value of the next line, which should be the check date with slashes.
+#The script then replaces slashes with underscores per the current convention.
+#
+#If this script ever breaks, it will most likely be a change in paycheck format and thus a failure
+#to find the 'Check Date' field correctly.
+###
+
+
+func_help() {
+  echo ""
+  echo "DESCRIPTION: Takes large file containing multiple paystubs and breaks it into individual pdf files correctly named."
+  echo ""
+  echo "USAGE: $0 [FILENAME]"
+  echo ""
+}
+
+func_paydate() {
+
+  text=$(pdftotext $1 -)
+
+  #echo $text
+
+  linenum=$(pdftotext $1 - | grep -n "Check Date" | tail -n 1 | cut -d: -f1)
+
+  #echo $linenum
+
+  ((linenum=linenum+1))
+
+  date=$(pdftotext $1 - | sed -n "${linenum}p")
+
+}
+
+
+func_rename() {
+
+  func_paydate $1
+
+  newname=Payslip-${date////_}.pdf
+
+#  echo "Renameing $1 to $newname"
+
+  mv $1 $newname
+
+}
+
+
+func_burst() {
+  echo "Bursting PDF into individual pages..."
+
+  pdftk $1 burst
+
+  echo "Cleaning up unused files..."
+
+  rm doc_data.txt
+}
+
+
+
+if [ $# -eq 0 ]; then
+  echo "No filename(s) supplied.  Exiting."
+  func_help
+  exit 1
+fi
+
+if ! [ -f "$1" ]; then
+  echo "Filename $1 does not exist. Exiting."
+  func_help
+  exit 1
+fi
+
+bulkfile=$1
+
+
+func_burst $bulkfile		## Break apart PDFs
+
+echo "Converting Filenames..."
+
+for f in *.pdf; do		## Loop through new files
+  func_rename "$f"		## Rename each file
+done
+
+
+## Get user input on weather to delete original bulk file
+
+read -n 1 -p "Delete original bulk file? y/n [Default yes]" del
+
+echo $del
+
+if [ $del == "y" ]; then
+  echo "Deleting file $1"
+  rm $bulkfile
+else
+  echo "Leaving file $1 in place."
+fi
+
+echo "Script complete.  Exiting."
+exit 0

+ 4 - 0
Paycheck_Processor.txt

@@ -0,0 +1,4 @@
+Future Ideas
+------------
+
+Based on the workings of the Paycheck Processor, why not parse the entire paycheck and import it into gnucash?