lib/datev/base/contact.rb
module Datev
class Contact < Base
def self.bank_account(number)
field "Bankleitzahl #{number}", :string, limit: 8
field "Bankbezeichnung #{number}", :string, limit: 30
field "Bankkonto-Nummer #{number}", :string, limit: 10
field "Länderkennzeichen #{number}", :string, limit: 2
# ISO-Code beachten (siehe Dok.-Nr. 1080169)
field "IBAN #{number}", :string, limit: 34
field "Leerfeld #{number}", :string, limit: 1
field "SWIFT-Code #{number}", :string, limit: 11
# Beachten Sie, dass für Zahlung und Lastschriften bis zur Installation der Programm-DVD DATEV pro 8.3 (Januar 2015) BLZ und/oder BIC noch erforderlich sind.
field "Abw. Kontoinhaber #{number}", :string, limit: 70
field "Kennz. Haupt-Bankverb. #{number}", :boolean
# Kennzeichnung als Haupt-Bankverbindung
# 1 = Ja
# 0 = Nein
# Nur eine Bankverbindung eines Debitoren oder Kreditoren kann als Haupt-Bankverbindung gekennzeichnet werden.
field "Bankverb. #{number} Gültig von", :date, format: '%d%m%Y'
field "Bankverb. #{number} Gültig bis", :date, format: '%d%m%Y'
end
# http://www.datev.de/dnlexom/client/app/index.html#/document/1036228/D103622800012
# 1
field 'Konto', :integer, limit: 9, required: true
# Personen-Kontonummer (abhängig von der Information im Header)
# Sachkontennummernlänge + 1 = Personenkontenlänge
# 2
field 'Name (Adressatentyp Unternehmen)', :string, limit: 50
# Beim Import werden die Felder in der Datenbank gefüllt, auch wenn sie nicht dem Adressatentyp aus Feld 7 entsprechen. Das kann zu ungewollten Effekten im Programm führen. Bitte übergeben Sie nur die zum Adressatentyp passenden Felder.
# 3
field 'Unternehmensgegenstand', :string, limit: 50
# 4
field 'Name (Adressatentyp natürl. Person)', :string, limit: 30
# 5
field 'Vorname (Adressatentyp natürl. Person)', :string, limit: 30
# 6
field 'Name (Adressatentyp keine Angabe)', :string, limit: 50
# 7
field 'Adressatentyp', :string, limit: 1
# 0 = keine Angabe
# 1 = natürliche Person
# 2 = Unternehmen
# Standardwert = Unternehmen
# 8
field 'Kurzbezeichnung', :string, limit: 15
# 9
field 'EU-Land', :string, limit: 2
# Die USt-IdNr. besteht aus
# 2-stelligen Länderkürzel
# (siehe Dok.-Nr. 1080169; Ausnahme Griechenland: Das Länderkürzel lautet EL)
# 13-stelliger USt-IdNr.
# Beachten Sie bitte, dass kein Leerzeichen zwischen diesen beiden Eingabewerten sein darf.
# 10
field 'EU-USt-IdNr.', :string, limit: 13
# 11
field 'Anrede', :string, limit: 30
# 12
field 'Titel/Akad. Grad', :string, limit: 25
# Nur bei Adressatentyp "natürliche Person" relevant.
# Wird der Titel/Akad.Grad bei einem Adressatentyp "Unternehmen" übergeben, wird der Wert in den Datenbestand übernommen, ist aber an der Oberfläche nicht sichtbar.
# 13
field 'Adelstitel', :string, limit: 15
# Nur bei Adressatentyp "natürliche Person" relevant.
# Wird der Adelstitel bei einem Adressatentyp "Unternehmen" übergeben, wird der Wert in den Datenbestand übernommen, ist aber an der Oberfläche nicht sichtbar.
# 14
field 'Namensvorsatz', :string, limit: 14
# Nur bei Adressatentyp "natürliche Person" relevant.
# Wird der Namensvorsatz bei einem Adressatentyp "Unternehmen" übergeben, wird der Wert in den Datenbestand übernommen, ist aber an der Oberfläche nicht sichtbar.
# 15
field 'Adressart', :string, limit: 3
# STR = Straße
# PF = Postfach
# GK = Großkunde
# Wird die Adressart nicht übergeben, wird sie automatisch in Abhängigkeit zu den übergebenen Feldern (Straße oder Postfach) gesetzt.
# 16
field 'Straße', :string, limit: 36
# Wird sowohl eine Straße als auch ein Postfach übergeben, werden beide Werte in den Datenbestand übernommen; auf der Visitenkarte in den Debitoren-/Kreditoren-Stammdaten wird die Postfachadresse angezeigt.
#17
field 'Postfach', :string, limit: 10
# 18
field 'Postleitzahl', :string, limit: 10
# 19
field 'Ort', :string, limit: 30
# 20
field 'Land', :string, limit: 2
# ISO-Code beachten! (Dok.-Nr. 1080169)
# 21
field 'Versandzusatz', :string, limit: 50
# 22
field 'Adresszusatz', :string, limit: 36
# Beispiel: z. Hd. Herrn Mustermann
# 23
field 'Abweichende Anrede', :string, limit: 30
# Es kann ein beliebiger individueller Text verwendet werden.
# 24
field 'Abw. Zustellbezeichnung 1', :string, limit: 50
# 25
field 'Abw. Zustellbezeichnung 2', :string, limit: 36
# 26
field 'Kennz. Korrespondenzadresse', :boolean
# 1= Kennzeichnung Korrespondenzadresse
# 27
field 'Adresse Gültig von', :date, format: '%d%m%Y'
# 28
field 'Adresse Gültig bis', :date, format: '%d%m%Y'
# 29
field 'Telefon', :string, limit: 60
# Standard-Telefonnummer
# 30
field 'Bemerkung (Telefon)', :string, limit: 40
# 31
field 'Telefon Geschäftsleitung', :string, limit: 60
# Geschäftsleitungs-Telefonnummer
# 32
field 'Bemerkung (Telefon GL)', :string, limit: 40
# 33
field 'E-Mail', :string, limit: 60
# 34
field 'Bemerkung (E-Mail)', :string, limit: 40
# 35
field 'Internet', :string, limit: 60
# 36
field 'Bemerkung (Internet)', :string, limit: 40
# 37
field 'Fax', :string, limit: 60
# 38
field 'Bemerkung (Fax)', :string, limit: 40
# 39
field 'Sonstige', :string, limit: 60
# 40
field 'Bemerkung (Sonstige)', :string, limit: 40
# 41 bis 95
(1..5).each do |number|
self.bank_account(number)
end
# 96
field 'Leerfeld 11', :integer, limit: 3
# 97
field 'Briefanrede', :string, limit: 100
# 98
field 'Grußformel', :string, limit: 50
# 99
field 'Kundennummer', :string, limit: 15
# Kann nicht geändert werden, wenn zentralisierte Geschäftspartner verwendet werden.
# 100
field 'Steuernummer', :string, limit: 20
# 101
field 'Sprache', :integer, limit: 2
# 1 = Deutsch
# 4 = Französisch
# 5 = Englisch
# 10 = Spanisch
# 19 = Italienisch
# 102
field 'Ansprechpartner', :string, limit: 40
# 103
field 'Vertreter', :string, limit: 40
# 104
field 'Sachbearbeiter', :string, limit: 40
# 105
field 'Diverse-Konto', :boolean
# 0 = Nein
# 1 = Ja
# 106
field 'Ausgabeziel', :integer, limit: 1
# 1 = Druck
# 2 = Telefax
# 3 = E-Mail
# 107
field 'Währungssteuerung', :integer, limit: 1
# 0 = Zahlungen in Eingabewährung
# 2 = Ausgabe in EUR
# 108
field 'Kreditlimit (Debitor)', :integer, limit: 10
# Nur für Debitoren gültig
# Beispiel: 1.123.123.123
# 109
field 'Zahlungsbedingung', :integer, limit: 3
# Eine gespeicherte Zahlungsbedingung kann hier einem Geschäftspartner zugeordnet werden.
# 110
field 'Fälligkeit in Tagen (Debitor)', :integer, limit: 3
# Nur für Debitoren gültig
# 111
field 'Skonto in Prozent (Debitor)', :decimal, precision: 4, scale: 2
# Nur für Debitoren gültig
# Beispiel: 12,12
# 112 bis 120
(1..5).each do |number|
if 3 == number
field "Kreditoren-Ziel #{number} Brutto (Tage)", :integer, limit: 3
else
field "Kreditoren-Ziel #{number} (Tage)", :integer, limit: 2
# Nur für Kreditoren gültig
field "Kreditoren-Skonto #{number} (%)", :decimal, precision: 4, scale: 2
# Nur für Kreditoren gültig
# Beispiel: 12,12
end
end
# 121
field 'Mahnung', :integer, limit: 1
# 0 = Keine Angaben
# 1 = 1. Mahnung
# 2 = 2. Mahnung
# 3 = 1. + 2. Mahnung
# 4 = 3. Mahnung
# 5 = (nicht vergeben)
# 6 = 2. + 3. Mahnung
# 7 = 1., 2. + 3. Mahnung
# 9 = keine Mahnung
# 122
field 'Kontoauszug', :integer, limit: 1
# 1 = Kontoauszug für alle Posten
# 2 = Auszug nur dann, wenn ein Posten mahnfähig ist
# 3 = Auszug für alle mahnfälligen Posten
# 9 = kein Kontoauszug
field 'Mahntext', :integer, limit: 1
# Leer = keinen Mahntext ausgewählt
# 1 = Textgruppe 1
# ...
# 9 = Textgruppe 9
# 124
field 'Mahntext 2', :integer, limit: 1
# Leer = keinen Mahntext ausgewählt
# 1 = Textgruppe 1
# ...
# 9 = Textgruppe 9
# 125
field 'Mahntext 3', :integer, limit: 1
# Leer = keinen Mahntext ausgewählt
# 1 = Textgruppe 1
# ...
# 9 = Textgruppe 9
# 126
field 'Kontoauszugstext', :integer, limit: 1
# Leer = kein Kontoauszugstext ausgewählt
# 1 = Kontoauszugstext 1
# ...
# 8 = Kontoauszugstext 8
# 9 = Kein Kontoauszugstext
# 127
field 'Mahnlimit Betrag', :decimal, precision: 7, scale: 2
# Beispiel: 12.123,12
# 128
field 'Mahnlimit %', :decimal, precision: 4, scale: 2
# Beispiel: 12,12
# 129
field 'Zinsberechnung', :integer, limit: 1
# 0 = MPD-Schlüsselung gilt
# 1 = Fester Zinssatz
# 2 = Zinssatz über Staffel
# 9 = Keine Berechnung für diesen Debitor
# 130 - 132
(1..3).each do |number|
field "Mahnzinssatz #{number}", :decimal, precision: 4, scale: 2
# Beispiel: 12,12
end
# 133
field 'Lastschrift', :string, limit: 1
# Leer bzw. 0 = keine Angaben, es gilt die MPD-Schlüsselung
# 1 = Einzellastschrift mit einer Rechnung
# 2 = Einzellastschrift mit mehreren Rechnungen
# 3 = Sammellastschrift mit einer Rechnung
# 4 = Sammellastschrift mit mehreren Rechnungen
# 5 = Datenträgeraustausch mit einer Rechnung
# 6 = Datenträgeraustausch mit mehreren Rechnungen
# 7 = SEPA-Lastschrift mit einer Rechnung
# 8 = SEPA-Lastschrift mit mehreren Rechnungen
# 9 = kein Lastschriftverfahren bei diesem Debitor
# 134
field 'Verfahren', :string, limit: 1
# 0 = Einzugsermächtigung
# 1 = Abbuchungsverfahren
# 135
field 'Mandantenbank', :integer, limit: 4
# Zuordnung der gespeicherten Mandantenbank, die für das Lastschriftverfahren verwendet werden soll.
# 136
field 'Zahlungsträger', :string, limit: 1
# Leer bzw. 0 = keine Angaben, es gilt die MPD-Schlüsselung
# 1 = Einzelüberweisung mit einer Rechnung
# 2 = Einzelüberweisung mit mehreren Rechnungen
# 3 = Sammelüberweisung mit einer Rechnung
# 4 = Sammelüberweisung mit mehreren Rechnungen
# 5 = Einzelscheck
# 6 = Sammelscheck
# 7 = SEPA-Überweisung mit einer Rechnung
# 8 = SEPA-Überweisung mit mehreren Rechnungen
# 9 = keine Überweisungen, Schecks
# 137 bis 151
(1..15).each do |number|
field "Indiv. Feld #{number}", :string, limit: 40
# 11 bis 15 wird derzeit nicht übernommen
end
# 152
field 'Abweichende Anrede (Rechnungsadresse)', :string, limit: 30
# Es kann ein beliebiger individueller Text verwendet werden.
# 153
field 'Adressart (Rechnungsadresse)', :string, limit: 3
# STR = Straße
# PF = Postfach
# GK = Großkunde
# Wird die Adressart nicht übergeben, wird sie automatisch in Abhängigkeit zu den übergebenen Feldern (Straße oder Postfach) gesetzt.
# 154
field 'Straße (Rechnungsadresse)', :string, limit: 36
# Wird sowohl eine Straße als auch ein Postfach übergeben, werden beide Werte in den Datenbestand übernommen; auf der Visitenkarte in den Debitoren-/Kreditoren-Stammdaten wird die Postfachadresse angezeigt.
# 155
field 'Postfach (Rechnungsadresse)', :string, limit: 10
# 156
field 'Postleitzahl (Rechnungsadresse)', :string, limit: 10
# 157
field 'Ort (Rechnungsadresse)', :string, limit: 30
# 158
field 'Land (Rechnungsadresse)', :string, limit: 2
# ISO-Code beachten (siehe Dok.-Nr. 1080169)
# 159
field 'Versandzusatz (Rechnungsadresse)', :string, limit: 50
# 160
field 'Adresszusatz (Rechnungsadresse)', :string, limit: 36
# Beispiel: z. Hd. Herrn Mustermann
# 161
field 'Abw. Zustellbezeichnung 1 (Rechnungsadresse)', :string, limit: 50
# 162
field 'Abw. Zustellbezeichnung 2 (Rechnungsadresse)', :string, limit: 36
# 163
field 'Adresse Gültig von (Rechnungsadresse)', :date, format: '%d%m%Y'
# 164
field 'Adresse Gültig bis (Rechnungsadresse)', :date, format: '%d%m%Y'
# 165 bis 219
(6..10).each do |number|
bank_account(number)
end
# 220
field 'Nummer Fremdsystem', :string, limit: 15
# Achtung: Wird bei Verwendung zentralisierter Geschäftspartner von DATEV überschrieben.
# 221
field 'Insolvent', :boolean
# 0 = Nein
# 1 = Ja
# 222 bis 231
(1..10).each do |number|
field "SEPA-Mandatsreferenz #{number}", :string, limit: 35
# Sie können im Feld Mandatsreferenz dem Geschäftspartner je Bank eine Mandatsreferenz eintragen. Für eine korrekte Verwendung muss in der SEPA-Mandatsverwaltung die Mandatsreferenz für den Lastschriftteilnehmer vorhanden sein.
end
# 232
field 'Verknüpftes OPOS-Konto', :integer, limit: 9
# Sie können für den Geschäftspartner das korrespondierende Konto (im Kreditorenbereich) erfassen, wenn es sich bei dem Geschäftspartner sowohl um einen Kunden als auch um einen Lieferanten handelt.
# --- Erweiterungen zur Jahreswechselversion 2015/2016
# 233
field 'Mahnsperre bis', :date, format: '%d%m%Y'
# 234
field 'Lastschriftsperre bis', :date, format: '%d%m%Y'
# 235
field 'Zahlungssperre bis', :date, format: '%d%m%Y'
# 236
field 'Gebührenberechnung', :integer, limit: 1
# 0 = MPD-Schlüsselung gilt
# 1 = Mahngebühr berechnen
# 9 = Keine Berechnung für diesen Debitor
# 237 bis 239
(1..3).each do |number|
field "Mahngebühr #{number}", :decimal, precision: 4, scale: 2
# Beispiel: 12,12
end
# 240
field 'Pauschalberechnung', :integer, limit: 1
# 0 = MPD-Schlüsselung gilt
# 1 = Verzugspauschale berechnen
# 9 = Keine Berechnung für diesen Debitor
# 241 bis 243
(1..3).each do |number|
field "Verzugspauschale #{number}", :decimal, precision: 5, scale: 2
# Beispiel: 12,12
end
# 244
field 'Alternativer Suchname', :string, limit: 50
# 245
field 'Status', :integer, limit: 1
# 246
field 'Anschrift manuell geändert (Korrespondenzadresse)', :integer, limit: 1
# 247
field 'Anschrift individuell (Korrespondenzadresse)', :string, limit: 306
# 248
field 'Anschrift manuell geändert (Rechnungsadresse)', :integer, limit: 1
# 249
field 'Anschrift individuell (Rechnungsadresse)', :string, limit: 306
# 250
field 'Fristberechnung bei Debitor', :integer, limit: 1
# 0 = nein
# 1 = ja
# 251 bis 253
(1..3).each do |number|
field "Mahnfrist #{number}", :integer, limit: 3
# Mahnfristen in Tagen
end
# 254
field 'Letzte Frist', :integer, limit: 3
# Mahnfristen in Tagen
end
end