\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{bewerbung}
    [2015/07/14 v1.1 makros zum setzen der bewerbung]

% Macros for setting up your personal informations
\providecommand{\name}{}
\providecommand{\Name}[1]{\renewcommand{\name}{#1}}

\providecommand{\vorname}{}
\providecommand{\Vorname}[1]{\renewcommand{\vorname}{#1}}

% the optional argument indicates wether to print vor + nachname
% or nachname, vorname
\providecommand{\fullname}[1][n]{%
	\ifthenelse{\equal{#1}{n}}{%
		\vorname\xspace\name %
	}{%
		\name, \vorname %
	}%
}

\providecommand{\street}{}
\providecommand{\Street}[1]{\renewcommand{\street}{#1}}

\providecommand{\plz}{}
\providecommand{\Plz}[1]{\renewcommand{\plz}{#1}}

\providecommand{\stadt}{}
\providecommand{\Stadt}[1]{\renewcommand{\stadt}{#1}}

\providecommand{\anschrift}[1][n]{%
	\ifthenelse{\equal{#1}{n}}{%
		\street\\%
		\plz\xspace\stadt%
	}{%
		\street, \plz\xspace\stadt%
	}%
}

\providecommand{\meinBeruf}{}
\providecommand{\meinberuf}{\meinBeruf}
\providecommand{\MeinBeruf}[1]{\renewcommand{\meinBeruf}{#1}}

\providecommand{\gebDatum}{}
\providecommand{\GebDatum}[1]{\renewcommand{\gebDatum}{#1}}

\providecommand{\sta}{}
\providecommand{\Sta}[1]{\renewcommand{\sta}{#1}}

\providecommand{\email}{}
\providecommand{\EMail}[1]{\renewcommand{\email}{#1}}

\providecommand{\tel}{}
\providecommand{\Tel}[1]{\renewcommand{\tel}{#1}}

\providecommand{\mobile}{}
\providecommand{\Mobile}[1]{\renewcommand{\mobile}{#1}}

\ProvideDocumentCommand{\anhang}{o}{%
	\IfNoValueTF{#1}{%
		Curriculum Vitae.\anhangTmpFlat
	}{%
		\item Anschreiben
		\item Curriculum Vitae
		\anhangTmpList
	} %
}
\providecommand{\anhangTmpFlat}{}
\providecommand{\anhangTmpList}{}

\providecommand{\Anhang}[2]{%
	\renewcommand{\anhangTmpFlat}{\\ #1}
	\renewcommand{\anhangTmpList}{#2}
}


\providecommand{\todayOrt}{\stadt}
\providecommand{\TodayOrt}[1]{\renewcommand{\todayOrt}{#1}}
\providecommand{\todayTime}{\today}
\providecommand{\TodayTime}[1]{\renewcommand{\todayTime}{#1}}

\providecommand{\lebenslaufTitel}{Curriculum Vitae}
\providecommand{\LebenslaufTitel}[1]{%
	\renewcommand{\lebenslaufTitel}{#1}}

% Macros for setting up the information of the company 
\providecommand{\firma}{a}
\providecommand{\firmaAnrede}{a}
\providecommand{\firmaName}{a}
\providecommand{\firmaStreet}{a}
\providecommand{\firmaPlz}{a}
\providecommand{\firmaStadt}{a}

\providecommand{\beruf}{a}
\providecommand{\setzekomma}{,}

\providecommand{\bewerbungKW}{}
\providecommand{\BewerbungKW}[1]{%
	\renewcommand{\bewerbungKW}{#1}}%
\providecommand{\bewerbungDatum}{}
\providecommand{\BewerbungDatum}[1]{%
	\renewcommand{\bewerbungDatum}{#1}%
}

\providecommand{\bewerbungFirma}{}
\providecommand{\BewerbungFirma}[1]{%
	\renewcommand{\bewerbungFirma}{#1}%
}
\providecommand{\bewerbungFirmaAnrede}{}
\providecommand{\BewerbungFirmaAnrede}[1]{%
	\renewcommand{\bewerbungAnrede}{#1}%
}
\providecommand{\bewerbungFirmaName}{}
\providecommand{\BewerbungFirmaName}[1]{%
	\renewcommand{\bewerbungName}{#1}%
}
\providecommand{\bewerbungFirmaStr}{}
\providecommand{\BewerbungFirmaStr}[1]{%
	\renewcommand{\bewerbungFirmaStr}{#1}%
}
\providecommand{\bewerbungFirmaPlz}{}
\providecommand{\BewerbungFirmaPlz}[1]{%
	\renewcommand{\bewerbungPlz}{#1}%
}
\providecommand{\bewerbungFirmaOrt}{}
\providecommand{\BewerbungFirmaOrt}[1]{%
	\renewcommand{\bewerbungOrt}{#1}%
}

\providecommand{\bewerbungStelle}{}
\providecommand{\BewerbungStelle}[1]{%
	\renewcommand{\bewerbungStelle}{#1}%
}
\providecommand{\bewerbungRueckmeldung}{}
\providecommand{\BewerbungRueckmeldung}[1]{%
	\renewcommand{\bewerbungRueckmeldung}{#1}%
}
\providecommand{\bewerbungSonstiges}{}
\providecommand{\BewerbungSonstiges}[1]{%
	\renewcommand{\bewerbungSonstiges}{#1}%
}

\RequirePackage{datatool}

% Need to know which company you mean today
\providecommand{\id}{}
\providecommand{\ID}[1]{\renewcommand{\id}{#1}}
% How does the table of applications look like?
%  ID, KW, Datum, Firma, FirmaAnrede, FirmaName, Str, PLZ,
%  Ort, Stelle, Rueckmeldung, Sonstiges

% Get the information of the current company out of the table
\providecommand{\getBewerbung}[1][anschrift.csv]{
	\IfFileExists{#1}{%
		% load the table
		\DTLloaddb[ %
			]{anschrift}{#1} %
		% which id-format is used?
		%  plain             -> search for the exact match 
		%                       of id in the column ID
		%  noplain (default) -> get the row with number id 
		%                       (first one is 0)
		\ifahbewerbung@idPlain %
			\edtlgetrowforvalue{anschrift}{1}{\id} %
		\else %
			\dtlgetrow{anschrift}{\id} %
		\fi %
		\dtlgetentryfromcurrentrow{\bewerbungKW}{2}
		\dtlgetentryfromcurrentrow{\bewerbungDatum}{3}
		\dtlgetentryfromcurrentrow{\bewerbungFirma}{4}
		\dtlgetentryfromcurrentrow{\bewerbungFirmaAnrede}{5}
		\dtlgetentryfromcurrentrow{\bewerbungFirmaName}{6}
		\dtlgetentryfromcurrentrow{\bewerbungFirmaStr}{7}
		\dtlgetentryfromcurrentrow{\bewerbungFirmaPlz}{8}
		\dtlgetentryfromcurrentrow{\bewerbungFirmaOrt}{9}
		\dtlgetentryfromcurrentrow{\bewerbungStelle}{10}
		\dtlgetentryfromcurrentrow{\bewerbungRueckmeldung}{11}
		\dtlgetentryfromcurrentrow{\bewerbungSonstiges}{12}
	}{%
		\@latex@warning@no@line{Achtung die Datei #1 ist nicht lesbar.} %
	}%
}

% Change the komavars for komacv implementation of this project
\providecommand{\runKomaVar}{%
	\setkomavar{fromname}{\fullname} %
	\setkomavar{fromaddress}{\street\\\plz\xspace\stadt} %
	\setkomavar{fromphone}[\Telefon\enskip]{\tel} %
	\setkomavar{fromfax}[\Mobilefone\enskip]{\mobile} %
	\setkomavar{fromemail}[\Letter\enskip]{\email} %
	\setkomavar{signature}{\vorname\xspace\name} %
	\setkomavar{subject}{Bewerbung als \bewerbungStelle} %
	\renewcommand*{\raggedsignature}{} %
%\iffalse
%%	\renewcommand*{\title}{\}% PDF metadata
%\fi
	\renewcommand*{\firstname}{\vorname} %
	\renewcommand*{\familyname}{\name} %
%\iffalse
%%	\renewcommand*{\acadtitle}{}
%\fi
	\renewcommand*{\addressstreet}{\street} %
	\renewcommand*{\addresscity}{\plz\xspace\stadt} %
	\renewcommand*{\address}{\street\\\plz\xspace\stadt} %
	\renewcommand*{\phonenr}{\tel} %
%\iffalse
%%	\renewcommand*{\extrainfo}{Some extra info}
%\fi
} %

% Provide the right paper for a nice titlepage
\ProvideDocumentEnvironment{titlepage}{}{%
	\thispagestyle{empty} %
	\newgeometry{top=4cm,left=3cm,right=2.5cm,bottom=2cm} %
}{ %
	\clearpage %
	\restoregeometry %
} %

% This environment will make a nice letter to you company
\ProvideDocumentEnvironment{anschreiben}{oo}{%
	\begin{letter}{%
		\bewerbungFirma\\
		\bewerbungFirmaAnrede\xspace\bewerbungFirmaName\\
		\bewerbungFirmaStr\\
		\bewerbungFirmaPlz\xspace\bewerbungFirmaOrt
	} %
	\IfNoValueF{#2}{\enlargethispage{#2}} %
	\newcommand{\geehrt}{#1} %
	\ifthenelse{\equal{\bewerbungFirmaAnrede}{Frau}}{%
		\renewcommand{\geehrt}{geehrte}%
	}{}%
	\ifthenelse{\equal{\bewerbungFirmaAnrede}{Herr}}{%
		\renewcommand{\geehrt}{geehrter}%
	}{}%
		\opening{Sehr \geehrt\xspace %
			\bewerbungFirmaAnrede\xspace\bewerbungFirmaName, %
		}%
}{
		\closing{Mit freundlichen Gr\"u{\ss}en} %
		%\iffalse
		%%\signature{}
		%\fi
		\encl{%
			\anhang %
		} %
	\end{letter}
}

% This environment will produce a nice cv like komacv 
% but within the same document
\ProvideDocumentEnvironment{lebenslauf}{oo}{%
	\clearpage
	\newgeometry{top=2.5cm,left=3cm,right=2.5cm,bottom=3cm}
	\pagestyle{empty}
	\ifthenelse{\equal{#1}{none}}{\renewcommand{\@listitemsymbol}{}}{} %
	%\iffalse
	%%\clearscrheadfoot
	%%\ifoot{CV~\firstname~\familyname}
	%%\ofoot{n}
	%\fi
}{
	\vfill
	\begin{raggedright}
	\begin{tabular}{p{\textwidth}}
		\fullname\\
		\todayOrt, \todayTime
	\end{tabular}
	\end{raggedright}
	\IfNoValueF{#2}{%
		\newpage %
		#2 %
	} %
	\restoregeometry
}

% Make the entry of your personality in the cv-environment
\providecommand{\makePerson}{ %
		\section{Pers\"onliche Angaben} %
		\cvitem{Name}{\fullname} %
		\cvitem{Anschrift}{\anschrift[k]} %
		\cvitem{StA}{\sta} %
		\cvitem{Geburtsdatum}{\gebDatum} %
		%\iffalse
		%%\cvitem{Konfession}{}
		%%\cvitem{Familienstand}{}
		%\fi
		\cvitem{Beruf}{\meinBeruf} %
}

% Print a table with all your latest applications
\providecommand{\argetabelle}[1][anschrift.csv]{ %
	\IfFileExists{#1}{%
		% load the table
		\DTLloaddb{anschrift}{anschrift.csv} %

		% create a nice table environment for printing 
		% over more than one page
		\begin{longtable}{rrL{6cm}L{3cm}L{4cm}}
		  \toprule
   		\multicolumn{1}{l}{\textbf{KW}} & %
			\multicolumn{1}{l}{\textbf{Datum}} & \textbf{Arbeitgeber} & %
		   \textbf{Stelle} & \textbf{R\"uckmeldung} \\\midrule
   		\endfirsthead
	   \toprule
  	  \multicolumn{5}{r}{Fortsetzung\ldots}\\\toprule
   		\multicolumn{1}{l}{\textbf{KW}} & %
		 	\multicolumn{1}{l}{\textbf{Datum}} & \textbf{Arbeitgeber} & %
		   {Stelle} & \textbf{R\"uckmeldung} \\\midrule
   		\endhead
	   \midrule\multicolumn{5}{r}{%
			 Fortsetzung auf der n\"achsten Seite\ldots}\\\bottomrule
  	  \endfoot
    \bottomrule
		\endlastfoot
		% read the whole table-file and print it nicely into the table
		 \DTLforeach{anschrift}{%
			 \kw=KW,\datum=Datum,\firma=Firma,\firmaanrede=FirmaAnrede,%
			 \firmaname=FirmaName,\str=Str,\plz=PLZ,\ort=Ort,%
			 \stelle=Stelle,\rueckmeldung=Rueckmeldung}{%
			 \\
			 \kw & \datum & \firma\newline\firmaanrede\ \firmaname\ \str,%
			 \plz\ \ort & \stelle & \rueckmeldung \\\midrule} %
		\end{longtable}
	}{%
		\@latex@warning@no@line{Achtung die Datei #1 ist nicht lesbar.} %
	} %
}
%%\endinput
