ERiC API-Referenz 43.3.2.0
Lade ...
Suche ...
Keine Treffer
erictoolkit.h
gehe zur Dokumentation dieser Datei
1/*
2 * Bayerisches Landesamt fuer Steuern, Muenchen - Elster ERiC
3 * (c) 2013, LfSt Bayern, Muenchen, IuK 111
4 *
5 * Name : erictoolkit.h
6 * Komponente : erictoolkit
7 *
8 * Author :
9 * Datum :
10 * Letzte Aenderung : 13. November 2018
11 * Aenderung durch : David Moch
12 * SVN Revision : 96716
13 * SVN URL :
14 * SVN ID :
15 */
16
17#ifndef ERICTOOLKIT_C_H_
18#define ERICTOOLKIT_C_H_
19
20/**
21 * @file
22 * @brief Bereitstellung von Prüffunktionen ohne Abhängigkeit zu anderen ERiC Bibliotheken.
23 *
24 */
25
26#if defined(__APPLE__)
27 #include "TargetConditionals.h"
28 #if TARGET_IPHONE_SIMULATOR
29 #define __IOS_SIMULATOR__
30 #define __IOS__
31
32 #define FILENAMES_CASE_SENSITIVE 0
33 #define strcasecmp strcmp
34
35 #elif TARGET_OS_IPHONE
36 #define __IOS_DEVICE__
37 #define __IOS__
38
39 #define FILENAMES_CASE_SENSITIVE 0
40 #define strcasecmp strcmp
41
42 #elif TARGET_OS_MAC
43 #define OS_X
44 #define MAC_OS_X
45 #define MAC_OS
46 #ifndef PLATFORM_NAME
47 # define PLATFORM_NAME "Mac OS X"
48 #endif
49
50 #define FILENAMES_CASE_SENSITIVE 0
51 #define strcasecmp strcmp
52
53 #if defined(__amd64__) || defined(__x86_64__)
54 # define ARCH_AMD64
55 #endif
56 #endif
57#endif
58
59
60/* Windows Plattformen */
61
62#if defined(WINDOWS) || defined(_WIN32) || defined(_MSC_VER)
63# define WINDOWS_OS
64# ifndef PLATFORM_NAME
65# define PLATFORM_NAME "Windows"
66# endif
67# if defined(_M_AMD64) || defined(_M_X64)
68# define ARCH_AMD64
69# endif
70#endif
71
72/* Linux Plattformen */
73
74#if defined(linux) || defined(__linux__)
75
76#define LINUX_OS
77
78# if defined(__amd64__) || defined(__x86_64__)
79# define ARCH_AMD64
80# ifndef PLATFORM_NAME
81# define PLATFORM_NAME "Linux/x86-64"
82# endif
83# else
84# ifndef PLATFORM_NAME
85# define PLATFORM_NAME "Linux" /* Generic Linux */
86# endif
87# endif
88
89#if !defined(LINUX) && defined(LINUX_OS)
90# define LINUX 1
91#endif
92
93#endif
94
95/*****************************************************/
96
97#ifdef WINDOWS_OS
98# ifndef MSVC
99# define WINDOWS_GNUC true
100# endif
101#endif
102
103
104#ifdef WINDOWS_OS
105# define STDCALL __stdcall
106# ifndef CDECL
107# define CDECL __cdecl
108# endif
109
110#else
111# if defined(__GNUC__) || defined(__GNUG__)
112# ifdef STDCALL
113# undef STDCALL
114# endif
115
116# ifdef CDECL
117# undef CDECL
118# endif
119
120# if defined(__i386__) && !defined(__IOS__) && !defined(ANDROID_OS)
121# define STDCALL __attribute__((__stdcall__))
122# else
123# define STDCALL
124# endif
125# define CDECL __attribute__((__cdecl__))
126# endif
127#endif
128
129# if defined(_AIX)
130# ifdef STDCALL
131# undef STDCALL
132# endif
133# define STDCALL
134# endif
135
136
137
138
139/**
140 * @details Dieses Makro ist nur für die Kompilierung unter Windows von Belang. Auf allen anderen Plattformen ist es leer definiert.
141 *
142 * Unter Windows gibt es bei Einbindung der erictoolkit.h in fremden Code an, dass die deklarierten Funktionen zu importieren sind (dllimport).
143 *
144 * @see
145 * - ::ERICAPI_IMPORT
146 */
147#if defined(WINDOWS_OS) && !defined(ERICTOOLKIT_DLL)
148#define ETKAPI_DECL __declspec(dllimport)
149#else
150#define ETKAPI_DECL
151#endif
152
153#ifdef __cplusplus
154extern "C"
155{
156#endif
157
158 /**
159 * @brief Die Bundesfinanzamtsnummer wird überprüft.
160 *
161 * Wird eine 13-stellige Steuernummer im
162 * ELSTER-Steuernummernformat angegeben, so wird nur die
163 * Bundesfinanzamtsnummer (= die ersten 4 Stellen der
164 * 13-stelligen Steuernummer) geprüft.
165 *
166 * Eine Prüfung der Steuernummer selbst findet nicht statt
167 * (hierfür EtkPruefeSteuernummer() verwenden).
168 *
169 * @param[in] steuernummer
170 * 13-stellige Steuernummer im ELSTER Steuernummernformat bzw.
171 * 4-stellige Bundesfinanzamtsnummer.
172 * @return
173 * - ::ERIC_OK
174 * - ::ERIC_GLOBAL_BUFANR_UNBEKANNT:
175 * Die Bundesfinanzamtsnummer ist unbekannt oder ungültig.
176 * - ::ERIC_GLOBAL_NULL_PARAMETER:
177 * Es wurde keine Bundesfinanzamtsnummer übergeben (Parameter ist NULL).
178 *
179 * @see
180 * - EtkPruefeSteuernummer()
181 * - Pruefung_der_Steuer_und_Steueridentifikatsnummer.pdf, siehe \linkExt{https://www.elster.de/elsterweb/entwickler/infoseite/schnittstellenbeschreibungen,Entwicklerbereich} bei \linkExt{https://www.elster.de/eportal/start,ELSTER}.
182 */
183 ETKAPI_DECL int STDCALL EtkPruefeBuFaNummer(const char* steuernummer);
184
185 /**
186 * @brief Die @c bic wird auf Gültigkeit überprüft.
187 *
188 * Die Prüfung erfolgt in zwei Schritten: @mAbsatz
189 * -# Formale Prüfung auf gültige Zeichen und richtige Länge
190 * -# Prüfung, ob das Länderkennzeichen für BIC gültig ist.
191 *
192 * @param[in] bic Zeiger auf eine NULL-terminierte Zeichenkette.
193 *
194 * @return
195 * - ::ERIC_OK
196 * - ::ERIC_GLOBAL_BIC_FORMALER_FEHLER: Ungültige Zeichen, falsche Länge.
197 * - ::ERIC_GLOBAL_BIC_LAENDERCODE_FEHLER
198 * - ::ERIC_GLOBAL_NULL_PARAMETER: Parameter @c bic ist NULL.
199 *
200 * @see
201 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "BIC ISO-Ländercodes"
202 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "BIC-Prüfung"
203 */
204 ETKAPI_DECL int STDCALL EtkPruefeBIC(const char* bic);
205
206 /**
207 * @brief Überprüft ein @c Einheitswert-Aktenzeichen im ELSTER-Format auf Gültigkeit.
208 *
209 * @param[in] einheitswertAz
210 * Zeiger auf ein Einheitswert-Aktenzeichen im ELSTER-Format
211 *
212 * @return
213 * - ::ERIC_OK
214 * - ::ERIC_GLOBAL_EWAZ_UNGUELTIG
215 * - ::ERIC_GLOBAL_NULL_PARAMETER
216 *
217 */
218 ETKAPI_DECL int STDCALL EtkPruefeEWAz(const char* einheitswertAz);
219
220 /**
221 * @brief Die @c iban wird auf Gültigkeit überprüft.
222 *
223 * Die Prüfung erfolgt in vier Schritten: @mAbsatz
224 * -# Formale Prüfung auf gültige Zeichen und richtige Länge.
225 * -# Prüfung, ob das Länderkennzeichen für IBAN gültig ist.
226 * -# Prüfung, ob das länderspezifische Format gültig ist.
227 * -# Prüfung, ob die Prüfziffer der IBAN gültig ist.
228 *
229 * @param[in] iban Zeiger auf eine NULL-terminierte Zeichenkette.
230 *
231 * @return
232 * - ::ERIC_OK
233 * - ::ERIC_GLOBAL_IBAN_FORMALER_FEHLER: Ungültige Zeichen, falsche Länge.
234 * - ::ERIC_GLOBAL_IBAN_LAENDERCODE_FEHLER
235 * - ::ERIC_GLOBAL_IBAN_LANDESFORMAT_FEHLER
236 * - ::ERIC_GLOBAL_IBAN_PRUEFZIFFER_FEHLER
237 * - ::ERIC_GLOBAL_NULL_PARAMETER: Parameter @c iban ist NULL.
238 *
239 * @see
240 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "IBAN - länderspezifische Formate"
241 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "IBAN-Prüfung"
242 *
243 */
244 ETKAPI_DECL int STDCALL EtkPruefeIBAN(const char* iban);
245
246 /**
247 * @brief Die @c steuerId wird auf Gültigkeit überprüft.
248 * Formal korrekte Test Identifikationsnummern (beginnen mit der Ziffer 0) sind zulässig.
249 *
250 * @param[in] steuerId
251 * Steuer-Identifikationsnummer (IdNr)
252 *
253 * @return
254 * - ::ERIC_OK
255 * - ::ERIC_GLOBAL_IDNUMMER_UNGUELTIG
256 * - ::ERIC_GLOBAL_NULL_PARAMETER
257 *
258 * @see
259 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "Prüfung der Steueridentifikationsnummer (IdNr)"
260 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "Test-Steueridentifikationsnummer"
261 * - EtkPruefeSteuernummer()
262 */
263 ETKAPI_DECL int STDCALL EtkPruefeIdentifikationsMerkmal(const char* steuerId);
264
265 /**
266 * @brief Die @c steuernummer wird einschließlich Bundesfinanzamtsnummer
267 * auf formale Richtigkeit geprüft.
268 *
269 * Zur Prüfung der Bundesfinanzamtsnummer wird
270 * EtkPruefeBuFaNummer() verwendet.
271 *
272 * @param[in] steuernummer
273 * NULL-terminierte 13-stellige Steuernummer im
274 * ELSTER-Steuernummernformat.
275 *
276 * @return
277 * - ::ERIC_OK
278 * - ::ERIC_GLOBAL_STEUERNUMMER_UNGUELTIG
279 * - ::ERIC_GLOBAL_NULL_PARAMETER
280 *
281 * @see
282 * - EtkPruefeBuFaNummer()
283 * - Pruefung_der_Steuer_und_Steueridentifikatsnummer.pdf, siehe \linkExt{https://www.elster.de/elsterweb/entwickler/infoseite/schnittstellenbeschreibungen,Entwicklerbereich} bei \linkExt{https://www.elster.de/eportal/start,ELSTER}.
284 */
285 ETKAPI_DECL int STDCALL EtkPruefeSteuernummer(const char* steuernummer);
286
287 /**
288 * @brief Die @c Wirtschafts-Identifikationsnummer (@c W-IdNr.) wird auf formale Gültigkeit geprüft.
289 *
290 * @param[in] wIdNr
291 * NULL-terminierte Wirtschafts-Identifikationsnummer
292 * mit oder ohne Unterscheidungsmerkmal.
293 *
294 * @return
295 * - ::ERIC_OK
296 * - ::ERIC_GLOBAL_IDNUMMER_UNGUELTIG
297 * - ::ERIC_GLOBAL_NULL_PARAMETER
298 * @see
299 * - @typeDokumentation{ERiC-Entwicklerhandbuch.pdf}, Kap. "Prüfung der Wirtschafts-Identifikationsnummer (W-IdNr.)"
300 */
301 ETKAPI_DECL int STDCALL EtkPruefeWIdNr(const char* wIdNr);
302
303 /**
304 * @brief Abfragen der Produktversion des ERiCToolKit
305 *
306 * Die Produktversion wird in den bereitgestellten Speicher als NULL-terminierte C Zeichenkette zurückgegeben.
307 * Der Speicher muss/darf von der Anwendung nicht freigegeben werden.
308 *
309 * @return
310 * - NULL-terminierte C Zeichenkette.
311 *
312 */
313 ETKAPI_DECL const char* STDCALL EtkHoleProduktVersion();
314
315 /**
316 * @brief Abfragen der Dateiversion des ERiCToolKit
317 *
318 * Die Dateiversion wird in den bereitgestellten Speicher als NULL-terminierte C Zeichenkette zurückgegeben.
319 * Der Speicher muss/darf von der Anwendung nicht freigegeben werden.
320 *
321 * @return
322 * - NULL-terminierte C Zeichenkette.
323 *
324 */
325 ETKAPI_DECL const char* STDCALL EtkHoleDateiVersion();
326
327#ifdef __cplusplus
328}
329#endif
330
331#endif /*ERICTOOLKIT_C_H_*/
ETKAPI_DECL const char * EtkHoleDateiVersion()
Abfragen der Dateiversion des ERiCToolKit.
ETKAPI_DECL int EtkPruefeEWAz(const char *einheitswertAz)
Überprüft ein Einheitswert-Aktenzeichen im ELSTER-Format auf Gültigkeit.
ETKAPI_DECL int EtkPruefeBIC(const char *bic)
Die bic wird auf Gültigkeit überprüft.
ETKAPI_DECL int EtkPruefeIBAN(const char *iban)
Die iban wird auf Gültigkeit überprüft.
ETKAPI_DECL int EtkPruefeSteuernummer(const char *steuernummer)
Die steuernummer wird einschließlich Bundesfinanzamtsnummer auf formale Richtigkeit geprüft.
#define ETKAPI_DECL
ETKAPI_DECL int EtkPruefeIdentifikationsMerkmal(const char *steuerId)
Die steuerId wird auf Gültigkeit überprüft. Formal korrekte Test Identifikationsnummern (beginnen mit...
ETKAPI_DECL int EtkPruefeBuFaNummer(const char *steuernummer)
Die Bundesfinanzamtsnummer wird überprüft.
ETKAPI_DECL int EtkPruefeWIdNr(const char *wIdNr)
Die Wirtschafts-Identifikationsnummer (W-IdNr.) wird auf formale Gültigkeit geprüft.
ETKAPI_DECL const char * EtkHoleProduktVersion()
Abfragen der Produktversion des ERiCToolKit.